Accountancy Fee Calculator - ASN Partners UK Fee Estimate
About this app
Calculate your accountancy fees based on turnover and services. ASN Partners UK offers a simple and modern fee estimation calculator.
Accountancy Fee Calculator - ASN Partners UK Fee Estimate ASN Partners UK Fee Estimate Client Type: Limited Company Sole Trader Partnership Individual Annual Turnover (£): £0k – £90k £91k – £99k £100k – £149k £150k – £249k £250k – £349k £350k – £499k £500k – £749k £750k – £999k £1m+ Accounts VAT Payroll Number of Employees: Select 01–05 06–10 11–15 16–20 21–30 31–40 41–50 51–75 76–100 100+ Pension Number of Employees: Select 01–05 06–10 11–15 16–20 21–30 31–40 41–50 51–75 76–100 100+ Self Assessment Number of Properties: Select 1 2 3 4 5 6+ Discount (%): Reset All Inputs Subtotal: £0.00 Discount: £0.00 VAT: £0.00 Total Annual Fee: £0.00 Total Monthly Fee: £0.00
Related apps
Put this on your site
Source
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Accountancy Fee Calculator - ASN Partners UK Fee Estimate</title>
<meta name="description" content="Calculate your accountancy fees based on turnover and services. ASN Partners UK offers a simple and modern fee estimation calculator.">
<meta name="keywords" content="accountancy, fees, calculator, turnover, service, ASN Partners UK">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/fontawesome.min.css" crossorigin="anonymous">
<script type="text/javascript">
try {
document.addEventListener("DOMContentLoaded", function() {
const state = {
clientType: "Limited Company",
turnover: 0,
accounts: false,
vat: false,
payroll: { active: false, count: 0, frequency: 'monthly' },
pension: { active: false, count: 0 },
selfAssessment: false,
properties: 0,
discount: 0
};
const serviceRates = {
accounts: 250,
vat: 150,
payroll: { monthly: 100, quarterly: 300 },
pension: {
0: 0,
5: 180,
10: 195,
15: 235,
20: 270,
30: 365,
40: 465,
50: 550,
75: 650,
100: 740,
101: 850
},
selfAssessment: 140,
properties: (count) => count * 100, // Each property fee
p11d: 200
};
const toggleEmployeeCountDropdown = () => {
const payrollService = document.getElementById('payrollToggle').checked;
const countDropdown = document.getElementById('payrollCountDropdown');
countDropdown.style.display = payrollService ? 'block' : 'none';
};
const updateFees = () => {
let feesSubtotal = 0;
if (state.accounts) feesSubtotal += serviceRates.accounts;
if (state.vat) feesSubtotal += serviceRates.vat;
if (state.payroll.active) feesSubtotal += serviceRates.payroll[state.payroll.frequency] * state.payroll.count;
if (state.pension.active) feesSubtotal += serviceRates.pension[state.pension.count] || 0;
if (state.selfAssessment) feesSubtotal += serviceRates.selfAssessment;
if (state.properties > 0) feesSubtotal += serviceRates.properties(state.properties);
feesSubtotal += serviceRates.p11d; // Add P11D service fee
const discountAmount = feesSubtotal * (state.discount / 100);
const feesTotal = feesSubtotal - discountAmount;
const vatAmount = feesTotal * 0.2; // VAT on total after discount
const grandTotal = feesTotal + vatAmount;
const monthlyFee = grandTotal / 12;
document.getElementById('subtotal').innerText = `£${feesSubtotal.toFixed(2)}`;
document.getElementById('discount').innerText = `£${discountAmount.toFixed(2)}`;
document.getElementById('vat').innerText = `£${vatAmount.toFixed(2)}`;
document.getElementById('total').innerText = `£${grandTotal.toFixed(2)}`;
document.getElementById('monthly').innerText = `£${monthlyFee.toFixed(2)}`;
};
const resetInputs = () => {
state.clientType = "Limited Company";
state.turnover = 0;
state.accounts = false;
state.vat = false;
state.payroll.active = false;
state.payroll.count = 0;
state.pension.active = false;
state.pension.count = 0;
state.selfAssessment = false;
state.properties = 0;
state.discount = 0;
document.querySelectorAll("input[type='checkbox']").forEach(el => el.checked = false);
document.getElementById('turnoverDropdown').value = '0';
document.getElementById('payrollCountDropdown').value = '0';
document.getElementById('propertyCountDropdown').value = '0';
document.getElementById('discountInput').value = '';
updateFees();
};
const handleEmployeeCountDisplay = () => {
const payrollService = document.getElementById('payrollToggle').checked;
const pensionService = document.getElementById('pension').checked;
const payrollCountDropdown = document.getElementById('payrollCountDropdown');
const pensionCountDropdown = document.getElementById('pensionCountDropdown');
payrollCountDropdown.style.display = payrollService ? 'block' : 'none';
pensionCountDropdown.style.display = pensionService ? 'block' : 'none';
};
document.querySelectorAll("input[type='checkbox']").forEach(el => {
el.addEventListener('change', () => {
if (el.id === 'payrollToggle') {
state.payroll.active = el.checked;
toggleEmployeeCountDropdown();
} else if (el.id === 'pension') {
state.pension.active = el.checked;
handleEmployeeCountDisplay();
} else {
state[el.id] = el.checked;
}
updateFees();
});
});
document.getElementById('turnoverDropdown').addEventListener('change', (e) => {
state.turnover = parseInt(e.target.value) || 0;
updateFees();
});
document.getElementById('payrollCountDropdown').addEventListener('change', (e) => {
state.payroll.count = parseInt(e.target.value) || 0;
updateFees();
});
document.getElementById('pensionCountDropdown').addEventListener('change', (e) => {
state.pension.count = parseInt(e.target.value) || 0;
updateFees();
});
document.getElementById('propertyCountDropdown').addEventListener('change', (e) => {
state.properties = parseInt(e.target.value) || 0;
updateFees();
});
document.getElementById('discountInput').addEventListener('input', (e) => {
state.discount = parseFloat(e.target.value) || 0;
updateFees();
});
document.getElementById('resetButton').addEventListener('click', resetInputs);
updateFees();
});
} catch (error) {
throw error;
}
</script>
<style>
body {
background-color: #f8f9fa;
color: #495057;
}
#main-container {
background-color: #800000;
border-radius: 8px;
padding: 20px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
margin-top: 20px;
}
h1 {
color: white;
text-align: center;
}
label {
color: white;
}
.fee-total {
font-size: 1.5em;
margin-top: 20px;
color: #81c784;
}
.reset-button {
background-color: #dc3545;
color: white;
border: none;
border-radius: 5px;
padding: 10px 15px;
cursor: pointer;
transition: background-color 0.3s;
}
.reset-button:hover {
background-color: #c82333;
}
.number-options {
display: none;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>ASN Partners UK Fee Estimate</h1>
<form>
<div class="mb-3">
<label for="clientType" class="form-label">Client Type:</label>
<select class="form-select" id="clientType">
<option value="Limited Company">Limited Company</option>
<option value="Sole Trader">Sole Trader</option>
<option value="Partnership">Partnership</option>
<option value="Individual">Individual</option>
</select>
</div>
<div class="mb-3">
<label for="turnoverDropdown" class="form-label">Annual Turnover (£):</label>
<select class="form-select" id="turnoverDropdown">
<option value="0">£0k – £90k</option>
<option value="91">£91k – £99k</option>
<option value="100">£100k – £149k</option>
<option value="150">£150k – £249k</option>
<option value="250">£250k – £349k</option>
<option value="350">£350k – £499k</option>
<option value="500">£500k – £749k</option>
<option value="750">£750k – £999k</option>
<option value="1000">£1m+</option>
</select>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="accounts" />
<label class="form-check-label" for="accounts">Accounts</label>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="vat" />
<label class="form-check-label" for="vat">VAT</label>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="payrollToggle" />
<label class="form-check-label" for="payrollToggle">Payroll</label>
<div id="payrollCountDropdown" class="number-options mt-3" style="display: none;">
<label>Number of Employees:</label>
<select class="form-select">
<option value="0">Select</option>
<option value="1">01–05</option>
<option value="2">06–10</option>
<option value="3">11–15</option>
<option value="4">16–20</option>
<option value="5">21–30</option>
<option value="6">31–40</option>
<option value="7">41–50</option>
<option value="8">51–75</option>
<option value="9">76–100</option>
<option value="10">100+</option>
</select>
</div>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="pension" />
<label class="form-check-label" for="pension">Pension</label>
<div id="pensionCountDropdown" class="number-options mt-3" style="display: none;">
<label>Number of Employees:</label>
<select class="form-select">
<option value="0">Select</option>
<option value="1">01–05</option>
<option value="2">06–10</option>
<option value="3">11–15</option>
<option value="4">16–20</option>
<option value="5">21–30</option>
<option value="6">31–40</option>
<option value="7">41–50</option>
<option value="8">51–75</option>
<option value="9">76–100</option>
<option value="10">100+</option>
</select>
</div>
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="selfAssessment" />
<label class="form-check-label" for="selfAssessment">Self Assessment</label>
</div>
<div class="mb-3">
<label for="propertyCountDropdown" class="form-label">Number of Properties:</label>
<select class="form-select" id="propertyCountDropdown">
<option value="0">Select</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6+</option>
</select>
</div>
<div class="mb-3">
<label for="discountInput" class="form-label">Discount (%):</label>
<input type="number" class="form-control" id="discountInput" placeholder="Enter discount" />
</div>
<button type="button" id="resetButton" class="reset-button">Reset All Inputs</button>
</form>
<div class="fee-total">
<div>Subtotal: <span id="subtotal">£0.00</span></div>
<div>Discount: <span id="discount">£0.00</span></div>
<div>VAT: <span id="vat">£0.00</span></div>
<div>Total Annual Fee: <span id="total">£0.00</span></div>
<div>Total Monthly Fee: <span id="monthly">£0.00</span></div>
</div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!