Tools

VAT calculator UK: add or remove VAT at 20% or 5%

Add VAT to a price or take it off at 20%, 5% or any rate. Shows the price without VAT, the VAT and the total, with the working.

Enter a price, say whether it already includes VAT, and the calculator shows the price without VAT, the VAT and the price with VAT. It uses the UK rates, 20% and 5%, or any other rate you type, and shows the working.

The calculator needs JavaScript switched on in your browser.

How to take VAT off a price

To remove 20% VAT, divide the price by 1.2. The answer is the price without VAT, and the difference is the VAT.

For example, £120 ÷ 1.2 = £100, so the VAT is £20.

For the 5% rate, divide by 1.05 instead: £105 ÷ 1.05 = £100, with £5 of VAT.

There is also a shortcut for finding just the VAT. HMRC calls it the VAT fraction: at 20%, the VAT is one sixth of the price including VAT (£120 ÷ 6 = £20). At 5%, it is one twenty-first.

Price with 20% VAT Price without VAT VAT
£10.00 £8.33 £1.67
£50.00 £41.67 £8.33
£100.00 £83.33 £16.67
£120.00 £100.00 £20.00
£250.00 £208.33 £41.67
£1,000.00 £833.33 £166.67

The common mistake: taking 20% off

Taking 20% off a price that includes VAT gives the wrong answer. 20% of £120 is £24, which would leave £96, but the price without VAT is £100. The VAT was added to £100, so it is 20% of £100, not 20% of £120. Always divide by 1.2 rather than subtracting 20%.

How to add VAT to a price

To add 20% VAT, multiply by 1.2: £100 × 1.2 = £120. For 5%, multiply by 1.05. The calculator does this when you choose “Add VAT”.

UK VAT rates

Rate What it applies to Divide by (to remove) or multiply by (to add)
Standard, 20% Most goods and services 1.2
Reduced, 5% Some goods and services, for example children’s car seats and household gas 1.05
Zero, 0% Zero-rated goods and services, for example most food and children’s clothes No VAT to add or remove

Household electricity in Great Britain is zero-rated from 1 October 2026 to 31 March 2027; it stays at 5% in Northern Ireland, and other household fuels stay at 5%. The standard rate has been 20% since 4 January 2011; before that it was 17.5%. To work with an old 17.5% price, choose “Other” and type 17.5. GOV.UK lists which goods and services use each rate.

VAT in a spreadsheet

If the price with VAT is in cell A2, these formulas work in Excel, Google Sheets and LibreOffice:

  • Price without VAT: =ROUND(A2/1.2, 2)
  • VAT in a VAT-inclusive price: =A2-ROUND(A2/1.2, 2)
  • Add VAT to a price without VAT in cell B2: =ROUND(B2*1.2, 2)

Rounding each answer to two decimal places keeps the price without VAT and the VAT adding up exactly to the total, as they do on an invoice.

Questions people ask

How do I work out the VAT from a total?

At 20%, divide the total by 6. A £60 bill that includes VAT has £10 of VAT in it. At 5%, divide by 21.

What is 20% VAT on £100?

£20, which makes £120 including VAT.

Do I have to charge VAT?

Only if your business is VAT registered. You must register if your taxable turnover for the last 12 months goes over £90,000, or if you expect it to go over £90,000 in the next 30 days alone. You can choose to register below that. Prices to the public must include any VAT you charge.

Can I use this calculator on my own website?

Yes. The full code is below. It is a single block of HTML and JavaScript with no other files, so you can paste it into a WordPress Custom HTML block or any web page.

For a step-by-step guide with more examples, see how to take VAT off a price. More free tools are in the Tools section.

Sources

GOV.UK: VAT rates; HMRC: VAT guide (VAT Notice 700), section 7.3.1, VAT fractions; GOV.UK: when to register for VAT; GOV.UK: temporary zero rate of VAT on domestic electricity in Great Britain.

Use this calculator on your own site

You are welcome to use this calculator on your own website. Copy the code below into a Custom HTML block in WordPress, or into any web page. It needs no other files. We only ask that you keep the link to Braindumps at the bottom.

