For most of last year Amy was sold by the seat. Three pricing tiers, a calculator, an annual plan with a discount. It worked. It was also wrong.
The mismatch
A seat license assumes the unit of value is a person. For an agent platform, the unit of value is work done. Those two diverge the moment one engineer wires Amy into ten background jobs.
We watched two patterns emerge:
- The single power user. One developer drives 80% of Amy's runs. The team buys 5 seats they don't need.
- The shy team. Everyone has a seat, no one runs anything heavy because each click feels like it counts.
Both patterns are caused by the same thing: a price that has no relationship to what Amy actually did.
What we considered
- Per-call pricing — clean, but discourages the exact behaviour we want (running Amy on more things).
- Tiered usage caps — predictable bill, but you're either under-using your tier or constantly upgrading.
- Hybrid (seat + usage) — two prices to explain. Two pricing pages to maintain. Two ways to get sticker shock.
Where we landed
A single currency: credits. You buy them in packs (or on a monthly auto-top-up), and every action — a run, a model call, a scheduled job — debits a stated number of credits.
The whole pricing page is now one number, one chart, and one calculator. The whole billing system is one ledger (we wrote about that here).
The unlocks we didn't expect
- Internal tooling teams stopped negotiating seat counts and started asking how to budget for spikes.
- Two of our largest customers expanded usage 3–4x in the month after switching, because the friction to "try one more thing" went to zero.
- Support tickets about plan limits dropped to zero, because there are no plan limits — only credit balances.
Pricing is product. Moving to credits didn't just change the bill. It changed who used Amy and how much.