VAT miscalculated on WooCommerce
Wrong VAT on WooCommerce almost always comes from a setting, not a bug: the calculation depends both on the address base chosen under WooCommerce > Settings > General and on the rate table configured under WooCommerce > Settings > Tax. The mix-up I see most often is confusing the "prices include tax" setting with the rates themselves, two separate things that interact badly if one gets overlooked.
How I go about it
-
Checking the calculation base
I look at WooCommerce > Settings > General > "Calculate tax based on": shipping address, billing address, or shop base address. This choice changes the rate applied as soon as the customer isn’t in the same zone as the shop.
-
Checking the tax-inclusive/exclusive setting
I check "Do prices include tax?" separately from the rate table: a price entered inclusive with a badly set rate produces a displayed VAT amount that looks wrong even though each setting seems fine on its own.
-
Checking tax classes per product
A tax class (standard, reduced rate, zero rate) applies per product. An item left on the wrong default class silently uses the wrong rate, often after an import or a quickly created listing.
-
Testing with caching off
I recheck the cart and checkout with caching disabled: a cached totals fragment can show a stale VAT amount even after the settings have been fixed.
-
Identifying a need for specific compliance
Selling digital goods, crossing EU distance-selling thresholds: I check whether the situation goes beyond what WooCommerce core calculates natively and needs a dedicated compliance extension.
What I handle regularly
- The VAT shown in the cart doesn’t match the amount on the product page
- Some products show no VAT at all, with no obvious explanation
- The rate applied changes with the customer’s address in a way that doesn’t seem logical
- VAT still shows the old rate after a change in WooCommerce > Settings > Tax
- I sell in France and abroad and I’ve lost track of which rate applies where
Two settings that often get confused
WooCommerce separates two decisions that look related but aren’t: how a price is entered ("Do prices include tax?", under WooCommerce > Settings > General) and the rate actually applied (the table under WooCommerce > Settings > Tax). Entering tax-inclusive prices while leaving a rate at zero, or the reverse, produces a displayed amount that looks inconsistent even though each screen, taken on its own, seems correctly filled in. The most visible case is doubled VAT: prices typed tax-inclusive while the setting says prices are entered exclusive of tax are treated as net amounts, and WooCommerce adds tax on top. The customer pays VAT twice without a single rate being wrong.
On top of that come tax classes: standard, reduced rate, zero rate. Every product is tied to one of them, and a product left on an unsuitable default class silently applies the wrong rate, with no error surfacing anywhere in the WordPress admin.
Finally, WooCommerce core doesn’t handle certain special cases: selling digital goods with their own VAT rules, or crossing intra-EU distance-selling thresholds (the OSS scheme), needs a dedicated tax compliance extension, not a simple rate tweak.
Worth reading too
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.