AVC Tax Savings Calculator
by Frank Liu
HTML
<h2>AVC Tax Savings Calculator</h2>
<label for="salary">Annual Salary (£): </label>
<input type="number" id="salary" placeholder="e.g. 60000" /><br />
<label for="avc">AVC Amount (£): </label>
<input type="number" id="avc" placeholder="e.g. 10000" /><br />
<button onclick="calculateSavings()">Calculate</button>
<div class="result" id="result">
Original Taxable Income: £68000.00<br />
New Taxable Income: £50270.00<br />
Tax Saved: £7092.00<br />
NI Saved: £354.60<br />
Total Saved: £7446.60<br />
Net Cost of AVC: £10283.40<br />
Drops to Basic Rate: Yes
</div>
CSS
body {
font-family: Arial, sans-serif;
margin: 20px;
}
input {
margin: 5px;
padding: 5px;
}
button {
padding: 10px;
margin-top: 10px;
}
.result {
margin-top: 20px;
font-weight: bold;
}
JavaScript
function calculateSavings() {
var salary = parseFloat(document.getElementById('salary').value);
var avc = parseFloat(document.getElementById('avc').value);
if (isNaN(salary) || isNaN(avc) || salary <= 0 || avc <= 0) {
document.getElementById('result').innerHTML = 'Please enter valid numbers.';
return;
}
var basicLimit = 50270;
var basicRate = 0.2;
var higherRate = 0.4;
var niBasic = 0.12;
var niHigh = 0.02;
var originalTaxable = salary;
var newTaxable = salary - avc;
var originalTax =
originalTaxable <= basicLimit
? originalTaxable * basicRate
: basicLimit * basicRate + (originalTaxable - basicLimit) * higherRate;
var newTax =
newTaxable <= basicLimit
? newTaxable * basicRate
: basicLimit * basicRate + (newTaxable - basicLimit) * higherRate;
var originalNI =
basicLimit * niBasic + Math.max(0, originalTaxable - basicLimit) * niHigh;
var newNI =
basicLimit * niBasic + Math.max(0, newTaxable - basicLimit) * niHigh;
var taxSaved = originalTax - newTax;
var niSaved = originalNI - newNI;
var totalSaved = taxSaved + niSaved;
var netCost = avc - totalSaved;
var dropsToBasic = newTaxable <= basicLimit;
document.getElementById('result').innerHTML = `
Original Taxable Income: £${originalTaxable.toFixed(2)}<br>
New Taxable Income: £${newTaxable.toFixed(2)}<br>
Tax Saved: £${taxSaved.toFixed(2)}<br>
NI Saved: £${niSaved.toFixed(2)}<br>
Total Saved: £${totalSaved.toFixed(2)}<br>
Net Cost of AVC: £${netCost.toFixed(2)}<br>
Drops to Basic Rate: ${dropsToBasic ? 'Yes' : 'No'}
`;
}