Calculator Tools Calculator Tools
Create

Accountancy Services Fee - ASN Partners

Jul 7, 2025

About this app

Compute fees for various accountancy services based on client details and service requirements.

ASN Partners – Accountancy Services Fee ASN Partners – Accountancy Services Fee CLIENT DETAILS Select Client Type Private Limited Partnership Sole Trader Other SERVICES LIST Accounts & Tax Select Turnover Range ≤ £90,000 ≤ £99,000 ≤ £149,000 ≤ £249,000 ≤ £349,000 ≤ £499,000 ≤ £749,000 ≤ £999,000 > £999,000 £0.00 VAT Select Turnover Range ≤ £99,000 ≤ £149,000 ≤ £249,000 ≤ £349,000 ≤ £499,000 ≤ £749,000 ≤ £999,000 > £6,990,000 £0.00 Payroll Select Frequency Weekly Fortnight Monthly Select Employee Count ≤5 ≤10 ≤15 ≤20 ≤30 ≤40 ≤50 >50 £0.00 Pension Select Frequency Monthly Fortnight Weekly Select Employee Count ≤5 >5 £0.00 Dealing With Properties Select Number of Properties 1 2 3 4 5 6+ £0.00 ATED Properties Select Property Count 1 2 3 4+ £0.00 P11D Select Vehicle Count 1 2 3 4+ £0.00 Self Assessment Select Income Band ≤ £79K ≤ £124K ≥ £125K £0.00 Other Services + Add Service £0.00 Calculate Reset SUMMARY Subtotal: £0.00 Discount %: Discount Amount: £0.00 VAT (20%): £0.00 Annual Total: £0.00 Monthly Fee: £0.00 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...

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="Calculate fees for various accountancy services based on client details and service requirements.">
<meta name="keywords" content="accountancy, fees, calculator, services, finance, ASN Partners">

<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400&family=Open+Sans:wght@300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" crossorigin="anonymous">

<style>
body {
background-color: #e8f0f2;
color: #333;
font-family: 'Open Sans', sans-serif;
font-size: 16px;
}
.section {
background: #ffffff;
border: 1px solid #c5c5c5;
padding: 20px;
border-radius: 8px;
shadow: 1px 1px 5px rgba(0,0,0,0.1);
margin: 15px 0;
}
h1, h2 {
color: #800000;
text-align: center;
}
.fee-cell {
text-align: right;
width: 100px;
}
button {
background-color: #800000;
color: white;
border: none;
border-radius: 5px;
padding: 10px 15px;
cursor: pointer;
transition: background-color 0.3s, transform 0.3s;
}
button:hover {
background-color: #600000;
transform: scale(1.05);
}
.toggle-pill {
display: flex;
align-items: center;
margin-right: 15px;
}
.toggle-pill input {
display: none;
}
.toggle-pill label {
position: relative;
display: inline-block;
width: 50px;
height: 24px;
background-color: #ddd;
border-radius: 50px;
cursor: pointer;
transition: background-color 0.3s;
}
.toggle-pill label:after {
content: "";
position: absolute;
top: 2px;
left: 2px;
right: 2px;
bottom: 2px;
background-color: white;
border-radius: 20px;
transition: transform 0.3s;
}
.toggle-pill input:checked + label {
background-color: #800000;
}
.toggle-pill input:checked + label:after {
transform: translateX(26px);
}
.conditional-field {
display: none;
width: 250px;
}
#summaryPanel {
display: none;
border: 2px solid #800000;
padding: 15px;
margin: 15px 0;
border-radius: 5px;
}
#notes {
background-color: #fff;
border: 1px solid #800000;
padding: 10px;
white-space: pre-wrap;
margin-bottom: 15px;
}
.utm-button {
margin: 5px;
cursor: pointer;
}
.service-row {
display: flex;
align-items: center;
justify-content: space-between;
}
@media (max-width: 768px) {
.toggle-pill {
flex-wrap: wrap;
}
.conditional-field {
width: 100%;
}
}
</style>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.toggle-pill input').change(function() {
const associatedRow = $(this).closest('.service-row');
associatedRow.find('.conditional-field').slideToggle($(this).is(':checked'));
calculateFees();
});

$('.conditional-field select, .conditional-field input').change(function() {
const row = $(this).closest('.service-row');
const toggle = row.find('.toggle-pill input');
calculateSpecificFees(row, toggle);
});

$('#calculateButton').click(function() {
$('#summaryPanel').slideDown();
calculateFees();
});

