Source: https://www.revvly.ai/docs/guides/pricing-models

Guide

# Eight ways to *price* a meter.

Every Variable Component picks one pricing model. The model determines how Revvly turns usage into money on an invoice. Pick the simplest one that fits — you can publish a new version later if it stops fitting.

## The shape of a component

A [Variable Component](https://www.revvly.ai/docs/concepts/variableComponent) attaches a pricing model to a [Meter](https://www.revvly.ai/docs/concepts/meter). Every component has the same envelope — a name, currency, proration, billing timing, limit period, status — and a model-specific block of numeric fields. The numeric block below is what differs between the eight models. You don’t need to create a Meter before creating a component: name the component and leave the meter unset, and Revvly provisions one automatically; binding to an existing Meter is still there as an advanced option when you want to share usage-tracking identity across components.

## Flat rate

A single per-unit price. The simplest model.

**When to reach for it.** Use when every unit costs the same and you want a price tag a customer can read in a sentence — “$5 per seat per month”.

Flat rate components multiply the metered quantity by a fixed unit price. They support an “included quantity” — say, the first 10 seats free, then $5 each — but every unit beyond the included quota is billed at the same flat rate. Combine with a limit period to reset the included quantity on each billing cycle.

- **Unit price**: Money per unit, in the component currency

- **Included quantity**: Optional — units bundled for free per period

- **Proration model**: Full month / Daily / None

Seats — $5 each, 10 included

15 seats

5 × $5 = $25

8 seats

$0 (within included)

12 seats, mid-cycle

2 × $5 × proration

## Volume tiered

Every unit takes the price of the tier the total falls in.

**When to reach for it.** Use to reward growth with a single rate the customer can quote. A customer at 1,001 units pays the higher-volume rate on all 1,001.

Volume tiered pricing applies one rate to the entire quantity, based on which tier the total falls into. It is the most generous model — crossing a tier boundary discounts the units below the boundary too. A free allowance and any included units are subtracted from the metered quantity first, and the resulting net billable quantity is what both gets billed and selects the tier — so a free allowance can pull a customer into a lower, cheaper bracket. That is intended: unpaid units never push a customer up a tier.

- **Tier prices**: Array of breakpoints and per-unit prices

- **Currency**: Tier ladder is per-currency

- **Proration model**: Full month / Daily / None

API calls — volume tiered

Tier 1: 0–100k

$0.001 / call

Tier 2: 100k–1M

$0.0008 / call

Customer at 500k

500,000 × $0.0008 = $400 (whole quantity at tier-2 rate)

Free allowance selects the tier

Tiers

≤10 → $10, ≤50 → $8, ∞ → $6

Free allowance

5

Customer uses 12

billable = 12 − 5 = 7

7 falls in tier 1

7 × $10 = $70 (not the ≤50 $8 bracket)

## Graduated tiered

Each tier’s rate applies only to the slice of units inside that tier.

**When to reach for it.** Use for transparent “first N at X, next M at Y” pricing where you don’t want to retroactively re-rate units when a customer crosses a boundary.

Graduated tiered is the slice-by-slice analogue of volume tiered. A customer who crosses from tier 1 into tier 2 still pays the tier-1 rate on tier-1 units; only the overflow is charged at the tier-2 rate. Most SaaS metered pricing uses this model.

- **Tier prices**: Same shape as volume tiered

- **Currency**: Per-currency ladder

- **Proration model**: Full month / Daily / None

API calls — graduated

Tier 1: 0–100k

$0.001 / call

Tier 2: 100k+

$0.0008 / call

Customer at 250k

100k × $0.001 + 150k × $0.0008 = $220

## Stairstep

A single flat fee per band of usage.

**When to reach for it.** Use for packaged pricing where customers pay a flat sticker price for a usage range rather than a per-unit cost.

Stairstep pricing charges a fixed fee for being in a usage band — like “up to 10k events: $99, up to 100k: $499, up to 1M: $1,999”. The fee is the same for every customer in the band, regardless of where in the band they sit. As with volume tiered, a free allowance and any included units are subtracted from the metered quantity before the band is selected, so the band is chosen on the net billable quantity — a free allowance can drop a customer into a lower, cheaper band.

- **Step fees**: Array of band upper bounds and flat fees

- **Currency**: Per-currency ladder

- **Proration model**: Usually Full month

Storage — stairstep

Up to 50 GB

$29 / month flat

Up to 500 GB

$99 / month flat

Customer at 12 GB

$29 (no per-GB charge)

Free allowance selects the band

Bands

≤10 → $100, ≤50 → $200, ∞ → $400

Free allowance

5

Customer uses 12

billable = 12 − 5 = 7

7 falls in band 1

$100 flat (not the 11–50 $200 band)

## True overage

A baked-in allowance plus a per-unit charge above it.

**When to reach for it.** Use when the plan includes a usage allowance and you want a simple overage rate for anything above it — the most familiar shape for metered SaaS.

True overage components bake an allowance into the plan price and charge a flat rate for every unit above it. Different from flat rate because the allowance is conceptually part of the plan, not a discount; the overage line item is what shows up on the invoice. Two settings look similar but differ in origin: included units is a structural inclusion — the entitlement the customer gets from the plan or bundle the component is attached to, consumed by the overage math — while the cross-model free allowance is a standalone “first N free” grant configured directly on the component, independent of any plan and of promotions. In overage models they stack: the model consumes its included units, and the free allowance is an extra layer on top. They are not redundant.

- **Included units**: Allowance bundled into the plan

- **Overage price**: Per-unit price above the allowance

- **Limit period**: When the allowance resets

Emails — true overage

Included

50,000 / month

Overage

$1 / 1,000

Customer sent 73,500

24 × $1 = $24 overage line

## Committed overage

A committed quantity paid up front, overage at a separate rate.

**When to reach for it.** Use for annual commits — a customer agrees to N units for the year at one rate, and burns through them; anything above is charged at the committed-overage rate.

Committed overage splits price discovery into two numbers: a committed quantity (priced via tiers or flat) paid in advance, and an overage rate for anything beyond it. This is the typical shape for enterprise commitments and AWS-style reservations. Unused committed units are handled by the unused-unit behavior: Forfeit (the default) discards them at period end, while Rollover carries the unused base commitment forward into the next period as extra headroom — the next period’s overage threshold becomes the commitment plus the rolled-over units, while the customer still always pays the base commitment as the minimum. Rollover is single-period: carried units that go unused next period expire rather than compounding. (A monetary Credit for unused units is planned but not yet available.)

- **Committed quantity**: Paid up front

- **Overage price (committed)**: Per-unit rate above the commit

- **Unused units**: Forfeit (default) / Rollover

- **Limit period**: Usually annual or per renewal

API calls — committed overage

Commit

10M calls @ $0.0005 (= $5,000)

Overage

$0.0008 / call above 10M

Customer at 12M

$5,000 + 2M × $0.0008 = $6,600

Rollover — unused commitment carries one period

Commit

50 @ $10, overage $12

Period 1: use 30

50 × $10 = $500 (minimum); 20 unused → roll over

Period 2 threshold

50 + 20 = 70

Period 2: use 65

$500 minimum, no overage; new rollover = 0 (20 expire)

## Commission

A percentage of customer revenue (or volume) processed.

**When to reach for it.** Use for marketplaces, payment platforms, or any business where you charge a take rate on GMV / transactions / processed value.

Commission components track GMV, transaction count, refunded amounts, and net GMV per period. The fee may be a percentage of GMV, a fixed fee per transaction, or both. Refunds reduce billable GMV by default; included thresholds (free transactions, free GMV) reduce it further.

- **Percentage rate**: Take rate on net GMV

- **Fixed per-transaction fee**: Flat add-on per transaction

- **Included GMV / transactions**: Free-tier thresholds

- **Refund handling**: How refunds affect billable GMV

Marketplace — 2.9% + 30¢

100 transactions @ $50 avg

$5,000 GMV

$10 refunded

Net $4,990

Commission

$4,990 × 2.9% + 100 × $0.30 = $174.71

## Promotional

A time-bounded discount overlay on another published component.

**When to reach for it.** Use to ship a launch promo, seasonal discount, or migration incentive without rewriting the underlying component.

A Promotional component references another published component and overlays a discount — percentage off, fixed amount off, or both — for a defined window. It does not replace the base component; the base remains the source of truth for the underlying pricing model. When the promo expires, billing reverts automatically.

- **Base component**: The component being discounted

- **Discount type**: Percentage / Fixed amount

- **Window**: Start / end timestamps

- **Status**: Promotional components archive cleanly after expiry

Launch promo — 30% off seats

Base

Seats flat rate $5

Discount

30% off, May 1 – Jun 30

Effective rate during promo

$3.50

## Next up

- [How prices are resolved across scopes ›](https://www.revvly.ai/docs/guides/scoped-pricing)
- [Per-customer overrides with Custom Pricing Agreements ›](https://www.revvly.ai/docs/guides/custom-agreements)
- [Versioning, upgrades, and grandfathering ›](https://www.revvly.ai/docs/guides/versioning)

