Skip to content

Statutory reports

The balance sheet and income statement your Treuhänder, the tax office and, for a GmbH or AG, the shareholders' meeting need, grouped the way the law lays them out.2 quints groups your accounts by the kmu: codes on their open directives, which is why quints check insists on the codes.

Applies if

  • Legal form: Einzelfirma, GmbH or AG. The equity section is labelled for the form: Eigenkapital, Stammkapital or Aktienkapital.
  • VAT status: any. VAT balances appear as receivables or liabilities like any other.
  • Fiscal year: the calendar year, or a GmbH's or AG's extended first year (--from, see Close the year).
  • Not covered: consolidated accounts, the notes to the accounts (Anhang, Art. 959c OR), a cash-flow statement, and the larger companies' additional reporting (Art. 961 ff. OR).

Balance sheet and income statement

quints report bilanz --at 2026-12-31
quints report erfolg --year 2026

bilanz values non-CHF balances at the report-date rate (same method Fava uses, so totals tie out) and splits the balancing figure into Gewinnvortrag and the fiscal year's result. Part of that result is unrealised FX: the report-date value of the foreign balances less what they were booked at. bilanz prints it (unrealized_fx in --json) until the revaluation books it. The fiscal year starts on 1 January of the --at year; --from moves the start for an extended first year. erfolg converts flows at each transaction's date and takes --from/--to for any period.

The equity section is labeled for your legal form: Eigenkapital, Stammkapital, or Aktienkapital.

The rows follow the minimum structure the law sets, in its order.2 They are filled from the KMU Kontenrahmen classes:1

Rows KMU codes
Nettoerlöse; Bestandesänderungen 3000–3899; 3900–3999
Material, Personal, übriger betrieblicher Aufwand, Abschreibungen 4, 5, 6000–6799, 6800–6899
Finanzaufwand / Finanzertrag 6900–6949 / 6950–6999
Betrieblicher Nebenerfolg 7000–7999
Betriebsfremder Aufwand / Ertrag 8000–8099 / 8100–8199
Ausserordentlicher, einmaliger oder periodenfremder Aufwand / Ertrag 8500–8509 / 8510–8599
Direkte Steuern 8900–8999

The income statement shows the rows after the financial result, with their subtotals, only when your books use them. On the balance sheet, Beteiligungen (1480–1499), nicht einbezahltes Kapital (1800–1899), the reserves (2900, 2950, 2955 Aufwertungsreserve, 2960) and eigene Kapitalanteile (2965, as a minus item) each have their own row. Together they make the reserves subtotal (2900–2969, own shares included), the same figure the single reserves row showed before. In --json it stays the reserves row of equity, with the positions under parts. Totals count it once.

Two checks keep the statements honest:

  • A code in no row (for example 8300, 1950 or 2750) is listed under the statement with its amount, never dropped.
  • The two results agree. The balance sheet's result must equal the income statement's result plus the unrealised FX, plus whatever beancount's balancing tolerance left in the books (a conversion like 100 EUR @ 0.93127 CHF booked against 93.13 CHF). If it doesn't, the balance sheet lists the gap. The usual cause is an account the income statement can't see: one without a kmu: code, or with a code in no row.

Auditor detail

quints report konten --year 2026

Kontoblätter: per-KMU-code transaction listings — every booking behind every statement line. This is what your Treuhänder asks for when a number looks off.

The PDF for your Treuhänder

quints report statements --year 2026 --lang de

Bilanz + Erfolgsrechnung as one PDF, in German (--lang de) or English, with your issuer identity from invoicing/issuer.yaml on it. --out picks the path. Both statements cover the same fiscal year: --from (default 1 January) to --at (default 31 December).

What the law asks of the annual accounts, and what the PDF does about it:

  • Prior-year figures. Each statement carries a second column with the previous calendar year's figures.3 A first year has none: with --from (an extended first year), or when nothing was booked the year before, the column is left out and report statements says so. Moved your books to quints mid-life? Date the opening-balance entry 31 December of the year before instead of 1 January, and the Bilanz column has that year's closing figures. After an extended first year, the next year's comparative column covers only the calendar year before it, not the whole first period.
  • Signatures. The last page has lines for place and date, the chair of the management body, and the person responsible for the financial reporting.4 In an Einzelfirma the owner signs both. A GmbH's managing director, or an AG's board chair, signs the first.
  • The notes (Anhang). Not included, and the PDF says so. You write them separately (see below).

It carries the same wordmark, colours and typefaces as your invoices (brand in invoicing/issuer.yaml). The PDF is PDF/A-2a, the archival format, and PDF/UA-1, so it stays readable and searchable for the ten years you keep it (Close the year).

The Bilanz page of the generated statements PDF, grouped by KMU
code

All report commands take --lang and --json.

If the ledger doesn't load cleanly (a mistyped include, a syntax error, a failing balance assertion), every report still renders and lists the errors under its figures, and in --json under violations. The PDF lists them in a box at the top of the first page. The statements are incomplete until you fix them.

Before the statements are final, run the year-end checklist: Close the year.

What quints doesn't do here

  • The Anhang (notes). Every company with full bookkeeping needs one: a GmbH, an AG, and an Einzelfirma above CHF 500'000 turnover.5 Write it with your Treuhänder. The Kontoblätter (quints report konten) are the detail behind it.
  • Profit appropriation and the shareholders' approval (GmbH/AG).
  • The tax return. The statements are its input, not the return.

  1. Schweizer Kontenrahmen KMU, Schulkontenrahmen KMU (SwissAccounting): classes 7 (Betrieblicher Nebenerfolg: 7000/7010, 7500/7510) and 8 (8000, 8100, 8500, 8510, 8900), and the Gesamtkostenverfahren layout on its last page. ↩

  2. Minimum structure of the balance sheet and income statement: Art. 959a and 959b OR, SR 220. Art. 959b Abs. 2 lists the income statement's positions, "8. betriebsfremder Aufwand und betriebsfremder Ertrag; 9. ausserordentlicher, einmaliger oder periodenfremder Aufwand und Ertrag; 10. direkte Steuern" among them. The Aufwertungsreserve is shown "unter der gesetzlichen Gewinnreserve gesondert" (Art. 725c Abs. 1 OR). The account codes follow the Schweizer Kontenrahmen KMU, edition 2023 (SwissAccounting). ↩↩

  3. Art. 958d Abs. 2 OR: "In der Jahresrechnung sind neben den Zahlen für das Geschäftsjahr die entsprechenden Werte des Vorjahres anzugeben." fedlex. ↩

  4. Art. 958 Abs. 3 OR: the Geschäftsbericht is signed "vom Vorsitzenden des obersten Leitungs- oder Verwaltungsorgans und der innerhalb des Unternehmens für die Rechnungslegung zuständigen Person". fedlex. ↩

  5. Art. 958 Abs. 2 OR (the annual accounts are the Bilanz, the Erfolgsrechnung and the Anhang) and Art. 959c OR (its contents). Art. 957 Abs. 2 OR exempts the Einzelunternehmen below CHF 500'000 turnover, which may keep simplified accounts. fedlex. ↩