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.
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
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
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
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.
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.
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.
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.
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\).
Check Your Understanding
Answer each question using the pricing conditions and checks developed above.
- Why does the first-order condition for a multiproduct firm include the price derivatives of all products that firm owns?
- 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?
- 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?
- At a proposed solution, what numerical and economic checks would you make before reporting the counterfactual?
- Why should variable profit under a tax be calculated using price minus both marginal cost and the tax?