Coverage — Process & Spec
What this is. Coverage is chenzoo's equity-research desk: a home for AI-generated,
sell-side-style research on companies the desk cares about. Each covered name gets a
standing document set — filings digests, market research, a straw-man/steel-man thesis,
a full three-statement model, and an initiating-coverage report — stored as markdown in
this repo and rendered at /coverage. Documents are living: they get revised as new
filings and material events land.
What this is not. Investment advice. Everything here is a research exercise produced by AI agents from public information. Numbers for private companies are estimates built from third-party reporting and are labeled as such.
1. The document set
Every covered ticker lives at content/coverage/<slug>/ and carries exactly these files:
| File | Purpose | Written by |
|---|---|---|
meta.json | Machine-readable card: name, ticker/slug, status (public / private), sector, rating, fair value, as-of date | pipeline |
context.md | The living context file: company facts, capital structure, data sources used, open questions, and a dated changelog of every revision to the doc set | Opus |
filings.md | Disclosure digest: per-filing summaries and takeaways (Tier 1), or the best-available disclosure dossier (Tier 2 — see §2) | Sonnet |
research.md | Market work: TAM, competitive map, headwinds, tailwinds, KPIs and operating metrics, comps | Sonnet |
thesis.md | Straw man (bear), steel man (bull), and the desk's baseline view with the key swing factors | Sonnet |
model.md | Three-statement model (income statement, balance sheet, cash flow) with the full assumption stack and scenario deltas | Sonnet |
coverage.md | The initiating-coverage report — the flagship document synthesizing everything above | Opus |
Later revisions append to coverage.md (dated "Coverage update" sections) and to the
changelog in context.md; they never silently rewrite history.
2. Disclosure tiers
The ingestion step depends on what the company actually files:
- Tier 1 — SEC reporting company. Pull the latest S-1 (if recent), 10-K, 10-Qs since the 10-K, and material 8-Ks from EDGAR. Convert each to a markdown digest: what it says, what changed, takeaways, and the numbers that feed the model. Actuals in the model come only from filings.
- Tier 2 — private / pre-IPO (e.g. SpaceX before its June 2026 listing). No filings exist, so
filings.mdbecomes a disclosure dossier: tender-offer valuations, credibly-reported financials (WSJ, Bloomberg, The Information, etc.), regulatory filings that do exist (FCC, FAA, ITU), government contract awards, and stated company figures. Every number carries a source and date, and the model's "actuals" columns are explicitly labeled estimates. - Tier 3 — foreign private issuer. Same as Tier 1 with 20-F/6-K equivalents.
A name can move tiers (an IPO moves SpaceX from Tier 2 to Tier 1); when it does, the model
is rebased to filed actuals and the delta between desk estimates and reality is written up
in context.md — that gap is part of the record.
3. Pipeline
Initiation runs as an orchestrated multi-agent workflow. Analyst tasks run on Sonnet; long-form writing runs on Opus — models are pinned per stage, never inherited.
- Disclosure sweep (Sonnet, parallel): identify the tier, pull/digest filings or build the dossier, extract the financial history.
- Market research (Sonnet, parallel lenses): industry/TAM, competition, headwinds, tailwinds, operating KPIs, valuation comps.
- Model build (Sonnet): segment-level revenue drivers → income statement → balance sheet → cash flow, with an explicit assumption table and bear/base/bull scenarios. The balance sheet must balance and the cash flow must tie to the change in cash.
- Thesis (Sonnet): straw man and steel man argued at full strength, then the baseline view with the 3–5 swing factors that would change it.
- Writing (Opus): the initiating-coverage report and the context file, synthesized from stages 1–4.
- Verification (Sonnet): cross-doc consistency check — numbers agree across documents, the model ties, claims carry sources. Failures go back to the responsible stage.
4. Maintenance protocol
On a new filing or material event for a covered name:
- Digest the filing into
filings.md(newest first). - Reconcile the model: restate actuals, adjust forward assumptions, note every changed assumption with its rationale.
- Re-test the thesis: does the event feed the straw man or the steel man? Move the baseline only with a written justification.
- Append a dated Coverage update section to
coverage.md. - Log everything in the
context.mdchangelog and bumpmeta.json's as-of date and (if changed) rating/fair value.
5. Model conventions
- Fiscal years labeled
FY24, estimates suffixedE(FY26E). Units stated in every table header ($M unless noted). - Revenue is built bottoms-up from segment drivers (e.g. launches × price, subscribers × ARPU), never as a bare growth rate on the top line.
- Assumption tables state the driver, the value per year, and the one-line rationale.
- Ratings: Overweight / Neutral / Underweight against a 12-month fair-value estimate (a fair-value range for Tier 2 names, since there is no traded price).
- Sourcing rule: any specific figure must carry an inline source and date on first use.
6. Storage & rendering
- Source of truth is this repo:
content/coverage/PROCESS.md(this file) pluscontent/coverage/<slug>/*. scripts/build-coverage.mjscompiles the markdown intolib/coverage/docs.ts(generated, never hand-edited), which the fully-static pages underapp/coverage/render — same pattern as revops. Re-run the script after editing any content file.- Adding a name = add the folder +
meta.json, run the pipeline (§3), run the build script, redeploy. No database.
7. Coverage roster
| Slug | Name | Tier | Initiated |
|---|---|---|---|
spacex | Space Exploration Technologies Corp. (Nasdaq: SPCX) | 1 — public since the 2026-06-12 IPO | 2026-07 |
A note on this name: coverage was scoped when SpaceX was assumed private (Tier 2). The desk's own disclosure sweep found the company had listed on Nasdaq as SPCX on 2026-06-12 (post the February 2026 xAI merger), so the initiation was rebuilt Tier 1 — anchored to the S-1/424B4 and 8-Ks, with the call expressed against the traded price. The tier-migration protocol above got exercised on day one.