Calculator Tools Calculator Tools
Create

ASN Partners Accounting Services Fee Calculator

Jul 5, 2025

About this app

Calculate ASN Partners accounting service fees quickly and easily with our online calculator. Get accurate estimates for your business needs.

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"; //