# `antitrust` Reference Manual

#### Charles Taragin

#### Michael Sandfort

#### 2025-09-04

Disclaimer: The views expressed herein are entirely those of the authors and should not be purported to reflect those of the Federal Trade Commission or the U.S. Department of Justice. The `antitrust` package has been released into the public domain without warranty of any kind, expressed or implied. We thank Ronald Drennan, Robert Majure, Russell Pittman, Gloria Sheu, Nathan Miller, Randy Chugh, Marc Remer, Alexander Raskovich, William Drake, Thomas Jeitschko, Greg Werden, Luke Froeb, Nicholas Hill, and Conor Ryan. Address: Bureau of Economics #202, Federal Trade Commission, 600 Pennsylvania Ave. NW, Washington, DC 20530. email: ctaragin+antitrustr@gmail.com and michael.sandfort@usdoj.gov.

# Introduction

`antitrust` is a suite of tools that may be used in assessing the implications of horizontal mergers. The package contains functions that can calibrate the underlying parameters of a number of different supply and demand models as well as simulate the effects of a horizontal merger in different strategic environments. The output generated by these tools includes interesting features such as predicted price increases, welfare measures, demand elasticities, and the Hypothetical Monopolist Test. `antitrust` also includes functions that can assess the effects of a horizontal merger in other ways, including: compensating marginal cost reduction and upwards pricing pressure.

There are four features of `antitrust` that make it particularly useful for antitrust practitioners. First, `antitrust` collects a number of useful models onto a common platform, making it easy for practitioners to compare and contrast the results from different models.

Second, `antitrust` is open source software that runs on the R open source platform. Practically speaking, this means that practitioners not only have the flexibility to run this software wherever and whenever they wish, but they can also modify and extend the software as they see fit. We hope that having this collection of tools on a common, open source platform will facilitate discussion and collaboration among practitioners.

Third, `antitrust` includes a web interface built using `shiny`. While this interface does not give users access to the full array of functionality in `antitrust`, it is simple to use and may provide first-time users, particularly those who are unfamiliar with R, a gentler introduction to `antitrust`. The interface may be invoked using the `ct_shiny` function in the `competitiontoolbox` package.

Finally, the functions included in `antitrust` vary in the amount of information they require. Some functions, such as `upp.bertrand`, `cmcr.bertrand` and `cmcr.cournot` require only information on the merging parties’ products, while functions like `linear`, `pcaids`, and `logit` require at least some information on all market participants. Table 10.1 summarizes the information requirements of all the functions included in `antitrust`.

The limited information needed for the economic models used in `antitrust` comes at some cost. First, the output of these models is sensitive to the supplied inputs. For instance, when employing the Bertrand model, inaccurate margins, shares and prices can yield inaccurate estimates of demand and cost parameters which can in turn yield incorrect predictions of a merger’s effects. Calibrating model parameters with an array of plausible inputs will yield a range of outputs and illustrate the sensitivity of each model to those inputs.

Second, none of the parameters calibrated by `antitrust` may be used in frequentist statistical hypothesis testing. In other words, while the economic models in `antitrust` may be used to generate reliable estimates of the effects of the merger, statistical tests cannot be used to determine the accuracy of these estimates. Accomplishing this requires additional data and is beyond the current scope of `antitrust`.

This document provides an introduction to the economic theory upon which the `antitrust` package’s functions are built. Please use the `help` function for assistance invoking any of the functions, classes, or methods included in `antitrust`. In particular, note that the help pages for all the functions listed in Table 10.1 contain examples illustrating how to use the function.

# Part 1: Unilateral Effects

# 1 The Bertrand Pricing Game

Much of `antitrust`‘s functionality is built around the Bertrand pricing game. This version of the game assumes that firms producing multiple differentiated products with distinct, constant, marginal costs simultaneously set their products’ prices to maximize their profits. In this model, prices are strategic complements in the sense that increasing the price of one product causes some customers to switch to other products, raising the quantities sold and therefore the profit-maximizing prices of these other products. Ultimately, it is the magnitude of these lost sales that, at the margin, dissuades firms from raising their prices further.

Mergers are modeled by assuming that the merging parties’ products are placed under common ownership, which, if the products are substitutes, allows the merged entity to recapture some of the sales that would otherwise be lost. As a result, the Bertrand model (for some demand systems) predicts that, absent any efficiencies affecting the marginal cost of production, the prices of all of the merging parties’ products will increase, and the price of all other products in the market will not decrease.

Currently, this version of the Bertrand model does not allow firms to add or reposition products, or allow firms to engage in some forms of price discrimination.1

## 1.1 The Game

Suppose that there are \(K\) firms in a market, and that each of the \(k \in K\) firms produces \(n_k\) products. 2 Let \(n=\sum\limits_{k\in K}n_k\) denote the number of products sold by all \(K\) firms. The Bertrand model assumes that firms simultaneously set their products’ prices in order to maximize their profits. This model also assumes that all firms can perfectly observe each others’ prices, quantities, costs, and product characteristics.

Functions in `antitrust`’s Bertrand model also adopt the additional assumption that each product is produced using its own distinct constant marginal cost technology \(c_i\), for all \(i \in n\). As we will see, this assumption is necessary when information is limited.

### 1.1.1 The Mathematical Model

Firm \(k \in K\) chooses the prices \(\{p_i\}_{i=1}^{n_k}\) of its products so as to maximize profits. Mathematically, firm \(k\) solves:

\[\begin{align*} \max_{\{p_i\}_{i=1}^{n_k}} &\sum_{i=1}^{n_k}(\omega_{ik})(p_i - c_i)q_i, \end{align*}\]

where \(\omega_{ik}\) is the share of product \(i\)’s profits earned by firm \(k\), so that \(\sum\limits_{k\in K} \omega_{ik}\le 1\). \(q_i\), the quantity sold of product \(i\), is assumed to be a twice differentiable function of all product prices.

Differentiating profits with respect to each \(p_i\) yields the following first order conditions (FOCs):

\[\begin{align*} \partial p_i&\equiv \omega_{ik}q_i +\sum_{j=1}^{n}\omega_{jk}( p_j - c_j)\frac{\partial q_j}{\partial p_i}=0& \mbox{ for all $i\in n_k$} \end{align*}\]

which may be rewritten as

\[\begin{align*} \partial p_i&\equiv \omega_{ik}r_i + \sum_{j=1}^{n} \omega_{jk}r_jm_j\epsilon_{ji}=0& \mbox{ for all $i\in n_k$}, \end{align*}\]

where \(r_i\equiv\frac{p_iq_i}{\sum\limits_{j=1}^np_jq_j}\) is product \(i\)’s revenue share, \(m_i\equiv\frac{p_i-c_i}{p_i}\) is product \(i\)’s gross margin, and \(\epsilon_{ij}\equiv\frac{\partial q_i}{\partial p_j}\frac{p_j}{q_i}\) is the elasticity of product \(i\) with respect to the price of product \(j\).

The FOCs for all products may be stacked and then represented using the following matrix notation: \[\begin{align*} (r\circ diag(\Omega)) + (E\circ\Omega)'(r \circ m)=0 \tag{1.1} \end{align*}\]

rearranging yields

\[\begin{align*} m_{Bertrand}= -\{(E\circ\Omega)'^{-1}(r\circ diag(\Omega))\} \circ \frac{1}{r} \tag{1.2} \end{align*}\]

where \(r\) and \(m\) are \(n\)-length vectors of revenue shares and margins, \(E = \left(\begin{smallmatrix} \epsilon_{11}&\ldots&\epsilon_{1n}\\\vdots &\ddots&\vdots\\\epsilon_{n1}&\ldots&\epsilon_{nn} \end{smallmatrix}\right)\) is a \(n \times n\) matrix of own- and cross-price elasticities, and \(\Omega=\left(\begin{smallmatrix} \omega_{11}&\ldots&\omega_{1n}\\\vdots &\ddots&\vdots\\\omega_{n1}&\ldots&\omega_{nn} \end{smallmatrix}\right)\) is an \(n \times n\) matrix whose \(i,j\)th element equals the share of product \(j\)’s profits owned by the firm setting product \(i\)’s price.3 In many cases, product \(i\) and \(j\) are wholly owned by a single firm, in which cases the \(i,j\)th element of \(\Omega\) equals 1 if \(i\) and \(j\) are owned by the same firm and 0 otherwise. Under partial ownership, the columns of the matrix formed from the unique rows of \(\Omega\) must sum to 1. ‘\(diag\)’ returns the diagonal of a square matrix and ‘\(\circ\)’ is the Hadamard (entry-wise) product operator.

The solution to system (1.1) yields equilibrium prices conditional on the ownership structure \(\Omega\). A (partial) merger is modeled as the solution to system (1.1) where \(\Omega\) is changed to reflect the change in ownership.

### 1.1.2 Adding Exogenous Capacity Constraints

The Bertrand model described above assumes that products are produced with constant marginal costs and no capacity constraints. Here, we extend this model to allow for exogenous capacity constraints.4

Firm \(k \in K\) chooses the prices \(\{p_i\}_{i=1}^{n_k}\) of its products so as to maximize profits, subject to capacity constraints \(\{t_i\}_{i=1}^{n_k}\). Mathematically, firm \(k\) solves:

\[\begin{align*} \max_{\{p_i\}_{i=1}^{n_k}} &\sum_{i=1}^{n}\omega_{ik}(p_i - c_i)q_i, \end{align*}\]

subject to

\[\begin{align*} & q_i \le t_i,&i=1\ldots n_k \end{align*}\]

In general, either the capacity constraint for product \(i\) will bind and the firm will be forced to produce less of \(i\) than it would find optimal, or the capacity constraint will not bind, and the firm will produce the optimal amount implied by the FOCs. In the former, it can be shown that \(\partial p_i\le 0\) and \(q_i - t_i=0\), while in the latter \(\partial p_i=0\) and \(q_i - t_i \le 0\). Mathematically, these cases can be written as

\[\begin{align*} \max\{\partial p_i, q_i - t_i\}=0,&i=1\ldots n_k \tag{1.3} \end{align*}\]

## 1.2 Calibrating Model Demand and Cost Parameters

Although the functions listed in the “Bertrand” section of Table 10.1 are based on the Bertrand model and use similar inputs, they can yield very different equilibrium price predictions. This can occur for two reasons. First, these functions use different demand systems with very different curvatures to simulate the price effects from a merger. Indeed, equation (1.1) indicates that it is these curvatures, embodied in the matrix of own- and cross-price elasticities \(E\), that play an important role in calculating price effects.

Second, binding capacity constraints can limit the incentive of the merging parties to raise prices, or the ability of other firms in the market to respond to a price increase. If, pre-merger, none of the merging parties’ products are capacity constrained but some of the other firms’ products are, then post-merger equilibrium prices will typically be higher than if none of the capacity constraints were binding pre-merger. Also, if pre-merger, some of the merging parties’ products are capacity constrained but none of the other firms’ products are constrained, then post-merger equilibrium prices will typically be lower than if none of the capacity constraints were binding pre-merger.

For all the demand specifications listed in the “Bertrand” section of Table 10.1, the calibration strategy is the same. First, we assume that quantities/shares and (with the exception of LA-AIDS) prices are observed for all products in the market, and that margins for some products are observed. Our decision to treat quantities, prices, and margins as primitives comes directly from equation (1.1). For capacity-constrained models, equation (1.3) indicates that all product capacities must be observed as well.

In addition to quantities, prices, some margins and capacities, we assume that users observe diversion ratios. Diversion ratios come in two forms: quantity diversion and revenue diversion. The quantity diversion from product \(i\) to product \(j\), \(d^q_{ij}\), is defined as the percentage of all of \(i\)’s lost unit sales that switch to \(j\) due to a price increase in product \(i\), while the revenue diversion from product \(i\) to product \(j\), \(d^r_{ij}\), is defined as the percentage of all of \(i\)’s lost revenue that switches to \(j\) due to a price increase in product \(i\). Mathematically, quantity and revenue diversion may be represented as \[\begin{align*} d^q_{ij}=&-\frac{\frac{\partial q_j}{\partial p_i}}{\frac{\partial \nonumber q_i}{\partial p_i}}\\ =& -\frac{\epsilon_{ji}q_j}{\epsilon_{ii}q_i}\\ \tag{1.4} \end{align*}\]

\[\begin{align*} d^r_{ij}=&-\frac{\frac{\partial p_jq_j}{\partial p_i}}{\frac{\partial \nonumber p_iq_i}{\partial p_i}} \\ =&-\frac{\epsilon_{ji}(\epsilon_{jj}-1)r_j}{\epsilon_{jj}(\epsilon_{ii}-1)r_i} \tag{1.5} \end{align*}\]

Note that \(d^q_{ij},d^r_{ij}\) are restricted to be between -1 and 1, and are positive if products \(i\) and \(j\) are substitutes and negative if they are complements. Additionally, conditional on customers switching from product \(i\), they must switch to another product (i.e. \(\sum_{j}d_{ij}\le 0\)). For all the models included in `antitrust` , we assume that \(i\) and \(j\) are not complements (\(d_{ij}\ge 0\)) and for some demand models (i.e. AIDS) we will assume that \(\sum_{j}d_{ij} = 0\).

Although diversion ratios are not present in either equation (1.1) or (1.3), these definitions indicate that diversion ratios may be helpful in recovering the matrix of own- and cross-price elasticities \(E\). Indeed, for a number of the demand systems described below, diversions will be used for just this purpose.

We further assume that all of this information represents the outcome of the unique pre-merger equilibrium for firms in the market playing the static Bertrand pricing game described above. We then substitute observed margins, shares and prices into either equation (1.1) or (1.3), which is now solely a function of demand parameters, and then solve for the coefficient(s) on prices. Once the price coefficients have been estimated, we use observed prices and the demand equations to estimate the intercepts.

Often, there are more FOCs than unknown price coefficients. For instance, under Logit demand, there is only one price parameter that needs to be estimated and up to \(n\) FOCs with which to estimate it. This means that at a minimum, users need only supply enough margin information to complete a single product’s FOC. If that product happens to be owned by a single-product firm, then only one margin is necessary. On the other hand, if the product happens to be owned by a multi-product firm, then at a minimum, all the margins for products owned by that firm must be supplied.

The (Marshallian) demand specifications used in `antitrust` can be grouped into two categories: demand systems that are derived from a representative consumer’s expenditure function and demand systems that are derived from a representative consumer’s indirect utility function. The linear, log-linear, and LA-AIDS demand systems fall into the former category, while the Logit and CES fall into the latter category. Below, we briefly discuss these demand systems as well as the assumptions and/or data needed to recover estimates of the demand parameters.

We conclude this section with a discussion of how calibrated demand parameters and the FOCs can be used to calibrate product-specific constant marginal costs.

### 1.2.1 Linear Demand

The Bertrand model with linear demand may be implemented using the `linear` function.

The linear demand system assumes that the demand for each product \(i \in n\) in the market is given by

\[\begin{align*} q_i=& \alpha_i + \sum_{j\in n}\beta_{ij} p_j \mbox{ for all $i\in n$},& \end{align*}\]

which may be written in matrix notation as

\[\begin{align*} q=&\alpha + Bp,& \end{align*}\]

where \(q\ge 0,p>0\) are vectors of product quantities and prices, \(\alpha\) is a vector of product specific demand intercepts and \(B\) is a matrix of slopes. This demand system yields the following own- and cross-price elasticities: \[\begin{align*} \epsilon_{ii}=&\beta_{ii}\frac{p_i}{q_i},& \epsilon_{ii}<0\\ \epsilon_{ij}=&\beta_{ij}\frac{p_i}{q_j},& \epsilon_{ij} \ge 0 \end{align*}\]

Without additional restrictions and/or data, there are \(2n\) equations (\(n\) FOCs and \(n\) demand equations) but \(n(n+1)\) unknown parameters, which means that there are more unknowns than equations and the demand parameters \(\alpha,B\) cannot be recovered. To remedy this, we assume that the quantity diversion is observed.5 With the linear model, this assumption increases the number of equations to \(n(n+1)\), allowing estimates of \(\alpha\) and \(B\) to be recovered if prices, quantities and margins are observed for all products.

One known issue with the linear demand system is that, while analytically tractable, it is not rooted in consumer choice theory. Indeed, it has been shown that the linear demand system without income effects is consistent with the axioms of consumer choice if \(B\) is a symmetric matrix and satisfies homogeneity of degree 0 in prices.6 Imposing these additional assumptions reduces the number of unknown parameters to \(\frac{n(n+3)}{2}\) (\(\frac{n(n+1)}{2}\) elements of \(B\) and \(n\) intercepts), which means that the system is over-identified.7

The linear demand system can be modified to allow for substitution to an outside (numeraire) good. To accomplish this, assume that the price of the outside product is not set strategically (i.e. not set as part of the Nash-Bertrand game played by the manufacturers of the \(n\) products included in the simulation). It can be shown that if \(B\) is symmetric and satisfies homogeneity of degree 0 in prices when the outside good is included, then \(\sum_{j\in n}d_{ij}<0\).8 In other words, under symmetry and homogeneity of degree 0, users may include a non-strategically priced outside good by simply allowing the rows of the diversion matrix to sum to less than zero. The extent to which consumers substitute from product \(i\) to the outside good may be controlled by increasing the magnitude of \(\sum_{j \in n } d_{ij}\).

By default, the `calcSlopes`, called by the `linear` function to calibrate the linear demand parameters, assumes that the above assumptions hold and uses a minimum distance algorithm to find the elements of \(B\) that best satisfy i) all the FOCs for which there is sufficient information and ii) the diversion equations \(d_{ij}=-\frac{\beta_{ji}}{\beta_{ii}}\), subject to the constraints that \(\beta_{ij}\ge 0\) for all \(i\ne j\) and \(\sum_j b_{ij}\le 0\) for all \(i\). The model intercepts can then be recovered from the linear demand equations.

For completeness, `linear` includes the ‘symmetry’ argument that, when set equal to FALSE, instructs `calcSlopes` to calibrate demand parameters without imposing symmetry and homogeneity of degree zero in prices on \(B\). Note that when ‘symmetry’ is FALSE, the system of equations is just-identified, which means that prices, quantities, and margins must be observed for all products. Also, note that when ‘symmetry’ is FALSE, linear demand is unlikely to be consistent with consumer choice theory, and welfare measures such as compensating variation cannot be calculated.9

### 1.2.2 Log-Linear Demand

The Bertrand model with log-linear demand may be implemented using the `loglinear` function.

The log-linear demand system assumes that the demand for each product \(i \in n\) in the market is given by

\[\begin{align*} \log(q_i)=& \alpha_i + \sum_{j\in n}\beta_{ij} \log(p_j) \mbox{ for all $i\in n$},& \beta_{ii}<0 \end{align*}\]

which may be written in matrix notation as

\[\begin{align*} \log(q)=&\alpha + B\log(p),& \end{align*}\]

where \(q,p\) are vectors of product quantities and prices, \(\alpha\) is a vector of product specific demand intercepts and \(B\) is a matrix of slopes. This demand system yields the following own- and cross-price elasticities: \[\begin{align*} \epsilon_{ii}=&\beta_{ii} \\ \epsilon_{ij}=&\beta_{ij} \end{align*}\]

As with linear demand, there are \(2n\) equations but \(n(n+1)\) unknown parameters, which means the demand parameters \(\alpha,B\) cannot be recovered without additional assumptions. As before, we will assume that quantity diversion is known and by default occurs according to quantity share. However, it turns out that the parameter restrictions needed to make log-linear demand consistent with consumer choice theory are likely to be inconsistent with the Bertrand model.10 As such, `loglinear` employs only the first assumption. Consequently, the demand parameters are just-identified, which means that users must supply `loglinear` with prices, margins, and quantities for all products in the market.

### 1.2.3 LA-AIDS Demand

The Bertrand model with the linear approximate Almost Ideal Demand System (LA-AIDS) may be implemented using the `aids` function.

The LA-AIDS without income effects assumes that the demand for each product \(i \in n\) in the market is given by

\[\begin{align*} r_i=& \alpha_i + \sum_{j\in n}\beta_{ij} \log(p_j) \mbox{ for all $i\in n$},& \beta_{ii}<0 \end{align*}\]

which may be written in matrix notation as

\[\begin{align*} r=&\alpha + B\log(p),& \end{align*}\]

where \(r,p\) are vectors of product revenue shares and prices, \(\alpha\) is a vector of product-specific demand intercepts and \(B\) is a matrix of slopes.11

The LA-AIDS model yields the following own- and cross-price elasticities: \[\begin{align*} \epsilon_{ii}=&-1 + \frac{\beta_{ii}}{r_i} + r_i(1+ \epsilon),& \epsilon_{ii}<0 \\ \epsilon_{ij}=&\frac{\beta_{ij}}{r_i} + r_j(1+ \epsilon),& \epsilon_{ij}\ge 0 \end{align*}\]

where \(\epsilon\) is the market elasticity of demand.

As with the linear demand system, the LA-AIDS model assumes that \(B\) is symmetric, satisfies homogeneity of degree zero in prices, and that diversion is known. The LA-AIDS model, however, assumes that revenue diversion, rather than quantity diversion is observed.12 Under these two assumptions, there are \(\frac{n(n+3)}{2}\) unknown demand parameters (\(\frac{n(n-1)}{2}\) diagonal elements in \(B\), \(n\) diagonal elements, and \(n\) intercepts) and up to \(n(n+1)\) equations (\(n(n-1)\) diversion equations, \(n\) FOCs and \(n\) demand equations), in which case the system is over-identified.13

One interesting feature of the LA-AIDS that distinguishes it from the linear and log-linear demand systems included in `antitrust` is that LA-AIDS elasticities incorporate \(\epsilon\), the market elasticity. Roughly speaking, \(\epsilon\) controls the extent to which consumers substitute to products outside the \(n\) products included in the simulation given a small change in market-wide product prices. Here, we assume that \(\epsilon\) is a parameter whose value is not a function of product prices.14 While in some cases \(\epsilon\) can be readily observed, in others it cannot. For the latter, the `calcSlopes` method (called by `aids`) exploits the fact that there are more equations than unknowns to identify both the unknown demand parameters described above as well as \(\epsilon\).

The `calcSlopes` method, called by the `aids` function to calibrate the AIDS parameters uses a minimum distance algorithm to find the \(\epsilon\) and a single diagonal element of \(B\) that best satisfy i) all the FOCs for which there is sufficient information and ii) the diversion equations \(d_{ij}=-\frac{\beta_{ji}}{\beta_{ii}}\), and iii) the market elasticity (if supplied using the ‘mktElast’ argument). The \(\beta_{ii}\)s are recovered from the fact that \(\sum_{j}d_{ij}=0\); customers must switch to a product included in the model.

