ADR 0002 — Data honesty rules enforced in code
Date: 2026-09-07 · Status: accepted
- No fabricated data, ever (§192). Seeds contain taxonomy and index definitions only. Sales, listings,
prices, populations and market caps come from connectors with provenance (
source_url,raw_record_id,parser_version,connector_version). - Price-guide values (Scryfall/TCG APIs, guide pages) are stored as
price_observations, shown as "guide" numbers and weighted below transactions in RIV. They never populatesales. - A valuation is published only with
sample_size,confidence,low/highandcomputed_at. Below the evidence threshold the UI renders "Data unavailable" (<Unavailable/>). - Indices publish nothing until
minConstituentspriced constituents exist; coverage is stored per day. - Outliers are flagged (
status='flagged'|'excluded',flags[],audit_log) — never deleted. - Crawl time ≠ sale time: connectors must parse the source's own date; the fixture suite checks it.
- Historical FX is applied at the sale date; the display currency is a view-time conversion.