<!-- Braindumps VAT calculator (UK): add or remove VAT at 20%, 5%, 0% or any rate. Self-contained: no external files. -->
<div id="bd-vat">
<style>
#bd-vat{--bd-red:#d63333;--bd-line:rgba(127,127,127,.35);--bd-soft:rgba(127,127,127,.08);font:inherit;color:inherit;max-width:760px;margin:1.5em 0}
#bd-vat *{box-sizing:border-box}
#bd-vat [hidden]{display:none!important}
#bd-vat fieldset{border:1px solid var(--bd-line);border-radius:10px;padding:14px 16px 10px;margin:0 0 14px;min-width:0}
#bd-vat legend{font-weight:700;padding:0 6px}
#bd-vat label{display:block;font-size:.92em;margin-bottom:10px}
#bd-vat .amount{display:flex;align-items:center;border:1px solid var(--bd-line);border-radius:6px;margin-top:4px}
#bd-vat .amount span{padding:0 4px 0 12px;font-size:1.3em;opacity:.7}
#bd-vat .amount input{border:0;margin:0;font-size:1.3em}
#bd-vat input{width:100%;padding:9px 10px;margin-top:4px;border:1px solid var(--bd-line);border-radius:6px;font:inherit;background:transparent;color:inherit}
#bd-vat .seg{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px;border:0;padding:0}
#bd-vat .seg label{display:flex;align-items:center;gap:6px;margin:0;padding:8px 14px;border:1px solid var(--bd-line);border-radius:999px;cursor:pointer;font-size:.95em}
#bd-vat .seg input{width:auto;margin:0;accent-color:var(--bd-red)}
#bd-vat .seg label:has(input:checked){border-color:var(--bd-red);background:var(--bd-soft);font-weight:700}
#bd-vat .custom{max-width:160px}
#bd-vat .result{border:2px solid var(--bd-red);border-radius:10px;padding:12px 16px;background:var(--bd-soft)}
#bd-vat table{width:100%;border-collapse:collapse;margin:0}
#bd-vat td{padding:7px 0;border-bottom:1px solid var(--bd-line);font-size:1.05em}
#bd-vat td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
#bd-vat tr.main td{font-size:1.35em}
#bd-vat .tip{margin:10px 0 0;font-size:.92em}
#bd-vat details{margin-top:8px}
#bd-vat summary{cursor:pointer;font-weight:700}
#bd-vat pre{white-space:pre-wrap;font-size:.85em;margin:8px 0 0;background:transparent;border:0;padding:0}
</style>

<fieldset>
<legend>Your price</legend>
<label>Amount<span class="amount"><span aria-hidden="true">£</span><input id="bd-vat-amt" type="number" min="0" step="0.01" value="120" inputmode="decimal" aria-label="Amount in pounds"></span></label>
<div class="seg" role="radiogroup" aria-label="Does the amount include VAT?">
<label><input type="radio" name="bd-vat-mode" value="remove" checked> Remove VAT (price includes VAT)</label>
<label><input type="radio" name="bd-vat-mode" value="add"> Add VAT (price is without VAT)</label>
</div>
<div class="seg" role="radiogroup" aria-label="VAT rate">
<label><input type="radio" name="bd-vat-rate" value="20" checked> 20% standard</label>
<label><input type="radio" name="bd-vat-rate" value="5"> 5% reduced</label>
<label><input type="radio" name="bd-vat-rate" value="0"> 0% zero</label>
<label><input type="radio" name="bd-vat-rate" value="other"> Other</label>
</div>
<label id="bd-vat-otherwrap" class="custom" hidden>Rate (%)<input id="bd-vat-other" type="number" min="0" max="100" step="0.1" value="17.5" inputmode="decimal"></label>
</fieldset>

<div class="result" aria-live="polite">
<table><tbody>
<tr id="bd-vat-r1"><td>Price without VAT</td><td id="bd-vat-net"></td></tr>
<tr id="bd-vat-r2"><td id="bd-vat-vatlabel">VAT</td><td id="bd-vat-vat"></td></tr>
<tr id="bd-vat-r3"><td>Price with VAT</td><td id="bd-vat-gross"></td></tr>
</tbody></table>
<p class="tip" id="bd-vat-tip"></p>
<details><summary>Show the working</summary><pre id="bd-vat-working"></pre></details>
</div>

