Accountancy Services Fee - ASN Partners
About this app
Accountancy Services Fee - ASN Partners Accountancy Services Fee - ASN Partners CLIENT DETAILS Client Name: Client Contact No: Client Type: Private Limited Partnership Sole Trader Self Assessment Other SERVICES LIST Accounts & Tax Select Turnover: Select Turnover ≤90 000 ≤99 000 ≤149 000 ≤249 000 ≤349 000 ≤499 000 ≤749 000 ≤999 000 >999 000 £0.00 VAT Select Turnover: Select 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: Select Frequency Weekly Monthly Fortnight Weekly + Monthly Select Count: Select Count ≤5 ≤10 ≤15 ≤20 ≤30 ≤40 ≤50 >50 £0.00 Pension Select Frequency: Select Frequency Monthly Weekly Fortnight Weekly + Monthly Select Count: Select Count ≤5 ≤10 ≤15 ≤20 ≤30 ≤40 ≤50 ≤75 ≤100 >100 £0.00 Dealing with Properties Select Count: Select Count 1 2 3 4 5 6+ £0.00 ATED Properties Select Count: Select Count 1 2 3 4+ £0.00 P11D Select Count: Select Count 1 2 3 4+ £0.00 Self Assessment Select Turnover: Select Turnover ≤79 000 ≤124 000 ≥125 000 Number of Persons (1-6): £0.00 Other Services Add Service £0.00 Calculate SUMMARY Subtotal: £0.00 Discoun...
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>Accountancy Services Fee - ASN Partners</title>
<meta name="description" content="Compute 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&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous"></script>
<style>
body {
background-color: #fafafa;
color: #333;
font-family: 'Roboto', sans-serif;
text-align: justify;
}
.section {
border: 2px solid #800000;
padding: 15px;
margin: 15px 0;
}
.service-table {
border: 2px solid #800000;
padding: 12px;
margin-top: 15px;
}
h2 {
color: #800000;
text-align: center;
}
.toggle {
cursor: pointer;
appearance: none;
width: 60px;
height: 30px;
background: #ddd;
border-radius: 15px;
position: relative;
outline: none;
border: none;
margin: 0;
transition: background 0.3s;
}
.toggle:checked {
background: #800000;
}
.toggle::before {
content: '';
position: absolute;
top: 4px;
left: 4px;
width: 22px;
height: 22px;
background: white;
border-radius: 50%;
transition: left 0.3s;
}
.toggle:checked::before {
left: 34px;
}
button {
background-color: #800000;
color: white;
}
.summary-table td {
text-align: right;
padding: 8px;
}
.text-center {
text-align: center;
}
.service-fee {
text-align: right;
}
</style>
<script type="text/javascript">
try {
const serviceFees = {
accountsTax: 0,
vat: 0,
payroll: 0,
pension: 0,
realEstate: 0,
ated: 0,
p11d: 0,
sa: 0,
other: 0
};
function calculateFees() {
const clientType = $('#clientType').val();
serviceFees.accountsTax = calculateAccountsTaxFee(clientType);
$('#accountsTaxFee').text(`£${serviceFees.accountsTax}`);
serviceFees.vat = calculateVATFee();
$('#vatFee').text(`£${serviceFees.vat}`);
serviceFees.payroll = calculatePayrollFee();
$('#payrollFee').text(`£${serviceFees.payroll}`);
serviceFees.pension = calculatePensionFee();
$('#pensionFee').text(`£${serviceFees.pension}`);
serviceFees.realEstate = calculateRealEstateFee();
$('#realEstateFee').text(`£${serviceFees.realEstate}`);
serviceFees.ated = calculateATEDFee();
$('#atedFee').text(`£${serviceFees.ated}`);
serviceFees.p11d = calculateP11DFee();
$('#p11dFee').text(`£${serviceFees.p11d}`);
serviceFees.sa = calculateSAFee();
$('#saFee').text(`£${serviceFees.sa}`);
serviceFees.other = calculateOtherServicesFee();
$('#otherFee').text(`£${serviceFees.other}`);
const subtotal = Object.values(serviceFees).reduce((a, b) => a + b, 0);
const discount = parseFloat($('#discount').val()) || 0;
const discountAmount = subtotal * (discount / 100);
const vat = (subtotal - discountAmount) * 0.20;
const annualTotal = subtotal - discountAmount + vat;
const monthlyFee = annualTotal / 12;
$('#subtotal').text(`£${subtotal}`);
$('#discountAmount').text(`£${discountAmount.toFixed(2)}`);
$('#vatAmount').text(`£${vat.toFixed(2)}`);
$('#annualTotal').text(`£${annualTotal.toFixed(2)}`);
$('#monthlyFee').text(`£${monthlyFee.toFixed(2)}`);
$('#summaryPanel').show();
}
function calculateAccountsTaxFee(clientType) {
if ($('#accountsTaxToggle').is(':checked')) {
const turnover = $('#accountsTaxTurnover').val();
const fee = (clientType === 'Sole Trader' || clientType === 'Partnership')
? getSwitchValue(turnover, [700, 850, 900, 1000, 1300, 1400, 1600, 1800, 0])
: getSwitchValue(turnover, [875, 975, 1100, 1250, 1500, 1600, 1800, 2000, 0]);
return fee;
}
return 0;
}
function calculateVATFee() {
if ($('#vatToggle').is(':checked')) {
const turnover = $('#vatTurnover').val();
const fee = getSwitchValue(turnover, [550, 750, 850, 950, 1150, 1600, 1900, 2300, 2500, 2700, 2900, 3100, 3300, 3700, 4100, 4500, 0]);
return fee;
}
return 0;
}
function calculatePayrollFee() {
if ($('#payrollToggle').is(':checked')) {
const freq = $('#payrollFreq').val();
const count = $('#payrollCount').val();
const fee = getLookupValue(freq, count);
return fee;
}
return 0;
}
function calculatePensionFee() {
if ($('#pensionToggle').is(':checked')) {
const freq = $('#pensionFreq').val();
const count = $('#pensionCount').val();
const fee = getPensionFee(freq, count);
return fee;
}
return 0;
}
function calculateRealEstateFee() {
if ($('#realEstateToggle').is(':checked')) {
const count = $('#realEstateCount').val();
const fee = getRealEstateFee(count);
return fee;
}
return 0;
}
function calculateATEDFee() {
if ($('#atedToggle').is(':checked')) {
const count = $('#atedCount').val();
const fee = getATEDFee(count);
return fee;
}
return 0;
}
function calculateP11DFee() {
if ($('#p11dToggle').is(':checked')) {
const count = $('#p11dCount').val();
const fee = getP11DFee(count);
return fee;
}
return 0;
}
function calculateSAFee() {
if ($('#saToggle').is(':checked')) {
const turnover = $('#saTurnover').val();
const persons = $('#saPersons').val();
const fee = persons * getSAFee(turnover);
return fee;
}
return 0;
}
function getSwitchValue(value, options) {
const optionsKeys = ['≤90 000', '≤99 000', '≤149 000', '≤249 000', '≤349 000', '≤499 000', '≤749 000', '≤999 000', '>999 000'];
const index = optionsKeys.indexOf(value);
return index !== -1 ? options[index] : 0;
}
function getLookupValue(freq, count) {
const frequencyFees = {
'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 (frequencyFees[freq] && count <= frequencyFees[freq].length) ? frequencyFees[freq][count - 1] : 0;
}
function getPensionFee(freq, count) {
const fees = freq === "Monthly" ? [75, 115, 145, 175, 200, 245, 275, 310, 350, 0] : [180, 195, 235, 270, 365, 465, 550, 650, 740, 0];
return (count <= fees.length) ? fees[count - 1] : 0;
}
function getRealEstateFee(count) {
const fees = [400, 700, 900, 1100, 1200];
return (count <= 5) ? fees[count - 1] : 1200 + (count - 5) * 100;
}
function getATEDFee(count) {
return count == 1 ? 150 : count == 2 ? 275 : count == 3 ? 400 : 0;
}
function getP11DFee(count) {
return count <= 3 ? count * 175 : 0;
}
function getSAFee(turnover) {
return turnover === '≤79 000' ? 175 : turnover === '≤124 000' ? 200 : 250;
}
function calculateOtherServicesFee() {
let total = 0;
$('.other-service').each(function() {
const fee = parseFloat($(this).find('.serviceFee').val()) || 0;
total += fee;
});
$('#otherFee').text(`£${total}`);
return total;
}
$(document).ready(function() {
$('.toggle').change(function() {
const target = $(this).data('target');
$(target).toggle(this.checked);
if (!this.checked) {
$(target).find('span').text('Fee: £0.00');
}
});
$('#calculateButton').click(calculateFees);
$('#addServiceButton').click(function() {
const newServiceRow = `
<div class="row other-service mb-2">
<div class="col-6">
<input type="text" placeholder="Service Name" class="form-control serviceName" required />
</div>
<div class="col-4">
<input type="number" placeholder="£" class="form-control serviceFee" min="0" step="0.01" onchange="calculateOtherServicesFee()" required />
</div>
<div class="col-2 text-center">
<button type="button" class="btn btn-danger removeServiceButton">Remove</button>
</div>
</div>`;
$('#otherServices').append(newServiceRow);
});
$('#otherServices').on('click', '.removeServiceButton', function() {
$(this).closest('.other-service').remove();
calculateOtherServicesFee();
});
});
} catch (error) {
throw error;
}
</script>
</head>
<body>
<div id="main-container" class="container">
<h1 class="text-center">Accountancy Services Fee - ASN Partners</h1>
<div class="section" id="clientDetails">
<h2>CLIENT DETAILS</h2>
<div class="mb-3">
<label for="clientName" class="form-label">Client Name:</label>
<input type="text" id="clientName" class="form-control">
</div>
<div class="mb-3">
<label for="clientContact" class="form-label">Client Contact No:</label>
<input type="text" id="clientContact" class="form-control">
</div>
<div class="mb-3">
<label for="clientType" class="form-label">Client Type:</label>
<select id="clientType" class="form-select">
<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>
</div>
</div>
<div class="service-table">
<h2>SERVICES LIST</h2>
<div class="row mb-3">
<div class="col-4">
<label>Accounts & Tax</label>
<input class="toggle" type="checkbox" id="accountsTaxToggle" data-target="#accountsTaxConditional">
</div>
<div class="col-4" id="accountsTaxConditional" style="display: none;">
<label for="accountsTaxTurnover">Select Turnover:</label>
<select id="accountsTaxTurnover" class="form-select" onchange="calculateAccountsTaxFee($('#clientType').val())">
<option value="" disabled selected>Select Turnover</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="col-4 service-fee"><span id="accountsTaxFee">£0.00</span></div>
</div>
<div class="row mb-3">
<div class="col-4">
<label>VAT</label>
<input class="toggle" type="checkbox" id="vatToggle" data-target="#vatConditional">
</div>
<div class="col-4" id="vatConditional" style="display: none;">
<label for="vatTurnover">Select Turnover:</label>
<select id="vatTurnover" class="form-select" onchange="calculateVATFee()">
<option value="" disabled selected>Select Turnover</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="≤1.24 M">≤1.24 M</option>
<option value="≤1.74 M">≤1.74 M</option>
<option value="≤2.24 M">≤2.24 M</option>
<option value="≤2.99 M">≤2.99 M</option>
<option value="≤3.49 M">≤3.49 M</option>
<option value="≤3.99 M">≤3.99 M</option>
<option value="≤4.99 M">≤4.99 M</option>
<option value="≤5.99 M">≤5.99 M</option>
<option value="≤6.99 M">≤6.99 M</option>
<option value=">6.99 M">>6.99 M</option>
</select>
</div>
<div class="col-4 service-fee"><span id="vatFee">£0.00</span></div>
</div>
<div class="row mb-3">
<div class="col-4">
<label>Payroll</label>
<input class="toggle" type="checkbox" id="payrollToggle" data-target="#payrollConditional">
</div>
<div class="col-4" id="payrollConditional" style="display: none;">
<label for="payrollFreq">Select Frequency:</label>
<select id="payrollFreq" class="form-select" onchange="calculatePayrollFee()">
<option value="" disabled selected>Select Frequency</option>
<option value="Weekly">Weekly</option>
<option value="Monthly">Monthly</option>
<option value="Fortnight">Fortnight</option>
<option value="Weekly + Monthly">Weekly + Monthly</option>
</select>
<label for="payrollCount">Select Count:</label>
<select id="payrollCount" class="form-select" onchange="calculatePayrollFee()">
<option value="" disabled selected>Select Count</option>
<option value="1">≤5</option>
<option value="2">≤10</option>
<option value="3">≤15</option>
<option value="4">≤20</option>
<option value="5">≤30</option>
<option value="6">≤40</option>
<option value="7">≤50</option>
<option value="8">>50</option>
</select>
</div>
<div class="col-4 service-fee"><span id="payrollFee">£0.00</span></div>
</div>
<div class="row mb-3">
<div class="col-4">
<label>Pension</label>
<input class="toggle" type="checkbox" id="pensionToggle" data-target="#pensionConditional">
</div>
<div class="col-4" id="pensionConditional" style="display: none;">
<label for="pensionFreq">Select Frequency:</label>
<select id="pensionFreq" class="form-select" onchange="calculatePensionFee()">
<option value="" disabled selected>Select Frequency</option>
<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="pensionCount">Select Count:</label>
<select id="pensionCount" class="form-select" onchange="calculatePensionFee()">
<option value="" disabled selected>Select Count</option>
<option value="1">≤5</option>
<option value="2">≤10</option>
<option value="3">≤15</option>
<option value="4">≤20</option>
<option value="5">≤30</option>
<option value="6">≤40</option>
<option value="7">≤50</option>
<option value="8">≤75</option>
<option value="9">≤100</option>
<option value="10">>100</option>
</select>
</div>
<div class="col-4 service-fee"><span id="pensionFee">£0.00</span></div>
</div>
<div class="row mb-3">
<div class="col-4">
<label>Dealing with Properties</label>
<input class="toggle" type="checkbox" id="realEstateToggle" data-target="#realEstateConditional">
</div>
<div class="col-4" id="realEstateConditional" style="display: none;">
<label for="realEstateCount">Select Count:</label>
<select id="realEstateCount" class="form-select" onchange="calculateRealEstateFee()">
<option value="" disabled selected>Select Count</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="col-4 service-fee"><span id="realEstateFee">£0.00</span></div>
</div>
<div class="row mb-3">
<div class="col-4">
<label>ATED Properties</label>
<input class="toggle" type="checkbox" id="atedToggle" data-target="#atedConditional">
</div>
<div class="col-4" id="atedConditional" style="display: none;">
<label for="atedCount">Select Count:</label>
<select id="atedCount" class="form-select" onchange="calculateATEDFee()">
<option value="" disabled selected>Select 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="col-4 service-fee"><span id="atedFee">£0.00</span></div>
</div>
<div class="row mb-3">
<div class="col-4">
<label>P11D</label>
<input class="toggle" type="checkbox" id="p11dToggle" data-target="#p11dConditional">
</div>
<div class="col-4" id="p11dConditional" style="display: none;">
<label for="p11dCount">Select Count:</label>
<select id="p11dCount" class="form-select" onchange="calculateP11DFee()">
<option value="" disabled selected>Select 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="col-4 service-fee"><span id="p11dFee">£0.00</span></div>
</div>
<div class="row mb-3">
<div class="col-4">
<label>Self Assessment</label>
<input class="toggle" type="checkbox" id="saToggle" data-target="#saConditional">
</div>
<div class="col-4" id="saConditional" style="display: none;">
<label for="saTurnover">Select Turnover:</label>
<select id="saTurnover" class="form-select" onchange="calculateSAFee()">
<option value="" disabled selected>Select Turnover</option>
<option value="≤79 000">≤79 000</option>
<option value="≤124 000">≤124 000</option>
<option value="≥125 000">≥125 000</option>
</select>
<label for="saPersons">Number of Persons (1-6):</label>
<input type="number" id="saPersons" class="form-control" min="1" max="6" value="1" onchange="calculateSAFee()"/>
</div>
<div class="col-4 service-fee"><span id="saFee">£0.00</span></div>
</div>
<div class="row mb-3">
<div class="col-4">
<label>Other Services</label>
<input class="toggle" type="checkbox" id="otherToggle" data-target="#otherServicesConditional">
</div>
<div class="col-4" id="otherServicesConditional" style="display: none;">
<button id="addServiceButton" class="btn btn-secondary">Add Service</button>
<div id="otherServices"></div>
</div>
<div class="col-4 service-fee"><span id="otherFee">£0.00</span></div>
</div>
<button id="calculateButton" class="btn btn-primary mb-2">Calculate</button>
</div>
<div id="summaryPanel" style="display: none;">
<div class="section">
<h2>SUMMARY</h2>
<div class="summary-table">
<div>Subtotal: <span id="subtotal">£0.00</span></div>
<div>Discount %: <input id="discount" class="form-control" placeholder="0"/> <span id="discountAmount">£0.00</span></div>
<div>VAT: <span id="vatAmount">£0.00</span></div>
<div>Annual Total: <span id="annualTotal">£0.00</span></div>
<div>Monthly Fee: <span id="monthlyFee">£0.00</span></div>
</div>
</div>
</div>
<div class="text-center">
<button class="btn btn-secondary">Reset</button>
<button class="btn btn-secondary">Print</button>
<button class="btn btn-secondary">Email: admin@asnpartners.co.uk</button>
<button class="btn btn-secondary">Call: 0208 911 8000</button>
</div>
<div class="section">
<h2>Notes</h2>
<textarea class="form-control" rows="4" 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>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!