MeridiansMeridians

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:

StageCalls per firingCategory → tier (balanced-smart)
Watchresearch interpret + monitor checksextract → balanced
Opinioneditorial + attachment curationwrite → balanced
Tutoreditorial + merge graph + scene generationgenerateperformance
Projectreasoning graph + futures + readingplan / predict → balanced

Weekly, one domain, full Program, default cadence:

Stage$/wkShare
Watch$0.2464%
Tutor$0.0411%
Opinion$0.0412%
Project$0.0410%
Total$0.38$1.65/mo

Watch dominates: the crawl, and the reading of what it crawled. Tutor is the priciest per firinggenerateScenes 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 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$/moArticles/wkCredits/moFirecrawl plan
1$0.39$1.69150867Hobby
3$1.15$5.004502,600Hobby
5$1.92$8.327504,333Hobby
8$3.07$13.281,2006,933Standard

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$/wkvs default
all-budget$0.1790.47×
budget-smart$0.2000.53×
balanced-smart (default)$0.381
performance-smart$0.3881.02×
all-frontier$2.1755.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.