Reproducible analysis of the EBA reporting framework — the Data Point Model (DPM), its validation rules, and its XBRL taxonomy — read directly from EBA's own published packages.
This repository is the tool and the evidence behind the report "The EBA Reporting Framework, Measured From the Inside." Every figure in that report is reproducible from EBA's public packages using the scripts here. Nothing rests on trust.
Author: Dr. Mosab Hawarey · mosab.hawarey.org
European Banking Authority (EBA) publishes its reporting requirements as a formal model — a ~620 MB Microsoft Access database that carries the full, cumulative history of every release. This repository reads that model directly and measures it, on stable codes and names rather than internal identifiers, so results survive comparison across packages.
Two headline findings (full detail in the report):
-
Rules that changed meaning without changing text. Across the DPM 2.0 transition (releases 4.1→4.2), 4,699 validation rules (62.2%) did not change their own expression yet read at least one data point whose meaning changed underneath them. The underlying concept crosswalk was validated against EBA's official conversion file (27 of 30 mappings exact).
-
The validation calendar no framework version announces. Validation rules are switched on and off on a quarterly calendar largely detached from the framework releases institutions track — 27 change-dates against 9 releases, only two coinciding — 403 genuine deactivations across history, concentrated in
COREP_OF, severity moving one way (1,730 relaxations vs 3 tightenings). EBA's own quarterly rule-update script performs exactly this mechanism.
Figures are current to the final 4.3 package (build 28 June 2026).
src/ analysis scripts (read-only against the DPM database)
reports/ derived results (CSV) — the evidence behind every figure
docs/ the published report (PDF)
METHOD.md the verification discipline, and the finding that was disproven five times
DATA.md which EBA files to download and where to put them (not redistributed here)
requirements.txt
The analysis runs on Windows against the Microsoft Access .accdb packages EBA
publishes.
- Prerequisites: Windows, 64-bit Python 3, and the Microsoft Access Database
Engine ODBC driver. Then:
pip install -r requirements.txt - Get the data. This repository does not redistribute EBA's packages. Follow
DATA.mdto download the DPM database and validation-rule files from EBA and place them underdata\. - Run. Most scripts take the database path as an argument and write a full,
timestamped transcript to
logs\. For example:Path defaults (working root, log directory) are defined as constants at the top of each script; edit them if your layout differs.python src\propagation.py "data\extracted\v4.3\DPM2 Database_v 4_3_20260622.accdb" python src\corrected_census.py "<path to .accdb>"
The credibility of this work is a deliberate discipline, not a claim. See
METHOD.md: the falsification-first rule, comparison on codes not IDs,
validation against EBA's own published artefacts, and the reconstruction test that
matched an independently published EBA package at 100%.
EBA's technical packages are the property of the European Banking Authority and are not
redistributed here; DATA.md links to the source. The code in this repository is released
under the MIT License (see LICENSE). The written report is © Dr. Mosab Hawarey.
This analysis was AI-assisted — a deliberate use of current tooling to work faster and verify more thoroughly. AI accelerated data extraction, cross-checking, and drafting; the analytical design, the tests written to disprove each finding, and responsibility for every reported figure remain the author's. Every figure is independently reproducible from EBA's public packages using the scripts here.