ASN Partners - Accountancy Services Fee Calculator
Jul 5, 2025
v.0
Calculate fees for accountancy services tailored to your business type, aiding easy decisions for clients. Get detailed insights with real-time calculations! Payment Fee Calculator Accountancy Professional services VAT Invoices Discount Business services

Versions  

Bugs  
None!

Get This App On Your Website

1. Copy the code above with the iframe and link.
2. Paste the code into your website.
3. Resize the iframe to fit your website.

Javascript, HTML, CSS Code

                
<html>
<head>
<script type="text/javascript"> window.addEventListener('error', function(event) { var message = JSON.parse(JSON.stringify(event.message)); var source = event.filename; var lineno = event.lineno; var colno = event.colno; var error = event.error; window.parent.postMessage({ type: 'iframeError', details: { message: message, source: source, lineno: lineno, colno: colno, error: error ? error.stack : '' } }, '*'); }); window.addEventListener('unhandledrejection', function(event) { window.parent.postMessage({ type: 'iframePromiseRejection', details: { reason: event.reason } }, '*'); }); </script>

<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>

<link rel="canonical" href="https://calculator.tools/app/asn-partners-accountancy-services-fee-calculator-1555/">
<meta charset="utf-8">

</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>
<script type="text/javascript"> var localStoragePrefix = "ct-1555"; var lastSave = 0; function saveLocal(data) { if (Date.now() - lastSave < 1000) { return; } let cookie = localStoragePrefix + "=" + JSON.stringify(data) + "; path=" + window.location.pathname + "'; SameSite=Strict"; cookie += "; expires=" + new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 1000).toUTCString(); document.cookie = cookie; lastSave = Date.now(); } function loadLocal() { var cookiePrefix = localStoragePrefix + "="; var cookieStart = document.cookie.indexOf(cookiePrefix); if (cookieStart > -1) { let cookieEnd = document.cookie.indexOf(";", cookieStart); if (cookieEnd == -1) { cookieEnd = document.cookie.length; } var cookieData = document.cookie.substring(cookieStart + cookiePrefix.length, cookieEnd); return JSON.parse(cookieData); } } </script>
<script type="text/javascript"> window.addEventListener('load', function() { var observer = new MutationObserver(function() { window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); observer.observe(document.body, {attributes: true, childList: true, subtree: true}); window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); </script>
</body>
</html>

NEW APPS

These are apps made by the community!

FAQ

What is Calculator Tools?

Calculator Tools allows you to instantly create and generate any simple one page web app for free and immediately have it online to use and share. This means anything! Mini apps, calculators, trackers, tools, games, puzzles, screensavers... anything you can think of that the AI can handle.

The AI uses Javacript, HTML, and CSS programming to code your app up in moments. This currently uses GPT-4 the latest and most powerful version of the OpenAI GPT language model.

What Do You Mean Make An App?

Have you ever just wanted a simple app but didn't want to learn programming or pay someone to make it for you? Calculator Tools is the solution! Just type in your prompt and the AI will generate a simple app for you in seconds. You can then customize it to your liking and share it with your friends.

AI has become so powerful it is that simple these days.

Does This Use ChatGPT?

It uses GPT-4 which is the most powerful model for ChatGPT.

Calculator Tools does not remember things from prompt to prompt, each image is a unique image that does not reference any of the images or prompts previously supplied.