Billing & Subscriptions arenaBilling & Subscriptions
Subscription management and usage-based billing platforms — the system of record for what customers owe — judged on running the full subscription lifecycle through an API (create, upgrade, pause, cancel), metering high-volume usage events into tiered and hybrid prices, getting proration math right to the penny, recovering failed payments with smart retries and dunning, compliant invoicing with tax and multi-currency, entitlements your application can check at runtime, ASC 606 revenue recognition, and the AI-era heart of the arena: whether an agent can read and operate your billing state. The 2026 consolidation is part of the story — Stripe acquired Metronome (Dec 2025) and Adyen acquired Orb (Jul 2026), both still sold standalone and judged on their own docs; Chargebee and Lago (AGPLv3, the open-source flag) are the remaining independents, and Recurly (Accel-KKR-owned) carries the subscriptions-first end. Zuora (private under Silver Lake since 2025, absorbed Togai) sells an enterprise finance suite, Paddle is a merchant of record, and Maxio is a finance-office roll-up — different jobs, so none are ranked here.
53 user stories · 371 judged cells · updated 2026-09-15 · Evidence as of 2026-09-15
Leaderboard — every product ranked by evidenceLeaderboard
| 1 | hosted-paid vs Chargebee ↗ | 48/100 | 33/100 | 61/100 | 57/100 | 18/100 | ★ 10.6k▲ 2.3k/yrnpm 32k/wkpypi 5.6k/wk | 20/36 verified | 0/100 integrity | ||
| 2 | usage-based vs Lago ↗ | 47/100 | 33/100 | 19/100 | 16/100 | 19/100 | npm 151.2k/wk | 16/32 verified | 35/100 integrity | ||
| 3 | usage-based vs Lago ↗ | 65/100 | 16/100 | 0/100 | 7/100 | 32/100 | 19/33 verified · 1 disputed | 31/100 integrity | |||
| 4 | free-tier vs Lago ↗ | 48/100 | 40/100 | 0/100 | 18/100 | 15/100 | ★ 3.1k▲ 345/yrnpm 656.5k/wk | 10/24 verified | 20/100 integrity | ||
| 5 | usage-based vs Lago ↗ | 28/100 | untested | 29/100 | 16/100 | 21/100 | npm 288.1k/wk | 10/25 verified | 0/100 integrity | ||
| 6 | subscription-flat vs Lago ↗ | 38/100 | 11/100 | 0/100 | 14/100 | 21/100 | npm 31k/wk | 14/28 verified | 36/100 integrity | ||
| 7 | usage-based vs Lago ↗ | 33/100 | 5/100 | 0/100 | 14/100 | 27/100 | npm 155.2k/wk | 5/27 verified | 7/100 integrity |
Best by user type — persona-weighted winnersBest by user type
Per persona, the product with the highest persona-weighted coverage over just that persona's stories — not the same ranking as the overall PA Score leaderboard above.
Story matrix — every product × every judged storyStory matrix
Agenticness — how well agents can access and operate the productAgenticness
Agent access
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productPoint an agent at llms.txt or agent-oriented docs | ai-native | fullT 9/10 | fullT 9/10 | fullT 9/10 | fullT 9/10 | fullT 9/10 | fullT 8/10 | fullT 8/10 |
| Agenticness — how well agents can access and operate the productRun the product headlessly / in CI for automation | ai-native | fullT 7/10 | partialC 6/10 | partialC 4/10 | partialC 6/10 | partialC 3/10 | partialT 4/10 | partialC 5/10 |
| Agenticness — how well agents can access and operate the productPlug MCP servers into this product so it can use their tools | ai-native | n/a | none 0/10 | none 0/10 | none 0/10 | n/a | none 0/10 | n/a |
| Agenticness — how well agents can access and operate the productConnect an agent via an official MCP server | ai-native | fullT 8/10 | fullT 8/10 | partialT 7/10 | fullT 8/10 | none 0/10 | none 0/10 | fullC 8/10 |
| Agenticness — how well agents can access and operate the productUse an official CLI | ai-native | fullT 8/10 | none 0/10 | none 0/10 | partialC 4/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productDrive the product through a documented public API | ai-native | fullT 9/10 | fullT 8/10 | fullT 8/10 | fullT 9/10 | fullT 8/10 | fullT 8/10 | partialT 6/10 |
| Agenticness — how well agents can access and operate the productIssue scoped/least-privilege API credentials for an agent | ai-native | none 0/10 | partialT 4/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productBuild against official SDKs | ai-native | partialT 4/10 | partialT 6/10 | fullT 8/10 | partialT 5/10 | none 0/10 | none 0/10 | fullC 8/10 |
| Agenticness — how well agents can access and operate the productSubscribe to events via webhooks | ai-native | fullC 7/10 | fullX 7/10 | partialX 3/10 | fullC 7/10 | fullC 7/10 | fullC 7/10 | fullC 7/10 |
Agentic features
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productGet AI-generated insights and suggestions from my data inside the product | ai-native | none 0/10 | partialC 6/10 | none 0/10 | partialT 5/10 | none 0/10 | none 0/10 | fullC 8/10 |
| Agenticness — how well agents can access and operate the productSet up automations that run autonomously in the background | ai-native | partialT 6/10 | partialT 4/10 | partialC 4/10 | partialT 6/10 | partialC 4/10 | none 0/10 | partialC 3/10 |
| Agenticness — how well agents can access and operate the productDelegate tasks to a built-in AI assistant inside the product | ai-native | none 0/10 | partialC 6/10 | none 0/10 | partialT 5/10 | none 0/10 | none 0/10 | partialC 5/10 |
| Agenticness — how well agents can access and operate the productOperate the product with natural-language commands | ai-native | partialT 6/10 | partialT 6/10 | partialT 4/10 | partialT 6/10 | none 0/10 | none 0/10 | partialC 6/10 |
Api quality
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Agenticness — how well agents can access and operate the productExplore an interactive API reference with runnable examples | ai-native | none 0/10 | partialT 6/10 | none 0/10 | partialT 5/10 | none 0/10 | none 0/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productDownload a machine-readable API spec (OpenAPI or equivalent) | ai-native | none 0/10 | none 0/10 | none 0/10 | fullT 9/10 | none 0/10 | fullT 9/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productTest against a sandbox environment without touching production data | ai-native | none 0/10 | partialX 4/10 | none 0/10 | partialC 4/10 | none 0/10 | partialC 4/10 | none 0/10 |
| Agenticness — how well agents can access and operate the productRely on versioned APIs with a documented deprecation policy | ai-native | none 0/10 | partialT 3/10 | none 0/10 | fullT 8/10 | none 0/10 | none 0/10 | none 0/10 |
Automation depth — how much of the product can run unattendedAutomation depth
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Automation depth — how much of the product can run unattendedPerform bulk operations across many items at once | ai-native | partialT 5/10 | partialT 5/10 | partialC 3/10 | none 0/10 | partialC 5/10 | partialT 5/10 | none 0/10 |
| Automation depth — how much of the product can run unattendedDefine rules that trigger actions automatically on events | ai-native | partialC 5/10 | partialX 5/10 | partialX 4/10 | partialC 5/10 | partialC 5/10 | partialC 5/10 | partialX 4/10 |
| Automation depth — how much of the product can run unattendedSchedule recurring jobs or workflows | ai-native | partialT 6/10 | none 0/10 | partialC 5/10 | partialC 3/10 | partialC 3/10 | none 0/10 | partialC 3/10 |
| Automation depth — how much of the product can run unattendedVersion, review, and roll back my automations | ai-native | n/a | none 0/10 | none 0/10 | n/a | n/a | n/a | n/a |
Billing agent access — stories about billing agent access in this arenaBilling agent access
Agent operations
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Billing agent access — stories about billing agent access in this arenaAn agent can operate my billing — create a subscription, apply a credit, change a plan — through a programmatic surface with scoped permissions | ai-native | partialT 6/10 | partialT 6/10 | partialT 5/10 | partialT 7/10 | partialT 5/10 | partialT 5/10 | partialC 6/10 |
Agent queries
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Billing agent access — stories about billing agent access in this arenaAn agent can answer questions about my billing state — MRR, delinquent accounts, upcoming renewals, a customer's invoices — by querying the platform directly | ai-native | partialT 6/10 | fullT 7/10 | partialT 4/10 | fullT 8/10 | none 0/10 | partialT 5/10 | partialC 6/10 |
Billing math — stories about billing math in this arenaBilling math
Billing cycles
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Billing math — stories about billing math in this arenaControl billing anchors and cycles — calendar vs anniversary billing, alignment across a customer's subscriptions, custom invoice dates | ops | none 0/10 | none 0/10 | partialC 3/10 | none 0/10 | partialC 5/10 | none 0/10 | none 0/10 |
Proration
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Billing math — stories about billing math in this arenaMid-cycle upgrades and downgrades are prorated with documented, auditable math — credits, partial periods, and invoice line items that reconcile to the penny | finance-lead | partialC 5/10 | none 0/10 | partialC 5/10 | partialX 3/10 | partialC 6/10 | partialC 5/10 | none 0/10 |
Dunning recovery — stories about dunning recovery in this arenaDunning recovery
Card recovery
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Dunning recovery — stories about dunning recovery in this arenaExpiring or replaced cards update themselves — network account updater, backup payment methods, and hosted update-payment pages | ops | partialC 4/10 | partialC 5/10 | partialC 5/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Dunning comms
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Dunning recovery — stories about dunning recovery in this arenaConfigure automated dunning sequences — branded emails, in-app banners, grace periods, and final-state rules like cancel vs unpaid | ops | partialC 4/10 | partialC 5/10 | partialX 5/10 | partialC 4/10 | partialC 4/10 | none 0/10 | none 0/10 |
Smart retries
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Dunning recovery — stories about dunning recovery in this arenaFailed renewal payments are retried automatically on an ML- or schedule-optimized cadence that measurably recovers involuntary churn | finance-lead | partialC 6/10 | partialC 6/10 | partialX 5/10 | partialC 4/10 | partialC 5/10 | none 0/10 | none 0/10 |
Entitlements — stories about entitlements in this arenaEntitlements
Entitlement checks
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Entitlements — stories about entitlements in this arenaFeatures and limits are modeled as entitlements attached to plans, and my application can check a customer's entitlements at runtime via API or SDK | developer | partialC 5/10 | partialC 4/10 | fullC 6/10 | partialC 3/10 | none 0/10 | none 0/10 | fullC 8/10 |
Plan versioning
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Entitlements — stories about entitlements in this arenaChange pricing without breaking existing subscribers — versioned plans, grandfathering, and bulk migration tools for moving cohorts to new prices | ops | partialC 4/10 | none 0/10 | none 0/10 | partialC 3/10 | partialC 5/10 | partialC 4/10 | none 0/10 |
Invoicing tax — stories about invoicing tax in this arenaInvoicing tax
Invoices
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Invoicing tax — stories about invoicing tax in this arenaThe platform generates compliant invoices, credit notes, and receipts — sequential numbering, custom fields, memos — delivered to customers automatically | ops | partialX 4/10 | none 0/10 | partialC 5/10 | partialC 4/10 | partialC 5/10 | partialC 3/10 | none 0/10 |
Multi currency
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Invoicing tax — stories about invoicing tax in this arenaBill customers in their local currency with per-currency price points and consolidated reporting in my home currency | finance-lead | partialX 5/10 | partialC 3/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Tax
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Invoicing tax — stories about invoicing tax in this arenaSales tax, VAT, and GST are calculated on every invoice — natively or through a first-class tax integration — with the right registrations and rates | finance-lead | fullC 7/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
Migration portability — stories about migration portability in this arenaMigration portability
Export
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Migration portability — stories about migration portability in this arenaExport every subscription, invoice, and usage record — and port stored payment methods out to another provider — if I choose to leave | finance-lead | none 0/10 | partialC 3/10 | partialX 5/10 | partialC 4/10 | partialC 4/10 | partialC 5/10 | partialX 4/10 |
Import
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Migration portability — stories about migration portability in this arenaMigrate live subscriptions in from a spreadsheet or a competing platform — including PCI-compliant card data transfer — without customers noticing | ops | partialC 5/10 | none 0/10 | partialX 3/10 | none 0/10 | partialC 4/10 | partialC 3/10 | partialX 4/10 |
Openness — open source, data portability, and self-hosting storiesOpenness
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Openness — open source, data portability, and self-hosting storiesDo everything through the API that I can do in the UI | ai-native | partialX 6/10 | partialC 6/10 | partialC 6/10 | partialT 7/10 | partialT 6/10 | partialT 6/10 | partialT 6/10 |
| Openness — open source, data portability, and self-hosting storiesExport all of my data in open formats and leave | ai-native | none 0/10 | partialC 5/10 | partialX 4/10 | partialT 6/10 | partialC 4/10 | partialT 5/10 | partialT 4/10 |
| Openness — open source, data portability, and self-hosting storiesRead the product's source under an open license | ai-native | none 0/10 | none 0/10 | none 0/10 | fullT 7/10 | none 0/10 | none 0/10 | partialC 3/10 |
| Openness — open source, data portability, and self-hosting storiesSelf-host the core product | ai-native | none 0/10 | none 0/10 | none 0/10 | fullX 8/10 | none 0/10 | none 0/10 | none 0/10 |
Privacy posture — data-handling and privacy storiesPrivacy posture
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Privacy posture — data-handling and privacy storiesChoose where my data is stored (region/residency) | ai-native | none 0/10 | none 0/10 | none 0/10 | partialC 3/10 | none 0/10 | none 0/10 | none 0/10 |
| Privacy posture — data-handling and privacy storiesPrevent my data from being used to train AI models | ai-native | n/a | none 0/10 | n/a | none 0/10 | n/a | n/a | n/a |
| Privacy posture — data-handling and privacy storiesControl data retention and deletion | ai-native | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 |
| Privacy posture — data-handling and privacy storiesOpt out of telemetry and usage tracking | ai-native | none 0/10 | none 0/10 | n/a | none 0/10 | n/a | n/a | none 0/10 |
Revenue recognition — stories about revenue recognition in this arenaRevenue recognition
Analytics
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Revenue recognition — stories about revenue recognition in this arenaI get MRR, churn, cohort retention, and LTV analytics computed from the billing source of truth, not a bolted-on BI export | founder | disputedD 4/10 | none 0/10 | none 0/10 | none 0/10 | partialC 5/10 | none 0/10 | partialC 6/10 |
Gl sync
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Revenue recognition — stories about revenue recognition in this arenaInvoices, payments, and recognition entries sync to my general ledger or ERP — QuickBooks, Xero, NetSuite — so the close doesn't need CSV surgery | finance-lead | none 0/10 | none 0/10 | none 0/10 | none 0/10 | partialC 4/10 | none 0/10 | none 0/10 |
Revrec reports
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Revenue recognition — stories about revenue recognition in this arenaRevenue is recognized on an ASC 606 / IFRS 15 basis — deferred revenue schedules and audit-ready recognition reports straight from billing data | finance-lead | partialC 5/10 | partialC 6/10 | none 0/10 | none 0/10 | fullC 7/10 | partialC 4/10 | none 0/10 |
Subscription lifecycle — stories about subscription lifecycle in this arenaSubscription lifecycle
Lifecycle api
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Subscription lifecycle — stories about subscription lifecycle in this arenaCreate, update, pause, and cancel subscriptions through a documented API — the full lifecycle without touching a dashboard | developer | fullT 7/10 | partialC 6/10 | partialC 6/10 | partialT 6/10 | partialT 6/10 | partialT 6/10 | partialT 4/10 |
Lifecycle events
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Subscription lifecycle — stories about subscription lifecycle in this arenaEvery subscription state change — renewal, upgrade, payment failure, cancellation — emits a webhook or event my systems can act on reliably | developer | partialC 7/10 | fullX 7/10 | none 0/10 | partialC 6/10 | partialC 6/10 | partialC 5/10 | partialX 5/10 |
Self serve
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Subscription lifecycle — stories about subscription lifecycle in this arenaMy customers can upgrade, downgrade, or cancel themselves through a hosted portal or embeddable components, without a support ticket | founder | fullX 8/10 | none 0/10 | partialC 5/10 | none 0/10 | none 0/10 | partialC 4/10 | none 0/10 |
Trials promos
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Subscription lifecycle — stories about subscription lifecycle in this arenaRun free trials, coupons, and promotion codes with automatic conversion to paid — including trial-end notifications required by card-network rules | ops | partialX 4/10 | none 0/10 | none 0/10 | none 0/10 | none 0/10 | partialC 3/10 | partialX 3/10 |
Usage metering — stories about usage metering in this arenaUsage metering
Event ingestion
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Usage metering — stories about usage metering in this arenaStream high-volume usage events — API calls, tokens, compute-seconds — into a metering pipeline with idempotent ingestion and backdating support | developer | partialC 2/10 | partialC 3/10 | partialC 3/10 | partialC 5/10 | fullC 8/10 | partialC 5/10 | none 0/10 |
Pricing models
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Usage metering — stories about usage metering in this arenaPrice with tiered, volume, graduated, per-unit, and hybrid subscription-plus-usage models — including credits, commitments, and overage — without custom code | finance-lead | partialX 5/10 | partialC 3/10 | partialC 5/10 | partialT 5/10 | fullC 8/10 | partialC 6/10 | none 0/10 |
Usage visibility
| Story | Persona | |||||||
|---|---|---|---|---|---|---|---|---|
| Usage metering — stories about usage metering in this arenaCustomers and my team can see current-cycle usage and accrued cost in real time, with thresholds and alerts before an invoice surprises anyone | ops | none 0/10 | partialC 3/10 | none 0/10 | partialC 5/10 | partialC 7/10 | partialC 6/10 | none 0/10 |
Adjacent arenas — categories often shopped togetherAdjacent arenas
Shopping this category often means shopping these too.