Metadata-Version: 2.4
Name: dora-roi-validator
Version: 0.0.1
Summary: DORA Register of Information data-quality preflight: runs the 116 ESA checks on your xBRL-CSV before submission, with verbatim-cited error reports.
Author-email: Cesar Pereiro Garcia <cesar0407p@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/plusultra-tools/dora-roi-validator
Project-URL: Source, https://github.com/plusultra-tools/dora-roi-validator
Project-URL: Issues, https://github.com/plusultra-tools/dora-roi-validator/issues
Project-URL: Changelog, https://github.com/plusultra-tools/dora-roi-validator/blob/main/CHANGELOG.md
Keywords: dora,register-of-information,compliance,eba,ict-third-party,xbrl,fintech
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Office/Business :: Financial
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: ruff>=0.6; extra == "dev"
Requires-Dist: mypy>=1.10; extra == "dev"
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: twine>=5.0; extra == "dev"
Dynamic: license-file

# dora-roi-validator

DORA Register of Information data-quality validator and submission preflight. Runs the 116 ESA data-quality checks locally on your xBRL-CSV before you submit to the national authority. Emits a row-by-row error report with verbatim citations of the EBA validation rule that fired.

[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![Python](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue)](pyproject.toml)

---

## Why this exists

In the ESAs' 2024 dry-run exercise, only **6.5% of nearly 1,000 financial entities** passed all 116 data-quality checks. The two most common failure categories were missing mandatory information and invalid identifiers. Re-submissions cost real money: each cycle through the national authority eats compliance-engineer days, and Q2-Q3 2026 deadlines (national-supervisor variants of the EBA template) leave no slack.

Existing tooling is enterprise GRC: Workiva, OneTrust, Vendorica — €20K-€100K annual contracts. The SMB tier (banks under €30B assets, payment institutions, asset managers under €5B AUM) is unserved. `dora-roi-validator` is the OSS that closes that gap.

## What it does

1. Reads a Register of Information in EBA-published xBRL-CSV format (DPM 1.6 / RoI 2026 cycle, reference date 31 December 2025).
2. Runs all 116 data-quality checks (mandatory-field, format, cross-reference, LEI validation, parent-undertaking-link, contract-date sanity).
3. Emits a row-by-row error report with the specific EBA validation-rule ID and verbatim text that fired.
4. Optionally produces a remediation-priority report (most-fixable first) so a compliance engineer can triage.

```bash
pip install dora-roi-validator

dora-roi check register.xbrl.csv --output errors.json --report-md errors.md
dora-roi check register.xbrl.csv --rule-set 2026  # default: latest published
dora-roi check register.xbrl.csv --strict-lei     # external GLEIF lookup for LEI validity
```

## Scope

- DORA Article 28 (1)(c) Register of Information for ICT third-party arrangements.
- EBA / ESMA / EIOPA joint ITS (Commission Implementing Regulation (EU) 2024/2956).
- 2026 RoI cycle (reference date 31 Dec 2025), national deadlines Q2-Q3 2026.

## Limits (what this tool does NOT do)

- Does NOT submit to the national authority. Submission stays in the financial entity's GRC pipeline.
- Does NOT validate the underlying ICT third-party contracts. Only the data-quality / format level.
- Does NOT replace the EBA's official validation tool when published. We aim for "fast offline preflight" not "authoritative validator".
- Does NOT cover the SREP intersection.

## Citation

If this saves your firm a re-submission cycle, cite:

```
@software{dora_roi_validator,
  author = {Pereiro Garcia, Cesar},
  title  = {dora-roi-validator: DORA Register of Information data-quality preflight},
  year   = {2026},
  url    = {https://github.com/plusultra-tools/dora-roi-validator},
}
```

## License

MIT. See `LICENSE`.
