A stocktake of the machine-readable Jahresrechnung in Switzerland · 255 public documents, every statement with its source and its date

Two standards, 26 cantons · Part 11 of 14

11 · The Aktiengesellschaft that does not appear in the taxonomy

The drift in the previous chapter concerned the declaration format. The second carrier, the XBRL taxonomy, has a gap of its own — and it is bigger than its size suggests.

On slide 6 of its information event of 25.08.2025, the Zürcher Finanzdirektion draws an arrow: Buchhaltungssystem → Export → E-Bilanz (XBRL, CH-Taxonomie) → Import (XBRL) → ZHcorporateTax. The heading of the slide reads «E-Bilanz ab Steuerperiode 2025» (E-Bilanz from tax period 2025). Two slides earlier, on slide 4, sits the population this is meant to apply to: «Insgesamt gab es 2024 rund 97'000 JP» (in total there were around 97'000 legal entities in 2024), split into «AG 46% · GmbH 48% · Genossenschaften 1% · Vereine, Stiftungen & übrige JP 5%». Worked out, that is around 44'600 Aktiengesellschaften and around 46'600 GmbH.

The taxonomy drawn on the same slide deck as the carrier of this import knows nine legal forms. The plain Aktiengesellschaft is not one of them.

The finding in the artefact

In ch-taxonomy-def-2024-06-23.xml, the definition linkbase of the delivered CH-Taxonomie, exactly nine domain-member arcs hang off ct:LegalFormDomain. In the order of their order attributes, with the German standard labels from ch-taxonomy-lab-de-2024-06-23.xml:

ConceptLabel de-CH
ct:SoleProprietorshipMemberEinzelunternehmen [Mitglied]
ct:GeneralPartnershipMemberKollektivgesellschaft [Mitglied]
ct:LimitedPartnershipMemberKommanditgesellschaft [Mitglied]
ct:LimitedLiabilityCompanyMemberGesellschaft mit beschränkter Haftung [Mitglied]
ct:PublicLimitedCompanyAndCoLimitedPartnershipMember«Aktiengesellschaft &Co Kommanditgesellschaft [Mitglied]» (sic, no space after the ampersand)
ct:LimitedPartnershipCompanyMemberKommandit-Aktiengesellschaft [Mitglied]
ct:CooperativeMemberGenossenschaft [Mitglied]
ct:AssociationMemberVerein [Mitglied]
ct:FoundationMemberStiftung [Mitglied]

There is no PublicLimitedCompanyMember. The string does not occur in the schema file; the only hit on PublicLimited* is member number five, the AG & Co. KG. The Kommandit-Aktiengesellschaft can be represented, the Aktiengesellschaft & Co. Kommanditgesellschaft can be represented — the Aktiengesellschaft itself has no value of its own.

This is not a consultation artefact. The same finding sits in ch-taxonomy-2025-05-31.xsd from the swissdec Transmitter package of the 06.03.2026 release: 519 element declarations, 71 of them *Member, the same nine legal-form members, no PublicLimitedCompanyMember. Two vintages, two delivery routes, the same inventory.

Stated factually and without a judgement about any person or organisation: the taxonomy that slide 6 draws as the import carrier cannot express the legal form of 46 % of the canton's legal entities as a value of its own. A secondary finding, which sits on the same slide and appears in no discussion: in Zürich the GmbH is the more frequent legal form.

The bridge that does exist — and that we ourselves wrongly denied

Our own crawl manifest MANIFEST-crawl-c-standards.md closes its §5 with the sentence: «The two standards do not reference each other, at all.» We withdraw that sentence here. It is wrong, and the measurement that refutes it sits in the same file the nine legal forms come from.

The reference linkbase ch-taxonomy-ref-2024-06-23.xml has carried 425 referenceArcs since 23.06.2024. Of these, 132 carry the entry <ref:Name>Tax code</ref:Name> with <ref:Paragraph> values that are exactly eCH-0276 position IDs — A1000, A1109, B2700, C3000 and so on. Verbatim:

<link:reference xlink:label="lbl14573" id="id7584">
  <ref:Name>Tax code</ref:Name>
  <ref:Paragraph>B2700</ref:Paragraph>
</link:reference>

131 distinct codes across 132 concepts. 130 of them stand as positions in the SSK-Regelwerk; B2720 stands in no eCH-0276 artefact and is a dangling reference. The manifest counted the prose of the two twenty-page main documents — there the zero count is correct — and drew from that a conclusion about the standards as a whole. The connection sits in the annexes.

Two refinements make the finding sharp rather than large. First: the Tax code entries are the only ones without a <ref:Publisher>. The other three families name theirs — Schweizer Kontenrahmen KMU with publisher veb.ch, kvschweiz (176 arcs), Swiss Taxonomy Code with publisher xbrl.ch (84), the Obligationenrecht (32). Second: the coverage ends exactly where the tax computation begins. It spans dialogues A 31 of 34, B 39 of 46, C 60 of 86 — assets, liabilities, income statement. From dialogue D, the tax adjustments, nothing. The bridge exists, it is anonymous, and it stops before things become fiscal.

What the taxonomy hangs on

