Usage & Metered Billing
A metered product doesn’t price at a single number. It prices as two parts:
- A committed base subscription — the flat, contractual line price (what the customer commits to pay).
- A projected overage — an estimate of what consumption above the included entitlement would cost, based on the product’s usage rate card.
The base subscription is the deal’s committed economics. The projected overage is a quoting aid — it sizes the deal for the rep and the customer, but in v1 it is display-only and non-contractual: usage adds no committed charge, and metering of actual consumption is the billing system’s job. What the deal commits to is the base subscription plus the terms — the entitlement and the overage rate card — carried forward for the downstream billing handoff.
The entitlement
Every metered line includes an entitlement — a bucket of units included at no extra charge (e.g. 1,000,000 API calls per month). Overage is only charged on consumption above the entitlement:
overage units = max(0, estimated usage − entitlement)
A line whose estimated usage sits at or below the entitlement has zero projected overage.
Graduated (Slab) vs volume (Range)
Once you have overage units, the rate card’s Overage Pricing Model decides how they’re priced. Pinion follows the Salesforce CPQ convention: Slab = graduated, Range = volume.
- Slab (graduated) — each tier prices only the units that fall in its band, tax-bracket style, and the slices are summed.
- Range (volume) — the single tier the total overage lands in prices every overage unit at that one rate.
Worked example
Take a rate card with two overage tiers:
| Overage band (units above entitlement) | Rate |
|---|---|
1 – 9,000,000 | $0.001 |
9,000,001+ | $0.0008 |
…and a line with 10,000,000 overage units (10M consumption above the included entitlement).
- Slab (graduated) walks the bands: the first 9M units at
$0.001plus the remaining 1M at$0.0008:9,000,000 × $0.001 + 1,000,000 × $0.0008 = $9,000 + $800 = $9,800. - Range (volume) finds the single tier the 10M total lands in (the
9,000,001+band) and prices all 10M units there:10,000,000 × $0.0008 = $8,000.
Same card, same overage, $9,800 vs $8,000 — because volume gives the whole overage the cheaper landed-tier rate, while graduated only discounts the units that reach it. The pricing model is what distinguishes them; a single-tier card prices identically either way.
Where the numbers come from — one kernel
The projected overage the rep sees in the configurator, the value that persists on the saved line (ProjectedOverage__c), the figure on the quote document, and the estimate an AI agent returns are all computed by the same pricing kernel in the selected model. There is no per-surface re-implementation, so every surface that shows a metered number agrees to the cent.
Tamper protection
Because the overage rate and entitlement drive money, Pinion recomputes them server-side on every save (Save & Sync), before anything persists — the same server-authoritative safety net that protects base price and discounts.
- A save that posts an overage rate, entitlement, or projected overage that doesn’t match the product’s usage dimension and rate card never persists that value. In the normal save the server overwrites it with the authoritative term before anything is written, so the save succeeds and the stored line holds the correct number rather than the posted one. Post
$0.10against a$0.05rate and the line comes back$0.05. A term that reaches the validator without having been resolved server-side is rejected outright and the rep sees a usage-term validation error. - This exists specifically so a bad actor — or an AI/MCP write tool posting a hallucinated cheap rate — can’t under-price a metered deal. The server recomputes the projection from the trusted rate card, and a divergent posted term is replaced by the trusted one.
- A legitimate override is honored: if the usage dimension marks the entitlement or overage rate editable on quote, an authorized rep’s override of that term passes. Non-editable terms are grounded back to the catalog definition.
Non-contractual by design (v1)
In v1, the projected overage is a quoting estimate, never a committed charge:
- The committed
UnitPrice/TotalPriceon the line stay the base subscription — usage adds nothing to the committed total. - The estimated usage a rep enters is a sizing input, never billed. Actual consumption is metered and rated by the billing system downstream, using the committed terms (entitlement + rate card) the deal carries.
Renewals and amendments
The entitlement and overage rate are contractual terms, so they travel with the deal rather than being looked up again each time a document is built. When an opportunity closes won they are stamped onto the resulting subscription alongside the price and quantity.
Renewal reads the dimension’s Renewal Behavior:
| Behavior | Entitlement | Overage rate |
|---|---|---|
| Carry Forward (default) | carried | carried |
| Uplift | carried | escalated by the Overage Rate Uplift |
| Reset | re-grounded from the current card | re-grounded from the current card |
On a multi-year (MDQ) deal an Uplift renewal picks up where the prior term left off: the ramp starts from the final segment’s rate, not from the catalog base, so a three-year deal renewing into another three years keeps climbing instead of resetting to year one. A renewal into a different currency is the one case where the rate is always re-resolved, because a rate is a per-currency amount and reusing the number would silently change what the customer pays.
Amendment carries both terms verbatim. An amendment renegotiates quantity, price, or dates inside a term; it never re-prices the meter, and that holds for a change that lands mid-segment and splits a segment in two — both halves keep the same terms. Renewal uplift does not apply to an amendment.
Re-opening a renewal or an amendment in the configurator shows the terms the customer signed, not whatever the rate card says today, and saving again keeps them. The usage panel labels them as carried, and the projected overage it quotes is priced off those carried terms. A dimension set to Reset is the exception, since re-grounding each term is the whole point of that setting.
One other thing overrides a carried term: a Product Rule that writes it. If an admin has a rule setting the entitlement or the overage rate for this deal shape, that policy applies on a renewal too, and the rule’s value replaces the carried one for the term it targets. A rule that sets only the rate leaves the entitlement carried. See Setting usage terms by rule.
A quote document freezes its rate card at the moment it is generated, so re-opening an old quote shows the tiers the customer was actually sent even after the catalog has moved on.
Related
- Catalog & Pricing Setup → Usage Rate Cards — authoring the flag, the usage dimension, and the overage tiers.
- Quoting → Quoting a Metered Deal — the configurator usage panel and the quote’s rate-card section.
- MDQ — Segment Pricing — the other multi-part pricing method (per-segment ramps).
- Reference → Line Item Fields — the usage fields stamped on the saved line.