Skip to content
Heterodata An Arcanum Research project FreeNIC
FreeNIC

Reconstruction

Real data Cited to source CC0 historical layer Live — published 2026-07-15

FreeNIC does not just host the Correia–Luck–Verner "Failing Banks" bank panel — it reconstructs it from raw public sources with open code, then verifies the result cell by cell against the published values. This page is the honest account: what the sources are, where the derivability boundary lies, the verified match rates, and every documented way our build and theirs can differ.

The reconstruction is a derivative dataset built from the CC0 Harvard Dataverse deposit (historical OCC data), the finhist historical portal, and the Federal Reserve Bank of New York modern call reports. Our code and outputs are original; no upstream do-file code is redistributed. Full citations and the NY Fed terms are below.

What Luck and finhist are, and who built them

The "Failing Banks" project (Sergio Correia, Federal Reserve Board; Stephan Luck, Federal Reserve Bank of New York; Emil Verner, MIT) assembles a bank-level panel spanning 1863–2026 to study why banks fail. It stitches three machine sources into one harmonized schema:

The reconstruction re-runs the project's documented construction method in open Python — describing each formula with a per-line citation to the authors' do-files, the harmonized data dictionary, or the published arXiv 2506.06082 appendix — and validates the output against the published values. The full method is the reconstruction spec; the per-formula summary is the downloadable construction note.

Verified match rates

Every overlapping published ↔ rebuilt cell is classified under a pre-registered taxonomy (below). The headline is the share of derivable cells that match exactly or within tolerance — measured, not asserted.

99.7061% finhist / OCC 1863–1941 matched
(gate 99.5000%)
99.9753% modern 1959–1975 matched
(gate 99.9000%)
96.4338% Fed-direct 1976–2026 matched
(gate 99.5000% · FAIL)
EraVerdictMatchedGateMatched cells Derivable cellsDocumented (VINTAGE + METHOD-CHOICE) UnexplainedValidation key
HIST · 1863-1941 PASS 99.7061% 99.5000% 2,624,703 2,632,440 7,284 MC · 0 VIN 453 (0.0172%) (bank_id, year)
MODL · 1959Q4-1975Q4 PASS 99.9753% 99.9000% 7,468,243 7,470,087 0 MC · 0 VIN 1,844 (0.0247%) (id_rssd, period_end)
MODC · 1976-2026 FAIL 96.4338% 99.5000% 38,469,955 39,892,609 515,867 MC · 18,874 VIN 887,913 (2.2258%) (id_rssd, period_end)

NOT-DERIVABLE cells (see the boundary below) are excluded from the denominator — we do not claim to reproduce what the public data cannot yield. UNEXPLAINED cells above the pre-registered floor (0.1000%) block the gate. The finhist and 1959–1975 eras sit well under the floor and PASS. The independent Fed-direct 1976–2026 era does not: its UNEXPLAINED share (2.2258%) exceeds the floor, so its gate FAILS — the claim that the from-raw rebuild reproduces the published modern panel cell-for-cell is not supported and is held, not softened. Figures generated by make_freenic_counts.py from the per-era gate_result_*.json — never hand-typed.

SUPPLEMENTARY value-fidelity (NOT the pre-registered gate). Subordinate to the FAIL above and never promoted to a headline: where both the published and rebuilt panels carry a value, the 1976–2026 rebuild matches 99.6247% of cells (both-present), or 99.8992% excluding NOT-DERIVABLE cells. This both-present denominator carries NOT-DERIVABLE cells counted as non-matches, so the figure is a conservative floor, not an inflated one — it measures value fidelity where coverage overlaps, and does not overturn the pre-registered gate FAIL.

The derivability boundary — the honesty contract

Not everything can be re-derived from public data, and we never pretend otherwise. Each era has a different meaning of "reconstruction" and a hard ceiling on what open code can reach. Cells outside the boundary are marked NOT-DERIVABLE and reported honestly — never imputed, never synthetically filled.

