The Unprice manifesto
Pricing is a runtime decision.
SaaS pricing was built for a static era: hardcoded tiers, manual feature gates, end-of-cycle invoices. For usage-based products that model breaks the moment usage gets expensive — a single customer, job, workflow, or agent can cross its budget before anyone reaches the invoice.
So the pricing decision has to move to where the cost is created: the request path. Check entitlement, check budget, reserve credits, deny over-budget work before it runs — then explain every charge from the same evidence.
cause: the money decision runs after the cost exists
every answer yes · work runs
200
any answer no · denied first
429 LIMIT_EXCEEDED
Customer spend authorization runs in the request path.
Before the paid action runs, your app asks one money path which plan version applies, whether the customer is entitled, whether the budget or wallet has room, and whether the decision can explain the invoice line later.
One decision, two futures. A deny is a 429 before any cost exists — the wallet untouched, the ledger empty, the invoice clean. An allow keeps the evidence that explains the invoice line, from the same decision that let the work run.
Operate pricing like infrastructure.
PriceOps is the practice of operating pricing as versioned commercial infrastructure — the way DevOps operates deploys and FinOps operates cloud spend. Plans, versions, entitlements, meters, budgets, credits, and invoice evidence stay separate but connected, so packaging changes ship without rewriting the product.
- 01
Spend safety
Put a real-time budget around the expensive action. Over-budget customer or workload spend is rejected in the request path, before the work runs.
stop cost before it exists
- 02
Runtime decisions
Pricing is not a page or an end-of-cycle job. Entitlement, budget, and credit checks happen while the request is in flight.
decide in the request path
- 03
Explainable money flow
Usage, entitlements, budgets, credits, and invoices share one evidence trail. Every charge traces back to rated events and ledger captures.
every charge carries evidence
- 04
Open and inspectable
Money logic is too critical for a black box. The runtime is open source — read the code that guards your money, or have your agent read it.
trust follows inspection
The billing layer you rent can be acquired. The money path you own cannot.
Between 2025 and 2026 the independent billing middle market stopped existing: every metering-first vendor was acquired by a payment processor or left the market. Revenue logic trapped in a closed runtime is one acquisition away from belonging to someone else's roadmap.
Unprice keeps the customer spend decision, the double-entry ledger, and the invoice explanation in one open money path you can read, fork, and run in your own Cloudflare account. Read the code that guards your money — or have your agent read it — before you trust it.
git clone github.com/jhonsfran1165/unprice
The team that owns the request path should own pricing.
- You shouldn't need a deployment to change a price.
- You shouldn't discover an over-budget customer at invoice time.
- You shouldn't reconstruct a disputed charge by hand.
For usage-based SaaS, pricing is a runtime decision. We're here to make that the default — in the open, on a money path you can read.