ASN Partners Accounting Services Fee Calculator
About this app
ASN Partners – Accountancy Services Fee Calculator ASN Partners – Accountancy Services Fee Calculator Client Details Client Name: Client Contact No (UK format): Client Type: Private Limited Partnership Sole Trader Self Assessment Other Services Accounts & Tax: Turnover Range: ≤ £90,000 ≤ £99,000 ≤ £149,000 ≤ £249,000 ≤ £349,000 ≤ £499,000 ≤ £749,000 ≤ £999,000 > £999,000 VAT: Turnover Range: ≤ £99,000 ≤ £149,000 ≤ £249,000 ≤ £349,000 ≤ £499,000 ≤ £749,000 ≤ £999,000 ≤ £1.24M ≤ £1.74M ≤ £2.24M ≤ £2.99M ≤ £3.49M ≤ £3.99M ≤ £4.99M ≤ £5.99M ≤ £6.99M > £6.99M Payroll: Frequency: Weekly Monthly Fortnight Weekly with Monthly Employee Count: ≤ 5 ≤ 10 ≤ 15 ≤ 20 ≤ 30 ≤ 40 ≤ 50 > 50 Pension: Frequency: Monthly Weekly Fortnight Weekly + Monthly Employee Count (Pension): ≤ 5 ≤ 10 ≤ 15 ≤ 20 ≤ 30 ≤ 40 ≤ 50 ≤ 75 ≤ 100 > 100 Properties: Number of Properties: 1 2 3 4 5 6+ ATED Properties: Properties Count: 1 2 3 4+ P11D: Vehicle Count: 1 2 3 4+ Self Assessment: Individual Turnover: ≤ £79,000 ≤ £124,000 ≥ £125,000 Number of Persons: Other Services: Number of Additional Services (Max 5): Service 1 Name: Service 1 Fee (£): Discount %: Calculate Fees Calculation Summary Subtotal: £0.00 Discount Amoun...
Related apps
Put this on your site
Source
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ASN Partners – Accountancy Services Fee Calculator</title>
<meta name="description" content="Calculate ASN Partners accountancy service fees.">
<meta name="keywords" content="ASN Partners, accountancy, calculator, fees, UK">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Poppins', sans-serif;
margin: 0;
padding: 0;
background-color: #f8f8f8;
color: #333;
line-height: 1.6;
}
.container {
max-width: 900px;
margin: 30px auto;
background-color: #fff;
padding: 40px;
border-radius: 12px;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}
h1 {
color: #800020;
text-align: center;
margin-bottom: 30px;
}
h2 {
color: #800020;
border-bottom: 2px solid #800020;
padding-bottom: 8px;
margin-top: 30px;
}
label {
display: block;
margin-top: 15px;
font-weight: 600;
}
input[type="text"],
input[type="number"],
select {
width: 100%;
padding: 14px;
margin-top: 8px;
margin-bottom: 20px;
border: 1px solid #ccc;
border-radius: 6px;
box-sizing: border-box;
font-size: 16px;
}
select {
appearance: none;
background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23800020"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/></svg>');
background-repeat: no-repeat;
background-position: right 15px top 50%;
background-size: 16px;
padding-right: 40px;
}
.toggle-container {
display: flex;
align-items: center;
margin-top: 15px;
margin-bottom: 20px;
}
.toggle-label {
margin-right: 15px;
font-weight: 600;
}
.toggle-switch {
position: relative;
display: inline-block;
width: 60px;
height: 34px;
}
.toggle-switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
transition: .4s;
border-radius: 34px;
}
.slider:before {
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
transition: .4s;
border-radius: 50%;
}
input:checked+.slider {
background-color: #800020;
}
input:focus+.slider {
box-shadow: 0 0 1px #800020;
}
input:checked+.slider:before {
transform: translateX(26px);
}
button {
background-color: #800020;
color: white;
padding: 16px 30px;
margin-top: 20px;
border: none;
border-radius: 8px;
cursor: pointer;
font-size: 18px;
width: 100%;
transition: background-color 0.3s ease;
}
button:hover {
background-color: #660017;
}
#results {
margin-top: 40px;
padding: 30px;
background-color: #f0f0f0;
border-radius: 10px;
font-size: 18px;
}
.result-item {
margin-bottom: 10px;
}
.total {
font-size: 24px;
font-weight: 600;
color: #800020;
}
textarea {
width: 100%;
padding: 12px;
margin-top: 8px;
margin-bottom: 20px;
border: 1px solid #ccc;
border-radius: 6px;
box-sizing: border-box;
font-size: 16px;
font-family: 'Poppins', sans-serif;
}
.cta-buttons {
margin-top: 30px;
text-align: center;
}
.cta-buttons button {
width: auto;
margin: 0 10px;
padding: 14px 25px;
display: inline-block;
}
footer {
text-align: center;
margin-top: 50px;
padding: 20px;
background-color: #800020;
color: #fff;
font-size: 14px;
border-top: 5px solid #660017;
}
@media (max-width: 768px) {
.container {
padding: 20px;
}
h1 {
font-size: 28px;
}
h2 {
font-size: 22px;
}
button,
input[type="text"],
input[type="number"],
select,
textarea {
font-size: 16px;
}
.cta-buttons button {
display: block;
width: 100%;
margin: 10px 0;
}
}
/* Gradient Background */
body {
background: linear-gradient(to right, #d3cce3, #e9e4f0);
}
</style>
</head>
<body>
<div class="container">
<h1>ASN Partners – Accountancy Services Fee Calculator</h1>
<h2>Client Details</h2>
<label for="clientName">Client Name:</label>
<input type="text" id="clientName" placeholder="Enter client name">
<label for="clientContact">Client Contact No (UK format):</label>
<input type="number" id="clientContact" placeholder="Enter contact number">
<label for="clientType">Client Type:</label>
<select id="clientType">
<option value="Private Limited">Private Limited</option>
<option value="Partnership">Partnership</option>
<option value="Sole Trader">Sole Trader</option>
<option value="Self Assessment">Self Assessment</option>
<option value="Other">Other</option>
</select>
<h2>Services</h2>
<div class="toggle-container">
<label class="toggle-label" for="accountsTaxToggle">Accounts & Tax:</label>
<label class="toggle-switch">
<input type="checkbox" id="accountsTaxToggle">
<span class="slider"></span>
</label>
</div>
<div id="accountsTaxOptions" style="display: none;">
<label for="turnoverRange">Turnover Range:</label>
<select id="turnoverRange">
<option value="90000">≤ £90,000</option>
<option value="99000">≤ £99,000</option>
<option value="149000">≤ £149,000</option>
<option value="249000">≤ £249,000</option>
<option value="349000">≤ £349,000</option>
<option value="499000">≤ £499,000</option>
<option value="749000">≤ £749,000</option>
<option value="999000">≤ £999,000</option>
<option value="Negotiable">> £999,000</option>
</select>
</div>
<div class="toggle-container">
<label class="toggle-label" for="vatToggle">VAT:</label>
<label class="toggle-switch">
<input type="checkbox" id="vatToggle">
<span class="slider"></span>
</label>
</div>
<div id="vatOptions" style="display: none;">
<label for="vatTurnover">Turnover Range:</label>
<select id="vatTurnover">
<option value="99000">≤ £99,000</option>
<option value="149000">≤ £149,000</option>
<option value="249000">≤ £249,000</option>
<option value="349000">≤ £349,000</option>
<option value="499000">≤ £499,000</option>
<option value="749000">≤ £749,000</option>
<option value="999000">≤ £999,000</option>
<option value="1240000">≤ £1.24M</option>
<option value="1740000">≤ £1.74M</option>
<option value="2240000">≤ £2.24M</option>
<option value="2990000">≤ £2.99M</option>
<option value="3490000">≤ £3.49M</option>
<option value="3990000">≤ £3.99M</option>
<option value="4990000">≤ £4.99M</option>
<option value="5990000">≤ £5.99M</option>
<option value="6990000">≤ £6.99M</option>
<option value="Negotiable">> £6.99M</option>
</select>
</div>
<div class="toggle-container">
<label class="toggle-label" for="payrollToggle">Payroll:</label>
<label class="toggle-switch">
<input type="checkbox" id="payrollToggle">
<span class="slider"></span>
</label>
</div>
<div id="payrollOptions" style="display: none;">
<label for="payrollFrequency">Frequency:</label>
<select id="payrollFrequency">
<option value="Weekly">Weekly</option>
<option value="Monthly">Monthly</option>
<option value="Fortnight">Fortnight</option>
<option value="Weekly with Monthly">Weekly with Monthly</option>
</select>
<label for="employeeCount">Employee Count:</label>
<select id="employeeCount">
<option value="5">≤ 5</option>
<option value="10">≤ 10</option>
<option value="15">≤ 15</option>
<option value="20">≤ 20</option>
<option value="30">≤ 30</option>
<option value="40">≤ 40</option>
<option value="50">≤ 50</option>
<option value="51">> 50</option>
</select>
</div>
<div class="toggle-container">
<label class="toggle-label" for="pensionToggle">Pension:</label>
<label class="toggle-switch">
<input type="checkbox" id="pensionToggle">
<span class="slider"></span>
</label>
</div>
<div id="pensionOptions" style="display: none;">
<label for="pensionFrequency">Frequency:</label>
<select id="pensionFrequency">
<option value="Monthly">Monthly</option>
<option value="Weekly">Weekly</option>
<option value="Fortnight">Fortnight</option>
<option value="Weekly Monthly">Weekly + Monthly</option>
</select>
<label for="pensionEmployeeCount">Employee Count (Pension):</label>
<select id="pensionEmployeeCount">
<option value="5">≤ 5</option>
<option value="10">≤ 10</option>
<option value="15">≤ 15</option>
<option value="20">≤ 20</option>
<option value="30">≤ 30</option>
<option value="40">≤ 40</option>
<option value="50">≤ 50</option>
<option value="75">≤ 75</option>
<option value="100">≤ 100</option>
<option value="101">> 100</option>
</select>
</div>
<div class="toggle-container">
<label class="toggle-label" for="propertiesToggle">Properties:</label>
<label class="toggle-switch">
<input type="checkbox" id="propertiesToggle">
<span class="slider"></span>
</label>
</div>
<div id="propertiesOptions" style="display: none;">
<label for="propertyCount">Number of Properties:</label>
<select id="propertyCount">
<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="toggle-container">
<label class="toggle-label" for="atedToggle">ATED Properties:</label>
<label class="toggle-switch">
<input type="checkbox" id="atedToggle">
<span class="slider"></span>
</label>
</div>
<div id="atedOptions" style="display: none;">
<label for="atedCount">Properties Count:</label>
<select id="atedCount">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4+</option>
</select>
</div>
<div class="toggle-container">
<label class="toggle-label" for="p11dToggle">P11D:</label>
<label class="toggle-switch">
<input type="checkbox" id="p11dToggle">
<span class="slider"></span>
</label>
</div>
<div id="p11dOptions" style="display: none;">
<label for="vehicleCount">Vehicle Count:</label>
<select id="vehicleCount">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4+</option>
</select>
</div>
<div class="toggle-container">
<label class="toggle-label" for="selfAssessmentToggle">Self Assessment:</label>
<label class="toggle-switch">
<input type="checkbox" id="selfAssessmentToggle">
<span class="slider"></span>
</label>
</div>
<div id="selfAssessmentOptions" style="display: none;">
<label for="individualTurnover">Individual Turnover:</label>
<select id="individualTurnover">
<option value="79000">≤ £79,000</option>
<option value="124000">≤ £124,000</option>
<option value="125000">≥ £125,000</option>
</select>
<label for="personsCount">Number of Persons:</label>
<input type="number" id="personsCount" value="1" min="1" max="6">
</div>
<div class="toggle-container">
<label class="toggle-label" for="otherServicesToggle">Other Services:</label>
<label class="toggle-switch">
<input type="checkbox" id="otherServicesToggle">
<span class="slider"></span>
</label>
</div>
<div id="otherServicesOptions" style="display: none;">
<label for="additionalServices">Number of Additional Services (Max 5):</label>
<input type="number" id="additionalServices" value="1" min="1" max="5">
<div id="serviceDetails">
<label for="serviceName1">Service 1 Name:</label>
<input type="text" id="serviceName1" placeholder="Enter service name">
<label for="serviceFee1">Service 1 Fee (£):</label>
<input type="number" id="serviceFee1" placeholder="Enter service fee">
</div>
</div>
<label for="discountPercentage">Discount %:</label>
<input type="number" id="discountPercentage" value="0" min="0" max="100">
<button id="calculateButton">Calculate Fees</button>
<div id="results">
<h2>Calculation Summary</h2>
<div class="result-item">Subtotal: <span id="subtotal">£0.00</span></div>
<div class="result-item">Discount Amount: <span id="discountAmount">£0.00</span></div>
<div class="result-item">VAT (20%): <span id="vat">£0.00</span></div>
<div class="result-item">Annual Amount: <span id="annualAmount">£0.00</span></div>
<div class="total">Monthly Fee: <span id="monthlyFee">£0.00</span></div>
</div>
<label for="notes">Notes:</label>
<textarea id="notes" rows="4" placeholder="Enter any notes"></textarea>
<div class="cta-buttons">
<button id="resetButton">Reset</button>
<button id="printButton">Print</button>
<button id="emailButton">Email</button>
<button id="contactButton">Contact</button>
</div>
</div>
<footer>
© 2024 ASN Partners Accountancy Services Fee | Designed with ❤️
</footer>
<script>
function calculateFees() {
let subtotal = 0;
const clientType = document.getElementById("clientType").value;
// Accounts & Tax
if (document.getElementById("accountsTaxToggle").checked) {
const turnoverRange = document.getElementById("turnoverRange").value;
let accountsTaxFee = 0;
if (clientType === "Sole Trader" || clientType === "Partnership") {
switch (turnoverRange) {
case "90000":
accountsTaxFee = 700;
break;
case "99000":
accountsTaxFee = 850;
break;
case "149000":
accountsTaxFee = 900;
break;
case "249000":
accountsTaxFee = 1000;
break;
case "349000":
accountsTaxFee = 1300;
break;
case "499000":
accountsTaxFee = 1400;
break;
case "749000":
accountsTaxFee = 1600;
break;
case "999000":
accountsTaxFee = 1800;
break;
case "Negotiable":
accountsTaxFee = 0;
break;
}
} else {
switch (turnoverRange) {
case "90000":
accountsTaxFee = 875;
break;
case "99000":
accountsTaxFee = 975;
break;
case "149000":
accountsTaxFee = 1100;
break;
case "249000":
accountsTaxFee = 1250;
break;
case "349000":
accountsTaxFee = 1500;
break;
case "499000":
accountsTaxFee = 1600;
break;
case "749000":
accountsTaxFee = 1800;
break;
case "999000":
accountsTaxFee = 2000;
break;
case "Negotiable":
accountsTaxFee = 0;
break;
}
}
subtotal += accountsTaxFee;
}
// VAT
if (document.getElementById("vatToggle").checked) {
const vatTurnover = document.getElementById("vatTurnover").value;
let vatFee = 0;
switch (vatTurnover) {
case "99000":
vatFee = 550;
break;
case "149000":
vatFee = 750;
break;
case "249000":
vatFee = 850;
break;
case "349000":
vatFee = 950;
break;
case "499000":
vatFee = 1150;
break;
case "749000":
vatFee = 1600;
break;
case "999000":
vatFee = 1900;
break;
case "1240000":
vatFee = 2300;
break;
case "1740000":
vatFee = 2500;
break;
case "2240000":
vatFee = 2700;
break;
case "2990000":
vatFee = 2900;
break;
case "3490000":
vatFee = 3100;
break;
case "3990000":
vatFee = 3300;
break;
case "4990000":
vatFee = 3700;
break;
case "5990000":
vatFee = 4100;
break;
case "6990000":
vatFee = 4500;
break;
case "Negotiable":
vatFee = 0;
break;
}
subtotal += vatFee;
}
// Payroll
if (document.getElementById("payrollToggle").checked) {
const payrollFrequency = document.getElementById("payrollFrequency").value;
const employeeCount = document.getElementById("employeeCount").value;
let payrollFee = 0;
const payrollTable = {
"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 with Monthly": [750, 850, 975, 1150, 1450, 1700, 2000, 2250]
};
const employeeCounts = ["5", "10", "15", "20", "30", "40", "50", "51"];
const index = employeeCounts.indexOf(employeeCount);
payrollFee = payrollTable[payrollFrequency][index];
subtotal += payrollFee;
}
// Pension
if (document.getElementById("pensionToggle").checked) {
const pensionFrequency = document.getElementById("pensionFrequency").value;
const pensionEmployeeCount = document.getElementById("pensionEmployeeCount").value;
let pensionFee = 0;
const employeeCounts = ["5", "10", "15", "20", "30", "40", "50", "75", "100", "101"];
const index = employeeCounts.indexOf(pensionEmployeeCount);
const pensionFeesMonthly = [75, 115, 145, 175, 200, 245, 275, 310, 350, 0];
const pensionFeesOther = [180, 195, 235, 270, 365, 465, 550, 650, 740, 0];
pensionFee = (pensionFrequency === "Monthly") ? pensionFeesMonthly[index] : pensionFeesOther[index];
subtotal += pensionFee;
}
// Properties
if (document.getElementById("propertiesToggle").checked) {
const propertyCount = document.getElementById("propertyCount").value;
let propertyFee = 0;
switch (propertyCount) {
case "1":
propertyFee = 400;
break;
case "2":
propertyFee = 700;
break;
case "3":
propertyFee = 900;
break;
case "4":
propertyFee = 1100;
break;
case "5":
propertyFee = 1200;
break;
case "6+":
propertyFee = 1200 + (1 * 100);
break;
}
subtotal += propertyFee;
}
// ATED Properties
if (document.getElementById("atedToggle").checked) {
const atedCount = document.getElementById("atedCount").value;
let atedFee = 0;
switch (atedCount) {
case "1":
atedFee = 150;
break;
case "2":
atedFee = 275;
break;
case "3":
atedFee = 400;
break;
case "4":
atedFee = 0;
break;
}
subtotal += atedFee;
}
// P11D
if (document.getElementById("p11dToggle").checked) {
const vehicleCount = document.getElementById("vehicleCount").value;
let p11dFee = 0;
switch (vehicleCount) {
case "1":
p11dFee = 175;
break;
case "2":
p11dFee = 350;
break;
case "3":
p11dFee = 525;
break;
case "4":
p11dFee = 0;
break;
}
subtotal += p11dFee;
}
// Self Assessment
if (document.getElementById("selfAssessmentToggle").checked) {
const individualTurnover = document.getElementById("individualTurnover").value;
const personsCount = parseInt(document.getElementById("personsCount").value);
let selfAssessmentFeePerPerson = 0;
switch (individualTurnover) {
case "79000":
selfAssessmentFeePerPerson = 175;
break;
case "124000":
selfAssessmentFeePerPerson = 200;
break;
case "125000":
selfAssessmentFeePerPerson = 250;
break;
}
subtotal += (selfAssessmentFeePerPerson * personsCount);
}
// Other Services
if (document.getElementById("otherServicesToggle").checked) {
const additionalServicesCount = parseInt(document.getElementById("additionalServices").value);
let otherServicesTotal = 0;
for (let i = 1; i <= additionalServicesCount; i++) {
const serviceFee = parseFloat(document.getElementById(`serviceFee${i}`).value) || 0;
otherServicesTotal += serviceFee;
}
subtotal += otherServicesTotal;
}
const discountPercentage = parseFloat(document.getElementById("discountPercentage").value) || 0;
const discountAmount = subtotal * (discountPercentage / 100);
const vat = (subtotal - discountAmount) * 0.20;
const annualAmount = subtotal - discountAmount + vat;
const monthlyFee = annualAmount / 12;
document.getElementById("subtotal").textContent = "£" + subtotal.toFixed(2);
document.getElementById("discountAmount").textContent = "£" + discountAmount.toFixed(2);
document.getElementById("vat").textContent = "£" + vat.toFixed(2);
document.getElementById("annualAmount").textContent = "£" + annualAmount.toFixed(2);
document.getElementById("monthlyFee").textContent = "£" + monthlyFee.toFixed(2);
}
// Event listeners for toggle switches
document.getElementById("accountsTaxToggle").addEventListener("change", function() {
document.getElementById("accountsTaxOptions").style.display = this.checked ? "block" : "none";
});
document.getElementById("vatToggle").addEventListener("change", function() {
document.getElementById("vatOptions").style.display = this.checked ? "block" : "none";
});
document.getElementById("payrollToggle").addEventListener("change", function() {
document.getElementById("payrollOptions").style.display = this.checked ? "block" : "none";
});
document.getElementById("pensionToggle").addEventListener("change", function() {
document.getElementById("pensionOptions").style.display = this.checked ? "block" : "none";
});
document.getElementById("propertiesToggle").addEventListener("change", function() {
document.getElementById("propertiesOptions").style.display = this.checked ? "block" : "none";
});
document.getElementById("atedToggle").addEventListener("change", function() {
document.getElementById("atedOptions").style.display = this.checked ? "block" : "none";
});
document.getElementById("p11dToggle").addEventListener("change", function() {
document.getElementById("p11dOptions").style.display = this.checked ? "block" : "none";
});
document.getElementById("selfAssessmentToggle").addEventListener("change", function() {
document.getElementById("selfAssessmentOptions").style.display = this.checked ? "block" : "none";
});
document.getElementById("otherServicesToggle").addEventListener("change", function() {
document.getElementById("otherServicesOptions").style.display = this.checked ? "block" : "none";
toggleAdditionalServiceFields();
});
document.getElementById("additionalServices").addEventListener("change", toggleAdditionalServiceFields);
document.getElementById("calculateButton").addEventListener("click", calculateFees);
// Reset Button functionality
document.getElementById("resetButton").addEventListener("click", function() {
document.getElementById("clientName").value = "";
document.getElementById("clientContact").value = "";
document.getElementById("clientType").value = "Private Limited"; //
NEW APPS
These are apps made by the community!