Price Elasticity Modeling for B2B
When linear models fail and what to use instead — a practitioner’s primer for senior pricing analysts working across industrial, distribution, and specialty B2B categories.
DATAQUANT RESEARCH TEAM · PRICING ANALYTICS · 12 MIN READ
Price elasticity in B2B is one of those analytical capabilities that consulting firms reference loosely, executive sponsors approve enthusiastically, and pricing teams quietly fail to deploy reliably. The reason is not that elasticity is conceptually difficult — it isn’t. The reason is that the standard textbook approach — a log-log linear regression of price on quantity — gives wrong answers in B2B contexts often enough that pricing teams stop trusting the output and revert to gut.
This piece is for the senior pricing analyst, data scientist, or director-level pricing leader who has either tried to build elasticity models and seen them produce nonsense, or who is being pushed by a CFO to “use AI for pricing” and wants to understand what the technical pitfalls are before scoping the work.
Why log-log linear regression fails in B2B
The textbook elasticity formula is straightforward: regress log(quantity) on log(price), the coefficient is the elasticity. Apply it to a transaction-level dataset, get an elasticity estimate per SKU, use the estimate to optimise price.
This works in undergraduate economics. It rarely works in B2B because B2B transaction data violates the model’s implicit assumptions in five specific ways:
Violation 1: Endogeneity
In a clean experimental setting, price is exogenous — it’s set independently of the demand process. In B2B reality, price is endogenous: it’s determined as part of the same negotiation that determines quantity. Larger orders get bigger discounts. Strategic customers get preferential terms. Salespeople adjust price based on what they think the customer will accept.
When you regress quantity on price in this data, you’re not measuring “how does demand respond to price.” You’re measuring “how does price covary with quantity given the negotiation process that produced both.” These are different questions, and the linear regression answers the second when you wanted the first. The result is elasticity estimates that are systematically too low (or, on bigger deals, the wrong sign entirely).
Violation 2: Customer heterogeneity
A single SKU sold to a small commercial customer behaves with different elasticity than the same SKU sold to a large industrial account. Aggregating across customers and fitting one elasticity coefficient produces a meaningless average. The model technically converges. The number it produces is not actionable.
Violation 3: Discrete-event nature of B2B purchasing
B2B purchases are not continuous. A customer doesn’t buy 1.4 units more or fewer when price changes — they buy a contracted volume, or they place a discrete order, or they switch to a competitor. The log-log model assumes a smooth response curve. The actual response is closer to a threshold function: price stays under a customer’s switching threshold, full volume; price crosses the threshold, volume collapses to zero.
Violation 4: Multi-product baskets
In B2B distribution and industrial supply, customers don’t buy products one at a time — they buy baskets. Cross-elasticities between products in the basket are large and structural. A price change on product A affects demand for products B and C through bundling, sourcing-relationship dynamics, and customer-level substitution patterns. A single-SKU elasticity model cannot capture this.
Violation 5: Time dynamics
Customer response to a price change is not instantaneous. A B2B customer evaluating a 4% list-price increase needs to assess procurement contracts, internal budgets, alternative suppliers, switching costs, and contract renewal cycles. The full demand response materialises over months, not transactions. A static elasticity model averages across the response window and produces an estimate that’s neither short-run nor long-run.
The cumulative effect When five assumption violations stack, the model’s output is not just imprecise — it’s systematically biased in known directions. Most B2B price-elasticity models we have audited estimate elasticity 30–60% lower (in absolute value) than the true response. Pricing decisions made against these estimates leave significant margin on the table because the team thinks customers are less price-sensitive than they actually are. |
What to use instead
Three approaches handle B2B elasticity better than log-log linear regression. They are not silver bullets — each has its own assumptions and failure modes — but they are materially better suited to the structure of B2B data.
Approach 1: Instrumental variables (handles endogeneity)
The classical economist’s solution to endogeneity is an instrumental variable: a variable that affects price but doesn’t directly affect quantity. In B2B, common candidates include:
- Cost shocks (raw material cost changes that flow into price but aren’t observed by the customer)
- Competitor list-price changes in the same category
- Exchange-rate movements for imported components
- Tariff or regulatory changes
Two-stage least squares using cost shocks as instruments routinely produces elasticity estimates 1.5–3x larger (in absolute value) than naive OLS. The instrument needs to be defensible — the relevance assumption (instrument predicts price) and the exclusion restriction (instrument doesn’t directly predict quantity) both need to hold. In practice, raw-material cost shocks satisfy both for most B2B distribution categories.
Approach 2: Customer-segment hierarchical models
Instead of one elasticity per SKU, fit hierarchical models that allow elasticity to vary by customer segment. Mixed-effects models or Bayesian hierarchical models work well here. The structural form: elasticity has a population-level mean (one estimate per SKU) plus a customer-segment deviation (an additional coefficient per segment).
This handles violation 2 directly. It also produces output that’s actionable: the pricing team gets segment-specific elasticities they can use for differentiated pricing strategy. The analytical complexity is higher — hierarchical models need careful prior specification and convergence diagnostics — but the output is genuinely useful for the deal desk and for list-price management.
Approach 3: Choice models with switching thresholds
For categories where customer switching is the dominant demand response, replace continuous-elasticity models with discrete-choice models. Conditional logit, nested logit, or random-coefficient mixed logit models estimate the probability that a customer switches suppliers as a function of relative price.
These models handle violation 3 (discrete response) and produce output that maps directly to commercial decisions: “If we raise list price by 4%, our model predicts a 7% probability of switching for our top-tier customers and a 22% probability for our commodity-tier customers.” That output is actionable in a way that “elasticity is -1.4” is not.
A practitioner’s recipe
For most mid-market B2B businesses we’ve worked with, the analytical recipe that produces deployable elasticity output looks like this:
- Start with the data audit. Three years of transaction data joined with customer master, product master, and a cost-shock series. Verify the join. Verify the cost-shock series predicts price (first-stage F-statistic above 10 is the rule of thumb).
- Segment the customers before estimating elasticity. At minimum, segment by size, channel, geography, and tenure. Five to seven segments is usually enough — too few and you average across heterogeneous customers; too many and you have insufficient data per segment.
- Estimate elasticity using two-stage least squares with cost-shock instruments, separately by segment. For each (SKU × segment) combination, you produce an elasticity estimate plus a confidence interval. The confidence interval matters: pricing decisions on SKU×segment combinations with very wide confidence intervals should be made conservatively.
- Validate against held-out price changes. Use a temporal split: train on the first 70% of the time series, validate on the most recent 30%. The model’s predicted quantity response on the validation period should track actual response. If it doesn’t, the elasticity estimates are not deployable yet.
- Convert elasticity into deal-desk output. The deal desk doesn’t need elasticity coefficients. They need: “for this customer in this segment, the predicted volume response to a 4% price increase is X%, with confidence interval Y.” Wrap the model output in this kind of decision-ready format.
What this looks like in practice
A €420M industrial distributor we worked with had been operating on intuition-based pricing for years. The pricing director wanted elasticity estimates to support a list-price restructuring. The first attempt — outsourced to a generalist consulting firm — produced elasticities ranging from -0.2 to -0.6 across the catalogue. The numbers seemed too low. Implementation was paused.
A re-estimation using IV with raw-material cost shocks, separately by customer segment, produced elasticities ranging from -0.4 to -2.1 across SKU×segment combinations — a much wider distribution. The high-elasticity combinations clustered exactly where intuition suggested: commodity SKUs sold to price-sensitive distributor customers. The low-elasticity combinations clustered where the business held strategic relationships and proprietary product lines.
List-price restructuring guided by these revised estimates implemented over the following six months. Net realised price improved by 2.1% on aggregate — a margin expansion of approximately €8.8M annualised — with negligible impact on volume. The volume decline observed (0.3%) tracked within the model’s confidence intervals on the high-elasticity SKUs. The model held in deployment.
Three pitfalls
- Treating elasticity as a fixed number per SKU. Elasticity changes with macro conditions, competitor moves, and customer composition. An elasticity model fit on 2022–2024 data may not generalise to 2026 conditions without recalibration. Plan for model refresh on a quarterly cadence.
- Ignoring the cross-product effects. Single-SKU elasticity models tell you what happens if you change the price of product A holding all else constant. In B2B, almost nothing is held constant — customers re-bundle. For SKUs with strong cross-elasticity to other SKUs, a basket-level model is necessary.
- Deploying without a deal-desk override. Even a well-calibrated elasticity model produces estimates with confidence intervals. The deal desk needs authority to override the model when the estimate is uncertain or when strategic considerations apply. Models that are deployed as automatic pricers without human override produce predictable failure modes.
Closing thought
B2B price elasticity is harder than the textbook version, but it is not unreachable. The reason most pricing teams revert to gut is not that the math is too complex — it is that the standard implementations get the wrong answer often enough that the team learns not to trust the output. Address the five assumption violations directly, validate against held-out price changes, wrap the output in deal-desk-friendly decision support, and the model becomes a tool the pricing organisation actually uses.
