Pricing research
Gabor-Granger pricing: demand curves from survey data
The Gabor-Granger method asks respondents whether they would buy at each of several specific prices. The share who would buy at each price is a demand curve; price × demand is expected revenue per respondent, and the tested price with the highest revenue is the revenue-maximising price. Arc elasticities between neighbouring prices show where demand turns from inelastic to elastic. Because stated intent overstates purchase, trust the shape of the curve more than its level.
How results are checked
Named statistical review pending. Selected automated reference cases are published on the validation page.How a Gabor-Granger study works
Pick four to eight realistic prices that span the range you could charge, describe the product, and ask purchase intent at each price, usually on a five-point scale from “definitely would not buy” to “definitely would buy”. Prices can be asked as a ladder (start high, move down until the respondent would buy, or the reverse) or each respondent can see every price.
For analysis, each answer becomes “would buy” or not under a fixed rule, such as top two box. Demand at a price is the (weighted) share of respondents who would buy at that price. When a ladder stops early, a blank price below one a respondent would buy at can be filled as “would buy”, and a blank above one they rejected as “would not buy”; averaging only over the people asked at each price biases demand.
Gabor-Granger vs Van Westendorp
Van Westendorp asks open-ended price perceptions and returns a range of acceptable prices; Gabor-Granger asks about prices you choose and returns demand and revenue at those prices. Teams often run Van Westendorp first to find the plausible range and Gabor-Granger second to compare specific price points inside it. Neither models competitors or feature trade-offs; that is the job of conjoint and discrete choice.
The method
Formula
demand(p) = Σ wi·buyi(p) / Σ wi · revenue(p) = p × demand(p) · index(p) = 100 × revenue(p) / max revenue
E = [(d₂ − d₁) / ((d₁ + d₂)/2)] / [(p₂ − p₁) / ((p₁ + p₂)/2)]
where
- buy_i(p)
- 1 if respondent i would buy at price p under the chosen rule (e.g. top two box), else 0
- w_i
- respondent weight (1 when unweighted)
- E
- arc (midpoint) elasticity between neighbouring tested prices p₁ < p₂ with demand d₁, d₂
Worked example
Sample data: the synthetic subscription pricing study that the Gabor-Granger tool loads with “Use sample data” (400 generated respondents, not real people). Each rated their intent to buy a monthly meal-kit subscription at 5 prices on a 1–5 scale; “would buy” means a 4 or 5 (top two box).
| Price | Would buy | Revenue / respondent | Revenue index |
|---|---|---|---|
| 19 | 88.3% (353) | 16.77 | 98.1 |
| 24 | 71.3% (285) | 17.10 | 100.0 |
| 29 | 55.8% (223) | 16.17 | 94.5 |
| 34 | 41.0% (164) | 13.94 | 81.5 |
| 39 | 29.3% (117) | 11.41 | 66.7 |
Revenue per respondent peaks at a price of 24 (71.3% × 24 = 17.10), but the top is flat: 19 reaches a revenue index of 98.1. The arc elasticities explain the shape: 19→24: −0.92, 24→29: −1.29, 29→34: −1.92, 34→39: −2.44. Between the two lowest prices demand is inelastic (above −1), so raising the price adds revenue; from there on it is elastic and every increase loses more buyers than it gains in price.
30 respondents said they would buy at a higher price but not at a lower one. The tool reports them and keeps them by default (you can exclude them); here they do not make aggregate demand rise anywhere along the curve.
Using it well
When to use it
Use it when
- Use: You have a short list of candidate prices and need to compare demand and revenue at each.
- Use: An existing product with a known price range, where respondents can judge specific prices.
- Use: Tracking how price sensitivity moves between segments or waves with the same price list.
Not the right tool when
- Avoid: You do not yet know the plausible price range: start with a Van Westendorp price sensitivity meter.
- Avoid: Price competes with features or rival products in the purchase decision: use conjoint or discrete choice.
- Avoid: You need a forecast of absolute sales volume: stated intent needs calibration against real purchase data first.
How to interpret it
Rule of thumb
Read the curve's slope, not its height. Where arc elasticity is between 0 and −1, a higher price raises revenue; below −1 it lowers revenue. A flat revenue top means several prices are close; choose among them on margin, positioning and competition.
Next step: build your own demand curve
The free Gabor-Granger tool reads one purchase-intent column per tested price from a CSV, Excel or SPSS file, lets you choose top box, top two box, a threshold or yes/no as “would buy”, applies an optional weight, fills unasked ladder prices from each respondent's answers, and reports demand, revenue index, arc elasticities and respondents whose answers rise with price. Everything runs in your browser; no account.
Questions
Frequently asked questions
What is the Gabor-Granger method?
A pricing survey technique in which respondents say whether they would buy a product at a series of specific prices. The share who would buy at each price is a demand curve; multiplying by price gives expected revenue per respondent, and the price with the highest revenue is the revenue-maximising price among those tested.
Should I count top box or top two box as 'would buy'?
Top two box (definitely or probably would buy on a five-point scale) is the most common convention, but stated intent overstates real purchase, so the level of the curve is optimistic either way. What the method measures well is how intent changes between prices. Keep the rule fixed across studies so curves are comparable.
Should prices be shown in random order or as a ladder?
Both are used. A descending or ascending ladder that stops once the answer changes is shorter but anchors respondents on the first price; showing each price to separate cells (monadic) avoids the anchor but needs a larger sample. Whatever the design, record which prices each respondent saw.
What does price elasticity mean here?
The arc elasticity between two neighbouring tested prices is the percentage change in demand divided by the percentage change in price, using midpoints. A value between 0 and −1 means demand falls more slowly than price rises, so revenue goes up; below −1 demand falls faster and revenue goes down.
Is the revenue-maximising price the price I should charge?
Not on its own. It is the best of the tested prices for expected revenue per respondent, ignoring costs, competitors and the overstatement of stated intent. If two tested prices have nearly the same revenue index, the higher one may suit a margin goal and the lower one a volume goal.
Sources and next steps
References & further reading
- [1]Gabor, A., & Granger, C. W. J. (1966). Price as an indicator of quality: Report on an enquiry. Economica, 33(129), 43–70.
Try it on your own data — free, no signup
Upload a CSV, Excel, SPSS, Stata, SAS, R, Parquet or JSON file. Everything runs in your browser; your file never leaves your device.
Open the workspace →