Nil Rate Band Calculator

UK Nil Rate Band (IHT) Calculator

Estimate your Inheritance Tax liability using current UK thresholds and rules.

Calculation Summary

Total Nil Rate Band: £0 Total Residence NRB: £0 Total Tax-Free Threshold: £0
Estimated Tax Due: £0 Net Estate to Heirs: £0

Understanding the Nil Rate Band (NRB)

Inheritance Tax (IHT) in the UK is a tax on the estate (the property, money, and possessions) of someone who has died. The Nil Rate Band is the fixed threshold under which no Inheritance Tax is payable.

Standard Nil Rate Band (NRB)

The current standard Nil Rate Band is £325,000. This has been frozen until April 2028. If the total value of your estate is below this threshold, there is usually no IHT to pay. Any value above this amount is typically taxed at 40%.

Residence Nil Rate Band (RNRB)

The Residence Nil Rate Band is an additional allowance introduced to help families pass on the family home. It currently stands at £175,000. To qualify for the RNRB:

  • You must leave your home (or a share of it) to your "direct descendants" (children, grandchildren, etc.).
  • The value of the estate must be within certain limits (tapering applies for estates over £2 million).

Transferring Allowances

If a spouse or civil partner dies and does not use their full Nil Rate Band, the unused percentage can be transferred to the surviving partner's estate. This effectively allows a couple to pass on up to £1 million tax-free (£325k + £325k + £175k + £175k).

The Tapering Rule

For large estates, the Residence Nil Rate Band is subject to tapering. For every £2 that the estate value exceeds £2 million, the RNRB is reduced by £1. This means for very large estates, the additional property threshold may be completely lost.

Practical Example:

Estate Value: £800,000

Situation: Individual passing a home to children. Full standard NRB (£325k) and full RNRB (£175k) available.

Total Threshold: £500,000

Taxable Amount: £300,000

Tax Due (40%): £120,000

function calculateIHT() { // Basic NRB constants var baseNRB = 325000; var baseRNRB = 175000; var taperThreshold = 2000000; // Get Inputs var estateVal = parseFloat(document.getElementById('estateValue').value) || 0; var transNRBPct = parseFloat(document.getElementById('transferredNRBPercent').value) || 0; var residenceVal = parseFloat(document.getElementById('residenceValue').value) || 0; var transRNRBPct = parseFloat(document.getElementById('transferredRNRBPercent').value) || 0; var isPassingToDescendants = document.getElementById('passingToDescendants').checked; // Limit percentages if (transNRBPct > 100) transNRBPct = 100; if (transRNRBPct > 100) transRNRBPct = 100; // 1. Calculate Standard NRB var totalNRB = baseNRB + (baseNRB * (transNRBPct / 100)); // 2. Calculate Residence NRB var totalRNRBAvailable = 0; if (isPassingToDescendants && residenceVal > 0) { var potentialRNRB = baseRNRB + (baseRNRB * (transRNRBPct / 100)); // Handle Tapering if (estateVal > taperThreshold) { var taperAmount = Math.floor((estateVal – taperThreshold) / 2); potentialRNRB = potentialRNRB – taperAmount; if (potentialRNRB < 0) potentialRNRB = 0; } // RNRB is limited to the value of the residence totalRNRBAvailable = Math.min(potentialRNRB, residenceVal); } // 3. Final Calculation var combinedThreshold = totalNRB + totalRNRBAvailable; var taxableAmount = estateVal – combinedThreshold; if (taxableAmount < 0) taxableAmount = 0; var taxDue = taxableAmount * 0.40; var netEstate = estateVal – taxDue; // Display Results document.getElementById('resTotalNRB').innerText = "£" + totalNRB.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0}); document.getElementById('resTotalRNRB').innerText = "£" + totalRNRBAvailable.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0}); document.getElementById('resTotalThreshold').innerText = "£" + combinedThreshold.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0}); document.getElementById('resTaxDue').innerText = "£" + taxDue.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0}); document.getElementById('resNetEstate').innerText = "£" + netEstate.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 0}); document.getElementById('resultsArea').style.display = "block"; }

Leave a Comment