Codaban bills a person for the work it does. Never per-seat, never per-workspace. Members see units, not money.
One number that matters: reviews left this month. No token math, no surprise invoice, and no cost anxiety for your team.

Billing accounts

A billing account is owned by a user and answers “how is this work paid”. A workspace points at one account, and the usage meter pools per account — so one bill per person, across every workspace that account funds. Each user has one default account. You can create more (say, Personal versus Client’s own key) and choose which funds each workspace. An account is one of: Precedence is BYOK → plan → trial → inert. Once you’re paying, unspent trial units stop mattering and the plan’s pool is what counts.
BYOK is not a plan. An account is BYOK simply by having its own key attached. There is no “BYOK plan” in the catalog.

The free trial grant

Every billing account is created with 10 free review units, so you can watch Codaban review real pull requests before being asked to pay. It differs from a plan’s pool in one important way: it never refills. A plan’s pool resets on the 1st of the month. The grant is spent once, and that is that. Spending the last unit gets its own reply on the PR — “that was the last of your 10 free reviews” — rather than a generic unfunded notice.

Plans

Every plan is the same product: all engines, unlimited seats, unlimited repositories, no throttling. A plan only sets the monthly review-unit pool and its price. Pick the one that matches how much you ship, and switch whenever that changes.
Nothing above is final — it’s our current thinking. Codaban is in closed beta, the numbers will move before launch, and beta teams keep founder pricing regardless. Tell us if the model is wrong.
A workspace Overview page on the Busy plan showing 142 of 250 reviews used, resetting in 11 days, split 39 deep, 96 smoke and 7 agent, with outcome tiles and a reviews-per-day chart.

The Overview page — plan, pooled counter, reset date, and the mode split.

Units

One dispatched review or fix is 1 unit, whichever mode you use. A smoke review, a deep review, and each agent-fix run — plan, implement, iterate, including the GitHub fix-checkbox and a trace-page re-run — all count 1. The pool resets on the 1st of each calendar month (UTC), automatically.

The two gates

Every job passes two checks before it runs:
1

Billing gate

The workspace’s funding account must be runnable: metered with a plan, BYOK with its own key, or trial with an unspent grant. An unfunded account is off. This also picks which key the job runs on.
2

Units gate

A metered account is hard-blocked once its monthly pool is spent, and a trial account once its grant is. BYOK skips the cap.
When a workspace is blocked, an explicit @codaban review, deep review, or fix command gets a reply — a “set up billing” note when it’s unfunded, a “limit reached, move to a bigger plan” when a metered pool is spent. A passive or automatic trigger skips silently.
The units gate fails open on infrastructure errors, so a transient blip never blocks a paying user.

Bring your own key

Attach your own LLM key under Account → Billing, per account. That makes the account BYOK: uncapped, billed by your provider, no plan needed. Point a workspace at that account under its Settings → Billing.
BYOK is a permission, off by default. You only see the key form if a platform admin granted it to you — BYOK bypasses the metered pool entirely, so it’s a decision about a person rather than a default for every signup. Without it the panel tells you who to ask.
Your key is encrypted at rest and never returned by the API — you see the endpoint and the last four digits only.

What you see

Members, including workspace owners, see units, never dollars. For a BYOK account that’s correct: your real bill lives on your own provider account, not in Codaban’s estimate. Token counts follow the payer. A BYOK workspace does see the token totals on its reviews — it’s paying the provider for them — while a metered workspace sees units instead, since the tokens are only the input to a price it isn’t charged.

Traces

Opening a review shows every member what it did: the passes, their verdicts, what each one found, how long it took — and for a deep review, an expandable story of Codaban’s own narration interleaved with what it did (“read a few files · 3”, “inspected git history · 2”). The same holds for an agent fix: opening an issue from Agent · Fixes shows every member its runs, which phase each was, whether it landed or failed, and how long it took. What stays operator-only is the machine underneath — the review prompt, the exact commands and their output, per-turn model and token detail, and the raw session download.
A review trace for one review unit across three passes — reading the change, reading the code around it, then writing the review — each with a plain-language summary, its duration, and what it did, such as reading three files and inspecting git history twice.

What one review unit actually did, pass by pass.

Every prompt I sent, every file I opened. If I got it wrong, you’ll see exactly where.
This split is enforced on the API, not in the dashboard: the responses a member receives don’t contain the operator half at all. If you’re evaluating Codaban and want to verify that, the network tab is the right place to look.