<p class="bd-credit" style="font-size:.85em;opacity:.75;margin:10px 0 0">VAT calculator by <a href="https://braindumps.co.uk/remove-vat-from-a-price-tool-code-included-for-your-own-website/">Braindumps.co.uk</a></p>
<script>
(function () {
  "use strict";
  /* BEGIN CALC */
  function pennies(x) { return Math.round((x + Number.EPSILON) * 100) / 100; }
  function gcd(a, b) { return b ? gcd(b, a % b) : a; }
  function vatFraction(ratePct) {
    if (!(ratePct > 0)) { return "0"; }
    var num = Math.round(ratePct * 100), den = Math.round((100 + ratePct) * 100), g = gcd(num, den);
    return (num / g) + "/" + (den / g);
  }
  function vatCalc(amount, ratePct, mode) {
    var r = ratePct / 100, net, vat, gross;
    if (mode === "remove") { gross = pennies(amount); net = pennies(amount / (1 + r)); vat = pennies(gross - net); }
    else { net = pennies(amount); vat = pennies(amount * r); gross = pennies(net + vat); }
    return { net: net, vat: vat, gross: gross, multiplier: 1 + r, fraction: vatFraction(ratePct) };
  }
  /* END CALC */

  var root = document.getElementById("bd-vat");
  if (!root) { return; }
  function el(id) { return document.getElementById(id); }
  function money(v) { return "£" + v.toLocaleString("en-GB", { minimumFractionDigits: 2, maximumFractionDigits: 2 }); }
  function pick(name) { var c = root.querySelector('input[name="' + name + '"]:checked'); return c ? c.value : ""; }
  function num(s) { var v = parseFloat(s); return isFinite(v) && v >= 0 ? v : 0; }
  function mult(m) { return String(Math.round(m * 10000) / 10000); }

  function update() {
    var mode = pick("bd-vat-mode");
    var rateSel = pick("bd-vat-rate");
    el("bd-vat-otherwrap").hidden = rateSel !== "other";
    var rate = rateSel === "other" ? Math.min(100, num(el("bd-vat-other").value)) : parseFloat(rateSel);
    var amt = num(el("bd-vat-amt").value);
    var r = vatCalc(amt, rate, mode);
    el("bd-vat-net").textContent = money(r.net);
    el("bd-vat-vat").textContent = money(r.vat);
    el("bd-vat-gross").textContent = money(r.gross);
    el("bd-vat-vatlabel").textContent = "VAT at " + rate + "%";
    el("bd-vat-r1").className = mode === "remove" ? "main" : "";
    el("bd-vat-r3").className = mode === "add" ? "main" : "";
    var m = mult(r.multiplier);
    el("bd-vat-tip").textContent = rate === 0 ? "At 0% there is no VAT to add or take off." :
      (mode === "remove" ? "Quick way: divide by " + m + " to take the VAT off." : "Quick way: multiply by " + m + " to add the VAT.");
    var w = [];
    if (mode === "remove") {
      w.push("Price without VAT = " + money(amt) + " ÷ " + m + " = " + money(r.net));
      w.push("VAT               = " + money(amt) + " − " + money(r.net) + " = " + money(r.vat));
      if (rate > 0) { w.push("Check: the VAT is " + r.fraction + " of the price with VAT (" + money(amt) + " × " + r.fraction + " = " + money(r.vat) + ")"); }
    } else {
      w.push("VAT            = " + money(amt) + " × " + rate + "% = " + money(r.vat));
      w.push("Price with VAT = " + money(amt) + " + " + money(r.vat) + " = " + money(r.gross));
      w.push("Same as        = " + money(amt) + " × " + m + " = " + money(r.gross));
    }
    el("bd-vat-working").textContent = w.join("\n");
  }
  root.addEventListener("input", update);
  root.addEventListener("change", update);
  update();
})();
</script>
</div>

Get new Braindumps guides by email

One email a week with new guides, the best free 3D prints, LEGO news and tools. Unsubscribe at any time.

No spam. Read our privacy policy.