Tutorials › Econometrics (Graduate) › Counterfactual Price Equilibria in Product Markets

Demand and Discrete Choice · Tutorial 740 of 952

Counterfactual Price Equilibria in Product Markets

Use estimated demand derivatives and firms’ ownership structure to solve for counterfactual prices, then evaluate the resulting shares, markups, and profits.

Advanced 11 min read

What You'll Learn

  • Write multiproduct firms’ pricing first-order conditions using demand shares, price derivatives, and product ownership.
  • Distinguish marginal-cost changes from changes in prices and markups.
  • Solve and verify a counterfactual equilibrium under a per-unit tax.
  • Recalculate shares, markups, and profits at counterfactual prices.
  • Recognize when numerical convergence does not by itself establish an economically valid equilibrium.

From an Estimated Demand System to Counterfactual Prices

Estimated demand describes how consumers’ choices respond to prices. A price counterfactual asks a different question: after a firm’s marginal cost changes, what prices would firms choose, and what shares and profits would follow? The answer is not generally obtained by adding the cost change to the original price. Firms’ prices affect demand, and their pricing decisions interact through substitution across products.

The exercise takes the estimated demand system and firms’ conduct as given. In a market with differentiated products, demand supplies the shares and their price derivatives; the ownership structure specifies which products each firm jointly prices. Solving firms’ first-order conditions then yields prices consistent with both demand and profit maximization. The result is conditional on these inputs, not a causal estimate of a cost shock or a guarantee that the assumed conduct is correct.

Definition: A counterfactual price equilibrium is a vector of product prices at which, given the counterfactual marginal costs, the demand system, and the assumed conduct, each firm’s prices maximize its profit given rivals’ prices. For an interior equilibrium, the pricing first-order conditions are necessary but not sufficient; a proposed solution must also be checked to be profit-maximizing given rivals’ prices. At those prices, each product’s share is evaluated from the demand system. A markup is price minus marginal cost, including any per-unit tax treated as a cost of selling the product.

The Pricing Conditions

Consider a market with products \(j=1,\ldots,J\), firms \(f(j)\), prices \(p_j\), and shares \(s_j(p)\). Write \(c_j\) for marginal cost before a counterfactual shock, and \(\tau_j\) for a per-unit tax or other per-unit cost change. If firm \(f\) chooses prices for all its products and maximizes variable profit, its profit is \(\sum_{k:f(k)=f}(p_k-c_k-\tau_k)s_k(p)\). The first-order condition for the price of product \(j\), owned by firm \(f(j)\), is

$$ s_j(p)+\sum_{k:f(k)=f(j)}(p_k-c_k-\tau_k) \frac{\partial s_k(p)}{\partial p_j}=0. $$

This condition assumes firms choose prices simultaneously, take rivals’ prices as given when choosing their own, and maximize the stated profit. It also assumes the relevant shares are differentiable with respect to prices and that the candidate is an interior solution. Fixed costs do not enter these price conditions. A per-unit tax enters as a marginal cost because it is paid on each unit sold.

Let \(\eta_k=p_k-c_k-\tau_k\) be product \(k\)’s net markup. Define the ownership-adjusted derivative matrix \(\Delta(p)\) by \(\Delta_{jk}(p)=-\mathbf{1}\{f(j)=f(k)\}\,\partial s_k(p)/\partial p_j\). Here the indicator is one when products \(j\) and \(k\) have the same owner and zero otherwise. With this indexing, the system of first-order conditions is

$$ \Delta(p)\eta=s(p), \qquad \eta=p-c-\tau. $$

If \(\Delta(p)\) is nonsingular, the markups at a given price vector can be written as \(\eta=\Delta(p)^{-1}s(p)\). This is a relationship evaluated at that price vector, not usually a direct formula for equilibrium prices: both shares and derivatives generally change when prices change. A price equilibrium solves

$$ p=c+\tau+\Delta(p)^{-1}s(p). $$

Why the Conditions Have This Form

For a small change in product \(j\)’s price, firm \(f(j)\)’s profit changes through the sales of every product that it owns. Differentiating its profit with respect to \(p_j\) gives the direct effect \(s_j(p)\) on revenue from product \(j\), plus the effect of the price change on each owned product’s share, weighted by that product’s net markup. Setting this derivative equal to zero gives the first-order condition above.

For the matrix version, multiply the first-order condition for product \(j\) by one and rearrange: \(s_j(p)=\sum_{k:f(k)=f(j)}[-\partial s_k(p)/\partial p_j]\eta_k\). The coefficient on \(\eta_k\) is precisely \(\Delta_{jk}(p)\), so stacking the conditions gives \(\Delta(p)\eta=s(p)\). This also shows why ownership matters: a firm internalizes the effect of its price on the shares of its other products, but not on products owned by rivals.

