ASN Partners - Accountancy Services Fee Calculator
About this app
ASN Partners - Accountancy Services Fee ASN Partners Accountancy Services Fee Calculator Client Name: Client Contact No (UK & Wales): Client Type: Private Limited Partnership Sole Trader Self Assessment Other Services List Accounts & Tax Turnover ≤90 000 ≤99 000 ≤149 000 ≤249 000 ≤349 000 ≤499 000 ≤749 000 ≤999 000 >999 000 £0.00 VAT Turnover ≤99 000 ≤149 000 ≤249 000 ≤349 000 ≤499 000 ≤749 000 ≤999 000 ≤1.24 M ≤1.74 M ≤2.24 M ≤2.99 M ≤3.49 M ≤3.99 M ≤4.99 M ≤5.99 M ≤6.99 M >6.99 M £0.00 Payroll Select Frequency Weekly Monthly Fortnight Weekly + Monthly No. of Staff ≤5 ≤10 ≤15 ≤20 ≤30 ≤40 ≤50 >50 £0.00 Pension Select Frequency Monthly Weekly Fortnight Weekly + Monthly No. of Staff ≤5 ≤10 ≤15 ≤20 ≤30 ≤40 ≤50 ≤75 ≤100 >100 £0.00 Dealing With Properties No. of Properties 1 2 3 4 5 6+ £0.00 ATED Properties No. of Properties 1 2 3 4+ £0.00 P11D No. of P11D 1 2 3 4+ £0.00 Self Assessment Turnover ≤79 000 ≤124 000 ≥125 000 £0.00 Other Services Add Service £0.00 Calculate Summary Subtotal: £0.00 Discount %: Discount Amount: £0.00 VAT (20%): £0.00 Annual Total: £0.00 Monthly Fee: £0.00 Note: The above is an estimate. To get an exact quote, please call us at 0208 911 8000 or email us at c...
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>ASN Partners - Accountancy Services Fee</title>
<meta name="description" content="Responsive calculator for accountancy services fees with a maroon accent, allowing users to input various service types and calculate fees." />
<meta name="keywords" content="Accountancy Services, Calculator, Fees, VAT" />
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;600&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Roboto', sans-serif;
background-color: #fafafa;
color: #333333;
margin: 0;
padding: 20px;
}
h1, h2 {
color: #800000;
text-align: center;
}
.container {
max-width: 800px;
margin: auto;
padding: 20px;
background: #ffffff;
border: 2px solid #800000;
border-radius: 10px;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}
.form-group {
margin: 10px 0;
}
label {
display: block;
margin-bottom: 5px;
}
input[type="text"], input[type="tel"], input[type="number"], select {
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
width: 100%;
}
.service-row {
border: 1px solid #800000;
border-radius: 5px;
margin: 10px 0;
padding: 10px;
display: flex;
align-items: center;
}
button {
background: #800000;
color: white;
border: none;
padding: 10px;
margin: 10px 0;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
width: 100%;
}
button:hover {
background: #b4939a;
}
.summary {
border: 2px solid #800000;
border-radius: 5px;
padding: 10px;
display: none;
margin-top: 20px;
}
.summary-row {
display: flex;
justify-content: space-between;
margin: 5px 0;
}
.notes {
margin-top: 20px;
padding: 10px;
border: 1px solid #ccc;
background-color: #f1f1f1;
height: 110px;
resize: none;
outline: none;
}
.button-bar {
display: flex;
justify-content: space-around;
}
</style>
</head>
<body>
<div class="container">
<h1>ASN Partners</h1>
<h2>Accountancy Services Fee Calculator</h2>
<!-- CLIENT DETAILS -->
<div class="form-group">
<label>Client Name:</label>
<input type="text" id="clientName">
</div>
<div class="form-group">
<label>Client Contact No (UK & Wales):</label>
<input type="tel" id="clientContact" placeholder="+44...">
</div>
<div class="form-group">
<label>Client Type:</label>
<select id="clientType">
<option>Private Limited</option>
<option>Partnership</option>
<option>Sole Trader</option>
<option>Self Assessment</option>
<option>Other</option>
</select>
</div>
<h3>Services List</h3>
<!-- SERVICE ROWS -->
<div class="service-row">
<label>Accounts & Tax</label>
<input type="checkbox" id="accountsTaxToggle" onclick="toggleService(this, 'accountsTaxDetails')">
<div id="accountsTaxDetails" style="display:none;">
<select id="accountsTaxTurnover">
<option>Turnover</option>
<option>≤90 000</option>
<option>≤99 000</option>
<option>≤149 000</option>
<option>≤249 000</option>
<option>≤349 000</option>
<option>≤499 000</option>
<option>≤749 000</option>
<option>≤999 000</option>
<option> >999 000</option>
</select>
</div>
<div class="fee-cell" id="accountsTaxFee">£0.00</div>
</div>
<div class="service-row">
<label>VAT</label>
<input type="checkbox" id="vatToggle" onclick="toggleService(this, 'vatDetails')">
<div id="vatDetails" style="display:none;">
<select id="vatTurnover">
<option>Turnover</option>
<option>≤99 000</option>
<option>≤149 000</option>
<option>≤249 000</option>
<option>≤349 000</option>
<option>≤499 000</option>
<option>≤749 000</option>
<option>≤999 000</option>
<option>≤1.24 M</option>
<option>≤1.74 M</option>
<option>≤2.24 M</option>
<option>≤2.99 M</option>
<option>≤3.49 M</option>
<option>≤3.99 M</option>
<option>≤4.99 M</option>
<option>≤5.99 M</option>
<option>≤6.99 M</option>
<option> >6.99 M</option>
</select>
</div>
<div class="fee-cell" id="vatFee">£0.00</div>
</div>
<div class="service-row">
<label>Payroll</label>
<input type="checkbox" id="payrollToggle" onclick="toggleService(this, 'payrollDetails')">
<div id="payrollDetails" style="display:none;">
<select id="payrollFreq">
<option>Select Frequency</option>
<option>Weekly</option>
<option>Monthly</option>
<option>Fortnight</option>
<option>Weekly + Monthly</option>
</select>
<select id="payrollCount">
<option>No. of Staff</option>
<option>≤5</option>
<option>≤10</option>
<option>≤15</option>
<option>≤20</option>
<option>≤30</option>
<option>≤40</option>
<option>≤50</option>
<option> >50</option>
</select>
</div>
<div class="fee-cell" id="payrollFee">£0.00</div>
</div>
<div class="service-row">
<label>Pension</label>
<input type="checkbox" id="pensionToggle" onclick="toggleService(this, 'pensionDetails')">
<div id="pensionDetails" style="display:none;">
<select id="pensionFreq">
<option>Select Frequency</option>
<option>Monthly</option>
<option>Weekly</option>
<option>Fortnight</option>
<option>Weekly + Monthly</option>
</select>
<select id="pensionCount">
<option>No. of Staff</option>
<option>≤5</option>
<option>≤10</option>
<option>≤15</option>
<option>≤20</option>
<option>≤30</option>
<option>≤40</option>
<option>≤50</option>
<option>≤75</option>
<option>≤100</option>
<option> >100</option>
</select>
</div>
<div class="fee-cell" id="pensionFee">£0.00</div>
</div>
<div class="service-row">
<label>Dealing With Properties</label>
<input type="checkbox" id="propertiesToggle" onclick="toggleService(this, 'realEstateDetails')">
<div id="realEstateDetails" style="display:none;">
<select id="realEstateCount">
<option>No. of Properties</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6+</option>
</select>
</div>
<div class="fee-cell" id="realEstateFee">£0.00</div>
</div>
<div class="service-row">
<label>ATED Properties</label>
<input type="checkbox" id="atedToggle" onclick="toggleService(this, 'atedDetails')">
<div id="atedDetails" style="display:none;">
<select id="atedCount">
<option>No. of Properties</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4+</option>
</select>
</div>
<div class="fee-cell" id="atedFee">£0.00</div>
</div>
<div class="service-row">
<label>P11D</label>
<input type="checkbox" id="p11dToggle" onclick="toggleService(this, 'p11dDetails')">
<div id="p11dDetails" style="display:none;">
<select id="p11dCount">
<option>No. of P11D</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4+</option>
</select>
</div>
<div class="fee-cell" id="p11dFee">£0.00</div>
</div>
<div class="service-row">
<label>Self Assessment</label>
<input type="checkbox" id="saToggle" onclick="toggleService(this, 'saDetails')">
<div id="saDetails" style="display:none;">
<select id="saTurnover">
<option>Turnover</option>
<option>≤79 000</option>
<option>≤124 000</option>
<option>≥125 000</option>
</select>
<input type="number" id="saPersons" min="1" max="6" placeholder="Number of Persons">
</div>
<div class="fee-cell" id="saFee">£0.00</div>
</div>
<div class="service-row">
<label>Other Services</label>
<input type="checkbox" id="otherToggle" onclick="toggleService(this, 'otherDetails')">
<div id="otherDetails" style="display:none;">
<button onclick="addOtherService()">Add Service</button>
<div id="otherServices"></div>
</div>
<div class="fee-cell" id="otherFee">£0.00</div>
</div>
<button onclick="calculateFees()">Calculate</button>
<div class="summary">
<h3>Summary</h3>
<div class="summary-row">
<span>Subtotal:</span> <span id="subtotal" class="fee-cell">£0.00</span>
</div>
<div class="summary-row">
<label>Discount %:</label>
<input type="number" id="discount" value="0" min="0" max="100" style="width: 60px;">
</div>
<div class="summary-row">
<span>Discount Amount:</span> <span id="discountAmount" class="fee-cell">£0.00</span>
</div>
<div class="summary-row">
<span>VAT (20%):</span> <span id="vatAmount" class="fee-cell">£0.00</span>
</div>
<div class="summary-row">
<span>Annual Total:</span> <span id="annualTotal" class="fee-cell">£0.00</span>
</div>
<div class="summary-row">
<span>Monthly Fee:</span> <span id="monthlyFee" class="fee-cell">£0.00</span>
</div>
</div>
<h3>Note:</h3>
<textarea class="notes" readonly>
The above is an estimate. To get an exact quote, please call us at 0208 911 8000 or email us at central@asnuk.com. If your annual turnover exceeds £1 million or the number of employees for payroll services exceeds 100, please contact us directly. The confirmation statement filing fee is not included in the above estimate and must be paid separately to Companies House as part of statutory compliance.
</textarea>
<div class="button-bar">
<button onclick="resetForm()">Reset</button>
<button onclick="window.print()">Print</button>
<button onclick="sendEmail()">Email: central@asnuk.com</button>
<button onclick="window.location.href='tel:02089118000'">Call: 0208 911 8000</button>
</div>
</div>
<script type="text/javascript">
const toggleService = (checkbox, detailsId) => {
const details = document.getElementById(detailsId);
if (checkbox.checked) {
details.style.display = 'block';
} else {
details.style.display = 'none';
}
};
const calculateFees = () => {
const accountsTaxFee = calculateAccountsTax();
const vatFee = calculateVAT();
const payrollFee = calculatePayroll();
const pensionFee = calculatePension();
const realEstateFee = calculateRealEstate();
const atedFee = calculateATED();
const p11dFee = calculateP11D();
const saFee = calculateSelfAssessment();
const otherFee = calculateOther();
const subtotal = accountsTaxFee + vatFee + payrollFee + pensionFee + realEstateFee + atedFee + p11dFee + saFee + otherFee;
displayFees(accountsTaxFee, vatFee, payrollFee, pensionFee, realEstateFee, atedFee, p11dFee, saFee, otherFee, subtotal);
};
const displayFees = (accountsTaxFee, vatFee, payrollFee, pensionFee, realEstateFee, atedFee, p11dFee, saFee, otherFee, subtotal) => {
document.getElementById('accountsTaxFee').innerText = `£${accountsTaxFee.toFixed(2)}`;
document.getElementById('vatFee').innerText = `£${vatFee.toFixed(2)}`;
document.getElementById('payrollFee').innerText = `£${payrollFee.toFixed(2)}`;
document.getElementById('pensionFee').innerText = `£${pensionFee.toFixed(2)}`;
document.getElementById('realEstateFee').innerText = `£${realEstateFee.toFixed(2)}`;
document.getElementById('atedFee').innerText = `£${atedFee.toFixed(2)}`;
document.getElementById('p11dFee').innerText = `£${p11dFee.toFixed(2)}`;
document.getElementById('saFee').innerText = `£${saFee.toFixed(2)}`;
document.getElementById('otherFee').innerText = `£${otherFee.toFixed(2)}`;
document.getElementById('subtotal').innerText = `£${subtotal.toFixed(2)}`;
const discount = parseFloat(document.getElementById("discount").value) || 0;
const discountAmount = subtotal * (discount / 100);
const vatAmount = (subtotal - discountAmount) * 0.20;
const annualTotal = subtotal - discountAmount + vatAmount;
const monthlyFee = annualTotal / 12;
document.getElementById('discountAmount').innerText = `£${discountAmount.toFixed(2)}`;
document.getElementById('vatAmount').innerText = `£${vatAmount.toFixed(2)}`;
document.getElementById('annualTotal').innerText = `£${annualTotal.toFixed(2)}`;
document.getElementById('monthlyFee').innerText = `£${monthlyFee.toFixed(2)}`;
document.querySelector('.summary').style.display = 'block';
};
const calculateAccountsTax = () => {
if (!document.getElementById("accountsTaxToggle").checked) return 0;
const turnover = document.getElementById("accountsTaxTurnover").value;
const clientType = document.getElementById("clientType").value;
const fees = {
"Sole Trader": {
"≤90 000": 700, "≤99 000": 850, "≤149 000": 900, "≤249 000": 1000, "≤349 000": 1300,
"≤499 000": 1400, "≤749 000": 1600, "≤999 000": 1800, ">999 000": 0
},
"Partnership": {
"≤90 000": 700, "≤99 000": 850, "≤149 000": 900, "≤249 000": 1000, "≤349 000": 1300,
"≤499 000": 1400, "≤749 000": 1600, "≤999 000": 1800, ">999 000": 0
},
"Private Limited": {
"≤90 000": 875, "≤99 000": 975, "≤149 000": 1100, "≤249 000": 1250, "≤349 000": 1500,
"≤499 000": 1600, "≤749 000": 1800, "≤999 000": 2000, ">999 000": 0
},
"Other": {
"≤90 000": 875, "≤99 000": 975, "≤149 000": 1100, "≤249 000": 1250, "≤349 000": 1500,
"≤499 000": 1600, "≤749 000": 1800, "≤999 000": 2000, ">999 000": 0
}
};
return fees[clientType][turnover] || 0;
};
const calculateVAT = () => {
if (!document.getElementById("vatToggle").checked) return 0;
const turnover = document.getElementById("vatTurnover").value;
const fees = {
"≤99 000": 550, "≤149 000": 750, "≤249 000": 850, "≤349 000": 950, "≤499 000": 1150,
"≤749 000": 1600, "≤999 000": 1900, "≤1.24 M": 2300, "≤1.74 M": 2500,
"≤2.24 M": 2700, "≤2.99 M": 2900, "≤3.49 M": 3100, "≤3.99 M": 3300,
"≤4.99 M": 3700, "≤5.99 M": 4100, "≤6.99 M": 4500, ">6.99 M": 0
};
return fees[turnover] || 0;
};
const calculatePayroll = () => {
if (!document.getElementById("payrollToggle").checked) return 0;
const frequency = document.getElementById("payrollFreq").value;
const count = document.getElementById("payrollCount").value === "No. of Staff" ? 0 : parseInt(document.getElementById("payrollCount").value, 10);
const feeLookup = {
"Weekly": [520, 580, 675, 820, 1085, 1350, 1640, 1880],
"Monthly": [350, 400, 450, 550, 665, 780, 940, 1100],
"Fortnight": [420, 490, 575, 700, 950, 1100, 1325, 1500],
"Weekly + Monthly": [750, 850, 975, 1150, 1450, 1700, 2000, 2250]
};
return feeLookup[frequency] ? feeLookup[frequency][count - 1] || 0 : 0;
};
const calculatePension = () => {
if (!document.getElementById("pensionToggle").checked) return 0;
const frequency = document.getElementById("pensionFreq").value;
const count = parseInt(document.getElementById("pensionCount").value, 10);
const feeLookup = {
"Monthly": [75, 115, 145, 175, 200, 245, 275, 310, 350, 0],
"Weekly": [180, 195, 235, 270, 365, 465, 550, 650, 740, 0],
"Fortnight": [180, 195, 235, 270, 365, 465, 550, 650, 740, 0],
"Weekly + Monthly": [180, 195, 235, 270, 365, 465, 550, 650, 740, 0]
};
return feeLookup[frequency] ? feeLookup[frequency][count] || 0 : 0;
};
const calculateRealEstate = () => {
if (!document.getElementById("propertiesToggle").checked) return 0;
const count = parseInt(document.getElementById("realEstateCount").value, 10);
return count <= 5 ? [400, 700, 900, 1100, 1200][count - 1] : 1200 + (count - 5) * 100;
};
const calculateATED = () => {
if (!document.getElementById("atedToggle").checked) return 0;
const count = parseInt(document.getElementById("atedCount").value, 10);
const fees = { 1: 150, 2: 275, 3: 400, 4: 0 };
return fees[count] || 0;
};
const calculateP11D = () => {
if (!document.getElementById("p11dToggle").checked) return 0;
const count = parseInt(document.getElementById("p11dCount").value, 10);
return count <= 3 ? count * 175 : 0;
};
const calculateSelfAssessment = () => {
if (!document.getElementById("saToggle").checked) return 0;
const saTurnover = document.getElementById("saTurnover").value;
const saPersons = parseInt(document.getElementById("saPersons").value) || 0;
const amounts = {
"≤79 000": 175,
"≤124 000": 200,
"≥125 000": 250
};
return (amounts[saTurnover] * saPersons) || 0;
};
const calculateOther = () => {
let total = 0;
const serviceRows = document.querySelectorAll('#otherServices .other-service-row');
serviceRows.forEach(row => {
const feeInput = row.querySelector('.other-fee');
const amount = parseFloat(feeInput.value) || 0;
total += amount;
});
return total;
};
const addOtherService = () => {
const serviceRow = document.createElement('div');
serviceRow.className = 'other-service-row service-row';
serviceRow.innerHTML = `
<input type="text" class="other-name" placeholder="Service Name">
<input type="number" class="other-fee" placeholder="Fee" oninput="calculateOther()">
`;
document.getElementById('otherServices').appendChild(serviceRow);
};
const resetForm = () => {
document.getElementById("clientName").value = "";
document.getElementById("clientContact").value = "";
document.getElementById("clientType").selectedIndex = 0;
document.querySelectorAll('.service-row input[type="checkbox"]').forEach(t => t.checked = false);
document.querySelectorAll('select').forEach(s => { s.selectedIndex = 0; s.style.display = 'none'; });
document.querySelectorAll('.fee-cell').forEach(cell => cell.innerText = '£0.00');
document.getElementById("discount").value = 0;
document.querySelector('.summary').style.display = 'none';
document.getElementById('otherServices').innerHTML = ''; // Reset other services
};
const sendEmail = () => {
window.location.href = 'mailto:central@asnuk.com?subject=Accountancy Services Fee Inquiry&body=';
};
</script>
</body>
</html>
NEW APPS
These are apps made by the community!