Decision
Each stage writes a compact format for fast resume and a spreadsheet for human inspection, keyed by source snapshot and anchor date.
Context
A planner asking why an item was excluded needs to see the intermediate state, and a re-run needs to load it quickly.
Alternatives, and why not
- One machine format, with a viewer if anyone asksNobody asks. They just stop trusting the output, and the trust is the product.
Rationale
The two readers have genuinely different needs, and writing both costs almost nothing at this data size. Keying on snapshot and anchor date means a checkpoint is unambiguously attributable to a run.
What it cost
Duplicate storage per stage, which is trivial relative to the value of a planner being able to open the intermediate state.
Outcome
Exclusions are explainable without re-running anything.