176 references to the Schweizer Kontenrahmen KMU, 32 to the Obligationenrecht. What this debate calls «die OR-Taxonomie» (the OR taxonomy) is bound first to a chart of accounts, second to the law, third and namelessly to eCH-0276.

That also explains the granularity that stands in neither of the two standards and that the canton names on request — questions and answers from the Steueramt, 08.09.2025:

«Die XBRL-Instanzdokumente für Steuerangelegenheiten liefern mehrheitlich Daten auf der Ebene von Kontogruppen. Abweichend hiervon enthalten sie dort Kontosaldi, wo es das automatische Ausfüllen der Steuererklärung erleichtert (z.B. im Bereich des Anlagevermögens und der dazugehörigen Abschreibungen).» (the XBRL instance documents for tax matters mostly deliver data at the level of account groups; departing from this, they contain account balances where that makes automatic completion of the tax return easier, e.g. in the area of fixed assets and the associated depreciation)

A cross-check against the artefact. The 2018 manual that the canton of Obwalden published on 16.02.2023 as its E-Bilanz guidance names an example account: «So wird z.B. eine Kontonummer 1020 in der Klassierung der OR-Taxonomie dem Bankguthaben zugeordnet.» (so an account number 1020, for example, is assigned to bank balances in the classification of the OR taxonomy). In the reference linkbase there is no anchor 1020. The nearest one is the group 100 → ct:CashAndCashEquivalents. Of 176 chart-of-accounts anchors, 57 are three-digit, 85 four-digit. The machine-readable Jahresrechnung is not the general ledger.

What gets checked

All three figures counted from primary sources, on 04.08.2026:

  • 4 formula assertions in the complete formula linkbase ch-taxonomy-for-2024-06-23.xml. The four test expressions verbatim: $Assets eq $EquityAndLiabilities · $ProfitOrLossCarriedForwardPeriodEnd eq $ProfitOrLossCarriedForwardPeriodStart + $IncreaseDecreaseOfProfitOrLossCarriedForward · $FiscallyRecognisedCapitalReservesEnd eq $FiscallyRecognisedCapitalReservesStart - $DistributionOfReservesFromCapitalContributions · $CashAndCashEquivalentsEnd eq $CashAndCashEquivalentsStart + $IncreaseDecreaseInCashAndCashEquivalents.
  • 211 calculationArcs, 21 of them with weight="-1".
  • Against that, 1'432 rule lines in the SSK-Regelwerk (sheet Regeln eCH-0276, as at 31.03.2026), 670 of them with the error class Fehler / Erreur.

A figure for ERiC deliberately does not stand here. It becomes citable only once it is counted from our own rule catalogue, and in this session it is not.

A measured defect that is getting worse

German standard labels that sit on more than one concept: 5 in the 2024-06-23 version, 7 in v0.9.2. Five of the seven are a monetary concept next to its text-block twin and resolvable via the type. Two are not:

  • «Gesetzliche Kapitalreserve» on ct:OtherCapitalReserves and ct:StatutoryCapitalReserve — both monetaryItemType, both credit, both instant.
  • «Jahresgewinn (Jahresverlust)» on ct:AnnualProfitOrAnnualLoss (credit/instant) and ct:ProfitOrLoss (credit/duration), separable only via the periodType.

The second case is the same one that eCH-0276 split, in its patch version, into a balance-sheet side and an income-statement side. Both standards found independently of each other that the annual result needs two carriers, and neither says so in prose.

The state of the artefact, openly

The documentation carries the version v0.9.2 and, on every page, the header «Guidance and consultation»; feedback by e-mail, with no stated deadline. The SSK-Regelwerk declares the same taxonomy binding: «Falls die E Bilanz nicht elektronisch übermittelt wird, ist die Jahresrechnung in der Deklarationslösung manuell zu erfassen. Auch für die manuelle Erfassung gilt die CH Taxonomie 2025.» (if the E-Bilanz is not transmitted electronically, the Jahresrechnung is to be entered manually in the Deklarationslösung; the CH Taxonomie 2025 applies to manual entry as well)

The five 2025-05-31 entry points returned HTTP 404 in our crawl on 04.08.2026. The schemas sit exclusively in the swissdec ZIP — and there without a single linkbase: the directory schema/ contains zero .xml files. So a vocabulary without rules, without the four assertions, without the 131 Tax code references. Three counts for the same year stand side by side: 453 concepts (2024-06-23, as delivered), 519 (ch-taxonomy-2025-05-31.xsd in the swissdec package), 465 (published concept list v0.9.2).

That leaves the clause that explains the 5 %. Every unmapped C-dialogue position is a Verein or Stiftung line — C3950 Mitgliederbeiträge, C3951 Erträge aus Spenden, Schenkungen und Vermächtnisse, C3952 Gönnerbeiträge, all three in the Regelwerk with the condition «Gesellschaftsform = Verein» (company form = Verein). Which is exactly the «Vereine, Stiftungen & übrige JP 5%» from slide 4.

Two documents, one slide deck, one taxonomy. Everything said above is a statement about files, not about the conduct of a person — and checkable in four minutes: open the definition linkbase, count the nine arcs on ct:LegalFormDomain, search for PublicLimitedCompanyMember, put slide 4 next to it.