Verification Report¶
Version 10.0 | 2026-06-11 — verification gate for the v10.0 Call-line-item, UBPR, edit-history, conditional-engine, and CI-enforcement layer. Repository: github.com/andenick/bank-data-dictionary Earlier gates (v9.0, v8.0, v7.0, v6.x, v5.0) are retained below as the historical record.
v10.0 — Call line items, UBPR derivations, edit history, CI-enforced validity (2026-06-11)¶
v9.0 brought both report families from token-validity to empirical validity. v10.0 closes the remaining breadth-and-operationalization gaps: it ships per-schedule Call Report line-item CSVs (parity with the Y-9C side), validates the UBPR derivation formulas against real published UBPR values, ships the official edit history across 30 taxonomy cycles, adds a conditional/compound testing engine that drives every registry row to an explained verdict, and makes 100% token validity structurally enforced in CI rather than habitual. The registry grew additively from 7,508 to 7,539 relationships with no schema breaks.
Headline results¶
| Metric | v9.0 | v10.0 |
|---|---|---|
| Report families with shipped per-schedule line-item CSVs | FR Y-9C only | FR Y-9C + Call Report — 7 new CSVs (RC 48 · RI 108 · RC-B 52 · RC-C 79 · RC-E 55 · RC-N 93 · RC-R 361), each row triple-attested (official 2025-12 grid + CDR taxonomy presentation linkbase + 1.9B-row warehouse) |
| Report families empirically validated | FR Y-9C + Call Report | + UBPR — taxonomy v181 + User's Guide; 4,207 derivation formulas parsed (zero silent drops); 31 headline ratios validated at 99.77–100% vs real published UBPR values (~44k bank-quarters each, 2015–2026) |
| Registry relationships | 7,508 | 7,539 (y9c 2,330 · call 5,162 · cross_source 16 · ubpr 31) |
| Conditional/compound rows | documented, untested | conditional/compound engine (IF/THEN→CASE + AND-splitting + constant coefficients): 448 rows became testable → 246 CONFIRMED + 61 CONFIRMED_CURRENT + 4 LOW_N_PASS; adjudicated to zero unexplained (81 DATA_GAP · 48 CONDITION_NEVER_MET · 7 QUALITY_TOLERANCE · 7 VINTAGE_CONFIRMED · 1 new OFFICIAL_EDIT_UNMET). 2,158 stay GRAMMAR_DOC |
| Official edit history | 30 cycles archived, unparsed | csv/EDIT_HISTORY.csv — 15,622 distinct edit labels across 30 cycles (2001–2026); 4,759 retired, 1,212 introduced 2020+; rulebook ~quintupled. Registry call rows carry first_official_cycle |
| OFFICIAL_EDIT_UNMET findings | 7 | 8 (the new one: an RCON-side phantom decomposition surfaced by the conditional engine) |
| Token validity | 6,475 / 6,475 (100%) | 11,126 / 11,126 (100%) — UBPR-namespace tokens validate vs the official UBPR taxonomy concept set; now CI-enforced (scripts/ci_audit.py fails the build on any invalid token) |
| Schema changes | none (additive) | none — additive CSVs + registry growth only |
Call Report line-item CSVs — triple attestation¶
The seven new CALL_* CSVs mirror the Y-9C schedule convention. Every line-item row carries three
independent attestations: (1) the official 2025-12 per-form/column/code grids; (2) the CDR XBRL
taxonomy presentation linkbase line structure (a free second attestation of position and code); and
(3) first/last-seen in the 1.917-billion-row bulk Call warehouse. Zero rows are unresolved.
UBPR — what was verified, and an honest scope statement¶
The 31 headline ratios (ROA, ROE, NIM, efficiency, provision, charge-off, past-due, nonaccrual,
allowance, net-loans/assets, net-loans/deposits, and the capital ratios) were recomputed from Call/UBPR
inputs and compared to the real published UBPR values per bank-quarter, all validating at
99.77–100%. The whole 4,099-concept universe is cataloged with its parsed derivation, but only
the 31 headline ratios are independently re-derived; capital adequacy ratios are regulator
passthroughs (RWA is not recomputed from RC-R primitives), validated as the documented ×100
relationship within the ±0.5 pp rounding band. 361 of 4,207 formulas are deeply nested conditionals
preserved raw rather than guessed at. Full method and limitations: docs/UBPR_GUIDE.md.
Adversarial rigor — defect catch #3 (registry truncation)¶
The v8.0 adjudication caught a harness bug that read A − (B + C) as A + B + C; v9.0 caught a
dropped-multiplication hazard (X = Y * 0 read as X = Y). v10.0's catch is a registry truncation
defect: one official-edit expression had been cut at ~588 characters when ingested, silently
dropping the tail of a long decomposition so the registered identity was incomplete. It surfaced as an
unexpected empirical "failure"; tracing it to the source rather than the data showed the truncation,
and the expression was repaired against the official edit text. After repair, two rows flipped to
confirmed. This continues the discipline of tracking a failing empirical result to its true source
before recording a verdict — the defect was in our own ingestion, not the official math.
UBPR caption-mislabel finding¶
Calibrating the UBPR derivations surfaced that the taxonomy's presentation captions mislabel some
concepts — and the User's Guide is authoritative. The clearest case: UBPR7408 reads like a
capital-adequacy ratio from its taxonomy caption, but the User's Guide defines it as a 12-month
growth rate ("Tier One Capital 12-month growth rate"), as is UBPRE635. They validate as parsed but
must not be read as adequacy measures. The repo follows the User's Guide where the two disagree.
CI guard — validity is now structurally enforced¶
100% token validity is no longer a per-release habit. scripts/ci_audit.py runs in CI on every push
and fails the build on any invalid token (a slim code-set extract is committed under ci/ so the
check needs no external download). A one-command _rebuild/quarterly_refresh.py (dry-run verified)
refreshes MDRM, taxonomy, registry deltas, and the audit; the runbook is in _rebuild/MAINTENANCE.md.
v9.0 — Official Call Report edits, validated against 1.9 billion filing rows (2026-06-11)¶
v8.0 brought the FR Y-9C from token-validity to empirical validity. v9.0 does the same for the Call Report and adds an independent cross-source check. We acquired the official FFIEC Call Report edit checks and calculation linkbases, structured them into the relationship registry, and tested every machine-testable one against the full bulk Call Report history — then cross-validated 16 core concepts against the FDIC's independently-collected SDI. The registry grew additively from 2,330 to 7,508 relationships with no schema breaks this release.
Headline results¶
| Metric | v8.0 | v9.0 |
|---|---|---|
| Filing universes empirically tested | FR Y-9C | FR Y-9C + Call Report (031/041/051) |
| Registry relationships | 2,330 | 7,508 (y9c 2,330 · call 5,162 · cross_source 16) |
| Official-edit source | FR Y-9C edit checklist | + official FFIEC Call Report edit checks & calculation linkbases (CDR XBRL taxonomy, cdr.ffiec.gov) — 3,615 edits/form + 243 calc identities, forms 031/041/051, cycle 2026-03-31 (v294); 30 historical cycles archived |
| Rows tested vs real filings | 332 (208M Y-9C rows) | + 2,464 Call relationships vs 1.917 BILLION Call rows (2001Q1–2026Q1); 63 Y-9C intraseries via LAG() |
| Cross-source concordance | — | 16/16 concepts CONFIRMED at 99.5–99.97% vs FDIC SDI (up to 667,551 bank-quarters each) |
| Registry status distribution | (v8 Y-9C only) | CONFIRMED 2,564 · CONFIRMED_CURRENT 83 · QUALITY_TOLERANCE 36 · DATA_GAP 48 · NOT_IN_BULK 134 · CONDITIONAL_DOC 224 · OFFICIAL_EDIT_UNMET 7 · not_testable 4,412 — 0 pending/unexplained |
| Token validity | 4,564 / 4,564 (100%) | 6,475 / 6,475 (100%) (after whitelisting the three form-name string literals from the official form-number edit) |
| Schema changes | many CSVs rebuilt (breaking) | none — additive registry growth + new statuses only |
Acquisition¶
The official Call Report edits are not exposed as a bulk download on the bot-walled human-facing
forms site (www.ffiec.gov); v9.0 obtained them instead from the CDR public taxonomy download
(cdr.ffiec.gov), whose XBRL formula linkbases are the same machine-readable edits the regulators
use to validate filings. Parsing the linkbases directly — rather than re-deriving edits from the
human-readable instructions — means every tested Call relationship traces to an official edit id or
calculation-linkbase parent.
Empirical validation against real filings¶
All 2,464 machine-testable Call relationships were evaluated against 1.917 billion rows of
bulk Call Report filings (2001 Q1 – 2026 Q1) — 1,392 sign/bound tests via one bulk scan plus
1,072 identity/bound tests over a per-code extract — with the same max($1,000, 0.1%)
tolerance used for the Y-9C. Verdicts (call scope): 2,225 CONFIRMED/CONFIRMED_CURRENT, 45 LOW-N
pass, 47 DATA_GAP, 23 QUALITY_TOLERANCE, 117 NOT_IN_BULK, 7 OFFICIAL_EDIT_UNMET — zero
unresolved. Separately, 63 FR Y-9C YTD-monotonicity (intraseries) edits were confirmed via a
LAG() window (62 CONFIRMED + 1 CONFIRMED_CURRENT); 221 conditional intraseries edits are
documented as CONDITIONAL_DOC. Full adjudication: _rebuild/empirical/ADJUDICATION_V9.md.
Cross-source concordance (Call Report vs FDIC SDI)¶
Sixteen core concepts were checked between the Call Reports and the FDIC's independently-collected
SDI, bank-quarter by bank-quarter, over up to 667,551 bank-quarters each. All 16 concord at
99.5–99.97%. The concordance corrected two definitional mappings (see below). The table is in
_rebuild/empirical/RESULTS_cross_source.csv:
| Concept | FDIC var | Call expression | Bank-quarters | Agreement |
|---|---|---|---|---|
| Total assets | ASSET |
RCFD2170 / RCON2170 |
667,551 | 99.84% |
| Total liabilities | LIAB |
RCFD2948 / RCON2948 |
666,523 | 99.55% |
| Total equity | EQ |
RCFD3210 / RCON3210 |
666,679 | 99.72% |
| Total deposits | DEP |
RCON2200 + RCFN2200 |
659,789 | 99.97% |
| Net loans & leases | LNLSNET |
RCFD2122 − RCFD3123 |
656,563 | 99.89% |
| Net income | NETINC |
RIAD4340 |
666,230 | 99.75% |
Two corrected definitional mappings (findings). (1) Total equity → Call 3210, not G105:
FDIC EQ excludes minority interest, so it maps to 3210 (99.72%); the minority-interest-inclusive
G105 scored only 98.6%. (2) Net loans → 2122 − 3123, not B529: FDIC LNLSNET is loans net
of unearned income minus the allowance (99.89%), not the Schedule RC-C item-12 net total B529
(which scored only 77.8%). Both are recorded in json/cross_form_mapping.json.
Adversarial rigor — parser-hazard catch #2¶
The v8.0 adjudication caught a harness bug that read A − (B + C) as A + B + C. v9.0 caught a
second silent parser hazard of the same family: the side-parser tokenized only +/-, so a
multiplication was dropped — the official 0%-conversion edit RCFDS541 = RCFDS540 * 0 was read
as S541 = S540 (≈0.35–0.67 pass) instead of the correct S541 = 0. The fix rewrote the affected
registry expressions to the faithful form, and they re-tested at 1.0000 (REL_5717,
REL_5718). The parser was hardened to guard against dropped multiplication. This continues the
v8.0 discipline of tracking a failing empirical result to its true source before recording a
verdict.
OFFICIAL_EDIT_UNMET — seven edits kept as findings¶
Seven official edits do not hold even on the correct window/population and are kept deliberately as
research findings (full detail in _rebuild/empirical/ADJUDICATION_V9.md). Headlines: (1) a
phantom decomposition — the official calc linkbase decomposes RCONM288 into
RCONL191 + RCONL192, codes with zero observations in all public bulk data, while M288 is
reported directly (51,992 filings); not empirically derivable, not enforced. (2) An RC-R Part II
securitization bound (R7020.6507) whose headline 0.983 is zero-filer-dominated; among active
securitizers (n=3,493) it holds at only 0.452 — a real, substantial violation population. The
other five are soft RC-O / RI-C-RC-C CECL quality bounds (0.66–0.94) whose violation rates are the
finding.
Token audit¶
Repo-wide token validity holds at 6,475 / 6,475 (100%) after whitelisting the three form-name string literals (the verbatim "031"/"041"/"051" form names) flagged by the official form-number edit — a documented false-positive, not an edit.
v8.0 — All 22 schedules, official-spec verification, and empirical validation (2026-06-11)¶
v8.0 moved the dictionary from token validity (every code exists in MDRM) to conceptual and empirical validity (every code means the right thing, and every identity actually holds in real filings). Three things were verified this round: a conceptual sweep of every schedule against the official field spec, the addition of 8 schedules to complete the Y-9C set, and an empirical test of every machine-testable relationship against 208 million rows of real filings.
Headline results¶
| Metric | v7.0 | v8.0 |
|---|---|---|
| FR Y-9C schedules detailed | 14 | 22 (all) — 8 added: HC-E, HC-I, HC-M, HC-P, HC-V, HI-A, HI-B, HI-C |
| Schedule verification basis | official FR Y-9C form | official FR Y-9C Reporting Central field specifications (March 2026) |
| Code-token validity | 100% (2,426 / 2,426) | 100% (4,564 / 4,564) |
| Reconciliation relationships | curated set | 2,330 in RELATIONSHIP_REGISTRY.csv (official edit checklist + curated) |
| Machine-testable relationships tested vs real filings | — | 332 (vs 208M rows of FR Y-9C bulk data, 13,668 BHCs, 1986 Q3–2025 Q4) |
| Empirical verdicts | — | 264 CONFIRMED · 34 CONFIRMED_CURRENT · 13 QUALITY_TOLERANCE · 17 NOT_IN_BULK · 3 CONDITIONAL_DOC · 1 DATA_GAP (0 unexplained) |
Conceptual sweep (8 new schedules + every-code re-verification)¶
Every FR Y-9C schedule was rebuilt/re-verified against the official March-2026 field
specifications (Reporting Central Appendix A), not merely against MDRM token presence. Eight
schedules were newly authored to their official line-up — HC-E (deposit liabilities),
HC-I (insurance underwriting), HC-M (memoranda), HC-P (1-4 family mortgage banking),
HC-V (variable interest entities), HI-A (changes in equity capital), HI-B
(charge-offs and changes in allowance), HI-C (ALLL disaggregation) — each with a matching
CSV and guide. The sweep additionally corrected hundreds of wrong-concept / wrong-vintage codes
across the pre-existing schedules; per-fix counts are recorded in the
CONCEPT_FIXES_* attestations. Token validity held at 100% (4,564 / 4,564).
Empirical validation against real filings¶
The official FR Y-9C edit checklist (2,195 current edits) was parsed and structured, then
merged with curated identities and component hierarchies into a single relationship registry of
2,330 relationships. Every relationship resolving to codes present in the bulk data —
332 after adjudication — was evaluated as an SQL aggregate over Federal Reserve bulk BHCF
(FR Y-9C) data, every quarter 1986 Q3 → 2025 Q4, 13,668 holding companies,
~208 million reported cell-values, with a tolerance of max($1,000, 0.1%). Verdict
distribution: 264 CONFIRMED (≥99% across the full history), 34 CONFIRMED_CURRENT
(≥99% in 2021+; older vintages differ by form revision), 13 QUALITY_TOLERANCE (Fed
"should"-edits with documented rates), 17 NOT_IN_BULK, 3 CONDITIONAL_DOC
(advanced-approaches sub-population), 1 DATA_GAP. Zero rows remain in an unexplained
rejected/weak/untestable state. Full methodology and showcase identities are in
EMPIRICAL_VALIDATION.md; per-row verdicts (with empirical_n and
empirical_pass_rate) are in csv/RELATIONSHIP_REGISTRY.csv.
Adversarial rigor — two anecdotes from the adjudication¶
Two findings during adjudication illustrate that the empirical pass was genuinely adversarial, not a rubber-stamp:
-
The harness parse-bug catch. Several official edits of the form
A − (B + C) = Tinitially came back as rejected. Investigation traced the failure to a bug in our own test harness, not the data: the side-parser read a minus sign in front of a parenthesised group as a plus (A − (B + C)evaluated asA + B + C), silently dropping the distributed negation. The fix was to write each affected registry expression in the flattenedA − B − Cform the harness parses correctly — preserving the true official math. Seven relationships (e.g. the HI-8a validity edit, the HI-A roll-forward, the HI-B recovery edits, an HC-R(II) identity) were re-tested after the fix and all confirmed. This is the difference between "the identity is wrong" and "our tester was wrong" — and we checked. -
The JJ33 provision conflict. A flagged conflict around
BHCKJJ33was resolved against MDRM and the field spec:BHCKJJ33= "provisions for credit losses on financial assets" = HI item 4 (the CECL provision), and bothHI_INCOME_STATEMENT.csv(item 4 = JJ33) andHC_B_SECURITIES.csv(which does not contain JJ33) were already correct. The actual defect was three fabricated hierarchy edges inSCHEDULE_COMPONENT_HIERARCHY.csvthat wrongly tied HC-B Memorandum 5 to the HI provision code; those edges and the derived registry row were removed. The lesson: a failing empirical test was tracked to its real source (a bad hierarchy edge) rather than "fixed" by editing a correct schedule cell.
v7.0 — Legacy-schedule rebuild and 100% code validity (2026-06-11)¶
Headline results¶
| Metric | v6.3 | v7.0 |
|---|---|---|
| Code-token validity (repo-wide audit vs Fed MDRM) | 87% | 100% (2,426 / 2,426 VALID; 0 NOT_IN_MDRM; 0 UNKNOWN_MNEMONIC) |
| MDRM crosswalk (verified-by-construction) | 984 codes | 1,239 codes |
| Remediation log | 323 rows, 80 UNRESOLVED | 427 rows, 0 UNRESOLVED (175 FIX / 188 REMOVED / 58 DISCONTINUED / 6 FALSE_POSITIVE) |
| MDRM reference snapshot | ≥2020 vintage | June 2026 download (87,690 records; latest item effective 2026-06-30) |
What was rebuilt (from the official FR Y-9C form, not patched)¶
- Schedule HC-H (Interest Sensitivity). The prior CSV printed a 14-row × 7-maturity-bucket
grid whose codes do not exist in MDRM. The real HC-H is a current schedule of five
single-column items —
BHCK3197,BHCK3296,BHCK3298,BHCK3408,BHCK3409— collected since 1986. This corrects v6.3's erroneous claim (repeated below in the historical sections) that HC-H was "removed ~2001": the schedule was never discontinued; the fabricated grid never existed. - Schedule HC-K (Quarterly Averages). Rebuilt to the verified current grid (items 1.a–11,
incl. the BHDM loan sub-items and conditional trading-assets item 4.a) plus four genuine
end-dated historical items (
BHCK3515/3516/3402/3518). The old CSV's contradictory double-assignments (BHCK3368as both ALLL and total assets;BHCK3365as both securities and fed funds) are gone. - Schedule HC-Q (Fair Value). Rebuilt to the real five-column layout (total fair value /
netting / Level 1 / Level 2 / Level 3, G-series codes effective 2009-06-30,
BHCYJA36from 2018, F-series deposit/commitment rows from 2007–2008), replacing a fabricated four-columnBHCLgrid with a wrong 2013 start date. - Schedule HC-G (Other Liabilities). Rebuilt to the official four-line structure
(
BHCK3049net DTL /BHCKB557ACL-OBS /BHCKB984other /BHCK2750total); the prior CSV mirrored the Call Report RC-G accrued-interest layout and misassigned codes.
Evidence standard¶
Every code in the rebuilt schedules carries two independent attestations, recorded in per-code provenance files: (1) exact presence in the Fed MDRM with matching item name and validity dates; (2) observation as an actual reported column in Federal Reserve bulk BHCF (FR Y-9C) data, 1986–2021 (e.g. the five HC-H codes appear continuously from 1986-Q3 through 2021-Q1). A repo-wide "apply" campaign then cleared every remaining invalid token: codes with verified 1:1 successors were fixed; caption totals (e.g. Y-9C total deposits), computed lines (e.g. NII after provision), and retired-without-successor concepts are stated honestly as code-less instead of carrying invented codes. Tokenizer false positives (form names and NIC attribute names inside verbatim Fed description text) are whitelisted with documented proof in the audit script rather than edited, to preserve official text verbatim.
v6.0 rebuild — what was verified this round¶
The v6.0 rebuild expanded the repo from an FR Y-9C-centric reference into a full collections + sub-schedule catalogue (42 collections, 265 enumerated schedules/templates) plus a NIC entity layer, identifier semantics, and a larger MDRM/namespace catalogue. This section records the verification performed on that rebuild; the original 100-code MDRM verification follows unchanged from §"Detailed Verification Results" onward (with the two line-item fixes applied).
Mechanical validation (PASS)¶
Mechanical validation re-run after edits: csv_problems=0, json_problems=0, broken_links=0. All CSVs parse with consistent column counts; all JSON files parse; all internal markdown links resolve.
Count reconciliations (PASS)¶
| Check | Result |
|---|---|
| Call Report schedules — distinct lettered | 27 / 24 / 19 (031 / 041 / 051) |
| Call Report schedules — catalog part-rows | 30 / 27 / 22 (= distinct + 3 split Part I/II rows: RI-B, RC-C, RC-R) |
Pillar 3 templates/tables in SCHEDULES_CATALOG.csv |
77 (no invented, no duplicate ids) |
collections.json Pillar 3 schedule_count |
77 (matches CSV) |
The +3 Call Report gap is fully explained by Part I/II granularity — no invented schedules. A clarifying note was added to both CALL_REPORT_GUIDE.md and COLLECTIONS_CATALOG.md.
Pillar 3 audit against BCBS DIS / d455 (PASS)¶
All 77 ids map to genuine Basel disclosure templates/tables. Two ids that looked suspicious were adversarially checked and confirmed real: CDC = "Capital distribution constraints"; CRB-A = "Additional disclosure: prudential treatment of problem assets". MR4 is the legacy pre-FRTB VaR-backtesting template, retained for the transition period and noted as a version-variant. No removals were warranted; the "~55" figure in some summaries counts only quantitative templates or one framework vintage.
Line-item fixes applied to MDRM_MASTER_COMPLETE.csv¶
| Concept | Field | Was | Now | Basis |
|---|---|---|---|---|
| RWA (BHCAA223) | y9c & call line | Part II-26 | Part II-31 | RC-R/HC-R Part II item 31 = Total RWA (FDIC RC-R Part II, FR Y-9C HC-R) |
| TOTAL_DEPOSITS (no atomic code) | y9c & call line | 13 | 13.a + 13.b | item 13 is a caption: 13.a domestic (BHDM6631 + BHDM6636) + 13.b foreign (BHFN6631 + BHFN6636) |
| NET_INCOME (BHCT4340) | HI / RI line | 14 | 14 (unchanged) | RIAD4340 "must equal Schedule RI item 14" — the v5.0 "should be item 12" recommendation is REFUTED |
BHCK correction (applied in v6.0 content)¶
The legacy MDRM_PREFIX_DEFINITIONS.csv labelled BHCK as "domestic operations only". The FR Y-9C heads its consolidated statements with BHCK (BHDM = domestic-only). v6.0 docs treat BHCK = consolidated; see COLLECTIONS_CATALOG.md repo-correction note. (The legacy per-prefix-count table later in this report still carries the old "domestic" wording and is left as a historical artifact.)
Adversarial spot-check (14 facts, all CONFIRMED)¶
| # | Claim | Verdict | Source |
|---|---|---|---|
| 1 | FR Y-11 OMB = 7100-0244 | CONFIRMED (form PDF header; note: 2025 migration toward 7100-0073) | federalreserve.gov FR_Y-11 form |
| 2 | FFIEC 002 OMB = 7100-0032 | CONFIRMED (002 & 002S) | reginfo.gov / ffiec.gov |
| 3 | FR Y-10 OMB = 7100-0297 | CONFIRMED | federalreserve.gov FR_Y-10 form |
| 4 | FFIEC 101 has Schedules A–S | CONFIRMED | ffiec.gov FFIEC 101 instructions |
| 5 | FR Y-15 has Schedules A–G | CONFIRMED | federalreserve.gov FR Y-15 instructions |
| 6 | Pillar 3 CDC is a real template | CONFIRMED | bis.org d455 (Capital distribution constraints) |
| 7 | Pillar 3 CRB-A is a real table | CONFIRMED | bis.org d455 (problem-assets disclosure) |
| 8 | RWA = HC-R/RC-R Part II item 31 | CONFIRMED | fdic.gov RC-R Part II |
| 9 | RIAD4340 = RI item 14 (not 12) | CONFIRMED — refutes the v5.0 defect claim | fdic.gov RI instructions |
| 10 | HC/RC deposits 13.a = domestic offices | CONFIRMED | federalreserve.gov FR Y-9C HC |
| 11 | NIC ENTITY_TYPE BHC/FBK/NAT/SMB | CONFIRMED | ffiec.gov NPW Data Dictionary |
| 12 | BHCK = consolidated (FR Y-9C) | CONFIRMED | FR Y-9C user guide / MDRM |
| 13 | FR Y-9C carries HI-A/HI-B/HC-E/HC-I/HC-M/HC-P/HC-V | CONFIRMED | FR Y-9C form (22-schedule set) |
| 14 | NIC TRNSFM_CD (charter-discontinued / failure codes) | CONFIRMED | ffiec.gov NPW Data Dictionary |
Known limitations / UNVERIFIED items (carried forward)¶
- Pillar 3 TLAC1/TLAC2/TLAC3 — US-jurisdiction inclusion UNVERIFIED.
- Pillar 3 rows cite
d455.pdfas the source for all 77, though some predate d455 (d309/d356) — a provenance simplification, not an error. - FFIEC 101 Schedules H/I/J (counterparty/netting) and retail M/N exact titles UNVERIFIED.
- FR 2052a supplemental table S.L label UNVERIFIED.
- FFIEC 002 / 009 Schedule C Part II exact titles UNVERIFIED.
- FR Y-9ES asset cutoff; FR Y-9CS schedule structure UNVERIFIED.
- Call Report RC-R RCOA-vs-RCFA per-line column assignment not line-confirmed.
- FFIEC 031/041/051, UBPR, FDIC/NCUA/OCC/SEC/HMDA OMB numbers shown n/a (not stated in sources).
- MDRM "~87,000 codes" is an order-of-magnitude estimate; SEC↔RSSD crosswalk not officially published.
Legacy MDRM Code Verification (v5.0, 2026-01-28)¶
The following is the original 100-code MDRM verification, retained for provenance. The RWA and TOTAL_DEPOSITS line-item references have been corrected in the CSV per the v6.0 fixes above; the NET_INCOME "should be item 12" recommendation has been refuted (correct value is item 14).
Total Codes Verified: 100 Source: Federal Reserve MDRM Data Dictionary (https://www.federalreserve.gov/apps/mdrm/data-dictionary)
Verification Results Summary¶
| Category | Count | Percentage |
|---|---|---|
| Verified - Current | 89 | 89% |
| Verified - Legacy | 6 | 6% |
| Minor Discrepancy | 3 | 3% |
| Requires Update | 2 | 2% |
| TOTAL | 100 | 100% |
Methodology¶
Verification Process¶
- Prefix Validation: Each MDRM prefix validated against MDRM_PREFIX_DEFINITIONS.csv
- Format Check: Confirmed all codes follow [PREFIX][4-char] format
- Cross-Reference: Codes verified against official FR Y-9C form instructions
- Date Validation: Start/end dates compared to regulatory implementation timelines
- Description Review: Descriptions compared to official MDRM definitions
Data Sources¶
| Source | Usage |
|---|---|
| Federal Reserve MDRM Data Dictionary | Primary verification source |
| FR Y-9C Instructions (March 2024) | Schedule/line item verification |
| FFIEC Call Report Instructions | Call Report MDRM cross-reference |
| Federal Register Notices | Date range verification |
Detailed Verification Results¶
Schedule HC-D: Trading Assets and Liabilities (24 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| TRADING_ASSETS_TOTAL | BHCT3545 | HC-D | 12 | VERIFIED | Total trading assets |
| TRADING_LIAB_TOTAL | BHCT3548 | HC-D | 15 | VERIFIED | Total trading liabilities |
| DERIV_POS_FV | BHCT3543 | HC-D | 11 | VERIFIED | Derivatives positive FV |
| DERIV_NEG_FV | BHCT3547 | HC-D | 14 | VERIFIED | Derivatives negative FV |
| TREAS_SECURITIES | BHCM3531 | HC-D | 1 | VERIFIED | U.S. Treasury securities |
| AGENCY_SECURITIES | BHCM3532 | HC-D | 2 | VERIFIED | Agency securities |
| MUNI_SECURITIES | BHCM3533 | HC-D | 3 | VERIFIED | Municipal securities |
| MBS_GNMA | BHCKK197 | HC-D | 4.a.(1) | VERIFIED | GNMA MBS pass-through |
| MBS_FNMA_FHLMC | BHCKK198 | HC-D | 4.a.(2) | VERIFIED | FNMA/FHLMC MBS |
| MBS_OTHER_RESI | BHCKK199 | HC-D | 4.b | VERIFIED | Other residential MBS |
| MBS_CMBS_AGENCY | BHCKK200 | HC-D | 4.c.(1) | VERIFIED | Agency CMBS |
| MBS_CMBS_OTHER | BHCKK201 | HC-D | 4.c.(2) | VERIFIED | Other CMBS |
| STRUCTURED_PRODUCTS | BHCKHT62 | HC-D | 5.a | VERIFIED | Structured products (post-2018) |
| OTHER_DEBT_SECURITIES | BHCKK202 | HC-D | 5.b | VERIFIED | Other debt securities |
| LOANS_1_4_FAMILY | BHCKHT63 | HC-D | 6.a | VERIFIED | 1-4 family loans (post-2018) |
| LOANS_OTHER_RE | BHCKHT64 | HC-D | 6.b | VERIFIED | Other RE loans (post-2018) |
| LOANS_CI | BHCKF614 | HC-D | 6.c | VERIFIED | C&I loans |
| LOANS_CONSUMER | BHCKHT65 | HC-D | 6.d | VERIFIED | Consumer loans (post-2018) |
| LOANS_OTHER | BHCKF618 | HC-D | 6.e | VERIFIED | Other loans |
| OTHER_TRADING_ASSETS | BHCM3541 | HC-D | 9 | VERIFIED | Other trading assets |
| SHORT_EQUITY | BHCKG209 | HC-D | 13.a.(1) | VERIFIED | Short positions - equity |
| SHORT_DEBT | BHCKG210 | HC-D | 13.a.(2) | VERIFIED | Short positions - debt |
| SHORT_OTHER | BHCKG211 | HC-D | 13.a.(3) | VERIFIED | Short positions - other |
| OTHER_TRADING_LIAB | BHCKF624 | HC-D | 13.b | VERIFIED | Other trading liabilities |
HC-D Verification Summary: All 24 codes verified against current FR Y-9C instructions.
Schedule HC-L: Derivatives and Off-Balance Sheet (50 codes)¶
Notional Amounts - Futures (4 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| IR_FUTURES_NOTIONAL | BHCK8693 | HC-L | 11.a | VERIFIED | IR futures notional |
| FX_FUTURES_NOTIONAL | BHCK8694 | HC-L | 11.b | VERIFIED | FX futures notional |
| EQUITY_FUTURES_NOTIONAL | BHCK8695 | HC-L | 11.c | VERIFIED | Equity futures notional |
| COMMODITY_FUTURES_NOTIONAL | BHCK8696 | HC-L | 11.d | VERIFIED | Commodity futures notional |
Notional Amounts - Forwards (4 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| IR_FORWARDS_NOTIONAL | BHCK8697 | HC-L | 12.a | VERIFIED | IR forwards notional |
| FX_FORWARDS_NOTIONAL | BHCK8698 | HC-L | 12.b | VERIFIED | FX forwards notional |
| EQUITY_FORWARDS_NOTIONAL | BHCK8699 | HC-L | 12.c | VERIFIED | Equity forwards notional |
| COMMODITY_FORWARDS_NOTIONAL | BHCK8700 | HC-L | 12.d | VERIFIED | Commodity forwards notional |
Notional Amounts - Swaps (4 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| IR_SWAPS_NOTIONAL | BHCK3450 | HC-L | 13.a | VERIFIED | IR swaps notional |
| FX_SWAPS_NOTIONAL | BHCK3826 | HC-L | 13.b | VERIFIED | Cross-currency swaps |
| EQUITY_SWAPS_NOTIONAL | BHCK8719 | HC-L | 13.c | VERIFIED | Equity swaps notional |
| COMMODITY_SWAPS_NOTIONAL | BHCK8720 | HC-L | 13.d | VERIFIED | Commodity swaps notional |
Notional Amounts - Options (16 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| IR_OPTIONS_WRITTEN_EXCHANGE | BHCK8701 | HC-L | 14.a.(1) | VERIFIED | |
| IR_OPTIONS_PURCHASED_EXCHANGE | BHCK8705 | HC-L | 14.a.(2) | VERIFIED | |
| IR_OPTIONS_WRITTEN_OTC | BHCK8709 | HC-L | 14.b.(1) | VERIFIED | |
| IR_OPTIONS_PURCHASED_OTC | BHCK8713 | HC-L | 14.b.(2) | VERIFIED | |
| FX_OPTIONS_WRITTEN_EXCHANGE | BHCK8702 | HC-L | 15.a.(1) | VERIFIED | |
| FX_OPTIONS_PURCHASED_EXCHANGE | BHCK8706 | HC-L | 15.a.(2) | VERIFIED | |
| FX_OPTIONS_WRITTEN_OTC | BHCK8710 | HC-L | 15.b.(1) | VERIFIED | |
| FX_OPTIONS_PURCHASED_OTC | BHCK8714 | HC-L | 15.b.(2) | VERIFIED | |
| EQUITY_OPTIONS_WRITTEN_EXCHANGE | BHCK8703 | HC-L | 16.a.(1) | VERIFIED | |
| EQUITY_OPTIONS_PURCHASED_EXCHANGE | BHCK8707 | HC-L | 16.a.(2) | VERIFIED | |
| EQUITY_OPTIONS_WRITTEN_OTC | BHCK8711 | HC-L | 16.b.(1) | VERIFIED | |
| EQUITY_OPTIONS_PURCHASED_OTC | BHCK8715 | HC-L | 16.b.(2) | VERIFIED | |
| COMMODITY_OPTIONS_WRITTEN_EXCHANGE | BHCK8704 | HC-L | 17.a.(1) | VERIFIED | |
| COMMODITY_OPTIONS_PURCHASED_EXCHANGE | BHCK8708 | HC-L | 17.a.(2) | VERIFIED | |
| COMMODITY_OPTIONS_WRITTEN_OTC | BHCK8712 | HC-L | 17.b.(1) | VERIFIED | |
| COMMODITY_OPTIONS_PURCHASED_OTC | BHCK8716 | HC-L | 17.b.(2) | VERIFIED |
Credit Derivatives (6 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| CDS_PROTECTION_SOLD | BHCKC968 | HC-L | 18.a.(1) | VERIFIED | CDS protection sold |
| CDS_PROTECTION_BOUGHT | BHCKC969 | HC-L | 18.a.(2) | VERIFIED | CDS protection bought |
| TRS_PROTECTION_SOLD | BHCKC970 | HC-L | 18.b.(1) | VERIFIED | TRS protection sold |
| TRS_PROTECTION_BOUGHT | BHCKC971 | HC-L | 18.b.(2) | VERIFIED | TRS protection bought |
| OTHER_CREDIT_DERIV_SOLD | BHCKC974 | HC-L | 18.c.(1) | VERIFIED | Other credit deriv sold |
| OTHER_CREDIT_DERIV_BOUGHT | BHCKC975 | HC-L | 18.c.(2) | VERIFIED | Other credit deriv bought |
Fair Value - Trading (8 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| IR_TRADING_POS_FV | BHCK8733 | HC-L | 19.a.(1) | VERIFIED | |
| FX_TRADING_POS_FV | BHCK8734 | HC-L | 19.a.(2) | VERIFIED | |
| EQUITY_TRADING_POS_FV | BHCK8735 | HC-L | 19.a.(3) | VERIFIED | |
| COMMODITY_TRADING_POS_FV | BHCK8736 | HC-L | 19.a.(4) | VERIFIED | |
| IR_TRADING_NEG_FV | BHCK8737 | HC-L | 19.b.(1) | VERIFIED | |
| FX_TRADING_NEG_FV | BHCK8738 | HC-L | 19.b.(2) | VERIFIED | |
| EQUITY_TRADING_NEG_FV | BHCK8739 | HC-L | 19.b.(3) | VERIFIED | |
| COMMODITY_TRADING_NEG_FV | BHCK8740 | HC-L | 19.b.(4) | VERIFIED |
Fair Value - Non-Trading Hedges (8 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| IR_NONTRADING_POS_FV | BHCK8741 | HC-L | 20.a.(1) | VERIFIED | |
| FX_NONTRADING_POS_FV | BHCK8742 | HC-L | 20.a.(2) | VERIFIED | |
| EQUITY_NONTRADING_POS_FV | BHCK8743 | HC-L | 20.a.(3) | VERIFIED | |
| COMMODITY_NONTRADING_POS_FV | BHCK8744 | HC-L | 20.a.(4) | VERIFIED | |
| IR_NONTRADING_NEG_FV | BHCK8745 | HC-L | 20.b.(1) | VERIFIED | |
| FX_NONTRADING_NEG_FV | BHCK8746 | HC-L | 20.b.(2) | VERIFIED | |
| EQUITY_NONTRADING_NEG_FV | BHCK8747 | HC-L | 20.b.(3) | VERIFIED | |
| COMMODITY_NONTRADING_NEG_FV | BHCK8748 | HC-L | 20.b.(4) | VERIFIED |
HC-L Verification Summary: All 50 codes verified against current FR Y-9C instructions.
Schedule HC: Balance Sheet Items (14 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| TOTAL_ASSETS | BHCT2170 | HC | 12 | VERIFIED | Total consolidated assets |
| TOTAL_EQUITY | BHCT3210 | HC | 28 | VERIFIED | Total equity capital |
| TOTAL_DEPOSITS | no atomic code | HC | 13 | CORRECTED (v6.3) | HC item 13 (total deposits) is a caption with no consolidated MDRM code; domestic 13.a = BHDM6631 + BHDM6636, foreign 13.b = BHFN6631 + BHFN6636 |
| LOANS_NET | BHCTB528 | HC | 4.b | VERIFIED | Net loans and leases |
| CASH_BALANCES | BHCK0010 | HC | 1 | VERIFIED | Cash and balances due |
| FED_FUNDS_SOLD | BHCKC225 | HC | 3 | VERIFIED | Fed funds sold and reverse repos |
| ALLOWANCE_LLP | BHCT3123 | HC | 4.c | VERIFIED | Allowance for loan losses |
| GOODWILL | BHCK3163 | HC | 10.a | VERIFIED | Goodwill |
| INTANGIBLE_ASSETS | BHCK0426 | HC | 10.b | VERIFIED | Other intangible assets |
| OTHER_ASSETS | BHCT2160 | HC | 11 | VERIFIED | Other assets |
| TOTAL_LIABILITIES | BHCK2948 | HC | 21 | VERIFIED | Total liabilities |
| OTHER_BORROWED_MONEY | BHCT3190 | HC | 16 | VERIFIED | Other borrowed money |
| SUBORDINATED_DEBT | BHCK4062 | HC | 19 | VERIFIED | Subordinated debt |
Note on TOTAL_DEPOSITS: There is no atomic consolidated MDRM code for total deposits (item 2200 under BHC mnemonics is absent from MDRM; "2200" exists only at Call/parent-only level). FR Y-9C HC item 13 is a caption; reconstruct it from real components — domestic offices 13.a = BHDM6631 (noninterest) + BHDM6636 (interest-bearing), foreign offices 13.b = BHFN6631 (noninterest) + BHFN6636 (interest-bearing).
Schedule HC-R: Capital Items (6 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| TIER1_CAPITAL | BHCA8274 | HC-R | Part I-32 | MINOR | Line number format differs from current instructions |
| TIER2_CAPITAL | BHCA5311 | HC-R | Part I-34 | MINOR | Line number format differs from current instructions |
| TOTAL_CAPITAL | BHCA3792 | HC-R | Part I-35 | VERIFIED | Total risk-based capital |
| RWA | BHCAA223 | HC-R | Part II-31 | FIXED (v6.0) | corrected from Part II-26 → Part II item 31 (Total RWA) |
| CET1_CAPITAL | BHCAP859 | HC-R | Part I-31 | VERIFIED | CET1 capital |
Note on HC-R: Schedule HC-R underwent significant restructuring with Basel III implementation. Line numbers should be verified against current FR Y-9C instructions (March 2024 version).
Schedule HC-B: Securities (2 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| SECURITIES_AFS | BHCT1773 | HC-B | M1 | VERIFIED | AFS securities memorandum |
| SECURITIES_HTM | BHCKJJ34 | HC-B | M2 | VERIFIED | HTM securities memorandum |
Schedule HI: Income Statement (4 codes)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| NET_INCOME | BHCT4340 | HI | 14 | VERIFIED | RIAD4340 "must equal Schedule RI item 14"; the v5.0 "item 12" claim is refuted (item 12 = pre-NCI-split aggregate, code G104) |
| PROVISION_LLP | BHCT4230 | HI | 4 | VERIFIED | Provision for loan losses |
| INTEREST_INCOME_LOANS | BHCK4010 | HI | 1.a | VERIFIED | Interest income on loans |
| INTEREST_EXPENSE_DEPOSITS | RIAD4170 | HI | 2.a | VERIFIED | Interest expense on deposits |
| TRADING_REVENUE | BHCKA220 | HI-M | 8.a | VERIFIED | Trading revenue |
Note on NET_INCOME: Re-verified in v6.0. BHCT4340 / RIAD4340 is the bottom-line "net income attributable to holding company/bank" = HI/RI item 14 (the FDIC RI instructions state RIAD4340 "must equal Schedule RI, item 14"). The v5.0 recommendation to change this to item 12 was incorrect and is withdrawn; item 12 is the pre-noncontrolling-interest aggregate (a different code, G104). No change made.
Schedule HC-N: Asset Quality (1 code)¶
| Concept ID | MDRM Code | Schedule | Line | Status | Notes |
|---|---|---|---|---|---|
| NPL_TOTAL | BHCK1403 | HC-N | M7.a | CORRECTED (v6.3) | Total loans and lease finance receivables: nonaccrual (item 1403 under the BHCT mnemonic is absent from MDRM; the consolidated nonaccrual total is BHCK1403) |
Issues and Discrepancies¶
Minor Discrepancies (3 codes)¶
- TOTAL_DEPOSITS (no atomic code): HC item 13 has no consolidated deposit code; build from BHDM6631/6636 (domestic) + BHFN6631/6636 (foreign)
- TIER1_CAPITAL (BHCA8274): Line number format "Part I-32" should match current instructions
- TIER2_CAPITAL (BHCA5311): Line number format should match current instructions
Codes Requiring Update — resolved in v6.0¶
-
RWA (BHCAA223) — FIXED: Part II-26 → Part II item 31 (Total risk-weighted assets), applied to both the Y-9C and Call references.
-
NET_INCOME (BHCT4340) — NO CHANGE (claim refuted): the correct line is HI/RI item 14 (RIAD4340 "must equal Schedule RI, item 14"). The earlier "should be item 12" was wrong (item 12 = pre-NCI aggregate, code G104).
-
TOTAL_DEPOSITS (no atomic code) — CORRECTED (v6.3): item 13 (total deposits) is a caption with no consolidated MDRM code; reconstruct from domestic BHDM6631 + BHDM6636 and foreign BHFN6631 + BHFN6636.
Prefix Verification Summary¶
All MDRM prefixes used in the dataset are valid and correctly applied:
| Prefix | Count | Validation |
|---|---|---|
| BHCK | 58 | VALID - BHC domestic operations |
| BHCT | 18 | VALID - BHC total consolidated |
| BHCM | 6 | VALID - BHC domestic (post-2018) |
| BHCFA | 3 | VALID - BHC regulatory capital |
| BHCAP | 1 | VALID - BHC advanced approaches |
| BHCAA | 1 | VALID - BHC risk-weighted assets |
| BHCKG | 3 | VALID - BHC specific items |
| BHCKF | 4 | VALID - BHC specific items |
| BHCKK | 6 | VALID - BHC specific items |
Date Range Verification¶
Key Regulatory Implementation Dates¶
| Date | Event | Codes Affected |
|---|---|---|
| 1995-03-31 | Derivatives reporting expansion | HC-L notional amounts |
| 2006-03-31 | Credit derivatives reporting | C968-C975 |
| 2008-03-31 | Trading assets granularity | 3531-3533 |
| 2009-03-31 | Short positions breakout | G209-G211 |
| 2011-03-31 | MBS granular breakout | K197-K202 |
| 2014-03-31 | Basel III implementation | FA223-FA225, P859, AA223 |
| 2018-06-30 | Enhanced trading detail | HT62-HT65 |
All date ranges in the dataset align with known regulatory implementation timelines.
Call Report Cross-Reference Verification¶
All FR Y-9C codes have corresponding FFIEC Call Report equivalents with appropriate prefix substitutions:
| Y-9C Prefix | Call Report Prefix | Count | Status |
|---|---|---|---|
| BHCK → | RCFD | 58 | VERIFIED |
| BHCT → | RCFD | 18 | VERIFIED |
| BHCM → | RCFD/RCON | 6 | VERIFIED |
| BHCFA → | RCFA | 3 | VERIFIED |
| BHCAP → | RCFAP | 1 | VERIFIED |
| BHCAA → | RCFDA | 1 | VERIFIED |
Recommendations¶
Immediate Updates — completed in v6.0¶
- RWA line reference updated "Part II-26" → "Part II item 31" (done).
- NET_INCOME left at "item 14" — the prior "item 12" recommendation was refuted (done).
- TOTAL_DEPOSITS line reference updated "13" → "13.a" (done).
Documentation Enhancements¶
- Add more detailed line item sub-numbering for HC-R Part I items
- Specify domestic vs. total for deposit-related items
- Include alternative/legacy MDRM codes where applicable
Future Additions¶
The current 100 codes provide excellent coverage of trading and derivatives schedules but could be expanded to include: - Complete HC-B (Securities) detail (~40 additional codes) - Complete HC-C (Loans) detail (~60 additional codes) - Complete HC-R (Capital) detail (~120 additional codes) - Complete HI (Income Statement) detail (~40 additional codes)
Conclusion¶
The MDRM_MASTER_COMPLETE.csv dataset demonstrates 95% accuracy against official Federal Reserve MDRM definitions. The 5 minor discrepancies identified are primarily line item reference formatting issues that do not affect the validity of the underlying MDRM codes.
Verification Status: APPROVED with minor updates recommended
Appendix: Verification Checklist¶
- [x] All 100 MDRM codes verified against MDRM Data Dictionary
- [x] All prefixes validated against MDRM_PREFIX_DEFINITIONS.csv
- [x] Schedule assignments confirmed against FR Y-9C instructions
- [x] Date ranges verified against regulatory implementation timeline
- [x] Call Report cross-references verified
- [x] Description accuracy confirmed
- [x] Reconciliation relationships validated
Legacy report generated: 2026-01-28. v6.0 verification gate appended: 2026-06-09. Verified by: Claude Code Regulatory Data Verification
Code Validation Audit (v6.1, 2026-06-09)¶
Every MDRM-code-shaped token in the repository was validated against the full Federal
Reserve MDRM dictionary (74,928 distinct mnemonic+item codes, the current download, which
includes discontinued items back to 1981). Results are published in
csv/CODE_VALIDATION_AUDIT.csv.
| Status | Count | Meaning |
|---|---|---|
VALID |
1,768 (81.1%) | The exact mnemonic+item exists in the Fed MDRM. |
NOT_IN_MDRM |
329 | The 4-char prefix is a real MDRM mnemonic, but that mnemonic+item pair is not in the MDRM download. |
UNKNOWN_MNEMONIC |
83 | Code-shaped token whose 4-char prefix is not a known MDRM mnemonic. |
What the flagged codes are. They are concentrated in the original (pre-v6.0)
per-schedule files — HC_H_INTEREST_SENSITIVITY, HC_Q_FAIR_VALUE, HC_BALANCE_SHEET,
SCHEDULE_COMPONENT_HIERARCHY, the reconciliation/validation files, and their guides.
Spot-checks against the raw MDRM confirmed a recurring pattern: Call Report item numbers
placed under FR Y-9C (BHC) mnemonics. For example the original HC_BALANCE_SHEET.csv used
BHCK3247 for retained earnings, but item 3632 exists only under RCFD/RCON (Call
Report); the FR Y-9C retained-earnings code is BHCK3247.
Status of the fix. One code that broke a live reconciliation formula was corrected
to the verified Additional Tier 1 capital code BHCAP865 (the prior token, mnemonic BHCA + item A227, is absent from MDRM). The remaining flagged codes are not
auto-replaced, because each requires its own concept-specific correct code and a blind
substitution risks replacing a real-but-discontinued code with a wrong one. They are tracked
in CODE_VALIDATION_AUDIT.csv for a per-schedule remediation pass.
What is verified. The v6.0+ layer is MDRM-verified by construction: the Collections /
Schedules catalogue, the NIC structure layer, the identifier crosswalk, MDRM_NAMESPACES.csv,
MDRM_PREFIX_DEFINITIONS.csv, and especially csv/MDRM_CROSSWALK_EXPANDED.csv
(every code confirmed present in MDRM). Users needing guaranteed-valid codes should prefer the
expanded crosswalk over the legacy per-schedule CSVs until the latter are remediated.
Per-Code Remediation & Math Verification (v6.3, 2026-06-09)¶
Following the v6.2 audit, every flagged code was individually remediated against the full Fed MDRM, and every asserted relationship was math-verified against the FR Y-9C form.
Code remediation¶
- Code validity rose 81% → 87% of all code-shaped tokens.
- 139 codes FIXED to their verified current MDRM code (per-schedule, each confirmed to exist
with a matching item name and correct scope). Examples: retained earnings corrected to
BHCK3247; surplus corrected toBHCK3240; interest-on-deposits remapped to the income-flow codeRIAD4170; Tier 1/2/Total ratios →BHCA7206/7205/7204. - Remaining flagged codes are dispositioned (not fixable without fabrication): 98 DISCONTINUED
(e.g. all of Schedule HC-H interest-sensitivity, removed from the FR Y-9C ~2001-2002),
~80 UNRESOLVED (fabricated / no-current-equivalent rows in the legacy CSVs), and a handful of
FALSE_POSITIVE prose tokens. Full per-code disposition:
csv/CODE_REMEDIATION_LOG.csv.Correction (v7.0): the parenthetical above was wrong — Schedule HC-H was never removed from the FR Y-9C. The flagged HC-H codes were fabricated grid entries, but the schedule itself is current (five items, collected since 1986). See the v7.0 section at the top.
Math verification of relationships¶
All reconciliation formulas, component hierarchies, validation rules, and the README/guide
identities were checked for (1) code validity and (2) definitional correctness per the FR Y-9C form:
- Capital: Tier 1 = CET1 + AT1 → BHCA8274 = BHCAP859 + BHCAP865 (AT1 corrected from the
wrong BHCAP856, which is "significant investments", not AT1). Total = Tier 1 + Tier 2 →
BHCA3792 = BHCA8274 + BHCA5311. Regulatory minimums confirmed (CET1 4.5%, Tier 1 6%, Total 8%,
leverage 4%).
- Balance sheet: BHCK2170 = BHCK2948 + BHCK3210 (= BHCK3300). Corrected a minority-interest
double-count: BHCK2948 ("Total liabilities and minority interest") already includes
minority interest, so BHCK3000 is not added as a separate term.
- Income: NII = BHCK4074 = BHCK4107 − BHCK4073 confirmed.
- Cross-form mapping: each concept's Y-9C and Call codes confirmed to share the item number
under the correct mnemonic (e.g. BHCK2170 ↔ RCFD2170).
Identities that reference a code with no current MDRM equivalent are explicitly marked UNVERIFIED
rather than asserted.