If only a single product’s own-price elasticity and \(\epsilon\) is observed, then `pcaids` may be used in lieu of `aids` to calibrate the LA-AIDS parameters.15

Another distinguishing feature of the LA-AIDS model is that it does not require any information on product prices in order to simulate merger price effects. The LA-AIDS accomplishes this by using the supplied margin and revenue information to estimate \(B\), but not \(\alpha\). There are however, a few drawbacks to not using pricing information. First, while merger-specific price changes may be calculated, pre- and post-merger price levels cannot. Second, welfare measures like compensating variation cannot be calculated. Prices are an optional input to `aids` and `pcaids`, and when they are supplied both price levels and welfare measures may be calculated.

#### Nested LA-AIDS

The nested LA-AIDS may be implemented using `pcaids.nests`.

By default, `aids` and `pcaids` assume that pre-merger, diversion occurs according to revenue share. While convenient, one potential drawback of this assumption is that diversion according to share may not accurately represent consumer substitution patterns. `antitrust` provides two ways to relax diversion according to share. First, both of these functions contain a ‘diversions’ argument that may be used to supply a \(k \times k\) matrix of revenue diversions.

Alternatively, users can place the \(n\) products into \(H\ge 2\) nests, with products in the same nest assumed to be closer substitutes than products in different nests.16 This approach requires users to calibrate \(\frac{H(H-1)}{2}\) nesting parameters, where each parameter measures the extent to which the diversion between any two products in different nests deviates from diversion according to share.17 Accordingly, users must supply margin information for at least \(\frac{H(H-1)}{2}\) products.18

### 1.2.4 Logit Demand

The Bertrand model with Logit demand may be implemented using the `logit` function.

Logit demand is based on a discrete choice model that assumes that each consumer is willing to purchase at most a single unit of one product from the \(n\) products available in the market. The assumptions underlying Logit demand imply that the probability that a consumer purchases product \(i \in n\) is given by

\[\begin{align*} s_i=& \frac{\exp(V_i)}{\sum\limits_{k \in n}\exp(V_k)},& \end{align*}\]

where \(s_i\) is product \(i\)’s quantity share and \(V_i\) is the (average) indirect utility that a consumer receives from purchasing product \(i\). We assume that \(V_i\) takes on the following form

\[\begin{align*} V_i=&\delta_i + \alpha p_i,&\alpha<0. \end{align*}\]

The Logit demand system yields the following own- and cross-price elasticities: \[\begin{align*} \epsilon_{ii}=&\alpha (1-s_i)p_i \\ \epsilon_{ij}=&-\alpha s_jp_j \end{align*}\]

Logit demand has \(n+1\) parameters to estimate (\(n\) \(\delta\)s and \(\alpha\)) and up to \(2n\) equations with which to estimate them (up to \(n\) complete FOCs and \(n\) choice probabilities). `calcSlopes` exploits this over-identification by employing a minimum distance algorithm to find the value for \(\alpha\) that best satisfies all the FOCs for which there are data. The \(\delta\)s are then recovered from the choice probabilities.

One feature of the `logit` function is that the function allows users to specify whether or not consumers must purchase one of the \(n\) products sold in the market or whether consumers can choose to purchase an “outside” good. `logit` determines whether users wish to include an outside option by determining if the user-supplied quantity shares \(s_i\) sum to 1. If the shares sum to 1, then no outside good is included and by default \(\delta_1\) is normalized to 0.19 Otherwise, an outside good is included whose \(\delta\) is normalized to 0, price is set equal to ‘priceOutside’ (default 0), and whose share equals \(s_0=1-\sum\limits_{i\in n}s_i\).20

#### Logit with Capacity Constraints

The capacity-constrained Bertrand model with Logit demand may be implemented using the `logit.cap` function.

The Logit Model with capacity constraints is calibrated by noting that in the pre-merger equilibrium, if product \(i\) is capacity constrained then \(\frac{\partial q_i}{\partial p_j}=0\) for all \(j \in n\). This condition implies that an estimate of the price coefficient \(\alpha\) may be obtained by starting with the FOCs in equation (1.1), deleting all rows pertaining to a capacity-constrained product and then for the remaining rows, zeroing out the appropriate elements of the Logit elasticity matrix \(E\). A minimum distance estimator on the surviving FOCs is then employed to estimate the price coefficient. Once the price coefficient has been estimated, the technique outlined above may be used to uncover the vector of mean valuations.

#### Nested Logit

The Bertrand model with nested Logit demand may be implemented using the `logit.nests` function.

By construction, Logit demand assumes that diversion occurs according to quantity share. While convenient, one potential drawback of this assumption is that diversion according to share may not accurately represent consumer substitution patterns. One way to relax this assumption is to group the \(n\) products into \(n > H \ge 2\) nests, with products in the same nest assumed to be closer substitutes than products in different nests.21 `logit.nests`‘s ’nests’ argument may be used to specify a length-\(n\) vector identifying which nest each product belongs to.

The assumptions underlying nested Logit demand imply that the probability that a consumer purchases product \(i\) in nest \(h\in H\) is given by \[\begin{align*} s_i=& s_{i|h}s_h,&\\ s_{i|h}=&\frac{\exp(\frac{V_i}{\sigma_h})}{\sum\limits_{k \in h}\exp(\frac{V_k}{\sigma_h})},& 1 \ge \sigma_h \ge 0\\ s_{h}=& \frac{\exp(\sigma_hI_h)}{\sum\limits_{l\in H}\exp(\sigma_lI_l)},& I_h=\log\sum\limits_{k \in h}\exp\left(\frac{V_k}{\sigma_h}\right). \end{align*}\] We assume that \(V_i\) takes on the following form \[\begin{align*} V_i=&\delta_i + \alpha p_i,& \alpha\le 0. \end{align*}\]

The Nested Logit demand system yields the following own- and cross-price elasticities: \[\begin{align*} \epsilon_{ii}=& [1-s_i + (\frac{1}{\sigma_h}-1)(1-s_{i|h})]\alpha p_i, \\ \epsilon_{ij}=&\begin{cases} -[s_j + (\frac{1}{\sigma_h}-1)s_{j|h}]\alpha p_j, & \text{if $i,j$ are both in nest $h$}.\\ -\alpha s_jp_j, & \text{if $i$ is not in nest $h$ but $j$ is}. \end{cases} \end{align*}\]

Notice how these cross-price elasticities are identical to the non-nested Logit elasticities when products \(i,j\) are in different nests, but are larger when products \(i,j\) are in the same nests. This observation is consistent with the claim that products within a nest are closer substitutes than products outside of a nest.

In contrast to nested LA-AIDS, which must calibrate \(\frac{H(H-1)}{2}\) nesting parameters, only \(H\) nesting parameters must be calibrated. By default, `calcSlopes` constrains all the nesting parameters to be equal to one another, \(\sigma_h=\sigma\) for all \(h\in H\). This reduces the number of parameters that need to be estimated to \(n+2\) (\(n\) \(\delta\)s, \(\alpha,\sigma\)) which means users must furnish enough margin information to complete at least two FOCs. Setting `logit.nests`‘s ’constraint’ argument to FALSE causes the `calcSlopes` method to relax the constraint and calibrate a separate nesting parameter for each nest. Relaxing the constraint increases the number of parameters that must be estimated to \(n+H+1\), which means that users must furnish margin information sufficient to complete at least \(H+1\) FOCs. Moreover, users must supply at least one margin per nest for each non-singleton nest. In other words, if nest \(h\in H\) contains \(n_h>1\) products, then at least one product margin from nest \(h\) must be supplied.

Like `logit`, `logit.nests` also allows users to specify whether or not consumers must purchase one of the \(n\) products sold in the market or whether consumers can choose to purchase an “outside” good. This works almost the same in `logit.nests` as `logit`, except that when the sum of market revenue shares is less than 1, the outside good is placed in its own nest with its nesting parameter normalized to 1.