EraWhat "reconstruction" means here Machine source it starts fromCeiling (what we can't reach)
1976–2026
(MODC)
A true independent re-derivation from raw Fed-direct MDRM: our own code rebuilds every aggregate from the microdata. FFIEC / Chicago-Fed Call Report filings (the raw regulatory record). Pre-1994 securities hits a public-data ceiling — the optimal upstream build lives in an un-shipped script, so early-era securities cannot be reproduced exactly and are documented, not forced.
1959Q4–1975Q4
(MODL)
A derivation layer: their digitized .dta is the only machine source, and our open code re-runs their documented formula on that input. The NY-Fed-sourced digitized modern call-report .dta. Near-exact by construction (we run their formula on their input); the bar is the strictest of the three.
1863–1941
(HIST / finhist)
A derivation layer from the OCC OCR to the published aggregates and ratios. The digitized historical-call.dta (their OCC OCR). The OCR itself is NOT-DERIVABLE — it comes from physical archives we can't re-scan. We derive from their digitization forward, not behind it.
1942–1958 A genuine gap — kept absent. No public machine source exists; the era is left empty, never synthetically bridged.

Four items are irreducibly non-reproducible and stay NOT-DERIVABLE: the raw-microdata→.dta import, the OCC microfilm OCR + quality control, the pre-1994 bulk-vintage time-deposit series, and the manual cause-of-failure labels. See the spec §0 for the per-item detail.

How a value is built: raw → spine → variables → panel

The whole pipeline in one line — every stage is open code, and every variable is cited to a formula in the construction note.

Deflation applies one CPI series uniformly across both eras; real ratios and rankings are base-invariant, real levels are index-relative. Entity spines are era-specific and disjoint by construction, so eras never silently link across the historical gap.

The divergence taxonomy — read honestly

The taxonomy is pre-registered before any validation code runs, so the test can't be tuned to pass. Every non-matching cell lands in exactly one class, evaluated in strict first-match precedence: EXACT → ROUNDING → TOLERANCE → VINTAGE → METHOD-CHOICE → NOT-DERIVABLE → UNEXPLAINED.

ClassWhat it means, plainlyCounts against the gate?
EXACT Bit-identical to the published value after type normalization. No — a match.
ROUNDING Differs only in the last displayed digit (display precision). No — a match.
TOLERANCE Within a tiny relative tolerance (float / accumulation-order noise). No — a match.
VINTAGE Their fixed snapshot vs our refreshed data, or a known regulatory bulk-vintage difference — documented per case. No, when a registered reason exists.
METHOD-CHOICE A documented fork. The authors' code and their own docs (or the crosswalk) disagree, or FreeNIC adopts a defensible alternative — and we cite both loci. Example: summing all equity components vs a COALESCE guard that avoids double-counting in overlap years. Not an error — a labeled, sourced decision. No, when a registered reason exists.
NOT-DERIVABLE Outside the public-data boundary. The value cannot be re-derived from public sources at all — the OCC OCR, the pre-1994 securities raw build, the manual failure labels. Reported honestly, never imputed, and excluded from the match denominator. No — excluded from the denominator entirely.
UNEXPLAINED Anything that survives none of the above. A cell can't be relabeled into a "documented" class after the fact to make it disappear. Yes — every one counts against the gate.

The three "documented" classes (VINTAGE, METHOD-CHOICE, NOT-DERIVABLE) may be assigned only when a pre-registered reason key exists for that cell — they can't absorb a surprise mismatch. That is what keeps the headline honest: the finhist era's 7,284 METHOD-CHOICE cells are all registered forks, and its 453 UNEXPLAINED cells (0.0172%) are the honest residual, reported not hidden.

Scope — cited, not vibes

The reconstruction spec's machine twin (variable_map.csv) carries 108 construction formulas across 84 scoped concepts and 9 era segments — 100.0% of them carrying an explicit source citation. The construction-method mix:

Generated from variable_map.csv by make_freenic_counts.py; regenerating the spec's twin regenerates these figures, so they cannot drift.

One-page construction note

The full per-variable summary — variable · era · source · one-line formula · citation — generated verbatim from variable_map.csv:

Download construction note (.md)

It is the human-readable face of the machine twin: change the spec's variable_map.csv and the note regenerates. No upstream do-file code is reproduced — only the documented method, per-formula, with citations.

Modern (1959–2025) files: NY Fed attribution & share-alike

The modern-era reconstruction and reconciliation files above incorporate Federal Reserve Bank of New York content (the published Balance Sheets and Income Statements of Commercial Banks series). Those files are offered under the NY Fed Terms of Use, and where you redistribute them you must carry these forward:

  • Attribution. Keep the notice: © [year] Federal Reserve Bank of New York. Content from the New York Fed subject to the Terms of Use at newyorkfed.org.
  • Keep the source URL to the NY Fed dataset; do not strip it.
  • Share-alike. Offer the NY-Fed-derived slice under the same NY Fed Terms — do not relicense it under any more-restrictive license.
  • No endorsement, clearly labeled as ours. The NY Fed does not endorse this reconstruction; our modifications and derivative works are not attributed to the NY Fed, and its accuracy disclaimer carries through.

The occ_historical / finhist historical layer (1863–1941) is CC0 1.0 and carries none of these conditions — redistribution, modification, and commercial use are unconditionally permitted; citation is a courtesy.

Data provenance & citations

Cite the "Failing Banks" project as the methodology / dataset of record. The block below is the mandatory provenance & citation notice; it travels verbatim in every README, codebook, data package, and here on the site.

DATA PROVENANCE & CITATIONS
This release reconstructs and redistributes data from the "Failing Banks" project by
Sergio Correia, Stephan Luck, and Emil Verner. Please cite:

Paper (methodology / dataset of record):
  Correia, Sergio, Stephan Luck, and Emil Verner. "Failing Banks." The Quarterly Journal of
  Economics 141, no. 1 (2026): 147-204. https://doi.org/10.1093/qje/qjaf044

Replication data (Harvard Dataverse, CC0 1.0):
  Correia, Sergio; Luck, Stephan; Verner, Emil, 2026, "Replication Data for: 'Failing Banks'",
  https://doi.org/10.7910/DVN/Q22XR1, Harvard Dataverse, V1.1. Licensed CC0 1.0.

Historical OCC call reports (1867-1904 subset), where used:
  Carlson, Mark, Sergio Correia, and Stephan Luck. 2022. "The Effects of Banking Competition on
  Growth and Financial Stability: Evidence from the National Banking Era." Journal of Political
  Economy 130 (2): 462-520.

Historical data portal:
  finhist.com - Historical Financial Data Project (Correia, Luck, Verner). https://finhist.com

Modern call reports (1959Q4-2025):
  Federal Reserve Bank of New York, "Balance Sheets and Income Statements of Commercial Banks:
  1959 through 2025." https://www.newyorkfed.org/research/banking_research/balance-sheets-income-statements
  Content from the New York Fed is used under the New York Fed Terms of Use
  (https://www.newyorkfed.org/privacy/termsofuse):
  "(c) [year] Federal Reserve Bank of New York. Content from the New York Fed subject to the
  Terms of Use at newyorkfed.org." No guarantee is made about the accuracy of the data; the
  New York Fed does not endorse this reconstruction, and derivative works herein are not
  attributed to the New York Fed.

LICENSES: Dataverse deposit doi:10.7910/DVN/Q22XR1 = CC0 1.0. NY Fed modern call-report content =
NY Fed Terms of Use (attribution + share-alike; not relicensed here). Our original code and
reconstruction outputs are the campaign's own contribution and do not redistribute the authors' code.

Replace [year] with the retrieval year for the NY Fed slice (e.g. 2026). See also Methodology and the Data licensing notes.