XBRL: finanční výkazy v XML a formát ESEF

XBRL (eXtensible Business Reporting Language) je jazyk pro finanční a regulatorní výkazy postavený na XML. Každé číslo ve výkazu v něm nese význam, období, měnu a přesnost, takže ho regulátor nebo analytik zpracuje strojově. Kapitola vysvětluje taxonomie, instance, kontexty a jednotky, Inline XBRL a povinný formát ESEF pro výroční zprávy kótovaných firem.

Autor: Aktualizováno

Co je XBRL a proč vzniklo

Účetní výkaz v PDF je pro počítač jen text a čísla bez souvislostí. Aby regulátor mohl porovnat tržby tisíců firem, musí každé číslo nést informaci, co znamená, za koho a za jaké období je vykázané, v jaké měně a s jakou přesností. Přesně to XBRL dělá.

Standard spravuje nezisková organizace XBRL International; jádrem je specifikace XBRL 2.1 z roku 2003, na kterou navazují moduly Dimensions, Formula a Inline XBRL. XBRL používají burzovní regulátory (v USA SEC, v EU systém ESEF), bankovní a pojišťovací dohled (výkazy podle taxonomií EBA a EIOPA) i obchodní rejstříky a daňové správy v řadě zemí.

Taxonomie a instance

XBRL odděluje slovník od dat. Slovník se jmenuje taxonomie a popisuje, jaké pojmy lze vykazovat — například taxonomie IFRS definuje tisíce pojmů od Revenue po CashAndCashEquivalents. Data jsou v instanci, která se na taxonomii odkazuje.

ČástCo obsahujeFormát
Taxonomie – schémaseznam pojmů (Revenue, Assets…) s datovým typem a obdobímXSD
Linkbase popiskůlidsky čitelné názvy pojmů v různých jazycíchXML (XLink)
Linkbase prezentacejak pojmy seskupit a seřadit do výkazůXML (XLink)
Linkbase výpočtůsoučtové vztahy, např. aktiva = oběžná + stáláXML (XLink)
Linkbase definicdimenze a další vztahy mezi pojmyXML (XLink)
Instancevlastní vykázané hodnoty (fakta) jedné firmy za jedno obdobíXML nebo Inline XBRL

Taxonomie je sada XSD schémat: každý pojem je v ní deklarovaný jako element s datovým typem (například xbrli:monetaryItemType) a atributem xbrli:periodType — duration pro toky za období (tržby, zisk), instant pro stavy k datu (aktiva). Vztahy mezi pojmy nejsou ve schématu, ale v takzvaných linkbase souborech zapsaných pomocí XLink.

Jak vypadá instance

Instance XBRL (zjednodušeno)
<?xml version="1.0" encoding="UTF-8"?>
<xbrli:xbrl
    xmlns:xbrli="http://www.xbrl.org/2003/instance"
    xmlns:link="http://www.xbrl.org/2003/linkbase"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
    xmlns:ifrs-full="https://xbrl.ifrs.org/taxonomy/2024-03-27/ifrs-full">

  <link:schemaRef xlink:type="simple" xlink:href="firma-2025-12-31.xsd"/>

  <xbrli:context id="FY2025">
    <xbrli:entity>
      <xbrli:identifier scheme="http://standards.iso.org/iso/17442">315700ABCDEFGHIJKL12</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:context id="I2025-12-31">
    <xbrli:entity>
      <xbrli:identifier scheme="http://standards.iso.org/iso/17442">315700ABCDEFGHIJKL12</xbrli:identifier>
    </xbrli:entity>
    <xbrli:period>
      <xbrli:instant>2025-12-31</xbrli:instant>
    </xbrli:period>
  </xbrli:context>

  <xbrli:unit id="CZK">
    <xbrli:measure>iso4217:CZK</xbrli:measure>
  </xbrli:unit>

  <ifrs-full:Revenue contextRef="FY2025" unitRef="CZK" decimals="-3">125430000</ifrs-full:Revenue>
  <ifrs-full:ProfitLoss contextRef="FY2025" unitRef="CZK" decimals="-3">8712000</ifrs-full:ProfitLoss>
  <ifrs-full:Assets contextRef="I2025-12-31" unitRef="CZK" decimals="-3">310050000</ifrs-full:Assets>
  <ifrs-full:NameOfReportingEntityOrOtherMeansOfIdentification contextRef="FY2025">Ukázková firma a.s.</ifrs-full:NameOfReportingEntityOrOtherMeansOfIdentification>
</xbrli:xbrl>
  • link:schemaRef určuje taxonomii. Firmy obvykle vykazují proti vlastní rozšiřující taxonomii, která importuje základní (IFRS) a přidává jen pojmy navíc.
  • xbrli:context spojuje subjekt a období. Subjekt je určený identifikátorem a jeho schématem — v ESEF je to kód LEI se schématem http://standards.iso.org/iso/17442. Období je buď interval (startDate, endDate), nebo okamžik (instant).
  • xbrli:unit definuje jednotku; měny se zapisují kódem ISO 4217 ve jmenném prostoru http://www.xbrl.org/2003/iso4217.
  • Samotná fakta jsou elementy pojmenované podle pojmu z taxonomie. Hodnota se zapisuje vždy celá a s tečkou jako desetinným oddělovačem — 125430000, ne „125,43 mil.“.
  • Jmenný prostor taxonomie IFRS obsahuje datum vydání (2024-03-27), takže se každý rok mění. Program, který fakta hledá podle celého jmenného prostoru, musí tuto změnu počítat.
