business model: device-tag grammar ruling, pool proration, v2 build status
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 file changed,
+19
−16
docs/superpowers/specs/2026-08-13-carloku-business-model-design.md+19 −16
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| index 3c62abb13..6b93effac 100644 |
| --- a/docs/superpowers/specs/2026-08-13-carloku-business-model-design.md |
| +++ b/docs/superpowers/specs/2026-08-13-carloku-business-model-design.md |
| @@ -51,6 +51,8 @@ Mechanism (Paul's Eleven-conversations design, made concrete): |
| - 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). |
| + The top-up accrues per-day against each day's own month length (Σ TopupUSD/daysInMonth(d)), |
| + so month-to-date and closed-month ledgers both read honestly. |
| - 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 |
| @@ -71,10 +73,12 @@ commons, which is a story we can tell. |
| - **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. |
| +- **Device class is a tag**: the tag grammar has no `=`; device class = |
| + literal `device` tag present in the box's comma-list (registry |
| + `ValidBoxTags` grammar), server class otherwise. 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, |
| @@ -177,19 +181,18 @@ 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):** |
| +**Built in economics-v2 plan (2026-08-15, this branch):** |
| -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. |
| +1. `fleet_box_hours_server` and `fleet_box_hours_device` meters (device-class split) |
| + derived in the statements pass from fleet-labelled metrics presence, |
| + attributed to the owning account. |
| +2. `box_month_server_usd` and `box_month_device_usd` in the rate sheet; |
| + `mem_gb_hour_usd` overage axis; 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. |
| +4. Account-tier marker (try/pool/hosted/fleet/dedicated) as a console-store |
| + column and operator door, so the dashboard can group accounts by rung. |
| **Explicitly out of scope here:** payments and invoicing (the |
| unit-economics spec's phase-2 stance holds: statements × promoted |
| @@ -198,9 +201,9 @@ work, own spec); the carloku.com pricing page (follows this doc). |
| ## Follow-ups recorded |
| -- Fleet metering + pool ledger spec (items 1–4 above), plus a |
| - `mem_gb_hour` overage price axis and per-tenant S3-request metering |
| - (the litestream guard). |
| +- Durability machinery spec: per-app/instance litestream sync-interval config, |
| + the hibernate-flush guarantee as a tested invariant, and per-tenant S3-request |
| + metering (the litestream guard and a revenue axis). |
| - Control-plane polling efficiency: ~$1/box/month of 2 s heartbeat GETs |
| is the platform's own S3-cost floor — a poll-interval/long-poll lever |
| worth a look before the fleet is 50 boxes. |