# Class “Bertrand”

### Description

The “Bertrand” class is a building block used to create other classes in this package. As such, it is most likely to be useful for developers who wish to code their own merger calibration/simulation routines.

### Objects from the Class

Objects can be created by calls of the form `new("Bertrand", ...)`

.

### Slots

Let k denote the number of products produced by all firms.

`shares`

:A length k vector containing observed output. Depending upon the model, output will be measured in units sold, quantity shares, or revenue shares.

`mcDelta`

:A length k vector where each element equals the proportional change in a product's marginal costs due to the merger.

`slopes`

:A k x (k+1) matrix of linear demand intercepts and slope coefficients

- subset
A vector of length k where each element equals TRUE if the product indexed by that element should be included in the post-merger simulation and FALSE if it should be excluded.

### Extends

Class `Antitrust`

, directly.

### Methods

Many of the methods described below contain a ‘preMerger’ and ‘revenue’ argument. The ‘preMerger’ takes on a value of TRUE or FALSE, where TRUE invokes the method using the pre-merger values, while FALSE invokes the method using the post-merger ownership structure. The ‘revenue’ argument also takes on a value of TRUE or FALSE, where TRUE invokes the method using revenues, while FALSE invokes the method using quantities

`calcMC`

`signature(object,preMerger=TRUE)`

Calculates (constant) marginal cost for each product. For those classes that do not require prices, returns a length-k vector of NAs when prices are not supplied.

`calcMargins`

`signature(object, preMerger = TRUE)`

Compute either pre-merger or post-merger equilibrium margins under the assumption that firms play a differentiated product Bertrand Nash pricing game.

`cmcr`

`signature(object)`

Calculates compensated marginal cost reduction, the percentage decrease in the marginal costs of the merging parties' products needed to offset a post-merger price increase.

`HypoMonTest`

`signature(object,prodIndex,ssnip=.05,...)`

`HypoMonTest`

implements the Hypothetical
Monopolist Test for a given ‘ssnip’.

`calcPriceDeltaHypoMon`

`signature(object,prodIndex,...)`

Compute the proportional difference in product prices between the prices of products in ‘prodIndex’ (i.e. prices set by the Hypothetical Monopolist) and prices set in the pre-merger Bertrand equilibrium. ‘...’ may be used to pass arguments to the optimizer.

`diversionHypoMon`

`signature(object,prodIndex,...)`

Calculates the matrix of revenue
diversions between all products included in the merger simulation,
*irrespective of whether or not they are also included in
‘prodIndex’*.

`hhi`

`signature(object, preMerger= TRUE,revenue=FALSE)`

Compute either the pre-merger or post-merger Herfindahl-Hirschman Index (HHI) under the assumption that firms play a differentiated product Bertrand Nash pricing game.

`diversion`

`signature(object, preMerger = TRUE)`

Computes a k x k matrix of diversion ratios.

`summary`

`signature(object,revenue=TRUE,shares=TRUE,parameters=FALSE,digits=2)`

Summarizes the effect of the merger, including price and revenue changes. Setting ‘revenue’ equal to FALSE reports quantities rather than revenues. Setting ‘shares’ to FALSE reports quantities rather than than shares (when possible). Setting ‘parameters’ equal to TRUE reports all demand parameters. ‘digits’ controls the number of significant digits reported in output.

`plot`

`signature(x=object,scale=.1`

Use `ggplot`

to plot pre- and post-merger demand, marginal cost and equilibria. ‘scale’ controls the amount above marginal cost and below equilbrium price that is plotted.

`upp`

`signature(object)`

Calculate the Upwards Pricing Pressure (upp) index.

### Author(s)

Charles Taragin charles.taragin@usdoj.gov

### Examples

1 2 | ```
showClass("Bertrand") # get a detailed description of the class
showMethods(classes="Bertrand") # show all methods defined for the class
``` |