#### (Nested) Logit With Unobserved Outside Share

The Bertrand model with (nested) Logit demand and unobserved outside share may be implemented using the (`logit.nests.alm`) `logit.alm` function.

The Bertrand model with Logit demand described above assumes that when an outside good is included, its share is known. In some instances, however, users may find it difficult to reliably estimate the share of the outside good. The `logit.alm` function attempts to circumvent this issue by treating the share of the outside good as a nuisance parameter and using additional margin information to estimate that parameter.22

`logit.alm` accomplishes this by noting that the probability that a consumer purchases product \(i \in n\) can be rewritten as \[\begin{align*} s_i=& s_{i|I}s_I,&\\ s_{i|I}=&\frac{\exp(V_i)}{\sum\limits_{k \in I}\exp(V_k)},&\\ s_I=&1-s_0,& \end{align*}\]

where \(s_{i|I}\) is product \(i\)’s quantity share, conditional on a product being chosen from the set of inside goods \(I\). This implies that

\[\begin{align*} \sum\limits_{k \in I} s_{k|I}=&1,& \end{align*}\]

As in the Logit Model, we assume that \(V_i\) takes on the following form

\[\begin{align*} V_i=&\delta_i + \alpha p_i,& \alpha\le 0. \end{align*}\]

Likewise, the own- and cross-price elasticities may be rewritten as

\[\begin{align*} \epsilon_{ii}=&\alpha (1-s_{i|I}(1-s_0))p_i \\ \epsilon_{ij}=&-\alpha s_{j|I}(1-s_0)p_j \end{align*}\]

This version of the Logit model has \(n+2\) parameters to estimate (\(n\) \(\delta\)s, \(\alpha\), and \(s_0\)) and up to \(2n\) equations with which to estimate them (up to \(n\) complete FOCs and \(n\) choice probabilities). calcSlopes exploits this over-identification by employing a minimum distance algorithm to find the values for \(\alpha\) and \(s_0\) that best satisfy all the FOCs for which there are data. The \(\delta\)s are then recovered from the choice probabilities.

Similar logic may be used to formulate the nested logit with unobserved outside share. Under the assumption that the outside good is the sole member of its own nest \(H_0\), the probability that a consumer purchases product \(i\) in nest \(h\in H\setminus H_0\) can be rewritten as

\[\begin{align*} s_i=& s_{i|h}s_{h}s_I,&\\ s_I=&1-s_0,& \end{align*}\]

where \(s_{i|h}\) and \(s_h\) are defined in the section on Nested Logit demand, and \(s_I\) is the unobserved probability that an inside good is selected. This version of the nested Logit model has \(n+h+2\) parameters to estimate (\(n\) \(\delta\)s, \(h\) nesting parameters, \(\alpha\), and \(s_0\)) and up to \(2n\) equations with which to estimate them (up to \(n\) complete FOCs and \(n\) choice probabilities).

### 1.2.5 CES Demand

The Bertrand model with Constant Elasticity of Substitution (CES) demand may be implemented using the `ces` function.

Like the Logit, CES demand is based on a discrete choice model. However, CES differs from the Logit model in that under CES consumers do not purchase a single unit of a product but instead spend a fixed proportion of their budget on one of the \(n\) products available in the market.23

The assumptions underlying CES demand imply that the probability that a consumer purchases product \(i \in n\) is given by \[\begin{align*} r_i=& \frac{V_i}{\sum\limits_{k \in n}V_k}& \mbox{for all $i \in n$}, \end{align*}\] where \(r_i\) is product \(i\)’s revenue share and \(V_i\) is the (average) indirect utility that a consumer receives from purchasing product \(i\). We assume that \(V_i\) takes on the following form

\[\begin{align*} V_i=&\delta_ip_i^{1-\gamma},&\gamma > 1 . \end{align*}\]

The CES demand system yields the following own- and cross-price elasticities: \[\begin{align*} \epsilon_{ii}=& -\gamma + (\gamma-1)r_i \\ \epsilon_{ij}=& (\gamma-1)r_j \end{align*}\]

Functional form differences aside, one important difference between the CES and Logit demand systems is that the Logit model’s choice probabilities are based on quantity shares, while the CES model’s choice probabilities are based on revenue shares.

Like Logit demand, CES demand has \(n+1\) parameters to estimate (\(n\), \(\delta\)s and \(\gamma\)) and up to \(2n\) equations with which to estimate them (up to \(n\) complete FOCs and \(n\) choice probabilities). `ces` exploits this over-identification by employing a minimum distance algorithm to find the value for \(\gamma\) that best satisfies all the FOCs for which there are data. The \(\delta\)s are then recovered from the choice probabilities.

`ces` also allows users to specify whether or not consumers must purchase one of the \(n\) products sold in the market or whether consumers can choose to purchase an “outside” good. `ces` determines whether users wish to include an outside option by determining if the user-supplied revenue shares \(r_i\) sum to 1. If the shares sum to 1, then no outside good is included and by default \(\delta_1\) is normalized to 1.24 Otherwise, an outside good is included whose price and \(\delta\) are normalized to 1, and whose share equals \(r_0=1-\sum\limits_{i\in n}r_i\).

In addition to specifying an outside option, `ces` has the ‘shareInside’ argument that may be used to specify the proportion of the representative consumer’s budget that the consumer is willing to spend on the \(n + 1\) products that are within the market.25 By default, ‘shareInside’ equals 1, which indicates that the customer spends her entire budget on the \(n+1\) products within the market.

#### Nested CES

The Bertrand model with nested CES demand may be implemented using the `ces.nests` function.

Like the Logit, CES demand assumes that diversion occurs according to share.26 While convenient, one potential drawback of this assumption is that diversion according to share may not accurately represent consumer substitution patterns. As with Logit demand, one way to relax this assumption is to group the \(n\) products into \(H\ge 2\) nests, with products in the same nest assumed to be closer substitutes than products in different nests.27 `logit.nests`‘s ’nests’ argument may be used to specify a length-\(n\) vector identifying which nest each product belongs to.

The assumptions underlying nested CES demand imply that the probability that a consumer purchases product \(i\) in nest \(h\in H\) is given by

\[\begin{align*} r_i=& r_{i|h}r_h,&\\ r_{i|h}=&\frac{V_i}{I_h},& I_h=\sum\limits_{k \in h}V_k\\ r_{h}=& \frac{I_h^{\frac{1-\gamma}{1-\sigma_h}}}{\sum\limits_{l\in H}I_l^{\frac{1-\gamma}{1-\sigma_l}}}.& \end{align*}\]

We assume that \(V_i\) takes on the following form

\[\begin{align*} V_i=&\delta_ip_i^{1-\sigma_h},& \end{align*}\]

where \(\sigma_h>\gamma>1\) for all nests \(h\in H\). The Nested Logit demand system yields the following own- and cross-price elasticities: \[\begin{align*} \epsilon_{ii}=& -\sigma_h + (\gamma-1)r_i + (\sigma_h-\gamma)r_{i|h}, \\ \epsilon_{ij}=&\begin{cases} (\gamma-1)r_j + (\sigma_h-\gamma)r_{j|h} & \text{if $i,j$ are both in nest $h$}.\\ (\gamma-1)r_j, & \text{if $i$ is not in nest $h$ but $j$ is}. \end{cases} \end{align*}\]

Like `ces`, `ces.nests` also allows users to specify whether or not consumers must purchase one of the \(n\) products sold in the market or whether consumers can choose to purchase an “outside” good. This works almost the same in `ces.nests` as `ces`, except that when the sum of market revenue shares is less than 1, the outside good is placed in its own nest with its nesting parameter normalized to 0.

By default, `calcSlopes` constrains all the nesting parameters to be equal to one another \(\sigma_h=\sigma\) for all \(h\in H\). This reduces the number of parameters that need to be estimated to \(n+2\) (\(n\) \(\delta\)s, \(\alpha,\sigma\)) which means users must furnish enough margin information to complete at least two FOCs. Setting `ces.nests`‘s ’constraint’ argument to FALSE causes the `calcSlopes` method to relax the constraint and calibrate a separate nesting parameter for each nest. Relaxing the constraint increases the number of parameters that must be estimated to \(n+H+1\), which means that users must furnish margin information sufficient to complete at least \(H+1\) FOCs. Moreover, users must supply at least one margin per nest for each non-singleton nest. In other words, if nest \(h\in H\) contains \(n_h>1\) products, then at least one product margin from nest \(h\) must be supplied.

### 1.2.6 Marginal Costs

If all \(n\) product margins are observed, estimating marginal costs can be accomplished by noting that \(m_i\equiv\frac{p_i-c_i}{p_i}\) and using observed prices to calculate pre-merger marginal costs.

Rather than using observed margins to compute marginal costs, `antitrust` instead relies on the margins predicted by the Bertrand model. Rearranging the FOCs yields an expression for margins as a function of the demand parameters, product ownership, and revenue shares: \[\begin{align*} \hat{m}_{pre}=-((E_{pre}'\circ\Omega_{pre})^{-1}r_{pre})\circ(\frac{1}{r_{pre}}), \end{align*}\]

where \(E_{pre},r_{pre}\) are elasticities and revenues calculated from the assumed demand model, evaluated at observed prices.

The main advantage of using \(\hat{m}_{pre}\) over \(m\) is that not all of the product margins must be observed in order to estimate marginal costs.28 Once \(\hat{m}_{pre}\) has been calculated, observed prices and the margin definition may be used to estimate pre-merger marginal costs.

Because `antitrust`‘s Bertrand model assumes that marginal costs are constant, product \(i\)’s post-merger marginal costs are equal to its pre-merger marginal costs, multiplied by \((1+\Delta mc_i)\), the change in marginal costs due to any merger-specific efficiencies. All of the functions described above have a ’mcDelta’ argument that allows users to specify a length-\(n\) vector of marginal cost changes.29 By default, ‘mcDelta’ is equal to a length-\(n\) vector of zeros, indicating that the merger will not yield any efficiencies.

For the Bertrand model with capacity constraints, product margins for capacity-constrained products cannot be recovered from the first-order conditions.30 Therefore, marginal costs for capacity-constrained products must be recovered from user-supplied margins and prices.

The `calcMC` method may be used to calculate pre- and post-merger marginal costs.

## 1.3 Simulating Merger Effects

For most of the demand systems included in `antitrust`‘s Bertrand model, a closed-form solution in prices to the FOCs equation does not exist. We therefore employ the non-linear equation solver `BBsolve` from the `BB` package to find equilibrium prices. It is worth noting that the FOCs in equation (1.1) are necessary but not sufficient conditions for finding a price equilibrium to the Bertrand model. Unfortunately, there does not appear to be any theoretical result guaranteeing that, for many of the demand systems discussed here, there is a unique equilibrium to the Bertrand game in prices.31 Practitioners sometimes address this problem by starting the non-linear solver at different starting points in the price space, and seeing if these different initial values converge to distinct price equilibria. All of the constructor functions (e.g. `linear`, `loglinear`, `logit`) have a ’priceStart’ argument that may be used to specify the non-linear solver’s starting values. Moreover, many of these functions also include the ‘isMax’ argument, which when set equal to TRUE tests to see whether the candidate pre-merger and post-merger price equilibria identified by the non-linear solver are in fact (local) maxima.

`antitrust` users can also test the robustness of the predicted prices by modifying how the non-linear equation solver `BBsolve` used by most `antitrust` functions solves for the pre- and post-merger price equilibrium. Modifications to `BBsolve`’s default behavior may be accomplished by including `BBsolve` arguments in any of the `antitrust` functions described above.32 See `BBsolve`’s help page for more information on how to modify `BBsolve`’s behavior.

The FOCs for the capacity-constrained Bertrand game (equation (1.3)) suffer from an additional complication: the `max` function introduces a kink that can make it difficult for the non-linear equation solver to find equilibrium prices. L. Froeb, Tschantz, and Crooke (2003), p.54 suggests replacing equation (1.3) with \[\begin{align*} FOC_i + q_i - t_i + \sqrt{FOC_i^2 + (q_i - t_i)^2}=0,& i=1,\ldots,n \end{align*}\]

which has the same roots as equation (1.3), but is smoother. The `calcPrices` method for all classes based on the capacity-constrained Bertrand Model use this smoothed system to solve for equilibrium prices.

In addition to computing pre- and post-merger equilibrium prices, `antitrust`’s Bertrand model contains methods that can compute many other features of the model. Below, we discuss a few of the methods that we expect users will find helpful. Table 10.2 provides a more extensive list of methods.

### 1.3.1 Summarizing Results

The `summary` method may be used to summarize the results of a merger between two firms for a given demand model. By default, the `summary` method reports pre- and post-merger equilibrium prices, revenue shares, weighted average compensating marginal cost reduction, and compensating variation.33 Quantity shares rather than revenue shares may be reported by setting `summary`‘s ’revenue’ argument equal to FALSE. Likewise, levels, either in units or in revenues, rather than shares, may be reported by setting `summary`‘s ’shares’ argument equal to FALSE. Calibrated demand parameters may be reported by setting `summary`‘s ’parameters’ argument equal to TRUE.The number of significant digits can be altered using the ‘digits’ argument.

In addition to printing the equilibrium price and output information to the screen, the `summary` method invisibly returns a matrix containing this information. Users can save this matrix to a new object for later use.

### 1.3.2 Plotting Results (experimental)

The `plot` method employs `ggplot` to plot pre- and post-merger product residual demand, marginal costs and equilibria. This method has a ‘scale’ argument, a number between 0 and 1 which controls how much of the demand curve above the equilibrium price and below marginal cost is plotted. The default for ‘scale’ is .1.

`plot` returns a `ggplot` object.

### 1.3.3 Simulating Price Effects with Efficiencies

Absent efficiencies, the Bertrand model with the demand systems described here will almost always produce a (possibly negligible) post-merger price increase among substitutes. These price increases, however, can be offset by merger-specific efficiencies that decrease the incremental costs of some of the merging firms’ products.34

All the functions discussed above allow users to evaluate these efficiencies in two different ways. First, all of these functions contain the ‘mcDelta’ argument, which allows users to specify the proportional change in a product’s marginal costs that may result from a merger. These cost changes are factored into the post-merger price equilibrium calculation made by the `calcPrices` method.

Second, users can call the `cmcr` method on the output of any of the functions described above. This method computes the compensating marginal cost reduction (CMCR) on the merging parties’ products. CMCR is the percentage decrease in the marginal costs of the merging parties’ products necessary to prevent a post-merger price increase. See the `cmcr` help page for further details.

### 1.3.4 Excluding Products From the Market (experimental)

By default, the Bertrand model calculates a merger’s effects under the assumption that the acquisition does not change the set of products available to consumers. A merger’s effects, however, may differ if the merger induces either the merging parties or another market participant to eliminate some products from their portfolio.

To accommodate the possibility that some products may be removed from the market following an acquisition, all the constructor functions described above have a ‘subset’ argument that allows users to specify a length-\(n\) logical vector that equals TRUE if a product should be included in the post-merger simulation and FALSE otherwise. By default, ‘subset’ is equal to a length-\(n\) vector of TRUEs.

### 1.3.5 Measuring Changes In Consumer Welfare

All of the demand models included in `antitrust`’s Bertrand model have a `CV` method which may be used to calculate compensating variation. Compensating variation is the amount of money needed to make a consumer as well off as they were before the merger increased prices. Table 10.3 lists the formula for calculating compensating variation for the demand models included in `antitrust`. The last column in this table indicates whether the formula for compensating variation returns compensating variation in levels (e.g. dollars) or as a percent of the representative consumer’s total income.35

Compensating variation can be calculated only if i) the demand system is consistent with both consumer choice theory as well as the Bertrand model described above and ii) all the demand parameters can be estimated. As discussed earlier, the parameter restrictions necessary for the Log-linear demand system to satisfy consumer choice theory will typically not satisfy the parameter restrictions implied by the Bertrand model. Consequently, there is no `CV` method defined for the Log-linear demand system. Similarly, the `CV` method returns an error if Linear demand is calibrated without imposing symmetry and homogeneity of degree 0 in prices on the matrix of slope coefficients \(B\) (i.e. setting ‘symmetry’ equal to FALSE). Lastly, the `CV` method for LA-AIDS demand will return an error if LA-AIDS demand is calibrated without prices. This occurs because prices are needed to uncover estimates of the LA-AIDS demand intercepts, which are needed to compute compensating variation.

Finally, it is worth noting that since none of the demand models included in `antitrust` contain income effects, it can be shown that compensating variation equals two other measures of consumer welfare: equivalent variation and consumer surplus.36

### 1.3.6 Defining Antitrust Markets

According to the 2010 Horizontal Merger Guidelines issued by the U.S Department of Justice (DOJ) and the Federal Trade Commission (FTC), the purpose of market definition is twofold:

> First, market definition helps specify the line of commerce and section of the country in which the competitive concern arises. In any merger enforcement action, the Agencies will normally identify one or more relevant markets in which the merger may substantially lessen competition. Second, market definition allows the Agencies to identify market participants and measure market shares and market concentration. (U.S Department of Justice and the Federal Trade Commission 2010, 7)

To assist users in identifying antitrust product and geographic markets, `antitrust` includes the `HypoMonTest` method. `HypoMonTest` assumes that i) firms are playing the differentiated Bertrand pricing game described earlier and ii) consumer demand is characterized by one of the demand systems described earlier, and then performs an implementation of the Hypothetical Monopolist Test described in the Guidelines for a set of products specified in `HypoMonTest`‘s ’prodIndex’ argument 37

