CMCRCournot-Functions {antitrust} R Documentation

Compensating Marginal Cost Reductions and Upwards Pricing Pressure (Cournot)

Description

Calculate the marginal cost reductions necessary to restore premerger prices (CMCR), or the net Upwards Pricing Pressure (UPP) in a merger involving firms playing a homogeneous product Cournot pricing game.

Usage

```cmcr.cournot(
shares,
mktElast,
party = FALSE,
rel = c("cost", "price"),
labels = names(shares)
)

cmcr.cournot2(
margins,
rel = c("cost", "price"),
party = FALSE,
labels = names(margins)
)

upp.cournot(
prices,
margins,
ownerPre,
ownerPost = matrix(1, ncol = length(prices), nrow = length(prices)),
mcDelta = rep(0, length(prices)),
labels = names(margins)
)
```

Arguments

 `shares` A length-2 vector containing merging party quantity shares. `mktElast` A length-1 containing the industry elasticity. `party` If TRUE calculate a length-2 vector of individial party CMCRs. If FALSE calculate share-weighted CMCR relative to share-weighted pre-merger marginal costs. Default is FALSE `rel` A length 1 character vector indicating whether CMCR should be calculated relative to pre-merger cost (“cost”) or pre-merger price (“price”), Default is “cost”. `labels` A length-2 vector of product labels. `margins` A length-2 vector of product margins. `prices` A length-2 vector of product prices. `ownerPre` EITHER a vector of length 2 whose values indicate which of the merging parties produced a product pre-merger OR a 2 x 2 matrix of pre-merger ownership shares. `ownerPost` A 2 x 2 matrix of post-merger ownership shares. Default is a 2 x 2 matrix of 1s. `mcDelta` A vector of length 2 where each element equals the proportional change in a product's marginal costs due to the merger. Default is 0, which assumes that the merger does not affect any products' marginal cost.

Details

The ‘shares’ (or ‘margins’) vector must have 2 elements, and all ‘shares’ and ‘margins’ elements must be between 0 and 1. The ‘mktElast’ vector must have 1 non-negative element.

Value

when ‘party’ is FALSE (default), `cmcr.cournot`, `cmcr.cournot2` return a vector with 1 element whose value equals the percentage change in the products' average marginal costs that the merged firms must achieve in order to offset a price increase. When ‘party’ is TRUE, `cmcr.cournot`, `cmcr.cournot2` return a vector with 2 element whose value equals the percentage change in each parties' marginal costs necessary to offset a price increase. When ‘rel’ equals "cost" (default) results are in terms of per-merger marginal costs. Otherwise, results are in terms of pre-merger price.

Charles Taragin

References

Froeb, Luke and Werden, Gregory (1998). “A robust test for consumer welfare enhancing mergers among sellers of a homogeneous product.” Economics Letters, 58(3), pp. 367 - 369.

Werden, Gregory and Froeb, Luke (2008). “Unilateral Competitive Effects of Horizontal Mergers”, in Paolo Buccirossi (ed), Handbook of Antitrust Economics (MIT Press).

`cmcr.bertrand` for a differentiated products Bertrand version of this measure.

Examples

```shares=c(.05,.65)
industryElast = 1.9
margins=shares/industryElast

##  calculate average CMCR as a percentage of pre-merger costs
cmcr.cournot(shares,industryElast, rel="cost")

##  calculate average CMCR as a percentage of pre-merger price
cmcr.cournot(shares,industryElast, rel="price")

##  calculate average CMCR using margins as a percentage of pre-merger costs
cmcr.cournot2(margins, party=TRUE,rel="cost")

##  calculate the average CMCR for various shares and
##  industry elasticities in a two-product merger where both firm
##  products have identical share (see Froeb and
##  Werden, 1998, pg. 369, Table 1)

deltaHHI = c(100, 500, 1000, 2500, 5000) #start with change in HHI
shares = sqrt(deltaHHI/(2*100^2)) #recover shares from change in HHI
industryElast = 1:3

result = matrix(nrow=length(deltaHHI),ncol=length(industryElast),
dimnames=list(deltaHHI,industryElast))

for(s in 1:length(shares)){
for(e in 1:length(industryElast)){

result[s,e] = cmcr.cournot(rep(shares[s],2),industryElast[e])[1]

}}

print(round(result,1))

```

[Package antitrust version 0.99.25 Index]