Billing and plans
The plan you are on, what it includes, what you have used, and how far the upgrade path goes on a given deployment.
Billing and plans
Settings → Plan & usage shows the organization's current plan, what it includes, what has actually been used against it, and the plans available to move to. Everything on this page is billed through Paddle, acting as merchant of record: up0 never directly handles a card or a tax calculation.

Reading is open to everyone; changing plans is not
GET /me/billing/plans, /subscription, and /transactions are readable by
any member. Only an Owner can start a checkout, cancel, resume, change plan,
or open the Paddle billing portal. Those controls are disabled for
everyone else, with the reason stated next to them, the same
disabled-plus-explanation pattern the Organization settings page uses.
The live plan catalog
Older docs list five plans; the deployed catalog has three
docs/v2/modules/09-billing/README.md's pricing table still lists Free,
Starter, Pro, Business and Enterprise, from before the product became a
signals platform. What the backend actually seeds and serves today
(verified live, GET /me/billing/plans on kind) is Free, Starter and
Pro only (Business and Enterprise are not offered). This page describes
what is live, not the older table.
| Plan | Price | Monitors | Check interval | Team members |
|---|---|---|---|---|
| Free | $0 | 10 | 5 min | 1 |
| Starter | $9/mo | 50 | 1 min | 5 |
| Pro | $29/mo | 200 | 30 sec | 25 |
The Free plan also includes no status pages and a 7-day data retention window; each paid tier raises every one of those ceilings.
Usage
Three bars against the current plan's limits: monitors, team members, and status pages (shown as "Not included on this plan" rather than a 0/0 bar when a plan grants none of a resource, an empty progress bar there would read as a bug rather than as "this plan simply does not have this").
Walked live on kind: the "upzero docs" organization is on Free, with monitors 7/10 and team members 1/1. The team-members bar sitting at its ceiling is exactly why the invite attempt in Members was rejected.
Upgrading
Upgrade is not purchasable on this deployment
Every plan card above Free shows Not purchasable online on kind rather
than a working Upgrade button. The plan catalog has no
paddle_price_id_monthly configured for Starter or Pro on this cluster, so
there is nothing for a Paddle checkout to reference. This is a
deployment-configuration gap, not a missing feature: the checkout,
change-plan, cancel, resume, and billing-portal flows all exist in the
code and are wired to real Paddle endpoints; they were not exercised on
this walk because there is nothing to check out into.
On a deployment where Paddle prices are configured, choosing a higher plan either opens Paddle's hosted checkout overlay (if the organization has no subscription yet) or changes the existing subscription's price directly (if it does). Either path carries the signed-in member's email to Paddle. Canceling asks for confirmation and explains when access reverts to Free (immediately, or at the end of the current billing period, depending on timing); resuming reverses a pending cancellation.
Billing history
A transactions list, paginated, reflecting whatever Paddle has recorded for the organization. It was empty on this walk's organization, matching a Free plan that has never had a paid transaction.
What this page does not do
It does not meter ingestion volume; that is the separate, immutable
usage_logs ledger the backend writes from Prometheus, used only to compute
overage and never shown as an editable number here. It also does not show
per-signal storage or cardinality; that is
Statistics, a different and explicitly
non-billing surface.