$('#resetButton').click(function() {
$('input[type="text"], select').val('');
$('input[type="checkbox"]').prop('checked', false);
$('.conditional-field').slideUp();
$('.fee-cell').text('£0.00');
$('#summaryPanel').slideUp();
});

function calculateSpecificFees(row, toggle) {
let fee = 0;
const clientType = $('#clientType').val();

if (toggle.attr('id') === 'accountsTaxToggle') {
const turnover = row.find('select').eq(0).val();
fee = getAccountsTaxFee(turnover, clientType);
} else if (toggle.attr('id') === 'vatToggle') {
const turnover = row.find('select').val();
fee = getVATFee(turnover);
} else if (toggle.attr('id') === 'payrollToggle') {
const employeeCount = row.find('select').eq(1).val();
const frequency = row.find('select').eq(0).val();
fee = getPayrollFee(employeeCount, frequency);
} else if (toggle.attr('id') === 'pensionToggle') {
const frequency = row.find('select').eq(0).val();
const employeeCount = row.find('select').eq(1).val();
fee = getPensionFee(frequency, employeeCount);
} else if (toggle.attr('id') === 'realEstateToggle') {
const numProperties = row.find('select').val();
fee = getRealEstateFee(numProperties);
} else if (toggle.attr('id') === 'atedToggle') {
const numProperties = row.find('select').val();
fee = getATEDFee(numProperties);
} else if (toggle.attr('id') === 'p11dToggle') {
const numVehicles = row.find('select').val();
fee = getP11DFee(numVehicles);
} else if (toggle.attr('id') === 'saToggle') {
const incomeBand = row.find('select').val();
const persons = row.find('input').val();
fee = getSelfAssessmentFee(incomeBand, persons);
}

row.find('.fee-cell').text(`£${fee.toFixed(2)}`);
}

function calculateFees() {
let subtotal = 0;
$('.fee-cell').each(function() {
const fee = parseFloat($(this).text().replace('£', '').replace(',', '')) || 0;
subtotal += fee;
});

$('#subtotal').text(`£${subtotal.toFixed(2)}`);
const discountPercent = parseFloat($('#discountPercent').val()) || 0;
const discountAmount = subtotal * (discountPercent / 100);
const vat = (subtotal - discountAmount) * 0.20;
const annualTotal = subtotal - discountAmount + vat;
const monthlyFee = annualTotal / 12;

$('#discountAmount').text(`£${discountAmount.toFixed(2)}`);
$('#vatAmount').text(`£${vat.toFixed(2)}`);
$('#annualTotal').text(`£${annualTotal.toFixed(2)}`);
$('#monthlyFee').text(`£${monthlyFee.toFixed(2)}`);
}

// Logic functions for fee calculations

function getAccountsTaxFee(turnover, clientType) {
const limitedFees = { "≤ £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 };
const otherFees = { "≤ £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 clientType === "Sole Trader" || clientType === "Partnership" ? (limitedFees[turnover] || 0) : (otherFees[turnover] || 0);
}

function getVATFee(turnover) {
const vatFees = { "≤ £99,000": 550, "≤ £149,000": 750, "≤ £249,000": 950, "≤ £349,000": 1300, "≤ £499,000": 1600, "≤ £749,000": 2000, "≤ £999,000": 2500, "> £6,990,000": 0 };
return vatFees[turnover] || 0;
}

function getPayrollFee(employeeCount, frequency) {
const rates = {
"Weekly": [350, 600, 850, 1100, 1300, 1500, 2000, 2250],
"Monthly": [450, 700, 900, 1200, 1400, 1600, 2200],
"Fortnight": [400, 650, 850, 1100, 1300, 1500, 2050]
};
const freqs = rates[frequency] || [];
if (employeeCount == '>50') return 0; // No fee if employee count exceeds 50
return freqs[Math.min(Number(employeeCount.replace(/[^\d]/g, '')), freqs.length - 1)] || 0;
}

function getPensionFee(frequency, employeeCount) {
const count = parseInt(employeeCount) || 0;
let fee = 0;
if (frequency === 'Monthly') {
fee = Math.max(75 + (count * 15), 75);
} else if (frequency === 'Fortnight') {
fee = Math.max(100 + (count * 20), 100);
} else if (frequency === 'Weekly') {
fee = Math.max(125 + (count * 25), 125);
}
return (count > 100) ? 0 : fee;
}

function getRealEstateFee(numProperties) {
const propertiesFee = {
"1": 400,
"2": 700,
"3": 900,
"4": 1100,
"5": 1200,
};
return propertiesFee[numProperties] || (1200 + ((parseInt(numProperties) - 5) * 100)) || 0;
}

function getATEDFee(numProperties) {
const atedFees = {
"1": 150,
"2": 275,
"3": 400,
};
return atedFees[numProperties] || 0;
}

function getP11DFee(numVehicles) {
return (parseInt(numVehicles) < 4) ? (parseInt(numVehicles) * 175) : 0;
}

function getSelfAssessmentFee(incomeBand, persons) {
let baseFee = 0;
if (incomeBand === '≤ £79K') {
baseFee = 175;
} else if (incomeBand === '≤ £124K') {
baseFee = 200;
} else if (incomeBand === '≥ £125K') {
baseFee = 250;
}
return baseFee * Math.min(6, parseInt(persons) || 1);
}
});
</script>
</head>
<body>
<div id="main-container" class="container">
<h1 class="text-center">ASN Partners – Accountancy Services Fee</h1>

