Back to notes

May 7, 2026 · 6 min read

Notes From Migrating a Client to Usage-Based Pricing

Migrating a flat-fee SaaS client to usage-based pricing sounded like a billing project. It turned out to be a data infrastructure project wearing a pricing strategy's clothes.

Case StudyPricing

A B2B client decided to move from flat-tier pricing to a usage-based model tied to API call volume, expecting the heavy lifting to be the pricing strategy work — picking the right unit, the right price point per unit, the right included allowance. That work mattered, but it turned out to be the smaller half of the project. The bigger half was discovering their usage metering infrastructure wasn't accurate enough to bill on.

The metering gap nobody had checked

The product had an internal usage dashboard shown to customers, but it was built for a rough directional sense of activity, not for billing-grade accuracy. It undercounted usage during traffic spikes due to a sampling shortcut nobody remembered was there, and double-counted certain retried API calls. Fine for a dashboard. Not fine for an invoice a customer could dispute.

A usage number that's accurate enough to show a customer is not automatically accurate enough to bill them, and that gap is where usage-based pricing migrations actually live or die.

What the real migration required

  • A dedicated, idempotent metering pipeline separate from the customer-facing dashboard, built specifically for billing accuracy.
  • A reconciliation process comparing metered usage against raw request logs for a full billing cycle before cutover, to catch discrepancies before a customer did.
  • A grandfathering period where customers saw their usage-based bill alongside what they would have paid under the old flat tier, building trust before the new pricing became binding.
  • Clear, visible usage alerts before a customer crossed into a new pricing tier, to avoid surprise invoices becoming a support and trust problem.

The pricing strategy work took about three weeks. The metering infrastructure rebuild took closer to four months. Anyone scoping a usage-based pricing migration as a pricing project rather than a data infrastructure project is going to badly underestimate the timeline.