Here is what the user experiences in the chat, from start to finish.
Ask the question
The user types something like:
"What price maximises revenue for this product?"
"Run Gabor-Granger on our pricing data."
"How elastic is demand at the prices we tested?"
The platform recognises the intent and selects Gabor-Granger automatically.
Map the price questions
The user picks the questions that ask about buying at each tested price — one per price, for example:
- "How likely would you be to buy this product at $15?"
- "… at $20?", "… at $25?" and so on
Answers can be yes/no or a purchase-intent scale.
Confirm the prices and the purchase rule
The price each question asked about is usually only in its text, so the platform reads it from there and shows it next to the words it came from. The user checks each one, and types any it could not read.
On the same card the user chooses which answers count as a purchase — Top-2-Box (Probably or Definitely) by default, Top-3-Box, or a custom pick. Codes in the data with no answer label (often a
0for "not shown") are listed and treated as not asked.If the survey walked each respondent up or down the ladder, so that each person saw only some prices, their answers are extended along it: someone who would buy at a higher price would buy at a lower one, and someone who refused a lower price refuses a higher one.
Apply filters (optional)
The chat asks whether the user wants to filter the data:
"Only premium subscribers"
"Only the half of the sample that took the Gabor-Granger questions"
The platform validates that enough responses remain after filtering.
Choose a subgroup (optional)
The chat asks whether the user wants to split the analysis:
"Compare loyal customers vs. new prospects"
"Split by distribution channel"
If set, each group gets its own demand curve and revenue-optimal price.
Confirm and run
The chat shows a final confirmation screen:
- The mapped price questions and their prices
- Any active filters
- The subgroup variable (if set)
- The expected sample size
The user confirms, and the analysis runs.
Review results
Within seconds, the chat returns:
- A demand curve chart — price vs. acceptance rate
- A per-price-point table — price, base (n), demand %, revenue per respondent and elasticity at each tested price
- The revenue-optimal price — highlighted in the table and chart, with the price elasticity there
- Summary statistics — respondents analysed, the purchase rule, and anyone left out and why
- A written summary calling out the optimal price and key observations
If subgroups were requested, each group gets its own set of results plus a comparison highlighting where pricing power differs.
Follow up
The user can refine in the same conversation:
"What if only Definitely counts as a purchase?"
"Split that by age group instead"
"Now run Van Westendorp on the same data to see the acceptable range"