AtributVýznam
contextRefodkaz na kontext: kdo vykazuje a za jaké období nebo k jakému dni
unitRefodkaz na jednotku (měna, kusy, poměr); povinný u čísel
decimalspřesnost: -3 = zaokrouhleno na tisíce, 2 = na setiny, INF = přesně
scale (jen iXBRL)řád, kterým se zobrazené číslo násobí: 3 = tisíce, 6 = miliony
format (jen iXBRL)jak číslo z textu přečíst: oddělovač tisíců a desetinná čárka či tečka
sign="-" (jen iXBRL)záporná hodnota, i když je v textu zobrazená v závorkách

Inline XBRL: výkaz pro lidi i stroje

Klasická instance je čitelná jen pro programy. Inline XBRL (iXBRL) proto vkládá značky XBRL přímo do XHTML dokumentu: člověk v prohlížeči vidí běžnou výroční zprávu s tabulkami a grafikou, program z téhož souboru vytáhne tagovaná fakta.

Výřez z výroční zprávy v iXBRL
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ix="http://www.xbrl.org/2013/inlineXBRL"
      xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12"
      xmlns:ifrs-full="https://xbrl.ifrs.org/taxonomy/2024-03-27/ifrs-full"
      xmlns:xbrli="http://www.xbrl.org/2003/instance"
      xmlns:link="http://www.xbrl.org/2003/linkbase"
      xmlns:xlink="http://www.w3.org/1999/xlink"
      xmlns:iso4217="http://www.xbrl.org/2003/iso4217">
  <head><title>Výroční zpráva 2025</title></head>
  <body>
    <div style="display:none">
      <ix:header>
        <ix:references>
          <link:schemaRef xlink:type="simple" xlink:href="firma-2025-12-31.xsd"/>
        </ix:references>
        <ix:resources>
          <!-- sem patří xbrli:context a xbrli:unit jako v ukázce výše -->
        </ix:resources>
      </ix:header>
    </div>

    <table>
      <tr>
        <td>Tržby (v tis. Kč)</td>
        <td><ix:nonFraction name="ifrs-full:Revenue" contextRef="FY2025" unitRef="CZK"
              decimals="-3" scale="3" format="ixt:num-dot-decimal">125,430</ix:nonFraction></td>
      </tr>
    </table>
  </body>
</html>

V tabulce je vidět „125,430“ v tisících korun. Díky atributům format a scale="3" program přečte hodnotu 125 430 000 Kč. Kontexty a jednotky jsou ve skrytém bloku ix:header. Texty (například účetní zásady v příloze) se tagují elementem ix:nonNumeric. Protože iXBRL je XHTML, platí pro něj stejná přísná pravidla zápisu jako pro jakékoli XML.

ESEF: výroční zprávy kótovaných firem

Nařízení Komise (EU) 2019/815 zavedlo jednotný evropský elektronický formát (ESEF). Emitenti, jejichž cenné papíry se obchodují na regulovaném trhu v EU, musí výroční finanční zprávu zveřejnit jako XHTML. Pokud sestavují konsolidovanou účetní závěrku podle IFRS, musí ji označit pomocí Inline XBRL s taxonomií ESEF, která vychází z taxonomie IFRS.

  • V Česku se ESEF povinně používá pro výroční zprávy za rok 2021 a novější.
  • Hlavní výkazy (rozvaha, výkaz zisku a ztráty, přehled o peněžních tocích a o změnách vlastního kapitálu) se tagují detailně, číslo po čísle.
  • Od období začínajících 1. ledna 2022 se navíc blokově tagují textové pasáže přílohy konsolidované účetní závěrky.
  • Zpráva se odevzdává jako report package — ZIP archiv s XHTML dokumentem a rozšiřující taxonomií firmy. Emitenti ji předávají České národní bance, která vydává i metodiku pojmenování souborů.

Jak s XBRL pracovat

Pro validaci a prohlížení se nejčastěji používá open-source nástroj Arelle: zkontroluje instanci proti taxonomii včetně součtových vztahů a pravidel ESEF a iXBRL zobrazí v prohlížeči s možností proklikat se na tagovaná fakta. Rychlý průzkum dat ale zvládneš i obyčejným XPath — jen hledej podle local-name(), protože jmenné prostory taxonomií jsou dlouhé a mění se:

XPath nad instancí XBRL
//*[local-name()="Revenue"]                     všechna fakta o tržbách
//*[@contextRef="FY2025"][@unitRef="CZK"]       číselná fakta za rok 2025
//*[local-name()="context"][.//*[local-name()="instant"]]/@id
                                               kontexty k okamžiku (rozvaha)

Vedle XML dnes XBRL International standardizuje i reprezentace xBRL-JSON a xBRL-CSV se stejným datovým modelem. Hodí se pro velké objemy čistě tabulkových dat, kde by XML zbytečně nabobtnalo.