FOR TRADES & HOME SERVICES

You quoted the job.
But they've disappeared.

We’ll count how much work is sitting in your old quotes and with past customers. Then we get back in touch and make sure new enquiries don't go the same way.

Your Lost Jobs Count
Counting…
Going through 6 months of quotes
Quotes that went quiet—
Past customers not heard from in 12+ months—
Average job value—
Work sitting there, ready to win back
—
Old quotes
Chased properly, in your name
Past customers
Brought back for the next job
Your data stays yours
Data agreement signed first
Free count
Nothing there? We'll tell you
(function() { /* EDIT HERE. Use numbers once you have a real count (e.g. quotes: 38). Text in brackets is shown as-is, without the count-up. */ var BTBC = { quotes: '[00]', customers: '[00]', jobValue: '[£0,000]', total: '[£00,000]', tagWhenDone: 'Example' }; var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; function fmt(n, money) { return (money ? '£' : '') + Math.round(n).toLocaleString('en-GB'); } function countUp(id, value, money, ms, cb) { var el = document.getElementById(id); if (typeof value !== 'number' || reduce) { el.textContent = typeof value === 'number' ? fmt(value, money) : value; if (cb) cb(); return; } var start = null; function step(t) { if (!start) start = t; var p = Math.min((t - start) / ms, 1); var eased = 1 - Math.pow(1 - p, 3); el.textContent = fmt(value * eased, money); if (p < 1) { requestAnimationFrame(step); } else if (cb) { cb(); } } requestAnimationFrame(step); } function fillRow(n, value, money, cb) { document.getElementById('btbc-r' + n).classList.add('filled'); countUp('btbc-v' + n, value, money, 600, cb); } function run() { document.getElementById('btbc-bar').style.width = '100%'; setTimeout(function() { fillRow(1, BTBC.quotes, false, function() { setTimeout(function() { fillRow(2, BTBC.customers, false, function() { setTimeout(function() { fillRow(3, BTBC.jobValue, true, function() { setTimeout(function() { document.getElementById('btbc-total').classList.add('on'); document.getElementById('btbc-scan-label').textContent = 'Count complete'; countUp('btbc-tv', BTBC.total, true, 900, function() { document.getElementById('btbc-card').classList.add('done'); document.getElementById('btbc-tag').textContent = BTBC.tagWhenDone; }); }, 350); }); }, 300); }); }, 300); }); }, reduce ? 0 : 1400); } setTimeout(run, reduce ? 0 : 400); })();

THE PROBLEM

The jobs are there. You're just not banking them.

📝 Old Quotes

"Let me have a think and get back to you."No follow-up sent.Some still want it done. Others have moved on to the next job, and that one could be yours.

👥 Past customers

Great job in 2024. Five stars.Haven't heard from you since.Next time, they Google someone else.

💷 Bookings and deposits

Missed call at 6.40pm.
Called back next afternoon.
They'd already booked someone.

HOW IT WORKS

Count it. Win it back. Keep it.

We count what's sitting in your old quotes and customer list for free. Then we get back in touch with those people for you.Once that's working, we sort your booking out so new work doesn't go the same way.

1
Count it
Start here
Free

Send your old quotes and customer list. We put a number on the work sitting there.

A spreadsheet, an export from your job software or photos of your quote book are all fine.

2
Win it back
Results-based
£299 + 15% of work won

We message them in your name, and you see every message before it goes. Some will want the original job, some will want something else. You just turn up and do it.

A job counts as won if it's booked from our list within 90 days.

3
Keep it
Optional
£179 /month

We build and run your smart booking form, deposits and follow-ups, so work stops slipping away.

(function() { var steps = document.querySelectorAll('#btbs-wrap .btbs-step'); function show() { steps.forEach(function(s, i) { setTimeout(function() { s.classList.add('in'); }, i * 220); }); } if (!('IntersectionObserver' in window)) { show(); return; } var io = new IntersectionObserver(function(entries) { if (entries[0].isIntersecting) { show(); io.disconnect(); } }, { threshold: 0.2 }); io.observe(document.getElementById('btbs-wrap')); })();

