Meet Acme Corp.
Follow one fictional customer from signup through their first expansion. Every concept in the docs shows up exactly once.
A worked example
Meet Acme Corp.
A fictional customer we follow through the whole flow.
- 01The TenantYou — 'Acme SaaS' — run your subscription business on Revvly in USD.
- 02The RegionYou've set up a 'US' region with USD as its default currency and CAD as a supported alternate.
- 03The MeterYou've defined a 'seat' Meter — the quantity carries forward between periods and is billed on the highest value observed, so customers are charged on their peak seat count in the period.
- 04The Variable ComponentOn top of 'seat' you publish a flat-rate Variable Component v1: $5 per seat per month, 10 included for any subscription that bundles it.
- 05The CatalogYou compose an 'Analytics Module' (pinning the seats component v1) and a 'Professional Bundle' (pinning Analytics Module v1 plus a 'priority-support' flag).
- 06The PriceThe Professional Bundle resolves to $49 USD / month from a Global default Variable Component Price, with seats above 10 priced at the flat rate.
- 07The CustomerAcme Corp signs up — a Client in the US region.
- 08The SubscriptionThey subscribe to the Professional Bundle v1, monthly, starting April 23. The subscription pins Bundle Professional v1 and Analytics Module v1. A CREATED event fires: +$49 MRR.
- 09The UsageTwo weeks in, Acme reaches 15 active seats. Subscription Variable Usage records peak=15. The next invoice will include 5 × $5 = $25 in overage seats.
- 10The ExpansionAcme upgrades to Bundle Professional v2 (a new published version of the bundle). An Expansion is recorded with a prorated charge of $18.33. An EXPANDED event fires: +$25 MRR.
- 11The Private DealMid-year, you negotiate Acme down to $3 per seat. A Custom Pricing Agreement targets the seats component, overrides the unit price axis, and takes effect at their next renewal.
- 12The DiscountTo sweeten the deal further, you apply a 10% discount on the base price for the next three renewals — previewed against the upcoming invoice before saving. It stacks with nothing else, so the Best-wins stacking mode is moot for now.
- 13The InvoiceNext cycle, Revvly issues invoice ACME-00001 for $74 — base plan plus seat overage. Pending → Paid moves the receivable through Finance.
- 14The RenewalThirty days before the anniversary, Acme appears in the Renewal queue. You approve the renewal action; at the boundary Revvly applies the pending Custom Pricing Agreement, decrements the discount's remaining renewals, issues the renewal invoice, and writes a RENEWED lifecycle event.