MeridiansMeridians

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:

ActionCOGSPrice (MC)≈ retailmargin
Chat message$0.00073 MC$0.00375%
Game-theory scene$0.00093 MC$0.00370%
Interview$0.00278 MC$0.00867%
Survey (×10)$0.004915 MC$0.01568%
Arc generation (4 scenes)$0.004915 MC$0.01568%
Domain creation$0.006520 MC$0.02068%
Scene prose$0.007423 MC$0.02368%
Variable model$0.009529 MC$0.02967%
Scene plan$0.009830 MC$0.03067%
Reasoning graph (CRG)$0.013140 MC$0.04067%
Embeddings re-index$0.006018 MC$0.01867%
Image$0.04120 MC$0.12067%
TTS narration / scene$0.105315 MC$0.31567%
Research tick / domain$0.047143 MC$0.14367%

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$/moIncludesAbove the allowanceFor
Standard (seat)$20~15M tokens/mo (research + creative)pay-as-you-go at COGS × 3the one consumer price
Self-host$0— (BYO key)no meter, eversovereignty / 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:

  • calculateApiCost computes per-call COGS from MODEL_PRICING (incl. reasoning tokens billed as output, and flat image pricing).
  • The GasMeter topbar pill (src/features/usage/GasMeter.tsx) already accumulates and displays spend from the api log.
  • The UsageModal breaks spend down by caller/model.
  • apiLogs is a persisted IndexedDB store; every call records promptTokens, responseTokens, reasoningTokens, model.

What's missing to ship flat + usage:

  1. An allowance meter per seat — a running sum of calculateApiCost for the month vs the $8 allowance (the COGS layer is done; this is a tenant-scoped accumulator on the control plane).
  2. 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).
  3. 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.
  4. Transparency UI — the GasMeter pill already shows spend; reframe it as "allowance used / overage so far this month" so the rare heavy user sees exactly where they are.