Specifically, `HypoMonTest` first determines if ‘prodIndex’ contains at least one of the merging parties’ products. If so, then by default `HypoMonTest` calls the `calcPriceDeltaHypoMon` method to find the profit-maximizing prices that the Hypothetical Monopolist would set on the products in ‘prodIndex’, holding the prices of all other products fixed at (predicted) pre-merger levels. `HypoMonTest` then compares the largest price change across the merging parties’ products indexed in ‘prodIndex’ to the specified ‘ssnip’. If this price change is greater than the specified ‘ssnip’, `HypoMonTest` returns TRUE. Otherwise, `HypoMonTest` returns FALSE.

The Guidelines state that

> … if the market includes a second product, the Agencies will normally also include a third product if that third product is a closer substitute for the first product than is the second product. The third product is a closer substitute if, in response to a SSNIP on the first product, greater revenues are diverted to the third product than the second product (U.S Department of Justice and the Federal Trade Commission 2010, 9).

To facilitate such comparisons, `antitrust`‘s Bertrand model includes the `diversionHypoMon` method, which, for a set of products specified using the ’prodIndex’ argument, returns the revenue diversion (as defined by equation (1.5))38 matrix for all products included in the merger simulation (i.e. all products placed under the Hypothetical Monopolist’s control as well as those outside of its control).

### 1.3.7 Simulating Merger Effects With Known Demand Parameters

Until now, most of the discussion has focused on how to recover demand parameters when users have information on shares, margins, and in most cases, prices. To accommodate known demand parameters (e.g. there is sufficient data to employ econometric methods to estimate demand parameters), antitrust contains the `sim` function. The `sim` function allows users to simulate price effects (or the output from any method listed in Table 10.2) from a merger under the assumption that firms are playing a Bertrand differentiated pricing game. `sim` requires users to specify a vector of market prices, demand form (either “Linear”, “AIDS”, “LogLin”, “Logit”, “CES”, “LogitNests”, “LogitCap”, or “CESNests”), a list containing the known demand parameters, and pre- and post-merger ownership information. See the `sim` help page for further details.

## 1.4 Gotchas

This section alerts users to some instances where `antitrust` may produce seemingly surprising results, and provides some potential explanations for these behaviors.

### 1.4.1 Market Definition

As discussed above, `HypoMon` method is a post-simulation command and therefore is run only after the user has assumed i) which firms (and products) are playing a differentiated Bertrand pricing game, and ii) the demand system. As a result, `HypoMon` and `diversionHypoMon` can never be applied to a set of products that includes any product excluded from the merger simulation.

### 1.4.2 Log-Linear Demand

`loglinear` always predicts no price effects for single-product firms in the market who are not party to the acquisition. This occurs because the FOC for a single-product firm producing \(i\) is \(m_i=\frac{1}{\epsilon_{ii}}=\frac{1}{\beta_{ii}}\). Since the Bertrand model described earlier assumes constant marginal costs, a constant \(\epsilon_{ii}\) implies that prices are constant as well.

Although a single-product non-merging party’s prices will not change, its output will increase. This occurs because the acquisition will increase the price of the merging parties’ products as well as the prices of multi-product non-merging parties. These price increases will entice some customers to switch towards the single-product firms’ products, increasing their output.

### 1.4.3 LA-AIDS Demand

As discussed earlier, `aids` attempts to calibrate \(\epsilon\), the market elasticity parameter, by using the FOCs, LA-AIDS demand, and additional margins. For some combinations of margins and shares, however, this procedure can yield a very large market elasticity estimate, which in turn will yield small price effects from the merger. This issue appears to occur because the set of FOCs that are being used to calibrate this parameter are nearly colinear. Issues arising from colinearity can be often be remedied by supplying additional margin information, supplying margin information for products with disparate market shares, or supplying the market elasticity parameter directly.

# 2 The Cournot Quantity Game

Another model included in `antitrust` is the Cournot quantity game. This version of the game assumes that multi-plant firms with distinct, increasing marginal costs producing multiple products simultaneously set plant output for each product to maximize their profits. All firms producing a particular product are assumed to be undifferentiated. In this model, quantities are strategic substitutes in the sense that decreasing the quantity of one product causes some customers to switch to competing manufacturers, raising their quantities and profits. Ultimately, it is the magnitude of these lost sales that, at the margin, dissuades firms from reducing their output further .

Similar to the Bertrand model, mergers are modeled by assuming that the merging parties’ plants are placed under common ownership, which allows the merged entity to recapture some of the sales that would otherwise be lost to competitors. As a result, the Cournot model (for some demand systems) predicts that absent any efficiencies affecting the marginal cost of production, the prices of all products produced by the merging parties will increase, possibly by a small amount.

Because all firms are manufacturing an identical version of the product, this version of the Cournot model allows firms post-merger to start or stop producing other products. This model does not allow for firms to engage in some forms of price discrimination.39

## 2.1 The Game

Suppose that there are \(K\) firms in a market, each producing a subset \(J_k\) of \(J\) products. Further, suppose that that each of the \(k \in K\) firms manufactures its \(J_k\) products at \(n_k\) plants. Let \(n = \sum_{k\in K} n_k\) denote the total number of plants producing any of the \(J\) products. The Cournot model assumes that firms simultaneously set the amount of each product produced at each plant in order to maximize their profits. This model also assumes that all firms can perfectly observe each others’ quantities, and costs, as well as the demand for each product.

Functions in `antitrust`’s Cournot model also adopt the additional assumption that each firm’s plant has its own distinct marginal cost technology.

### 2.1.1 The Mathematical Model

Firm \(k \in K\) chooses product output at each plant \(\{q_j^r\}_{\substack{j\in j_k,\\ r\in n_k}}\) so as to maximize profits. Mathematically, firm \(k\) solves:

\[\begin{align*} \max_{{\{q_j^r\}}_{\substack{j\in J_k,\\ r\in n_k}}} &, \sum_{\substack{j\in J_k,\\ r\in n_k}}p_jq_j^r - \sum_{r\in n_k}c^r(q^r) \end{align*}\] subject to \[\begin{align*} & q_j^r \ge 0,&\\ & q^r = \sum_{j \in J_k} q_j^r &\\ \end{align*}\]

where \(p_j\), the price sold of product \(i\), is assumed to be a twice differentiable function of all firm quantities with \(\frac{\partial p_j}{\partial q_j^r}< 0\) for all plants and firms. Likewise, additively separable plant variable costs, \(c^r\), assumed to be twice differentiable with \(\frac{\partial c^r}{\partial q_j^r}> 0\) .

Differentiating profits with respect to each \(q_j^r\) yields the following first order conditions (FOCs):

\[\begin{align} \partial q_j^r&\equiv p_j + \sum_{l\in n_k}q_j^l\frac{\partial p_j}{\partial q_j^r} - \frac{\partial c^r}{\partial q_j^r}=0& \mbox{ for all $j\in J_k$, $r\in n_k$} \tag{2.1} \end{align}\]

## 2.2 Calibrating Model Demand and Cost Parameters

The Cournot model can yield different equilibrium quantity and price predictions depending on 1) the curvature of plant variable costs and 2) the curvature of demand. `antitrust` allows users to explore the consequences of different cost and demand assumptions.

Currently, `cournot` contains two different ways to specify plant costs. First, users can set the ‘cost’ option equal to a \(n\)-length character vector whose values are either equal to “linear” for linear marginal costs (\(\frac{\partial c^r}{\partial q_j^r}= 0.5\gamma_r\sum_{j\in n_r}q_j^r\)) or “constant” for constant marginal costs (\(\frac{\partial c^r}{\partial q_j^r}= \gamma_r\)) . When the ‘cost’ option is employed, `cournot`’s `calcSlopes` method uses observed costs (implied by predicted margins and prices) and prices to calibrate plant-level cost parameters \(\gamma_r\).

Alternatively, users can specify both plant-level marginal and variable costs. Marginal costs may be specified by setting the ‘mcfunPre’ argument equal to a length \(n\) list of functions that each take as an input the vector of product quantities produced at a plant and then return the marginal cost associated with producing that level of output at that plant. Likewise, the ‘vcfunPre’ argument can be similarly used to specify plant-level variable costs. Note that when marginal costs and variable costs are specified in this manner, `cournot` makes no attempt to calibrate any parameters on the cost side.

Currently, `cournot` allows users to specify that product demand is either linear (\(p_j=b_j + a_j\sum_{k\in n}q_j^k\)) or log-linear (\(\ln(p_j)=b_j + a_j\ln(\sum_{k\in n}q_j^k)\)). Users can specify product demand by setting `cournot`‘s ’demand’ argument equal to a \(j\)-length character vector equal to either “linear” for linear demand or “log” for log-linear demand.

## 2.3 Cournot with Logit Demand

A Cournot quantity setting game with constant marginal costs and Logit demand may be implemented using the `logit.cournot` function. Except for a different equilibrium margin for product \(k\), \(m_k=-\alpha^{-1}(1+\frac{ \sum_{j\in J_k}s_j}{s_0})\), `logit.cournot` works the same as the other functions in the `logit.*` family. See Chapter 1.2.4 for further details.

## 2.4 Simulating Merger Effects

### 2.4.1 Summarizing Results

The `summary` method may be used to summarize the results of a merger between two firms. By default, the `summary` method reports pre- and post-merger equilibrium prices and quantities for each product included in the simulation. Also reported is the compensating marginal cost reduction (CMCR) as well as the change in consumer surplus from the merger. Setting the ‘market’ argument equal to FALSE returns plant-level equilibrium price effects.

### 2.4.2 Simulating Price Effects With Marginal Cost Efficiencies

Absent efficiencies, the Cournot model with the demand systems described here will almost always produce a (possibly negligible) post-merger price increase among substitutes. These price increases, however, can be offset by merger-specific efficiencies that decrease the incremental costs of some of the merging firms’ products.40

All the functions discussed above allow users to evaluate these efficiencies in two different ways. First, all of these functions contain the ‘mcDelta’ argument, which allows users to specify the proportional change in a product’s marginal costs that may result from a merger. These cost changes are factored into the post-merger price equilibrium calculation made by the `calcPrices` method. If changes in marginal costs are not expected to be proportional, then users can instead set the ‘mcfunPre’ and ‘mcfunPost’ arguments equal to lists containing functions that return each plant’s pre- and post-merger marginal costs.41

Second, users can call the `cmcr` method on the output of any of the functions described above. This method computes the compensating marginal cost reduction (CMCR) on the merging parties’ products. CMCR is the percentage decrease in the marginal costs of the merging parties’ products necessary to prevent a post-merger price increase. See the `cmcr` help page for further details.

### 2.4.3 Simulating Price Effects With Capacity Constraints

The Cournot model allows users to impose capacity constraints that may potentially change as a result of the merger. The “capacitiesPre” argument allows users to specify a vector of pre-merger plant-specific capacity constraints (default is Inf, or no constraint). The “capacitiesPost” argument allows users to specify a vector of post-merger constraints (default is “capacitiesPre”).

### 2.4.4 Excluding Products or Plants

By default, the Cournot model calculates a merger’s effects under the assumption that the acquisition does not change the set of products available to consumers or the set of plants that are in production. A merger’s effects, however, may differ if the merger induces either the merging parties or another market participant to eliminate some products from their portfolio or to alter the mix of plants used in producing their products.

To accommodate the possibility that some products or plants may be removed from the market following an acquisition, all the constructor functions described above have a ‘productsPre’ and a ‘productsPost’ arguments that allows users to specify an \(n\) by \(J\) logical matrix which equals TRUE if a product produced at a particular plant should be included in the merger simulation and FALSE otherwise. By default, ‘productsPre’ equals TRUE if the ‘quantities’ is not NA, and FALSE otherwise, while ‘productsPost’ equals ‘productsPre’.

### 2.4.5 Measuring Changes In Consumer Welfare

The Cournot model has a `CV` method which may be used to calculate the change in consumer surplus from a merger.

### 2.4.6 Allowing For First-Mover Advantage

The package contains a `stackelberg` function that is similar to `cournot`, but also allows for one or more firms to be designated as output leaders for certain products. Output leaders are assumed to set their output levels first, and conditional on the leaders’ output decisions, output followers (defined as everyone who is not a leader) choose their levels of output. The `stackelberg` function contains four additional arguments: ‘isLeaderPre’ and ‘isLeaderPost’ for setting which firms are leaders and which are followers, and ‘dmcfunPre’ and ‘dmcfunPost’ for specifying the derivative of a plant’s marginal cost (only necessary when marginal and variable costs are also specified).

# 3 Auction Models

Currently, `antitrust` has the ability to calibrate model parameters and simulate the effects of a merger in a:

- 2nd price procurement auction where the buyer sets a reserve price and capacity constrained bidders offer a single unit of a homogeneous product,
- 2nd score procurement auction with differentiated products, and a
- 1st score procurement auction with differentiated products.

In a 2nd price procurement auction, sellers submit their offers to supply a homogeneous product and the seller with the lowest offer wins but is paid the next lowest offer. 2nd price auctions have a number of interesting properties. In particular, it can be shown that:

