# dpm-xbrl > Read and write EBA xBRL-CSV and XBRL-XML reports and check the EBA filing rules they break. dpm-xbrl reads xBRL-CSV report packages and XBRL 2.1 XML instances into one neutral fact model (`Report`, `Fact`), writes both formats, and records the EBA filing rules a report breaks. Python 3.11+, no runtime dependencies (`pip install dpm-xbrl`, import `dpmxbrl`; the `frames` extra reads large packages into polars frames). Independent project, not affiliated with or endorsed by the EBA. Everything below in one file: https://luukhopman.github.io/dpm-xbrl/llms-full.txt ## Home - [dpm-xbrl](https://luukhopman.github.io/dpm-xbrl/index.md): What dpm-xbrl is, who it is for, a 30-second example, installation and where to go next. ## Getting started - [Getting started](https://luukhopman.github.io/dpm-xbrl/getting-started.md): Tutorial - install dpm-xbrl, inspect a sample report, read its facts in Python and find the EBA filing rules it breaks. ## How-to guides - [How-to guides](https://luukhopman.github.io/dpm-xbrl/guides/index.md): Task-oriented recipes for dpm-xbrl - reading, large reports, filing rules and CI, findings, conversion, taxonomy packages, uploads, dpm-xl. - [Read a report](https://luukhopman.github.io/dpm-xbrl/guides/read-a-report.md): Read reports from paths, directories, report.json and bytes; use the facts; handle ReportError and warnings; read in threads. - [Read large reports as frames](https://luukhopman.github.io/dpm-xbrl/guides/large-reports.md): Read xBRL-CSV packages with millions of facts into polars frames with read_xbrl_csv_frames, map rows back to files and process tables as they arrive. - [Check EBA filing rules](https://luukhopman.github.io/dpm-xbrl/guides/check-filing-rules.md): List the EBA filing rules a report breaks, decide whether to send it, and gate a CI pipeline with dpm-xbrl inspect --fail-on. - [Add your own filing findings](https://luukhopman.github.io/dpm-xbrl/guides/add-filing-findings.md): Record taxonomy-aware filing findings with FilingLog and the rule tuples, including the checks the columnar reader leaves to callers. - [Convert between formats](https://luukhopman.github.io/dpm-xbrl/guides/convert-formats.md): Convert between xBRL-CSV and XBRL-XML with write_xbrl_csv and write_xbrl_xml - what each conversion needs and what is not kept. - [Resolve metadata offline](https://luukhopman.github.io/dpm-xbrl/guides/taxonomy-packages.md): Resolve xBRL-CSV metadata offline from taxonomy package ZIPs or your own resolver, so facts get concepts, dimensions, units and decimals. - [Handle untrusted uploads](https://luukhopman.github.io/dpm-xbrl/guides/untrusted-input.md): Accept report uploads from users safely, with resource limits, ZIP and XML hardening, and one exception type to catch. - [Validate a report with dpm-xl](https://luukhopman.github.io/dpm-xbrl/guides/validate-with-dpm-xl.md): Evaluate EBA DPM-XL validation rules on the facts of a report read with dpm-xbrl, using the sibling package dpm-xl. ## Concepts - [Concepts](https://luukhopman.github.io/dpm-xbrl/concepts/index.md): How dpm-xbrl models reports, the two serializations, metadata, filing indicators, filing rules and the security model. - [The fact model](https://luukhopman.github.io/dpm-xbrl/concepts/fact-model.md): The Report and Fact dataclasses, what each field holds for xBRL-CSV and XBRL-XML, read-only mappings, qnames, and memory and speed. - [xBRL-CSV and XBRL-XML](https://luukhopman.github.io/dpm-xbrl/concepts/formats.md): xBRL-CSV report packages and XBRL 2.1 XML instances, the two serializations of an EBA report, and how dpm-xbrl reads each. - [EBA convention and resolved metadata](https://luukhopman.github.io/dpm-xbrl/concepts/metadata.md): The EBA datapoint/factValue convention versus xBRL-CSV metadata resolved from the taxonomy, and when each applies. - [Table codes and filing indicators](https://luukhopman.github.io/dpm-xbrl/concepts/filing-indicators.md): How xBRL-CSV table codes map to EBA filing indicators (single-letter parts dropped, compared case-insensitively), with a recipe to group facts by filing indicator. - [Filing rules and coverage](https://luukhopman.github.io/dpm-xbrl/concepts/filing-rules.md): What the EBA filing rules are, which ones dpm-xbrl checks from the file alone, severities, and which rules are left to callers with the taxonomy. - [Security model](https://luukhopman.github.io/dpm-xbrl/concepts/security.md): What dpm-xbrl protects against when reading untrusted reports (resource limits, ZIP and XML hardening, no network), and its thread-safety guarantees. ## Reference - [Reference](https://luukhopman.github.io/dpm-xbrl/reference/index.md): Exact behaviour of dpm-xbrl - the Python API, the CLI, the JSON output, the input and output formats, the filing rules checked and the known gaps. - [CLI](https://luukhopman.github.io/dpm-xbrl/reference/cli.md): Every dpm-xbrl command and option (inspect, convert, limits, --fail-on, --columnar), the output, and the exit statuses. - [JSON output](https://luukhopman.github.io/dpm-xbrl/reference/json-output.md): The JSON layout printed by dpm-xbrl inspect --json, field by field, with schema_version and its compatibility promise. - [Data formats](https://luukhopman.github.io/dpm-xbrl/reference/data-formats.md): Exactly what dpm-xbrl reads from xBRL-CSV report packages (EBA convention and resolved metadata) and XBRL-XML instances, and what its writers produce. - [Filing rules checked](https://luukhopman.github.io/dpm-xbrl/reference/filing-rules.md): Every EBA filing rule (v5.8, February 2026) that the dpm-xbrl readers check, by format, and the rules left to callers or not checked. - [Known gaps](https://luukhopman.github.io/dpm-xbrl/reference/known-gaps.md): What dpm-xbrl does not do - taxonomy validation, parts of xBRL-CSV and XBRL-XML it does not keep, and conversion limits. - [Python API](https://luukhopman.github.io/dpm-xbrl/reference/api/index.md): The public Python API of dpm-xbrl, generated from the docstrings - dpmxbrl, dpmxbrl.filing and dpmxbrl.frames. - [`dpmxbrl`](https://luukhopman.github.io/dpm-xbrl/reference/api/dpmxbrl.md): API reference for the dpmxbrl package - read_report, the readers and writers, Report, Fact, FilingFinding, Limits and ReportError. - [`dpmxbrl.filing`](https://luukhopman.github.io/dpm-xbrl/reference/api/filing.md): API reference for dpmxbrl.filing - RULE_TITLES, FilingLog, the header checks and the rule tuples for your own findings. - [`dpmxbrl.frames`](https://luukhopman.github.io/dpm-xbrl/reference/api/frames.md): API reference for dpmxbrl.frames - read_xbrl_csv_frames, ReportFrames and MetadataTablesError. ## AI agents - [Using dpm-xbrl with AI agents](https://luukhopman.github.io/dpm-xbrl/agents.md): For AI agents and their users - the essential dpm-xbrl API on one page, its contracts, common pitfalls, and the llms.txt files. ## Related The other packages of the dpm toolkit: - [dpm-xl](https://luukhopman.github.io/dpm-xl/llms.txt): Parse and evaluate DPM-XL validation rules. - [dpm-synth](https://luukhopman.github.io/dpm-synth/llms.txt): Generate test reports that satisfy DPM-XL rules. - [Toolkit tour](https://luukhopman.github.io/dpm-xl/guides/toolkit-tour.md): Generate a report with dpm-synth, read it with dpm-xbrl, then evaluate and explain its rules with dpm-xl. ## Optional - [Changelog](https://luukhopman.github.io/dpm-xbrl/project/changelog.md): What changed in each dpm-xbrl release. - [Benchmarks](https://luukhopman.github.io/dpm-xbrl/project/benchmarks.md): dpm-xbrl compared with eba-xbridge, Arelle, py-xbrl and brel-xbrl on EBA reports - capabilities, licence and reproducible timings. - [Stability and versioning](https://luukhopman.github.io/dpm-xbrl/project/stability.md): dpm-xbrl's semantic versioning policy - what the public API is, what may change in minor releases, and the supported Python versions. - [Security policy](https://luukhopman.github.io/dpm-xbrl/project/security.md): How to report a security vulnerability in dpm-xbrl, and what counts as one. - [Contributing](https://luukhopman.github.io/dpm-xbrl/project/contributing.md): How to set up a development environment for dpm-xbrl, run the tests, linters and docs build, and the conventions for changes. - [Licence](https://luukhopman.github.io/dpm-xbrl/project/licence.md): dpm-xbrl is released under the MIT licence.