Two questions sit underneath every pricing decision, and they are not the same question. The first: if I change my price, how much does demand move? That is price elasticity. The second: how much would this particular customer pay before they walk? That is willingness-to-pay. Elasticity is a property of the market; willingness-to-pay is a property of a person. Treat one as the other and your pricing will be confidently wrong.
The quick version
- Price elasticity of demand is the percentage change in quantity sold divided by the percentage change in price. Bigger than 1 (ignoring the sign) means demand is sensitive, a price rise loses you revenue. Smaller than 1 means you can raise price and still come out ahead.
- Willingness-to-pay (WTP) is the maximum a given buyer would pay. Customers differ wildly, so there is no single WTP, there is a distribution, and your price decides how much of it you capture.
- Elasticity answers "which way do I move price, and how far?" WTP answers "who pays what, and where is the ceiling?" You need both.
- You don't have to guess. There are real, cheap methods, controlled price tests and a four-question survey from 1976, that beat arguing in a meeting room.
The idea in depth
Start with the textbook definition, because it is genuinely useful. Price elasticity of demand is the percentage change in quantity demanded divided by the percentage change in price (Corporate Finance Institute; overview). If a 10% price rise costs you 20% of unit sales, your elasticity is about −2: demand is elastic, and the price rise shrinks your revenue. If that same 10% rise costs you only 4% of units, elasticity is about −0.4: demand is inelastic, and you just made more money on fewer sales. The sign is almost always negative, people buy less as things cost more, so by convention we talk about the absolute value and call anything above 1 "elastic" and below 1 "inelastic."
Is elasticity usually high or low? The best answer comes from a meta-analysis by Bijmolt, van Heerde and Pieters in the Journal of Marketing Research (2005), which pooled 1,851 price elasticities from 81 studies and found an average of −2.62 ("New Empirical Generalizations on the Determinants of Price Elasticity"). That average is firmly in elastic territory, most branded consumer goods lose more than a proportional share of volume when they raise price. So the move is: assume your demand is more price-sensitive than your gut thinks, and never raise price on instinct alone, model the volume you'd lose first. The honest limitation: that −2.62 is a brand-level, mostly grocery-and-CPG figure. Your subscription software, your professional service, your category-defining product may be far less elastic. The number is a prior to update, not a law to obey.
Here is the catch elasticity hides: it treats the market as one blob. In reality, different customers have different ceilings. A student and a hospital will not pay the same for the same database. Willingness-to-pay names that ceiling for each buyer, and the spread between them is where most pricing value lives. Tom Nagle and Reed Holden's The Strategy and Tactics of Pricing (first edition 1987; now in its seventh) built the practitioner canon here, cataloguing the "effects" that push a buyer's WTP up or down, whether a substitute is easy to find, whether someone else foots the bill, whether the price is a small share of a larger purchase (Routledge). So the move is: stop hunting for "the price" and start mapping the distribution of prices your customers carry, then design tiers, bundles and segments to meet more of it. (For the mechanics of that, see pricing mechanisms and pricing strategies.)
flowchart TD
A(["You're setting a price"]) --> B(["Need: which way to move, how far?"])
A --> C(["Need: what will each buyer pay?"])
B --> D(["Price elasticity
property of the market"])
C --> E(["Willingness-to-pay
property of a person"])
D --> F(["Estimate with a price test:
%Δquantity / %Δprice"])
E --> G(["Estimate with a survey or
WTP conversation; map the spread"])
F --> H(["Set the level"])
G --> H
H --> I(["Capture the spread with
tiers, bundles, segments"])
How to actually measure it
You can estimate elasticity without an economics degree: change the price in a controlled way and watch what happens to volume. An A/B price test on a website, a region-by-region trial, a temporary promotion measured against a comparable control period, each gives you a real before/after pair to drop into the formula. The discipline is in the control, not the maths: hold everything else steady so the change in quantity is plausibly caused by the change in price, not by the season or a competitor's stunt.
Willingness-to-pay is harder, because customers are unreliable narrators of their own wallets, asked outright "what would you pay?", most either lowball to bargain or guess wildly. The cleverest cheap workaround is over forty years old. In 1976 the Dutch economist Peter van Westendorp introduced the Price Sensitivity Meter, which sidesteps the single-number problem by asking four indirect questions (Wikipedia; Sawtooth Software):
- At what price is this so expensive you wouldn't consider it? (too expensive)
- At what price is it so cheap you'd doubt the quality? (too cheap)
- At what price is it starting to get expensive, not out of the question, but you'd think twice? (expensive)
- At what price is it a bargain, a great buy for the money? (cheap / good value)
Plot the cumulative answers and the lines cross at points with names: the Optimal Price Point (where "too cheap" and "too expensive" balance) and an acceptable range bounded by the points of marginal cheapness and marginal expensiveness. The practical play: before you launch anything new, run this four-question survey on a few hundred target buyers, it costs almost nothing and replaces a pricing argument with a picture of an acceptable range. Where it stops short: the Price Sensitivity Meter measures stated perception, not behaviour at the till. It is a scoping tool for a defensible starting range, not proof of revenue. For high-stakes calls, validate the range with a real price test or with conjoint analysis, which infers WTP from the trade-offs people make rather than from what they claim.
One more honest caveat threads through both methods: elasticity and WTP are not fixed traits. They shift with brand strength, with the economy, with how a price is framed against an anchor, and with what your competitors do next. Measure them as moving targets, not constants, and re-measure after anything big changes.
A worked example
Imagine a small B2B software tool priced at $40 a month with 1,000 customers, $40,000 of monthly revenue. All figures here are illustrative, not benchmarks. The founder wants to raise the price to $48 (a 20% increase) and is nervous about churn.
They run a clean test: new and a random slice of existing customers see $48, a matched control stays at $40, everything else held constant. After two months, the $48 group has 8% fewer active subscriptions than the control. Plug it in: a −8% change in quantity over a +20% change in price gives an elasticity of about −0.4, inelastic. The 20% price rise costs only 8% of customers, so on a comparable base the maths works out to roughly $44,000 from about 920 customers versus $40,000 from 1,000: more money, fewer accounts to serve.
But the elasticity number hides the better question. A Price Sensitivity Meter survey on their target buyers shows an acceptable range stretching well past $48 for one segment, larger teams who barely notice the line item, while solo users cluster near $30. That is a willingness-to-pay spread, not a single ceiling. The smarter response isn't one new price; it's two: a lighter tier near the lower cluster to keep price-sensitive users, and a team tier above $48 that captures the customers who were always going to pay more. The elasticity test told them which way to move. The WTP work told them to stop looking for one price at all.
flowchart LR
A(["1,000 customers @ $40"]) --> B(["Controlled test: raise to $48 (+20%)"])
B --> C(["Volume falls 8% -> elasticity ≈ -0.4 (inelastic)"])
C --> D(["Single new price would lift revenue..."])
A --> E(["WTP survey: ceilings differ by segment"])
E --> F(["Solo users ~$30 · Teams well above $48"])
D --> G(["...but a lighter tier + a team tier
captures more of the spread"])
F --> G
Frequently asked questions
What's the difference between price elasticity and willingness-to-pay?
Elasticity describes how the whole market's quantity responds to a price change, a single ratio. Willingness-to-pay describes the maximum a single buyer would pay, and because buyers differ, it's really a distribution. Elasticity helps you set and move the level; WTP helps you design tiers and segments to capture more of the range.
Is high elasticity good or bad?
Neither, on its own, it's information. High elasticity (above 1 in absolute terms) means customers are price-sensitive, so a price rise loses you revenue and a price cut might win share. Low elasticity means you have room to raise price without losing much volume. The point is to know which you face before you move, rather than assuming.
How do I measure elasticity without a data-science team?
Run a controlled price change and divide the percentage change in quantity by the percentage change in price. A regional trial, an A/B test on your pricing page, or a measured promotion against a comparable control period all work. The hard part is the control, keeping everything else steady, not the arithmetic.
Can I just ask customers what they'd pay?
Not directly, people lowball to bargain or guess. Use an indirect method instead. Van Westendorp's four-question Price Sensitivity Meter gives you an acceptable range cheaply; conjoint analysis infers WTP from real trade-offs; and a live price test shows actual behaviour. Treat survey methods as scoping for a starting range, then validate the high-stakes number with behaviour.
Does this only apply to physical products?
No. Both ideas apply to software, services and subscriptions, arguably more usefully, because digital products have near-zero marginal cost, so capturing more of the WTP spread through tiers drops almost straight to the bottom line. See unit economics for why that matters.
Related in the Toolkit
- Business model canvas, pricing sits inside the revenue-streams block; elasticity and WTP make that block real rather than a guess.
- Revenue models (subscription, transactional, marketplace, freemium, licensing, ads), the model you choose changes how WTP shows up and how you capture it.
- Pricing strategies (value-based, cost-plus, dynamic, penetration, skimming), value-based pricing is WTP made operational; skimming and penetration are elasticity bets.
- Pricing mechanisms (tiers, bundling, anchoring, decoy, versioning), the concrete tools for capturing a WTP spread instead of settling for one price.
- Unit economics, elasticity decisions only pay off if the margin maths underneath holds up.
- Vision, mission, purpose & strategic intent, whether you optimise for share or margin is a strategy call, not just a pricing one.
- Strategy execution & cascading goals (OKRs), turning a pricing insight into a shipped tier change is an execution problem.
- Cost of capital & WACC, the return your pricing has to clear to be worth the volume you risk.
Where to go next
- The Strategy and Tactics of Pricing, Nagle, Müller & Gruyaert, the standard practitioner text on value-based pricing and the effects that move willingness-to-pay.
- Monetizing Innovation, Ramanujam & Tacke, argues for having the willingness-to-pay conversation before you build, with field-tested ways to run it.
- The art and science of pricing, Madhavan Ramanujam (Lenny's Podcast, video), a clear, practical hour on WTP, segmentation and how to actually price a product.
- New Empirical Generalizations on the Determinants of Price Elasticity (JMR, 2005), the meta-analysis behind the −2.62 average, if you want the primary evidence.
- The Van Westendorp Price Sensitivity Meter, Sawtooth Software, a hands-on explainer of the four questions and how to read the resulting curves.