MeridiansMeridians

3d. Recurring — the Program stages, and what the shipped estimate omits

Source path: knowledge-base/knowledge/product/economics/unit-economics/08-3d-recurring-the-program-stages-and-what-the-shipped-estimate-omits.md

# 3d. Recurring — the Program stages, and what the shipped estimate omits

The Program runs four stages. Costing only the crawler misses where the money actually goes:

| Stage | Calls per firing | Category → tier (`balanced-smart`) |
|---|---|---|
| **Watch** | research interpret + monitor checks | `extract` → balanced |
| **Opinion** | editorial + attachment curation | `write` → balanced |
| **Tutor** | editorial + merge graph + **scene generation** | `generate` → **performance** |
| **Project** | reasoning graph + futures + reading | `plan` / `predict` → balanced |

**Weekly, one domain, full Program, default cadence:**

| Stage | $/wk | Share |
|---|---|---|
| **Watch** | **$0.24** | **64%** |
| Tutor | $0.04 | 11% |
| Opinion | $0.04 | 12% |
| Project | $0.04 | 10% |
| **Total** | **$0.38** | → **$1.65/mo** |

**Watch dominates: the crawl, and the reading of what it crawled.** Tutor is the priciest *per firing* —
`generateScenes` routes through `modelFor('generate')`, the only category the default profile puts on
the **performance** tier (gemini-3.7-flash, $1.875/1M out) at `MAX_TOKENS_XLARGE` — but it fires once a
week against Watch's daily rhythm.

> **Audit correction.** An earlier version of this table put Tutor at 32.9%. That priced arc generation
> as *one call per scene*. It is **one batched call emitting every scene** (`scenes.ts:474`), folding N
> streams and M notes together — so the shared domain context is paid once, not N times. Costing it
> per-scene overstated Tutor by ~2.6× and the domain total by ~21%. The model now expresses each stage
> call as a base plus per-stream / per-note / per-scene growth, so a bigger merge prices correctly
> without re-charging the context.

> ⚠️ **The shipped Operations readout understates this.**
> [`operations-spend.ts`](../../../../../src/lib/core/economics/operations-spend.ts) emits only `task: "research"`
> and `task: "projection"` lines — its `TaskSpend` type declares `"tutoring"` and `"newsletter"` but
> **nothing ever pushes them**. So the Operations forecast shows roughly the **Watch share** (~64%) of
> true weekly spend. It is a conservative floor, not the all-in number. Closing that gap means emitting
> the Opinion/Tutor/Project lines from the same per-run profiles modelled here.

**By constellation size** (members × default cadence + weekly newsletter compose):

| Domains | $/wk | $/mo | Articles/wk | Credits/mo | Firecrawl plan |
|---|---|---|---|---|---|
| 1 | $0.39 | $1.69 | 150 | 867 | Hobby |
| 3 | $1.15 | $5.00 | 450 | 2,600 | Hobby |
| 5 | $1.92 | $8.32 | 750 | 4,333 | Hobby |
| 8 | $3.07 | $13.28 | 1,200 | 6,933 | Standard |

At the reference shape a Director runs **five domains inside the Hobby allowance** — the plan cliff
now arrives around domain six or seven rather than four.

> **These use the Growth per-page rate ($0.00066), which is a POOLED rate.** A solo BYOK operator at 3
> domains sits on **Hobby ($0.0032/page — 4.8×)**, where Firecrawl becomes **~65–73% of the bill** and a
> single domain runs ~$1.03/wk rather than $0.50. `operations-spend` inherits the same default, so a
> solo operator's Operations readout understates their crawl unless the plan is set. Pass the real
> `firecrawlPlan` when the operator's plan is known — and see §3f for why pooling changes this.

**By fleet profile** (one domain/week) — the dial the old model had no way to express:

| Profile | $/wk | vs default |
|---|---|---|
| `all-budget` | $0.179 | 0.47× |
| `budget-smart` | $0.200 | 0.53× |
| `balanced-smart` (default) | $0.381 | 1× |
| `performance-smart` | $0.388 | 1.02× |
| `all-frontier` | $2.175 | **5.70×** |

**Pricing consequence.** These are the **operator's own BYOK** costs, so platform margin is unaffected —
but they reframe the offer. The License is $3.99/wk (~$17/mo). A Director running **11 or more default
domains spends more on their own inference than on the licence**, while `all-frontier` is about $9.43/mo
for a single domain. The honest framing is *"the licence is the stable part of your bill"*, plus
in-product levers (breadth net, cadence, fleet profile) that make the large part controllable. The four
Watch levers are the ones to surface; sites are free and monitors are nearly free, so both should be encouraged.

---
Open on GitHub

Raw Markdown source