- the dominant strategy in a 2nd price auction is for each seller to offer their product at marginal cost,
- the dominant strategy for a seller with a portfolio of products is to only offer the buyer the product in their portfolio with the lowest cost,
- the winner of the 2nd price auction is always the product with the lowest cost,
- the incremental surplus of the winning product, defined as the difference in cost between the least costly and next-most costly products, goes entirely to the seller,
- absent efficiencies, horizontal mergers do not affect total surplus only consumer surplus.

A 2nd score procurement auction generalizes a 2nd price auction by allowing sellers to offer differentiated products and allowing buyers to choose the product with the highest score. Instead of being paid the 2nd lowest cost, the seller with the highest score is paid the difference between the value of her product and the surplus (value less manufacturing cost) of the product with the next highest score. All the functions in `antitrust` assume that the non-price characteristics of a seller’s products are fixed, which means that sellers’ strategies are restricted to i) which products to offer a particular buyer and ii) what price to offer the products at.

All of the properties of a 2nd price auction generalize to a 2nd score auction. In particular:

- the dominant strategy in a 2nd score auction is for each seller to offer their product at marginal cost,
- the dominant strategy for a seller with a portfolio of products is to only offer the buyer the product in their portfolio with the highest surplus,
- the winner of the 2nd price auction is always the product with the highest surplus,
- the incremental surplus of the winning product, defined as the difference in surplus between the highest scored and next-most highest scored products, goes entirely to the seller,
- absent efficiencies, horizontal mergers do not affect total surplus only consumer surplus.

In contrast to a 2nd score procurement auction, sellers in a 1st score procurement auction simply receive their offer if they win. It can be shown that a first score auction where non-price product characteristics are fixed is equivalent to a Nash-Bertrand pricing game where buyers purchase only a single product.42 Consequently, the models discussed in the chapter on the Bertrand Pricing Game may also be used to explore the effects of mergers in first price auctions.

The remainder of this chapter explores `antitrust`’s implementation of 2nd score auctions.

## 3.1 2nd Price Auction with Capacity Constraints

Here, we describe a 2nd price procurement auction where the buyer sets a reserve price and capacity constrained bidders offer a single unit of a homogeneous product.43 This auction model may be executed using `antitrust`’s `auction2nd.cap` function.

### 3.1.1 The Game

Suppose that a buyer is interested in either purchasing a single unit of a homogeneous product from one of the \(K\) firms who supply the product, or supplying the product herself. Although the product is homogeneous, the cost of producing it is not: firm \(k\in K\) uses constant marginal cost technology \(c_k\ge 0\) to produce the product.44 Likewise, suppose that the cost to the buyer of self-supply is \(c_0\). Moreover, marginal costs are assumed to be private information, with the buyer and each firm believing that firm costs are independently drawn from the distribution \(F(c)\) with support \((\underline{c},\overline{c})\). Although marginal costs are constant, firms are assumed to be capacity constrained in the sense that all buyers and the bidder believe that a firm endowed with capacity \(t_k\ge 0\) has a marginal cost \(c_k\) equal to the minimum of \(t_k\) cost draws from \(F(c)\). Define \(t=(t_1,\ldots,t_K)\) as the vector of firm capacities and \(\bar{t}=\sum\limits_{k\in K}t_k\) as total industry capacity.

The buyer is assumed to employ a 2nd price auction with a reserve price to determine who will supply the product. In this auction format, each firm submits a bid and the firm with the lowest bid that is also less than the buyer’s reserve price wins the auction but is paid the 2nd lowest bid.45 The buyer’s reserve reflects the fact that the buyer has the ability to self-supply at cost \(c_0\), and so is only willing to purchase the product from a bidder whose bid is less than \(c_0\).

It can be shown that in a 2nd price auction, each firm has a weakly dominant strategy to bid its marginal cost. Waehrer and Perry (2003) also show that

- the probability that firm \(k\)’s cost draw is less than \(c\), equals \[\begin{align} G(c;t_k)&\equiv 1-[1-F(c)]^{t_k}, \tag{3.1} \end{align}\]

- the probability that firm \(k\) wins the auction for a given reserve price \(r\), is \[\begin{align} s_k(r;\bar{t}) &\equiv \frac{t_k}{\bar{t}}G(r;\bar{t}), \tag{3.2} \end{align}\]

- the probability that firm \(k\) wins conditional on \(I\), the event that some firm wins, is \[\begin{align} s_{k|I}(t) &\equiv \frac{t_k}{\bar{t}}, \tag{3.3} \end{align}\]

- firm \(k\)’s expected producer surplus is \[\begin{align} \Pi_k(r;t)&\equiv \int_{\underline{c}}^r\{[1-F(c)]^{\bar{t}-t_k} - [1-F(c)]^{\bar{t}}\}dc, \tag{3.4} \end{align}\]

- firm \(k\)’s expected cost is \[\begin{align} E[c_k]&\equiv t_k\int_{\underline{c}}^rcf(c)[1-F(c)]^{\bar{t}-1}dc, \tag{3.5} \end{align}\]

- firm \(k\)’s expected price is \[\begin{align*} E[p_k]&=\Pi_k(r;t) + E[c_k], \tag{3.6} \end{align*}\]

The buyer sets her reserve price \(r\) so as to minimize her expected costs (EC):

\[\begin{align} EC(r,t)&= c_0Pr(\min\limits_{k\in K}\{c_k\} > r)+p(r,t)Pr(\min\limits_{k\in K}\{c_k\} \le r) \nonumber\\ &= c_0(1-G(r;\bar{t})) + p(r,t)G(r;\bar{t}) \nonumber\\ \end{align}\] where \(p(r,t)\) is the expected price paid by the buyer conditional on the buyer purchasing from some firm, i.e. \[\begin{align} p(r,t)&\equiv \frac{\int_{\underline{c}}^rcdG(c;\bar{t})}{G(r;\bar{t})} + \frac{\sum\limits_{k\in K}\Pi_k(r;t)}{G(r;\bar{t})} \nonumber\\ \end{align}\] which is minimized at \[\begin{align} c_0 &= r^{\ast} + \frac{\sum\limits_{k\in K} ([1-F(r^{\ast})]^{\bar{t}-t_k} - [1-F(r^{\ast})]^{\bar{t}})}{\bar{t}f(r^{\ast})[1-F(r^{\ast})]^{\bar{t}-1}} \end{align}\]

Note that this last equation implies that the buyer has an incentive to set its optimal reserve below its self-supply cost.

### 3.1.2 Calibrating Model Parameters

In this model, we will assume that the user observes firm capacities, some price and margin information, and possibly the auction reserve price or the proportion of times a buyer opts to self-supply. The unknowns are the seller cost distribution \(F(c)\), the buyer’s cost of self-supply \(c_0\), and if not observed, the auction’s reserve price.

#### Selecting a Cost Distribution

It can be shown that under this model’s assumptions, it must be the case that \(F(c)=1-\exp{k(c)}\). Common distributions that satisfy this functional form are the Uniform, Exponential, Weibull, Gumbel, and Frechet. Table 3.1 summarizes these distributions.

Table 3.1: Five Cost Distributions that satisfy this model’s assumptions. An ‘X’ indicates a parameter that must be calibrated.
Name | Bounds | Location Parameter | Scale Parameter | Shape Parameter | # Params
--- | --- | --- | --- | --- | ---
Uniform | \([\underline{c},\overline{c}]\) |  |  |  | 2
Exponential | \([0,\infty)\) |  | X |  | 1
Weibull | \([0,\infty)\) |  | X | X | 2
Gumbel | \((-\infty,\infty)\) | X | X |  | 2
Frechet | \([Location,\infty)\) | X | X | X | 3

It is important to note that depending upon the parameters, these distributions can be shaped very differently from one another, which can yield different simulated merger effects. In general, distributions with more parameters can assume a greater range of shapes than distributions with fewer parameters. This flexibility comes at a cost; the user must supply additional information in order to calibrate these additional parameters.

#### Identifying Moments

Once a distribution has been selected, the distribution parameters as well as the reserve price (if not supplied) must be calibrated from user-supplied prices and margins. To accomplish this, first let \(\hat{p_k}\) and \(\hat{c_k}\) denote firm \(k\)’s ex-ante price and marginal cost, conditional on \(k\) winning. Equations (3.5), (3.6), and (3.2) together imply that \(\hat{p_k}=\frac{E[p_k]}{s_k(r;\bar{t})}\) and that \(\hat{c_k}=\frac{E[c_k]}{s_k(r;\bar{t})}\) Letting \(\overline{p_k}\) and \(\overline{c_k}\) denote firm \(k\)’s average price and marginal cost yields the following moments: \[\begin{align*} \overline{p_k}&=\hat{p_k}\\ \overline{c_k}&=\hat{c_k}\\ \end{align*}\] If in addition, \(s_0\), the proportion of buyers who opt to self-supply is observed, then the following moment is also employed: \[\begin{align*} s_0&= 1-G(r;\bar{t}) \end{align*}\] Note that in order to calibrate the model parameters, the number of moments with user-supplied information must be greater than the number of distribution parameters plus the reservation price (if not supplied).

### 3.1.3 Simulating Merger Effects (experimental)

#### Summarizing Results

The auction model’s `summary` method may be used to summarize the results of a merger between two firms for a given cost distribution. By default, the `summary` method reports pre- and post-merger equilibrium prices and quantity shares, conditional on some firm winning the auction. The unconditional pre- and post-merger equilibrium prices and quantities may be reported by setting `summary`‘s ’exAnte’ argument equal to TRUE. Calibrated distribution parameters may be reported by setting `summary`‘s ’parameters’ argument equal to TRUE. The number of significant digits can be altered using the ‘digits’ argument.

#### Simulating Price Effects With Efficiencies

By default, `auction2nd.cap` assumes that a merger places the parties’ capacities under common ownership and that the capacities of all other firms in the market are unaffected by the acquisition. Both of these assumptions may be modified with the ‘mcDelta’ argument, which allows users to specify the proportional changes in each firm’s capacities due to the merger.

## 3.2 2nd Score Auction with Differentiated Products

Here, we describe a 2nd score procurement auction where the features of the products – including cost – are both horizontally and vertically differentiated. This section is largely based on Brannman and Froeb (2000) and Miller (2014). This auction model may be executed using `antitrust`’s `auction2nd.logit` function.

### 3.2.1 The Game

Suppose that a buyer is interested in either purchasing a single unit of a differentiated product from one of \(K\) firms, each of whom manufacture \(J_k,k\in K\) variants of the product, or in supplying the product herself. Let \(J=\bigcup_k^KJ_k\) denote the set of all products produced by any of the \(K\) firms. Not only do each of the variants have different characteristics, the cost of producing these products may also differ. In particular, suppose that variant \(J_k,k\in K\) uses constant marginal cost technology \(c_{J_k}\ge 0\) to produce the product.46

Let the utility that a buyer receives from product \(j\in J\) with offer \(p_j\) equal to \[\begin{align*} V_j(p_j)=& \overline{V}_j(p_j) + \epsilon_j &\\ \overline{V}_j(p_j) =& \delta_j + \alpha p_j,&\alpha<0,\\ \end{align*}\]

where \(\overline{V}_j\) represents an index of “vertical” quality differentiation that is decomposed into a non-offer component \(\delta_j\) and an offer component \(\alpha p_j\). In addition, \(\epsilon_j\) represents a buyer-specific idiosyncratic shock to utility (i.e. “horizontal” quality differentiation). Without loss of generality, we will assume that these shocks are independently drawn from the distribution \(F\), with mean 0 and variance 1.47 We will also assume that at the start of the auction, \(\epsilon_j\) is known to \(j\)’s manufacturer but is not known to any other sellers.

The buyer is assumed to employ a 2nd score auction to determine which product she will purchase. In this auction format, each firm submits an offer and the firm with the highest score (which may be the buyer if the buyer self-supplies) wins the auction but pays the difference between the value of the highest scoring product and the value of the next-highest scoring product, less that seller’s offer on that product. It can be shown that it is a dominant strategy for each firm to offer the product with the highest surplus in its portfolio to the buyer at cost.

Let \(z_A=\max_{k\in A}{V_k(c_k)}\) denote the the maximum surplus available from any product \(k\in A\subseteq J\). It can be shown that the following must hold when firm \(k\in K\) wins with variant \(j\in J_k\)

- the probability that \(j\) wins is \[\begin{align} s_j &\equiv 1-Pr(V_j < z_{k \not\in J_k}); \tag{3.7} \end{align}\]

- the expected price conditional on \(j\) winning is \[\begin{align} E[p_j|\text{$j$ wins}]= c_j + E[z_J|\text{$j$ wins}] - E[z_{k \not\in J_k}|\text{$j$ wins}]; \tag{3.8} \end{align}\]

- subtracting \(c_j\) from both sides of (3.8) yields the expected profit margin conditional on \(j\) winning: \[\begin{align} E[m_j|\text{$j$ wins}]=& E[z_J|\text{$j$ wins}] - E[z_{k \not\in J_k}|\text{$j$ wins}] \tag{3.9} \end{align}\]

#### Merger analysis

Suppose that firm \(k\in K\) acquires a portfolio of products \(J_r\) produced by firm \(r\in K\).48

Retention of all products. If post-merger \(k\) does not discontinue any of \(r\)’s products, then it can be shown that it is still a dominant strategy for \(k\) to only offer a buyer the highest surplus product, and that consequently, the acquisition does not affect which product will ultimately be selected ex-ante. Consequently, the merger does not decrease ex-ante output and therefore leaves total surplus unchanged. The merger will, absent variable cost efficiencies, lead to a price increase that exactly equals the decrease in consumer surplus. The ex-ante magnitude of the price increase (and corresponding decrease in consumer surplus) when \(j\in J_k \cup J_r\) win the auction is:

\[\begin{align} E[\Delta p_j|\text{j wins}] = E[m_j^{post}|\text{j wins}] - E[m_j^{pre}|\text{j wins}]. \tag{3.10} \end{align}\]

The expected change in consumer surplus– which, absent efficiencies also equals the weighted average price effect– may be calculated by taking the share-weighted average of equation (3.10):

\[\begin{align} E[\Delta p] = \sum\limits_{j\in J_k\cup J_r}s_jE[\Delta p_j|\text{$j$ wins}] \tag{3.11} \end{align}\]

where \(s_j\) is given by (3.8)

### 3.2.2 Calibrating Model Demand and Cost Parameters

For this model, we will assume that users observe firm shares, prices, and some margin information. From the user’s perspective, the unknowns are the buyers’ distribution of valuations (\(F\)), the constant marginal costs (\(c_j\)) and the components of a buyer’s mean valuation (i.e. the \(\delta_j\)s and \(\alpha\)).

In order to calibrate this model with the limited information available, we will need to assume a functional form for \(F\). Currently, `antitrust` assumes that \(F\) follows a Gumbel distribution. Under this distributional assumption,

- the probability that \(j\) wins is \[\begin{align} s_j = \frac{\exp(\overline{V}_j(c_j))}{\sum\limits_{k \in J}\exp(\overline{V}_k(c_k))} \tag{3.12} \end{align}\]

- the expected value of the maximum for products in \(A \subseteq J\) is \[\begin{align} E[z_A]=-\alpha^{-1}\log\sum\limits_{j\in A}\exp(\overline{V}_j(c_j)) \tag{3.13} \end{align}\]

