6. The pricing model — flat fee + usage-based above an allowance
From the Meridians Wiki · Public · Maintained · joint
One anchor the customer sees: a flat $20/seat that includes a generous monthly inference allowance. Go past it and you pay for what you use, metered at COGS × markup. Light users never touch the meter; heavy users turn into revenue instead of a cost sink; self-host (BYO key) skips the meter entirely.
6.1 The unit (internal accounting only)
- Meridian Credit (MC). 1 MC = $0.001 (a tenth of a cent),
$1 = 1,000 MC. Under flat pricing, credits are not a customer-facing currency — they are the internal accounting unit for the allowance and the overage meter (the buyer sees "$20/mo incl. ~15M tokens", not a credit balance).
6.2 The formula
Overage is priced from measured token usage — the same numbers calculateApiCost already records — times a
markup:
overage_$ = max(0, variable_COGS − allowance_COGS) × MARKUP
variable_COGS = research(loops) + generation(actions) // all per MODEL_PRICING + service prices
- Allowance = $8 of COGS/seat/mo (~15M mixed tokens) — included in the flat fee, sized so normal use never hits it (living-domain variable COGS ≈ $3.1/seat, well under $8).
- MARKUP = 3× on overage → ~67% gross margin on usage past the allowance. Sensitivity: 2× = 50%, 4× = 75%.
- COGS uses the actual model the call ran on — so if PERFORMANCE routing is enabled, overage prices rise automatically. The meter is self-correcting against model-tier changes.
6.3 Per-action overage price (shipped router, MARKUP 3×, 1 MC = $0.001)
Below the allowance these are free (bundled). Above it, this is what each action bills:
| Action | COGS | Price (MC) | ≈ retail | margin |
|---|---|---|---|---|
| Chat message | $0.0007 | 3 MC | $0.003 | 75% |
| Game-theory scene | $0.0009 | 3 MC | $0.003 | 70% |
| Interview | $0.0027 | 8 MC | $0.008 | 67% |
| Survey (×10) | $0.0049 | 15 MC | $0.015 | 68% |
| Arc generation (4 scenes) | $0.0049 | 15 MC | $0.015 | 68% |
| Domain creation | $0.0065 | 20 MC | $0.020 | 68% |
| Scene prose | $0.0074 | 23 MC | $0.023 | 68% |
| Variable model | $0.0095 | 29 MC | $0.029 | 67% |
| Scene plan | $0.0098 | 30 MC | $0.030 | 67% |
| Reasoning graph (CRG) | $0.0131 | 40 MC | $0.040 | 67% |
| Embeddings re-index | $0.0060 | 18 MC | $0.018 | 67% |
| Image | $0.04 | 120 MC | $0.120 | 67% |
| TTS narration / scene | $0.105 | 315 MC | $0.315 | 67% |
| Research tick / domain | $0.047 | 143 MC | $0.143 | 67% |
A full creative arc (gen + 4×plan + 4×prose + CRG + 4×game) ≈ 15 + 120 + 92 + 40 + 12 = ~279 MC ≈ $0.28 of overage — i.e. you'd run ~28 full arcs/mo before exhausting the $8 allowance. A daily research domain ≈ $4.30/mo COGS, so the allowance covers ~1–2 actively-tracked domains before the meter starts.
6.4 Packaging — one flat price, usage-based above the allowance
| Plan | $/mo | Includes | Above the allowance | For |
|---|---|---|---|---|
| Standard (seat) | $20 | ~15M tokens/mo (research + creative) | pay-as-you-go at COGS × 3 | the one consumer price |
| Self-host | $0 | — (BYO key) | no meter, ever | sovereignty / advanced |
The buyer's mental model is just "$20/mo, and if you really hammer it you pay for the extra." No credit balance to track, no tiers to choose between, no per-domain math. The allowance and the meter live underneath:
- ~80% of users never see the meter. Living-domain variable COGS ≈ $3.1/seat vs an $8 allowance — the flat $20 is the entire experience; margin sits at 66%.
- Heavy users become revenue, not a loss. The heavy-creative seat ($12.5/seat variable) bills ~$13.60 of
usage on top → revenue $33.60, margin 50% — versus 19% if we ate it on a pure flat fee. (
usage-sweep.png: flat-only sinks below zero; flat+usage holds ~60%.) - The allowance is the silent guardrail, not a throttle. We don't degrade the experience at the edge — we bill it. A user who'd rather not meter brings their own key (self-host) and uncaps for free.
- Rooms share the box (infra flat) and each seat carries its own allowance → margins rise with seats (78% at 5 seats) with overage attributed per member.
6.5 Why this is buildable today
The metering substrate already ships:
calculateApiCostcomputes per-call COGS fromMODEL_PRICING(incl. reasoning tokens billed as output, and flat image pricing).- The
GasMetertopbar pill (src/features/usage/GasMeter.tsx) already accumulates and displays spend from the api log. - The
UsageModalbreaks spend down by caller/model. apiLogsis a persisted IndexedDB store; every call recordspromptTokens,responseTokens,reasoningTokens,model.
What's missing to ship flat + usage:
- An allowance meter per seat — a running sum of
calculateApiCostfor the month vs the $8 allowance (the COGS layer is done; this is a tenant-scoped accumulator on the control plane). - Overage billing — once the month's usage passes the allowance, bill the excess at COGS × markup through Stripe metered/usage-based billing (Stripe already supports this; we send usage records).
- Soft notice at the threshold — tell the user when they cross into pay-as-you-go (never surprise-bill, never throttle mid-stream); offer BYO-key as the free uncap.
- Transparency UI — the
GasMeterpill already shows spend; reframe it as "allowance used / overage so far this month" so the rare heavy user sees exactly where they are.