Data-Integrity Gate
Adopted 2026-06-10 as a hard doctrine change (see changelog-2026-06-10-hard-changes). A thesis cannot be marked complete until it passes this gate.
The problem this fixes: the audit-log is dominated by data failures, not reasoning failures — CPB earnings booked as CAG (#012), MP segment EBITDA $46.3M used instead of consolidated $36.6M (#013), SPY prior-day close recorded as current-day (#003), a "muted reaction" pulled from an aggregator without the 8-K being opened (#001). A deep-value thesis is only as good as its normalized-earnings input. The most likely way this kit produces a confident, expensive mistake is not bad logic — it is a clean computation on a wrong number reconstructed from a web search. This gate makes the number-sourcing as disciplined as the reasoning.
Rule 1 — Figure-level citation, not document-level
Every number that enters a valuation — revenue, EBITDA, NOPAT, net debt, share count, segment splits, capex, the price itself — carries a figure-level T1 citation: the document and the location (page, line, statement, or exhibit).
- Insufficient:
<span class="tier-t1" title="MP 10-K FY2025">T1</span> - Sufficient:
<span class="tier-t1" title="MP 10-K FY2025, Consolidated Statements of Operations, p.F-4: Adjusted EBITDA $36.6M">T1</span>
A document-level citation with no location is treated as uncited for gate purposes. The location is what makes the figure auditable and is exactly what was missing in audit #013.
Rule 2 — Route fundamentals through the EDGAR pipeline, not web reconstruction
Order of preference for any fundamental figure: <span class="tier-cal" title="source-routing order, rev. 2026-06-10 — EDGAR-only; paid connectors removed from the routing">AS-cal</span>
- EDGAR XBRL pipeline — the edgar-fundamentals-standard (resolver → companyconcept fetch →
edgar_normalize.py). Produces the uniform<TICKER>-fundamentals.json/.mdwith figure-level citations, restatement flags, and a hard entity gate. This is the default for all GAAP income statement, balance sheet, and cash-flow figures. - Primary filing read directly from SEC EDGAR (or the relevant regulator) for what XBRL does not carry: non-GAAP/adjusted figures, segment detail, guidance, footnotes. Adjusted figures must be cross-checked against the pipeline's GAAP-derived equivalents (the DERIVED rows), and the gap explained.
- Web search / aggregator — permitted only for (a) current price and intraday tape, and (b) surfacing the existence of a development, which must then be confirmed against (1) or (2) before any figure is recorded.
Reconstructing fundamentals from search snippets is the failure pattern behind most of the audit log. It is no longer acceptable for load-bearing figures. If EDGAR is unreachable, the work stops; figures are never backfilled from search.
Rule 3 — Entity confirmation is resolved, not hand-typed (kills the CPB-as-CAG class of error)
The entity block is generated by the EDGAR resolver (Step 1 of edgar-fundamentals-standard) and cached in _Tools/edgar/cik-registry.json — never written from memory. <span class="tier-cal" title="rev. 2026-06-10 — the original version of this rule hand-typed an example CIK for Conagra that was itself wrong (0001045309; actual 0000023217, confirmed via EDGAR atom 2026-06-10). Hand-typed entity data fails even inside the rule that mandates it.">AS-cal</span>
- Ticker ↔ CIK ↔ legal issuer name come from the resolver (e.g., CAG ↔ CIK 0000023217 ↔ CONAGRA BRANDS INC.).
- The filing date fits the fiscal calendar — the resolver returns fiscal-year-end (CAG: 05-31), so a print that doesn't fit the issuer's calendar is visible at resolution time.
- The figure is consolidated unless you explicitly intend a segment number — and if segment, it is labelled as such. Pipeline figures are structurally consolidated-only; segment numbers can only enter via Rule 2 path (2) with explicit labels.
- The normalizer hard-fails on any CIK mismatch between raw data and registry — wrong-company data cannot produce output.
This step directly closes audit #012 (CPB/Campbell print recorded under Conagra) and #013 (segment-vs-consolidated confusion).
Rule 4 — EPV input table reconciles to one consolidated source
The EPV/valuation model must contain an input-reconciliation block: every normalized-earnings input traced to a single consolidated source document, with the figure-level citation, and a check line that the inputs tie to that source. A thesis whose inputs are stitched together from multiple periods or multiple documents without a reconciliation note fails the gate.
Rule 5 — Price-and-date stamp
Every valuation states the price used and the as-of timestamp (price $X as of YYYY-MM-DD HH:MM ET, [source]). Benchmark and watchlist closes come from the single canonical closes file produced by the PM scan (see benchmark-sourcing-package); independent re-pulls that contradict the canonical file are an error, not a cross-check.
The gate (checklist — all must be ticked before verdict is assigned)
- Every valuation figure has a figure-level T1 citation (doc + location).
- All GAAP figures sourced from the generated
<TICKER>-fundamentalsfile (edgar-fundamentals-standard); non-GAAP/segment figures from the filing directly, cross-checked against DERIVED rows. - Entity block resolver-generated and present in
cik-registry.json(ticker ↔ CIK ↔ issuer, fiscal-calendar fit, consolidated-vs-segment labelled). - EPV input-reconciliation block ties to one consolidated source.
- Price-and-date stamp present and sourced from the canonical closes file where applicable.
If any box is unticked, the thesis stays pipeline_stage: workbench and the verdict is withheld. This gate sits between Gate 3 (valuation) and Gate 5 (kill criteria) in the 05-decision-framework — you cannot price what you have not sourced.
Frontmatter addition
data_integrity_gate: passed | pending on thesis.md. The thesis-builder may not set verdict while this is pending.
Linked
- edgar-fundamentals-standard — the EDGAR pipeline that executes Rules 2–3 mechanically (adopted 2026-06-10)
- sources-policy — the T1–T4 tier framework this operationalizes at figure level
- earnings-power-value-greenwald — the input table that must reconcile
- banded-valuation-standard — companion change: sourced inputs feed the band
- audit-log — entries #001, #003, #012, #013 are the failures this gate closes
- benchmark-sourcing-package — canonical closes file for prices
- 05-decision-framework — where the gate sits in the sequence
- changelog-2026-06-10-hard-changes — adoption record