First, note that for product \(h\ne j\), equation (3.12) indicates \[\begin{align} \log s_j - \log s_k &= \overline{V}_j(c_j) - \overline{V}_h(c_h)\\ &= \delta_j-\delta_h + \alpha(c_j -c_h) \tag{3.14} \end{align}\]

Equation (3.12) implies that at least one of the \(V_j\)s is not separately identified. Therefore, one product must be selected as the numeraire so that all the other valuations are relative to the normalized product.49

Next, substituting equation (3.13) into equation (3.9) yields the following closed form expression for margins:

\[\begin{align} E[m_j|V_j(c_j) > z_{k \not\in J_k}]= -\frac{1}{\alpha\sum\limits_{r\in J_k}s_r}\log\left(\frac{1}{1-\sum\limits_{r\in J_k}s_r}\right) \tag{3.15} \end{align}\]

Equations (3.14) and (3.15) form the basis of the calibration strategy. All the model parameters may be calibrated with just a single margin and market shares. Product prices only need to to be supplied for products whose marginal costs are assumed to change post-merger (i.e. products for which ‘mcDelta’ is not equal to 0).

For example, suppose that the margin for product \(j\in J_k\) is known. Equation (3.15) implies that \(\alpha\) may be recovered using only \(j\)’s margin as well as the sum of the shares for all of firm \(j\)’s products. This estimate of \(\alpha\), in conjunction with equation (3.15) may then be used to estimate margins for all the other products in the market. Absent post-merger cost changes, these margin estimates, along with equation (3.14), may then be used to estimate each products’ non-offer mean valuations (\(\delta\)s).

When post-merger cost changes are included in the model, it becomes necessary to estimate marginal costs, but only for the products whose costs are changing due to the merger.50 This is accomplished by including price information for these products. Products whose costs are not assumed to change do not require pricing data (i.e. ‘prices’ may be NA for products where ‘mcDelta’ is 0).

In some instances, there may be more than one margin available. In these cases a minimum distance algorithm is used to find the value of \(\alpha\) that best satisfies all the margin equations (3.15) for which there is data.

### 3.2.3 Simulating Merger Effects

#### Summarizing Results

The `summary` method for `Auction2ndLogit` is similar to the method described in section 3.1.3. The main difference is that by default, this method reports changes in levels rather than percentages and output in quantity shares rather than in revenue shares. These alterations were made because prices are not a pre-requisite for this model, but when prices are not supplied, only level changes are identified. Regardless, these defaults can be changed by appropriately setting the method’s ‘revenue’ and ‘levels’ arguments.

#### Simulating Price Effects With Efficiencies

`auction2nd.logit`‘s ’mcDelta’ argument may be used to specify the anticipated proportional change in marginal costs that will likely occur from a merger. See `auction2nd.logit`’s help page for further details.

#### Excluding Products From the Market

`auction2nd.logit`‘s ’subset’ argument may be used to simulate a merger’s effect when a product is assumed to be eliminated from the market post-merger. See `auction2nd.logit`’s help page for further details.

#### Measuring Changes In Consumer Welfare

The `CV` method may be used to calculate compensating variation from a merger. This method will return ‘NA’ if pre-merger prices were not supplied for all products included in the simulation.

#### Calibrating Unobserved Outside Share

`auction2nd.logit.alm` uses the calibration strategy similar to the one discussed in the “Nested Logit with Unobserved Outside Share” section to calibrate the unobserved share of the outside good.

# 4 The Nash Bargaining Game (experimental)

Unlike 2nd-price procurement (score) auction models (chapter 3), where buyers pay the difference in surplus between their two to best options in order to entice sellers to reveal their costs (match values), Nash bargaining models assume that buyers and sellers bilaterally negotiate prices so as to maximize their joint surplus. The Nash bargaining model described here allows buyers and sellers to vary in thre important ways. First, buyers maximize utility while sellers maximize profits. Second, buyers and sellers differ in their disagreement payoffs: if a bargain cannot be reached, buyers select their next best option, which may be owned by the same seller. Finally, buyers and sellers negotiate a linear price over a single unit sold.

This bargaining model may be executed using `antitrust`’s `bargaining.logit` function.

# 5 The Bargaining Game

INCOMPLETE

Suppose that there are \(N\) products produced \(J\le N\) firms. Let \(W_j\) denote the set of products produced by firm \(j\in J\). Each product is produced using constant marginal cost technology \(c_n\). There are \(M\) buyers, and each buyer ultimately selects a single product, with buyer \(i\in M\) valuing each product \(n \in N\) as \(V_{n}^i=\delta_n +\alpha p_n +\epsilon_{in},\alpha<0\), \(\epsilon_{in}\), which is unknown to both the buyer and the seller, is distributed according to the Gumbel distribution with mean 0 and scale parameter equal to 1. The price for each product \(p_n\) is negotiated bilaterally and simultaneously between each buyer and each seller. Mathematically, for a given firm \(j\in J\), the ex-ante price \(p_n\) for each \(n\in W_j\) is determined by the following Nash Bargain:

\[ \max_{p_n} \left(E[\max_k V^i_{k} - \max_{h\ne n} V^i_h|\text{$n$ wins}]s_nM \right)^{\lambda_n} \left(\omega_{nj}(p_n-c_n)s_nM - \sum_{k\in \{W_j\setminus n\}}\omega_{kj}(p_k-c_k)\frac{s_ks_n}{1-s_n}M \right)^{1-\lambda_n}. \]

