How Usage-Based Billing Works
This page explains how Monk’s core concepts — meters, pricing, plans, contracts, and credits — connect to power usage-based billing.Self-serve or enterprise? How you use these concepts depends on your
go-to-market motion. See Self-Serve vs Enterprise
Workflows to understand what’s API-driven vs ops-driven
for your setup.
The Big Picture
| Layer | What It Does | Created Once or Per-Customer? |
|---|---|---|
| Meters | Define what you measure (API calls, tokens, storage) | Once — reused across all customers |
| Rate Cards | Global rate tables for dimensional pricing (attached to meters) | Once — can be overridden per contract |
| Pricing | Attach rates to meters (per-unit, tiered, flat) | Once — reused across plans |
| Plans | Bundle pricing into a subscription template | Once — reused across customers |
| Contracts | Subscribe a customer to a plan (can override rate cards) | Per-customer |
| Prepaid Credit Wallet | Prepaid balance that offsets usage (different rates per customer) | Per-customer (optional) |
| Events | Usage data sent as customers consume resources | Per-customer, continuous |
| Invoices | Generated automatically from usage + credits | Per-customer, per billing cycle |
How the Pieces Connect
1. Meters: Define What You Measure
Meters are the foundation. They define what you’re billing for, not how much.2. Rate Cards: Global Dimensional Pricing (Optional)
Rate Cards define variable rates based on dimensions (like model, region, or tier). They’re attached to Meters — not Pricing or Plans — so you can manage rates globally.Why are Rate Cards on Meters? This gives you a single place to update
rates globally. When OpenAI changes pricing, update the rate card once — every
plan and contract using that meter gets the new rates automatically.
3. Pricing: Attach Rates to Meters
Pricing defines how much to charge for meter usage. For simple cases, rates are defined directly on Pricing. For variable rates, Pricing references the Meter’s rate card.4. Plans: Bundle Pricing Together
Plans bundle pricing configurations into a subscription template. This is what you “sell” to customers. See Create Your First Plan.Do I need a new Plan for every enterprise customer? No! Use Dimensional
Pricing for customer-specific rates, or
override pricing at contract creation.
5. Contracts: Subscribe Customers
A Contract assigns a Plan to a Customer. This is where billing begins — and where customization happens. See Create Your First Contract and Enterprise Billing Patterns.Same Plan, Different Rates: Multiple customers can be on the same Plan but
pay different rates. Rate card overrides are set at the Contract level, so
each customer can have custom pricing without creating new plans.
- One Plan to maintain (Pro Plan)
- Global rate cards on Meters (default pricing)
- Per-customer overrides on Contracts (enterprise deals, volume discounts)
6. Prepaid Credit Wallet (Optional)
The Prepaid Credit Wallet is a prepaid balance attached to a contract. Customers pay upfront, and credits are deducted as usage accrues. See Grant Your First Credit and Prepaid Credits Guide. Why is the wallet separate from Plans?- Credits can be added/removed independently of the plan
- Credits can expire on their own schedule
- Different customers on the same plan can have different credit amounts
- Promotional credits (free) are tracked separately from paid credits
| Customer | Plan | Credit Rate | $10,000 Purchase Gets |
|---|---|---|---|
| Acme Corp | Pro Plan | $0.32/credit | 31,250 credits |
| Beta Inc | Pro Plan | $0.35/credit | 28,571 credits |
| Startup LLC | Pro Plan | $0.40/credit | 25,000 credits |
creditRateCents), so enterprise customers can get better rates on their prepaid commitments — independent of the plan they’re on.
Credits are a payment method, not a pricing model. A customer on the “Pro
Plan” might have 10,000 credits, or $100,000 credits at various
rates — that’s all independent of what the plan charges per unit.
7. Events: Send Usage Data
As customers use your product, send events to Monk. Events are matched to meters and aggregated for billing. See Send Your First Event. Simple event (no dimensions):model=gpt-4 rate from the rate card (e.g., $0.03/1K tokens), or the contract’s override rate if one exists.
model=gpt-3.5-turbo rate (e.g., $0.002/1K tokens).
8. Invoices: Automatic Billing
At the end of each billing cycle, Monk:- Aggregates events by meter
- Applies pricing to calculate charges
- Deducts available credits
- Generates the invoice
| Setting | On Depletion (mid-cycle) | At Billing Cycle End |
|---|---|---|
| Auto Invoice | Webhook alert sent | Invoice sent automatically for overage amount |
| Alert Only | Webhook alert sent | Draft invoice created, held for manual review |
Both modes deduct all available credits first. The setting only controls
whether the overage invoice is sent automatically or held for review.
Common Patterns
Standard SaaS: Plan + Usage
Most customers use a plan with usage-based pricing, no credits needed.Enterprise with Prepaid Commitment
Large customers prepay for usage at a discounted rate. See Enterprise Billing Patterns.Promotional Credits
New customers get free credits to try your product. See Promotional Credits Guide.Per-Customer Pricing (Same Plan, Different Rates)
Three customers on the same Pro Plan, each with different rates:| Customer | Plan | Rate Override | Effective Rate |
|---|---|---|---|
| Startup Inc | Pro Plan | None | $0.03/1K tokens (default) |
| Acme Corp | Pro Plan | gpt-4: $0.02 | $0.02/1K tokens |
| Mega Enterprise | Pro Plan | gpt-4: $0.015 | $0.015/1K tokens |
FAQ
Do I need a new Plan for each enterprise customer?
Do I need a new Plan for each enterprise customer?
No. Use rate card overrides at the Contract level. Every customer can be
on the same Plan but pay different rates:
- Global rate card (on Meter): Default rates for all customers
- Contract override: Custom rates for specific customers
Do I need a new Product/Meter for each billable metric?
Do I need a new Product/Meter for each billable metric?
You need one Meter per metric you want to track separately (e.g.,
input_tokens and output_tokens are separate meters). But you don’t need
separate Products — a single Plan can include pricing for multiple meters.Why are Credits separate from Plans?
Why are Credits separate from Plans?
Credits are a payment method, not a pricing model. They’re attached to the
Contract (customer-level) because: - Different customers on the same plan may
have different credit amounts - Credits can be added/removed anytime without
changing the plan - Credits can expire independently of the contract -
Promotional credits need separate tracking from paid credits
What's the difference between Credits and Credit Memos?
What's the difference between Credits and Credit Memos?
- Prepaid Credits: Prepaid balance for future usage. Deducted in real-time as usage accrues. Only applies to usage-based charges. - Credit Memos: Post-billing adjustments to invoices. Can apply to any line item. Used for refunds, corrections, goodwill.
Why are Rate Cards on Meters, not Plans?
Why are Rate Cards on Meters, not Plans?
Rate cards are on Meters for two reasons:
- Global updates: When a vendor changes pricing (e.g., OpenAI raises rates), update the rate card once — all plans and contracts inherit the change automatically.
- Flexibility: The same meter can be used in multiple plans. Rate cards stay consistent across plans while contracts can override for custom deals.
When should I use Rate Cards vs. new Plans?
When should I use Rate Cards vs. new Plans?
- Rate Cards: When rates vary by dimension (model, region, tier) but the plan structure stays the same
- Contract overrides: When one customer needs custom rates
- New Plans: When the plan structure itself differs (different features, billing cycles, or included meters)
Next Steps
Self-Serve vs Enterprise
Choose your go-to-market setup
Create your first Meter
Start tracking usage
Set up a Plan
Bundle pricing for customers
Grant Credits
Add prepaid credits to a contract
Dimensional Pricing
Per-customer rates without new plans
Enterprise Billing
Contract-level customizations