# finance.tax.vat-rate
The rate is not a constant in the code. It is a dated row in
data/vat-rules.json, and the lookup takes the date of supply.
That is the difference between a system that can still reprint a 2009 invoice
correctly and one that silently reprints it at today's rate. UK VAT was 15% in
2009, 17.5% in 2010 and 20% since 2011; UK hospitality was 5% for part of the
pandemic; and the Irish tourism rate has moved between 9% and 13.5% four times
since 2011.
When a rate changes, publish a new version of this capability's data.
Application code does not change at all - that is what 1.1.0 is: 1.0.0 plus the
Irish hospitality history, no implementation change. And 1.2.0 is 1.1.0 plus
Ireland's temporary 21% standard rate from 1 September 2020 to 28 February
2021, which 1.1.0 missed (source: Revenue, "Current VAT rates",
https://www.revenue.ie/en/vat/vat-rates/search-vat-rates/current-vat-rates.aspx).
This version also declares its effective-date columns, so a project can install
`history=current` and ship only the rules still in force. A build that does will
refuse a date before its horizon rather than answer it with today's rate.
1.2.1 fixes Python accepting a trailing newline or non-ASCII digits in onDate, and names the parameter `onDate` in the malformed-date error in every language (Python and Rust said `on_date`); adds tests.
## Before you rely on this
**Not professional advice.** This capability calculates tax figures from published rules. It is a software component for developers, not tax advice. Rules change and every rate here has an effective date. Check that the dates cover your case. Verify results against the official sources listed above, and have a chartered accountant or tax adviser review how you use it, before anyone relies on the output. Provided "as is" under its licence, without warranty.
**Unreviewed.** This capability's implementations agree in every language and pass its published test vectors, which were worked out from the official sources cited. But no qualified chartered accountant or tax adviser has yet checked those vectors, or confirmed that the capability covers the cases it claims. Treat it as a draft. Do not use it for real people, money or decisions without your own expert review. Once a qualified reviewer signs off, this notice is replaced with their name, qualification and the date. Each new version needs fresh sign-off.
## Notices
Contains public sector information licensed under the Open Government
Licence v3.0 (https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/).
1.2.2 marks it unreviewed and adds its attribution notices (NOTICE). The code and the tests are unchanged.