Under Logit demand, it can be shown that the left hand side \(E[\max_k V^i_{k} - \max_{h\ne n} V^i_h|\text{$n$ wins}]s_n=\frac{\ln({1-s_n})/\alpha\).

Taking the derivative w.r.t to \(p_n\) , setting equal to 0 and rearranging yields:

\[ \partial p_n: \omega_{nj}(p_n-c_n) - \sum_{k\in W_j}\omega_{kj}(p_k-c_k) s_k = \frac{\ln({1-s_n})/\alpha}{ \frac{\lambda_n}{(1-\lambda_n)}\frac{s_n}{1-s_n}-\omega_{nj}\ln({1-s_n}) } \]

# 6 Vertical Supply (experimental)

INCOMPLETE

The Bertrand, 2nd Score, and Bargaining models under Logit demand described above all focused on merger effects in a single market. Here, we extend the analysis to examine merger effects in a vertical supply chain.

The supply chain models discussed here may all be executed using `antitrust`’s `vertical.barg` function.

# 7 Other Tools

For some acquisitions, there may be insufficient information available to use any of the merger simulation functions described above. In these instances, if information is available on the merging parties’ products, then it may still be possible to calculate measures that can help inform users about the effects of the merger.

## 7.1 CMCR

One such measure, discussed above, is compensating marginal cost reduction (CMCR). CMCR measures the change in the marginal cost of the merging parties’ products needed to offset the price increase following the merger. CMCR may then be compared to the merger’s efficiencies in order to determine whether or not the merger will lead to a price increase.

All the CMCR functions and methods in `antitrust` possess a ‘levels’ argument which when equal to TRUE returns the CMCR in dollars. Alternatively, setting the ‘rel’ argument to “cost” expresses CMCR in terms of pre-merger marginal costs, while setting the ‘rel’ argument to “price” expresses CMCR in terms of pre-merger prices.

`cmcr.bertrand` may be used to compute CMCR under the assumption that the merging parties are playing the Bertrand pricing game described earlier. The matrix formula for \(CMCR_{Bertrand}\), expressed as a percentage of pre-merger costs, is: \[\begin{align*} CMCR_{Bertrand}=&(m_{post}-m_{pre})\circ\frac{1}{1-m_{pre}},&\\ \end{align*}\] where \(m_{pre}\) is a vector of observed pre-merger product margins for each of the merging parties’ products. \(m_{post}\), post-merger margins evaluated at pre-merger prices, may be found using \[\begin{align*} m_{post}=&(B_{post})^{-1}\left(\frac{diag(\Omega_{post})}{diag(\Omega_{pre})}\circ B_{pre}m_{pre}\right)&\\ B_s=&D^q_{pre}\circ((1/p_{pre})p_{pre}')\circ\Omega_s,& s \in \{pre,post\}, \end{align*}\]

where \(D^q_{pre}\) is a matrix of pre-merger quantity diversion ratios for the merging parties’ products whose \(i,j\)th element is the quantity diversion from product \(i\) to product \(j\), \(p_{pre}\) is a vector of pre-merger prices for the merging parties’ products, and \(\Omega_s\) is a matrix of either pre- or post-merger ownership shares (typically equal to 1). Note that this formula requires users only to supply price and margin information for all of the merging parties’ products, as well as diversion information between all of the merging parties’ products.

`cmcr.cournot` may be used to compute a share-weighted average CMCR under the assumption that the merging parties are playing a Cournot quantity-setting game where each party produces a single product. The formula for the share-weighted \(CMCR_{Cournot}\),expressed relative to a share-weighted average of party pre-merger costs, is: \[\begin{align*} CMCR_{Cournot}=&\frac{2s_is_j}{\epsilon(s_i+s_j) - (s_i^2+s_j^2)}, \end{align*}\]

where \(i\) and \(j\) index the merging parties’ products and \(\epsilon\) is the equilibrium elasticity of industry demand. This function requires users to supply information on the merging parties’ quantity shares as well as an estimate of the market elasticity. Under the assumption that each firm produces a single product, it can be shown that \(\epsilon=\frac{s_i}{m_i}\) for all products \(i\). Hence, only a single margin is needed to recover an estimate of \(\epsilon\).

Alternatively, `cmcr.cournot2` may be used to compute Cournot CMCRs for each party. The formula for party-specific \(CMCR_{Cournot}\) is \[\begin{align*} CMCR_{Cournot_i}=&\frac{m_j}{1-m_i}. \end{align*}\]

The main drawback to using CMCR is that CMCR yields only the reduction in marginal costs needed to prevent a price increase; it does not provide any information on how much prices would increase if the efficiencies from the merger are less than CMCR. Likewise, CMCR cannot be used to draw inferences about price effects if some of the merging parties’ products are expected to yield efficiencies that are larger than CMCR, while others are expected to yield efficiencies that are smaller than CMCR.

## 7.2 Generalized Pricing Pressure

Another measure included in `antitrust` is Generalized Pricing Pressure (GePP).51 GePP measures how a merger would affect the merging parties’ incentives to change the prices of their products, after accounting for any merger-specific efficiencies. The GePP for the merging parties’ products may be written as

\[\begin{align*} GePP= (B_{post}m_{post})/diag(\Omega_{post}) - (B_{pre}m_{pre})/diag(\Omega_{pre}) \end{align*}\]

where \(B_{pre},B_{post}\) and \(m_{pre}\) are the same as in CMCR, and \(m_{post}\) are pre-merger margins that incorporate anticipated cost reductions. GePP predicts that the acquiring firm will have an incentive to raise the price of merging party product \(i\) when \(GePP_i>0\).

`upp.bertrand` may be used to compute GePP under the assumption that the merging parties are playing the Bertrand pricing game described earlier. Like `cmcr.bertrand`, this function requires users to supply price and margin information for all of the merging parties’ products, as well as diversion information between all of the merging parties’ products. Users can also supply a vector of merger-specific efficiencies to `upp.bertrand`‘s ’mcDelta’ argument (default is 0, which assumes no efficiencies). These efficiencies should be expressed as the percentage decrease in the merging parties’ marginal costs.

## 7.3 HHI

The 2010 Horizontal Merger Guidelines state that

> The Agencies often calculate the Herfindahl-Hirschman Index (“HHI”) of market concentration. … The higher the post-merger HHI and the increase in the HHI, the greater are the Agencies’ potential competitive concerns and the greater is the likelihood that the Agencies will request additional information to conduct their analysis. (U.S Department of Justice and the Federal Trade Commission 2010, 18)

`antitrust` contains the `HHI` function to compute the HHI for a specified set of products. `HHI` also allows users to compute the Modified HHI (MHHI) that may be used to account for partial firm ownership, where one firm receives a share of the profits from another firm’s product, as well as partial control, where one firm has the (partial) ability to control how much of another firm’s product is produced.

# Part 2: Coordinated Effects

# 8 A Collusion Game with Bertrand Reversion as Punishment

The basic idea behind collusion is that when firms interact with one another repeatedly – either across different product or geographic markets, or over time – firms may find a way to reach an agreement that reduces the extent to which they compete with one another. This agreement may be tacit in the sense that a firm can coordinate its behavior with that of its rivals by for example, first unilaterally adopting a strategy that would be mutually beneficial to itself and its rivals, and then observing whether its rivals subsequently choose to either cooperate by adopting a mutually beneficial strategy or defect by adopting a strategy that is only beneficial to themselves. Colluding firms may also attempt to punish defecting rivals in order encourage these rivals to cooperate rather than defect. A number of factors can influence a firm’s decision to collude including:

- how willing a firm is to sacrifice short-term for long-term gain,
- the ease with which a firm can implement a mutually beneficial strategy,
- the ease with which a firm can observe its rivals’ response,
- the costs associated with punishing a defecting rival.

Our aim here is to explore how a horizontal merger might affect the incentives of firms to collude. In particular, a horizontal merger can facilitate collusion if a firm with an incentive to collude acquires a maverick, or a firm without such incentive. By doing this, the acquiring firm makes it easier to sustain cooperation among some of the remaining firms. On the other hand, a horizontal merger can retard collusion if after the acquisition, a firm believes that it can make greater surplus by not cooperating with some of the remaining firms. The goal of this model is to provide one method for exploring which of these conflicting incentives ultimately prevails.

## 8.1 The Game

Suppose that there are \(K\) firms in a market, and that each of the \(k \in K\) firms produces \(n_k\) products.52 Let \(n=\sum\limits_{k\in K}n_k\) denote the number of products sold by all \(K\) firms. These firms are playing an infinitely repeated super-game, where in each period of the game the \(K\) firms play the Bertrand pricing game described in section 1.1. Mathematically, firm \(k\) solves:

\[\begin{align*} \max_{\{p_{kt}\}_{t=1}^{\infty}} &\sum_{t=1}^{\infty}\sum_{i=1}^{n} \tau_i^{t-1}\Pi^b_{ikt},\\ \end{align*}\] where \(p_{kt}\) is the vector of prices set on all of \(k\)’s products in period \(t\); \(0<\tau_i<1\) is a product-specific and time-invariant discount factor reflecting the rate at which an owner of \(i\) is willing to forgo earning surplus today on \(i\) for future surplus; and \(\Pi^b_{ikt}\) is the surplus earned by firm \(k\) on product \(i\) in period \(t\). Mathematically, \[\begin{align*} \Pi^b_{ikt}&= \omega_{ik}(p_{it} - c_i)q_{it}, \end{align*}\]

where as in the Bertrand Model, \(\omega_{ik}\) is the share of product \(i\)’s surplus earned by firm \(k\) absent collusion, so that \(\sum\limits_{k\in K} \omega_{ik}\le 1\). \(q_{it}\), the quantity sold of product \(i\) at time \(t\), is assumed to be a twice differentiable function of all product prices. Note that \(\omega_{ik}\) and marginal cost \(c_i\) are assumed to be constant over time.

Further, suppose that some subset of firms \(Z\subseteq K\) wish to collude such that each firm \(z\in Z\) selects a subset \(J_z \subseteq n_z\) of their products over which to jointly maximize surplus. We assume that firms within this \(Z\) coalition cannot make side-payments to one another. In other words, firms inside the coalition only earn surplus on the products that they produce.53 Let \(\Pi^c_{jzt}\) denote the surplus that firm \(z\in Z\) earns from selling product \(j\in J_z\) at the jointly surplus maximizing price in period \(t\), and let \(\Pi^c_{lzt}\) denote the surplus that firm \(z\) earns from product \(l\not\in J_z\) in period \(t\). Note that for a given product \(l\not\in J_z\), the profits that \(z\) earns on \(l\) under collusion (\(\Pi^c_{lzt}\)) will typically differ from the profits that \(z\) earns under Bertrand reversion (\(\Pi^b_{lzt}\)), even though in both instances \(l\) is not included in the coalition.

Following Davis (2006) and Davis and Huse (2009), we assume that firms within \(Z\) all attempt to enforce the coalition by playing Grim Trigger strategies where each firm in \(Z\) colludes until they observe a single defection from any other firm in \(Z\), and then “punishes” by forever reverting the prices of its products back to those from the Bertrand game.

All that remains is to describe a firm’s surplus from defecting from the coalition. It is important to note that under the assumptions that all firms are playing Grim Trigger strategies and at most one firm can defect in a turn, i) only a single firm will be able to earn the defector’s surplus, and ii) that firm will only be able to earn the defector’s surplus for a single period. Here, we assume that when a firm defects it sets the prices of its products to maximize only the surplus of its products, conditional on every other firm in \(Z\) setting prices to maximize the coalition’s surplus. Let \(\Pi^d_{jzt}\) denote the surplus that firm \(z \in Z\) earns on product \(j\) in period \(t\) from setting its products’ prices to only maximize the surplus of its products, subject to the other firms in \(Z\) setting prices to maximize joint surplus.

### 8.1.1 The Incentive to Collude Under Grim Trigger

In this model, Firm \(z\) has an incentive to collude with the other firms in the \(Z\) coalition only if the discounted value of the surplus it gains from colluding is greater than the discounted value of the surplus it receives from defecting from coalition prices for a single period, followed by the discounted value of surplus it receives from all firms earning surplus from the Bertrand game for all subsequent periods. Mathematically, this condition can be written as:

\[\begin{align} \nonumber\underbrace{\sum_{t=1}^{\infty}\sum_{j=1}^{n} \tau_j^{t-1}\Pi^b_{jzt}}_\text{collusion surplus} &\ge \underbrace{\sum_{j=1}^{n}\Pi^d_{jzt}}_\text{defection surplus} + \underbrace{\sum_{t=2}^{\infty}\sum_{j=1}^{n}\tau_j^{t-1}\Pi^b_{jzt}}_\text{reversion surplus} \end{align}\] Since we are assuming that outside of the merger firms cannot enter or exit, or add or remove products, equilibrium prices and quantities are the same across all periods, and the above simplifies to \[\begin{align} \sum_{j=1}^n\frac{\Pi^c_{jzt}}{1-\tau_j}&\ge \sum_{j=1}^n\Pi^d_{jzt} + \sum_{j=1}^n\frac{\tau_j\Pi^b_{jzt}}{1-\tau_j} \tag{8.1} \end{align}\]

## 8.2 Comparing Incentives to Collude and Defect Under Grim Trigger (experimental)

Inequality (8.1) indicates that five pieces of information must be identified in order to determine if firm \(z\in Z\) has an incentive to collude under the model here: the set of products involved in the \(Z\) coalition, the discount rates \(\tau_j\) for all products produced by firms with at least one product in the coalition (i.e. for each \(j\in n_z\)); the surplus firm \(z\) earns from each product \(j\in n_z\) from colluding (\(\Pi^c_{jzt}\)) in period \(t\), the surplus firm \(z\) earns from each product \(j\in n_z\) upon defecting from the \(Z\) coalition (\(\Pi^d_{jzt}\)) in period \(t\), and the period \(t\) surplus a firm earns from each product \(j\in n_z\) after all firms have “punished” by reverting to Bertrand pricing \(\Pi^b_{jzt}\).

The `calcProducerSurplusGrimTrigger` method assumes that the user has supplied the indices for all products involved in the coalition to the ‘coalition’ argument, as well as the discount rates \(\tau_j\) to the ‘discount’ argument. This method then computes ‘preMerger’ product profits \(\Pi^c_{jzt}\), \(\Pi^d_{jzt}\), and \(\Pi^b_{jzt}\) for products owned by firms participating in the ‘coalition’ and then returns a data frame containing the inputted discount rates, these surplus calculations, and a field labeled “IC” which equals TRUE if inequality (8.1) holds and FALSE otherwise. Note that “IC” is a firm-level calculation whose value will be replicated across all products owned by the same firm.

`calcProducerSurplusGrimTrigger` is designed to be run twice: once with ‘preMerger’ equal TRUE in order to evaluate whether, under this model’s assumptions members of the specified coalition have an incentive to collude; and a second time with ‘preMerger’ equal to FALSE in order to evaluate how a merger affects these incentives.

# Part 3: Under the Hood

# 9 Getting Help

A manual page has been written for each class, method, and function contained in `antitrust`. These pages describe the relevant object, its inputs and outputs, and typically contain at least one example of how it is used. See the `help` function for assistance on how to access these pages.

In addition to the manual pages, R’s S4 system includes a number of ways to investigate the properties of the classes and methods contained in `antitrust`. To learn more about a particular instance of an `antitrust` class, use the `str` command. To learn more about the class itself (e.g. class slots, who its parent and child classes are) use the `showClass` function. To show which methods are defined for a class, or which classes have a particular method, use the `showMethods` function. To see how a method has been defined, use the `getMethod` function.

# 10 Modifying and Extending `antitrust`

`antitrust` was written using R’s S4 object-oriented class system. Figure 10.1 displays the relationships between each parent-child class. The figure indicates that the Antitrust class is the main class. Indeed, every effort has been made to include in the Antitrust class all slots that are common to its child classes as well as all common methods.

## 10.1 The Bertrand Model

Figure 10.1 also reveals that the Bertrand class is the parent class for all models related to the Bertrand Pricing game. Note that each of the Bertrand class’s child classes are named after a demand model included in `antitrust`. These classes are grouped into two branches: demand systems based on the representative consumer’s value function (the Logit branch) and demand systems based on the representative consumer’s expenditure function (the Linear branch).

Each `antitrust` class named after a demand model has a similarly named constructor function associated with it. For example, the Linear class has the `linear` constructor function associated with it. The purpose of this function is to make it easy for users to create a new class instance with sensible default values. In addition to creating a new class instance, each constructor function does the following:

1. Calls `ownerToMatrix` twice. This method transforms the pre- and post-merger ownership information into a matrix of 1s and 0s if the ownership information is not already in that format.
2. Calls `calcSlopes`. This method calibrates the demand parameters associated with a particular demand system.
3. Calls `calcMC` twice. The first call computes pre-merger marginal costs and the second call calculates post-merger marginal costs, which equals pre-merger marginal costs multiplied by the user-supplied proportional change in marginal costs (1 + ‘mcDelta’). The results from this call are assigned to the appropriate class slot,
4. Returns the class instance.
5. Calls `calcPrices` twice. The first call computes pre-merger equilibrium prices and the second call calculates post-merger equilibrium prices. The results from this call are assigned to the appropriate class slot,
6. Returns the class instance.

Perhaps the easiest way to modify an existing class is to create a new child class of that class. That child will inherit all of the parent classes’ slots and methods. Additional slots may then be easily added and the behavior of existing methods may then be overridden.

## 10.2 The Auction Models

Currently, the two auction classes available in `antitrust` are Auction2ndLogit and Auction2ndCap. `Auction2ndLogit` is a child class of Logit and therefore follows the same pattern as the Bertrand Model described above.

In contrast, the constructor function for Auction2ndLogit is `auction2nd.cap`, which initializes a class instance with sensible default values and then does the following:

1. Calls `calcSellerCostParms`. This method calibrates the parameters of the seller cost distribution.
2. Calls `calcBuyerValuation`. This method calibrates the cost to the buyer of self-supply.
3. Calls `calcOptimalReserve`. Computes the buyer’s optimal pre-merger reserve price. If ‘constrain.reserve’ equals TRUE (the default) the post-merger reserve is set equal to the pre-merger reserve. If ‘constrain.reserve’ equals FALSE, the optimal post-merger reserve is calculated. The results from this call are assigned to the appropriate class slot.
4. Calls `calcPrices` twice. The first call computes pre-merger equilibrium prices and the second call calculates post-merger equilibrium prices. The results from this call are assigned to the appropriate class slot.
5. Calls `calcMC` twice. The first call computes pre-merger equilibrium marginal costs and the second call calculates post-merger equilibrium marginal costs. The results from this call are assigned to the appropriate class slot.
6. Returns the class instance.

# Appendix

Table 10.1: `antitrust` functions and their information requirements
Name | Model | Price | Margin | Diversion | Quantity/ Share | Capacity | Cite
--- | --- | --- | --- | --- | --- | --- | ---
|  | Bertrand |  |  |  |  |
`linear` | Linear | A | 1+ | O | A |  | (Haefen 2002)
`loglin` | Log-linear | A | A | O | A |  | (Haefen 2002) (Jeffrey T. LaFrance 2004)
`aids` | AIDS | O | 2+ | O | A |  | (Epstein and Rubinfeld 2004) (Jeffrey T. LaFrance 2004)
`pcaids` | PCAIDS | O | 1 | O | A |  | (Epstein and Rubinfeld 2004) (Jeffrey T. LaFrance 2004)
`pcaids.nests` | Nested PCAIDS | O | 2+ | O | A |  | (Epstein and Rubinfeld 2004)
`logit` | Logit | A | 1+ |  | A |  | (Gregory J. Werden and Froeb 1994)
`logit.alm` | Logit-Unobserved Outside Share | A | 2+ |  | A |  | (Gregory J. Werden and Froeb 1994)
`logit.nests` | Nested Logit | A | 2+ |  | A |  | (Gregory J. Werden and Froeb 1994)
`logit.cap` | Capacity-Constrained Logit | A | 2+ |  | A | A | (L. Froeb, Tschantz, and Crooke 2003)
`ces` | Constant Elasticity | A | 1+ |  | A |  | (Sheu 2011)
`ces.nests` | Nested Constant Elasticity | A | 2+ |  | A |  | (Sheu 2011)
`sim` |  | A |  |  |  |  |
|  | Cournot |  |  |  |  |
`cournot` | Linear, Log-Linear | A | 1+ |  | A |  |
|  | Auctions |  |  |  |  |
`auction2nd.logit` | 2nd price, Logit | O | 1+ |  | A |  | (Miller 2014)
`auction2nd.cap` | 2nd price, homogeneous single unit | 1+ | 1+ |  |  | A | (Waehrer and Perry 2003)
|  | Other Tools |  |  |  |  |
`cmcr.bertrand` | any | M | M | M |  |  | (Gregory J. Werden 1996)
`cmcr.cournot` | any |  | 1 |  | M |  | (L. M. Froeb and Werden 1998)
`upp.bertrand` | any | M | M | M |  |  | (Farrell and Shapiro 2010) (Jaffe and Weyl 2012)
`HHI` | any |  |  |  | A |  | (Salop and O’Brien 2000)

‘M’: data on merging parties’ products,
‘A’: data on all products,
‘O’: optional data; if supplied it must be on all products,
‘#+’: data on at least # products

Table 10.2: Selected `antitrust` methods. While all of the above methods are defined for the Bertrand Class and its child classes, not all of these methods are currently defined for the Auction2ndCap class.
Name | Description
--- | ---
`CV` | Compute compensating variation
`calcMC` | Compute pre- and post-merger (constant) marginal costs
`calcMargins` | Compute pre- and post-merger equilibrium margins
`calcPrices` | Compute pre- and post-merger equilibrium prices
`calcPriceDelta` | Compute proportional change in equilibrium prices
`calcProducerSurplus` | Compute pre- and post-merger producer surplus
`calcProducerSurplusGrimTrigger` | Compute pre- and post-merger surplus from colluding to surplus from defection
`calcShares` | Compute pre- and post-merger equilibrium shares
`cmcr` | Compute compensating marginal cost reduction (CMCR)
`HypoMonTest` | Use the Hypothetical Monopolist Test to determine whether a specified set of products satisfy a SSNIP
`diversion` | Compute pre- and post-merger diversion matrices
`diversionHypoMon` | Compute the diversion matrix under a Hypothetical Monopolist Test
`elast` | Compute pre- and post-merger elasticity matrices
`hhi` | Compute HHI using pre- and post-merger equilibrium shares
`upp` | Compute net Upwards Pricing Pressure (UPP)
`plot` | Plot pre- and post-merger demand, marginal costs, and equilibria
`summary` | Summarize result

Table 10.3: Compensating variation formulas. Note: The ‘Reports’ column indicates whether the compensating variation formula returns compensating variation in levels (e.g. dollar amounts) or as a proportion of aggregate income.
Demand | Formula | Reports
--- | --- | ---
Linear | \(\alpha'(p_{post}-p_{pre}) + .5p'_{post}Bp_{post} - .5p'_{pre}Bp_{pre}\) | level
AIDS | \(\alpha'(\log p_{post}-\log p_{pre}) + .5\log p'_{post}B\log p_{post} - .5\log p'_{pre}B\log p_{pre}\) | proportion
CES | \(\frac{1}{1+\alpha}\frac{1}{1-\gamma}\log\left(\frac{\sum\limits_{i\in n} \delta_ip_{i,post}^{1-\gamma}}{\sum\limits_{i\in n} \delta_ip_{i,pre}^{1-\gamma}}\right)\) | proportion
Nested CES | \(\frac{1}{1+\alpha}\frac{1}{1-\gamma}\log\left(\frac{\sum\limits_{h\in H}\left(\sum\limits_{i\in h}\delta_i p_{i,post}^{1-\sigma_h}\right)^\frac{1-\gamma}{1-\sigma_h}} {\sum\limits_{h\in H}\left(\sum\limits_{i\in h}\delta_i p_{i,pre}^{1-\sigma_h}\right)^\frac{1-\gamma}{1-\sigma_h}}\right)\) | proportion
Logit | \(\frac{1}{\alpha}\log\left(\frac{\sum\limits_{i\in n}\exp(\delta_i+\alpha p_{i,post})}{\sum\limits_{i\in n}\exp(\delta_i+\alpha p_{i,pre})}\right)\) | level
Nested Logit | \(\frac{1}{\alpha}\log\left(\frac{\sum\limits_{h\in H}\left(\sum\limits_{i\in h}\exp(\frac{\delta_i+\alpha p_{i,post}}{\sigma_h})\right)^{\sigma_h}}{\sum\limits_{h\in H}\left(\sum\limits_{i\in h}\exp(\frac{\delta_i+\alpha p_{i,pre}}{\sigma_h})\right)^{\sigma_h}}\right)\) | level

Figure 10.1: The relationship between Classes in the `antitrust` package

# References

Brannman, Lance, and Luke M. Froeb. 2000. “Mergers, Cartels, Set-Asides, and Bidding Preferences in Asymmetric Oral Auctions.” The Review of Economics and Statistics 82 (2): 283–90. https://doi.org/10.1162/003465300558795.
Davis, Peter. 2006. “Coordinated Effects Merger Simulation with Linear Demands.” Competition Commission.
Davis, Peter, and Cristian Huse. 2009. “Estimating the ’Coordinated Effects’ of Mergers.” unpublished memo; Tenth CEPR Conference on Applied Industrial Organization.
Epstein, Roy J., and Daniel L. Rubinfeld. 2004. “Merger Simulation with Brand-Level Margin Data: Extending PCAIDS with Nests.” The B.E. Journal of Economic Analysis & Policy advances.4 (1): 2. https://econpapers.repec.org/RePEc:bpj:bejeap:v:advances.4:y:2004:i:1:n:2.
Farrell, Joseph, and Carl Shapiro. 2010. “Antitrust Evaluation of Horizontal Mergers: An Economic Alternative to Market Definition.” The B.E. Journal of Theoretical Economics 10 (1): 1–39. https://doi.org/10.2202/1935-1704.1563.
Froeb, Luke M., and Gregory J. Werden. 1998. “A Robust Test for Consumer Welfare Enhancing Mergers Among Sellers of a Homogeneous Product.” Economics Letters 58 (3): 367–69. https://doi.org/10.1016/S0165-1765(97)00287-5.
Froeb, Luke, Steven Tschantz, and Philip Crooke. 2003. “Bertrand Competition with Capacity Constraints: Mergers Among Parking Lots.” Journal of Econometrics 113 (1): 49–67. https://doi.org/10.1016/S0304-4076(02)00166-5.
Haefen, Roger H. von. 2002. “A Complete Characterization of the Linear, Log-Linear, and Semi-Log Incomplete Demand System Models.” Journal of Agricultural and Resource Economics 27 (02). https://doi.org/10.22004/ag.econ.31118.
Jaffe, Sonia, and Eric G. Weyl. 2012. “The First-Order Approach to Merger Analysis.” Working Paper Series. SSRN eLibrary.
LaFrance, Jeffrey T. 2004. “Integrability of the Linear Approximate Almost Ideal Demand System.” Economics Letters 84 (3): 297–303. https://doi.org/10.1016/j.econlet.2003.12.019.
LaFrance, Jeffrey T. 1986. “The Structure of Constant Elasticity Demand Models.” American Journal of Agricultural Economics 68 (3): 543–52.
Miller, Nathan H. 2014. “Modeling the Effects of Mergers in Procurement.” International Journal of Industrial Organization 37: 201–8.
Salop, Steven, and Daniel O’Brien. 2000. “Competitive Effects of Partial Ownership: Financial Interest and Corporate Control’.” Antitrust L.J. 67: 559–614.
Sheu, Gloria. 2011. “Price, Quality, and Variety: Measuring the Gains from Trade in Differentiated Products.”
U.S Department of Justice, and the Federal Trade Commission. 2010. “Horizontal Merger Guidelines.”
Waehrer, Keith, and Martin K. Perry. 2003. “The Effects of Mergers in Open-Auction Markets.” The RAND Journal of Economics 34 (2): 287–304.
Werden, Gregory J. 1996. “A Robust Test for Consumer Welfare Enhancing Mergers Among Sellers of Differentiated Products.” The Journal of Industrial Economics 44 (4): pp. 409–413. https://www.jstor.org/stable/2950522.
Werden, Gregory J, and Luke M Froeb. 1994. “The Effects of Mergers in Differentiated Products Industries: Logit Demand and Merger Policy.” Journal of Law, Economics and Organization 10 (2): 407–26. https://ideas.repec.org/a/oup/jleorg/v10y1994i2p407-26.html.
Willig, Robert D. 1976. “Consumer’s Surplus Without Apology.” The American Economic Review 66 (4): pp. 589–597. https://www.jstor.org/stable/1806699.

1. In particular, this version of the Bertrand model does not accommodate non-linear pricing, such as is used in 2nd or 3rd degree price discrimination.↩︎

2. Throughout, we abuse the notation slightly by treating variables like \(K\) as both the set of firms as well as the number of firms.↩︎

3. The Bertrand model assumes that while any firm can receive a portion of another firm’s profits (e.g. through owning a share of that firms’ assets), only one firm can set a product’s price.↩︎

4. This section is based on the model described in L. Froeb, Tschantz, and Crooke (2003).↩︎

5. By default, `linear` assumes diversion according to quantity share. Diversion according to quantity share assumes that \(d^q_{ij}=\frac{s_j}{1-s_i}\), where \(s_i,s_j\) are the quantity share of \(i\) and \(j\). As we will see, this is the assumption underlying the Logit demand system.↩︎

6. See Haefen (2002), pp. 283.↩︎

7. In fact, it turns out that only one element of \(B\) must be estimated.To see why, note that under symmetry, \(\beta_{jj}=\frac{d_{ij}}{d_{ji}}\beta_{ii}\). Hence, if \(\beta_{ii}\) is known, then the preceding equation indicates that all the \(\beta_{jj}\)s may be recovered. From here, the definition of diversion may be used to recover all the \(\beta_{ij}s\).↩︎

8. To see this, note: \[\begin{align*} &\sum_{i \in n } \beta_{ij} <0 & \text{(homogeneity of degree 0 with outside good)} \\ \Leftrightarrow& \beta_{ii}+\sum_{j\ne i}\beta_{ji} < 0 & \text{(symmetry)}\\ \Leftrightarrow& \beta_{ii}-\sum_{j\ne i}d_{ij}\beta_{ii}<0 \\ \Leftrightarrow& \beta_{ii}(1-\sum_{j\ne i}d_{ij})<0 \\ \Rightarrow & \sum_{j \in n } d_{ij} <0\\ \end{align*}\] where the last line follows since \(\beta_{ii}<0\Rightarrow 1-\sum_{j\ne i}d_{ij}>0\).↩︎

9. The `CV` method used to compute compensating variation checks to see if \(B\) is symmetric and returns an error if it isn’t.↩︎

10. In order for log-linear demand without income effects to be consistent with consumer choice theory, either i) \(\beta_{ij}=1+\beta_{ii},-1\ne\beta_{ii}\le 0\) or ii) \(\beta_{ij}=0,\beta_{ii}=-1\) for all \(i,j \in n\). Condition i) is unlikely to be true, since when products \(i\) and \(j\) are substitutes (typically the case we are most interested in evaluating), \(\beta_{ij}> 0\) which in turn implies that \(\beta_{ii}>-1\). However, if the owner of product \(i\) only manufacturers a single product (a typical occurrence), then the FOCs from the Bertrand model imply that \(\beta_{ii}\le-1\), a contradiction. Condition ii) is unlikely to hold since it implies that product \(i\) has no close substitutes and has marginal costs equal to 0. See Jeffrey T. LaFrance (1986); and Haefen (2002) for more details.↩︎

