docs: Carloku business-model design — the ladder, the pool, fleet pricing
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 file changed,
+163
−0
docs/superpowers/specs/2026-08-13-carloku-business-model-design.md+163 −0
diff --git a/docs/superpowers/specs/2026-08-13-carloku-business-model-design.md b/docs/superpowers/specs/2026-08-13-carloku-business-model-design.md| new file mode 100644 |
| index 000000000..28c138280 |
| --- /dev/null |
| +++ b/docs/superpowers/specs/2026-08-13-carloku-business-model-design.md |
| @@ -0,0 +1,163 @@ |
| +# Carloku business model — the ladder, the pool, and fleet pricing |
| + |
| +**Date:** 2026-08-13 (approved in conversation 2026-08-13/14, Paul) |
| +**Status:** Approved direction — a starting point, tweakable by construction: |
| +every number here lives in scenario JSON or in this doc, not in code. |
| +**Grounding:** the live unit-economics instrument |
| +(`2026-08-11-unit-economics-design.md`): real meters, real pulled AWS |
| +bills, per-account cost attribution on both consoles since 2026-08-12. |
| + |
| +## What this is |
| + |
| +The commercial model for Carloku (the flagship CARLOS deployment): |
| +who pays, what they pay on, what free means, and what operating a |
| +customer fleet charges. It is a modelling-instrument output — prices are |
| +decision-grade anchors to be tuned against real usage in the economics |
| +dashboard, not published commitments. |
| + |
| +## The one rule |
| + |
| +**You pay per app or per box, never both.** |
| + |
| +- **App-months** bill only on shared multi-tenant capacity (our boxes, |
| + many tenants). |
| +- **Box-months** bill for metal we operate whole for you: your own boxes |
| + (fleet) or our boxes rented dedicated. A box that bills runs unlimited |
| + apps free. |
| +- **Egress and storage** are their own metered axes everywhere and never |
| + fold into either price above. Fleet direct-served traffic never bills — |
| + it never touches our infrastructure, and the meter boundary is the cost |
| + boundary. |
| + |
| +## The ladder |
| + |
| +| Rung | Who | Pays | Anchor price | |
| +| --- | --- | --- | --- | |
| +| **Try** | everyone, forever | $0 (our permanent marketing cost) | 1 tiny hosted app; hard caps (1 GB egress/mo, 250 MB storage); sleeps aggressively | |
| +| **Free pool** | hobbyists | $0 (pool-funded — see below) | generous limits (10 GB egress, 1 GB storage shape) while the pool covers it | |
| +| **Hosted** | indies, agencies | per app | **$5/app-month**; egress $0.15/GB past allowance; storage $0.05/GB-month past allowance | |
| +| **Fleet** | self-hosting companies (Eleven shape), edge/IoT (Pi shape), agencies on own metal | per box, tiered by device class | **$5/box-month server class**, **$1/box-month device class**; 10+ boxes → 40% off; relay egress $0.15/GB past 20 GB/box/mo; direct-served traffic free (unmetered by construction); **apps free** | |
| +| **Dedicated** | big orgs wanting the efficiency without self-hosting | per dedicated box we run | **cost × multiple** all-in; at the standard 5× a t4g.small is ≈ $95/box-mo and a t4g.medium ≈ $170 (2026-08 all-in costs ≈ $19/$34) — the dedicated multiple is expected to settle LOWER than 5× (managed capacity competes with raw EC2 at ~$13); it is a first-class knob. **Apps free**; metered egress/storage on top; idle included — they rent the whole box, so no idle-smearing question exists | |
| + |
| +Graduation is monotonic (Try → pool → Hosted → Fleet → Dedicated) and the |
| +vocabulary never changes. Named plans (Heroku-style bundles) are a |
| +POSSIBLE FUTURE presentation layer over this model, not part of it. |
| + |
| +## The pool (the free tier is a budget, not a promise) |
| + |
| +Mechanism (Paul's Eleven-conversations design, made concrete): |
| + |
| +- `pool = 10% × recognised monthly revenue + bootstrap top-up`. |
| +- The bootstrap top-up is set by hand monthly during the kickstart phase; |
| + starting anchor **$200/month** (~2× the entire flagship fleet's current |
| + all-in cost, so genuinely generous). |
| +- Free-pool accounts draw from the pool at **cost** — the economics |
| + dashboard's per-account cost-to-us figure (allocated box share + direct |
| + meters) IS the draw. The pool report is arithmetic over numbers the |
| + dashboard already computes. |
| +- As the month's draw approaches the pool, **generosity degrades, never |
| + availability**: pool-tier limits step down toward Try caps for new |
| + consumption. Nothing is killed for budget reasons; apps sleep harder and |
| + cap harder. |
| +- Try sits outside the pool: unconditional, permanent, small. |
| + |
| +Properties this buys: the free tier is self-limiting by construction |
| +(no "free tier is eating us" cliff); "how generous can we afford to be" |
| +is a dashboard line, not a debate; paying customers visibly fund the |
| +commons, which is a story we can tell. |
| + |
| +## Fleet axis — rulings |
| + |
| +- **Box-months from presence**: a fleet box's metrics reporting into the |
| + deployment bucket is its billable presence; box-months prorate by |
| + metered hours (attach mid-month = half a month; honest by default). |
| +- **Device class is a tag**: `class=server` (default when untagged) or |
| + `class=device`, set via `carlos fleets tag-box` by the customer. |
| + Trust-first: a mis-tagged box is visible in its own metrics; auditing |
| + is a later policy question, not launch machinery. |
| +- **Relay is the billing boundary for traffic**: tunnel-relayed traffic |
| + flows through our edge and is already metered (`usage/edge/*`) — |
| + billable past the allowance. Direct-served traffic is invisible to us, |
| + costs us nothing, bills nothing. No code enforces this; the |
| + architecture does. |
| +- **Volume break**: 10+ boxes in an account → 40% off box prices. One |
| + break only at launch; more tiers when real fleets exist. |
| + |
| +## Dedicated axis — rulings |
| + |
| +- Dedicated = one of our boxes, in our AWS account, allocated whole to |
| + one account. Priced at that box's **all-in cost × a dedicated |
| + multiple**, where all-in cost is the rate card's number for that box |
| + (EC2 + EBS + its overhead share). The standard 5× is the starting |
| + anchor, but dedicated is the rung where the multiple most plausibly |
| + settles lower — managed whole-box capacity competes visibly with raw |
| + EC2 — so the multiple is a first-class scenario knob, not a constant. |
| +- Apps free (the one rule). Egress/storage metered on top — a dedicated |
| + box's traffic leaves through our pipes, unlike fleet direct-serve. |
| +- Idle included: renting the whole box IS buying its idle. The |
| + per-box utilization view stays useful to the customer, not to a |
| + pricing argument. |
| +- **Dedicated is per-region** (Paul, 2026-08-14): a box lives in one |
| + region, so multi-region presence = one dedicated box per region, each |
| + at its region's cost × the dedicated multiple (regional rate-card |
| + prices differ and the price follows them). There is no bundled "multi-region dedicated" SKU — |
| + the region count IS the box count, which keeps the price sheet honest |
| + and makes HA/residency a natural multiplier instead of a negotiation. |
| + |
| +## Unit maths (2026-08 real data) |
| + |
| +- Whole flagship fleet (4 × t4g.small in IE/US/UK/AU + overheads): |
| + ≈ **$91/month all-in** at steady state (live rate card |
| + `actual-prices`, AWS Pricing API rates, EIP/Route53/S3-churn/DNS |
| + overheads included). |
| +- A hosted app's marginal cost at current utilization ≈ **$0.60/month** |
| + → $5/app-month ≈ 88% margin, comfortably above the 80% target. |
| +- A fleet box costs us ≈ **$0.20–0.50/month** (control-plane bucket |
| + churn) plus relay egress at $0.09/GB when tunnelled → $5/box-month is |
| + ~90%+ margin; $1/box-month device class still >50% margin if the |
| + device is quiet, and the 20 GB relay allowance bounds the loss if not. |
| +- Dedicated all-in costs (real rate card): t4g.small ≈ **$19/mo** |
| + (730 h × $0.0184 = $13.43 EC2 + $1.78 EBS + $3.65 IPv4 + overhead |
| + share) → ≈ **$95/box-month at 5×**; t4g.medium ≈ **$34/mo** → ≈ |
| + **$170/box-month at 5×**. (An earlier conversational draft said $23/$45 |
| + — that was an arithmetic error, cost × ~1.2, recorded here so the |
| + wrong anchors don't survive in anyone's head.) |
| +- August whole-account bills for reality-checking: flagship $24 MTD, |
| + titogo $3,397 MTD (dominated by non-CARLOS legacy; the reconcile |
| + knob's whole point). |
| + |
| +## What exists today vs what this needs |
| + |
| +**Expressible now (scenarios, no code):** hosted app pricing, egress and |
| +storage prices/allowances, margin multiples, the free-tier allowance |
| +shapes — saved as scenarios `ladder-launch` (bootstrap-generous pool |
| +assumptions) and `ladder-lean` (10%-of-revenue pool only) on the flagship |
| +console. |
| + |
| +**Needs a small build (follow-up spec, rides existing machinery):** |
| + |
| +1. `fleet_box_hours` meter (+ device-class split) derived in the |
| + statements pass from fleet-labelled metrics presence, attributed to |
| + the owning account. |
| +2. `box_month_usd` (server/device pair) in the rate sheet; fleet volume |
| + break as a knob. |
| +3. Pool ledger line on `/fleet/economics`: |
| + `pool = 10% × revenue + top-up · draw = Σ free-pool accounts' cost · |
| + headroom`, with the top-up and percentage as scenario knobs. |
| +4. An account-tier marker (try/pool/hosted/fleet/dedicated) so the |
| + dashboard can group accounts by rung — a console-store column or |
| + bucket manifest, decided in that spec. |
| + |
| +**Explicitly out of scope here:** payments and invoicing (the |
| +unit-economics spec's phase-2 stance holds: statements × promoted |
| +scenario = future invoices); cap ENFORCEMENT for Try/pool (provisioning |
| +work, own spec); the carloku.com pricing page (follows this doc). |
| + |
| +## Follow-ups recorded |
| + |
| +- Fleet metering + pool ledger spec (items 1–4 above). |
| +- Enforcement spec for Try/pool caps (sleep/cap policy hooks). |
| +- Pricing-page copy for carloku.com once numbers survive a month of |
| + dashboard contact. |
| +- Revisit the volume break and device-class prices when the first real |
| + external fleet attaches. |