Authoring a pricing table
Authoring a pricing table
A pricing table is authored in the console under Catalog → Pricing tables (gated by
catalog:manage for writes, catalog:read for reads). It is a pure projection over the
catalog — it grants nothing and no subscription depends on it — so it is safe to delete
outright; the active flag takes one offline without deleting.
What a table carries
- Public slug (
key) — addresses/pricing/{key}. An inactive or unknown key 404s. - Plan columns — the ordered set of plans to show. Each column names the (monthly) plan, its display order, whether it is the featured column (visually lifted), an optional badge ("Most popular") and a one-line highlight. A column may also name an annual plan — its yearly-priced sibling — which the monthly/yearly toggle switches the column's price to.
- Feature comparison matrix — the ordered set of catalog features to compare across the
columns. Each cell is read from that column plan's feature grant: ✓ for a granted boolean
feature, the typed value for a config feature (e.g.
max_projects = 10), or — when not granted. - Currencies — which currencies the table may present. Leave unset to present every currency the columns' plans are priced in (deny-by-default — never a currency no plan carries). The default currency is the one selected on first render.
- Interval toggle — show the monthly/yearly switch. It only appears when at least one column actually carries an annual plan.
- Branding — the selling entity whose brand (logo, accent colour, legal name) the page wraps around. Unset falls back to the default seller / app-level branding. See Branding.
- CTA — the button label and its deep-link target. See the checkout deep-link contract.
Prices, allowances and the matrix are catalog truth
Nothing about a table restates a price. Every amount is the stored per-currency minor amount,
formatted through the same MoneyFormatter the console and invoices use; each column's
allowance bullets are its plan's enabled metered entitlements; each matrix cell is the plan's
feature grant. Change a price or a grant in the catalog and every table that projects it updates.
Live preview
The table detail page renders the actual public table in an iframe (the real
/pricing/{key}/embed view) alongside the copy-paste embed snippet, so what you
author is exactly what a marketing site ships. The preview renders even while the table is
offline.