:root {
–primary-color: #2c3e50;
–secondary-color: #34495e;
–accent-color: #27ae60;
–text-color: #333;
–bg-color: #f9f9f9;
–border-radius: 8px;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: var(–text-color);
max-width: 800px;
margin: 0 auto;
padding: 20px;
background-color: #fff;
}
.calculator-wrapper {
background: var(–bg-color);
padding: 30px;
border-radius: var(–border-radius);
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
margin-bottom: 40px;
border: 1px solid #e0e0e0;
}
.form-group {
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: var(–primary-color);
}
.input-group {
position: relative;
}
.input-group span {
position: absolute;
left: 12px;
top: 50%;
transform: translateY(-50%);
color: #7f8c8d;
font-weight: bold;
}
input[type="number"] {
width: 100%;
padding: 12px 12px 12px 30px;
border: 1px solid #bdc3c7;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
input[type="number"]:focus {
border-color: var(–accent-color);
outline: none;
box-shadow: 0 0 0 2px rgba(39, 174, 96, 0.2);
}
button.calc-btn {
background-color: var(–accent-color);
color: white;
border: none;
padding: 14px 24px;
font-size: 16px;
font-weight: bold;
border-radius: 4px;
cursor: pointer;
width: 100%;
transition: background-color 0.2s;
}
button.calc-btn:hover {
background-color: #219150;
}
.results-area {
margin-top: 30px;
padding: 20px;
background-color: #fff;
border: 1px solid #e0e0e0;
border-radius: 4px;
display: none;
}
.result-row {
display: flex;
justify-content: space-between;
padding: 10px 0;
border-bottom: 1px solid #f0f0f0;
}
.result-row:last-child {
border-bottom: none;
font-weight: bold;
font-size: 1.1em;
color: var(–primary-color);
margin-top: 10px;
border-top: 2px solid #e0e0e0;
padding-top: 15px;
}
.result-label {
color: var(–secondary-color);
}
.result-value {
font-weight: 700;
color: var(–primary-color);
}
.tooltip {
font-size: 0.85em;
color: #7f8c8d;
margin-top: 5px;
}
h1, h2, h3 {
color: var(–primary-color);
}
h1 { text-align: center; margin-bottom: 30px; }
.content-section {
margin-top: 40px;
}
.note {
background-color: #fff3cd;
border-left: 5px solid #ffc107;
padding: 15px;
margin: 20px 0;
font-size: 0.9em;
}
Understanding the Transferable Nil Rate Band (TNRB)
In the United Kingdom, Inheritance Tax (IHT) is charged on the estate of a deceased person above a certain threshold, known as the Nil Rate Band (NRB). Currently, the standard NRB is £325,000. This is the amount you can pass on without paying any IHT.
How Transferability Works
Before October 2007, if a spouse or civil partner did not use their full tax-free allowance when they died, the unused portion was lost. Since the introduction of the Transferable Nil Rate Band, spouses and civil partners can transfer any unused percentage of their NRB to the surviving partner.
This effectively allows a married couple or civil partners to double their IHT-free allowance to as much as £650,000 (2 x £325,000) on the second death.
Important: It is the percentage of the unused allowance that is transferred, not the specific monetary amount from the past. This benefits the survivor if the NRB has increased since the first death.
The Calculation Logic
To calculate the Transferable Nil Rate Band, you must determine how much of the first partner's allowance was "used up" when they died. Assets passed to:
- Exempt Beneficiaries: Assets left to a surviving spouse/civil partner or a registered charity are exempt from IHT and do not use up the NRB.
- Non-Exempt (Chargeable) Beneficiaries: Assets left to children, friends, or relatives other than the spouse are chargeable and use up the NRB.
Example:
If the husband died when the NRB was £300,000, and he left £150,000 to his children (Non-Exempt), he used 50% of his allowance. The remaining 50% is unused.
When the wife dies later (assuming current NRB is £325,000), her estate can claim that unused 50%.
50% of £325,000 = £162,500.
Her total allowance = Own £325,000 + Transferred £162,500 = £487,500.
Residence Nil Rate Band (RNRB)
This calculator focuses specifically on the standard Nil Rate Band. There is an additional allowance called the Residence Nil Rate Band (currently up to £175,000 per person) available when passing a main residence to direct descendants. This is calculated separately and can also be transferable, potentially increasing the total tax-free threshold for a couple to £1 million.
Claiming the Transfer
The transfer does not happen automatically. The executors of the second estate must claim the unused portion of the first spouse's NRB by completing the relevant HMRC forms (usually IHT402) within 2 years of the second death.
function calculateTNRB() {
// 1. Get Input Values
var historicNRBInput = document.getElementById("historicNRB").value;
var chargeableAssetsInput = document.getElementById("chargeableAssets").value;
var currentNRBInput = document.getElementById("currentNRB").value;
// 2. Parse values to floats
var historicNRB = parseFloat(historicNRBInput);
var chargeableAssets = parseFloat(chargeableAssetsInput);
var currentNRB = parseFloat(currentNRBInput);
// 3. Validation
if (isNaN(historicNRB) || isNaN(chargeableAssets) || isNaN(currentNRB)) {
alert("Please enter valid numbers in all fields.");
return;
}
if (historicNRB 1) {
fractionUsed = 1;
}
var percentUsed = fractionUsed * 100;
var percentUnused = 100 – percentUsed;
// Calculate the transferable value based on CURRENT NRB
var transferableValue = (percentUnused / 100) * currentNRB;
// Calculate total available for survivor
var totalAllowance = currentNRB + transferableValue;
// 5. Display Results
var resultDiv = document.getElementById("result");
resultDiv.style.display = "block";
// Format numbers for UK currency/percent
var formatter = new Intl.NumberFormat('en-GB', {
style: 'currency',
currency: 'GBP',
minimumFractionDigits: 2
});
document.getElementById("usedPercentDisplay").innerText = percentUsed.toFixed(2) + "%";
document.getElementById("unusedPercentDisplay").innerText = percentUnused.toFixed(2) + "%";
document.getElementById("transferableValueDisplay").innerText = formatter.format(transferableValue);
document.getElementById("totalAllowanceDisplay").innerText = formatter.format(totalAllowance);
}