mergeron 2024.738930.0__py3-none-any.whl → 2024.738936.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mergeron might be problematic. Click here for more details.
- mergeron/core/__init__.py +1 -1
- mergeron/core/guidelines_standards.py +247 -57
- mergeron/core/proportions_tests.py +19 -19
- mergeron/core/pseudorandom_numbers.py +30 -29
- mergeron/examples/__init__.py +1 -1
- mergeron/examples/concentration_as_diversion.py +75 -88
- mergeron/examples/investigations_stats_obs_tables.py +119 -111
- mergeron/examples/investigations_stats_sim_tables.py +108 -87
- mergeron/examples/plotSafeHarbs_symbolically.py +2 -2
- mergeron/examples/safeharbor_boundaries_for_mergers_with_asymmetric_shares.py +35 -28
- mergeron/examples/safeharbor_boundaries_for_symmetric_firm_mergers.py +6 -13
- mergeron/examples/sound_guppi_safeharbor.py +23 -18
- mergeron/examples/testIntrinsicClearanceRates.py +5 -5
- mergeron/examples/visualize_empirical_margin_distribution.py +1 -1
- mergeron/examples/{visualize_guidelines_tests_scatterplots.py → visualize_guidelines_tests.py} +42 -48
- mergeron/ext/__init__.py +1 -1
- mergeron/gen/__init__.py +1 -1
- mergeron/gen/data_generation.py +25 -24
- mergeron/gen/guidelines_tests.py +47 -47
- mergeron/gen/investigations_stats.py +98 -46
- mergeron/jinja_LaTex_templates/clrrate_cis_summary_table_template.tex.jinja2 +2 -3
- mergeron/jinja_LaTex_templates/ftcinvdata_byhhianddelta_table_template.tex.jinja2 +2 -3
- mergeron/jinja_LaTex_templates/ftcinvdata_summary_table_template.tex.jinja2 +1 -2
- mergeron/jinja_LaTex_templates/ftcinvdata_summarypaired_table_template.tex.jinja2 +13 -14
- mergeron/jinja_LaTex_templates/mergeron.cls +161 -0
- mergeron/jinja_LaTex_templates/mergeron_table_collection_template.tex.jinja2 +90 -0
- {mergeron-2024.738930.0.dist-info → mergeron-2024.738936.2.dist-info}/METADATA +15 -18
- mergeron-2024.738936.2.dist-info/RECORD +41 -0
- mergeron-2024.738930.0.dist-info/RECORD +0 -39
- {mergeron-2024.738930.0.dist-info → mergeron-2024.738936.2.dist-info}/WHEEL +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
((* set obs_merger_class_0 = "Markets with, ``" + tmpl_data.obs_merger_class_0 + "''" *))
|
|
6
6
|
((* endif *))
|
|
7
7
|
|
|
8
|
-
((* if tmpl_data.
|
|
8
|
+
((* if tmpl_data.test_regime == 'Enforcement' *))
|
|
9
9
|
((* set prop_title = "Proportion Enforced" *))
|
|
10
10
|
((* else *))
|
|
11
11
|
((* set prop_title = "Proportion Cleared" *))
|
|
@@ -13,25 +13,25 @@
|
|
|
13
13
|
|
|
14
14
|
((* set obs_merger_class_1 = "Markets with, ``" + tmpl_data.obs_merger_class_1 + "''" *))
|
|
15
15
|
|
|
16
|
-
\
|
|
16
|
+
\centering
|
|
17
17
|
\caption{FTC Merger Investigations Data}\label{tbl:FTCInvData_\JINVAR{ tmpl_data.obs_summary_type|replace(" ", "") -}}
|
|
18
18
|
{\footnotesize \JINVAR{ tmpl_data.obs_summary_type_title } \\
|
|
19
19
|
Grouped by Entry Conditions and Reporting Period \\[0.5\baselineskip]}
|
|
20
20
|
\begin{tikzpicture}[auto, font = \sffamily]
|
|
21
21
|
\begin{pgfonlayer}{background}
|
|
22
|
-
\matrix[datatable, nodes = {text width = 27pt,},] (
|
|
22
|
+
\matrix[datatable, nodes = {text width = 27pt,},] (invres_rate_raw) {
|
|
23
23
|
\JINVAR{ tmpl_data.invdata_datstr -}
|
|
24
24
|
};
|
|
25
25
|
% Horizontal scoring for totals
|
|
26
|
-
\draw[color = OBSHDRFill, line width = 1pt] (
|
|
26
|
+
\draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-1.north west) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-8.north east);
|
|
27
27
|
% Vertical scoring for column groups
|
|
28
|
-
\draw[color = OBSHDRFill, line width = 1pt] (
|
|
29
|
-
\draw[color = OBSHDRFill, line width = 1pt] (
|
|
30
|
-
\draw[color = OBSHDRFill, line width = 1pt] (
|
|
28
|
+
\draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-1-2.north east) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-2.south east);
|
|
29
|
+
\draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-1-4.north east) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-4.south east);
|
|
30
|
+
\draw[color = OBSHDRFill, line width = 1pt] (invres_rate_raw-1-6.north east) -- (invres_rate_raw-\JINVAR{- tmpl_data.invdata_numrows -}-6.south east);
|
|
31
31
|
\end{pgfonlayer}
|
|
32
32
|
|
|
33
33
|
\matrix[hrow,
|
|
34
|
-
above = 0 pt of
|
|
34
|
+
above = 0 pt of invres_rate_raw,
|
|
35
35
|
nodes = {minimum height = 33pt, text depth = 10pt, text width = 60pt, align = left, inner sep = 3pt,},
|
|
36
36
|
] (hdrrow_raw) {
|
|
37
37
|
\node[rotate = 90] {Relative \\ Frequency \\}; &
|
|
@@ -64,12 +64,12 @@
|
|
|
64
64
|
Observed Data \\
|
|
65
65
|
};
|
|
66
66
|
% Vertical scoring for column groups
|
|
67
|
-
\draw[color = white, line width = 1pt] (descrow_raw_pds1-1-1.north east) -- (
|
|
68
|
-
\draw[color = white, line width = 1pt] (descrow_raw_mkt1-1-1.north east) -- (
|
|
69
|
-
\draw[color = white, line width = 1pt] (descrow_raw_pds2-1-1.north east) -- (
|
|
67
|
+
\draw[color = white, line width = 1pt] (descrow_raw_pds1-1-1.north east) -- (invres_rate_raw-1-2.north east);
|
|
68
|
+
\draw[color = white, line width = 1pt] (descrow_raw_mkt1-1-1.north east) -- (invres_rate_raw-1-4.north east);
|
|
69
|
+
\draw[color = white, line width = 1pt] (descrow_raw_pds2-1-1.north east) -- (invres_rate_raw-1-6.north east);
|
|
70
70
|
|
|
71
71
|
% Header column - row heads
|
|
72
|
-
\matrix[hcol, left = 0pt of
|
|
72
|
+
\matrix[hcol, left = 0pt of invres_rate_raw, nodes = {
|
|
73
73
|
text width = \JINVAR{ tmpl_data.hdrcol_raw_width -},
|
|
74
74
|
inner xsep = 3 pt,
|
|
75
75
|
},] (hdrcol_raw) {
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
(hdrcoldesc_raw.north east)
|
|
86
86
|
;
|
|
87
87
|
((# % Separator for header column
|
|
88
|
-
\draw[color = white, line width = 1pt] (descrow_raw_mkt1-1-1.north west) -- (
|
|
88
|
+
\draw[color = white, line width = 1pt] (descrow_raw_mkt1-1-1.north west) -- (invres_rate_raw-1-1.north west); #))
|
|
89
89
|
|
|
90
90
|
% Notes below table
|
|
91
91
|
\matrix[anytable,
|
|
@@ -100,6 +100,5 @@
|
|
|
100
100
|
% \(\cdot\) \fullcite{FTCInvData2011}, Table~4.1 and Table~10.2 \\
|
|
101
101
|
};
|
|
102
102
|
\end{tikzpicture}
|
|
103
|
-
\end{center}
|
|
104
103
|
\end{table}
|
|
105
104
|
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
%% https://tex.stackexchange.com/questions/638194/
|
|
2
|
+
\ExplSyntaxOn % Switch on expl3 syntax
|
|
3
|
+
\sys_ensure_backend: % load the backend code
|
|
4
|
+
\pdf_version_gset:n{1.7} % Use provided expl3 function
|
|
5
|
+
\ExplSyntaxOff % Switch off expl3 syntax
|
|
6
|
+
|
|
7
|
+
\LoadClass{scrartcl}
|
|
8
|
+
\RequirePackage[singlespacing=true]{scrlayer-scrpage}
|
|
9
|
+
\KOMAoptions{
|
|
10
|
+
draft=off,
|
|
11
|
+
fontsize=12pt,
|
|
12
|
+
paper=letter,
|
|
13
|
+
DIV=12,
|
|
14
|
+
footnotes=multiple,
|
|
15
|
+
numbers=withendperiod,
|
|
16
|
+
headsepline=on,
|
|
17
|
+
footsepline=off,
|
|
18
|
+
abstract=on,
|
|
19
|
+
headheight=36pt,
|
|
20
|
+
footheight=36pt,
|
|
21
|
+
}
|
|
22
|
+
\RequirePackage[l2tabu, orthodox]{nag}
|
|
23
|
+
|
|
24
|
+
\RequirePackage{polyglossia}
|
|
25
|
+
\setdefaultlanguage[variant=american]{english}
|
|
26
|
+
% Appendix prefix for scrartcl
|
|
27
|
+
\newcommand*{\appendixmore}{%
|
|
28
|
+
\renewcommand*{\sectionformat}{%
|
|
29
|
+
\appendixname~\thesection\autodot\enskip%
|
|
30
|
+
}%
|
|
31
|
+
\renewcommand*{\sectionmarkformat}{%
|
|
32
|
+
\appendixname~\thesection\autodot\enskip%
|
|
33
|
+
}%
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
\RequirePackage[doublespacing]{setspace}
|
|
37
|
+
\RequirePackage[noorphans, listvskip, font=singlespacing]{quoting}
|
|
38
|
+
\RequirePackage{csquotes}
|
|
39
|
+
\AtBeginEnvironment{quoting}{\vspace{-1\baselineskip}}
|
|
40
|
+
|
|
41
|
+
\RequirePackage[en-US,calc]{datetime2}
|
|
42
|
+
\RequirePackage{fontawesome5}
|
|
43
|
+
\RequirePackage{etoolbox}
|
|
44
|
+
\RequirePackage{auxhook}
|
|
45
|
+
\RequirePackage{xurl}
|
|
46
|
+
\RequirePackage[table]{xcolor}
|
|
47
|
+
\RequirePackage{tikz}
|
|
48
|
+
\usetikzlibrary{backgrounds, calc, matrix, positioning}
|
|
49
|
+
|
|
50
|
+
\RequirePackage{titling}
|
|
51
|
+
\setlength{\droptitle}{-1.0in}
|
|
52
|
+
|
|
53
|
+
% Define CAP Economics official color
|
|
54
|
+
\definecolor{CAPEconPurple}{HTML}{200054}
|
|
55
|
+
% https://htmlcolorcodes.com/color-picker/
|
|
56
|
+
\definecolor{CAPEconPurpleTint4}{HTML}{9080aa}
|
|
57
|
+
\definecolor{CAPEconPurpleTint6}{HTML}{c7bfd4}
|
|
58
|
+
\definecolor{CAPEconPurpleTint7}{HTML}{e3dfea}
|
|
59
|
+
|
|
60
|
+
% Fonts and math
|
|
61
|
+
\RequirePackage{fontspec}
|
|
62
|
+
\setmonofont[Scale=MatchLowercase,]{Fira Mono}
|
|
63
|
+
\setsansfont{Fira Sans}
|
|
64
|
+
\setmainfont{STIX Two Text}
|
|
65
|
+
|
|
66
|
+
\RequirePackage[standard]{ntheorem}
|
|
67
|
+
\RequirePackage{mathtools}
|
|
68
|
+
\RequirePackage{unicode-math}
|
|
69
|
+
\setmathfont[math-style=ISO]{STIX Two Math}
|
|
70
|
+
% Separate \mathscr from \mathcal
|
|
71
|
+
\setmathfont{STIX Two Math}[range={scr,bfscr},StylisticSet=01]
|
|
72
|
+
|
|
73
|
+
\defaultfontfeatures[\rmfamily,\sffamily]{
|
|
74
|
+
Ligatures={TeX, Common},
|
|
75
|
+
Numbers={proportional, lining}
|
|
76
|
+
}
|
|
77
|
+
\RequirePackage[
|
|
78
|
+
activate={true,nocompatibility},
|
|
79
|
+
tracking=true,
|
|
80
|
+
]{microtype}
|
|
81
|
+
|
|
82
|
+
\RequirePackage{tabularray}
|
|
83
|
+
\UseTblrLibrary{booktabs}
|
|
84
|
+
%% Tables need sansserif font
|
|
85
|
+
%% https://tex.stackexchange.com/questions/286733/change-content-font-in-tabular-environments
|
|
86
|
+
\makeatletter
|
|
87
|
+
\appto\@floatboxreset{%
|
|
88
|
+
\ifx\@captype\andy@table
|
|
89
|
+
\sffamily\addfontfeatures{Numbers={Monospaced, Lining},}
|
|
90
|
+
\fi
|
|
91
|
+
}
|
|
92
|
+
\def\andy@table{table}
|
|
93
|
+
\makeatother
|
|
94
|
+
|
|
95
|
+
%% Don't want full page figures to be vertically centered
|
|
96
|
+
%% https://tex.stackexchange.com/questions/28067/automatic-vertical-alignment-of-a-single-float-on-a-dedicated-page
|
|
97
|
+
\makeatletter
|
|
98
|
+
\setlength{\@fptop}{0pt}
|
|
99
|
+
\setlength{\@fpbot}{0pt plus 1fil}
|
|
100
|
+
\makeatother
|
|
101
|
+
|
|
102
|
+
%% Captions in Sans Serif
|
|
103
|
+
\addtokomafont{caption}{\sffamily}
|
|
104
|
+
\addtokomafont{caption}{\fontsize{10pt}{12pt}\selectfont}
|
|
105
|
+
|
|
106
|
+
%% Tweak footnotes
|
|
107
|
+
\setlength{\footnotesep}{1.5ex}
|
|
108
|
+
% \interfootnotelinepenalty=10000 % Force note text together
|
|
109
|
+
%% Read KOMA-Script documentation
|
|
110
|
+
\setfootnoterule[0.4pt]{\linewidth}
|
|
111
|
+
\deffootnote{2.5em}{2.5em}{%
|
|
112
|
+
\makebox[2.5em][l]{\hspace{1ex}\thefootnotemark.}%
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
%% For highlighting text with a colored background, soul
|
|
116
|
+
\RequirePackage{soul}
|
|
117
|
+
\sethlcolor{yellow}
|
|
118
|
+
|
|
119
|
+
%% Properly typset intervals, and avoid messages about unmatched parentheses
|
|
120
|
+
\RequirePackage{interval}
|
|
121
|
+
\intervalconfig{
|
|
122
|
+
soft open fences,
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
%%% custom commands, environments and symbols
|
|
126
|
+
\renewcommand{\ge}{\geqslant}\renewcommand{\geq}{\geqslant}
|
|
127
|
+
\renewcommand{\le}{\leqslant}\renewcommand{\leq}{\leqslant}
|
|
128
|
+
\DeclarePairedDelimiter\abs{\lvert}{\rvert}%
|
|
129
|
+
\DeclarePairedDelimiter\norm{\lVert}{\rVert}%
|
|
130
|
+
|
|
131
|
+
%% Define a paired-delimiter for defining sets
|
|
132
|
+
%% https://tex.stackexchange.com/questions/268766/curly-braces-in-math-mode
|
|
133
|
+
\DeclarePairedDelimiter\set\{\}
|
|
134
|
+
%% http://mirrors.ctan.org/macros/latex/contrib/mathtools/mathtools.pdf, 27--28
|
|
135
|
+
\DeclarePairedDelimiterX\SetSuchThat[2]{\lbrace}{\rbrace}{%
|
|
136
|
+
#1 \, \delimsize\vert \, \mathopen{}#2
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
%% Sometimes, you just want to comment out several lies of text
|
|
140
|
+
%% https://tex.stackexchange.com/questions/44282/multiline-comment
|
|
141
|
+
\newcommand{\mycomment}[1]{}
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
%% Need a datetime package for various date related inserts
|
|
145
|
+
\RequirePackage[en-US,calc]{datetime2}
|
|
146
|
+
|
|
147
|
+
\RequirePackage{xurl}
|
|
148
|
+
\RequirePackage{hyperref}
|
|
149
|
+
\ProcessOptions\relax
|
|
150
|
+
\hypersetup{%
|
|
151
|
+
unicode=true,
|
|
152
|
+
bookmarksnumbered=false,
|
|
153
|
+
hidelinks,
|
|
154
|
+
pdfencoding=auto,
|
|
155
|
+
}
|
|
156
|
+
\RequirePackage[capitalize, noabbrev]{cleveref}
|
|
157
|
+
|
|
158
|
+
\AtBeginDocument{%
|
|
159
|
+
\SetBlockEnvironment{quoting}
|
|
160
|
+
}
|
|
161
|
+
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
\documentclass{mergeron}
|
|
2
|
+
|
|
3
|
+
\usepackage{luacode}
|
|
4
|
+
\begin{luacode}
|
|
5
|
+
local function embedfull(tfmdata)
|
|
6
|
+
tfmdata.embedding = "full"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
luatexbase.add_to_callback(
|
|
10
|
+
"luaotfload.patch_font", embedfull, "embedfull"
|
|
11
|
+
)
|
|
12
|
+
\end{luacode}
|
|
13
|
+
|
|
14
|
+
% Specify location for includegraphics files:
|
|
15
|
+
\graphicspath{{~/mergeron}}
|
|
16
|
+
|
|
17
|
+
%% Define some symbols
|
|
18
|
+
\newcommand{\mktshr}[1]{\emph{s}\textsubscript{#1}}
|
|
19
|
+
\newcommand{\safeharb}[1]{\ensuremath{\overline{#1}}}
|
|
20
|
+
\newcommand{\Conc}[0]{HHI}
|
|
21
|
+
\newcommand{\Deltah}[0]{ΔHHI}
|
|
22
|
+
% \newcommand{\Deltah}[0]{\ensuremath{\Delta HHI}}
|
|
23
|
+
|
|
24
|
+
%% A square-root symbol that scales with the arguments (varies with font, sadly)
|
|
25
|
+
%% https://www.pgdp.net/wiki/LaTeX_formatting_tips_and_tricks
|
|
26
|
+
%% https://mirrors.ibiblio.org/CTAN/fonts/stix2-type1/stix2.pdf
|
|
27
|
+
%% If you need bigger surds, you can also use {largesymbols}{"75} or {"76}
|
|
28
|
+
\DeclareMathDelimiter{\bigsurd}{\mathopen}{largesymbols}{"F9}{largesymbols}{"74}
|
|
29
|
+
\NewDocumentCommand\FlexSurd{m}{\ensuremath{\left\bigsurd #1\right.}}
|
|
30
|
+
\NewDocumentCommand\ExpSqRoot{m}{\ensuremath{#1^{1/2}}}
|
|
31
|
+
|
|
32
|
+
%% Define colors for tables
|
|
33
|
+
\definecolor{table_bar_green}{HTML}{dfeadf}
|
|
34
|
+
|
|
35
|
+
%% BibLaTex/APA style citation
|
|
36
|
+
\usepackage[
|
|
37
|
+
sorting=nyt,
|
|
38
|
+
style=apa,
|
|
39
|
+
natbib,
|
|
40
|
+
maxcitenames=2,
|
|
41
|
+
]{biblatex}
|
|
42
|
+
\addbibresource{HorizontalMergerAnalysis.bib}
|
|
43
|
+
\AtBeginDocument{%
|
|
44
|
+
\SetCiteCommand{\parencite}%
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
\NewDocumentCommand\casecitefull{m m m}{%
|
|
48
|
+
\ifblank{#1}{}{#1~}%
|
|
49
|
+
\citefield{#3}[mkbibemph]{title},~%
|
|
50
|
+
\citelist{#3}{citation}%
|
|
51
|
+
\ifblank{#2}{~}{,~#2~}%
|
|
52
|
+
(\citelist{#3}{organization} \citefield{#3}{year})%
|
|
53
|
+
}
|
|
54
|
+
\NewDocumentCommand\casecitetitle{m m m}{%
|
|
55
|
+
\ifblank{#1}{}{#1~}%
|
|
56
|
+
\citefield{#3}[mkbibemph]{shorttitle}%
|
|
57
|
+
\ifblank{#2}{}{ at~#2}%
|
|
58
|
+
}
|
|
59
|
+
\NewDocumentCommand\casecite{O{} O{} m}{%
|
|
60
|
+
\ifentryseen{#3}%
|
|
61
|
+
{\casecitetitle{#1}{#2}{#3}}%
|
|
62
|
+
{\casecitefull{#1}{#2}{#3}}%
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
%% Set some page typesetting parameters, recalculate the type area, and go
|
|
67
|
+
\clubpenalty=10000
|
|
68
|
+
\widowpenalty=10000
|
|
69
|
+
\displaywidowpenalty=10000
|
|
70
|
+
\tolerance 1414
|
|
71
|
+
\hbadness 1414
|
|
72
|
+
\emergencystretch 1.5em
|
|
73
|
+
\hfuzz 0.3pt
|
|
74
|
+
\vfuzz
|
|
75
|
+
\hfuzz
|
|
76
|
+
\raggedbottom{}
|
|
77
|
+
\recalctypearea{}
|
|
78
|
+
|
|
79
|
+
% -----------------------------------------------------------------------------
|
|
80
|
+
\begin{document}
|
|
81
|
+
|
|
82
|
+
\include{mergeron_TikZTableSettings.tex}
|
|
83
|
+
((* for item in tmpl_data.path_list *))
|
|
84
|
+
\include{ \JINVAR{ item } }
|
|
85
|
+
((* endfor *))
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
% -----------------------------------------------------------------------------
|
|
89
|
+
\end{document}
|
|
90
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mergeron
|
|
3
|
-
Version: 2024.
|
|
3
|
+
Version: 2024.738936.2
|
|
4
4
|
Summary: Analysis of standards defined in Horizontal Merger Guidelines
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: merger policy analysis,merger guidelines,merger screening,policy presumptions,concentration standards,upward pricing pressure,GUPPI
|
|
@@ -57,44 +57,41 @@ Modules of primary interest
|
|
|
57
57
|
|
|
58
58
|
Routines for downloading and organizing FTC merger investigtions data published in 2004, 2007, 2008, and 2013. Includes a routine for constructing investigations data for non-overlapping periods, and other partitions on the data, subject to the constraints of the reported data.
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
mergeron.core.ftc_merger_investigations_data
|
|
61
61
|
|
|
62
62
|
Routines for plotting boundaries of (sets of mergers falling within) specified concentration and diversion ratio boundaries and for calibrating GUPPI thresholds to concentration (ΔHHI) thresholds, and vice-versa.
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
mergeron.core.guidelines_standards
|
|
65
65
|
|
|
66
66
|
Routines for generating industry data under various distributions of shares, prices, and margins. The user can specify whether rates are specified as, "proportional", "inside-out" (i.e., consistent with merging-firms' in-market shares and a default recapture rate), or "outside-in", (i.e., purchase probabilities are drawn at random for :math:`n+1` goods, from which are derived market shares and recapture rates for the :math:`n` goods in the putative market). Price-cost-margins may be specified as symmetric, i.i.d, or consistent with equilibrium conditions for (profit-mazimization in) Bertrand-Nash oligopoly with MNL demand. Prices may be specified as symmetric or asymmetric, and in the latter case, the direction of correlation between merging firm prices, if any, can also be specified. Two alternative approaches for modeling statutory filing requirements (HSR filing thresholds) are implemented.
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
mergeron.gen.data_generation
|
|
69
69
|
|
|
70
70
|
Routines for testing generated industry data against criteria on diversion ratio, gross upward pricing pressure ("GUPPI"), critical marginal cost reduction ("CMCR"), and indicative price rise ("IPR")/partial merger simulation. Test data are constructed in parallel and the user can specify number of `threads` and sub-sample size for each thread to manage CPU and memory utilization.
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
mergeron.gen.guidelines_tests
|
|
73
73
|
|
|
74
|
-
FTC investigations data and test data are printed to screen or rendered in LaTex to text files (for processing into publication-quality tables) using routines provided in :code:`mergeron.gen.
|
|
74
|
+
FTC investigations data and test data are printed to screen or rendered in LaTex to text files (for processing into publication-quality tables) using routines provided in :code:`mergeron.gen.investigations_stats`.
|
|
75
75
|
|
|
76
76
|
Programs demonstrating the analysis and reporting facilites provided by the package.
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
mergeron.examples
|
|
79
79
|
|
|
80
|
-
This package
|
|
80
|
+
This package exposes routines employed for generating random numbers with selected continuous distribution over specified parameters, and with CPU multithreading on machines with multiple virtual, logical, or physical CPU cores. To access these directly:
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
import mergeron.core.pseudorandom_numbers as prng
|
|
83
83
|
|
|
84
|
-
Also included are routines for estimating confidence intervals for proportions and for contrasts (differences) in proportions. (
|
|
84
|
+
Also included are routines for estimating confidence intervals for proportions and for contrasts (differences) in proportions. (Although coded from scratch using the source literature, the APIs implemented in the module included here are designed for consistency with the APIs in, :code:`statsmodels.stats.proportion` from the package, :code:`statsmodels` (https://pypi.org/project/statsmodels/).) To access these directly:
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
import mergeron.core.proportions_tests as prci
|
|
87
87
|
|
|
88
88
|
A recent version of Paul Tol's python module, :code:`tol_colors.py` is redistributed within this package. Other than re-formatting and type annotation, the :code:`tol_colors` module is re-distributed as downloaded from, https://personal.sron.nl/~pault/data/tol_colors.py. The tol_colors.py module is distributed under the Standard 3-clause BSD license. To access the tol_colors module directly:
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
Documentation for this package is in the form of the API Reference. For individual functions and classes, this same documentation is accessible within a python shell. For example, the below snippet produces the API reference for the given function in a python::
|
|
93
|
-
|
|
94
|
-
import mergeron.core.data_generation as dgl
|
|
95
|
-
help(dgl.gen_market_sample)
|
|
96
|
-
|
|
90
|
+
import mergeron.ext.tol_colors
|
|
97
91
|
|
|
92
|
+
Documentation for this package is in the form of the API Reference. Documentation for individual functions and classes is accessible within a python shell. For example:
|
|
98
93
|
|
|
94
|
+
import mergeron.core.data_generation as dgl
|
|
99
95
|
|
|
96
|
+
help(dgl.gen_market_sample)
|
|
100
97
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
mergeron/License.txt,sha256=csSkn4lgUmJ0VEw1KAFZ3a8q0L4XccUdJ6Jj6xSNNRY,1246
|
|
2
|
+
mergeron/__init__.py,sha256=gk_2mS6jdui5fVmVHHfZVaEG9LyO3vfRATnES29ajRA,398
|
|
3
|
+
mergeron/core/InCommon RSA Server CA cert chain.pem,sha256=W8TqydgY8jphQ4fr6WMdT6jLwqFjHLpx8fFr3LXub4s,4292
|
|
4
|
+
mergeron/core/__init__.py,sha256=iyfxkX3-SoMS4ZQZKHKPn8JEMN536vpty9oSZf0LHv8,115
|
|
5
|
+
mergeron/core/damodaran_margin_data.py,sha256=N1SU_PDjFMoCzCqone-If-gR4PpcG-MK5TfayusOJLs,8166
|
|
6
|
+
mergeron/core/excel_helper.py,sha256=Zx2pZVjrCV3y0IlpX-_18K3-gbvXxJgnJqPnST7Fg8E,7471
|
|
7
|
+
mergeron/core/ftc_merger_investigations_data.py,sha256=C37gFwSSgUFu98FW8ZDlUTgEaz4qYa1aKPC3SPtXChU,26553
|
|
8
|
+
mergeron/core/guidelines_standards.py,sha256=VrPH-WApl7o0AolomnJwx4UqZO1rEzEUiIRT8TRb4_c,43316
|
|
9
|
+
mergeron/core/proportions_tests.py,sha256=zALaWNrGOltsCp2ZSP4pcUfrOCaOoR5YDavqxQHADKA,15275
|
|
10
|
+
mergeron/core/pseudorandom_numbers.py,sha256=ZnIE1ixp3JcgJjlulgMsIcWFVAxeyjC9lsiMIk7OHlM,9430
|
|
11
|
+
mergeron/examples/__init__.py,sha256=iyfxkX3-SoMS4ZQZKHKPn8JEMN536vpty9oSZf0LHv8,115
|
|
12
|
+
mergeron/examples/concentration_as_diversion.py,sha256=3re3GKMbV0_g2DFb9_1DXmQZpJeoedAbo2s39GFld_o,20692
|
|
13
|
+
mergeron/examples/example_parameterizations.py,sha256=VP-hi7L0j30ffcEzmJ3P8mOj1VjwEWKCTZSx_CaVQxA,4197
|
|
14
|
+
mergeron/examples/guidelines_enforcement_patterns.py,sha256=gpAW9jLLg3bbf4ueCu71QUKIca_eb3tTtAuTwY14m3c,2235
|
|
15
|
+
mergeron/examples/investigations_stats_obs_tables.py,sha256=IDUZqZHiNvyO05d-yaYUJ_3-G_tchA4Z4MTaEICV9g0,17801
|
|
16
|
+
mergeron/examples/investigations_stats_sim_tables.py,sha256=WYWHjr-D3a6HWvTwb5WhmcvHn-Lho42kDcrECOWCcds,15724
|
|
17
|
+
mergeron/examples/plotSafeHarbs_symbolically.py,sha256=PgBQ6MMapE5LYHpvR_0iuMCuRPpK-dSea493mT2kU-o,1527
|
|
18
|
+
mergeron/examples/safeharbor_boundaries_for_mergers_with_asymmetric_shares.py,sha256=nGjo6mfLRMemeBsvv7Uky6m4R1NLzGID3IPlcFCGoJE,15601
|
|
19
|
+
mergeron/examples/safeharbor_boundaries_for_symmetric_firm_mergers.py,sha256=d8KsKVGTvIUhTlVIyc4lF5y4pBrNsNrOFhwXRRFwQiU,5778
|
|
20
|
+
mergeron/examples/sound_guppi_safeharbor.py,sha256=RGKlXZiPK6mAQdvSvw8-Ph99XsMhEfmsUQWJz-OAyiU,5961
|
|
21
|
+
mergeron/examples/summarize_ftc_investigations_data.py,sha256=gdArFnmiX08RHPu1uns3tUI4HlRORzaP4a3QfJd4n8o,1356
|
|
22
|
+
mergeron/examples/testIntrinsicClearanceRates.py,sha256=bIfQBiLC0nM1AZB2hAb8ZvOCfER0C7v5ka9XzxmKgCU,5350
|
|
23
|
+
mergeron/examples/visualize_empirical_margin_distribution.py,sha256=lBA38XVqiI7NsEtO--C37azrMRjzOVi1Fm5-_QV4DAk,2901
|
|
24
|
+
mergeron/examples/visualize_guidelines_tests.py,sha256=CDnDT8fIu2Ibed4NsUamzamLtPUSWNKKAdZWSE6CCo4,9051
|
|
25
|
+
mergeron/ext/__init__.py,sha256=iyfxkX3-SoMS4ZQZKHKPn8JEMN536vpty9oSZf0LHv8,115
|
|
26
|
+
mergeron/ext/tol_colors.py,sha256=wFOHZXWZonbp9mhmSGu9mVujBYhdTsvx9_WikMpoCmo,22229
|
|
27
|
+
mergeron/gen/__init__.py,sha256=iyfxkX3-SoMS4ZQZKHKPn8JEMN536vpty9oSZf0LHv8,115
|
|
28
|
+
mergeron/gen/data_generation.py,sha256=9D-ieJU6oYXf6vMckRRqjz-qdoA7w_3Y4BamlfLCUUU,41348
|
|
29
|
+
mergeron/gen/guidelines_tests.py,sha256=eoDQFIi6CZzSIyxZsaK5pdtwuIXHt8QwBQSV4VGpKs8,15164
|
|
30
|
+
mergeron/gen/investigations_stats.py,sha256=evm8bwaNUPRe9V-RR_DgsumoUYNLGKmkrhSpaBNXXfA,23005
|
|
31
|
+
mergeron/jinja_LaTex_templates/clrrate_cis_summary_table_template.tex.jinja2,sha256=m1fVYQC4Ra3OLk2W_EFeCzwYZ_Ihy9wZbAHs8rBfs00,4836
|
|
32
|
+
mergeron/jinja_LaTex_templates/ftcinvdata_byhhianddelta_table_template.tex.jinja2,sha256=ODEurkC0UHuWpjRUiQpeW85njSeUEUJYRdYg8gqoEq0,3642
|
|
33
|
+
mergeron/jinja_LaTex_templates/ftcinvdata_summary_table_template.tex.jinja2,sha256=h8_DEE0iskT9tnga5lZtxcoevN7pY4iKF-maErt4UU4,2906
|
|
34
|
+
mergeron/jinja_LaTex_templates/ftcinvdata_summarypaired_table_template.tex.jinja2,sha256=twdozEa-a4ahYlQ6_zVHnIS8Kxf1wtORPnnGMRIrc8U,5227
|
|
35
|
+
mergeron/jinja_LaTex_templates/mergeron.cls,sha256=AV2mk4-uERvAuMkE95Ka7el6LZsb0JZKP4ieiNCnfMU,4562
|
|
36
|
+
mergeron/jinja_LaTex_templates/mergeron_table_collection_template.tex.jinja2,sha256=nr6xUI0_2KHG4Sz9k1JFVQjs2h9qS9BGt1MeE6Tygs8,2429
|
|
37
|
+
mergeron/jinja_LaTex_templates/setup_tikz_tables.tex.jinja2,sha256=WKVxtp3eoMchfGliQAJMj4w2FtBkWG5z2V3-hBYUYUQ,3292
|
|
38
|
+
mergeron/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
39
|
+
mergeron-2024.738936.2.dist-info/METADATA,sha256=Ths3nxJp21K9_EB460S3yb88-mF7-VZtTEmITNze86s,6452
|
|
40
|
+
mergeron-2024.738936.2.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
41
|
+
mergeron-2024.738936.2.dist-info/RECORD,,
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
mergeron/License.txt,sha256=csSkn4lgUmJ0VEw1KAFZ3a8q0L4XccUdJ6Jj6xSNNRY,1246
|
|
2
|
-
mergeron/__init__.py,sha256=gk_2mS6jdui5fVmVHHfZVaEG9LyO3vfRATnES29ajRA,398
|
|
3
|
-
mergeron/core/InCommon RSA Server CA cert chain.pem,sha256=W8TqydgY8jphQ4fr6WMdT6jLwqFjHLpx8fFr3LXub4s,4292
|
|
4
|
-
mergeron/core/__init__.py,sha256=ILdON6CQ2R_UW75v29uP39KxB_spSv-au7dWZ8Eq0VU,99
|
|
5
|
-
mergeron/core/damodaran_margin_data.py,sha256=N1SU_PDjFMoCzCqone-If-gR4PpcG-MK5TfayusOJLs,8166
|
|
6
|
-
mergeron/core/excel_helper.py,sha256=Zx2pZVjrCV3y0IlpX-_18K3-gbvXxJgnJqPnST7Fg8E,7471
|
|
7
|
-
mergeron/core/ftc_merger_investigations_data.py,sha256=C37gFwSSgUFu98FW8ZDlUTgEaz4qYa1aKPC3SPtXChU,26553
|
|
8
|
-
mergeron/core/guidelines_standards.py,sha256=eNqxjezxBAYHHOAmOxgBcwnSi60IOaDngCSt08P-bsE,36826
|
|
9
|
-
mergeron/core/proportions_tests.py,sha256=R6oORz9ux3Cxz4rE0EKZtuRtX_iouEegjh9vTu-WiTo,15342
|
|
10
|
-
mergeron/core/pseudorandom_numbers.py,sha256=gfkFSihq4n8FF21k5fu_DvWxBUUwoiQvERyNcYwalIA,9445
|
|
11
|
-
mergeron/examples/__init__.py,sha256=ILdON6CQ2R_UW75v29uP39KxB_spSv-au7dWZ8Eq0VU,99
|
|
12
|
-
mergeron/examples/concentration_as_diversion.py,sha256=CLOZAS3qyUyuZEKoQ2neeoH_BF9LiHx1P4JNTh64nks,21211
|
|
13
|
-
mergeron/examples/example_parameterizations.py,sha256=VP-hi7L0j30ffcEzmJ3P8mOj1VjwEWKCTZSx_CaVQxA,4197
|
|
14
|
-
mergeron/examples/guidelines_enforcement_patterns.py,sha256=gpAW9jLLg3bbf4ueCu71QUKIca_eb3tTtAuTwY14m3c,2235
|
|
15
|
-
mergeron/examples/investigations_stats_obs_tables.py,sha256=lMxrMPb9cCBXiE0GYNK91cCsWy3kFg8_7yxoeEWAJZ4,17254
|
|
16
|
-
mergeron/examples/investigations_stats_sim_tables.py,sha256=M9mXWYeRJ_XlImlZWQ-R-uKP2oY48q3y0QbtoXXd6KE,15039
|
|
17
|
-
mergeron/examples/plotSafeHarbs_symbolically.py,sha256=UEBB-8lwi3k3qtmQtCJFYDqvBzoxFRP5b0GmutJUa4g,1535
|
|
18
|
-
mergeron/examples/safeharbor_boundaries_for_mergers_with_asymmetric_shares.py,sha256=xVEgVN9gqOZcKLxdiPug8fprUybmDIIQ6IyDz9HVi5Q,15514
|
|
19
|
-
mergeron/examples/safeharbor_boundaries_for_symmetric_firm_mergers.py,sha256=hdcY82CFhKjdsbQQ8ixPORAbUfvDcN3U_k5LNkDon8M,6026
|
|
20
|
-
mergeron/examples/sound_guppi_safeharbor.py,sha256=rNVAZiXTvR2vsLGGcABwLq5p34CvOjl_Rj9U9xigMDk,5837
|
|
21
|
-
mergeron/examples/summarize_ftc_investigations_data.py,sha256=gdArFnmiX08RHPu1uns3tUI4HlRORzaP4a3QfJd4n8o,1356
|
|
22
|
-
mergeron/examples/testIntrinsicClearanceRates.py,sha256=FDUJu0uu9EFjV_hMYdZPkHqhrFSikSgDecGFF5gnCLw,5370
|
|
23
|
-
mergeron/examples/visualize_empirical_margin_distribution.py,sha256=mGJEWiTX43wqYBFWaWrXy1kqZb5lMIGGagKPFC9_lr4,2906
|
|
24
|
-
mergeron/examples/visualize_guidelines_tests_scatterplots.py,sha256=QOSAZfODvrbbFsXbOPBMK7if0EJV9F3yIlKTzwD0E5o,9196
|
|
25
|
-
mergeron/ext/__init__.py,sha256=ILdON6CQ2R_UW75v29uP39KxB_spSv-au7dWZ8Eq0VU,99
|
|
26
|
-
mergeron/ext/tol_colors.py,sha256=wFOHZXWZonbp9mhmSGu9mVujBYhdTsvx9_WikMpoCmo,22229
|
|
27
|
-
mergeron/gen/__init__.py,sha256=ILdON6CQ2R_UW75v29uP39KxB_spSv-au7dWZ8Eq0VU,99
|
|
28
|
-
mergeron/gen/data_generation.py,sha256=Ig0RbQtOzatZVxtbTYvL9NOHwJ73qXAoZz9hE_bygRI,41285
|
|
29
|
-
mergeron/gen/guidelines_tests.py,sha256=fabMMuTC-WiKCYUnhBWVNWzAPJlf7Ssr7kK56z1tU_8,15107
|
|
30
|
-
mergeron/gen/investigations_stats.py,sha256=KJ0eOZrkyymf5mZ59vQrWnG5aB4YCv-H3tvDgAcyF4A,21407
|
|
31
|
-
mergeron/jinja_LaTex_templates/clrrate_cis_summary_table_template.tex.jinja2,sha256=wmbFxz0dKqUXDfZ7B6K_IaYny1CalZ4-x1LFbdaSm68,4853
|
|
32
|
-
mergeron/jinja_LaTex_templates/ftcinvdata_byhhianddelta_table_template.tex.jinja2,sha256=B7qwTOdxlTyCB6ixMOwadko-fXSB8pAEDndpNX4sOWE,3661
|
|
33
|
-
mergeron/jinja_LaTex_templates/ftcinvdata_summary_table_template.tex.jinja2,sha256=tzbngaKenXhSUbMe1QKiqP-kN3RXGb34mgBwuds4-1M,2924
|
|
34
|
-
mergeron/jinja_LaTex_templates/ftcinvdata_summarypaired_table_template.tex.jinja2,sha256=QxG1DIhq6_-9NGad_t9-7Jfsn2Zcov3nUFdLnaW3mFI,5244
|
|
35
|
-
mergeron/jinja_LaTex_templates/setup_tikz_tables.tex.jinja2,sha256=WKVxtp3eoMchfGliQAJMj4w2FtBkWG5z2V3-hBYUYUQ,3292
|
|
36
|
-
mergeron/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
37
|
-
mergeron-2024.738930.0.dist-info/METADATA,sha256=ZjyGzyKjQzyNAdO-zvJXhkKvazfdAJ7YHZOLoxvgaJ0,6557
|
|
38
|
-
mergeron-2024.738930.0.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
39
|
-
mergeron-2024.738930.0.dist-info/RECORD,,
|
|
File without changes
|