3d. Recurring — the Program stages, and what the shipped estimate omits
From the Meridians Wiki · Public · Maintained · joint
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.tsemits onlytask: "research"andtask: "projection"lines — itsTaskSpendtype 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-spendinherits the same default, so a solo operator's Operations readout understates their crawl unless the plan is set. Pass the realfirecrawlPlanwhen 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.