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 1 of 14

1 · The thesis — and how to refute it

The format is published. What sits between a finished file and an accepted submission is at no point a format problem. Three documented conditions decide the machine-readable Jahresrechnung today, and the sources name all three. The first is a login: access to the Zürich online tax return for legal entities runs through AGOV, and the canton writes on its own migration page that an AGOV account «repräsentiert immer eine natürliche Person, die entweder für sich selbst oder im Auftrag handelt» (always represents a natural person, acting either for themselves or on behalf of someone else). The second is a contract: the body behind the national transmission network records in its own specification of 06.03.2026 that «aus vertragsrechtlichen und statuarischen Gründen seitens Swissdec … aktuell nur kantonseigene Deklarationslösungen die E-Bilanz via Distributor elektronisch empfangen» (for reasons of contract law and statutes on swissdec's side, only the cantons' own Deklarationslösungen can currently receive the E-Bilanz electronically via the Distributor), and that for private solutions «zuerst die vertraglichen Grundlagen geschaffen werden» (the contractual basis has to be created first). The third is an instruction that does not exist: in some 33'000 words of Zürich documentation addressed to taxpayers and their representatives — Wegleitung 505, seventy help-centre articles, five portal pages — «E-Bilanz», «XBRL» and «eCH-0276» do not appear a single time, and this for exactly the tax period for which the canton announced the E-Bilanz on its own slide of 25.08.2025 under the heading «E-Bilanz ab Steuerperiode 2025» (E-Bilanz from tax period 2025). A login, a contract and a missing instruction: none of them is a data-format problem. Two are documented decisions with a named body behind them; the third is a gap in the documentation, and the sources do not give a reason for it.

That is the thesis of this text, and the chapters that follow argue it through, not merely illustrate it. Refuting it takes one of three things: showing that the identity layer knows a legal entity; that the contractual basis exists; or that an instruction is on file somewhere and we missed it. All three refutations are cheap to run — they take a document, not a debate. That is exactly why every prediction at the end of this text carries a falsifier with a date.

What counts in this text

Every number in this text can be recomputed, and the basis is open. The corpus this work draws on holds, as of 04.08.2026, 255 files, 91 MB, 331'014 words of extracted text. The commands that reproduce that are find . -type f | wc -l, du -sh and find . -name '*.txt' -exec cat {} + | wc -w. The file-type split: 50 PDF · 53 XSD · 37 XML · 32 HTML · 8 XLSX · 7 JSON · 4 MD · 3 ZIP · 2 JS · 1 WSDL · 1 CSV, plus 57 text extracts. Cantonal ordinances, Wegleitungen, question-and-answer papers, slides from an information event, minutes from a second Steueramt, the national implementation plan, the transmitter specification of the transmission network together with its schemas and SOAP examples, three versions of the same XML schema, the rule catalogue of the Schweizerische Steuerkonferenz (the Swiss Tax Conference) with 1'432 rule lines, the XBRL taxonomy with its linkbases, vendor documentation and the shipped frontends of two cantonal portals.

The first correction is about us. Our own brief names «64 Artefakte / 338'469 Wörter» (64 artefacts / 338'469 words). Neither number reproduces. They are not published here, and they are not quietly replaced but named: a text whose entire authority rests on counting cannot afford a wrong number in its first paragraph — not even one that comes from our own house.

How the counting works here

Counting runs on word boundaries, never on substrings. The regex, which anyone can rebuild, is:

(?<![A-Za-zÄÖÜäöü0-9])term(?![A-Za-zÄÖÜäöü0-9])

A single counter-example shows why this is not pedantry. A naive search for ech without word boundaries finds ten hits in the Obwalden handbook on the E-Bilanz. All ten sit inside Jahresrechnung, Obligationenrecht, entsprechend. With word boundaries there are zero. The same trap has caught our own work three times already: USt sits inside must, trust and August; ERiC sits inside Berichtigung and Gerichtsstand. A count made from substrings publishes noise and calls it a finding.

And what a zero finding is stays tightly bounded: a count excludes only what it tested. Where this text says a term does not appear, it says alongside it which files were searched, with which method, and on which day. The zero refers to those files and to no others. It says nothing about a page that was not crawled, and nothing about a form whose PDF text we could not extract. Where we have not checked, it says «ungeprüft» (unverified) and not «null» (zero). We hold that distinction throughout this text: where we have not checked, it says «ungeprüft» and not «null».

The prediction rule — declared here, not hidden at the end

This text makes predictions. It binds itself to a rule that belongs in front of the first prediction, because stated afterwards it reads as an excuse.

