Skip to content

Correct historical VAT rates in German regime#751

Open
rilla wants to merge 1 commit intoinvopop:mainfrom
rilla:fix-de-historical-rates
Open

Correct historical VAT rates in German regime#751
rilla wants to merge 1 commit intoinvopop:mainfrom
rilla:fix-de-historical-rates

Conversation

@rilla
Copy link
Contributor

@rilla rilla commented Mar 3, 2026

Summary

While working on #750 I stumbled upon some inaccuracies in historical tax rate definitions for the German regime (the COVID end date seemed to be off by a year and that raised my attention).

I searched the OECD.org database but couldn't find the dataset originally used when this regime was introduced in #221, so I researched authoritative sources and found that the original implementation had wrong dates, wrong rates, and a spurious entry in the reduced rate history.

Changes

Standard rate (Regelsteuersatz)

Entry Was Now Source
Post-COVID restoration 2022-01-01 2021-01-01 Destatis: "The reduced rates applied from 1 July to 31 December 2020."
Pre-1998 rate 16% 15% Bundestag WD-4-040-10 p.4: "Erhöhung des allgemeinen Umsatzsteuersatzes von 15% auf 16% ab dem 1.4.1998" ("Increase of the general VAT rate from 15% to 16% as of 1.4.1998")
1998 increase (new entry) missing 1998-04-01 → 16% Bundestag WD-4-040-10 p.4: "Erhöhung des allgemeinen Umsatzsteuersatzes von 15% auf 16% ab dem 1.4.1998" ("Increase of the general VAT rate from 15% to 16% as of 1.4.1998")

Reduced rate (ermäßigter Steuersatz)

Entry Was Now Source
Post-COVID restoration 2022-01-01 2021-01-01 Destatis: "The reduced rates applied from 1 July to 31 December 2020."
Historical rate 2007-07-01 → 7% and 1993-01-01 → 5% 1983-07-01 → 7% BMF: "Dieser ermäßigte Steuersatz liegt seit 1983 konstant bei 7%" ("This reduced tax rate has remained constant at 7% since 1983")

Sources

Replaced the generic OECD tax database link with three German government sources that directly back the rates defined in the file:

Secondary sources

For a consolidated overview of all historical German VAT rates in one place, see:

Didn't add this to tax_categories.go since it's not an official government source

Pre-Review Checklist

  • Opened this PR as a draft
  • Read the CONTRIBUTING.md guide.
  • Performed a self-review of my code.
  • Added thorough tests with at least 90% code coverage.
  • Modified or created example GOBL documents to show my changes in use, if appropriate.
  • Added links to the source of the changes in tax regimes or addons, either structured or in the comments.
  • Run go generate . to ensure that the Schemas and Regime data are up to date.
  • Reviewed and fixed all linter warnings.
  • Been obsessive with pointer nil checks to avoid panics.
  • Updated the CHANGELOG.md with an overview of my changes.
  • Marked this PR as ready for review.

And if you are part of the org:

  • Requested a review from Copilot and fixed or dismissed (with a reason) all the feedback raised.
  • Requested a review from @samlown.

@rilla rilla marked this pull request as ready for review March 3, 2026 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant