Usage & billing
What Kisenon meters, the free allowance, and how the console shows it.
Kisenon meters what you actually use and rolls it up per organization. The console shows your usage, and usage beyond your free monthly allowance is invoiced per the pricing contract — see Billing status below.
What we meter
The control plane samples three dimensions per project and aggregates them per organization:
| Dimension | Unit | How it's metered |
|---|---|---|
| Compute | CU-hours | Recomputed every minute from each endpoint's server-side runtime (Postgres now()), bucketed by the hour and weighted by compute size. |
| Storage | GB-months | Polled every 5 minutes from the storage layer's per-project size. |
| Branches | branch-months | Sampled once a day at 02:00 UTC per project. |
Compute is the one that moves: an endpoint that suspends on idle stops accruing CU-hours the moment it stops, so a project that sleeps most of the day costs a fraction of one that runs flat out. Storage and branch counts are stable within their sampling windows, so a coarser cadence is fine.
The samples roll up into a single per-organization view of compute, storage, and branch usage for the current billing cycle — the numbers the billing page renders.
The free tier
Every organization starts with a free monthly allowance. A
project-count cap can also be enforced per organization: when the cap
is enabled, an organization with no payment method on file is held to a
fixed number of projects; once it's reached, creating another project
returns free_allowance_exhausted (HTTP 403). Organizations with a
payment method on file are uncapped. The exact cap is a deployment
setting rather than a hard-coded number, so it can be tuned over time.
As a cycle's metered usage climbs, the console shows an escalating
banner above the main content at three thresholds — the same 80 / 95 / 100 percentages the control plane records in its per-cycle notification
log:
- 80% — a yellow notice: "You've used over 80% of your free tier this period."
- 95% — an amber warning to add a payment method before service is interrupted.
- 100% — a red exhausted state: compute may be paused until a payment method is added.
Each banner is dismissible for the session and links to Add a payment method.
The org billing page
Every organization has a billing page at /orgs/{id}/billing, reachable
from the org's nav. When usage data is available it renders, per
dimension, a used / allowance bar (green below 80%, amber 80–95%, red
at/above 95%) plus an optional projected end-of-period marker, a
projected-invoice line, and the current plan and payment method.
Manage billing
Self-serve billing is live. Once a payment method is on file, the org billing page (Settings → Billing) shows a Manage billing button that opens the Stripe-hosted Customer Portal. In the portal you can:
- Update or replace the payment method.
- View invoices and receipts.
- Edit your billing address and tax IDs.
- Cancel.
Before a card is added, the page shows a Checkout button instead (add a payment method); the two are mutually exclusive.
Who can: the org owner or the billing role only — not admin, member, or viewer.
For reference, the control plane exposes:
POST /v1/billing/portal-session → { url }which returns a URL to the Customer Portal; the portal always returns you to the org billing page afterward.
Per-project cost (showback)
The billing page includes a Cost by project card that breaks your usage down per project. It reports four metered dimensions per project:
| Dimension | Unit |
|---|---|
| Compute | CU-hours |
| Storage | GB-months |
| Branches | branch-months |
| Egress | GB |
An Include credits & discounts toggle switches the view between gross and net — the net view applies a pro-rata allocation of the free allowance and volume discount. It's a display lens: the footer always shows the gross subtotal, free allowance, volume discount, and net total.
Data is day-granular: the period is keyed by a full start date
(YYYY-MM-DD). Usage is drawn from a global metering store, so a
project's costs stay visible even after the project is deleted.
Billing status
Metered usage is collected per project, aggregated per organization, and invoiced through Stripe per the pricing contract:
- Usage inside your free monthly allowance is not charged; usage beyond it is metered per unit, with an automatic volume discount on heavy use.
- The control plane's billing endpoint (
/v1/billing/customer) backs the usage banner and the org billing page — they read from the same source, so both reflect the current cycle's real numbers. - Add a payment method from the org billing page to lift the free-tier project cap and continue past the free allowance.
Related
- Organizations — the unit usage rolls up to.
- Endpoints — suspend-on-idle is what keeps CU-hours down.
- Pricing — the free allowance, per-unit rates, and volume discount.