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 historical OCC layer (1863–1941). Balance sheets digitized from the
U.S. Office of the Comptroller of the Currency Annual Report to Congress
volumes — published through the finhist.com Historical Financial Data
Project and distributed in the CC0 Harvard Dataverse deposit as
occ_historical. In FreeNIC this is the finhist era (HIST). - The digitized modern call reports (1959Q4–1975Q4). The
machine-readable
.dtafiles behindluck_call_reports— sourced from the Federal Reserve Bank of New York's published Balance Sheets and Income Statements of Commercial Banks series. In FreeNIC this is the MODL era. - The Fed-direct modern era (1976–2026). Independently re-derived from raw FFIEC/Chicago-Fed Call Report MDRM microdata — not copied from anyone's finished panel. In FreeNIC this is the MODC era.
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.
(gate 99.5000%)
(gate 99.9000%)
(gate 99.5000% · FAIL)
| Era | Verdict | Matched | Gate | Matched cells | Derivable cells | Documented (VINTAGE + METHOD-CHOICE) | Unexplained | Validation 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.
| Era | What "reconstruction" means here | Machine source it starts from | Ceiling (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.
.dta · Fed-direct MDRM microdata
cf(MDRM) re-derivations,
.dta columns, OCC line items, reconstructed aggregates, CPI deflation
reconstruction_tier provenance tag
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.
| Class | What it means, plainly | Counts 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:
- 38 Fed-direct MDRM re-derivations (1976+)
- 12 digitized
.dtacolumns (1959–75) - 10 OCC historical line items (1863–1941)
- 10 reconstructed aggregates (multi-item formulas)
- 23 derived ratios
- 12 panel-construction rules (spine, failure, dedup, filters, deflator)
- 2 explicitly NOT-DERIVABLE (public-data ceilings)
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.
Spec, reports, and reconciliation files
The reconstruction spec, the per-era validation reports, and the
cell-level reconciliation parquets are live — co-hosted at
data.freenic.org/reconstruction/ (published 2026-07-15).
Reconstruction module →
The open Python that builds and validates the panel — variable map, builders, and the pre-registered validator. MIT code in the FreeNIC repo.
Reconstruction spec →
The citation-anchored construction spec: every formula with a per-line source cite, the divergence taxonomy, and the panel-construction rules. live
Validation report — finhist →
The 1863–1941 per-variable coverage matrix and the gate verdict. live
Validation report — 1959–1975 →
The MODL per-variable coverage matrix and the gate verdict. live
Reconstruction datasets (live catalog)
Three reconstructed-panel parquets + their cell-level reconciliation
files — live at data.freenic.org/reconstruction/ (published
2026-07-15). Row counts render from the generated
counts.reconstruction slots; integrity is in
SHA256SUMS.txt.
| File (data.freenic.org/reconstruction/) | Era | Terms | Status |
|---|---|---|---|
finhist_equivalent_1863_1941.parquet |
1863–1941 | CC0 | live |
luck_core_1959_1975.parquet |
1959–1975 | NY Fed | live |
luck_equivalent_1976_2026.parquet |
1976–2026 | NY Fed | live |
reconciliation_finhist.parquet |
1863–1941 | CC0 | live |
reconciliation_1959_1975.parquet |
1959–1975 | NY Fed | live |
reconciliation_1976_2026.parquet |
1976–2026 | NY Fed | live |
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.
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.