
Marcos Rivera left a comment on one of my posts this week that contains the entire pricing problem in two sentences:
You can model a new pricing structure in an afternoon. Getting Sales to trust it enough to stop making exceptions can take months.
He runs Pricing I/O, so he has watched this from the outside more times than I have from the inside. What strikes me about the line is not that it is true. It is that the two halves get measured with wildly different seriousness.
The short version
Pricing migrations are tracked with percent migrated, which counts contracts, not behavior. When we sunset a per-seat tier at a $40M ARR company we modeled 50 disputes a week and got 600, twelve times the projection, plus 200 contested cases a week on the unit definition and three reps quietly negotiating unauthorized extensions. Every one of those accounts counted as migrated. The better metric is exception rate: contested cases, off-plan discounts, manual credits, and side agreements per week, divided by active accounts. Percent migrated tells you what the contract says. Exception rate tells you whether anyone believes it. Track the four exception types separately, because each one points at a different broken thing, and expect the rate to rise early, which is the model meeting reality while changes are still cheap.
Modeling is a spreadsheet problem. Adoption is a consent problem. Consent runs at the speed of people, which is why one takes an afternoon and the other takes months.
The spreadsheet half gets a number. The consent half gets adjectives.
What percent migrated hid
I have written up the sunset day itself before, so I will not redo the whole thing. The short version is that we killed a per-seat tier at a $40M ARR company twenty-one months into a move to outcome pricing, and five things broke that were not in the plan.
Read them again as a list of measurement failures rather than a list of surprises:
Twelve accounts had migrated on paper and were barely using the product. Fourteen of thirty-five mid-market accounts with edge use cases churned. The unit definition held at small scale and broke at large, producing two hundred contested cases a week. Dispute volume came in at twelve times projection, fifty modeled against six hundred actual. And three reps quietly negotiated unauthorized extensions.
Now the part that matters. Every one of those accounts counted toward percent migrated. The twelve zombie accounts had signed. The thirty-five edge accounts had signed. The accounts with the unauthorized extensions had signed twice, once officially and once in a side conversation.
Percent migrated was not wrong. It was accurate and useless, which is a worse failure mode than being wrong, because nobody argues with it.
Exception rate
The replacement is unglamorous. Count the exceptions.
Contested cases, off-plan discounts, manual credits, and side agreements. Per week. Divided by active accounts. That is the number.
It works because an exception is the one artifact that only gets created when someone does not believe the model. Nobody files a carve-out for a price they think will hold. The exception is the belief gap, written down, timestamped, with a name attached.
And unlike trust, which people discuss as though it were weather, it is countable from day one.
Split it four ways, because a blended number tells you something is wrong without telling you what:
- Contested cases mean the unit definition is wrong. Two hundred a week told us our unit held at small scale and fell apart at large, which is a definition problem, not a price problem.
- Off-plan discounts mean the price is wrong, or the value story for that segment is.
- Manual credits mean the measurement is wrong. Someone is being billed for an outcome the system counted and the customer disputes, which is a metering problem hiding inside a pricing problem.
- Side agreements mean Sales does not believe the model will survive. Those three reps were not being difficult. They were hedging against a policy they expected to get reversed, which is a rational bet if you have watched two previous pricing changes get walked back.
Four different fixes. One number would have merged them into a vague sense that the migration was going badly.
Expect it to go up first
Here is the part that makes exception rate a real metric rather than a scoreboard: early, you want it to rise.
A rising exception rate in the first weeks means the model is making contact with reality while contact is still cheap. Every contested case is a customer telling you, for free, where your unit definition does not match how they actually use the thing. Suppress that and you have not solved the problem, you have moved it to renewal, where it arrives as churn instead of as a conversation.
The signal to worry about is different. It is a rate that stays flat and high after you have fixed the definition twice.
That means the exceptions stopped being about the model. They are about the compensation plan.
A rep paid on bookings against a familiar unit has a concrete reason to preserve the familiar unit and no reason at all to defend a new one. That is not a character flaw, it is an incentive nobody changed. If the comp plan still pays on the old unit, granting exceptions is the correct move for the person granting them, and no amount of enablement will fix an incentive with a slide.
Which is the same structural point I keep landing on from other directions. Most things that look like discipline problems are missing mechanisms. You can enforce what is observable at a chokepoint. An exception is observable at a chokepoint, because it has to be approved by someone. That is what makes it tractable.
Why this matters more now than it did
Per-seat pricing is priced against a labor cost that agents remove, which is the argument underneath outcome pricing and the reason Airtable and Miro repriced. So a large number of companies are about to run exactly the migration I am describing, many of them for the first time.
They will all track percent migrated. It is the number that moves, it goes up and to the right, and it makes the board deck look like progress.
The exception rate is the one that tells you whether month twenty-two is going to be a celebration or a cleanup. Ours ended at ninety-one percent outcome revenue with blended gross margin recovered to seventy-one percent, and the cleanup work was still real, and none of it appeared in the original migration plan.
Pick one thing this week. Pull your last pricing change, whatever it was, and count the exceptions granted in the ninety days after it. Contested cases, discounts off plan, manual credits, side deals.
If nobody was counting, that is the finding.
Sources: Marcos Rivera, CEO of Pricing I/O, in a LinkedIn comment on the Cagan weights post, 2026-09-17.
This one belongs to the running argument on SaaS to AI Business Models: the pricing model has to move to the outcome, and the part nobody budgets for is the months between signing the new contract and anyone behaving as though it exists.
Related answer: What should you measure during a pricing migration?
Also on Medium
Full archive →Frequently asked
What is exception rate in a pricing migration?+
The count of contested cases, off-plan discounts, manual credits, and side agreements granted in a period, divided by active accounts. It measures whether the commercial team believes the new model enough to sell it without carve-outs. Percent migrated measures what the contracts say; exception rate measures whether anyone acts as if the contracts are real.
Why is percent migrated a misleading pricing metric?+
Because an account can migrate on paper and change nothing in practice. In one per-seat sunset at a $40M ARR company, twelve accounts showed as migrated while barely using the product, and three reps had quietly negotiated unauthorized extensions. Every one of those accounts counted toward percent migrated. The number was accurate and told you nothing.
How many pricing disputes should you expect when sunsetting a tier?+
More than you model. We projected 50 a week and got 600, twelve times the projection, plus 200 contested cases a week on the unit definition itself. The projection was not careless, it was built on the accounts we understood. The gap was the accounts we did not.
What are the four kinds of exception worth tracking separately?+
Contested cases, which mean the unit definition is wrong. Off-plan discounts, which mean the price is wrong. Manual credits, which mean the measurement is wrong. Side agreements, which mean Sales does not believe the model will hold. They have different fixes, so a single blended exception number tells you something is wrong without telling you what.
Is a rising exception rate always bad?+
No. Early in a migration a rising rate means the model is meeting reality, which is what you want it to do while it is still cheap to change. The signal to worry about is a rate that stays flat and high after the definition has been fixed twice, because that means the exceptions are no longer about the model, they are about the compensation plan.
Why does sales compensation drive pricing exceptions?+
Because a rep paid on bookings against a familiar unit has a concrete reason to preserve the familiar unit and no reason to defend a new one. That is not a character problem, it is an incentive that nobody changed. If the comp plan still pays on the old unit, exceptions are the rational move and they will continue until the plan moves.

Comments (0)
Sign in with LinkedIn to leave a comment.
Sign in with LinkedIn