Buying Costs

How the numbers are made

Every figure on this site comes from one rules engine reading a set of rule files. This page says what the engine does, what it does not do, and where each rule comes from.

Rules are data, with dates

Each country and region has its own rule file: 10 files today, holding 16 versions. Rates, bands, conditions and sources are data in those files; the engine that reads them is the same for every country, so a rate change never touches code.

A region starts from its country's file and lists only what differs. Andalusia builds on Spain, Catalonia builds on Spain, Madrid (Comunidad de Madrid) builds on Spain, Valencian Community builds on Spain, Azores builds on Portugal (mainland), Madeira builds on Portugal (mainland) and England builds on United Kingdom.

Every version has a start date and, once it is replaced, an end date. The calculator uses the version in force on the purchase date you enter, so an old date keeps its old answer and a date after a change gets the new rules. A new version can start from an earlier one and list only what changed.

Every version of every rule file
RulesFromToStarts from
Spain1 Jan 2026no end date
Andalusia1 Jan 2026no end daterules for Spain
Catalonia1 Jan 2026no end daterules for Spain
Madrid (Comunidad de Madrid)1 Jan 2026no end daterules for Spain
Valencian Community1 Jan 202631 May 2026rules for Spain
Valencian Community1 Jun 2026no end dateversion of 1 Jan 2026
Portugal (mainland)1 Jan 202624 May 2026
Portugal (mainland)25 May 2026no end dateversion of 1 Jan 2026
Azores1 Jan 202624 May 2026rules for Portugal (mainland)
Azores25 May 2026no end dateversion of 1 Jan 2026
Madeira1 Jan 202624 May 2026rules for Portugal (mainland)
Madeira25 May 2026no end dateversion of 1 Jan 2026
United Kingdom1 Jan 20248 Dec 2024
United Kingdom9 Dec 2024no end dateversion of 1 Jan 2024
England31 Oct 202431 Mar 2025rules for United Kingdom
England1 Apr 2025no end dateversion of 31 Oct 2024

How a line is worked out

Each line of the bill is one component: a label, whether it is a tax or a fee, a condition saying when it applies (new or resale, main or second home, residency, age, first-time buyer, owning another home, the price), and one of these ways to work out the amount:

  • A flat rate: one percentage of the price or the taxable value. Used in: Spain, Andalusia, Catalonia, Madrid (Comunidad de Madrid), Valencian Community, Portugal (mainland) and England.
  • Bands: each slice of the value is taxed at its own rate, like income tax. Used in: Spain, Catalonia, Portugal (mainland) and England.
  • Slabs: the whole value is taxed at the rate of the band it falls in. Used in: Madrid (Comunidad de Madrid) and Valencian Community.
  • A fixed amount by band: the band the value falls in sets the amount, like a fee scale. Used in: United Kingdom.
  • Rate minus deduction: the value times its band's rate, minus a fixed amount for that band. Used in: Portugal (mainland).
  • An estimate: a low, typical and high figure for fees nobody regulates. Used in: Spain, Portugal (mainland) and United Kingdom.

In Spain, Andalusia, Catalonia, Madrid (Comunidad de Madrid), Valencian Community and Portugal (mainland), taxes are charged on the taxable value: the higher of the price and the official value of the property. If you don't enter an official value, the engine uses the price and says so in the notes.

Some lines are rounded down to the whole unit, as the tax authority does: Stamp Duty Land Tax, Stamp Duty Land Tax, first-time buyer relief, SDLT higher rates for an additional home (+5%) and SDLT non-resident surcharge (+2%).

Taxes are added up exactly. Fees that nobody regulates (lawyers, conveyancers, searches) and fees whose official scales are not modeled yet are estimates with a low, typical and high figure. The total uses the typical figure; the range adds up all the low ends and all the high ends.

Estimates, and figures not confirmed

An estimate is a market figure, not a quote, and it is always labelled as one. A figure or date that could not be confirmed against a source is flagged in the rule file with the reason, and the calculator highlights it in yellow on its line and in the cost bar. Today 3 items are flagged across all versions:

How the rules are checked

The engine is tested against 55 known results: 6 worked examples published by a government or tax authority, 8 from secondary sources such as tax guides, and 41 worked out by hand from the published rates, with the arithmetic written next to each. Every version of every rule file must have at least one of these cases, or the tests fail.

Other tests run every place for a spread of buyers and prices, on every version's start date, and check that exactly one main purchase tax applies, that no line is negative, and that taxes never fall as the price rises.

A scheduled check fetches the cited pages, compares each page's text with a stored fingerprint, and reports any page that changed, any review date due within 30 days, everything still flagged as not confirmed, and any source not checked in the last 180 days. A changed page means a person reads it again and, if a rate moved, adds a new version. 29 of the 29 cited pages have a stored fingerprint today.

Next reviews due: Spain by 31 Dec 2026, Portugal (mainland) by 31 Dec 2026 and England by 1 Apr 2027.

What the engine does not cover

  • Notary and land registry fees are estimates, although Spain and the UK publish fee scales for them.
  • Madrid's lower stamp duty bands on new builds.
  • Young-buyer rates that depend on income, in Catalonia and the Valencian Community.
  • Rates for large families and for buyers with a disability.
  • The annual property tax, which mostly cannot be worked out from public data.
  • Mortgage costs.
  • Places other than the 8 listed on the calculators page.

The calculator does not give tax or legal advice. Confirm the figures with a lawyer or notary in the country where you are buying.

Every source

29 sources are cited: 27 are marked official (the law, a tax authority or a government site), 2 are marked secondary (tax guides, adviser alerts, transcribed tables). A marked source carries its label wherever it appears.