Build an ESEF Annual Financial Report (Inline XBRL / iXBRL)
Skill: Convert IFRS consolidated financial statements into the ESEF iXBRL annual report
Region: European Union (EU-wide) Category: Financial reporting — European Single Electronic Format (Transparency Directive; Delegated Reg. (EU) 2019/815) Does: Takes a listed issuer's IFRS consolidated financial statements and produces the ESEF Annual Financial Report as a single XHTML document with the primary statements tagged in Inline XBRL (iXBRL) using the ESEF taxonomy (an extension of the IFRS Taxonomy), filed with the national Officially Appointed Mechanism (OAM). Standard: Directive 2004/109/EC (Transparency) · Commission Delegated Regulation (EU) 2019/815 (RTS on ESEF) · ESEF taxonomy / ESMA reporting manual
All issuers with securities on EU-regulated markets must prepare their Annual Financial Report in ESEF: the report is XHTML, and the IFRS consolidated primary financial statements (and certain notes via block tagging) are marked up with Inline XBRL using the ESEF core taxonomy plus an issuer extension taxonomy anchored to ESEF elements. Confirm the applicable ESEF taxonomy version (updated annually) and the ESMA reporting manual before generating.
When this applies
- Issuers with transferable securities admitted to trading on an EU-regulated market preparing IFRS consolidated statements.
- Annual financial report (within 4 months of year-end), filed with the home Member State's OAM.
- Mandatory iXBRL tagging of primary statements; block tagging of notes phased in.
Input data required
| Group | Fields |
|---|---|
| Issuer | LEI, name, reporting period, presentation currency, IFRS basis |
| Primary statements | Statement of financial position, P&L / comprehensive income, changes in equity, cash flows — each line value + period |
| Taxonomy mapping | the ESEF/IFRS element for each line; extension concepts with anchoring to the closest standard element |
| Context | entity identifier (LEI scheme), period (instant/duration), unit (currency, decimals/scale) |
| Document | the human-readable XHTML report (cover, MD&A, statements, notes) |
Structure (Inline XBRL in XHTML)
report.xhtml
├── <html xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" ...>
├── ix:header
│ ├── ix:references (schemaRef → issuer extension .xsd → ESEF/IFRS entry point)
│ └── ix:resources (xbrli:context [entity LEI + period], xbrli:unit [iso4217:EUR])
└── <body> human-readable report with inline facts:
└── <ix:nonFraction contextRef="..." unitRef="EUR" decimals="-3"
name="ifrs-full:Revenue">1 234 000</ix:nonFraction>
Extension elements live in the issuer taxonomy (.xsd + linkbases) and must be anchored (esef_cor anchor relationships) to the nearest wider/narrower ESEF element.
Tagging rules
- Primary statements: tag every line item as an individual
ix:nonFraction(orix:nonNumericfor text), with the correct sign (usesign="-"/ negated labels per the element's balance). - Notes: apply block tagging (
ix:nonNumericcovering the note text) per the mandatory scope for the period. - Contexts: one per entity/period dimension combination; instant for position, duration for performance.
- Scale & decimals:
scale(e.g. thousands) anddecimalsset consistently; the displayed and tagged values must reconcile. - Extensions: create only when no suitable ESEF element exists, and anchor each to standard elements.
Worked example (one tagged line)
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ix="http://www.xbrl.org/2013/inlineXBRL"
xmlns:ifrs-full="https://xbrl.ifrs.org/taxonomy/2025-03-27/ifrs-full"
xmlns:xbrli="http://www.xbrl.org/2003/instance">
<head><ix:header>
<ix:references><link:schemaRef xlink:href="example-2025.xsd"/></ix:references>
<ix:resources>
<xbrli:context id="FY2025">
<xbrli:entity><xbrli:identifier scheme="http://standards.iso.org/iso/17442">529900T8BM49AURSDO55</xbrli:identifier></xbrli:entity>
<xbrli:period><xbrli:startDate>2025-01-01</xbrli:startDate><xbrli:endDate>2025-12-31</xbrli:endDate></xbrli:period>
</xbrli:context>
<xbrli:unit id="EUR"><xbrli:measure>iso4217:EUR</xbrli:measure></xbrli:unit>
</ix:resources>
</ix:header></head>
<body>
<p>Revenue:
<ix:nonFraction name="ifrs-full:Revenue" contextRef="FY2025" unitRef="EUR"
decimals="-3" scale="3" format="ixt:num-dot-decimal">1,234,000</ix:nonFraction>
</p>
</body>
</html>
Validation checklist
- Report is valid XHTML; issuer LEI used as the entity identifier scheme
- All primary-statement line items tagged with correct ESEF/IFRS elements, signs, units, decimals/scale
- Mandatory note block tagging applied for the period
- Extension concepts created only when needed and anchored to standard ESEF elements
- Contexts (instant/duration) and units consistent; tagged values reconcile to the face statements
- Passes ESEF/ESMA conformance (Arelle or OAM validator); correct ESEF taxonomy version
Last updated: 2026-06-04 — confirm the applicable ESEF taxonomy version, anchoring/block-tagging scope, and your national OAM filing rules against the current ESMA reporting manual and Delegated Regulation (EU) 2019/815 before use.