Worked Example: A Single Product Facing a Per-Unit Tax

Suppose a hypothetical monopolist faces the linear share equation \(s(p)=0.80-0.10p\), has constant marginal cost \(c=1.00\), and chooses an interior price. Shares are assumed to be positive over the prices considered. The first-order condition is \(s(p)-0.10(p-c-\tau)=0\), since the derivative of share with respect to price is \(-0.10\).

Before the tax. Set \(\tau=0\). Substituting the demand equation gives \(0.80-0.10p-0.10(p-1)=0\), or \(0.90-0.20p=0\). Thus \(p=4.50\). The share is \(s=0.80-0.10(4.50)=0.350\), and variable profit is \((4.50-1.00)(0.350)=1.225\) per potential consumer.

After a tax of 0.20 per unit. The condition becomes \(0.80-0.10p-0.10(p-1.00-0.20)=0\), or \(0.92-0.20p=0\). The counterfactual price is \(p=4.60\), and the share is \(0.80-0.10(4.60)=0.340\). Profit after the tax is \((4.60-1.00-0.20)(0.340)=1.156\) per potential consumer. The price rises by \(0.10\), not the full tax: this follows from this demand curve and the firm’s pricing condition, not from a general rule that taxes are passed through by one-half.

Solving and Checking a Counterfactual

For nonlinear demand, there is usually no closed-form solution for prices. A practical approach is to evaluate the estimated demand system and its price derivatives at trial prices, form the ownership-adjusted first-order conditions, and solve for prices that make all conditions zero. One can use a root-finding method or iterate the markup equation, but either way the result must be checked in the original first-order conditions.

1
Specify the counterfactual.
Hold the estimated demand parameters and market definition fixed, and state which marginal costs or per-unit taxes change. Keep the firms’ ownership and conduct assumptions explicit.
2
Evaluate demand at trial prices.
Calculate \(s(p)\) and every price derivative needed for the firms’ first-order conditions. In a random-coefficient model, use the same integration or simulation conventions used to evaluate demand.
3
Find a root of the pricing conditions.
Adjust prices until each firm’s first-order condition is sufficiently close to zero. If using the markup equation as an iteration, recompute shares and derivatives at each updated price vector.
4
Verify and report the outcome.
At the proposed solution, check the original first-order conditions, shares, and net markups. Calculate profits using counterfactual prices and costs, and check that the values are economically admissible for the model.

A numerical solver’s convergence flag only says something about its numerical stopping rule. It does not establish that the root is unique, that it is a profit maximum rather than another stationary point, or that the demand and conduct assumptions are plausible. In practice, useful checks include restarting the solver from different initial prices, checking the size of every first-order-condition residual, and inspecting shares, derivatives, markups, and profits.

Worked Example: A Tax Shock with Two Single-Product Firms

Consider hypothetical linear shares \(s_1=0.60-0.10p_1+0.02p_2\) and \(s_2=0.50+0.01p_1-0.08p_2\). Each product is owned by a different firm, so each firm accounts only for its own share when setting its price. Marginal costs are \(c_1=1.00\) and \(c_2=1.20\). The own-price derivatives are negative, and the equilibrium shares calculated below are positive.

For firm 1 the first-order condition is \(s_1-0.10(p_1-c_1-\tau_1)=0\). For firm 2 it is \(s_2-0.08(p_2-c_2)=0\). Before the tax, substituting the demand equations yields \(2p_1-0.20p_2=7.00\) and \(2p_2-0.125p_1=7.45\). Solving gives \(p_1=3.8969\) and \(p_2=3.9686\).

Substitution into demand gives \(s_1=0.60-0.10(3.8969)+0.02(3.9686)=0.2897\) and \(s_2=0.50+0.01(3.8969)-0.08(3.9686)=0.2215\). The first-order conditions check: \(0.10(p_1-c_1)=0.2897\), and \(0.08(p_2-c_2)=0.2215\), up to rounding. The firms’ variable profits are approximately \((3.8969-1.00)(0.2897)=0.8392\) and \((3.9686-1.20)(0.2215)=0.6132\).

Now impose a tax \(\tau_1=0.20\) on product 1 only. The first equation becomes \(2p_1-0.20p_2=7.20\), while the second is unchanged. The solution is \(p_1=3.9975\) and \(p_2=3.9748\). The new shares are \(s_1=0.2797\) and \(s_2=0.2220\). The net margins are \(p_1-c_1-\tau_1=2.7975\) and \(p_2-c_2=2.7748\); multiplying by shares gives profits of approximately \(0.7826\) and \(0.6160\). Product 2’s price moves even though its cost is unchanged: its demand depends on product 1’s price, and the two firms’ pricing conditions are linked through demand.

