ASN Partners - Accountancy Services Fee Calculator
About this app
Calculate fees for accountancy services tailored to your business type, aiding easy decisions for clients. Get detailed insights with real-time calculations!
ASN Partners - Accountancy Services Fee Calculator ASN Partners Accountancy Services Fee Calculator Client Name: Client Contact No (UK): Client Type: Private Limited Partnership Sole trader Self assessment Other Select Required Services: Accounts & Tax Turnover Range: Up to £90,000 £90,001 - £99,000 £99,001 - £149,000 £149,001 - £249,000 £249,001 - £349,000 £349,001 - £499,000 £499,001 - £749,000 £749,001 - £999,000 Above £999,000 Calculation Summary Subtotal: £0.00 Discount %: Discount Amount: £0.00 VAT (20%): £0.00 Annual Amount: £0.00 Monthly Fee: £0.00 Reset Print E-mail us Contact
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 Calculator</title>
<meta name="description" content="Calculate fees for accountancy services tailored to your business type, aiding easy decisions for clients. Get detailed insights with real-time calculations!" />
<meta name="keywords" content="accountancy, fee calculator, invoices, VAT, discount, business services, payment, Professional Services" />
<!-- Libraries -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/fontawesome.min.css" crossorigin="anonymous">
<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.
const toggleSection = (id, checkbox) => {
document.getElementById(id).classList.toggle('hidden', !checkbox.checked);
calculateTotal();
};
const calculateTotal = () => {
let subtotal = 0;
const accTax = document.getElementById('accTax').checked;
const type = document.getElementById('clientType').value;
const turnover = parseInt(document.getElementById('accTaxTurnover')?.value || 0);
if (accTax) {
if (type.includes("Limited")) {
if (turnover <= 90000) subtotal += 875;
else if (turnover <= 99000) subtotal += 975;
else if (turnover <= 149000) subtotal += 1100;
else if (turnover <= 249000) subtotal += 1250;
else if (turnover <= 349000) subtotal += 1500;
else if (turnover <= 499000) subtotal += 1600;
else if (turnover <= 749000) subtotal += 1800;
else if (turnover <= 999000) subtotal += 2000;
} else {
if (turnover <= 90000) subtotal += 700;
else if (turnover <= 99000) subtotal += 850;
else if (turnover <= 149000) subtotal += 900;
else if (turnover <= 249000) subtotal += 1000;
else if (turnover <= 349000) subtotal += 1300;
else if (turnover <= 499000) subtotal += 1400;
else if (turnover <= 749000) subtotal += 1600;
else if (turnover <= 999000) subtotal += 1800;
}
}
const discountPercent = parseFloat(document.getElementById('discountPercent').value || 0);
const discount = subtotal * (discountPercent / 100);
const vat = (subtotal - discount) * 0.20;
const annual = subtotal - discount + vat;
const monthly = annual / 12;
document.getElementById('subtotal').textContent = `£${subtotal.toFixed(2)}`;
document.getElementById('discountAmount').textContent = `£${discount.toFixed(2)}`;
document.getElementById('vatAmount').textContent = `£${vat.toFixed(2)}`;
document.getElementById('annualAmount').textContent = `£${annual.toFixed(2)}`;
document.getElementById('monthlyFee').textContent = `£${monthly.toFixed(2)}`;
}
const resetForm = () => {
document.querySelectorAll('input, select').forEach(el => {
if (el.type === 'checkbox') el.checked = false;
else if (el.type === 'number') el.value = 0;
else el.value = '';
});
document.querySelectorAll('.hidden').forEach(el => el.classList.add('hidden'));
calculateTotal();
}
// This will run when the DOM is ready.
document.addEventListener("DOMContentLoaded", function() {
calculateTotal();
});
} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>
<style>
body {
font-family: 'Segoe UI', sans-serif;
background: linear-gradient(to right, #f8f6f5, #e5e1df);
color: #2c2c2c;
margin: 20px;
}
h1 {
color: maroon;
text-align: center;
}
h2, h3 {
color: #800000;
text-align: center;
}
.section {
border: 2px solid maroon;
padding: 15px;
margin-bottom: 20px;
border-radius: 5px;
background-color: #fffafa;
box-shadow: 2px 4px 10px rgba(0, 0, 0, 0.1);
}
label, select, input {
display: block;
margin: 10px 0;
width: 100%;
padding: 8px;
border: 1px solid #ccc;
border-radius: 4px;
}
.three-column {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 15px;
margin-top: 10px;
}
.service-toggle {
display: flex;
align-items: center;
}
.calc-row {
display: flex;
justify-content: space-between;
margin: 5px 0;
}
.button-bar {
text-align: center;
margin-top: 20px;
}
.button-bar button {
background-color: maroon;
color: white;
border: none;
padding: 10px 15px;
margin-right: 10px;
cursor: pointer;
border-radius: 4px;
transition: background-color 0.3s;
}
.button-bar button:hover {
background-color: darkred;
}
.hidden {
display: none;
}
@media (max-width: 600px) {
.three-column {
grid-template-columns: 1fr;
}
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>ASN Partners</h1>
<h2>Accountancy Services Fee Calculator</h2>
<div class="section">
<label>Client Name: <input type="text" id="clientName"></label>
<label>Client Contact No (UK): <input type="tel" id="clientContact" placeholder="+44..."></label>
<label>Client Type:
<select id="clientType">
<option>Private Limited</option>
<option>Partnership</option>
<option>Sole trader</option>
<option>Self assessment</option>
<option>Other</option>
</select>
</label>
</div>
<h3>Select Required Services:</h3>
<div class="section three-column">
<div>
<label class="service-toggle">
<input type="checkbox" id="accTax" onchange="toggleSection('accTaxCond', this)">
Accounts & Tax
</label>
</div>
<div id="accTaxCond" class="hidden">
<label>Turnover Range:
<select id="accTaxTurnover">
<option value="90000">Up to £90,000</option>
<option value="99000">£90,001 - £99,000</option>
<option value="149000">£99,001 - £149,000</option>
<option value="249000">£149,001 - £249,000</option>
<option value="349000">£249,001 - £349,000</option>
<option value="499000">£349,001 - £499,000</option>
<option value="749000">£499,001 - £749,000</option>
<option value="999000">£749,001 - £999,000</option>
<option value="1000000">Above £999,000</option>
</select>
</label>
</div>
<!-- Additional Service Checkbox Structures Would Go Here -->
</div>
<div class="section">
<h3>Calculation Summary</h3>
<div class="calc-row"><strong>Subtotal:</strong> <span id="subtotal">£0.00</span></div>
<label>Discount %: <input type="number" id="discountPercent" value="0" onchange="calculateTotal()"></label>
<div class="calc-row"><strong>Discount Amount:</strong> <span id="discountAmount">£0.00</span></div>
<div class="calc-row"><strong>VAT (20%):</strong> <span id="vatAmount">£0.00</span></div>
<div class="calc-row"><strong>Annual Amount:</strong> <span id="annualAmount">£0.00</span></div>
<div class="calc-row"><strong>Monthly Fee:</strong> <span id="monthlyFee">£0.00</span></div>
</div>
<div class="button-bar">
<button onclick="resetForm()">Reset</button>
<button onclick="window.print()">Print</button>
<button onclick="window.location.href='mailto:central@asnuk.com'">E-mail us</button>
<button onclick="window.location.href='tel:02089118000'">Contact</button>
</div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!