Plans are allowances

A simple API's plans might look like this (example numbers):

PlanAllowance
Free10,000 lookups / month
Pro500,000 / month
ScaleUnlimited

An AI product would write the same table in credits:

PlanAllowance
Free1,000 credits / month
Pro10,000 credits / month
EnterpriseCustom

Different unit. Same structure: who → how much → what happens at the limit.

What you build vs. what Vibe does

A plan can change what runs

A budget doesn't have to be a single cliff. Your app asks for the same model on every call. The policy decides what actually runs:

Free  → cheaper model, capped output
Pro   → claude-sonnet-5
At 0  → blocked, upgrade prompt

The application code stays the same. Only the policy changes.

Where the money happens

Blocking is the moment a customer feels the limit. That's the right moment to show them an upgrade. Free hits its cap, and Pro is one click away.

Policy → usage → budget → runtime → billing

That's the whole model in five words:

  1. Policy: what is this customer allowed to do?
  2. Usage: how much have they used?
  3. Budget: how much can they use?
  4. Runtime: should this request run?
  5. Billing: do they need to buy more?

A production API can already walk through the first four.

← PreviousAI usage isn't one request = one unit Next →Sell more credits with Stripe

FAQ

Is a budget the same as a plan?

A plan usually comes with a budget. You can also give one customer a custom budget.

Can each plan have different rules?

Yes. Policies can differ by plan.

Where does Stripe come in?

At the upgrade and top-up step, and for usage reports.