Multiproduct Ownership and Markup Recovery

When a firm owns several products, cross-price derivatives enter its conditions. This is one reason that treating every product as an independent monopolist can produce incorrect counterfactual prices. The following calculation illustrates how the ownership-adjusted system converts shares and derivatives at a candidate price vector into markups.

Worked Example: Checking a Two-Product Firm’s Pricing Conditions

Suppose one firm owns products 1 and 2. At candidate prices \(p_1=2.00\) and \(p_2=3.00\), a hypothetical estimated demand system gives shares \(s_1=0.100\) and \(s_2=0.080\). Suppose the derivatives, with rows indexing shares and columns indexing prices, are \(\partial s_1/\partial p_1=-0.080\), \(\partial s_1/\partial p_2=-0.010\), \(\partial s_2/\partial p_1=-0.010\), and \(\partial s_2/\partial p_2=-0.060\). The derivatives are negative here; the example uses them as supplied by the demand model at these prices.

Because the products have the same owner, the ownership-adjusted matrix is \(\Delta=\begin{pmatrix}0.080&0.010\\0.010&0.060\end{pmatrix}\). Its determinant is \(0.080(0.060)-0.010(0.010)=0.00470\), so it is nonsingular. Solving \(\Delta\eta=s\) gives \(\eta_1=[0.060(0.100)-0.010(0.080)]/0.00470=1.1064\) and \(\eta_2=[0.080(0.080)-0.010(0.100)]/0.00470=1.1489\).

For a direct check, \(0.080(1.1064)+0.010(1.1489)=0.1000\), and \(0.010(1.1064)+0.060(1.1489)=0.0800\), up to rounding. The implied marginal costs at this candidate are \(c_1=p_1-\eta_1=0.8936\) and \(c_2=p_2-\eta_2=1.8511\), with no tax in this calculation. Thus the candidate satisfies the firm’s pricing first-order conditions for those implied costs. In a counterfactual with specified costs, the task is instead to find prices at which these same conditions hold.

Interpreting Results and Avoiding Pitfalls

Counterfactual price, share, and profit changes are conditional predictions from the estimated demand system combined with the specified cost changes and conduct assumptions. Report the units of prices, costs, and profits, and distinguish a product’s price change from its net markup change. A tax can raise price while reducing net markup; rival prices may also change because shares are interdependent. Profits should use the costs actually faced in the counterfactual, including the tax, rather than the original marginal costs.

  • Using old derivatives at new prices. For nonlinear demand, derivatives generally depend on prices. Recompute them at each trial vector and at the final solution.
  • Ignoring ownership. A multiproduct firm internalizes cross-price effects on all its own products. Apply the ownership structure to derivatives before solving the markup system.
  • Adding the tax directly to price. A tax changes the firm’s marginal cost, but equilibrium price also responds to demand and strategic interaction. Solve the pricing conditions rather than assuming full pass-through.
  • Treating a numerical root as sufficient evidence. Check the first-order-condition residuals, shares, markups, and economic admissibility. A small residual alone does not establish uniqueness or global optimality.

For example, if one numerical solution reports a baseline price of \(2.401\) and a tax-counterfactual price of \(2.56288\), their difference using the displayed baseline is \(2.56288-2.401=0.16188\), or about \(0.1619\). Using a more precise baseline solution of \(2.40106\) gives an increase of about \(0.16182\). The subtraction should use consistent displayed precision; rounding cannot justify reporting an increase of \(0.1629\).

Key takeaway: Counterfactual pricing combines the demand system’s shares and price derivatives with firms’ ownership and counterfactual marginal costs. Solve the resulting pricing conditions, then recompute and verify prices, shares, markups, and profits at the solution.

Check Your Understanding

Answer each question using the pricing conditions and checks developed above.

  1. Why does the first-order condition for a multiproduct firm include the price derivatives of all products that firm owns?
  2. In the matrix equation \(\Delta(p)\eta=s(p)\), what does the ownership indicator do, and why can the equation not usually be solved once using derivatives at the original prices?
  3. A per-unit tax rises by 0.30. What equation changes in the counterfactual, and why does this not imply that price must rise by 0.30?
  4. At a proposed solution, what numerical and economic checks would you make before reporting the counterfactual?
  5. Why should variable profit under a tax be calculated using price minus both marginal cost and the tax?
Clinical Biostats