The Margin Recovery Curve Model
costperoutcome = inferencecost + infrastructurecost + escalationcost + qacost
The template
The Margin Recovery Curve Model
A spreadsheet model for the gross margin trough during a pricing migration.
By Falk Gottlob — falkster.com
The curve
| Months | Gross margin range | Phase |
|---|---|---|
| 1-3 | 78-82% | Baseline |
| 4-6 | 73-77% | Trough begins |
| 7-9 | 65-70% | Trough deepens |
| 10-12 | 58-65% | Bottom |
| 13-15 | 62-68% | Recovery starts |
| 16-18 | 67-72% | Trough past |
| 19-24 | 70-75% | New normal |
The component model
Gross margin per outcome is computed as:
GM_per_outcome = (revenue_per_outcome - cost_per_outcome) / revenue_per_outcome
cost_per_outcome = inference_cost + infrastructure_cost + escalation_cost + qa_cost
Each component evolves over the 24 months differently. Model them separately.
Inference cost
Driven by token cost (industry-wide, dropping ~50% per year) and tokens per outcome (your prompts, your routing).
| Months | Token cost trajectory | Tokens per outcome trajectory |
|---|---|---|
| 1-6 | Stable at ~$10/M tokens (mix) | Static |
| 7-12 | -25% to ~$7.50/M | -10% as you optimize prompts |
| 13-18 | -40% to ~$6/M | -25% as routing improves |
| 19-24 | -50% to ~$5/M | -35% as caching matures |
Result: inference cost per outcome drops roughly 50-65% over 24 months.
Infrastructure cost
Compute, storage, networking. Scales with volume but amortizes.
| Months | Per outcome trajectory |
|---|---|
| 1-6 | High (low volume, no amortization) |
| 7-12 | Dropping (volume amortizes fixed costs) |
| 13-24 | Stabilizing at ~10-15% of revenue |
Escalation cost
When the agent escalates to a human. Drops as agent quality improves.
| Months | Escalation rate | Cost per escalation |
|---|---|---|
| 1-6 | 8-12% | $25-40 |
| 7-12 | 5-8% | $25-40 |
| 13-18 | 3-5% | $20-35 |
| 19-24 | 2-4% | $20-35 |
QA cost
Eval runs, prompt regression testing, quality sampling. Largely fixed per outcome.
| Months | Trajectory |
|---|---|
| 1-24 | ~5% of revenue, gradually dropping to ~3% as automation improves |
The board narrative
Each quarterly update walks through:
- Current GM per outcome: the actual number this quarter.
- Trajectory: which phase of the recovery curve we're in.
- Component breakdown: which costs improved this quarter, which got worse.
- Forecast: next two quarters' expected GM per outcome.
- Sensitivity: what changes if inference costs drop faster (better) or slower (worse) than projected.
The point is to make the trough boring. A boring trough is a managed trough.
The Jevons decision
As inference costs drop, you have to decide: pass savings to customers, hold prices to capture margin, or split the difference. The model includes three scenarios.
Scenario A: Hold prices
Revenue per outcome stays flat. GM rises as costs fall. Margin recovery is faster.
Risk: a competitor undercuts your pricing because their costs have also fallen. Customer perception of value drops over time.
Scenario B: Pass full savings
Revenue per outcome drops in proportion to cost. GM stays flat at trough level. Volume grows because customers can afford more.
Risk: revenue grows slower than expected if volume doesn't compensate. Sales motion has to retrain to the new pricing.
Scenario C: Pass 50% of savings
Revenue per outcome drops at half the rate of cost. GM rises moderately. Volume grows moderately.
Most common choice. Balances margin and competitive exposure.
What this model doesn't do
- It doesn't predict your specific company's curve. Your inference cost mix, infrastructure, escalation rate, and customer volume are unique. Build the model from your own component data.
- It doesn't replace the CFO's full P&L model. This is the gross margin slice; the rest of the P&L (S&M, R&D, G&A) is separate.
- It doesn't help if the unit economics model is wrong. If your per-outcome revenue is mispriced, no margin recovery curve will save you.
This model pairs with The Pricing Migration Sequence and the handbook chapter Pricing Migration: The 18-Month Quarterly Playbook. The Margin Watch agent that operationalizes this model is at /blog/agent-margin-watch.