<div class="section">
<h2>CLIENT DETAILS</h2>
<div class="mb-3">
<input type="text" id="clientName" class="form-control" placeholder="Client Name">
</div>
<div class="mb-3">
<input type="text" id="clientContact" class="form-control" placeholder="Client Contact No (UK & Wales)">
</div>
<div class="mb-3">
<select id="clientType" class="form-select">
<option value="" disabled selected>Select Client Type</option>
<option value="Private Limited">Private Limited</option>
<option value="Partnership">Partnership</option>
<option value="Sole Trader">Sole Trader</option>
<option value="Other">Other</option>
</select>
</div>
</div>

<div class="section">
<h2>SERVICES LIST</h2>
<div class="service-row mb-2">
<div><span>Accounts & Tax</span>
<div class="toggle-pill">
<input type="checkbox" id="accountsTaxToggle">
<label for="accountsTaxToggle"></label>
</div>
</div>
<div class="conditional-field">
<select>
<option value="" disabled selected>Select Turnover Range</option>
<option value="≤ £90,000">≤ £90,000</option>
<option value="≤ £99,000">≤ £99,000</option>
<option value="≤ £149,000">≤ £149,000</option>
<option value="≤ £249,000">≤ £249,000</option>
<option value="≤ £349,000">≤ £349,000</option>
<option value="≤ £499,000">≤ £499,000</option>
<option value="≤ £749,000">≤ £749,000</option>
<option value="≤ £999,000">≤ £999,000</option>
<option value="> £999,000">> £999,000</option>
</select>
</div>
<div class="fee-cell">£0.00</div>
</div>
<div class="service-row mb-2">
<div><span>VAT</span>
<div class="toggle-pill">
<input type="checkbox" id="vatToggle">
<label for="vatToggle"></label>
</div>
</div>
<div class="conditional-field">
<select>
<option value="" disabled selected>Select Turnover Range</option>
<option value="≤ £99,000">≤ £99,000</option>
<option value="≤ £149,000">≤ £149,000</option>
<option value="≤ £249,000">≤ £249,000</option>
<option value="≤ £349,000">≤ £349,000</option>
<option value="≤ £499,000">≤ £499,000</option>
<option value="≤ £749,000">≤ £749,000</option>
<option value="≤ £999,000">≤ £999,000</option>
<option value="> £6,990,000">> £6,990,000</option>
</select>
</div>
<div class="fee-cell">£0.00</div>
</div>
<div class="service-row mb-2">
<div><span>Payroll</span>
<div class="toggle-pill">
<input type="checkbox" id="payrollToggle">
<label for="payrollToggle"></label>
</div>
</div>
<div class="conditional-field">
<select>
<option value="" disabled selected>Select Frequency</option>
<option value="Weekly">Weekly</option>
<option value="Fortnight">Fortnight</option>
<option value="Monthly">Monthly</option>
</select>
<select>
<option value="" disabled selected>Select Employee Count</option>
<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=">50">>50</option>
</select>
</div>
<div class="fee-cell">£0.00</div>
</div>
<div class="service-row mb-2">
<div><span>Pension</span>
<div class="toggle-pill">
<input type="checkbox" id="pensionToggle">
<label for="pensionToggle"></label>
</div>
</div>
<div class="conditional-field">
<select>
<option value="" disabled selected>Select Frequency</option>
<option value="Monthly">Monthly</option>
<option value="Fortnight">Fortnight</option>
<option value="Weekly">Weekly</option>
</select>
<select>
<option value="" disabled selected>Select Employee Count</option>
<option value="≤5">≤5</option>
<option value=">5">>5</option>
</select>
</div>
<div class="fee-cell">£0.00</div>
</div>
<div class="service-row mb-2">
<div><span>Dealing With Properties</span>
<div class="toggle-pill">
<input type="checkbox" id="realEstateToggle">
<label for="realEstateToggle"></label>
</div>
</div>
<div class="conditional-field">
<select>
<option value="" disabled selected>Select Number of Properties</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="fee-cell">£0.00</div>
</div>
<div class="service-row mb-2">
<div><span>ATED Properties</span>
<div class="toggle-pill">
<input type="checkbox" id="atedToggle">
<label for="atedToggle"></label>
</div>
</div>
<div class="conditional-field">
<select>
<option value="" disabled selected>Select Property Count</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4+">4+</option>
</select>
</div>
<div class="fee-cell">£0.00</div>
</div>
<div class="service-row mb-2">
<div><span>P11D</span>
<div class="toggle-pill">
<input type="checkbox" id="p11dToggle">
<label for="p11dToggle"></label>
</div>
</div>
<div class="conditional-field">
<select>
<option value="" disabled selected>Select Vehicle Count</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4+">4+</option>
</select>
</div>
<div class="fee-cell">£0.00</div>
</div>
<div class="service-row mb-2">
<div><span>Self Assessment</span>
<div class="toggle-pill">
<input type="checkbox" id="saToggle">
<label for="saToggle"></label>
</div>
</div>
<div class="conditional-field">
<select>
<option value="" disabled selected>Select Income Band</option>
<option value="≤ £79K">≤ £79K</option>
<option value="≤ £124K">≤ £124K</option>
<option value="≥ £125K">≥ £125K</option>
</select>
<input type="number" placeholder="Select Number of Persons (1-6)" min="1" max="6"/>
</div>
<div class="fee-cell">£0.00</div>
</div>
<div class="service-row mb-2">
<div><span>Other Services</span>
<div class="toggle-pill">
<input type="checkbox" id="otherToggle">
<label for="otherToggle"></label>
</div>
</div>
<div class="conditional-field">
<button id="addServiceButton">+ Add Service</button>
<div id="extraServices"></div>
</div>
<div class="fee-cell">£0.00</div>
</div>
</div>

