Sales Tax, VAT and ROAS: Keep Tax Out of Revenue and Profit
Sales tax and VAT aren't your money. How US tax added at checkout and UK and EU tax-inclusive prices change ROAS, what Meta and Google count, with a worked example.
On this page
Sales tax and VAT are money you collect for governments, so keep them out of revenue whenever you work out ROAS, MER or profit. In the US, sales tax is normally added on top of the price at checkout. In the UK and EU, the price shoppers see already includes VAT, which is 20% at the UK standard rate. If the purchase value your ads report includes tax, ROAS looks better than it really is, by the tax rate.
Key takeaways
- Tax you collect isn't revenue. Report ROAS, MER and margin on sales before tax.
- US sales tax is usually added at checkout. UK and EU prices include VAT, so the tax sits inside the price.
- To take VAT out of a tax-inclusive price, divide by 1 plus the rate: $120 at 20% VAT is $100 of revenue.
- Meta and Google count whatever purchase value your store sends. Check whether it includes tax and shipping.
- In Shopify reports, use Net sales, which is before tax, not Total sales, which adds tax.
Why tax isn't revenue
When a customer pays $108 for a $100 product plus $8 of sales tax, the $8 isn't yours. You hold it for a while and pass it on. The same goes for VAT inside a UK or EU price. None of it pays for product, shipping or ads.
So any ratio built on revenue should leave tax out:
- ROAS = revenue before tax ÷ ad spend.
- MER = net sales before tax ÷ total ad spend. See MER vs ROAS.
- Contribution margin = (revenue before tax − variable costs) ÷ revenue before tax. See contribution margin.
If tax sneaks into the top line, every one of these looks better than it is, and your break-even ROAS test passes campaigns that don't make money.
US sales tax vs UK and EU VAT
The two systems show up in prices differently, so the fix differs too.
| Market | How prices are shown | Rate | Revenue to count |
|---|---|---|---|
| United States | Usually before tax, with sales tax added at checkout | Set by states and local areas | The price before tax |
| United Kingdom | Including VAT; the CMA says the total price should normally include taxes such as VAT (CMA) | 20% standard, 5% reduced, 0% zero (GOV.UK) | The price ÷ 1.20 at the standard rate |
| European Union | Including VAT; shoppers must be told the total price including all taxes (Your Europe) | Each country sets its own; the standard rate can't be below 15% (Your Europe) | The price ÷ (1 + that country's rate) |

How Shopify's tax setting changes the numbers
Shopify has one setting that decides whether your listed prices include tax: Include sales tax in product price and shipping rate, under Settings > Taxes and duties (Shopify: include or exclude taxes). With it on, Shopify works out the tax inside each price as tax rate × price ÷ (1 + tax rate). A $100 price at a 10% rate contains $9.09 of tax, so the revenue is $90.91. You can also include or exclude tax depending on the customer's market.
The setting changes what the customer sees, not what you earn. A $100 product with tax added at checkout and a $110 product with tax included both leave you $100 at a 10% rate.
It matters most when you sell into several countries at one tax-inclusive price. With illustrative rates, a €60 price leaves €50 of revenue at 20% VAT but €48 at 25%. Same price, less money, and a different break-even in each market.
Shopify's sales reports already separate tax for you (Shopify sales report):
- Gross sales is product price × quantity, before taxes, shipping, discounts and returns.
- Net sales is gross sales minus discounts and returns. No tax.
- Total sales adds taxes, duties, shipping charges and fees.
Use Net sales for ROAS and MER. Total sales is the number that most often sneaks tax into a dashboard.
What Meta and Google count as purchase value
Neither platform knows which part of a purchase value is tax. Meta's Purchase event needs a value and a currency, and the value is simply what your store sends (Meta pixel reference). Google Ads records the conversion value in your tag, which can differ for every order (About conversion values).
Depending on the app or tag you use, that value can be the product subtotal, or an order total that includes tax and shipping. To find out which:
- Place a test order with a known subtotal, tax and shipping.
- Find that purchase in Meta Events Manager and in Google Ads conversions.
- Compare the value each one recorded with the Shopify order.
If the value includes tax, either change what your tag sends or take tax out when you report. If you change the value, reported ROAS will drop on the day you switch. That's a reporting change, not a performance change, so reset targets at the same time, especially any target ROAS bidding.
A worked example
An illustrative US-based brand sells to customers in the US and the UK and reports everything in US dollars. Its pixel sends the amount the shopper paid. Each campaign spends $2,000 in the month. Contribution margin before ads is 30% of revenue before tax, so break-even ROAS is 1 ÷ 0.30, about 3.33x.
- US campaign. Reported purchase value is $8,640, including an illustrative 8% sales tax added at checkout. Revenue before tax is $8,640 ÷ 1.08 = $8,000.
- UK campaign. UK prices include 20% VAT. Reported purchase value is $7,800. Revenue before VAT is $7,800 ÷ 1.20 = $6,500.