The rule comes out of a re-scoring. We counted Leopold Aschenbrenner's Situational Awareness against the actual course of events twenty-five months after publication: 2 HIT · 1 PARTIAL · 3 MISS · 3 TOO-EARLY. The distribution says more than the hit rate. The hits sat where a measured quantity was carried forward. The misses and the too-early calls sat where a threshold was tied to a date — «bis Jahr X ist Y erreicht» (by year X, Y is reached). The lesson, in one sentence: extrapolate inputs, not outcomes.

Three caps follow, and they hold without exception in this text:

  • A threshold-by-date statement — «bis zum Datum D gilt Zustand Z» (by date D, state Z holds) — reaches grade B at most, however strong the reasoning. Argument strength does not lift the cap.
  • A trend carried forward on a measured input — a series we counted ourselves and can count again — can reach grade A.
  • A category-disappearance statement — «X gibt es dann nicht mehr» (X will no longer exist by then) — reaches C at most, as long as no structural forcing mechanism is named that compels the disappearance.

Every prediction in this text carries its class, its grade and its falsifier with a date. Without those three, no prediction goes in here. This is not coyness about our own uncertainty — it is the only form in which a forecast can be scored later at all. A claim on its own cannot be wrong. A claim that ships a falsifier can be.

The self-binding

One sentence recurs in this text, and this is the best place to read it for the first time: we have never imported a file into a cantonal portal. Not in Zürich, not in Obwalden, nowhere. We have never called the swissdec Distributor, not even with Ping. Everything this text says about how the Swiss channels work is read from published documents, from shipped XML schemas and from publicly retrievable configuration files — not from a test.

That boundary runs through the whole text. Where the documents are silent — for instance about which format the Obwalden import button actually accepts from tax period 2025 onwards — this text says the documents are silent. It does not print the plausible reading. That is the less comfortable version, and it is the only one that holds.

Openness includes provenance. We are a German sole proprietorship based in Cologne, with production experience in the German E-Bilanz procedure under § 5b EStG. We have no Swiss company, no Swiss address, no UID. There is nothing to buy from us in Switzerland. This text is not an offer; it is the analysis of a corpus we assembled for our own question, and its findings get in our way in several places. Where they do, they are in here anyway.

The citation rule

This text has an opinion, and it says it. It has one about the situation: about what the documents mean, what follows from them, what happens next and what would have to change. That opinion is not packaged as a neutral stocktake.

It has no opinion on the conduct or the competence of any named body. Nothing is asserted here about a named authority, a named association, a named company without a verbatim quotation from that body standing next to it. Where a finding is uncomfortable, a quotation or a count carries it — never a characterisation. Quote, do not characterise. That is at once the legally clean position and the stronger one in argument: a sentence the body wrote itself is harder to dispute than an attribution from outside.

Two examples of what that looks like in practice, and both carry their own chapters later. First: instead of asserting that a channel for third-party software is politically unwanted, we quote the canton of Zürich, 08.09.2025 — «Im Rahmen der Digitalisierung ist es dem Kantonalen Steueramt Zürich wichtig, dass die Unternehmen nicht nur über ZHcorporateTax, sondern auch über Anwendungen von Drittsoftwareherstellern ihre Steuererklärung elektronisch einreichen können. Die Umsetzung wird nach einer ersten Betriebsphase von ZHcorporateTax in einem separaten Vorhaben angegangen.» (as part of digitalisation, it matters to the Kantonales Steueramt Zürich that companies can file their tax return electronically not only via ZHcorporateTax but also via applications from third-party software vendors; implementation will be taken up in a separate project after an initial operating phase of ZHcorporateTax). The intent is in the document; what is missing is a date. That is a more precise and a harder finding than any imputation. Second: instead of inferring an industry from a single case, we count out a vendor matrix that has one row for each of the 26 cantons — 25 of 26 receive a natural person's return from third-party software by machine, 14 of 26 that of a legal entity. The comparison inside one and the same table carries the statement without any extrapolation.

What this text does not claim

Federalism comes up regularly in this debate. At the rule level the spread is narrow: of the 1'432 rule lines in the rule catalogue of the Schweizerische Steuerkonferenz, as of 31.03.2026, 1'390 are common and 42 cantonal, carried by six cantons. At the delivery level it is wider: 25 of 26 against 14 of 26. Zürich is one of the twelve cantons in which a legal entity's return cannot be transmitted from third-party software today — and it is the largest of them.

And one more clarification on the 42: the rule catalogue records that cantonal deviations should be listed in the catalogue — not must. 42 is therefore a lower bound on recorded deviation, not a measurement of actual deviation. Twenty cantons have entered no rule; that is not the same as: twenty cantons do not deviate. That too is a count that excludes only what it tested.

The rest of this text takes the three gates one at a time, with the documents that put them in place and the documents that could open them again. At the end stand eleven predictions, each with class, grade and falsifier. Anyone who reads that far and finds one of them wrong has an easy job: the checking document is named in each case, and the date is next to it.