Remove VAT calculator
Take VAT out of a tax-inclusive price the right way: a gross of 120 at 20% is 100 net plus 20 of VAT, not the 96 you get by subtracting 20%. Works with standard, reduced, custom and zero rates. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Gross price
- 120
- Vat rate
- 20
- Net price
- 100
- Vat amount
- 20
- Decimal places
- 2
The remove VAT calculator separates a tax-inclusive gross price into the original net price and the value-added tax already included in it. Enter the gross price, supply the VAT percentage, and choose how many decimal places you need. The calculator applies the correct reverse-tax formula instead of merely subtracting the percentage from the total. It returns the rounded gross price, net price, VAT amount, rate, and precision in a predictable structure suitable for quick checks, bookkeeping workflows, invoice reviews, and automated systems.
Why removing VAT requires division
A gross price is the net price plus VAT calculated on that net price. This means a gross total at a 20 percent rate represents 120 percent of the underlying net amount, not an amount from which 20 percent can simply be subtracted. To reverse the calculation, the calculator divides the gross price by one plus the VAT rate expressed as a decimal.
The VAT amount is then the difference between the gross and recovered net prices. This distinction prevents a common mistake: subtracting 20 percent from a gross price of 120 produces 96, while correctly removing VAT produces a net price of 100 and VAT of 20. The same rule works with standard, reduced, and custom rates, including a zero rate.
Because the formula is explicit and deterministic, the result is useful both for a one-off browser calculation and for repeatable processing through an accounting, billing, or reconciliation integration.
Enter the gross price, rate, and precision
Both fields accept zero, but neither accepts a negative, missing, infinite, or nonnumeric value. The optional decimals field controls how monetary results are presented and defaults to two places, which suits many currencies. You may choose from zero through eight decimal places when whole-unit reporting or high-precision unit pricing requires a different convention.
The calculator first derives the unrounded net amount using the reverse-VAT formula, rounds the displayed gross and net values to the requested precision, and calculates the displayed VAT amount as their difference. Always use the rate that actually applies to the transaction and jurisdiction. This tool performs arithmetic; it does not determine which goods, services, exemptions, or dates make a particular legal rate applicable.
Interpret and use the returned amounts
Net price is the amount before VAT, VAT amount is the tax contained within the supplied total, and gross price is the tax-inclusive value after rounding to the chosen precision. This shape makes the output straightforward to store beside an invoice line, compare with a receipt, or feed into a reconciliation report. Small differences from another system can occur when that system rounds each invoice line before summing, uses more hidden precision, or allocates a document-level discount across items.
In those cases, reproduce the other system's rate, precision, and calculation level before treating a difference as an error. For a multi-line invoice, calculate each line independently only when the invoicing policy also rounds by line; otherwise reverse VAT from the relevant aggregate. The calculator never contacts a tax service, stores transaction data, or selects a jurisdiction.
Its narrow purpose is to apply the supplied rate reliably and return transparent arithmetic that can be reviewed or automated.
What you can do with it
Review a tax-inclusive receipt
Split a receipt total into its pre-tax value and the VAT already contained in the amount.
Reconcile invoice records
Compare gross ledger entries with expected net revenue and VAT liability at the recorded rate.
FAQ
What formula removes VAT from a gross price?
Net price equals gross price divided by one plus the VAT rate divided by 100. VAT amount equals gross price minus net price.
Why can I not just subtract the VAT percentage?
VAT is calculated as a percentage of the net price, while your gross value already includes that tax. Subtracting the same percentage from gross uses the wrong base.
How should I enter the VAT rate?
Enter it as a percentage number. For example, enter 20 for a 20 percent VAT rate.
How does rounding work?
Gross and net values are rounded to the requested zero to eight decimal places, and VAT is the rounded gross minus the rounded net so the components remain consistent.
Does this calculator determine the correct legal VAT rate?
No. You provide the rate. Confirm the applicable rate, exemptions, and tax treatment with current official guidance or a qualified adviser.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/finance/vat-reverse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"gross_price":120,"vat_rate":20}'const res = await fetch("https://api.kit.forhosting.com/finance/vat-reverse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"gross_price": 120,
"vat_rate": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/finance/vat-reverse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"gross_price": 120,
"vat_rate": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/finance/vat-reverse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"gross_price":120,"vat_rate":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"gross_price":120,"vat_rate":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/finance/vat-reverse", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"gross_price": 120,
"vat_rate": 20
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "finance.vat_reverse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Why removing VAT requires division
The API price begins at $0.002 per request, while the browser calculation can run directly on the page.
Enter the gross price, rate, and precision
Use gross_price for the complete amount that already includes VAT. Supply vat_rate as a percentage number, so a rate of 20 percent is entered as 20 rather than 0.20. That approach keeps the returned components internally consistent at the selected precision: net_price plus vat_amount equals gross_price.
Interpret and use the returned amounts
The response identifies gross_price, vat_rate, net_price, vat_amount, and decimals so downstream software does not need to infer what any number represents.
Integration use cases
Automate reverse-VAT calculations
Use the deterministic API response in billing imports, finance reports, or accounting data pipelines.
Technical questions
What does the API cost?
The API starts at $0.002 per request. The browser version can run free on this page.