11. LA-AIDS differs from AIDS in that LA-AIDS substitutes the AIDS price index with Stone’s price index. Since this version of LA-AIDS is without income effects, Stone’s price index is only used to derive the own- and cross-price elasticities.↩︎

12. If the ‘diversion’ argument to `aids` is missing, `aids` assumes diversion according to revenue share.↩︎

13. In fact, it turns out that only one element of \(B\) must be estimated.To see why, note that under symmetry, \(\beta_{jj}=\frac{d_{ij}}{d_{ji}}\beta_{ii}\). Hence, if \(\beta_{ii}\) is known, then the preceding equation indicates that all the \(\beta_{jj}\)s may be recovered. From here, the definition of diversion may be used to recover all the \(\beta_{ij}s\).↩︎

14. This assumption implies that customers substitute to products outside of the simulation in response to price increases by all products in the simulation at the same rate pre- and post-merger.↩︎

15. The main difference between `pcaids` and `aids` is that while `aids` requires users to supply revenue shares and at least two margins (or a single margin and the market elasticity) as inputs, `pcaids` requires the user to supply revenue shares, \(\epsilon\) (using the ‘mktElast’ argument), and the own-price elasticity for one of the products (using the ‘knownElast’ argument). A value for ‘knownElast’ may be found by inverting the margin of a single-product firm. A value for ‘mktElast’ may be inferred from such sources as merging party documents, industry reports, and academic studies.↩︎

16. No function in `antitrust` currently permits a hierarchy of nests.↩︎

17. The nesting parameters are constrained to be between 0 and 1, where 1 means that diversion between nests occurs according to share. The diversion between two nests is assumed to be symmetric; the diversion from nest \(a\) to nest \(b\) is the same as the diversion from \(b\) to \(a\).↩︎

18. Note that these margins are in addition to the margin information that may be necessary to identify the elasticity of a single product (‘knownElast’).↩︎

19. It can be shown that when there is no outside option in the Logit model, not all of the \(\delta\)s can be separately identified. Users can control which product’s \(\delta\) is normalized to 0 by setting `logit`‘s ’normIndex’ argument equal to the index (position) of the desired product.↩︎

20. Essentially ‘priceOutside’ controls how the mean valuations are scaled. Scaling is particularly important when computing compensating variation. See Gregory J. Werden and Froeb (1994) p.412 for further details.↩︎

21. No function in `antitrust` currently permits a hierarchy of nests. Singleton nests (nests containing only a single product) are technically permitted, but their nesting parameter is not identified and is therefore normalized to 1.↩︎

22. The outside good is a nuisance parameter because it is only needed to obtain estimates of the other demand parameters and is not used to solve for equilibrium prices.↩︎

23. Formally, each consumer chooses the product \(i \in n\) that yields the maximum utility \(U_i=\ln(\delta_iq_i) +\alpha \ln(q_0) + \epsilon_i\), subject to the budget constraint \(y=p_iq_i+q_0\). Here, \(q_i\) is the amount of product \(i\) consumed by a consumer, \(\delta_i\) is a measure of product \(i\)’s quality, \(q_0\) is the amount of the numeraire, \(y\) is consumer income, and \(\epsilon_i\) are random variables independently and identically distributed according to the Type I Extreme Value distribution.↩︎

24. It can be shown that when there is no outside option in the CES model, not all of the \(\delta\)s can be separately identified. Users can control which product’s \(\delta\) is normalized to 1 by setting `ces`‘s ’normIndex’ argument equal to the index (position) of the desired product.↩︎

25. 1-‘shareInside’ equals the proportion of the representative consumer’s income that is spent on all other products (i.e. the numeraire).↩︎

26. CES assumes diversion according to revenue rather than quantity share.↩︎

27. No function in `antitrust` currently permits a hierarchy of nests.↩︎

28. Of course, enough margins must be observed to calibrate the demand parameters. For Log-Linear demand as well as Linear demand with a matrix of asymmetric slopes (\(B\)), all product margins must be supplied and \(m=\hat{m}_{pre}\).↩︎

29. Negative values for ‘mcDelta’ imply that a product’s marginal cost will decrease, while positive values imply a price increase. Users will receive a warning if ‘mcDelta’ is supplied with positive values or if the values are greater than 1 in absolute value implying a cost change that is greater than 100%.↩︎

30. To see why, note that equation (1.3) implies that if product \(i\) is capacity constrained pre-merger, then \(\epsilon_{ij}=0\) for all \(j\). Since \(\epsilon_{ij}\) is always multiplied by the margin of product \(i\), that margin does not appear in the FOCs and is therefore not identified.↩︎

31. To our knowledge, there is no theoretical result indicating that a unique Nash equilibrium in prices exists for most of the demand systems discussed here, i.e. when i) firms produce multiple products and ii) marginal costs are constant. The primary exception to this is linear demand.↩︎

32. `linear`’s `calcPrices` method employs `constrOptim` rather than `BBsolve`.↩︎

33. For some demand systems (e.g. Logit and CES), output shares as opposed to levels are reported. Compensating variation as well as equilibrium price levels for LA-AIDS models are reported only if the user supplied pre-merger prices. Compensating variation is only reported for the Linear model if ‘symmetry’ equals TRUE.↩︎

34. Costs that are not strictly increasing with a product’s output (i.e. fixed or sunk costs) do not affect the price setting behavior of firms in a Bertrand pricing game.↩︎

35. The `CV` method for CES demand has a ‘revenueInside’ argument, which if set equal to the total revenue of all products included in the market, converts the percent to levels. Similarly, the `CV` method for LA-AIDS demand has a ‘totalRevenue’ argument, which if set equal to the representative agent’s income (e.g. area GDP), converts the percent to levels.↩︎

36. See Willig (1976).↩︎

37. The Guidelines define the Hypothetical Monopolist Test for product market as positing “… a hypothetical profit-maximizing firm, not subject to price regulation, that was the only present and future seller of those products (“hypothetical monopolist”) likely would impose at least a small but significant and non-transitory increase in price (“SSNIP”) on at least one product in the market, including at least one product sold by one of the merging firms. For the purpose of analyzing this issue, the terms of sale of products outside the candidate market are held constant.” (U.S Department of Justice and the Federal Trade Commission 2010, 9) The Guidelines describe a similar test for geographic market definition (U.S Department of Justice and the Federal Trade Commission 2010, 13).↩︎

38. The Guidelines do not provide a formula for revenue diversion.↩︎

39. In particular, this version of the Bertrand model does not accommodate non-linear pricing, such as is used in 2nd or 3rd degree price discrimination.↩︎

40. Costs that are not strictly increasing with a product’s output (i.e. fixed or sunk costs) do not affect the price setting behavior of firms in a Bertrand pricing game.↩︎

41. Users will also have to specify plant-specific variable costs as well using the ‘vcfunPre’ and ‘vcfunPost’ arguments.↩︎

42. See Miller (2014) for further details.↩︎

43. Waehrer and Perry (2003) for further details.↩︎

44. Throughout, we abuse the notation slightly by treating variables like \(K\) as both the set of firms as well as the number of firms.↩︎

45. If the second lowest bid is greater than the reserve price, the winner receives the reserve.↩︎

46. Throughout, we abuse the notation slightly by treating variables like \(K\) as both the set of firms as well as the number of firms.↩︎

47. Equivalently, \(-\frac{V_j(p_j)}{\alpha}\) is a random variable with location \(-\frac{\overline{V}_j(p_j)}{\alpha}\) and scale \(-\frac{1}{\alpha}\).↩︎

48. Note that \(k\) could either acquire \(r\)’s entire product line or just a subset.↩︎

49. Specifically, suppose \(k\) is the numeriare product, and that \(V_k=\delta_k +\alpha p_k\). When supplied ‘shares’ sum to 1, the first product is by default set to be the numeraire product. This may be changed with the ‘normIndex’ option.↩︎

50. This occurs because in a 2nd score auction, it is a dominant strategy to bid costs. Consequently, if product \(j\)’s costs do not change, then \(V_j\) is the same for product \(j\) both pre- and post-merger. This is in contrast to the Nash-Bertrand pricing game described in section 1.2.4, where a firm’s pricing strategy for product \(j\) depends on the pricing behavior of all other products, making it necessary to use pricing information to decompose \(V_j\) into its price and non-price components.↩︎

51. GePP (Jaffe and Weyl 2012) extends Upward Pricing Pressure (UPP) – introduced in Farrell and Shapiro (2010) – to accommodate multi-product merging firms.↩︎

52. Throughout, we abuse the notation slightly by treating variables like \(K\) and \(n_k\) as both the set of firms as well as the number of firms.↩︎

53. Future versions of `antitrust` may extend this model to allow for side payments.↩︎