THE SMART BOOKING FORM

New enquiries, booked and paid for.

Customers pick a date and pay a deposit online. No back and forth, no chasing. We build it, run it and keep it working. You just turn up.

  • Deposit on booking: Paid before you've lifted a finger.

  • Follow-ups that send themselves: No reply? They get a nudge.

  • Half-filled forms caught: If someone drops off, we pick them up.

  • Reminders to old customers: When they're due, they hear from you.

£179/month · set up and run for you

Book your appointment
Your name
+44 7700 000000
Boiler service
Full install
Emergency call-out
Get a quote →
Pick a date
Payment on booking
Deposit secured before you lift a finger
Automated follow-ups
No reply? Chase sequence fires automatically
Partial submissions
Drop-offs recovered before they're lost
1-tap custom quote
No email needed — details captured instantly
(function() { function btbType(id, text, speed, cb) { var el = document.getElementById(id); el.classList.add('filled'); el.innerHTML = ''; var i = 0; var iv = setInterval(function() { i++; el.innerHTML = text.slice(0, i) + ''; if (i >= text.length) { clearInterval(iv); el.textContent = text; if (cb) cb(); } }, speed); } function btbSetDate() { var d = new Date(); d.setDate(d.getDate() + 5); var el = document.getElementById('btb-dt'); el.classList.add('filled'); el.textContent = d.toLocaleDateString('en-GB', { weekday: 'short', day: 'numeric', month: 'long' }); } setTimeout(function() { btbType('btb-fn', 'James Hargreaves', 42, function() { setTimeout(function() { btbType('btb-ph', '+44 7823 441 882', 42, function() { setTimeout(function() { document.getElementById('btb-s1').classList.add('sel'); setTimeout(function() { btbSetDate(); document.getElementById('btb-pay').classList.add('on'); setTimeout(function() { document.getElementById('btb-pay').classList.add('done'); document.getElementById('btb-pay-label').textContent = 'Deposit secured \u2713'; }, 800); }, 500); }, 350); }); }, 300); }); }, 400); })();

WHO IT'S FOR

Built for any trade that takes bookings.

🪠 Plumbing & Heating

🔌 Electrical

🐀 Pest Control

❄️ HVAC Services

🧼 Cleaning Services

🪴 Landscaping & Gardening

🧱 General Construction

🎨 Painting & Decorating

WHO'S BEHIND IT?

I'm Dan. This fix transformed my repair business.

Bookings were manual, payment was chased via email, and customers bought once and vanished. We fixed the booking flow, recovered abandoned bookings and followed up after every job.

Bookings per month
12 months
5
→
70
Before
5
12 months on
70
(function() { var BEFORE = 5, AFTER = 70; var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; var afterEl = document.getElementById('btbk-after'); function play() { document.getElementById('btbk-b1').style.width = (BEFORE / AFTER * 100) + '%'; document.getElementById('btbk-b2').style.width = '100%'; if (reduce) { afterEl.textContent = AFTER; return; } var start = null; function step(t) { if (!start) start = t; var p = Math.min((t - start) / 1200, 1); var eased = 1 - Math.pow(1 - p, 3); afterEl.textContent = Math.round(BEFORE + (AFTER - BEFORE) * eased); if (p < 1) requestAnimationFrame(step); } afterEl.textContent = BEFORE; requestAnimationFrame(step); } if (!('IntersectionObserver' in window)) { play(); return; } var io = new IntersectionObserver(function(entries) { if (entries[0].isIntersecting) { play(); io.disconnect(); } }, { threshold: 0.3 }); io.observe(document.getElementById('btbk-wrap')); })();

How many new jobs are sitting in your old quotes?

If there's nothing worth chasing, we'll tell you.Your customer data stays yours. We sign a data agreement before we see anything.

© 2026 BookingtoBank. All rights reserved.

GET STARTED

About Your Business

Tell me a bit about your business and I’ll be in touch within one working day.

(function() { var script = document.createElement('script'); script.src = "https://paperform.co/__embed.min.js"; document.body.appendChild(script); })();