<div class="text-center">
<button class="btn btn-secondary" id="calculateButton">Calculate</button>
<button class="btn btn-danger" id="resetButton">Reset</button>
</div>

<div id="summaryPanel" class="section">
<h2>SUMMARY</h2>
<div class="d-flex justify-content-between">
<span>Subtotal:</span>
<span id="subtotal" class="fee-cell">£0.00</span>
</div>
<div class="d-flex justify-content-between">
<span>Discount %:</span>
<input type="number" id="discountPercent" value="0" min="0" max="100" class="fee-cell" style="width: 100px;"/>
</div>
<div class="d-flex justify-content-between">
<span>Discount Amount:</span>
<span id="discountAmount" class="fee-cell">£0.00</span>
</div>
<div class="d-flex justify-content-between">
<span>VAT (20%):</span>
<span id="vatAmount" class="fee-cell">£0.00</span>
</div>
<div class="d-flex justify-content-between">
<span>Annual Total:</span>
<span id="annualTotal" class="fee-cell">£0.00</span>
</div>
<div class="d-flex justify-content-between">
<span>Monthly Fee:</span>
<span id="monthlyFee" class="fee-cell">£0.00</span>
</div>
</div>

<div id="notes">
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.
</div>

<div class="text-center">
<button class="btn btn-danger" id="resetButton">Reset</button>
<button class="btn btn-primary" onclick="window.print();">Print</button>
<button class="btn btn-info" onclick="window.location.href='mailto:admin@asnpartners.co.uk';">Email</button>
<button class="btn btn-success" onclick="window.location.href='tel:+442089118000'">Call → 0208 911 8000</button>
</div>

<script>
$('#addServiceButton').click(function() {
const serviceRow = `
<div class="added-service d-flex mb-2">
<input type="text" class="form-control" placeholder="Service Name" style="flex-grow: 1;">
<input type="number" class="form-control" placeholder="Service Fee (£)" style="width: 100px;">
<button class="remove-button btn btn-danger btn-sm">Remove</button>
</div>`;
$('#extraServices').append(serviceRow);
});

$('#extraServices').on('click', '.remove-button', function() {
$(this).parent().remove();
});
</script>
</div>
</body>
</html>