On reported numbers, both campaigns clear the 3.33x break-even: 4.32x and 3.90x. With tax taken out, the US campaign is at 4.00x and makes $8,000 × 30% − $2,000 = $400. The UK campaign is at 3.25x, below break-even, and loses $6,500 × 30% − $2,000 = −$50. The reported view said it made $7,800 × 30% − $2,000 = $340.
The gap is biggest where tax is highest. A brand selling mostly into 20%-plus VAT markets can scale a campaign that's quietly losing money for months.
Other things to keep out of revenue
- Duties you collect. Shopify's Total sales includes duties; they're pass-through money too.
- Shipping charged to customers. Pick one rule and keep to it. If you count shipping income as revenue, count shipping cost as a cost. Mixing the two makes contribution margin look better than it is.
- Refunds. A refund gives back the tax too, so take out the pre-tax amount. True ROAS after refunds covers the rest.
How to fix your numbers
- Check what your pixel and tags send. Use the test-order method above.
- Report on revenue before tax. In Shopify, that's Net sales.
- Set break-even per market. Work out contribution margin on prices before VAT for each country you sell into.
- Keep one definition everywhere. ROAS in Ads Manager, MER in your dashboard and POAS in your P&L should all use the same revenue.
- Note the change date. If you switch purchase value from total to subtotal, write down the date so nobody mistakes the drop for a bad week.
Tera Ads works out profit for the whole store from Shopify sales, product cost (from the margin you set, 70% by default), Meta Ads and Google Ads spend, shipping, payment fees, returns and refunds, with returns counted in the month the order was placed. It also shows every Meta Ads and Google Ads campaign in one table with the ROAS each platform reports and the money-wasters marked. It's free for one business, with no card needed. Whatever tool you use, check how it treats tax before you trust its revenue figure.
Frequently asked questions
Should ROAS include sales tax?
No. Sales tax is collected for the government and isn't revenue. Work out ROAS on revenue before tax, or it will look better than it is by the tax rate.
Does Meta include tax in the purchase value?
Meta counts whatever value your store sends with the Purchase event. Depending on your integration, that can include tax and shipping. Place a test order and compare the value in Events Manager with your Shopify order.
Does Shopify's Net sales include tax?
No. In Shopify's sales reports, Net sales is gross sales minus discounts and returns, before tax. Total sales adds taxes, duties, shipping charges and fees.
How do I remove VAT from a price?
Divide the tax-inclusive price by 1 plus the VAT rate. At the UK standard rate of 20%, a £60 price is £50 of revenue and £10 of VAT.
Should shipping charges count as revenue for ROAS?
Either way can work if you're consistent. If you include shipping income in revenue, include shipping costs in your costs, and use the same definition on every channel.
Why did ROAS drop when I changed the conversion value?
Because the reported value got smaller, not because sales fell. Moving from an order total that includes tax to a pre-tax subtotal lowers ROAS by the tax share overnight. Reset targets on the new basis.