Case study · B2B SaaS

Unbundling usage-based pricing from seat-based subscriptions

A Series B B2B SaaS needed to ship usage-based pricing without a six-week migration window.

IndustryB2B SaaS
Engagement tierGrowth
Delivered2025
01 / Problem

What was stuck.

A Series B B2B SaaS had grown into a pricing model that conflated seats and usage. The product team had a written spec for unbundling the two, but every estimate for the work landed at six weeks of full-engagement engineering time, and the migration window kept slipping quarter over quarter. The founder wanted the change shipped behind a feature flag without freezing feature work for the rest of the roadmap.

02 / Approach

How we worked it.

A monthly Growth retainer paired a dedicated swarm with one pair-programming session per month. The work was split into scoped pricing refactor PRs that were independently mergeable. Acceptance criteria were reworded into PR titles, so the diff itself read as the spec. Every PR carried reviewer-agent notes; merges were gated by the existing branch policy, not a human-in-the-loop approval chain. The pricing surface shipped behind a feature flag, ramped to a percentage of traffic, and was monitored against the same dashboards the team already ran.

03 / Stack

What ran underneath.

  • TypeScript
  • Next.js
  • Prisma
  • Postgres
  • Stripe Billing
04 / Deliverables

What landed in the repo.

  • Scoped pricing refactor PRs, each independently mergeable
  • Acceptance criteria rewritten into PR titles for review-by-diff
  • Release digest cadence, weekly, written
  • Monthly founder session — pair-programming on the next slice
  • Single-click PR merge against the existing branch policy
05 / Outcome

What shipped.

The pricing model shipped to 12% of traffic behind a flag by the end of the engagement. Branch policy was updated to keep the merge cadence intact, and a retrospective doc was attached to the closing ticket for the next engagement to read.

Ask a question about this engagement

Illustrative engagement · names and figures anonymized. Used to demonstrate engagement shape, not client outcomes.

Bring us the brief

Your engagement could read like this one.

Send the rough idea through the intake form. We come back with a written scope within 72 hours, and we don’t send invoices until you’ve signed off on it.

Open the intake form

Or email wingman-stack@polsia.app with a one-paragraph brief.