Price Elasticity of Demand
Why %ΔQ / %ΔP is the master parameter — and why a naive regression of quantity on price estimates the wrong thing
Every pricing decision reduces to one number: if I move price by 1%, how much does quantity move? That number is the elasticity ε, and almost every mistake in pricing analytics is either not knowing ε or estimating it from data that cannot possibly reveal it.
Elasticity is a ratio of percent changes, and that is deliberate. ε = %ΔQ / %ΔP. Using percentages instead of raw units makes ε unit-free: it doesn't matter whether Q is in cups of coffee or gigawatt-hours, or whether P is in dollars or rupees. Demand curves slope down, so ε is negative; people quote |ε|. |ε| > 1 is elastic (quantity reacts more than price — a 1% cut lifts volume more than 1%), |ε| < 1 is inelastic (quantity barely moves), |ε| = 1 is unit elastic.
The clean way to estimate it is a log-log demand model, where the coefficient IS the elasticity. Fit log Q = α + β·log P. Then β = d(log Q)/d(log P) = %ΔQ / %ΔP = ε — a *constant* elasticity across the range, which is why log-log is the workhorse specification. A linear Q = a − b·P instead gives an elasticity that changes at every point (ε = −b·P/Q), which is fine but less interpretable. The log-log slope reads off directly as the master parameter.
The trap: regressing observed quantity on observed price estimates the wrong thing. Firms *raise* prices exactly when demand is high (peak season, hot product) and cut them when demand is soft. So in observational data, high prices coincide with high quantities — the naive regression can return a *shallow, even positive* "elasticity," implying "raise price to sell more." That is endogeneity: price is correlated with the demand shocks in the error term. This is why real elasticity comes from experiments or instruments (a supply-side cost shock that moves price but not demand), not from a scatterplot of what happened.
Key points
- Elasticity is the unit-free master parameter: ε = %ΔQ / %ΔP. Percent changes make it comparable across products and currencies. |ε| > 1 = elastic (volume reacts strongly), |ε| < 1 = inelastic (volume barely moves). It is negative for normal goods; people quote the magnitude.
- The log-log model makes the coefficient the elasticity. Fit log Q = α + β·log P and β = ε directly, constant across the price range. A linear demand curve has a *changing* elasticity (ε = −b·P/Q), which is harder to reason about — log-log is the default because the slope IS the answer.
- Observational price/quantity data is endogenous. Firms raise price when demand is high, so high prices and high quantities co-occur in the record. A naive regression absorbs that and returns a biased, sometimes positive, "elasticity." Price is correlated with the demand shock — the textbook endogeneity failure.
- Unbiased elasticity needs experiments or instruments. Randomize price (geo/switchback tests) or use an instrument that shifts price for a reason unrelated to demand (a cost or tax shock). Both break the price↔demand-shock correlation so the estimated %ΔQ / %ΔP is causal.
Elasticity ε = %ΔQ / %ΔP is the single number that decides whether a price move grows or shrinks revenue, and the log-log demand model reads it off as a slope. But you cannot regress observed quantity on observed price — firms set price in response to demand, so that estimate is endogenously biased (even positive). Real elasticity comes from an experiment or an instrument that moves price independently of demand.
Recap
- ε = %ΔQ / %ΔP is the master parameter: unit-free, negative for normal goods. |ε| > 1 elastic (volume reacts strongly), |ε| < 1 inelastic, |ε| = 1 unit elastic.
- Log-log demand makes the coefficient the elasticity: fit log Q = α + β·log P → β = ε, constant across the range. Linear demand has a changing elasticity ε = −b·P/Q.
- Observational data is endogenous: firms raise price when demand is high, so high prices co-occur with high quantities → naive regression returns a biased, even positive, "elasticity." Price correlates with the demand shock.
- Causal ε needs an experiment or instrument: randomize price (geo/switchback) or use a supply-side cost/tax shock that moves price but not demand. That breaks the price↔demand correlation.
- Elasticity decides the revenue direction of a price move: elastic → a cut grows revenue; inelastic → a cut shrinks it. Getting the sign of this decision wrong is the costliest pricing error.
Check your understanding
Q1. A product has estimated |ε| = 1.6. Select the two correct statements about what happens if you cut price by 5%.
- A) With |ε| = 1.6 > 1 the good is elastic, so a 5% cut raises quantity by roughly 8%, more than offsetting the per-unit price loss.
- B) Because quantity gains outweigh the per-unit loss when demand is elastic, total revenue increases from this cut.
- C) Revenue falls regardless, since cutting price always reduces revenue whenever marginal cost exceeds zero.
- D) Revenue is unchanged, because elasticity of 1.6 sits below the unit-elastic threshold of 2.0 where price and quantity offset.
Q2. You regress log(units) on log(price) across a year of store data and get a slope of +0.3. What is the most likely explanation?
- A) The good is a Giffen good: for strongly inferior staples, the income effect overwhelms the substitution effect, so demand genuinely rises with price.
- B) Endogeneity: the store raised prices in high-demand periods, so price correlates with the unobserved demand shock — the slope isn't a causal elasticity.
- C) The log-log specification is wrong here; switching to a quadratic price term would flip the sign back to the expected negative value.
- D) Measurement error in the price variable systematically attenuated the true negative slope toward zero and pushed it past zero into strongly positive territory over the full year of data.
Q3. Why is a log-log demand model usually preferred over a linear one when the goal is to report a single elasticity number?
- A) Log-log always achieves a higher R² than a linear fit because the log transform removes heteroskedasticity from the residuals entirely.
- B) The slope in log-log form is itself the elasticity and stays constant across prices; a linear model's elasticity changes at every point.
- C) Linear models cannot represent downward-sloping demand curves, since a negative slope violates the non-negativity constraint on quantity.
- D) Log-log transformation removes endogeneity bias automatically, since taking logarithms breaks the correlation between price and demand shocks.
Try it interactively
ML Systems Lab is a free interview-prep platform for ML engineers — work through the full interactive module, quizzes, and drills.
Open ML Systems Lab →