Created Started Finished
By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Declare whether the turnover figures include the VAT in them The eCH-0217 declaration carries no tax on a turnover line, only the turnover and the rate, plus a grossOrNet flag that decides whether the ESTV computes the tax on that figure or out of it. We hardcoded the Brutto code in the element while ignoring the field that was meant to carry it, so a ledger that books revenue net of VAT declared net figures under a flag that said they were gross, and the ESTV carved 8.1% out of an amount the tax was not in. It used to agree. Filing 2024-Q1, Ziffer 303 was 1'866.00 with 139.82 of tax, which is the extraction, and that matched because the report summed the revenue postings gross. Summing moved to net while the declared basis stayed Brutto, and the quarters since then had no domestic revenue to disagree over. 2026-Q3 was the first one that did: 6496.49 of turnover carrying 526.22 of collected tax was shown in the portal as 486.79, a shortfall of 39.43 that nothing in the packet contradicted. Which one a figure is follows from the ledger rather than from a setting. A VAT posting written with an inclusive ratio (~) names a part of the revenue posting beside it, so that posting is gross; an exclusive one (~e) is money on top of it, so that posting is net. Read it off the ratio and emit the matching code. A quarter whose revenues disagree now fails instead of picking one, because the declaration has a single flag for every turnover figure in it. A quarter with no domestic revenue says Netto, which is what the ESTV recommends where there is a choice, and which is why the empty scenario's golden changes.