$1M
Leaks
Find the Money Your Service Business Already Earned and Never Collected
Will Hamilton
ServiceLine Pro
$1M Leaks: Find the Money Your Service Business Already Earned and Never Collected
Copyright © 2026 Will Hamilton and ServiceLine Pro. All rights reserved. No part of this book may be reproduced without written permission, except short quotations in reviews.
First edition, November 2026. servicelinepro.com
The companion workbook runs free at workbook.servicelinepro.com.
Examples in this book are labeled as examples and built on the workbook's default inputs. Client results are client-reported unless a chapter says otherwise. Nothing here is legal, tax or accounting advice.
Contents
- 22Add-On per Job
- 23Customer Lifetime Value
- 24Seasonal Dip
- 25Maintenance Plans
- 26Price Raise Math
- 27Low-Margin Job Types
How to use this book
Alex Hormozi wrote $100M Leads to teach owners how to get more strangers to raise their hand. It is a good book, and I have bought copies for people. I wrote this one for the step before it, because most of the home-service companies my team audits already receive more leads than they turn into money.
A missed call, an estimate nobody chased and a tech billing 19 of the 40 hours you pay for never appear on your profit and loss statement. Accounting posts a line when money moves, and none of those moved any. I call each one a leak, and this book prices them one at a time with your own records.
How the book is built
Part I gives you one formula, Opportunity Value, and sorts every leak into three families. The Jobs family fills the schedule, and it runs through Part II on the phone, Part III on Google Maps and Part IV on your pipeline. The Hours family gets more billed work out of the hours you already pay for, in Part V. The Margin family earns more on the jobs you already win, in Part VI. Part VII covers the risk of leaning on one lead source and what the business would sell for. Part VIII ranks everything you found and gives you a 90-day order for fixing it.
Every leak chapter opens on a number or a mechanism, works the math with example numbers in figures you can check, and tells you which report in your business holds your own number. Each one gives you tests you can run in under 30 minutes, scripts you can copy, a list of what to demand if you hire someone to fix the leak, and a “Do this week” list with the time each step takes.
After every leak chapter comes a worksheet with the chapter’s example numbers, the result they produce and a blank line for yours. Fill it in with a pencil. A rough number you trust is worth more than a perfect number you never pull.
Use the live workbook
Every worksheet also runs at workbook.
Three rules for reading
Use your own numbers. Most examples follow a four-truck pool company with a $450 average job so you can follow the math across chapters, and none of them is a benchmark. Your call log, your accounting file and your field app will tell you more about your business than any industry average.
Don’t add the leaks together. A missed call and a slow callback can be the same lost customer, so the job leaks can never total more than the Opportunity Value in Chapter 2. Chapter 30 ranks them without counting a dollar twice.
Fix one leak at a time. Find the biggest, fix it, measure it for a month, then move to the next.
Who this book is for
I wrote it for owners of home-service companies doing between $1 million and $10 million a year: HVAC, roofing, electrical, pest control, pool service, painting, landscaping, fencing, garage doors, cleaning and the other trades that send a truck to a house. Smaller companies can use every chapter, though some of the dollar figures will run smaller.
Who wrote this
I’m Will Hamilton. I run ServiceLine Pro, a marketing company that grows home-service businesses from $1 million to $10 million. I also own a painting company, and every fix in this book runs there first.
The real cases in this book come from ServiceLine Pro clients and prospects. None of them is named. Each case is described by rough size, and by trade where naming the trade would not identify the client. Anything labeled as an example is an example.
Start here
A four-truck pool company running 80 of a possible 120 jobs at $450 each leaves $18,000 a month on its own trucks.
- 01Everyone Wants More Money
- 02Opportunity Value
- 03Why You Can't See It
- 04Where Your Real Numbers Live
Everyone Wants More Money
One audit found a company losing close to $1.8 million a year to calls, forms and buttons that nobody inside it had ever tested.
One ServiceLine Pro audit found a company losing close to $1.8 million a year to a handful of broken and disorganized basics: calls nobody answered, web forms that never arrived, and buttons on the site that went nowhere. Nothing exotic caused any of it. The company is a private client file, so I will not give its trade.
Every one of those failures sat on the path a stranger takes into the business, and nobody on the payroll ever walks that path. You reach your office by texting your office manager or dialing an extension. You see your website on a laptop you are already logged into. You have never tapped the call button on your own Google profile, and you have never sent your own contact form from a phone on cell data. Your office staff, your techs and your bookkeeper all use the same inside routes. The public route can stay broken for a year without one employee hitting the break, and a customer who hits it has the next listing one tap away.
A 30-minute test of the public path
Walk the path your customers take. Do it from your own cell phone, with Wi-Fi off, and write pass or fail next to each step.
- Calls. Call your main number three times this week from a cell number your office has not saved: once before 8 a.m., once between noon and 1 p.m., and once after 5 p.m. Pass means a person answers within four rings, or someone calls you back within 15 minutes. Voicemail with no callback, a full mailbox or a dead ring is a fail.
- Your Google profile. Search the service you sell most plus your town, find your own listing, and tap Call, then Website, then Directions. Pass means the call reaches the line your office answers, the website loads, and the pin sits on your real address.
- Your form. Fill out your website’s contact form with a phone number you control. Pass means a person contacts you within an hour during business hours and you can name whose inbox the form landed in. Silence, or a submission sitting in a spam folder, is a fail.
- Your buttons. On your homepage and on one service page, tap every phone number, every quote button and every booking button. Pass means each one dials the right number or opens a form that submits.
- Your voicemail. On the after-5 p.m. call, leave a message with your name, a job you need done and your cell number. Pass means someone calls back by 10 a.m. the next business day. Write down the time of the callback, because Chapter 6 prices every hour of delay.
The calls take about five minutes, the profile five, the form five, the buttons ten, and the voicemail check runs on its own while you wait. Every fail is a leak with a chapter: calls go to Chapters 5 and 7, the form and the buttons to Chapter 8, and the profile to Part III. Write the date on the sheet, because you will run this again after each fix.
Five questions that sort your constraint
When an owner tells my team the business is busy enough, I tell them to keep asking. My line in our company Slack: “Find out what they need. Someone always needs something. Even if they’re swamped, then it’s ops, or hiring, or software.”
I ask owners these five on a first call. They take two minutes.
“What is a typical job worth to you?”
“How many calls came in last month, and how many did you answer live?”
“Where did last month’s work come from?”
“If the phone rang twice as much starting tomorrow, what breaks first?”
“What is the one thing you suspect is broken and have not checked?”
Answer each in one written sentence. A question you cannot answer is your first finding, and Chapter 4 shows where that number lives. Check the second answer against the carrier’s call log the same week. When the count you gave from memory and the count in the log differ by more than ten missed calls a month, trust the log, and expect the other answers you gave from memory to be off by a similar margin.
The fourth answer sorts you into the three families that Chapter 2 builds the book around. “Nothing would break” means your constraint is Jobs, and Chapters 5 to 17 will pay you first. “The crew can’t keep up” or “the schedule” means your constraint is Hours, and Chapters 18 to 21 price it before you buy a single lead. “I’m full and still broke” means your constraint is Margin, and Chapters 22 to 27 cover price, add-ons and job mix.
The fifth answer is the cheapest to act on. Owners usually already suspect the voicemail box, the website form or the estimates sitting in a truck, and the public-path test above checks the first two in under half an hour.
What changed for one deck and fence contractor
A deck and fence contractor reported about $30,000 of income in the prior year and one or two thousand dollars in the bank. The owner then fixed the basics on the public path and made sure every lead and call got a response within minutes. Within six months of launch, the owner reported a single month above $200,000, against that $30,000 year. We hold no call counts or job counts for that month, so I will not guess them. Record three numbers for your own month one and the month before it: calls answered, jobs booked and dollars booked.
The owner built the same decks in the same market before and after. Decks are high-ticket jobs, and in that market few competitors worked the searches that bring deck jobs in, so the demand had been sitting there unclaimed. One case proves little on its own, and that market was unusual. You can check whether yours has the same opening in 15 minutes: at 6 p.m. on a weekday, call the three companies in the map’s top three for your highest-ticket service. If two of the three send you to voicemail, the customers in your market are reaching a dead line most evenings, and the first company to answer collects them.
If you pay someone to fix it
An audit of these basics is worth paying for only if it walks the public path for you and prices what it finds from your own records.
- Demand live tests at three times of day, with the call recordings, form timestamps and screenshots handed to you.
- Demand dollar figures built from your call log and your average job, with the formula shown. Industry averages are a red flag.
- Ask how the auditor keeps overlapping leaks from being counted twice. Chapter 2 gives the cap.
- Walk away from a report measured in impressions or traffic with no count of calls or booked jobs.
- Walk away from any promise of a map rank.
Do this week
- Run the public-path test from your own phone and write pass or fail for each step. (30 minutes)
- Answer the five questions in writing, one sentence each. (10 minutes)
- At 6 p.m. on a weekday, call the three map leaders for your highest-ticket service and note which ones a person answers. (15 minutes)
- Ask your office manager how many calls the business missed last week, write the answer down, and check it against the carrier log in Chapter 4. (15 minutes)
- Read Chapter 2 and pull your average job, your ceiling and last month’s job count. (30 minutes)
Opportunity Value
Average job times open slots. A four-truck pool company running 80 of a possible 120 jobs is sitting on $18,000 a month.
A two-year-old pool cleaning company had a 5.0 rating from 73 Google reviews, and a scan of 169 map points across its city found it in the top three for its own city’s main search term at only 3 of them. After the first call with the owner, one of my team posted this in our Slack: “Seems like they are doing as much as they want for now.” I wrote back three replies in a row.
“See how many calls the GBP is getting right now?”
“Doing as much as they want? Everyone wants more money.”
“If they are too busy it is likely that they need ops things. But usually people are not actually as busy as they want to be. They just do not want to spend money, and so they lie to themselves.”
I say “lie” with affection. An owner who says the business is doing enough is protecting themselves from something specific: a marketing bill they cannot see coming back, the chaos of another truck, or a hire that burned them last time. Each of those has a fix and a price. Then I posted a formula in the same thread. It takes three numbers and about a minute, and every other chapter in this book sits inside it.
Three numbers
| A | What one job is worth |
| B | The most jobs you could run in a month with the crew and trucks you have today |
| C | The jobs you completed last month |
| Opportunity Value | A × (B − C) |
Pull A from your invoices: total invoiced over the last 90 days divided by the jobs completed in the same 90 days. Ninety days keeps one big job or one slow week from skewing it. Pull C from your field app’s count of completed jobs for the last full month, and count completed jobs, never booked ones. Chapter 4, Pull 2 shows both exports. If you run $150 service calls and $12,000 installs, run the formula twice, once for each, because a blended average describes a job you have never done.
B is capacity you already pay for. The truck payment, the insurance and the payroll come due whether the crew runs 80 jobs or 120.
216,000 a year
At $18,000 a month the gap is $216,000 a year and $592 a day, Sundays included. Over five years it comes to $1,080,000, which is where the title of this book comes from.
Set B from your best days
When I run this with an owner, the argument is over B. The owner names a B a hair above C, “we could maybe do 85,” and the gap shrinks to $2,250 and stops bothering anyone. A high B makes last month look bad, so owners guess low. Set B from last month’s schedule, which the owner cannot argue with.
- Open last month’s schedule in your field app.
- For each tech or crew, find the three days with the most completed jobs and average them. A single best day overstates B, because a best day often holds three short stops on one street.
- Multiply each tech’s three-day average by the working days in the month (usually 21 or 22) and add the techs together.
Then ask the follow-up I always ask: “What would you run with one more truck?” An owner who answers that fast has already been thinking about it, which means the current trucks are below their ceiling.
Cut the pool company’s B from 120 to 100 and the gap is still $9,000 a month, or $108,000 a year.
Run the formula for your slowest month as well as last month. B stays nearly the same all year, because the trucks and the crew stay, while C drops in the off season. A pool company that ran 80 jobs in July and 46 in February has an Opportunity Value of $33,300 in February at the same A and B (450 x 74). That winter number is the seasonal dip, and Chapter 24 shows how maintenance plans and off-season offers fill it.
Three families of leaks
Every leak in this book moves one letter of the formula, and that sorts all of them into three families.
- Jobs: fill the schedule. These leaks raise C toward B. Phone (Chapters 5 to 8), Google Maps (Chapters 9 to 12) and Pipeline (Chapters 13 to 17): missed calls, slow callbacks, after-hours leads, broken forms, map position and coverage, reviews, AI recommendations, past customers, referrals, the seasonal dip, door hangers, unchased estimates and cost per closed job.
- Hours: use the hours you pay for. These leaks raise B with the same payroll, or let you pay for fewer hours. Unbilled crew hours, drive time, owner hours on $20 work and the next-truck break-even (Chapters 18 to 21).
- Margin: earn more on jobs you win. These leaks raise A. Add-ons, customer lifetime value, maintenance plans, price and low-margin job types (Chapters 22 to 27).
The letter each family moves tells you how its dollars add up. The Jobs leaks overlap each other, because a missed call and a slow callback can be the same lost customer, and together they can never be worth more than A × (B − C). The Hours leaks create room, and freed hours earn money only once the Jobs family fills them. The Margin leaks work on the jobs you already run, so their dollars stack on top of Opportunity Value without overlapping it. Chapter 30 uses these rules to rank every leak without counting a dollar twice.
B comes from hours. The pool company’s four techs work 22 days of 8 hours, so it pays for 704 crew-hours a month.
| Crew-hours a month | Per job | At C, 80 jobs | At B, 120 jobs |
|---|---|---|---|
| Billed at customers | 4.1 | 328 | 492 |
| Driving | 1.1 | 88 | 132 |
| Shop, loading and paperwork | 80 | 80 | |
| Idle, nothing scheduled | 208 | 0 | |
| Paid | 704 | 704 |
At 80 jobs the 208 idle hours are the 40 open slots at 5.2 hours each. B is the job count where idle hours reach zero, and Chapters 18 and 19 price these rows.
When B equals C, the Jobs family is closed for now. Then your money sits in Hours (routes, unbilled time, the next truck) and Margin (price, add-ons, job mix), and you should start at Part V.
What owners say back
“We’re profitable. We don’t need to grow.” Say your trucks, insurance, office and software cost $9,600 a month. That is $120 of overhead on each of 80 jobs and $80 on each of 120. At a 40 percent contribution a $450 job leaves $180, and the 40 jobs between C and B carry no new overhead, so monthly profit goes from $4,800 to $12,000. Those are example numbers; put your own fixed costs from the profit and loss statement in their place.
“I don’t want more headaches.” Then your constraint is Hours, and that is worth money too. Each pool tech is paid for 176 hours a month and bills 82, and the crew still feels slammed at 80 jobs, and Chapter 3 shows why the feeling and the timesheet disagree. Chapters 18 to 21 price the routes, the idle time and the next truck.
Do this week
- Pull A: total invoiced over the last 90 days divided by jobs completed in the same 90 days. (15 minutes)
- Set B from each tech’s three best days last month, then write down what you would run with one more truck. (20 minutes)
- Pull C, multiply A × (B − C), and write the monthly figure on a sticky note on your monitor. (10 minutes)
- If B equals C, write down which family holds your money, Hours or Margin. (5 minutes)
- Enter your numbers at workbook.
servicelinepro. com/#ov and keep the result for Chapter 30. (5 minutes)
Why You Can't See It
Your books post a line only when money moves, and every leak in this book is money that never moved.
Double-entry bookkeeping posts a line when money moves: an invoice paid, a bill paid, a payroll run. A call that rang out at 12:20 p.m. moved no money, so no account in QuickBooks can hold it, and no report your accountant runs will ever show it. Every leak in this book has that property. The missed call, the estimate nobody chased and the hour a tech sat in the truck between stops all cost real money, and all of them leave the profit and loss statement untouched.
Economists named this problem long before anyone ran a service business. Frédéric Bastiat’s 1850 essay “What Is Seen and What Is Not Seen” argued that a bad economist counts only the effect he can see, while a good one also counts the effects nobody can see. Friedrich von Wieser built the idea into his 1914 Social Economics, where he measured the cost of any choice by the best option given up to make it. Your bookkeeper counts what is seen. This chapter shows you how to count the rest and post it every month next to the numbers you already read.
Count, price and post a missed call
An unseen cost becomes visible in three steps. Count the events from a record that keeps timestamps, price each one with the numbers from Chapter 2, and post the total on a page you read every month. The missed call is the cleanest example, because the phone carrier already counts it.
Say the carrier log shows 150 inbound calls last month, 90 answered and 60 missed. Not every missed call is a job. Some are spam, some are vendors and some are existing customers asking a question. Call 60% of the missed calls real customers, and say half of those would have booked if someone had picked up.
Eighteen lost jobs at a $450 average job is $8,100 a month, or $97,200 a year. Post that number. A spreadsheet tab called “Unseen costs” with one row per month and one column per leak takes ten minutes to set up, and the missed-call column is the first one you can fill from the carrier export in Chapter 4. Replace the 60% and the half with your own rates once you have them. Listen to ten missed-call voicemails to set the first rate, and use your close rate on answered calls for the second.
Why a $3,000 bill hurts more than an $8,100 leak
Daniel Kahneman and Amos Tversky published “Prospect Theory: An Analysis of Decision under Risk” in 1979. They showed that people judge an outcome as a gain or a loss from a reference point, usually what they have now, and that a loss weighs more than a gain of the same size. A $3,000 marketing bill comes out of a bank balance you watch, so it registers as a loss. The $8,100 in jobs that rang out never reached the account, so it registers as a gain you missed, and a missed gain weighs less than a loss even when it is nearly three times larger.
That weighting drives the decisions owners regret. An owner cuts a $400 answering service to save money, the bill line drops by $400, and the missed-call count climbs where no report shows it. Before you cut any seen cost, write down which unseen number it feeds. Price that number first. If cutting the answering service adds even two booked jobs a month to the missed column, it costs $900 to save $400.
Why “we’re slammed” is a feeling
Owners tell me the crew is slammed and they could not take another job. Sometimes that is true. Often the schedule feels full because the pool company from Chapter 2 pays each tech for about 40 hours a week and bills about 19. The other 21 hours disappear into drive time, waiting on parts, late starts and the gap between a 9 a.m. job that finished at 10:15 and a 1 p.m. job across town. Nobody sees those hours, because payroll posts paid hours and the invoice posts billed work, and no report subtracts one from the other.
Run the test in under 30 minutes. Pull four weeks of paid hours per tech from payroll and four weeks of hours on the job from your field app’s timesheet report. Divide hours on the job by paid hours for each tech. Under 75% is a fail, and the gap belongs to Chapters 18 and 19. If your field app does not record hours on the job, that is your first finding, and a week of techs writing start and stop times on each work order will give you a usable sample.
Find the record for each unseen number
Every unseen cost in this book has a timestamped record somewhere in your business. Chapter 4 walks through nine exports and lists which chapter prices each one. A line you cannot fill there is a record your business does not keep yet, and a leak with no record stays invisible after you fix every other one.
If you pay someone to fix it
Your bookkeeper or fractional CFO can post unseen costs every month if you ask for them by name.
- Ask for a monthly page that shows missed calls, unchased estimates and unbilled hours in dollars beside the profit and loss statement.
- Ask for the formula behind each dollar figure, with your average job and your rates, never an industry average.
- Ask that the same rules apply every month, so a change in the number means a change in the business.
- Treat any report that shows only money that moved as half a report.
Do this week
- Export last month’s inbound calls from your carrier, count the missed ones, and price them with the funnel above using your own average job. (20 minutes)
- Make a spreadsheet tab called “Unseen costs” with one row per month and post the missed-call dollars in it. (10 minutes)
- Pick one seen cost you have cut or plan to cut and write down which unseen number it feeds. (5 minutes)
- Compare four weeks of payroll hours to hours on the job for each tech and mark anyone under 75%. (30 minutes)
- Go down the list of unseen numbers and mark which records your business keeps and which it does not. (10 minutes)
Where Your Real Numbers Live
Every number in this book already exists as a timestamped record in your business, spread across systems that do not talk to each other.
Every number this book asks for already exists as a timestamped record inside your business. The phone carrier logs every inbound call with its time and status. The field app stamps every job, quote and timesheet. Payroll stores paid hours by employee, and Google keeps a monthly count of taps on your listing. Different people bought those systems in different years, none of them shares data with the others, and so no single screen shows the leaks.
Set this pass line for the chapter: you can state your average job value, your close rate and where last month’s work came from without opening a laptop. After nine exports, each about ten minutes, you will be able to answer all three from memory, and you will have a one-page scoreboard that every later chapter fills in.
Report names change when vendors update their software, so this chapter describes each report by the columns you need. When a name on your screen differs, find the report with the same columns.
Nine pulls
Run them in order. Pulls 1 to 3 give you the numbers for Chapters 2 and 5, and you can stop there on a busy week.
Pull 1. Profit and loss by month. From your accounting software, run the profit and loss statement for the last 12 full months with one column per month. Write down income and net income for each month and mark the best and worst month. This shapes the seasonal dip in Chapter 24 and the margin math in Chapters 26 and 27. If you track classes by trade or crew, run the same report by class.
Pull 2. Jobs, quotes and timesheets from your field app. Export every job completed in the last 90 days with date, job total, job type, tech and lead source. Export the quotes or estimates for the same 90 days with the dollar value and status of each. Export one month of timesheets with hours on the job per tech. Your average job, A in Chapter 2, comes from this pull.
Divide quotes approved by quotes sent for your close rate. Count quotes older than seven days with no follow-up recorded, which feeds Chapter 16.
Pull 3. Carrier call log. Your phone provider’s admin portal keeps call history. Export 30 days to CSV with date and time, direction, status, duration and caller number. Filter to inbound, then count total, answered, missed and voicemail. Sort the missed calls by hour.
When missed calls bunch at lunch and after 5 p.m., the fix is coverage for two windows, which costs far less than a full-time hire. A business that misses calls evenly through the day has a staffing problem instead, and Chapter 5 covers that case.
Pull 4. Call tracking by source. If you use a separate tracking number for each ad, directory and website, the tracking dashboard tags every call with its source. Export 90 days by source with total calls and calls over 60 seconds. With no call tracking, have whoever answers the phone write down how each new caller found you for two weeks. Chapter 17 uses this to price the cost of each closed job by source.
Pull 5. Google Business Profile performance. Open your profile’s performance view while signed in to the account that manages it, set six months, and write down monthly calls, website clicks and direction requests, plus the top five search terms. Count reviews received in the last 90 days. Google counts a tap on the Call button as a call, and a tap does not mean anyone connected. If your profile lists its own tracking number, compare its monthly calls to the inbound calls that number shows in the carrier log.
A gap above 20% sends you back to Chapter 1’s public-path test, because something between the tap and the ring is failing. Chapters 9 to 12 use the rest of this pull.
Pull 6. Customer list. Export every customer with the date of the last job and total spend. Count the customers whose last job was 12 to 36 months ago, which is your past-customer list for Chapter 13, and count how many of those records have a working phone number or email. Count referral customers if you track the source, for Chapter 14.
Pull 7. Website forms. Count form submissions for the last 30 days from the form tool’s log, then check the spam folder for entries nobody saw. Compare that count to the leads your office says came from the website. If you have not run the form step of Chapter 1’s public-path test, run it now. Chapter 8 prices whatever fails.
Pull 8. Payroll hours. Pull paid hours by employee for the last four full weeks and divide by four. Write down each tech’s pay rate and the total labor cost. Divide hours on the job from Pull 2 by these paid hours, and Chapter 18 prices the difference.
Pull 9. Schedule and mileage. Pull one week of the schedule and count drive time between stops for each tech. Truck GPS exports give this directly. Without GPS, plot one day per tech in a map app and multiply by five. Chapter 19 uses the crew’s weekly drive hours.
Build the scoreboard
Copy the pulls onto one page and keep it where you read the profit and loss statement each month. Each line names the export it comes from and the chapter that prices it.
- Average job (A), jobs you could run in a month (B) and jobs completed last month (C). Pull 2. Chapter 2.
- Inbound calls in 30 days, answered, missed and voicemail, with missed calls by hour. Pull 3. Priced in Chapters 5 and 7.
- Calls by source. Pull 4. Chapter 17.
- Profile calls, website clicks, direction requests and reviews in 90 days. Pull 5. Chapters 9 to 12.
- Quotes sent, approved and open past seven days. Pull 2. Chapter 16.
- Customers inactive 12 to 36 months and how many you can reach. Pull 6. Chapter 13.
- Form submissions in 30 days and your own test result. Pull 7. Chapter 8.
- Paid hours against hours on the job per tech. Pulls 2 and 8. Chapter 18.
- Crew drive hours per week. Pull 9. Chapter 19.
- Income by month for 12 months. Pull 1. Chapter 24.
Leave a line blank when you lack the data and circle it. A blank is a system nobody in the business can open, and it goes on your list of fixes ahead of any leak. The same customer will show up on several lines, because a caller who rang out at 7 p.m. and never got a callback is a missed call, a slow callback and an after-hours lead at once. Write each leak down by itself for now. Chapter 2 caps the job leaks at Opportunity Value, and Chapter 30 ranks them without counting a dollar twice.
When the data is messy
Three problems come up in almost every business, and each has a fixed rule.
The call log includes your own staff, vendors and spam. Drop numbers you recognize and any inbound call under 10 seconds, and write down how many you dropped. The field app has jobs with no lead source. Put them in an “unknown” bucket and keep that rule every month, because a stable rule lets you compare months even when the bucket is large. The customer list has duplicates. Check a sample of 50 records, count the duplicates, and cut your totals by that percentage instead of cleaning the whole list today.
You need numbers good enough to rank the leaks. An answer within 10% of the truth ranks them correctly almost every time, because the leaks in Chapter 30 usually differ by more than that.
“I’m pricing out what’s leaking in the business. By Friday I need five exports: the last 30 days of inbound calls from the phone system, the last 90 days of jobs, quotes and timesheets from the field app, every customer with their last job date, six months of Google Business Profile performance, and 30 days of website form submissions. CSV or a screenshot is fine. If you can’t find one, tell me which and we’ll look together.”
The exports that come back late tell you which systems nobody in the office can open.
If you pay someone to fix it
The vendors who run your phones, your website and your marketing hold half of these records. Check that the records belong to you.
- Demand admin logins in your own name for the phone system, the call tracking, the website, the form tool and the Google Business Profile.
- Demand a CSV export of your calls and leads on request, within a business day.
- Demand that tracking numbers stay yours if you leave, or that the vendor ports them to you.
- Demand monthly reports in calls and booked jobs, never only impressions and clicks.
- Treat a vendor who owns your Google profile, your domain or your phone numbers as a red flag, and move them into your name first.
Do this week
- Run Pulls 1 to 3 yourself, or sit beside your office manager while they run them. (40 minutes)
- Run Pull 5 and compare profile calls to the carrier log. (10 minutes)
- Send the message above to your office manager. (2 minutes)
- Fill in the scoreboard and circle every blank. (30 minutes)
- For each blank, write down who owns that system and the date you will have the number. (10 minutes)
Phone
In the book's example, 60 missed calls a month cost $8,100 in jobs that never booked.
- 05Missed Calls
- 06Slow Callbacks
- 07After-Hours Leads
- 08Broken Forms
Missed Calls
Sixty missed calls can hide 18 lost jobs when 60 percent are real inquiries and half would close.
Leak family Jobs: fill the schedule
Say 60 calls rang out last month at the four-truck pool company from Chapter 2, and nobody in the office could have told you so. A caller who hangs up creates no customer record, so the office remembers the 80 jobs it booked and forgets the 60 people it never spoke to. The carrier log remembers all of them: the gaps at lunch, the second caller while the first line was busy, and every call after the last office worker went home.
Count every unanswered call
Voicemail counts run low because they leave out everyone who hung up before the beep. Export the last 30 days from your phone system or carrier with date, time, caller number, direction, duration and answered status. Keep every call marked missed, unanswered, abandoned or sent to voicemail.
Strip outbound calls, internal calls and repeat calls from the same number within a few minutes. Keep zero-duration inbound calls and voicemail calls as their own total. Then sample 20 of them: listen to the messages and check the other numbers against your customer list. A call counts as a real inquiry when someone wanted to buy work, including an existing customer asking for another job.
If fewer than 20 callers left messages, sample every message plus 20 unanswered numbers, and write the sample size beside the percentage. Twelve real inquiries in 20 calls is 60 percent. Twelve in 40 is 30 percent, and that halves the dollar figure.
No business phone log? Go through one full week on the cell phone the business number rings, weekends included, and mark each unanswered inbound number. Label that week an estimate until you have call tracking.
Price only the jobs you could recover
Say the pool company’s log shows 60 missed and voicemail calls last month. The sample says 60 percent were real inquiries, answered calls close at 50 percent, and the average job is $450.
Sixty missed calls times 60 percent leaves 36 real inquiries. At a 50 percent close rate, those are 18 jobs. The other 24 calls were vendors, wrong numbers, repeat callers and service questions, and they stay out of the dollar figure.
Eighteen jobs at $450 is $8,100 of revenue a month and $97,200 a year. The figure counts revenue before job costs, and it assumes missed callers would book at the same rate as the people you answered.
Swap in your own records. A 30 percent real-inquiry share and a 30 percent close rate turn the same 60 calls into 5.4 jobs and $2,430 a month. When Chapter 6’s faster callbacks win some of these same callers back, count those jobs once.
Find the hours with no coverage
Add weekday and hour columns to the call export and build a pivot table: hours down the side, weekdays across the top, unanswered calls in the cells. Put total inbound calls beside each unanswered count so a quiet hour does not look like a coverage problem.
Say 40 unanswered calls split into 14 between 11 a.m. and 1 p.m., 16 after 5 p.m. and 10 across the rest of the week. Lunch and evening hold 30 of the 40, or 75 percent, and a staggered schedule fixes them. Misses spread across busy mornings tell you a different thing: too few people answer at peak.
Then test it from a phone outside the company. Call while the office line is busy, call again at lunch, and write down how many rings each call takes and where it lands. Have two people call at the same moment to find the line that drops the second caller.
Chapter 7 prices the evening and weekend calls with their own booking rates, so put those hours on this coverage schedule and leave their dollars to that chapter.
Build a ring order with named coverage
A ring order sends each unanswered call to another person before voicemail. Write names and hours on it, because a list of devices with no owner leaves the same gap on a pricier phone system.
- Ring the person scheduled to answer for the first 15 seconds.
- Ring a named backup who is not on a job at that hour for the next 15 seconds.
- After 30 seconds, send the call to a trained receptionist or answering service that follows your intake script and books the job types you approve.
- Send what is left to voicemail, with the missed-call text from Chapter 32 as a second chance.
Keep field techs off the ring order while they drive, work on a ladder or stand in front of a customer, and give them backup hours when they can answer safely.
Everyone who answers takes the same five fields: name, callback number, service address, problem and requested timing. Add one disqualifier for your trade, such as work you do not sell or an address outside your service area. Re-test after every schedule or phone-system change.
Recover the caller who hangs up
Use the missed-call text from Chapter 32 as the caller’s second way in. Add the service address to its question so the office can pick the job back up, and route replies to an inbox one named person checks.
Count recovered jobs
Keep one row a week: inbound calls, live answers, overflow answers, missed calls and jobs booked from recovered calls. Live-answer rate is live answers divided by inbound calls. Coverage rate adds overflow answers to the top of that fraction.
Say last week had 100 inbound calls, 72 live answers and 16 overflow answers. Live-answer rate is 72 percent, coverage is 88 percent, and 12 callers still reached no one. If those 12 produced four text conversations and one booked job, write down one recovered job.
Give your Google profile, website and ads their own tracking numbers when you want calls by source, and keep every number and its porting rights in the company’s name. Match tracked calls to booked jobs each week, so a tracking number pointed at a dead line shows up as zero bookings.
What owners say back
“Half those calls are spam.” Then the sample shows it. If 12 of 20 sampled calls are vendors and robocalls, your real-inquiry share is 40 percent, and the pool company’s 60 missed calls still hold 12 jobs and $5,400 a month.
“Anyone who wants the work leaves a voicemail.” The export answers this in five minutes. Count the zero-duration and short inbound calls with no message, check those numbers against your customer list, and any match is a customer who hung up instead.
If you pay someone to fix it
- Demand a 30-day baseline of inbound, answered, overflow and missed calls by hour.
- Require live test calls, including two at once, before anyone calls the setup done.
- Keep the phone numbers, recordings and text account in your name, with porting rights in writing.
- Require a weekly report that ties calls to booked jobs and collected revenue, with recordings you can spot-check.
- Reject a setup that sends every overflow call to voicemail, or bills for texts without showing recovered conversations.
Do this week
- Export 30 days of calls, count the unanswered ones and sample 20 for the real-inquiry share. Allow 45 minutes.
- Build the hour-and-weekday table, then test lunch, busy-line and simultaneous calls. Allow 30 minutes.
- Write a ring order with named people, backup hours and the five intake fields. Allow 30 minutes.
- Set up the missed-call text and run two test calls from cell phones. Allow 20 minutes.
- Enter your four numbers at workbook.
servicelinepro. com/#ring and write down the monthly revenue at risk. Allow 10 minutes.
Slow Callbacks
A 25-point close-rate gap turns 64 late callbacks into 16 missing jobs.
Leak family Jobs: fill the schedule
A 25-point close-rate gap between fast and slow callbacks turns 64 late leads into 16 missing jobs a month in the worksheet example. I see the same failure at client after client: we generate the lead, it goes to voicemail, and nobody calls back for four hours. Two timestamps on each lead tell you whether that is happening at your company: when the form arrived and when a person first tried to reach the customer.
Those two timestamps separate a weak lead source from weak handling. A lead nobody called says nothing about whether the ad worked, and a lead called two hours later closes at a different rate from one called while the customer still remembers filling out the form.
Measure delay from two timestamps
Export at least one full month of website and ad leads from your CRM. Keep the source, form name, creation time, first outbound call, first text a person typed, and whether a job booked. Give the automatic text its own column, because it proves the software worked and says nothing about your people.
Subtract creation time from first human response and sort every lead into five buckets: under five minutes, 5 to 30 minutes, 30 minutes to four hours, later that day, and next day or never. Match booked jobs by CRM record or phone number and work out the close rate for each bucket.
A bucket with 40 leads and 16 booked jobs closes at 40 percent. A bucket with 40 leads and six jobs closes at 15 percent. Wait for about 40 leads per bucket before you trust the gap, since one job swings a 10-lead bucket by 10 points.
Keep leads marked unqualified in the export and report them on their own line, or someone in the office can raise the close rate by deleting hard records. Give never-contacted leads their own bucket too. That bucket measures who owns the lead, and speed has nothing to do with it.
Price a callback target your team can staff
Say you get 80 web and form leads a month. Twenty percent, or 16, get a human response inside five minutes, and 64 wait longer. Fast responses close at 40 percent, slow ones at 15 percent, and the average collected job is $450.
The gap is 40 minus 15, or 25 points. Applied to all 64 late leads, it is 16 more jobs, $7,200 a month and $86,400 a year. That is the ceiling, because no office reaches every lead in five minutes.
Budget against a target your team can staff. Moving from 20 percent fast responses to 70 percent puts 40 more leads a month in the fast bucket, and 40 leads times the 25-point gap is 10 more jobs, or $4,500 a month.
Check it the long way. Today, 16 fast leads at 40 percent and 64 late leads at 15 percent produce 16 jobs. At 70 percent fast, 56 fast leads and 24 late leads produce 26. The difference is the same 10 jobs. If Chapter 5 already counted some of these customers as missed calls, count each customer once.
Read the promise each form makes
One of our roofing clients runs an ad form with about eight steps, and the customer picks an appointment time on the last one. As I described it on a recorded call, “when the team calls them, they answer the phone because they went through like eight steps and picked their time and booked it.”
The customer who picked Tuesday at 3 p.m. made a commitment inside the form and expects a confirmation for that slot. The customer who typed a name and phone number got no next step at all, so that lead needs a response in minutes to set one.
Open each of your forms and write its promise beside it. For a form that books a time, measure whether your team shows up for that time. For a form that promises a quote or a callback, measure minutes to first response. A booking form should never fire a “we’ll call in two minutes” text at a customer who already chose Thursday.
Connect the text, alert and call
Start the sequence within 10 seconds of the lead and end it with one person owning the call.
- Send an automatic text that names the company and repeats the service requested.
- Alert the person on lead duty with the phone number and form details in the alert itself.
- Give that person two minutes to claim the lead, then alert the backup.
- Make the first call within five minutes during staffed hours and log the attempt automatically.
“Hi [First Name], this is [Name] at [Company]. We received your request about [service]. I will call you within five minutes. If another time works better, reply with that time. Reply STOP to opt out.”
Send from a number that takes replies and is registered for business texting with your provider, honor every opt-out, and route replies into the lead record so the caller sees what the customer already wrote.
“Hi, is this [First Name]? This is [Name] with [Company]. You asked about [service] a few minutes ago. Is now a reasonable time to talk about the work?”
If yes: “What is happening at the property, and what is the service address?”
If no: “What time today works better? I will send a text before I call so you know it is us.”
Ask for the address early, because it decides whether you serve the property and which windows you can offer. A request outside your area or trade gets closed with that reason, so it never counts as a lost sale.
Stop after five attempts over three days
One unanswered call tells you nothing about the lead, and endless calls feel like harassment. Run five touches and stop.
- Minute zero: the automatic text.
- Within five minutes: a call, with a voicemail when it fits.
- About an hour later: one text asking for a better time.
- Next business morning: one more call.
- Day three: a final text, then move the lead to the long-term list Chapter 13 works.
“Hi [First Name], this is [Name] at [Company]. I tried to call about [service]. What time works for a short conversation? You can also reply with the service address and a description of the work. Reply STOP to opt out.”
Log every attempt and reply. Stop when the customer books, declines, opts out or names another date, and give a future date its own reminder.
Audit the three longest delays
Every Friday, sort the week’s leads from slowest response to fastest and read the three slowest records with their alert history and call log. File each one under one cause: no alert, no assigned person, assigned person unavailable, bad phone data, or customer asked for a later time.
The first three causes need a workflow repair. Bad phone data sends you to the form check in Chapter 8. A customer-chosen later time comes out of your speed numbers, because the customer set the clock.
Track the weekly median response time and the 90th percentile. If 90 leads got a call within four minutes and 10 waited two hours, the median sits near four minutes and hides all 10. The 90th percentile shows them.
If you pay someone to fix it
- Require lead-creation and first-human-response timestamps in every response-time report.
- Ask for close rates by response bucket, with unqualified and never-contacted leads shown separately.
- Submit one test lead from every form and confirm the text, alert, backup alert and CRM record all arrive.
- Keep the CRM, phone number and texting registration in your accounts, with export rights in writing.
- Reject reports built on automatic-text counts, average response times or lead totals with no booked jobs.
Do this week
- Export a month of leads and work out response time and close rate by bucket. Allow 60 minutes.
- Price the move from your current fast-response share to a staffed target such as 70 percent. Allow 15 minutes.
- Set up the text, alert, two-minute claim rule and backup for one lead source. Allow 30 minutes.
- Test every form and check the timestamps and lead record it creates. Allow 20 minutes.
- Add median response time, 90th-percentile response time and booked jobs to a weekly report. Allow 20 minutes.
After-Hours Leads
A 30-point booking gap on 45 after-hours leads represents 13.5 missing jobs a month.
Leak family Jobs: fill the schedule
A 30-point booking gap on 45 after-hours leads is 13.5 missing jobs a month, and at $450 a job that is $6,075.
After-hours coverage breaks in two places. An emergency caller needs a safe, fast handoff to the person on call. A routine caller needs an appointment and a confirmation before they call the next company on the list. Write one script for each.
Define after hours by who can book
After hours is any time a caller cannot reach someone who can take the next step: nights, weekends and holidays, plus early mornings and any weekday stretch when the office line rolls to voicemail. Chapter 5 prices lunch misses, so leave lunch out of this count.
Go by who is answering, whatever the website says. If the site says you open at 7:30 a.m. and nobody can book until 8:15, calls in that 45-minute window go in the uncovered group.
Count calls, forms and texts separately before you add them up. A call needs a live answer or a callback, and a form can get an automatic reply and a booking link. Lump them together and strong form bookings hide a phone problem.
Measure day and night booking rates
Export 90 days of calls, forms and text inquiries with timestamp, channel, phone number or lead ID, booked status and collected job value. Ninety days covers enough weekends that one odd week cannot set the number.
Add weekday and hour columns and mark each record covered or uncovered by the rule above. Drop repeats from the same person and channel within a few minutes, and keep a customer who called back the next day.
Work out four counts: covered leads, covered bookings, uncovered leads and uncovered bookings. Divide bookings by leads in each group. Match jobs through the CRM or by phone number, and label anything you cannot match instead of forcing it into a group.
Say you had 150 leads last month and 30 percent came in outside staffed hours. That is 45 uncovered leads and 105 covered.
Covered leads booked at 45 percent and uncovered leads at 15 percent. Some of that gap comes from who calls at night, so the full gap is your ceiling and the next section prices a lower case too.
Price the gap at 30 points and at 20
The gap is 45 minus 15, or 30 points. Thirty points of 45 uncovered leads is 13.5 jobs a month.
Price a lower case before you spend on coverage, because the 13.5 jobs assume night callers book like day callers. If after-hours booking climbs only to 35 percent, you win back 20 of the 30 points, which is 9 of the 13.5 jobs, or $4,050 a month. Keep the coverage budget under the contribution on those 9 jobs, $1,620 a month at the book’s 40 percent, and count the other 4.5 jobs as upside.
Chapter 5 prices calls nobody answered and Chapter 6 prices slow responses. Put each lead in one of the three chapters, so no customer gets counted twice.
Split emergency dispatch from routine booking
Write your emergency rules by trade and job condition. A tree lying on a roof needs triage tonight. A family with no heat in a freeze needs the on-call tech. A fence estimate, a repaint quote or a routine pest treatment goes on the calendar without waking anyone.
Put safety ahead of sales. When a caller describes immediate danger, the script tells them to get away from the hazard and call emergency services. Your staff and any answering partner get written limits on what they may diagnose and what they must escalate.
“Thanks for calling [Company]. Please tell me what is happening at the property so I can help with the next step.”
“What is the service address, and what is the best callback number for our team to use tonight?”
“Is anyone in immediate danger? If so, move away from the hazard and contact emergency services before we continue.”
“Is this [your defined emergency conditions], or can the work wait for a regular appointment?”
A defined emergency gets a handoff time your on-call schedule can keep. Routine work gets real appointment windows and a confirmation. Never wake the on-call tech for a routine estimate, and never leave an urgent caller with “we’ll call you in the morning.”
“You are scheduled for [day and time] at [address]. I have your callback number as [number]. You will receive a confirmation with the appointment details. If the problem changes before then, reply to that confirmation so our team has the update.”
If you do no emergency work, say so on the call and offer the earliest regular slot, so the caller can find emergency help elsewhere tonight.
Write the handoff record and on-call terms
Whoever answers at night, a live service, an automated receptionist or your own staff, sends the same handoff record: caller name, number, address, problem, emergency or routine, the appointment or dispatch time promised, and a timestamp. It goes to the office queue and to the on-call person at the moment of the call.
Put the on-call terms in writing: pay for the shift, the response window, and a named backup. Keep the missed-call text and voicemail from Chapter 5 behind all of it, so a failed connection still saves the caller’s details.
Recording and disclosure rules vary by state. If your system records or transcribes calls, have counsel check the disclosure and retention setup where you work.
Run ten tests before customers hear the script
Test the main number and every tracked number, and mark each case pass or fail.
- A routine request books an allowed appointment with the correct address.
- A defined emergency reaches the on-call person within the promised window.
- An unclear emergency reaches a human instead of getting a diagnosis.
- A price request gets only an approved fee or an explanation of how pricing works.
- An address outside the service area produces no appointment.
- A request for a service you do not sell ends with the correct boundary.
- A customer asking for a later callback gets that time recorded.
- Two simultaneous calls both complete intake without losing the second caller.
- The confirmation and the office handoff carry every required field.
- A simulated system failure reaches the fallback path and keeps the caller’s details.
Read the recordings or transcripts, fix each failed case and run it again.
What owners say back
“My night callers are tire-kickers.” The 90-day export shows it in the collected-value column. If night jobs collect $300 against $450 by day, price the 13.5 jobs at $300, and the gap is $4,050 a month instead of $6,075.
“An answering service costs more than it brings in.” Compare its fee with the contribution on the jobs it books. A $450 job leaves $180 at 40 percent, so a $400 a month service pays for itself at three booked jobs.
One home-services owner I work with put an AI answering tool on the line. On a recorded call in September 2026 they told me that on a bad night it takes a message and the team calls back right away, which they rated about equal to an answering service, and on a good night it books the job. They had no count of night jobs it booked. Pull that count from the tool’s log each month and set it against the fee.
If you pay someone to fix it
- Demand separate reports for routine bookings, emergency handoffs, missed calls and failed transfers by hour.
- Require the ten tests above, including simultaneous calls and a failed-connection fallback, before launch.
- Keep the phone numbers, recordings, transcripts, scripts and appointment data in your name, with export rights in writing.
- Put response windows, on-call duties, disclosure language and banned price promises in the service agreement.
- Reject monthly reports that count answered calls without completed bookings and collected revenue.
Do this week
- Export 90 days of inquiries and work out covered and uncovered booking rates. Allow 60 minutes.
- Run the 30-point and 20-point valuations at workbook.
servicelinepro. com/#night. Allow 15 minutes. - Write your emergency conditions, routine booking rules and on-call handoff on one page. Allow 30 minutes.
- Call your main and tracked numbers after closing, including two at once. Allow 20 minutes.
- Run the ten test cases on your coverage and record every pass or failure. Allow 45 minutes.
Broken Forms
A thank-you message can appear while the lead goes nowhere.
Leak family Jobs: fill the schedule
One towing-company audit found a mobile page that took 17.8 seconds to become usable and a lead form that asked only for an email address. A driver stuck on the shoulder could sit through the load, submit the form and still leave the company with no number to call back.
A broken form fails in silence. The visitor sees a thank-you message while a changed email address, a spam filter or a dead CRM connection delivers nothing. Your sales records hold only the leads that arrived, so the lost ones stay invisible until someone tests the whole path.
Test all six delivery events
A form passes only when six things happen: the visitor completes it, the site confirms it, the notification arrives, the CRM creates the right record, the person on lead duty gets an alert, and the promised reply reaches the customer. A green check mark on the page proves the second one.
Start with a list of every way in: service-page forms, quote forms, ad landing pages, chat, pop-ups and click-to-call buttons. Next to each, write the page address, who gets the notification, where it lands in the CRM, what reply the customer is promised, and who owns it.
Use a test name your team will recognize and warn the office first. Tag test records so they stay out of close-rate and cost-per-job numbers, and use a test phone and inbox you control so you can see both ends.
Price exposure by the days since your last test
The worksheet prices the worst case: the form broke the day after your last documented test and stayed broken. A test that passes today proves today, and nothing before it.
Say your last documented test was 60 days ago. The website and its tracked number bring in 1.5 leads a day, you close 40 percent, and the average collected job is $450.
That is 0.6 jobs and $270 of revenue a day. Over 60 days it is 90 leads, 36 jobs and $16,200 at risk if the whole path failed on day one.
If nobody can name a test date, put 180 days in the worksheet, and the same $270 a day reaches $48,600. A documented test today replaces that number with a fact.
Chapter 6 prices leads that arrived and waited. This chapter prices leads that never reached your team or reached it with no way to answer.
Check your inquiry rate against 2.7 percent
Ruler Analytics puts the share of website visitors who contact a local business at 2.7 percent, averaged across industries. That is a conversion rate, counting a form or a call as a conversion. I use 2.5 percent as the conservative case in audits, a hair under that figure, and the numbers below use it.
At 2.5 percent, 1.5 leads a day means about 60 visitors a day, because 1.5 divided by 0.025 is 60. If your analytics show 600 visitors a day and 1.5 inquiries, your rate is 0.25 percent, a tenth of the benchmark. Check traffic quality, page intent, mobile load time, the offer and form completion before you blame the form.
Compare the same pages and channels month to month. A new ad campaign can bring visitors who were never going to call. A sudden drop on one browser, one page or one form points at a technical fault.
Run the 15-minute submission audit
Use a phone on cellular data and a laptop. Submit every form once with realistic details, including an apostrophe in the name and a full service address. Then submit it with the phone number missing and the email mistyped, to test the validation.
Log six results per submission in a sheet with the date and form name:
- The page shows one clear success message and creates no duplicate.
- The notification reaches two monitored places, one of them the shared office queue.
- The CRM record holds name, phone, email when given, service, address, message, page and lead source.
- The lead-duty alert carries enough to respond without opening anything else.
- Any promised automatic reply arrives inside the stated window.
- The phone number on the page rings the intended line and shows under the right tracking source.
After a repair, submit the failed form again and put the new timestamp in the same row. A second delivered test proves the repair worked.
Tap every phone number on a phone and call every tracked number from an outside line. A site can keep collecting forms for months while an old number sends every call to a disconnected line.
Match form length to what the form promises
Collect a callback number whenever the customer expects a call. For urgent work, make phone the required field and email optional. The towing company’s email-only form put a time-critical request into the slowest channel it had.
Length follows the promise. The roofing form in Chapter 6 runs about eight steps and ends with the customer choosing an appointment, and the length earns its keep because the customer leaves with a booked time. A form that only promises “we’ll be in touch” should ask for name, phone, address and the job in one screen. Compare booked and completed appointments by form type before you add or cut a single field.
Set silence alerts from your baseline
A flat rule like “alert after two quiet days” cries wolf on a slow site and fires late on a busy one. Set the window from your average daily leads.
Treat leads as arriving at a steady average rate. The chance of zero leads in a stretch is EXP(-expected leads). At 1.5 leads a day, three days should bring 4.5 leads, and the chance of none is EXP(-4.5), about 1.1 percent. Three silent days at that pace call for a test today.
At 0.2 leads a day, three days should bring 0.6 leads, and the chance of none is EXP(-0.6), about 54.9 percent. The same three-day alert would fire about half the time on a perfectly healthy form.
Seasons, weekdays and campaign changes move the average, so keep separate baselines for ad pages and regular site traffic and reset the threshold when volume shifts. An alert sends you to the submission audit.
A house-cleaning company produced more than 150 ad leads in roughly its first 40 days. That is at least 3.75 leads a day, so four dead days cost 15 leads, and a campaign that busy deserves a test every few days.
If you pay someone to fix it
- Require a current list of every form, chat, notification recipient, CRM destination and tracked number.
- Ask for dated end-to-end tests on mobile and desktop, including the CRM record and the staff alert.
- Require two monitored notification paths and a named owner for repairs and for lead response.
- Set silence alerts from measured channel volume, with a manual test after each alert.
- Reject a screenshot of a thank-you page as proof that delivery works.
Do this week
- List every form, chat and phone number with where it delivers. Allow 30 minutes.
- Run the mobile and desktop submission audit and log each pass or failure. Allow 15 minutes for the first few forms, plus retest time.
- Work out your 60-day and 180-day exposure at workbook.
servicelinepro. com/#form. Allow 10 minutes. - Repair failed routing, add a monitored backup and repeat every failed test. Allow 30 minutes of coordination, not counting developer time.
- Work out the three-day silence probability from your baseline and set a test reminder to match. Allow 15 minutes.
Google Maps
Position one in the map pack draws 17.6 percent of clicks and position three still draws 15.1 percent (First Page Sage).
- 09#1 Map Spot Value
- 10Map Coverage Grid
- 11Review Gap to #1
- 12AI Recommendations
#1 Map Spot Value
National search volume inflated one HVAC map audit from $660 to $1,500 a month into $28,000 to $264,000 a month.
Leak family Jobs: fill the schedule
A small-market HVAC company’s map-revenue audit shrank from $28,000 to $264,000 a month to $660 to $1,500 after the team replaced national search volume with searches inside the company’s market. The first model counted people the company could never serve. Geography changed the estimate by more than the ranking assumptions did.
Start every map valuation with that correction. A ranking pays only when the searcher can buy from you, the call reaches your team and the job fits your service list.
Restrict search volume to buyers you can serve
Build a list of service phrases before pulling volume. Include each distinct service and the market you serve, such as pool cleaning, pool repair and resurfacing. Keep branded searches in a separate sheet because a customer looking for your company name already knows you.
Google Business Profile performance data shows only the searches that already surfaced your profile, so it misses every term where you stayed invisible. Use a keyword research source that lets you set the geography, then save the location, date, exact phrase and reported range beside each number.
Check whether the source reports national volume by default, and write the market boundary in the worksheet so anyone can rerun the number. When phrases overlap, count the demand once. Use the source’s grouped volume where available, or choose one representative phrase and note the excluded variants.
Carry the low and high estimates through every step instead of picking the biggest number. The HVAC audit gave the owner something to act on once it read $660 to $1,500 a month.
Value one search with two assumptions
The worksheet chain has five inputs: monthly searches, share choosing the top map result, share of those who call, close rate on calls and average collected job value.
Say 880 people search for pool cleaning in your market each month. The workbook assumes 25 percent choose the top result. Of those, 30 percent call, and you close 50 percent of the calls. Your average collected job is $450.
Eight hundred eighty searches times 25 percent gives 220 selections. Thirty percent of those produce 66 calls. Half of the calls produce 33 jobs, worth $14,850 a month.
Thirty-three jobs at $450 equal $14,850 a month and $178,200 over 12 months at the same volume and conversion rates.
First Page Sage’s 2026 estimates put position one in the local pack at a 17.6 percent click-through rate, and that is the only selection rate in this chapter with a published source. The workbook’s 25 percent default is the high case. Plan on 17.6 percent until your own tracked calls and sales replace the chain, and carry 25 percent as the ceiling.
At 17.6 percent, the same 880 searches produce 154.9 selections. The 30 percent call rate and 50 percent close rate turn those into 23.2 jobs, or $10,454 a month.
Keep the call rate and close rate as separate inputs. A person who taps a profile can call, ask for directions or open the website, and your call tracking shows whether 30 percent calling fits your market.
Calculate position three before chasing position one
First Page Sage’s 2026 report also estimates that moving from local-pack position one to position three reduces click-through by about 2.5 percentage points. Subtracting that from 17.6 percent gives a 15.1 percent scenario for position three.
The same 880 searches at 15.1 percent produce 132.9 selections. At 30 percent calling and 50 percent closing, that is 19.9 jobs, and at $450 each, position three is worth $8,969 a month.
Third place is worth $8,969 of first place’s $10,454, about 86 percent. Get into the pack across your service area before you spend a dollar fighting for first.
Split services before averaging job values
One average ticket hides the service that carries the money. Run recurring cleaning, repairs and large projects through separate rows with their own close rates and collected job values.
Say the same pool company has 880 monthly cleaning searches, 320 repair searches and 90 resurfacing searches. Use the 25 percent selection scenario and a 30 percent call rate for all three. Cleaning closes at 50 percent with a $450 ticket, repair closes at 50 percent with a $380 ticket, and resurfacing closes at 20 percent with a $6,000 ticket in this example.
The calculations produce 33 cleaning jobs worth $14,850, 12 repair jobs worth $4,560 and 1.35 expected resurfacing jobs worth $8,100. The three rows total $27,510 a month. Keep each row separate in your workbook so it retains its volume source and sales assumptions.
The arithmetic for resurfacing is 90 searches times 25 percent times 30 percent times 20 percent times $6,000. Ninety resurfacing searches are worth $8,100 a month, more than the 320 repair searches at $4,560, and a blended average ticket would bury that.
Chapter 10 uses the total map value as an input for geographic coverage. Carry the low and high cases into that chapter too, so a national-volume error cannot sneak back in through the next worksheet.
Reconcile the model with tracked calls
One of our home-services clients tracked close to 50 calls from its map profile in one month, against about 18 three months earlier. Call tracking counts the calls. The reconciliation below tells you which services and which phrases they came from.
Build a monthly reconciliation with four columns: modeled calls by service, tracked profile calls, answered calls and booked jobs. Keep branded and non-branded demand separate where your records allow it. Match the modeled period and geography to the call report.
If the model predicts 66 calls from cleaning and the entire profile produced 20 tracked calls, check the scope and assumptions before you buy more traffic. The search volume may be broad, the 25 percent selection rate may be wrong, your profile may appear in few locations or callers may choose another company. Chapter 10 tests geographic visibility, and Chapter 11 measures the review gap.
Track collected revenue from map-sourced jobs beside bookings. The worksheet’s last step uses average collected job value, so canceled appointments and unpaid invoices come out of the realized total.
What owners say back
“My Google profile already shows how many people searched.” It shows only the searches that already surfaced your profile, so every term where you stayed invisible reads zero. Pull location-scoped volume from a keyword source for the phrases you want to win, and use the profile report for the phrases you already hold.
“A range from $10,454 to $14,850 is too wide to plan on.” Budget against the low end and treat the high end as the ceiling. For the pool phrase that means committing to $10,454 a month and spending the difference only after your tracked calls show the 25 percent case. Each month of call tracking narrows the range, because it replaces a published rate with your own.
If you pay someone to fix it
- Demand the exact phrases, locations, dates and low-to-high search volumes behind every revenue forecast.
- Require separate branded and service-term reporting, with overlapping keyword variations disclosed.
- Ask for scenario math using your close rates and collected job values by service line.
- Require tracked calls, answered calls and booked jobs beside the model each month.
- Reject national-volume forecasts for a local service area and guarantees of a specific ranking position.
Do this week
- List your service phrases and pull location-scoped search volume with dates and ranges. Allow 45 minutes.
- Run one phrase at 25 percent and 17.6 percent selection using your own call, close and ticket values. Allow 15 minutes.
- Calculate a 15.1 percent position-three scenario for the same phrase. Allow 10 minutes.
- Repeat the model separately for each service and reconcile it with tracked map calls. Allow 45 minutes.
- Save your low and high cases at workbook.
servicelinepro. com/#rent for the grid calculation in Chapter 10. Allow 10 minutes.
Map Coverage Grid
One home-services company ranked first within about 2.5 miles of its office and around tenth in the next neighborhood.
Leak family Jobs: fill the schedule
A home-services company ranked first within about 2.5 miles of its office and around tenth in the next neighborhood. A search from the office showed a strong company. When I put the grid in front of the owner on a call, it showed how fast that visibility fell away across the rest of the service area.
Map rank belongs to the spot where someone searches as much as to the business. Your own phone gives you one point. A grid you can repeat shows you where customers see a different result.
Search from points across the service area
A grid scan runs the same phrase from many coordinates and records where your profile shows at each one. The workbook uses 49 points in a seven-by-seven layout. A denser scan of 169 points at 0.9-mile spacing finds smaller patches and uses the same coverage formula.
Pick the service phrase first, because pool cleaning and pool repair can draw different competitors and different results. Save the phrase, market, spacing, scan date and rank counts with every image.
For a manual nine-point check, pick the center and eight points spread across the area you serve. Have someone at each spot search the phrase on a phone with location services on and screenshot the result. Mark top three, top 10 or top 20. Nine points will show a strong center and weak edges, and they will miss the patches a 169-point scan finds.
Keep the grid and phrase the same between scans. Add points later and the denominator changes, so coverage can fall while every position improves.
Read nested rank counts correctly
A pool-cleaning company with a 5.0 rating from 73 reviews got three 169-point scans. On the city-specific pool-cleaning phrase it reached the top three at 3 points, the top 10 at 93 and the top 20 at 117.
Those groups nest. The 93 top-10 points include the three top-three points, and the 117 top-20 points include both. The shares are 1.8 percent top three, 55.0 percent top 10 and 69.2 percent top 20.
On the plain pool-cleaning phrase the company hit the top three at 0 points, the top 10 at 4 and the top 20 at 59. On city-specific pool repair it was 0, 3 and 105. Competitors on the city cleaning phrase held the top three at 142, 132 and 95 points.
A perfect rating bought this company three points out of 169. Score review count, review pace, profile relevance and distance one at a time, because the star rating tells you none of them.
Check red points before you trust them. Some scan tools mark a point red when the business fell outside the results they captured, which can differ from a verified rank past 20. Open the underlying result where the tool offers it, and read all three rank groups before you act on one red dot.
Price the share outside the top three
The workbook gives each grid point an equal share of monthly map value. Say you show in the top three at 9 of 49 points, and Chapter 9’s three pool services put the map demand at $27,510 a month.
Coverage is 9 divided by 49, or 18.4 percent. You capture $27,510 times 9/49, or $5,053, and the other 40/49 carries $22,457.
Over 12 months the uncovered share comes to $269,486 on Chapter 9’s assumptions, before you check it against collected revenue.
Raise coverage from 9 points to 25 and captured value becomes $27,510 times 25/49, or $14,036. The 16 extra top-three points add $8,983 a month, or $107,794 a year.
Keep this out of your total on top of Chapter 9. The grid splits that same map value into covered and uncovered shares.
Weight points by demand when the map is uneven
Equal weights make a point over a pasture worth as much as a point over a subdivision. Replace them when you have a demand measure you can defend.
Give each point a weight from local housing counts, search volume scoped to that area, or another measure that has nothing to do with where you already rank. Divide each weight by the total so they sum to 100 percent. Weighted uncovered value is monthly map value times the sum of the weights at points outside the top three.
A dense red point carrying 5 percent of local demand is worth $1,375.50 of the $27,510 model. Equal weighting gives it 1/49, or 2.04 percent, about $561. The weights decide which neighborhood you work first.
Keep the equal-weight scan beside the weighted one: the first tracks coverage the same way every month, and the second sets priority. Past jobs can help you find demand, but weighting by past jobs alone undervalues every area where you have never shown up.
Build proof in the nearest red area first
Pick one red area near the pin where you already do profitable work, export those jobs, and build a page from them: the service performed, the neighborhood, job photos, access problems the crew solved, materials, and the result in the customer’s own approved words. Publish one real area at a time. A template copied across dozens of towns makes thin pages and gives the grid nothing new to reflect.
Then ask the customers on that job list for reviews with the process in Chapter 11, so reviews start arriving from the neighborhood you want to win.
This plan builds outward from a real address and a public pin. A profile that hides its address has no pin to build from, and no amount of neighborhood pages or review requests makes up for it.
Distance can explain a strong center and weak edges, and the pattern alone does not prove it. Compare your profile, review pace and job proof with the companies holding the top three at those same points.
Rescan on fixed dates and reconcile calls
Save the baseline and rescan at day 30 and day 90 with the same phrase, points and rank definitions. Use Map Pack movement in 30 to 60 days and top three by 90 days as working targets; no one can guarantee them.
Track three changes between scans: top-three point count, weighted uncovered value, and tracked map calls that became booked jobs. A greener grid with no new answered calls points at call routing in Chapter 5. More calls with no new bookings point at handling and lead quality in Chapters 6 and 17.
A second location is its own decision. It needs a real staffed address and its own eligible profile, and a virtual pin to fake coverage puts the whole profile at risk.
If you pay someone to fix it
- Demand the baseline grid image, phrase, coordinates or spacing, date, and nested top-three, top-10 and top-20 counts.
- Require identical scan settings for every comparison and an explanation of any changed denominator.
- Ask how the vendor weights points with different demand and how it handles red points it could not verify.
- Keep the profile in your name, at a real eligible address, with reports that tie visibility to calls and booked jobs.
- Reject mass-produced location pages, fake addresses and guarantees of top-three coverage by a fixed date.
Do this week
- Run or hand-sample one service phrase and save the phrase, date, points and rank counts. Allow 30 minutes for a nine-point manual check.
- Work out equal-weight coverage and uncovered value at workbook.
servicelinepro. com/#grid. Allow 10 minutes. - Mark the doubtful red points and check them against the underlying search results. Allow 15 minutes.
- Weight points where you have reliable local data, then rank the nearest red areas. Allow 45 minutes.
- Export real jobs in the first target area and put the day-30 and day-90 rescans on the calendar. Allow 20 minutes.
Review Gap to #1
Catching a competitor with 310 reviews from a base of 64 requires 32.5 reviews a month over 12 months when the competitor adds 12.
Leak family Jobs: fill the schedule
A home-services company paid its technicians $25 for every review and handed each of them a tap card, and it still logged about two reviews one week and four or five the next. Most of those came from text and email requests the office sent. I tell owners the same thing every time: “It’s about the number of reviews you’re consistently getting every week. So the velocity.” A company with 300 reviews can compete with one that has 2,000 if it out-paces them week after week, and the pace comes from requests someone sends and counts.
Measure totals, pace and reply delay
Record your total reviews and the number published in the last 90 days. Divide the 90-day count by three for monthly pace. Do the same for all three companies in the map pack for one service phrase, and save the dates because relative dates such as “two weeks ago” move.
Add two fields the total hides: how many customers got a request, and how many days passed before you replied to each new review. Request count shows whether your team did the work. Reply delay shows whether anyone reads the profile after a review lands.
A pool-cleaning company audited for this book had replied to 72 of 73 reviews, but its median reply delay was about 104 days. It had received 19 reviews in the previous year, an average of 1.58 a month. A totals report would call that reply coverage complete. The delay and the pace show replies landing more than three months late and a new review about every 19 days.
Pace is the number you manage. Distance still caps the map, and Chapter 10 covers it.
Calculate the pace that catches the leader
Say you have 64 reviews and the company in the top map position has 310. The gap today is 246 reviews. You collect three a month, while the competitor collects 12.
At the current pace, the competitor adds nine more reviews than you each month. After 12 months, the gap becomes 246 plus nine times 12, or 354. After 24 months it becomes 462, and after 36 months it becomes 570.
Check it with totals. You would have 64 plus 36, or 100 reviews. The competitor would have 310 plus 144, or 454. The difference is 354.
To catch the competitor in a chosen period, divide today’s gap by the number of months and add the competitor’s monthly pace. The formula is required pace = gap / months + their pace.
For six months, you need 246/6 plus 12, or 53 reviews a month. For 12 months, you need 32.5, which rounds up to 33. For 24 months, you need 22.25, which rounds up to 23.
Convert the monthly target with 52 weeks divided by 12 months. The rounded targets are about 12.2 reviews a week for six months, 7.6 for 12 months and 5.3 for 24 months. My working range for a healthy review pace is four to 10 a week, so the six-month target exceeds that range and the other two sit inside it.
At exactly 32.5 reviews a month for 12 months, both companies would finish at 454. Rounding to 33 gives you 460 against their 454. Recalculate each month because the competitor’s pace and total will change.
Check whether your job volume can support the target
Every review target needs enough requests and a measured request-to-review yield behind it. The formula is requests needed = reviews needed / review yield.
Say you choose the 33-review monthly target and your measured yield is 25 percent. You need 33 divided by 0.25, or 132 requests a month. That is about 30.5 requests a week. A company completing 80 jobs a month cannot hit that from new jobs at a 25 percent yield, so it either stretches the deadline or adds past customers.
The company from the start of this chapter gave one office person ownership of reviews and set the first target at requests to 50 percent of calls. At 80 calls that is 40 requests, as long as each call was a completed customer job. Log published reviews in their own column, so 40 requests never show up as 40 reviews.
Build a weekly reconciliation with completed jobs, eligible customers, requests sent, published reviews and replies completed. After four weeks, divide published reviews by requests for your yield. Then choose a deadline that your job volume can support, or add eligible past customers from Chapter 13 to the request list.
Send the same neutral request to every customer
Send the request after the job closes, with the technician’s or owner’s name and a direct link to your review form. Ask every eligible customer, including the ones who seemed lukewarm. Offer customers no reward, dictate no wording and supply no text to paste.
“Hi [First Name], this is [Name] with [Company]. Thank you for having us out for [service] today. Would you share an honest review of the work? [review link]”
“If anything still needs attention, reply here so we can address it. Your feedback helps whether you post a review or not.”
The second message gives an unhappy customer a direct line to a fix and leaves their review alone. Send it to every customer, including the ones who posted.
“Our office will text a review link after I close the job. Please share the visit in your own words. If anything about the work needs attention, tell me now or reply to the text so we can take care of it.”
Take the review link from your profile and test it on a phone that is signed out of your business account. It should open the public review form with every star rating available.
Log the job ID, request time and delivery status for each request, so the weekly owner can tell a failed send from a customer who got the link and passed.
Reconcile requests and reply to every review
Give one office person a fixed weekly block for the reconciliation. Start with completed jobs that have no recorded request, then check failed deliveries, new reviews and unanswered reviews.
Reply to what each review says. Name the service or the concern, and leave out private job details, payment information and the customer’s address. Fifty identical “Thanks for the kind words!” replies tell the next reader that nobody reads the reviews.
“Thank you for telling us about [specific concern]. We are reviewing the visit from [date or job reference]. Our manager will use the contact details already on the job to follow up with you. We will record what we find and what we change as a result.”
Post that reply only when your company will do those steps. The pool company’s 104-day median is what a reply target looks like with no owner and no timestamp. Count the share answered within one business day and clear the oldest open review first.
For the neighborhoods you picked in Chapter 10, build the request list from real completed jobs there. Customers mention the area and the service on their own, and you keep keywords out of the request.
If you pay someone to fix it
- Require separate counts for completed jobs, requests delivered, published reviews, review yield and replies completed.
- Ask for competitor totals and 90-day paces for all three map positions, with the collection dates saved.
- Require neutral requests to every eligible customer, no customer incentives and no scripted review wording.
- Keep the profile, review link, customer list and request history under your ownership.
- Reject review purchases, rating guarantees, review gating and reports that count requests as published reviews.
Do this week
- Record your total, 90-day pace and reply delay, then collect the same totals and paces for three competitors. Allow 30 minutes.
- Calculate six-month, 12-month and 24-month targets at workbook.
servicelinepro. com/#reviews. Allow 15 minutes. - Reconcile four weeks of completed jobs, requests and published reviews to calculate your yield. Allow 45 minutes.
- Test your public review link and install the neutral request in your job-close process. Allow 20 minutes.
- Assign a weekly owner and clear the oldest unanswered reviews with specific, job-based replies. Allow 30 minutes to start.
AI Recommendations
Ten saved questions and a fixed denominator turn "ChatGPT never mentions us" into a count you can repeat next month.
Leak family Jobs: fill the schedule
Ask an AI tool ten buying questions and your company shows up in one answer. That is a 10% mention rate in a ten-question test. It cannot tell you how many homeowners saw those answers, called a company or bought a job, and a vendor who sells you a visibility report as recovered revenue is counting on you to forget that. The dollars enter your scoreboard only after you trace a customer to a completed, paid job.
Run the test the way a stranger would: logged out, with no company name and no earlier conversation. You need a sheet, ten questions and the saved answers.
Write ten questions and keep the denominator
Write ten questions a customer could ask about services you sell, with an explicit service area in each. A request for someone “near me” depends on location data you cannot see or reproduce. Keep the wording identical on every rerun so the counts compare.
Mix services and buying situations. A painting company tests interior repainting, cabinet refinishing, occupied homes and exterior preparation. A tree service tests pruning, removals and stump grinding. Leave out urgent work if you do not want those jobs, because an emergency recommendation is worth little to a company that books projects weeks ahead.
Start every question in a fresh conversation. Turn personalization off where the tool allows it and record whether you were signed in. A private window does not remove every source of location, so log the conditions you can see.
For each answer, record the question, date, tool, businesses named and visible source links, and save the answer text. An answer that names nobody stays in the denominator. If it repeats your name three times, count one mention. Pick your comparison competitor before you tally, then use that same business on every rerun.
A first pass takes 25 minutes in one tool. Ten questions in each of two tools give two ten-question samples, and neither one speaks for twenty homeowners.
- Who does interior house painting in [service area]?
- Recommend a cabinet refinishing company in [service area].
- Which painters handle occupied homes in [service area]?
- Who repairs drywall before painting in [service area]?
- What companies paint home exteriors in [service area]?
- Which painters explain their surface preparation in [service area]?
- Who provides written painting estimates in [service area]?
- Which painting companies have customer reviews in [service area]?
- Who paints fences and decks in [service area]?
- Which companies explain cabinet painting prices in [service area]?
Keep follow-ups like “What about my company?” outside the scored sample. They hand the tool the answer you wanted to measure on its own.
Count mentions and log errors
Say you appear in one answer and the comparison business appears in six. Your mention rate is 1 / 10, or 10%. Theirs is 6 / 10, or 60%, six times as often in this sample. Both businesses can appear in the same answer, so the two rates do not add to a market share.
If your count is zero, write “0 of 10” next to the competitor’s count. The workbook shows a count-to-zero comparison in that case. Read it as a count and never as a multiplier. A move from zero mentions to one is an observation worth saving, and it supports no revenue forecast.
Read the facts around every mention. Keep an error log with one row per wrong service, phone number, opening hour or service area. Quote the error exactly and put the visible source URL beside it. With no URL, write “source unknown.” You can blame a directory only after you find the same error on it.
Run an accuracy test on five factual statements from the saved answers, checked against records you control. You pass only when all five agree. If an answer quotes an old price, check whether that price is still public anywhere before you change your page. An old estimate in your private files cannot explain a publicly cited price.
The two records give you two work lists. Mention counts show where you were absent, and the error log shows what you can correct. A wrong phone number is worth fixing even when your count never moves.
Fix the pages your answers cite
Start with the pages cited in your own sample. BrightLocal’s August 2026 study of 1.9 million local AI citations found Yelp in 80 percent of ChatGPT’s local answers. A UK test of 36 questions in July 2026 found ChatGPT cited Yelp zero times and leaned on Reddit and business websites. Your trade and town decide which pattern holds for you, so let your saved answers rank Yelp, the directories and your own site.
Open each cited page and check that it describes the service in the question. A profile can spell your name correctly and leave out the service that qualifies you. Log one repair per row with the page owner and the date submitted, and keep a before copy and an after copy so you can tell finished work from a request still waiting on a directory.
On your own pages, state the service, the area served, what the customer receives and what changes the price. A pressure-washing company separates a house wash from roof treatment if it sells both. A remodeler says whether it takes small repairs or only full room projects, so the customer can check fit before calling.
Use one public business identity everywhere. If your legal billing name differs from your trading name, say so where customers need it. A spelling mismatch does not prove an AI tool confused two businesses, so treat it as a detail to check.
If a developer adds structured business data, have them show you that its phone, hours and services match the visible page. Use your real address and list only services you perform.
Before you edit anything, run the baseline twice, a week apart. If the two counts differ by two, a later gain of two means nothing. After the repairs are public, rerun the same questions with the same wording and conditions, and log the change without crediting any single edit.
Trace AI mentions to paid jobs
Ask new customers how they first found you and what they used to check you afterward. Someone may hear your name from a neighbor and then ask an AI tool about you. Record the referral as discovery and the AI tool as the later check, because counting both as acquired customers inflates the channel total.
“Where did you first hear our name? Did you use anything else to check us before you called?”
If the customer names an AI tool, record its name and the customer’s description of the answer, and mark uncertain answers as unknown.
Say six customers over 90 days name AI as their first source, each completes one $450 job, and all six pay. That is $2,700 collected, or $900 a month across the three months. Neither number covers customers who never told you their source.
Keep scheduled, completed and paid jobs in separate columns. Compare the cost of the repairs with the contribution from completed work after job costs. Chapter 17 covers acquisition cost, so a high mention count alone earns no bigger budget.
If you pay someone to fix it
- Require the saved questions, dated answers and visible source links before work starts.
- Ask for the error log and a list of repaired pages with before and after evidence.
- Keep mention counts separate from customer-reported leads and paid invoices.
- Require access to the pages and accounts you own, plus a usable export when the work ends.
- Reject guaranteed placement and any revenue claim calculated from mention share.
Do this week
- Write ten questions for services you want to sell and choose one comparison business (15 minutes).
- Run each question in a fresh conversation in one tool and save the answers with test conditions (25 minutes).
- Verify five factual statements and assign repairs for any errors you find (20 minutes).
- Add the discovery and later-check question to intake, then review completed jobs after 90 days (10 minutes).
- Schedule the same ten-question test for next month and enter your counts at workbook.
servicelinepro. com/#ai (10 minutes).
Pipeline
In the pool example, unchased quotes cost $1,350 a month and past customers who never hear from you cost another $4,500.
- 13Past Customers
- 14Referrals
- 15Door Hangers
- 16Unchased Estimates
- 17Cost per Closed Job
Past Customers
Texting 1,200 past pool customers can book 60 jobs into a schedule with room for 40, so size the send to open slots.
Leak family Jobs: fill the schedule
A four-truck pool company with 1,200 past customers can text them all and, at the workbook’s default 5% booking rate (a default, not a measured result) and a $450 job, forecast 60 bookings and $27,000. The schedule has 40 open slots a month (120 possible jobs minus the 80 it ran, from Chapter 2). The open slots cap the campaign before the list does. Size each send to the slots you can serve. After wave one, divide bookings by names texted and use that measured rate in place of the 5% for every later wave.
Size each wave to your open slots
Open slots are B minus C from Chapter 2. Give the campaign half of them and keep the other half for the phone, which is still bringing in new customers. At 40 open slots that is 20.
Wave size = slots given to the campaign / booking rate. Twenty slots at 5% is a wave of 400 names. Size the wave to the rate you hope for, because a wave sized to a pessimistic 2% (1,000 names) books 50 jobs if the 5% shows up, and you cannot serve them. If the rate comes in low, send the next wave early.
Build the send list in 20 minutes
Export every customer with the date and type of their last completed job, and keep the untouched export. Work in a copy with one row per household. Normalize phone formats so parentheses and spaces stop hiding duplicates, and check shared numbers by hand, since a property manager may use one number for ten accounts.
Delete a row from the send (and keep it in your records) when the customer is booked, on an active recurring route, outside your area, owing a balance, carrying an unresolved complaint, a duplicate or without a cell number they gave you for texts. Chapter 32 carries the consent rules for the first 50 texts, and the same rules apply to every wave.
Then run the readiness test on ten random rows. Each row needs a last job date, a texting number, a reason to contact them now and no open booking. Ten of ten passes. If any row fails, find the category it failed and fix that category across the whole list before sending.
Send three touches on a fixed schedule
Send 100 names a day over four days, so the one person answering can reply to everything the same day. Write the message around one service and one real opening.
“Hi [first name], this is [your name] at [company]. We serviced your pool in [month, year]. We have openings on [date one] and [date two]. Want the current price? Reply STOP and I’ll take you off the list.”
Check today’s price before you quote an old one, since fuel, chemicals and labor have moved since the last visit. Day 5 goes to names that have not replied, booked or opted out. Say one new thing and keep it to two sentences.
“Hi [first name], [your name] at [company] again. One opening moved up to [date]. If you want it, reply YES and I’ll hold it for you today. Reply STOP and I’ll take you off the list.”
Day 12 is the last touch for anyone who answered “later”: text them on the date they gave you. After that, stop. A name that has had two texts and no answer goes back to your regular customer list.
“The service includes [scope] at [current price]. We can start [date one] or [date two]. Which works for you?”
For a later request: “What month should I check back?” Record the answer and end the sequence.
If a reply mentions a problem with the earlier job, hand it to whoever fixes complaints and count that visit apart from campaign revenue. Give the person answering authority to pause the next wave when bookings reach the slots you set aside. Every booked customer comes out of every later touch the moment they book.
Work the booking math
With 1,200 eligible names, 5% books 60 jobs, and 60 jobs at $450 is $27,000. At 2% the same list books 24 jobs and $10,800.
Each campaign goes out as three 400-name waves of 20 bookings, one wave a month, so it uses all 1,200 names and no month takes more than the 20 slots the campaign holds. Two campaigns a year at the first rate bring 2 x 60 x $450 = $54,000, or $4,500 a month averaged. The average spreads two sends across twelve months, and a month with no send brings nothing. Each send needs its own eligible count, because people who returned in the first one may not need service again.
Price the labor too. Say each text takes 30 seconds to paste and send by hand. A 400-name wave is 200 minutes, or 3.3 hours. At $25 an hour that is $83, which is about $4 for each of the 20 bookings it should bring. Replies add office time, so log it.
Track booked value, completed revenue and money collected as three columns. Say 100 names get the message, five book and four complete a $450 job. Booking rate is 5 / 100, or 5%. Completion rate from the send is 4 / 100, or 4%, and completed revenue is 4 x $450 = $1,800. The fifth booking waits in its column until it completes or cancels.
Measure the jobs the text caused
Past customers rebook with no text at all. Exclude anyone booked before the send, then hold back a random 100 names for 30 days. Say 5 of 100 texted names booked and 3 of the 100 held-out names booked anyway. The text caused 2 extra jobs per 100 names, which is $900 per 100 names at $450, a lift of 2 percentage points. Keep your selection method so you can repeat the comparison. Chapter 16 owns estimate-only prospects, so leave those out of this list.
If you pay someone to fix it
- Require the original count, each exclusion and the final eligible count before approving a send.
- Ask who verifies texting permission, who owns replies and who stops messages after a booking or opt-out.
- Require a small first wave sized to your open slots, with a review date.
- Demand completed invoice IDs beside claimed revenue, with existing bookings excluded.
- Keep the customer records, message history and suppression list when the work ends.
Do this week
- Export customers and completed jobs, keep an untouched copy, and subtract B minus C to get your open slots (20 minutes).
- Build one list, remove the exclusions and run the ten-row readiness test (30 minutes).
- Divide half your open slots by your booking rate and write down the wave size (5 minutes).
- Write the first text, name one person to answer replies and set the day 1, day 5 and day 12 dates (20 minutes).
- Send the first 100, then enter your booking and completion counts at workbook.
servicelinepro. com/#grave (15 minutes).
Referrals
A $50 reward to each side of a referral takes more than half of the profit the referred job earns.
Leak family Jobs: fill the schedule
Six referred jobs at $450 bring in $2,700. Pay $50 to the new customer and $50 to the referrer and you hand back $600 of it, which is 22% of the revenue. At a 40% margin each job earns $180, so six jobs earn $1,080, and the $600 reward takes 56% of that profit. Price the reward before you print a single card, because the reward decides whether this program makes money.
The workbook starts from 60 customers served, 20% of them sending a referral and 50% of those referrals booking. Those are example inputs. Replace them with your own asks and bookings after 30 days.
Count referrals by distinct customer
Count distinct customers served, asks made, referred prospects, booked jobs and completed paid jobs. A lawn company that visits one household four times in a month has one customer to ask.
The workbook assumes one prospect from each referring customer. Then 60 x 20% is 12 prospects, 12 x 50% is six booked jobs, and six jobs at $450 is $2,700 a month, or $32,400 over twelve identical months. A customer who sends three prospects changes the middle count, so log prospects directly once you have them.
Keep the count of asks beside the funnel. Say you served 60 customers and asked 30. Twelve referrals are 40% of the people asked and 20% of the people served. Use the asks to judge whether the crew asked enough people, and use customers served to forecast the program.
At a 30% referral rate with everything else unchanged, the model gives 18 prospects, nine booked jobs and 9 x $450 x 12 = $48,600 a year. Treat that as a number to test with a new script.
Give each referred prospect an ID and attach it to the new job. When one customer names two referrers, settle the reward before the invoice goes out and write down the rule, so the office applies the same terms to the next caller.
Price the reward against the job’s profit
A $50 reward on each side is $100 per qualifying job. Suppose the $450 job keeps 40% after direct costs. It contributes $180 before rewards and $80 after both $50 rewards, before overhead. A $25 bonus to the employee who got the referral drops it to $55.
Price any other reward at what it costs you to deliver. A free add-on uses technician time and material. A gift card costs cash even if the referrer never books again. A priority appointment bumps a paying job in a full week. Pick a reward you can name and fulfill, and add up the cost.
State the qualifying event in plain words. The new customer gets the discount on the first completed eligible job, and the referrer gets a credit after that invoice is paid. Put the minimum job size, expiry and exclusions on the card, plus a version date so the office knows which promise the customer holds.
Run the exact card text through two cases before you print: a cancellation and an unpaid invoice. If the text and the office disagree on either one, you have written two promises. A card that says “when they book” and an office that says “after they pay” will produce a dispute with a happy customer.
Ask at job close
Ask after the customer accepts the finished work and any complaint is closed. A checked job-close box tells you nothing about satisfaction. Let the technician skip the ask and write down why. A customer waiting on a correction stays in the service process.
Tell the customer they can share your card. Never ask for a neighbor’s phone number. Receiving it would give you no permission to text that neighbor.
“I’m glad you’re happy with the [job]. If someone asks who did it, this card has our details and referral terms. On a qualifying completed job they get $50 off, and you get a $50 credit after their invoice is paid. They can give us your name when they book.”
Change the benefit to fit the trade before you change the words. A house cleaner can offer a free add-on. A garage-door company can offer a fixed maintenance credit against a list of eligible services.
Put the company contact details, eligible service, reward terms and a “Referred by” line on the card. A short link can carry the full terms, but the card still states the limits that matter. Keep review requests out of this ask, since Chapter 11 owns reviews and this reward buys a referral and nothing else. Chapter 13 and Chapter 32 carry the texting rules if you follow up by message.
Track every credit from promise to paid invoice
Build a ledger with these columns: referrer ID, new-customer ID, referral date, card version, job ID, qualifying event, reward due, date issued and invoice redeemed. Log each prospect’s stated source the first time they contact you. A later paid search click is a check on the referral and does not make a second new customer.
“Who first gave you our name? If they mentioned a referral offer, what did they tell you? I’ll check the terms and record their credit against the qualifying job.”
Have one office person review completed qualifying jobs each week. That person confirms payment, issues the referrer’s credit and sends the notice. A cancelled job is marked ineligible under the written terms, and the entry stays so a later question has an answer.
Run a 15-minute control test before you ask more customers. Pick five referred jobs and trace each from the original referral to the invoice and both benefits. Pass only when all five show a named referrer (or an explicit unknown), the terms that applied and a reconciled reward status. A missing source is a data problem, and a promised reward that vanished is a customer-service problem.
Read the funnel every week. Many asks and few prospects mean the request, the service fit or the offer needs work. Many prospects and few bookings mean the loss is in lead handling, which Chapters 5 and 6 cover. A richer reward added before you inspect those records raises your cost and leaves the loss in place.
After the first month, compare contribution from completed jobs after rewards with the office and printing costs. A card handed out is not a lead. Chapter 17 uses actual prospects and completed jobs to compare this program with paid sources.
If you pay someone to fix it
- Require written reward terms and a margin calculation before cards or messages go out.
- Demand distinct-customer counts and job IDs behind every referral total.
- Ask them to run a cancellation, a duplicate claim and an unpaid invoice through the reward process in front of you.
- Require an export of outstanding credits and a named person responsible for fulfillment.
- Reject reports that count every completed job as a referral request or every request as a lead.
Do this week
- Price both sides of one reward against the contribution from a $450 job (or your average job) and write the qualifying event (20 minutes).
- Build the referral and credit ledger with the card version and invoice fields (20 minutes).
- Practice the job-close request with each technician and record when to skip it (15 minutes).
- Trace five existing referrals, or five test records, through cancellation, payment and reward issuance (15 minutes).
- Enter your asks, prospects and bookings at workbook.
servicelinepro. com/#neighbor after the first week (15 minutes).
Door Hangers
Eight hundred hangers cost $320 once the crew's walking time counts, and two completed jobs pay it back.
Leak family Jobs: fill the schedule
Eight hundred door hangers at 15 cents each cost $120 to print. Hanging them takes five paid minutes after each of 80 jobs, which is 400 minutes of crew time, or 6.7 hours. At $30 an hour that is another $200, so the test costs $320 before design, discounts or the work on the jobs it brings. At a $180 contribution per completed job, you need 1.78 jobs to cover it, which means two jobs, which means four inquiries at a 50% close rate, which means a response rate of 0.5% on 800 hangers.
The advantage is proximity. The crew finished work on this street, the neighbors saw the truck, and a hanger asks for a service you sell. The houses nearby are unqualified prospects until someone calls.
Find the break-even response rate
The workbook’s example starts with 80 jobs a month and ten hangers per job, which makes 800 placements. At an assumed 1% response, eight people inquire. At a 50% close rate, four book. Four $450 jobs bring $1,800, or $21,600 over twelve identical months. Treat the rates as placeholders. A booking still has to become completed work.
Count placements, not households. If crews work the same street every week, 800 hangers reach fewer than 800 homes. Log the date and route segment so a repeat street does not look like fresh coverage, and skip repeat placements during a test.
Suppose the 40% contribution margin leaves $180 on each $450 job. Four completed jobs leave $720, and $720 minus $320 leaves $400 before overhead. At half the response (0.5%) you get four inquiries and two jobs. Those two jobs leave $360, only $40 above the test cost, and a few extra minutes of walking or one discount erases the $40.
The break-even rule is the cost divided by the contribution per job, rounded up. Here $320 / $180 = 1.78, so two jobs. Add every cost you left out (design, a discount, tracking) before you use that number to approve a bigger run.
Time three routes before you print more
Choose a compact area around jobs that match the work you want, and use your nearby work as a truthful introduction. A fence job on one lot does not mean every neighbor needs a fence, so qualify each inquiry on its own.
Give every job a route segment. A ten-door pattern is two homes on each side of the job (4), three across the street (3), the next home beyond each side (2) and one more nearby home (1), and 4 + 3 + 2 + 1 = 10. Check local distribution rules first, skip properties with no-solicitation signs, keep hangers out of mailboxes and record the number you placed. A route with six permitted doors records six, and no technician should enter a prohibited property to reach ten.
Time the first three routes with the crew, from leaving the truck to walking back to it. If two paid people hang together, count both people’s time.
Set the labor ceiling before the next batch. At five minutes a job, labor is $200 a month. At ten minutes a job, 800 minutes is 13.3 hours and $400, the test costs $520, and $520 / $180 = 2.89, so you need three jobs. Three jobs need six inquiries at a 50% close rate, a 0.75% response on 800 hangers, up from 0.5%. A walking time that doubles raises the response you need by half.
A 20-minute field check catches a bad assumption early. Compare your three timed routes with the labor allowance, compare placements to your tally and call the campaign number yourself. Pass only when the time fits, the count reconciles and the office takes the test call.
Write the hanger and test the number
Use the completed work as context, and leave out the customer’s identity, exact address and job details. You can say your crew has worked nearby. Do not imply a homeowner endorses you without their permission, and do not claim every roof nearby has the same damage.
[Company and contact details]
Our crew has been washing homes nearby. We provide [specific services] and explain the surface preparation and exclusions before you approve the work.
[Current offer, price basis and genuine expiry, if any]
[Campaign phone number or reply code]
[Relevant business and license details]
Print only offers the office can honor. A “free inspection” costs travel and assessment time, and a discount lowers the contribution on the resulting job, so put both in the break-even.
Give the hanger a dedicated phone number or a distinct code, and test calls, messages and voicemail before you print the batch. A dedicated number tells you how the inquiry arrived and cannot tell you whether the caller is new, since existing customers dial it too. With a code, add a source question to intake and record unknown sources as unknown. Use separate identifiers for hangers and yard signs if you want to compare them. A shared number measures the two together.
“Thank you for your message about the hanger. What work do you need, and where is the property? Have we worked for you before?”
After checking fit, record the inquiry ID, source identifier and next appointment. Chapter 16 covers follow-up after an estimate goes out.
Log each batch and change one thing at a time
Keep two linked lists. The distribution list holds batch, copy version, date, route segment, actual placements and labor minutes. The inquiry list holds date received, source evidence, customer ID, service requested, estimate, job status and invoice. Join them on the batch ID.
Deduplicate repeat contacts. A call followed by a text about the same fence is one opportunity with two contacts. Log wrong-service and out-of-area inquiries too, because they show whether the copy or the area needs to change, and dropping them flatters the response rate.
Compare batches over the same window. A batch hung yesterday has had less time than one hung a month ago, so mark late inquiries separately for a 30-day window and update completed jobs as they finish.
Change one variable per batch: the same message in two comparable areas, or two offers in the same kind of area. With eight inquiries in the workbook case, a single lost inquiry is an eighth of the sample, so read the records before you declare a winning design. Chapter 17 compares full acquisition cost. Chapter 14 owns referrals, so a neighbor who names the customer who sent them goes in the referral record, and the job counts once.
If you pay someone to fix it
- Require actual placement counts and distribution labor alongside the printer’s invoice.
- Ask for a live test of every printed number or code before approving production.
- Require separate reporting for inquiries, qualified estimates and completed jobs.
- Demand the copy version and distribution dates behind each batch result.
- Reject profit claims that subtract printing and leave out job delivery costs and discounts.
Do this week
- Choose one service and a compact permitted area around upcoming jobs (15 minutes).
- Write the offer, check its margin and test the phone number or code (25 minutes).
- Time three routes and replace assumed minutes with observed labor time (20 minutes of review plus the routes).
- Start the placement log and the inquiry log before the next batch goes out (15 minutes).
- Set a response window and a review date, then enter your costs at workbook.
servicelinepro. com/#doors for the break-even (15 minutes).
Unchased Estimates
A 25-point gain in close rate on twelve neglected estimates is three extra jobs, and the follow-up takes five touches.
Leak family Jobs: fill the schedule
Say the pool company from Chapter 2 sends 20 repair quotes a month and 12 of them get no real follow-up. If follow-up lifts the close rate on those 12 from 15% to 40%, that is 12 x 25% = 3 extra jobs. At $450 each, that is $1,350 a month in booked revenue. Every input there is an assumption, and the number tells you what the follow-up is worth chasing for. An open estimate is an offer you made, and the customer owes you none of it until they approve the work.
You already paid for the visit, the measuring and the pricing. The cheapest next step is to learn whether the proposal arrived, what is blocking the decision and when the customer wants to talk again.
Audit open estimates in 20 minutes
Export estimates sent in the last 90 days with estimate ID, customer ID, date sent, amount, service type and status. Drop drafts that never reached a customer. Group revisions under one opportunity, so three versions of one roof quote count as one lead.
Add the delivery evidence, the last real conversation, the next action, the person who owns it and the decision date. A scheduled automated message proves a task exists. The sent record proves an attempt, and the customer’s reply proves contact, so log those separately.
Sort every estimate into one of five statuses: active decision, customer-requested later date, won, declined and unable to reach. “Unable to reach” records that you lack an answer. A declined customer leaves the sequence, and a customer who asked for a later date gets the task they asked for.
Test ten sent estimates. Check that the customer could open the proposal, that someone owns the next action and that the status matches the latest reply. Pass only when all ten have those fields or an assigned exception. If the office marked an estimate won and no acceptance exists, fix that before you report a close rate.
Check old proposals for validity before you send another offer. Review material prices, scope, site conditions and the start window. A remodeling estimate from three months ago may need a revision. Estimate-only prospects stay in this chapter, and Chapter 13 covers customers who already completed work.
Price the gain from follow-up
The workbook starts with 20 estimates a month and 60% getting too little follow-up, which gives 12 neglected opportunities. Its close rates are 40% with follow-up and 15% without, a gap of 25 points. Twelve x 25% is three extra closes. On the pool company’s $450 job that is $1,350 a month and $16,200 across twelve months. The workbook default prices the same three closes on a $6,500 roof at $19,500 a month, so the leak grows with the ticket.
At a gain of ten points, 12 x 10% is 1.2 extra jobs a month, which is $540 a month or $6,480 a year. A real month brings whole jobs, so read 1.2 as an average over repeated months.
Beware the easy comparison. Customers who reply readily got more follow-up and were already likelier to buy, and estimators chase the biggest jobs first. A higher close rate on followed-up estimates does not show the messages caused the whole gap.
Test it the clean way. Apply the process to every newly eligible estimate, and compare against an earlier group of the same service type that had the same number of days to close. Log changes in price, lead source and workload, and call the result an observed change.
Price the effort too. Count office minutes, call costs and any incentive, and subtract direct job costs from completed revenue before you compare contribution with the follow-up cost. Say a follow-up costs 15 minutes of office time per estimate at $25 an hour, which is about $6 an estimate, or $75 across 12 estimates. Three extra $450 jobs at the book’s 40% contribution leave $540, so the effort costs about 14% of the gain.
Send five contacts and stop on a rule
Use days 1, 3, 7, 14 and 30, with day 1 as the day the estimate goes out. At the visit, ask when the customer plans to decide and how they like to be contacted. Their date beats the default sequence.
Confirm receipt on day 1 and use the day 3 call to find the decision. On day 7, answer the open question or offer a real start date. On day 14, send evidence on scope. On day 30, ask whether to close the file or set a later date. Every contact gets an owner and an outcome field.
Hi [First name], [Sender] at [Company]. I sent the estimate for [project] to [agreed destination]. Could you open it and see the scope and total? If anything is missing, I can resend it in a format you can use.
A delivery problem belongs to the office before it becomes a sales objection. If the link fails, send a usable copy and confirm access. Chapter 8 owns the form and delivery checks.
“I’m checking the estimate for your [project]. What are you still comparing or deciding? If another person needs to review it, what would help them understand the scope? When would you like the next conversation?”
Write the answer in the customer’s words. “Needs to decide” gives the next caller nothing. “Comparing whether removal and disposal are included” names a question you can answer without touching the price.
Hi [First name], I checked [the question raised]. Our estimate includes [specific scope], and [specific exclusion] is separate. Our next available start is [real date]. Would you like to review that item before deciding?
On day 14, send one piece of evidence that answers the open question: a permission-cleared photo of comparable work, the relevant scope page or the written warranty. Skip the bundle of generic testimonials. If price is still the issue, compare inclusions and exclusions line by line before you offer a smaller scope.
“Should I close the estimate for [project], keep it active for a decision now, or set a later date you choose? If you chose another company, would you tell me what decided it?”
Stop all messages after acceptance, rejection, an opt-out or a request for a later date. If the last attempt gets no answer, mark the estimate unable to reach and end the sequence. A silent prospect gives you no grounds to log a confirmed loss on price.
Answer the scope question before the discount
Build an objection record from the last ten real customer replies. Save the exact concern, who can answer it and the document that answers it. Check whether the customer compares different scopes or waits on another decision-maker before you pick a response, because those need different fixes from a discount.
For a fence, compare removal, posts, gates, finish and disposal. For a roof, compare the written assembly, site protection and cleanup. Use only terms your estimate supports. Claiming a competitor left an item out, with no quote in hand, starts an argument you cannot win.
When two people share the decision, send a one-page scope summary they can both read: the work, the exclusions, the total, payment terms and the available window. Ask permission before you add a second person to the thread. The estimator answers technical scope questions, and the office handles receipts, reminders and status.
Run the process on one dummy opportunity before you automate it. Mark it accepted after day 3 and check that days 7, 14 and 30 stop. Repeat with declined and with a later date. Check that a changed estimate version reaches the person making the calls, since a reminder that quotes an old total can lose the job it was meant to save.
Review overdue actions each morning and outcomes each week. Count unique estimates, delivered proposals, real replies, accepted jobs and completed invoices. Many touches and few replies point to delivery or relevance. Completed jobs and contribution settle whether the process earned more than it cost.
If you pay someone to fix it
- Require a written schedule with customer-preference overrides and explicit stop conditions.
- Ask them to show acceptance, rejection and later-date branches working before release.
- Demand unique opportunity IDs and version history behind every close-rate report.
- Require separate counts for messages sent, customer replies, accepted jobs and completed revenue.
- Reject claims that credit automation for the entire historical close-rate gap.
Do this week
- Export sent estimates and merge revisions into unique opportunities (20 minutes).
- Audit ten records for delivery, status and next-action owner (20 minutes).
- Write the five contacts around actual scope questions and customer decision dates (30 minutes).
- Test the stop rules with a dummy record, then assign the first live follow-ups (20 minutes).
- Schedule a weekly outcome review on equal-age estimate groups and enter your counts at workbook.
servicelinepro. com/#estimates (15 minutes).
Cost per Closed Job
A $450 job at a 40% margin can afford about $60 per lead at a 50% close rate and $12 per lead at a 10% close rate.
Leak family Jobs: fill the schedule
The most you can pay for a lead is the most you can pay for a job multiplied by your close rate. A $450 job at a 40% contribution margin leaves $180. Keep $60 for overhead and cash, and you can spend $120 to win the job. At a 50% close rate that is $120 x 50% = $60 per lead. At a 10% close rate it is $12 per lead. A $40 lead that closes one time in ten costs $400 a job, and a $75 lead that closes 36% of the time costs about $208 a job, so the cheaper lead can cost twice as much per job.
Divide spend by completed jobs
The workbook compares a lead site with Google Maps. Channel A spends $2,000 for 50 leads. At a 10% close rate, five jobs cost $400 each to acquire. Channel B spends $3,000 for 40 leads. At a modeled 36% close rate, 14.4 expected jobs cost $208.33 each, so the $75 contact has the lower cost per job.
The 14.4 is an expectation. With 14 completed jobs, $3,000 / 14 is $214.29, and with 15 it is $200. Use whole jobs when you audit, and keep modeled scenarios apart from the invoice records that show what happened. Build the count in six steps.
- Group leads by arrival month. Assign that month’s spend to the group and follow its prospects to a review date. A remodeler with a long decision cycle needs an older group than a same-week junk-removal company, so pick the window from your own records.
- Add every acquisition cost: media, agency fees, campaign software, tracking, printing and referral rewards. Split shared costs with a rule you can repeat and write the rule beside the total. A zero agency fee does not mean zero acquisition cost.
- Join call and form records by customer. A homeowner who calls twice and fills in a form about the same job is one prospect. Keep the raw contact count too, with a reason code on wrong-service and wrong-area inquiries.
- Tag each prospect’s source with a tracked number or a source-tagged form, and ask the customer too (script below). Choose one acquisition rule so two channels never claim the same new customer.
- Count only new customers. A returning customer who found your number through a paid ad goes in a return-customer column.
- Record acceptance, completion date and payment status in separate fields, count completed jobs for the final comparison and keep bookings as a leading count. A channel with no completed jobs gets “no jobs” beside its spend and ranks last.
One month of pool company leads, divided by completed jobs
The pool company from Chapter 2 books a month of arrivals and reviews them 60 days later.
If all 3 pending jobs complete, the cost falls to $2,400 / 11 = $218 a job, still $98 over the limit. Update the group monthly and keep the pending column visible, since spend that builds a profitable backlog can look weak before delivery and canceled bookings can flatter an early report.
“Where did you first hear our name, and what did you use to find our number today?”
Record the first source and the arrival path separately. Mark an uncertain answer unknown and keep the tracking evidence.
A 25-minute reconciliation test shows whether a report is safe to trust. Select ten claimed acquired jobs and find the original prospect, the arrival date, the source evidence and the completed invoice for each. Pass only when all ten reconcile or carry an explicit unresolved status outside the completed count.
Compare cost per job with what the job leaves
Cost per job means something only beside the money the job leaves. A $450 job at a 40% margin leaves $180 after direct costs, and holding back $60 for overhead and cash leaves $120 to spend on winning it. The lead-site job costs $400 to acquire, which is $280 over that limit ($400 minus $120). The modeled Maps job costs $208.33, which is $88.33 over.
Maps is cheaper per job, and both channels still need a lower cost or a higher job value to fit inside the $120 limit. For a recurring service, Chapter 23 measures repeat value. Use observed retention and collection timing before you spend against future visits.
Use the same formula to challenge a vendor’s quote. Ask which lead-to-completed-job rate the proposed cost needs. A $75 lead against a $120 allowable cost per job needs 75 / 120 = 62.5% of leads to complete. Compare that required rate with your own records before you agree to the budget.
Audit lost leads before you change the budget
When acquisition cost passes your limit, read the lost prospects before you cut or raise spend. Sample recent wrong-area, unreachable, declined and canceled records and check source targeting, response attempts, estimate handling and price objections. Chapters 5 through 8 own phone and form failures, and Chapter 16 owns estimate follow-up.
Split low fit from poor handling. A pressure-washing request sent to a company that only cleans interiors is a targeting problem. A qualified fence prospect who got no reply is a handling failure. One low close rate can hold both, and the fixes belong to different people.
Choose one change and record it. Correct the service area, repair missed-call handling or pause an unprofitable source, and write down the spending cap and the next review date. If you raise the budget, set how many added completed jobs and how much cash the test may use before you approve another step.
Compare the marginal result with the average. If the first $2,000 buys five jobs and another $1,000 buys one more, total acquisition cost is $3,000 / 6 = $500 a job. The last $1,000 bought a single job, and a report limited to the first period would still show the $400 average.
Update mature groups monthly and keep pending groups visible. Spend that builds a profitable backlog can look weak before delivery, and canceled bookings can make an early report look better than the completed result. Keep dates and job statuses in the table so another person can repeat the division.
What owners say back
“The report says 40 leads for $2,000, so I pay $50 a lead.” That is a price per contact. At a $120 limit per job, a $50 lead has to close 42 percent of the time ($50 / $120) for the channel to fit. Compare 42 percent with the close rate on that channel’s own leads.
“Half of them have not finished yet, so I cannot judge the channel.” Price the best case. In the pool example, if every pending job completes, the cost is still $218 against a $120 limit, so you act now. If the best case lands under your limit, wait for the review date.
If you pay someone to fix it
- Require raw lead exports, a repeatable deduplication rule and all acquisition costs.
- Demand dated groups with booked, completed, paid and pending outcomes shown separately.
- Agree on invalid-lead definitions, evidence and credit terms before spending.
- Set a spending cap, a review date and cancellation terms in writing.
- Reject reports that substitute clicks, calls or accepted estimates for completed jobs without a label.
Do this week
- Pick a mature lead-arrival month for each channel and gather every acquisition invoice (25 minutes).
- Deduplicate prospects and attach source evidence, job status and invoice IDs (30 minutes for a first sample).
- Reconcile ten claimed jobs and keep unresolved records outside the completed total (25 minutes).
- Compute your allowable cost per lead from your average job, margin and close rate, and compare it with what you pay now (20 minutes).
- Assign one correction or one budget test with a cap and a review date, and enter your numbers at workbook.
servicelinepro. com/#price (15 minutes).
Crew
The pool company pays its four techs for 704 hours a month and bills 328, and its 208 idle hours are its 40 empty slots.
- 18Unbilled Crew Hours
- 19Drive Time
- 20Owner Hours on $20 Work
- 21Next-Truck Break-Even
Unbilled Crew Hours
The pool company pays for 704 crew-hours a month and bills 328. Its 208 idle hours are the same 40 empty slots that Opportunity Value prices at $18,000.
Leak family Hours: use the hours you pay for
The pool company from Chapter 2 pays its four technicians for 704 crew-hours a month and bills 328 of them. At $110 per billable hour, the 376 unbilled hours carry $41,360 of monthly revenue capacity if every hour sold. Driving and shop work take 168 of those hours and the jobs need them, so your audit finds the smaller share you can sell.
The other 208 hours are idle, and they are the 40 empty job slots in Chapter 2. A job takes 4.1 billed hours and 1.1 hours of driving, and 40 slots at 5.2 hours are 208 hours. At $110 those idle hours are 208 x $110 = $22,880 a month, the figure Chapter 30 ranks. While the schedule has empty slots, count that slack once, as Opportunity Value, and do not add the two (Chapter 30). Unbilled hours become their own money once the schedule is full, or when a process change shortens each job and raises B.
Put payroll and job time on one basis
Use the same people and dates for payroll, job time and revenue, and export four complete weeks. Count person-hours, so two painters on one job for three hours contribute six hours. A three-hour appointment window is not three verified labor hours.
Take paid hours from payroll, including overtime and paid non-job time. Track paid leave separately, because a technician on leave offers no dispatch capacity that day, and a holiday week is no evidence of a scheduling failure.
Define billable hours one way. For time-based work, use the labor hours accepted on customer work. For flat-rate jobs, use the actual productive person-hours on sold work and label the measure. Never mix a quoted four-hour allowance with an actual two-hour duration, since that raises billed hours and creates no capacity.
Set the revenue rate from matching labor revenue and matching hours, and split out material revenue where you can. If a flat-rate invoice bundles everything and you cannot allocate labor revenue, note the limit. You can still inspect the hours without putting a dollar value on them.
Run a 20-minute data check on one technician’s day. Match clock-in and clock-out to job starts, job finishes and recorded non-job time, and flag overlaps, gaps and job time longer than paid time. Pass when the categories explain the whole paid day with no double-counted minutes. Check a high utilization figure the same way you check a low one, since neither validates its own timestamps.
Price the 376 unbilled hours
Each technician is paid for 176 hours a month (22 days of 8 hours) and bills 82, so billed utilization is 328 / 704 = 46.6%. At B, 120 jobs bill 492 hours, or 69.9%, and no hour sits idle. The workbook takes weekly hours, so enter 176 and 82 divided by 4.33, which is 40.65 paid and 18.94 billed.
Monthly capacity value is 4 x (40.65 - 18.94) x $110 x 4.33 = $41,360, the same as 376 x $110, and twelve months is $496,320. Use 4.33 weeks a month in every comparison so a rounding change does not look like an operating change.
One more billed hour per technician per week is 4 x $110 x 4.33 = $1,905.20 a month. Three more hours each is $5,715.60, which moves the example from 18.94 to 21.94 billed hours a week, or 54.0% utilization. Test that against your job mix, travel and required support time.
Fill a quarter of the 208 idle hours and you get 52 crew-hours, room for 10 more jobs at 5.2 hours each. That is $4,500 a month already inside Chapter 2’s $18,000, and you still need demand, appointment lengths that fit and customers who pay.
Wages are a separate calculation. At an example loaded labor cost of $32 an hour, the 208 idle hours cost 208 x $32 = $6,656 a month. The 168 driving and shop hours cost another $5,376, and the jobs need most of them. Keep it out of the revenue number. You already pay those wages, and added jobs bring their own variable costs, so added contribution depends on the work sold and what it costs to perform.
Classify one week of one technician’s hours
Pick one technician’s full week and put every paid hour in a single category: sold job work, travel, setup and safety, parts procurement, paperwork, callbacks, customer delay, schedule gaps and paid leave. Keep a temporary unknown category and clear it with the technician and dispatcher.
Write the cause beside the time. A parts run can come from an unusual repair, an incomplete stock list or a supplier error. A callback can come from workmanship, a failed component or a changed request. The same label can hide three different fixes.
Say one technician’s 94 unbilled hours a month are 22 driving, eight loading and chemicals, six paperwork, four parts runs, two callbacks and 52 schedule gaps (22 + 8 + 6 + 4 + 2 + 52 = 94). After you reconcile that to payroll, you find two paperwork hours and two parts-run hours that look recoverable. The first test targets those four hours, or 16 crew-hours across the crew.
Sixteen crew-hours at $110 is $1,760 a month if sold. At 80 jobs they join the idle time, and they raise B by about three jobs (16 / 5.2), worth $1,350 at $450 a job. Recovering the time is the first result and selling it is the second. Record whether the dispatcher filled the hours, whether the work completed and what contribution it left. A technician who finishes paperwork early and waits for the next job has saved task time and has not produced a sold hour.
Read the schedule before you compare employees. One technician may get distant jobs, awkward gaps and warranty visits while another runs a dense route of repeat work. Match service type and assignment before you decide a utilization gap measures skill. Chapter 19 owns route changes, and those hours already sit in this chapter’s driving row.
Fill cancellations with a ready list
Build a short-notice list of customers who agreed to an earlier visit, with the service needed, estimated duration, location, required parts, access limits and preferred contact method. Confirm the work is ready to schedule, since a customer still choosing a scope cannot fill a ninety-minute opening.
When a slot opens, add up travel, setup and job duration before you make an offer. A ninety-minute gap cannot fit ninety minutes of labor plus thirty minutes of driving. Offer a slot only to someone whose job and location fit the full window.
Hi [First name], [Dispatcher] at [Company]. You asked about an earlier visit for [approved work]. We have [specific arrival window] available today. Does that fit your access plans? I’ll confirm the booking before you change your schedule.
Name one person to confirm the slot. When several customers get the offer, hold one confirmed booking and tell the others it filled. Log the canceled slot, the customer chosen, the travel allowance and the completed time, so the office can check whether the replacement fit without delaying later jobs.
A filled 90-minute slot at $110 an hour brings $165. Subtract any travel or prep time the fill used from the $165.
For the paperwork hours, inspect one repeated step before you buy software. A technician retyping information the office already holds needs a shared record and a clear handoff. Time the revised process on comparable jobs, check invoice accuracy and ask whether the work moved to the office. Count that moved time in the net recovery.
Keep safety, required breaks and training out of any recovery target that depends on cutting them. Chapter 24 owns seasonal demand. Record weather and leave when you compare weeks, so a dry week does not pass for a dispatch improvement.
If you pay someone to fix it
- Require reconciled payroll and job-time exports for matching people and dates.
- Demand separate totals for all non-billed time, proposed recoverable hours and hours converted into completed work.
- Ask which support tasks must stay and who checked that with the crew.
- Require revenue and contribution evidence before you accept a recovered-dollar claim.
- Reject utilization guarantees that leave out travel, paid leave or the actual service mix.
Do this week
- Export four complete weeks of matching paid hours, job time and labor revenue (25 minutes).
- Reconcile one technician’s day and fix overlap or missing-time rules (20 minutes).
- Classify one full week and pick a small recoverable target with the technician and dispatcher (30 minutes).
- Build a ready-to-schedule short-notice list and name one booking owner (20 minutes).
- Review recovered hours, replacement work and contribution after one comparable week, and enter your hours at workbook.
servicelinepro. com/#seat (20 minutes).
Drive Time
Cut the area a tech covers in a day to a quarter and the driving halves.
Leak family Hours: use the hours you pay for
Mathematicians Beardwood, Halton and Hammersley proved in 1959 that the shortest route through a set of random stops grows with the square root of the stops times the area they sit in. For a tech who runs a fixed number of stops a day, the stops are the constant and the area is the variable. Draw the day’s stops from half the territory and the miles fall 29 percent. Draw them from a quarter of it and the miles fall by half.
Zoning rests on that arithmetic, and drive time is the paid hour owners rarely question. The tech clocks 8 hours, the timesheet shows one number, and nobody sees how many of those hours were spent between houses.
4x smaller area, half the driving
The smaller area only works if it holds enough customers to fill a day. A pool company with weekly routes needs a zone that holds a full route. A repair company needs a zone that produces a day’s worth of calls inside the booking window it offers. Count that before you draw anything.
Split the loss into ordering and assignment
Drive time leaks in two ways, and the fixes do not overlap. Ordering loss is driving the stops in a poor sequence. Assignment loss is sending a tech to stops that belong to another tech’s part of the map. Software fixes the first and does nothing for the second, so measure both before you spend on either. It takes about 30 minutes.
- Pull five tech-days from last month, spread across at least three techs. Your field app has job start and finish times. If it also records GPS, use the drive minutes it reports.
- For each day, write the stops in the order the tech drove them and the minutes between each pair (field app timestamps, or Google Maps for each leg).
- Rewrite the same stops in nearest-next order, always going to the closest remaining stop, and add up the minutes again. The difference is that day’s ordering loss.
- Put one day’s stops for every truck on one map, one color per truck. If the colors overlap, you have an assignment loss. If each truck stays in its own area, ordering is your only loss.
Run it before you change anything. The results tell you what to do first. A large ordering loss means a dispatcher habit or a bad route tool. Overlapping colors mean the booking rule is the leak, and no routing software will see it, because it sorts only the stops it is handed.
Turn 44 drive hours into $4,840 a month
The workbook asks for five numbers and returns the revenue the saved hours could earn.
| Techs (n) | 4 |
| Drive hours per tech per day, today (d) | 1.0 |
| Drive hours per tech per day with tight zones (g) | 0.5 |
| Workdays a month (w) | 22 |
| Revenue per billable hour (r) | $110 |
| Hours back a month, whole crew [n × (d − g) × w] | 44 |
| Revenue those hours would earn | $4,840 a month |
- Techs and workdays. Payroll and the calendar.
- Drive hours per tech per day (d). The travel or mileage report in your field app, if it records location. Without GPS, export job start and finish times and subtract the finish of each job from the start of the next, or ride along for one full day with two techs and write down road time.
- Drive hours with tight zones (g). The same report for your best week this quarter.
- Revenue per billable hour (r). Labor revenue divided by billable hours, the same figure as Chapter 18.
That is $58,080 a year. Two of the inputs deserve a check before you trust the result.
The first is d. The pool company drives 88 hours a month across 88 tech-days, one hour a day, or 12.5 percent of an eight-hour day. The workbook default of 2.5 hours, 31 percent of the day, fits a company that covers a whole metro with no zones. Use the number you measure.
The second is g. Take it from your best week in the last quarter, because that week proves your crew has already done it. The example uses a g of half d. If your best week sits closer to d, use that and accept a smaller answer.
12.5% of the day is road
The $110 is revenue, and the reclaimed hours earn it only if you book work into them. A tech who drives half an hour less and then waits in the yard earned you nothing. At 80 jobs the 44 hours join Chapter 18’s 208 idle hours, so use one chapter’s number in your total and not both. Once the schedule fills, the shorter drive raises B. A job takes 4.65 hours instead of 5.2, and the 624 hours left after shop work hold 134 jobs instead of 120.
Drive hours also cost money before any revenue is counted. The next calculation prices one tech-day with a loaded wage of $32 an hour, the same as Chapter 18, and mileage at the IRS 2025 standard rate of 70 cents a mile. Use your own wage and your own cost per mile, since a loaded work truck often costs more than the IRS rate.
x 4 techs x 22 days = $4,356 a month
Plot 12 months of job addresses on one map
Export 12 months of completed jobs with the customer address on each row. In Google My Maps, create a map and import the sheet with the address column as the location. About 20 minutes gets you a cloud of pins. Look for clusters where many customers sit close together, single pins miles from anything else, and empty stretches your trucks cross without stopping.
Each outlier cost a long drive for one job. Outliers tend to be old referrals from before the company settled on a territory, and clusters tend to sit where you started or where a builder or property manager sends work. The map shows which is which, and it is the document you use to draw zones.
Zone the booking
The cheapest fix is a rule. Cut the territory into zones, give each zone a day or a tech, and book customers into their zone’s day first.
“We service your neighborhood on Tuesdays and Fridays. I have a 10:00 on Tuesday. Does that work?”
If they say no: “I can do Friday at 1:00. Which is better for you?”
If they want a day outside the zone: “I can do Thursday. That is outside our usual run in your area, so there is a $[amount] trip fee. Or I can get you in Friday at no charge. Which do you want?”
The trip fee prices a bad route. Customers who pay it cover the drive, and customers who decline it move to a zone day.
Assign techs to zones as well. A tech who works the north zone every Tuesday learns the streets, the gate codes and the dogs, and that cuts minutes at every stop.
Set a radius in drive minutes from your shop or your densest cluster, not in miles, and write the distance bands on one card for the dispatcher and the estimator. Under 15 minutes carries no charge, 15 to 30 minutes carries a flat charge, and beyond 30 either costs more or gets declined. Roofers, tree crews and anyone else who cannot zone away the drive recover it through those bands. Chapter 26 covers raising prices without losing the jobs you want.
Four weeks after you start, pull drive hours per tech per day again. The test is whether they moved toward the g from your best week. If they did not, the dispatcher is still booking outside the zones, and the colored map will show where.
Fill the dense circle before you widen the territory
Route length per stop falls with the square root of customer density too, so double the number of customers inside the circle your trucks already cover and miles per stop fall 29 percent. A call from inside a dense cluster adds a stop for almost no drive, and a call from the edge of the territory adds a long leg for one job. Chapter 10’s map work should target the neighborhoods where your trucks already run. Fill the dense circle first and widen later.
What owners say back
“My customers are spread out. That is what I built.” The map tells you how spread out. If most pins sit in a few clusters, the outliers are raising your average, and a fixed day and a fixed price for them fixes it.
“Routing software will fix this.” It sorts the stops it is given and cannot choose which stops belong to which truck. The colored-map test above shows whether your loss is in the sorting or in the assignment.
If you pay someone to fix it
A routing tool, a dispatcher or a consultant should be paid against the same measure you can pull yourself.
- Ask for a baseline in writing before they start: drive hours and miles per tech per day from the last 90 days, from your own GPS or timestamps.
- Ask for the same report 30 and 60 days later. Judge them on drive hours per tech per day, and on jobs completed per tech per day.
- Ask whether the tool changes the order of stops, the assignment of stops to trucks, or both. A tool that does only the first fixes half the loss.
- Walk away from a quote that promises a percent saving without seeing your addresses.
- Keep the data export. Your job history and addresses stay yours if you cancel.
Do this week
- Run the ordering and assignment test on five tech-days from last month. About 30 minutes.
- Export 12 months of completed jobs and plot them in Google My Maps. About 20 minutes.
- Draw four zones on the map, assign each a day, and give the dispatcher the zone script. About 45 minutes.
- Write the distance bands and the trip fee on one card for the dispatcher and the estimator. About 15 minutes.
- Run your numbers at workbook.
servicelinepro. com/#wind, which takes about 5 minutes.
Owner Hours on $20 Work
An owner hour is worth $200 selling and $20 on invoices, but only if an estimate is waiting for it.
Leak family Hours: use the hours you pay for
Moving 25 owner hours a week from $20 work to $200 work is worth $19,485 a month on paper, and nothing if no estimate is waiting for those hours. The test that decides comes first, and the arithmetic second.
Test for a waiting estimate
Pull your last 20 estimate requests from the past 60 days, from your CRM, your calendar or your text thread. For each one, write the number of days between the request and your visit, and mark any that never got a visit at all. It takes about 30 minutes.
Use this threshold: a median wait over two days, or three or more requests that never got a visit. Either one means estimates queue behind your other work, you are the constraint, and each hour you free has a buyer. If you see every request within a day and your calendar has open slots, freeing hours produces nothing until more leads come in. Part II of this book fixes the phone and Part IV fixes the pipeline, and those come first.
Also count the pile you already own: calls missed last month (Chapter 5), callbacks that went to a competitor first (Chapter 6) and estimates sent and never followed up (Chapter 16). That pile is where the first freed hours go.
Two prices for the same hour
The first price is what it costs to hire the task out. Phones, invoice entry, ordering, scheduling and review requests are work a capable office hire does well, at a wage near $20 an hour in the workbook. Call two staffing agencies or read the local job ads and use your own number.
The second price is what your hour earns when you sell. Say you run eight estimates a week and close three at an average of $4,800. That is $14,400 a week. Divide by the hours those estimates took, including drive and writeup, and you have your selling rate. The workbook starts at $200.
| Hours a week on work you could hire out (h) | 25 |
| What an hour of yours earns selling or estimating (o) | $200 |
| Cost to hire it out (c) | $20 an hour |
| Net gain per hour you reclaim (o − c) | $180 |
| Weeks in a month | 4.33 |
| Owner time on the wrong work [h × (o − c) × 4.33] | $19,485 a month |
That is $233,820 a year, and 108 hours a month back. The hire costs $2,165 a month (25 × $20 × 4.33) and the hours earn $21,650 if every one of them goes to a qualified buyer. The $19,485 is the ceiling, and the test above tells you how close to it you can get.
spend $2,165, earn up to $21,650
- Hours on hire-out work (h). The paper week in the next section. Two weeks is better if your schedule swings.
- What an hour of yours earns (o). Revenue closed from estimates you personally ran in the last 90 days, divided by the hours those estimates took including drive and writeup. If you do not track estimate hours, count the estimates and multiply by a realistic block, say two hours each.
- Cost to hire it out (c). The local wage for the role plus payroll taxes and workers comp, which your payroll provider can quote. For a virtual receptionist, the monthly fee divided by the hours of work it takes off your plate.
Track one week on paper
Your memory of your week will not match your week. Print a sheet with the days across the top and half-hour rows from 6:00 am to 9:00 pm down the side. Write what you did every half hour or whenever you switch tasks, in a few words, as you go.
Add one column for interruptions and put a tick in it each time a phone call pulls you out of what you were doing. Research led by Gloria Mark at the University of California, Irvine found that people took about 25 minutes on average to return to an interrupted task. A call taken while you write an estimate costs the call and the restart, and your tally shows how many restarts you pay for in a week.
On Saturday, circle every entry a $20-an-hour hire could do and add up the half-hours. That total is h. Your total may land near 25 or near 10. At 10 hours the gain is $7,794 a month, which still pays for a part-time hire.
Then write down every estimate you ran that week, how long each took from leaving the shop to returning, and what you closed. That gives you your own o, and it shows how many estimates you personally run in a week.
Hand off in this order
Hand off the task that interrupts you most often first, and the task that needs your judgment last. The figure places common owner tasks on those two measures.
The phone goes first for a second reason. Every missed call is an estimate you did not run, so the phone is where the $200 hour leaks fastest. You have three ways to fill the seat.
An employee gives the most control and takes the most management time. A part-time hire at 20 hours a week is a way to start. A virtual receptionist answers in your company’s name from a call center and covers evenings and weekends at a lower cost, though the person knows your business less well. My painting company runs a virtual receptionist. Software and AI answering cover the routine calls and the texting on top of a person, and they cover the hours when nobody is at the desk (Chapter 7).
before payroll taxes
Write a one-page script for the first 30 seconds of a call, the five questions to ask every caller and a rule for when to hand a call to you. A new person who has a script sounds experienced in week one.
“[Company] is a [trade] company in [city]. We need someone to answer our phones, book appointments and keep our schedule clean. You will talk to homeowners who are stressed about a problem in their house, and your job is to make them feel taken care of and get a technician on the calendar. You will also send confirmations, follow up on estimates and ask happy customers for reviews. Hours are [days and hours]. Pay is $[range] an hour. No trade experience needed. You need a clear phone voice, accurate typing and good judgment under pressure.”
Hand off the whole task
Owners hand off the task and keep the problem. Three rules prevent that.
Write the task on one page. A task explained out loud takes five minutes and a month of corrections, and a checklist takes 20 minutes to write once.
Hand over the whole task. “Order the materials” includes tracking the delivery and calling the supplier when it is late. If you keep the late call, you keep the interruption.
Check results on a set day. Look at invoices sent, calls booked and reviews requested once a week for ten minutes.
“For the next two weeks I will check your work every day at 4:00. After that I will check it on Fridays. If something goes wrong, tell me the same day. I will not be upset. I want to fix the checklist.”
If you want a second estimator, pay the person on the number you watch. At my painting company the sales lead earns a commission on net profit, which is the job price minus the subcontractor invoice minus materials. A commission on revenue rewards them for a discount that costs me margin, and a commission on net profit does not.
If you pay someone to fix it
A virtual receptionist, answering service or office hire should be judged on what reaches your calendar.
- Ask for call recordings you can listen to each week, and listen to ten in the first month.
- Ask for booked appointments per week, not calls answered. A high call count with few bookings means the script is wrong.
- Approve the script and the transfer rule in writing. They should hand you a call only under the rule you set.
- Take a month-to-month trial before any contract, and ask how an unwanted contract is ended.
- Ask how they handle a caller who wants a price over the phone, and what they say.
- Walk away from any provider that cannot show a recording.
Do this week
- Run the waiting-estimate test on your last 20 requests. About 30 minutes.
- Print a half-hour grid and track five working days with a column for phone interruptions. About 5 minutes a day.
- Pull the revenue you closed from your own estimates in the last 90 days and divide by your estimate hours to get o. About 20 minutes.
- Post the CSR job description or call a virtual receptionist service and ask for a trial. About 45 minutes.
- Run your numbers at workbook.
servicelinepro. com/#owner, which takes about 5 minutes.
Next-Truck Break-Even
At a $250 gross profit per job, a $150 lead that closes 3 times in 5 leaves the next truck nothing to earn.
Leak family Hours: use the hours you pay for
A truck seat needs about 40 more calls a month to fill. In a market where leads run $150 to $200 each, 40 calls cost about $6,000 a month in extra ad budget. Price the wages and the lead cost is still sitting inside the $250 of gross profit when the truck looks profitable on paper.
Lead cost works on gross profit in a way that wages do not show. Say 3 of every 5 leads close, so a $150 lead becomes a $250 closed job, and a $200 lead becomes $333. Against a gross profit of $250 per job, the first leaves nothing to pay the tech and the second loses money on every job. This is an example built on the workbook default, so replace $250 with your own gross profit before you panic.
bought leads at this price cannot staff a seat
Most owners price the wages and leave the leads for later, and that sequence is how a truck ends up costing more than it earns.
What the seat costs every month
The tech and truck cost money from day one whether or not the tech has a job. Add the wages, payroll taxes and workers comp, insurance on the truck and the person, the truck note or lease, fuel, tools, uniforms, phone and software seats. That is the all-in cost of the seat. The workbook starts at $9,000 a month.
Each job pays toward the bill with its gross profit before the tech, meaning the job price minus materials and direct costs that are not the tech. The tech and truck are what you are paying for, so they cannot also be subtracted from the job. The workbook starts at $250 per job.
| Monthly cost of a tech and truck, all in (c) | $9,000 |
| Gross profit per job before that tech (p) | $250 |
| Jobs one tech can run a month (k) | 70 |
| Break-even utilization (36 ÷ 70) | 51.4% |
| Profit with the truck full (70 × $250 − $9,000) | $8,500 a month |
| Jobs a month that pay for the next truck (c ÷ p) | 36 jobs |
The truck is profitable at job 37, and it has 34 jobs of headroom between break-even and full. A truck that needs 51 percent utilization to pay for itself is a good truck to add if you can find the jobs, and one that needs 90 percent is a poor bet in almost any month.
- Monthly cost of a tech and truck (c). Payroll for the tech you would hire, payroll taxes and workers comp (your payroll provider has the rate), plus truck note or lease, insurance, fuel, tools and software seats. Average your two newest trucks.
- Gross profit per job before that tech (p). Invoice total for a typical job minus materials and subcontractor cost, averaged over the last 90 days from your field app. Leave out the labor of the tech you are testing.
- Jobs one tech can run a month (k). Your best tech’s best full month, counted from completed jobs. Use a number you have already seen.
If your jobs vary a lot in size, run the formula once per job type and use the type the new tech will do most.
Subtract the cost of landing the job
If you buy leads to fill the truck, the lead cost comes out of the $250. Break-even moves faster than most owners expect, because every dollar of marketing shrinks the gross profit that is dividing the $9,000.
At $60 per job the truck needs 48 jobs, or 68.6 percent of capacity. At $120 it needs all 70, and any month short of a full schedule loses money. Your own cost per closed job is in Chapter 17. If it is above $90 on a $250 gross profit, the truck does not pencil out until you lower the cost.
Convert jobs to calls
The phone counts calls, and the truck counts jobs, so convert with your close rate. If 3 of every 5 answered calls become booked jobs, 36 jobs needs 60 calls (36 ÷ 0.6). At 2 in 5 it needs 90 calls. A weak phone process raises the price of every truck you add, and Chapters 5 and 6 lower the call count the truck needs by raising the share of calls that become jobs.
$4,000 cash out before a new truck pays back
A new tech does not start at full speed. The truck needs stock, the tech needs your routes and standards, and the jobs have to be on the board. These numbers are an example.
Keep the $4,000, plus a cushion, in the account before you hire. If you cannot fund that hole you cannot fund a second month of a slower start. Track the truck as its own class in QuickBooks with wages, note, insurance, fuel and jobs under it, so its profit and loss shows after month 3 without an argument.
Hire when four checks pass
Many owners hire first and buy leads in a hurry afterward, from whichever source promises speed. Reverse it. Hire only when all four of these hold.
- Booked jobs for the next 30 days cover break-even for the new tech, on top of the work your current crew already has.
- Your current techs bill at least 80 percent of their paid hours (Chapter 18).
- Cash covers the ramp, which in the example above is $4,000 plus a cushion.
- The lead source has produced at least 60 days of steady volume at a known cost per lead.
Count what you already own before you buy more demand. Past customers (Chapter 13), unchased estimates (Chapter 16) and missed calls (Chapter 5) are jobs you paid to generate once. If any check fails, that is your next job, and you test again next month.
Check cheaper capacity before you sign a truck lease. Overtime costs more per hour and nothing in the months you do not need it. A sub or 1099 tech costs money only when there is work. A Saturday half-day adds capacity on a truck you already own. When overtime has run every week for two months, that is the demand history that justifies the hire.
Hold a monthly truck review
Take ten minutes on the first Monday of each month with the dispatcher and ask four questions once the truck is on the road.
“How many jobs did the new truck run last month?”
“What is break-even on the board? Did we beat it?”
“How many jobs are booked for the next 30 days on that truck?”
“If the answer is under break-even, which lead source or past-customer list fills the gap this month?”
Two months under break-even means the demand was never there, and this review shows it by day 60. You can add leads, move the tech to cover other trucks’ overflow, or end the seat while the cost is still small. Each beats carrying $9,000 a month against 20 jobs.
What owners say back
“My techs are overworked, so I have to hire.”
Check the hours first. Techs who bill 30 hours a week are driving too much (Chapter 19), idle too much (Chapter 18) or both, and a new hire will do the same. If the crew bills 36 or more, hire.
“I can’t find techs anyway.”
Then hiring is your constraint, and the break-even number tells you what the seat is worth so you know how much to offer. A tech who brings $8,500 a month of profit at full utilization is a tech you can pay well.
If you pay someone to fix it
A lead vendor or agency that sells you demand for the next truck should answer the break-even in writing.
- Ask for the cost per closed job in the first 60 days, and not cost per lead. Cost per lead hides the close rate.
- Ask for calls counted by source, with recordings, so you can verify the close rate yourself.
- Ask what happens to the monthly fee if volume falls short of the number the seat needs.
- Keep your ad accounts and tracking numbers in your name so you can leave with the history.
- Walk away from any quote that promises a lead count and does not name the cost per job.
Do this week
- Add up the all-in monthly cost of one tech and one truck. About 30 minutes with payroll open.
- Pull gross profit per job from the last 90 days, before labor, and divide to get break-even jobs. About 20 minutes.
- Subtract your cost per closed job (Chapter 17) and recompute. About 10 minutes.
- Run the four checks in the hire trigger and write down which one fails. About 15 minutes.
- Run your numbers at workbook.
servicelinepro. com/#truck, which takes about 5 minutes.
Pricing and margin
A $50 add-on on 40 percent of 80 jobs adds $1,600 a month on top of Opportunity Value.
- 22Add-On per Job
- 23Customer Lifetime Value
- 24Seasonal Dip
- 25Maintenance Plans
- 26Price Raise Math
- 27Low-Margin Job Types
Add-On per Job
Thirty-two $50 add-ons a month equal 3.6 extra jobs, with no lead to buy for any of them.
Leak family Margin: earn more on jobs you win
A company that finishes 80 jobs a month and sells a $50 add-on on 40 percent of them books 32 add-ons, or $1,600 a month. At a $450 average job, that is the revenue of 3.6 extra jobs, and each of those jobs would have cost a lead, a call, a quote and a drive. The add-on carries none of those costs, because the customer’s trust and the truck in the driveway were paid for on the first call.
Measure what techs sell today
Do this before you pick a price, because the number you guess and the number you measure differ. It takes about 30 minutes.
- Export last month’s invoices from your field app or accounting software, with line items.
- Mark any line that sits outside the original scope of the job. Each is an add-on.
- Divide marked jobs by total jobs to get your starting share. If it is 6 percent, you are trying to move 6 percent.
- Sort the marked lines by dollar value and by tech. The spread between your best and worst tech is the gap a script and a bonus can close, because both work the same jobs.
- Ask your office what customers phone about in the week after a job. Each repeated answer is an add-on the tech could have sold during the visit.
$1,600 add-on on 32 jobs
| Jobs a month | 80 |
| Add-on or upgrade per job | $50 |
| Share who take it | 40% |
| Takers a month (80 × 40%) | 32 |
| Added revenue a month (32 × $50) | $1,600 |
| Extra marketing cost | $0 |
| Added revenue a year | $19,200 |
Two numbers move the answer, and you control different ones. The share who take it moves with what your techs say, and the price moves with your menu.
Revenue is not profit. A $50 add-on that costs $20 in parts and labor, and carries a $5 flat bonus to the tech, leaves $25.
Price each add-on so its margin matches or beats the job it rides on, and list the margin beside each item. Chapter 27 shows how to build the margin table.
Offer three options on the estimate
A tech asking for a yes or no is asking the customer to decide whether to buy. Three options turn that into a choice among prices.
Say you run the pool company from Chapter 2 and a tech is quoting a pump repair on a $450 job.
| Option | What it includes | Example price |
|---|---|---|
| Good | Replace the pump shaft seal and test the pump, 90-day parts warranty | $450 |
| Better | Seal, lid o-ring, basket and pressure gauge replaced together, one-year warranty | $500 |
| Best | Better, plus a filter cartridge swap and a one-year service plan (Chapter 25) | $650 |
The Good option fixes the problem. The Better option groups the parts most likely to fail next, so the customer avoids a second call. The Best option adds recurring revenue. If 32 of your 80 monthly jobs take Better, the $50 step up is the same $1,600 a month as the add-on math above, and every Best pick adds to it.
Run it for 30 days and read the picks as a test. If almost nobody picks Best, the gap between Better and Best is too wide or the plan benefit is unclear. If almost everybody picks Good, Better does not look like better value, so rewrite its description. Set a target before you start, for example one customer in five on Best.
Build the templates once for your five most common jobs in your field app, so techs pick a template instead of inventing a price in a customer’s kitchen.
Build a five-item menu per trade
Techs forget a menu of thirty items and recite a menu of five. Each item needs a flat price and a one-line reason, tied to what the tech has already opened or can see.
| Trade | Add-on the tech can see | Why it fits the visit |
|---|---|---|
| Pool | Filter cartridge swap, pump seal, timer upgrade | Equipment is open |
| HVAC | Capacitor or contactor swap, UV light, filter upgrade | Panel is open |
| Garage door | Spring pair replacement, opener sensor, weather seal | Door is open for service |
| Roofing | Vent boot replacement, flashing reseal, gutter cleaning | Crew is on the roof |
| Fence and deck | Sealing or staining, gate hardware, post caps | Job is open and materials are on site |
| Pest control | Crawlspace or attic treatment, entry sealing | Tech is already inspecting |
| Tree | Stump grinding, haul-off, lot clearing quote | Crew is on site |
| Cleaning | Inside the fridge, windows, oven | Crew is already inside |
Scripts that sell without pressure
A tech who asks “Do you want to add anything?” gets “no.” A tech who describes what they see gets a conversation. The structure has four moves: say what you saw, say what happens if nobody fixes it, give a flat price, ask for the yes.
“While I had the pump open, I noticed the seal is starting to weep. Leave it another season and it will leak. I can swap it right now for $85, which includes the part and the labor. If I come back for it later it is a separate trip. Want me to take care of it while I’m here?”
“No problem. I’ll write it on the invoice as a recommendation so you have it. If you decide to do it, call the office and mention this one. We can usually schedule it on a day I’m already in your area.”
“It can wait a few months. Here is what to watch for. If you hear a grinding noise or the water level drops, call me the same day. I would do it now because it saves you a trip, but it is your call.”
“Everything on the list is done and working. I looked at the rest of the system and nothing else needs attention this year.”
Pay a flat bonus per add-on
Techs do not sell add-ons for free unless you have told them it is part of the job. Pay a flat bonus on each add-on sold and installed, on the next paycheck. Set it from margin: on a $50 add-on with a $20 cost, $30 of profit supports a $5 bonus.
Do not tie the bonus to the dollar value. A percentage of the sale pushes techs to chase big items and skip small ones, and the small, easy sales make up the 32 takers. Post the weekly count by tech in the group text. The tech at 10 percent learns from the tech at 50 percent, and the one at 50 percent likes to explain how.
What owners say back
“I am not a salesman.” (the tech)
The tech tells the customer what they already see. A mechanic who says your brake pads are thin is telling the truth, and the customer pays for it.
“We tried that and it annoyed customers.”
Ask what was tried. If it was a script read from a card, replace it with a specific observation from the person already in the equipment, with a flat price in the sentence.
“Our jobs are too custom for a menu.”
Then the menu is five items that go with your most common jobs, and everything else stays custom.
If you pay someone to fix it
Someone who writes templates, scripts or a bonus plan for you should leave you with items you can check.
- Ask to see the menu with price, cost and margin for every item before it goes live.
- Ask for the share of jobs with an add-on, by tech, for 30 days before and 30 days after.
- Ask for the scripts in your tech’s words, and have two techs say them out loud to you.
- Make sure the templates live in your field app and belong to you.
- Walk away from a plan that pays on revenue only and ignores margin.
Do this week
- Run the invoice audit on last month’s jobs and find your starting share. About 30 minutes.
- Write a five-item menu for your most common job, with a flat price, a one-line reason and your cost for each. About 40 minutes.
- Build a good, better, best template for your three most common jobs. About 1 hour.
- Read the scripts to your techs at the next morning meeting and announce a flat bonus per accepted add-on. About 20 minutes.
- Run your numbers at workbook.
servicelinepro. com/#fifty, which takes about 5 minutes.
Customer Lifetime Value
On the first invoice a $300 customer returns 1.5 to 1. Over four years and the neighbors they send, 27 to 1.
Leak family Margin: earn more on jobs you win
On the workbook defaults, a customer who costs $300 to win books a $450 first job, which returns 1.5 to 1 on the cost to win. The same customer books three jobs a year for four years and sends one new customer for every two of them. That is $8,100 of revenue and a return of 27 to 1. An owner who judges a lead by the first invoice sees the first number, caps what they will pay for leads at the first number, and concludes that marketing barely pays.
The error comes from the way books are kept. Your accounting software records each invoice as its own event, with no line that connects this month’s repair to the customer’s first call three years ago. The cohort test below builds that line.
Lifetime value math
| Average job | $450 |
| Jobs per customer per year | 3 |
| Years they stay | 4 |
| Referrals each one sends | 0.5 |
| Cost to win one customer | $300 |
| Value without referrals ($450 × 3 × 4) | $5,400 |
| Referral lift (× 1.5) | +$2,700 |
| Lifetime value of one customer | $8,100 |
The formula is average job × jobs per year × years × (1 + referrals). The referral number is a multiplier: at 0.5, every two customers bring one more, so each customer is worth one and a half customers. Divide $8,100 by the $300 cost to win and you get 27 to 1.
- Average job. Total invoiced in the last 90 days divided by the number of jobs, from your field app or accounting software (Chapter 2).
- Jobs per customer per year. From the cohort export, divide each cohort customer’s job count by their years with you and average. A weekly pool customer sits near 50. An HVAC company with a yearly tune-up and the occasional repair sees 1 to 2.
- Years they stay. Sort customers by first-job date and look at the groups from five and six years ago. How many still book with you?
- Referrals each one sends. Ask your last 20 new customers how they heard about you. Count the ones who name a friend, a neighbor or a current customer, and divide by 20. If 10 of 20 say a referral, the number is 0.5. Chapter 14 goes deeper.
- Cost to win one customer. A month of marketing spend divided by new customers that month (Chapter 17 carries it to cost per closed job).
Recurring work changes everything, so run recurring and one-time work separately. A weekly pool customer who pays $140 a month for four years is $6,720 before any repair, and an average job of $450 at three visits a year undersells that customer.
Test your numbers on a cohort
Averages taken from your active customer list overstate lifetime value, because customers who left after one job rarely stay on the list you average from. A cohort test avoids that, and it takes about 40 minutes with a field app export.
- Export every completed job with customer ID, date and amount.
- Pick the customers whose first job was 36 to 48 months ago. Count them. That is the cohort.
- Add up everything those customers have paid you since, including the first job.
- Divide the total by the cohort count. The answer is your observed value per customer, three to four years in, with no formula and no guess.
- Count how many in the cohort booked a job in the last 12 months. That share is your retention at that age.
If the cohort number is far below $8,100, your retention is the leak, and the fix lives in Chapters 13 and 25. If it is near or above, the inputs below will work as written.
Retention moves the answer most
Change only the years in the default business and the value moves like this.
One more year of retention adds $2,025 with referrals, which is the cost of a text message and a courtesy call. A customer who books a fourth visit each year adds $450 × 4 years × 1.5 = $2,700 over the same four years, and a maintenance plan (Chapter 25) is the direct way to get that visit.
Set the spend ceiling on profit
Revenue is not what you keep, so budget against gross profit. Take the $8,100 and apply a 40 percent gross margin, the same default as Chapter 26. One customer yields $3,240 of gross profit over four years, or 10.8 to 1 on the $300 cost to win.
pick the return you need, then the ceiling follows
A ceiling gives you permission to outbid a competitor on a lead source they cannot afford, because a competitor who prices a customer at the first invoice cannot match an owner who prices one at the lifetime figure. Run the cohort number through the same napkin if you do not trust the formula.
A labeled example at another ticket size: a roofing company with a $9,000 average job, a customer who books once every five years (0.2 jobs a year) and stays ten years, with 0.5 referrals and a $900 cost to win. Revenue is $9,000 × 0.2 × 10 = $18,000, or $27,000 with referrals, which is 30 to 1. The 0.2 is a guess for this example, and your repeat rate may be lower. The neighbors see the dumpster and the crew, so the referral input matters a great deal here.
Keep customers from leaving
A customer who does not hear from you for a year forgets your name. Put the reminder on a calendar.
“Hi [first name], this is [your name] at [company]. It has been about a year since we serviced your [system]. Want me to hold a spot for the annual check this month? Reply YES and I’ll send times.”
“Hi [first name], it is [your name] at [company]. I was reviewing our customer list and your account came up. I wanted to make sure everything is working well at your place and that we did not drop the ball on something. Is there anything you need help with?”
Do not pitch on the second call. Ask, listen and fix. A customer who says the pump got loud and called someone else has told you the job you lost and the reason, and that sentence is worth more than the call. Chapter 13 covers customers who have already left.
Answer a price shopper with the lifetime number
A customer who asks for a discount on a $450 job is asking you to cut a number that is about 6 percent of their lifetime value ($450 ÷ $8,100). Hold the price on the job and offer the relationship.
“I can’t go lower on this job, because the price covers the part, the labor and the warranty. What I can do is put you on our annual plan, which takes 10 percent off every visit after this one and gets you priority scheduling. That saves you more than a discount on one job would.”
Some customers decline, and the ones who accept are worth far more than the discount costs you.
What owners say back
“My customers shop around every time.”
Then your years-they-stay number is low, and the cohort test now tells you how low. At 1.5 years the default business still earns $3,038 per customer with referrals, about ten times the $300 cost to win, so retention is the first thing to fix.
“I do not have the data to calculate this.”
Use the data you have: jobs per customer from the last 12 months, years from your five oldest customers, and a count of how 20 new customers heard about you. A rough number you made this week beats a precise one you never build.
If you pay someone to fix it
An agency that tells you it will lower your cost per lead should answer to cost per customer.
- Ask for new customers by source each month, not leads. A lead source is judged by how many leads became customers who came back.
- Ask whether they know your lifetime value or are budgeting from the first invoice. If they do not ask for your average job and years, they are using the first invoice.
- Ask for the budget ceiling in writing, with the return multiple they used to set it.
- Ask for a repeat-customer report at 12 months for every campaign they run.
- Walk away from any package priced so that the first invoice has to cover it.
Do this week
- Run the cohort test on customers whose first job was 36 to 48 months ago. About 40 minutes.
- Ask your last 20 new customers how they heard about you and divide referrals by 20. About 30 minutes spread over a week.
- Compute lifetime revenue and gross profit, and write the spend ceiling at a 5-to-1 return on a sticky note. About 10 minutes.
- Put the 11-month text on the calendar for next week’s completed jobs. About 15 minutes.
- Run your numbers at workbook.
servicelinepro. com/#drive, which takes about 5 minutes.
Seasonal Dip
The pool company sells $341,100 a year, which is $90,900 short of twelve months at its best month.
Leak family Jobs: fill the schedule
The pool company from Chapter 2 ran 80 jobs in July and August and 46 in February. Its best month brought $36,000 and its year $341,100, which is $90,900 less than twelve of its best months would have brought in. Its worst month, $20,700, is 57.5 percent of its best. Trucks, insurance, software and office payroll cost nearly the same in February as in July, so the dip is fixed costs making payments in months with little revenue behind them. The dip shows on no report as a line. It shows up as a low bank balance in February.
Draw the twelve monthly revenue figures
Run a Profit and Loss report for last calendar year with the columns split by month. Any accounting package has a monthly income report, and a field app that tracks revenue by month works too. You need twelve revenue figures.
Subtract each month from your best month and add the differences. For this company that sum is $90,900.
| Best month (July) | $36,000 |
| Best month × 12 | $432,000 |
| Actual year | $341,100 |
| Revenue below your best month | $90,900 a year |
The $90,900 is a ceiling. Winter demand for pool work will not match summer demand, and no marketing changes weather. The workbook counts a quarter of it as the target, which is $22,725 a year, or $1,894 on the monthly scoreboard in Chapter 30. Most of the added revenue lands in the months furthest below your peak and none in July or August. The workbook default is a landscaper with a $62,000 best month and a $428,000 year, $316,000 below twelve best months, so trades with frost or snow dip deeper.
Find the months that lose money
Revenue gaps matter because of what sits under them. Add up your fixed costs for a normal month (rent, truck payments, insurance, salaries you will not lay off, software), then compare them to each month’s gross profit, not revenue. Say fixed costs are $9,600 a month, as in Chapter 2, and gross margin is 40 percent.
March to November clear fixed costs by $24,120
The months short of fixed costs are the months your campaign has to reach first. The same sheet tells you what each one needs in added revenue, which is the shortfall divided by your margin (February’s $1,320 ÷ 0.40 = $3,300).
Measure your own lead time
Homeowners decide before the season arrives. Someone who wants an irrigation system thinks about it in February and calls in April, so a company that starts talking in April meets that homeowner next to every competitor.
Measure your own lead time in about 30 minutes. Do not use a book’s calendar.
- Export the inquiries you received before last year’s busy season, with the date each one first contacted you.
- Match the ones that became jobs in the first month of the season, and find the date each job was done.
- Compute the weeks between first contact and the job, then find the median.
- Start your pre-season push that many weeks plus 4 ahead of the date your phone starts ringing on its own.
If your median is 6 weeks, the push starts at 10 weeks. Map Pack work runs on a 90-day target, so map work starts about 13 weeks before the push (see Chapter 10).
“Hi [first name], this is [your name] at [company]. Spring schedules fill up fast. If you want us back for [service] this year, I’m holding early-booking slots through [date] with [offer]. Reply YES and I’ll send you available days.”
Pick an offer your margin supports. A priority slot costs nothing. A small discount for booking early costs something, and the cash arrives before the work, so February cash is worth more than May cash.
“Hi [first name], it is [your name] at [company]. You asked about [service] last year and we never got on your calendar. I’m building the spring schedule now and wanted to offer you first pick of dates before I open it up. Does [month] work?”
Price a February campaign
Say last year’s list holds 600 names, and you text all of them the early-booking script. Say 5 percent book. These numbers are an example.
| Past customers texted | 600 |
| Share who book | 5% |
| Jobs booked (600 × 5%) | 30 |
| Average job | $450 |
| Added February revenue | $13,500 |
| Gross profit at 40% | $5,400 |
The $5,400 covers the example’s February shortfall of $1,320, and the only cost is a few hours of an office person’s time. Chapter 13 explains how to build and clean the list. If response is 2 percent, you book 12 jobs and $5,400 of revenue, and the $2,160 of gross profit still covers February.
Sell work the cold months allow
Sell work that suits the cold months, using the crew and trucks you already pay for. Choose one off-season service per trade, price it and put your best tech on it.
| Trade | Peak work | Off-season work to sell |
|---|---|---|
| Landscaping | Installs, mowing, irrigation | Pruning, leaf cleanup, holiday lighting, snow removal where it snows |
| Pool | Openings, repairs, new builds | Equipment upgrades, heater installs, leak detection |
| HVAC | Cooling repairs and installs | Heating tune-ups, indoor air quality work, duct sealing |
| Roofing | Storm and replacement work | Inspections, gutter work, interior repairs |
| Fence and deck | New builds | Staining, sealing, repairs, pre-season quotes |
| Tree | Removal and trimming | Storm cleanup, lot clearing, firewood |
| Cleaning | Move-outs, spring cleaning | Post-holiday cleans, commercial contracts |
A plan that bills monthly takes the dip out of the revenue line (Chapter 25). A $35 plan with 120 members brings $4,200 on the first of every month in January and in July. Annual prepay pulls cash earlier, since a customer who pays for the year in March gives you twelve months of revenue before the work.
“You can pay month to month, or pay for the year up front and I’ll take 10 percent off.”
The 10 percent is an example, so use a discount your margin from Chapter 26 can afford. Cross-train techs on off-season work as well, since a tech who does only one thing costs the same in February and earns nothing.
Score the twelve months against one trigger
Keep those twelve rows on one page with a column for this year’s revenue and the difference, updated on the first of each month. Set a trigger before the season: each month’s target is last year’s revenue plus a quarter of that month’s gap to your best month, so January’s target is $22,500 + $3,375 = $25,875, and the line sits halfway between last year and the target, at $24,188. January at 52 jobs, $23,400, misses the line, so change the offer: a different service, a different list, or a different month.
What owners say back
“People don’t buy in winter.” Some do, and the ones who do are the same people who booked last year. Text them and find out.
“Winter is dead in my trade.” Your own twelve figures answer this. Even with a quarter filled, the example company is still $68,175 below its best month, and the goal is to win back a quarter of January’s gap ($3,375, or 7.5 jobs).
If you pay someone to fix it
A campaign vendor should show you work with dates before the season turns.
- Ask for a calendar with the landing page, tracking number and text sequence live at least 4 weeks before the season.
- Ask for calls and booked jobs by week against the same weeks last year.
- Ask whether the ad budget includes the agency’s fee, and what percent that is.
- Keep your list, your tracking numbers and your ad accounts in your name.
- Walk away from any plan that has no date for the first booked job.
Do this week
- Run a Profit and Loss by month for last year and write down all twelve figures. About 15 minutes.
- Subtract each month from your best month and add the gaps. That is your dip. About 10 minutes.
- Compare each month’s gross profit to your fixed costs and circle the months that fall short. About 20 minutes.
- Measure your lead time from last year’s inquiries and put the early-booking text on the calendar. About 40 minutes.
- Run your numbers at workbook.
servicelinepro. com/#valley, which takes about 5 minutes.
Maintenance Plans
A 120-member plan at $35 covers 9.3 percent of $45,000 in fixed costs, and it takes 1,286 members to cover all of it.
Leak family Margin: earn more on jobs you win
A company with $45,000 in monthly fixed costs and 120 members on a $35 plan collects $4,200 on the first of the month, which is 9.3 percent of what it owes. Covering the other 90.7 percent from plan revenue alone takes 1,286 members, a base most small trades companies never reach. The plan earns its place for a different reason, which is that every member brings a tech into the house twice a year, and the revenue arrives before the phone rings.
| Members on a plan | 120 |
| Plan price a month | $35 |
| Fixed costs a month | $45,000 |
| Plan revenue on the 1st (120 × $35) | $4,200 |
| Share of fixed costs covered ($4,200 ÷ $45,000) | 9.3% |
| Hole you start every month in | $40,800 |
| Members to cover all fixed costs ($45,000 ÷ $35) | 1,286 |
At 500 members you have covered more than a third of your fixed costs before the schedule opens, and a slow week no longer threatens payroll. If you have no plan today, your member count is zero and your hole is the whole $45,000.
Check that the plan earns money
A plan loses money if you give away too much. Add your cost for each benefit before you print a flyer. This is an example for an HVAC plan at $35 a month, with two tune-ups, priority scheduling, a repair discount and no trip fee.
Your cost to deliver is $299, and the plan leaves $121 per member before any repair discount. The tune-up has a second job, because it puts a tech in front of the equipment twice a year, where they find work (Chapter 22). A member who skips a tune-up saves you about $105 of tech time and parts, and receives less than they paid for, so book the visit for them.
- Fixed costs. Profit and Loss, last six months. Add rent, salaries for people you would not lay off, truck payments, insurance, software and utilities. Leave out materials and hourly labor that flex with job count.
- Members. Your field app, which may call them service plans, memberships or recurring jobs. Count the active ones.
- Plan price. Plan revenue from last month divided by members.
Price the plan from your costs
- Add your cost to deliver the benefits for one member for a year (tech time, parts, waived fees). The example comes to $299.
- Add the margin you want on the plan itself. Say $120 per member per year.
- Divide the total by 12 and round to a clean price. $419 divided by 12 is $34.92, so $35.
Compare the yearly price to a repair. A $420 plan beside a $450 average job is easy to defend, because a customer can see the plan costs less than one repair. Keep one plan, or two tiers at most, since five tiers confuse customers and your office. Raise plan prices on the same schedule as your regular prices (Chapter 26).
| Trade | Plan contents |
|---|---|
| HVAC | Two tune-ups, priority scheduling, repair discount |
| Pool | Weekly or biweekly service, discounted repairs, priority parts |
| Roofing | Annual inspection after storm season, minor repairs included |
| Fence and deck | Annual wash and seal, spot repairs |
| Tree | Annual pruning visit, storm priority |
| Garage door | Annual spring and track tune-up, priority repair |
| Pest control | Quarterly treatment, free re-service between visits |
| Cleaning | Monthly or biweekly clean at a lower rate than one-time |
Offer the plan at four moments
Offer it on every job and record the answer, because your sign-up rate is unknown until you ask.
Offer it first on the phone, after the appointment is set.
“You’re all set for Thursday between 9 and 11. We also have a maintenance plan. It’s $35 a month, and it covers two tune-ups a year, priority scheduling and no trip fee. If you sign up before the visit, I can credit this service call against your first tune-up. Want me to add it?”
Offer it again at the end of a repair, with the tablet in hand.
“Everything’s running now. Here’s what I’d recommend so you don’t end up with another call like this one. Our plan sends me out twice a year to catch these problems early. It’s $35 a month and you skip the trip fee on any call. I can sign you up on the tablet right now. It takes about a minute.”
“The way I’d look at it is that you paid $89 for me to come out today. On the plan that trip is free, and one waived trip covers more than two months of the plan. You can cancel any time. Want me to set it up?”
The second script uses a cost the customer paid minutes ago, so say it in the first ten minutes after the invoice. Then add the plan as a line at the bottom of every invoice with a one-tap accept link, and send a text the afternoon after the visit.
“Hi [first name], thanks for having us out today. If you’d like to add the maintenance plan we talked about, tap here: [link]. It’s $35 a month, cancel any time, and your first tune-up is scheduled for [month].”
Thirty days before each anniversary, book the next tune-up for the member with this call or text.
“Hi [first name], your plan renews on [date]. Your next tune-up is due [month], and I’ve got a spot open on [day]. Want me to book it?”
A member who gets scheduled has a reason to stay, and one who hears nothing for eleven months starts to ask why they pay.
Test whether members are worth more
Pull the invoices of your plan members and non-members for the last 12 months and compare three numbers: average revenue per customer, share who left a Google review, and share who bought a repair. If members spend more, you can price the plan low enough to win them. If they spend the same, the plan needs better benefits or it is going to the wrong customers. Chapter 23 shows the value of a customer who stays four years, and a plan member is the cleanest version of that customer, because the plan itself is the reason to stay.
Bill by card and ask why they cancel
A plan that bills by hand dies. Put the card on file once and bill monthly through your field app or a payment processor. Offer an annual option at a small discount, because prepay brings cash in early (Chapter 24 shows how that fills the winter dip), and keep the monthly option at the full price.
Track members at the start of the month, new members and members who cancelled. A plan that adds 10 and loses 8 is barely growing. Ask every member who leaves one question and write down the answer.
“I’m sorry to see you go, and I’ll cancel it today. Can I ask what made you decide? I’m asking so we can fix it if it’s something we did.”
Do not argue. If the answer is price, note the price. If the tune-up never happened, you have a scheduling leak, which is cheaper to fix than a lost member. Count the reasons for 90 days and fix the top one.
What owners say back
“My office cannot handle another system.”
Start with the field app you have: one plan, one price, one billing cycle, one person with a sign-up number to hit. At 120 members the work is a few hours a month.
“I tried a plan and nobody bought it.”
Ask who offered it. If your techs never did, you tested nothing. Give each tech the scripts above and a bonus per sign-up, as Chapter 22 does for add-ons, and count for 30 days.
“Customers will not pay monthly for something they might not use.”
Offer a plan whose benefits they feel: priority scheduling in a heat wave and a waived trip fee. Make the first tune-up land inside the first 60 days so they see value early.
If you pay someone to fix it
A vendor that builds the plan page or the billing should hand you numbers you can check.
- Ask to see the plan economics with your own costs before the price is set.
- Ask for members at the start of each month, new members and cancellations, with reasons.
- Make sure cards and customer records sit in an account in your name.
- Ask how a customer cancels and who sees the request, and test it yourself.
- Walk away from a package that counts sign-up links sent and not members billed.
Do this week
- Add up your monthly fixed costs from the last six months of your Profit and Loss. About 20 minutes.
- Count your current members, multiply by the plan price, and subtract from fixed costs to find your hole. About 10 minutes.
- Write a one-page plan with a price, three benefits and your cost for each, and make sure it earns money. About 45 minutes.
- Give techs and the office the scripts above and set a flat bonus for each sign-up. About 20 minutes.
- Run your numbers at workbook.
servicelinepro. com/#first, which takes about 5 minutes.
Price Raise Math
A 10 percent raise on a 40 percent margin lets you lose one customer in five and still earn what you earn today.
Leak family Margin: earn more on jobs you win
A 10 percent price raise on a 40 percent gross margin lets you lose one customer in five and still earn exactly what you earn today.
Costs went up across tech wages, parts, fuel, insurance and the truck payment, and your average job stayed at $450 because you are afraid of one phone call from a customer who says the price is higher than last year.
How many customers you can lose
Gross margin is revenue minus job costs (materials, tech labor, drive time), divided by revenue. QuickBooks shows it as Gross Profit on the profit and loss report, and you divide that line by Total Income.
The break-even customer loss is the raise divided by your margin plus the raise.
At a 40 percent margin with a 10 percent raise, you need 80 percent of your customers to stay. You can lose one in five. A 30 percent margin lets you lose a quarter of them and still earn the same.
Now work it on the pool company from Chapter 2: 80 jobs at $450 with a 40 percent margin.
You keep the same profit and run 16 fewer jobs, one in five. Now say you lose five customers instead of sixteen.
That is $2,475 more profit a month (75 x $225 - $14,400), or $29,700 a year, with five fewer jobs on the schedule.
Charge for the payment method
A price raise is one lever. The other is the cost of getting paid.
At my painting company I run a three-tier payment structure. Pay by check or bank transfer and the price comes down 8 percent. Pay by card and it comes down 4 percent. A card payment plan of 50, 40 and 10 percent on jobs above $5,000 carries a 3 percent surcharge. Card surcharges are capped or banned in some states, so check yours before you add the 3 percent.
The card fee is a real cost, and a customer who pays early is worth money. The tiers keep the list price high and let the customer choose a way to pay that costs you less. If you will not move your headline price, move the payment price.
Check what your processor charges you, including the percentage, the fixed fee and the chargeback reserve. Then set the list price so the cheapest tier still pays you what the cost napkin below demands. If you need $466.20 a job, list it at $506.74. A check payer pays $466.20 after 8 percent off. A card payer pays $486.47 after 4 percent off, and you net $471.88 after a 3 percent fee.
Size the raise from your costs
A raise that covers your cost increase is a floor. Run the cost side of the math once a year, right after your insurance renews and your supplier prices change.
Say your job cost per $450 job was $270 and rose 6 percent.
Two numbers fall out of that. A 3.6 percent raise holds your dollar profit per job, and a 6 percent raise holds your margin percentage. Anything under 3.6 percent means you earn less per job than last year. Take the 6 percent, then add the margin you want to rebuild on top and check the result against the break-even table above.
Rank customers by gross profit per month
You do not lose customers at random. The ones likely to leave after a raise shopped on price, called twice, paid late and argued about a line item. Rank your twenty largest accounts by gross profit per month. The raise adds $45 of gross profit to every job you keep, so a customer who leaves takes a slice of that gain with them.
Gross profit is revenue minus materials and direct labor. Take the revenue from the last 12 months, subtract those costs, divide by 12, and write the monthly gross profit next to the name. Then mark the accounts that pay late, cancel late, dispute an invoice or call twice about the same job. A schedule of 80 jobs gains 80 x $45 = $3,600 a month, so an account under $225 a month (5 jobs of gain) is one you can lose and stay ahead. An account above $675 a month (15 jobs x $45) is one to win back before you raise anyone.
Price increase letter
Send the letter to existing customers 30 days before the new price starts. Check your service agreement first, because some contracts require notice in writing or set a notice period. Keep the letter short. Do not apologize and do not hide the new price.
Subject: Our prices change on [date]
Dear [first name],
Thank you for trusting [company] with your [pool, home, equipment]. We have served customers in [area] since [year], and we plan to keep doing that.
Starting [date], our price for [service] will change from $[old price] to $[new price]. This applies to [all new jobs / your next visit / your monthly plan] on or after that date.
The cost of doing this work has gone up, including [parts and materials / fuel / insurance / wages for the technicians who show up on time]. We would rather adjust our price than cut back on the service you expect.
What stays the same: your technician, your schedule, and our guarantee on the work.
If you would like to keep your current price, you can [prepay for the year / sign up for the annual maintenance plan] before [date]. You can reach us at [phone] or reply to this email and we will set it up.
If you have a question about the change, call me directly at [phone]. I will pick up or call you back the same day.
Thank you for being our customer.
[Your name]
Owner, [company]
Each line does a job: the relationship, the new price and date, the reason, what stays the same, the way to keep the old price, and your number.
Leave three things out. Do not write “unfortunately” or “we regret.” Do not promise never to raise prices again. Do not offer a discount in the same letter.
Answering the calls that follow
Some customers will call. Treat those calls as routine and have your office answer within one minute. Three scripts cover most of what comes in.
“I understand, and I appreciate you telling me. The new price starts on [date] and reflects what it costs us to do the work. If you would like to keep the current rate, I can put you on the annual plan today, and the old price holds for twelve months. Would that work for you?”
“I understand. You should get what is right for you. If you decide to stay with us, I am glad to help. If you go elsewhere, I would ask you to compare what is included, because our price covers [guarantee, same technician, response time]. I will note your account so you can come back any time.”
Do not chase a customer who has decided. Thank them and let them go.
“Our price covers [what is included]. Here is what happens if something goes wrong after the job: [guarantee]. Some customers pick the lowest price and some pick the company that comes back. Which matters more to you?”
Apply the raise in three passes
New customers first. Quote the new price today.
Existing customers at their next visit or renewal. Send the letter, then apply the new price from the next job.
Recurring customers on plans. Give 30 days and a lock-in offer for annual prepay.
Check your close rate on estimates before and after the new price, so your next raise starts from a measured number.
If you pay someone to fix it
- Ask for the break-even calculation in writing, with your margin and the raise plugged in.
- Ask for a written notice plan and the date each group of customers gets the letter.
- Ask to see the letter they will send before it goes out, and keep the right to change it.
- Ask what happens to your price if a customer says no. The answer should be a number.
- Reject a vendor who cannot name your margin percentage or who quotes a raise with no cost basis behind it.
Do this week
- Pull your gross margin from the last 12 months of your profit and loss, one line, one division (30 minutes).
- Write raise ÷ (margin + raise) for a 5, 10 and 15 percent raise, then read the break-even customer loss (20 minutes).
- Rank your twenty largest accounts by gross profit per month and mark the ones you would be glad to lose (60 minutes).
- Fill in the letter, check your service agreements for notice rules, and send it 30 days before the new price starts (45 minutes).
- Run your numbers at workbook.
servicelinepro. com/#raise, which takes about 10 minutes.
Low-Margin Job Types
A job type that takes 10 percent of your revenue and returns 2 percent of your profit is priced wrong.
Leak family Margin: earn more on jobs you win
Sort four job types by profit instead of revenue and the business you thought you had disappears. One line that looked like a third of the schedule turns out to be 2 percent of what you earn. That line is priced wrong, and more leads do not change it. Find it, price it, then fix it or stop selling it.
Build the margin table
Margin here means what is left after materials, tech labor and drive time, divided by revenue. Three figures per job type: revenue, direct cost and margin.
The workbook takes a list of job types with monthly revenue and margin. Its defaults are a labeled example for a pool company.
| Job type | Revenue a month | Margin | Profit a month | Share of revenue | Share of profit |
|---|---|---|---|---|---|
| Weekly service | $18,000 | 45% | $8,100 | 45% | 49.9% |
| Repairs | $12,000 | 55% | $6,600 | 30% | 40.7% |
| Green-to-clean | $6,000 | 20% | $1,200 | 15% | 7.4% |
| One-time cleans | $4,000 | 8% | $320 | 10% | 2.0% |
| Total | $40,000 | 40.6% | $16,220 | 100% | 100% |
The last two columns are where the leak shows. One-time cleans take 10 percent of your revenue and deliver 2 percent of your profit. Green-to-clean takes 15 percent of revenue and delivers 7.4 percent. A quarter of your revenue produces under a tenth of your profit.
Your blended margin is the total profit divided by total revenue, which in this example is 40.6 percent. Every job type above the blend funds the ones below it. That is why a business can look healthy on the profit and loss report while one job type quietly funds the rest.
- Revenue by job type. The sales by product or service report in your accounting software, last 90 days. If you track by class, use the profit and loss report by class. Field apps (Jobber, Housecall Pro, ServiceTitan) let you filter completed jobs by job type and total the invoices.
- Materials. Bills and expenses coded to the job or the job type. If your techs buy parts on a company card, tag the receipts to a job.
- Tech labor. Hours from your field app’s time tracking, times the loaded hourly cost of that tech (wage plus payroll tax and insurance). Include drive time, because the tech is paid while they drive.
- Margin. (Revenue minus materials minus labor) divided by revenue.
Use 90 days so one odd month does not distort the numbers. A sample of 10 jobs per type takes an afternoon and beats no table at all.
Profit per crew hour
Margin percent tells you whether a job type pays. Profit per hour tells you how well it uses the crew you pay for every week. The second number is the one that decides whether a job type deserves a slot on the schedule.
Take a painting company that also washes exteriors. These are labeled examples.
| Job type | Jobs a month | Average price | Profit per job | Hours per job with drive | Profit per crew hour |
|---|---|---|---|---|---|
| Interior repaint | 20 | $2,400 | $1,080 | 12 | $90 |
| Exterior repaint | 8 | $4,800 | $2,016 | 28 | $72 |
| Deck refinishing | 10 | $1,600 | $352 | 11 | $32 |
| Exterior pressure wash | 10 | $300 | $36 | 3 | $12 |
A pressure wash earns $12 for every hour a crew spends on it, and an interior repaint earns $90. The truck, the tech and the insurance cost the same hour either way, and every hour spent on the wash is an hour you could have spent on a repaint if a repaint was waiting.
Sort this table by profit per hour and the biggest revenue line is often not the biggest earner. In the pool example above, repairs at $12,000 a month beat weekly service at $18,000.
Three moves for a low-margin job type
The workbook fix is one line: reprice it, bundle it into something profitable, or stop selling it. Try them in that order.
Reprice it
Work out the price that gets the job to the margin you want. The formula is cost divided by one minus your target margin.
The deck job comes to $1,782 with $535 of profit, and that is $48.60 an hour over 11 hours. The wash comes to $377 with $113 of profit, or $37.71 an hour over three. Chapter 26 gives the break-even customer loss for a raise of any size, and a job at a 12 percent margin has plenty of room, because the profit you give up is small.
Ask your office whether these customers compare prices or call in a hurry. A deck job booked in a panic has room for 12 percent. A wash booked off a coupon does not.
Bundle it
Some low-margin work earns its place by bringing in better work. Put the low-margin job inside a package with a high-margin one, and check the bundle with a number.
In the painting example, eight deck refinishing jobs a month turn into three interior repaint bookings within 90 days. The decks themselves are worth $352 each.
If your conversion runs at that rate, the deck job is an acquisition channel and you should sell more of them. If you track eight deck jobs and one repaint booking in a year, it is a low-margin sale and you price it like one.
The way to find out is a tag. Mark each low-margin job in your field app and check the tag against the higher-margin bookings every quarter.
“The deck is finished and the boards will hold another season or two. Most of my clients who redo a deck end up repainting the rooms that open onto it, and that work pays for the deck at a much better rate for both of us. I can hold a slot for you next month and price it so the two together cost less than booking them apart.”
Stop selling it
Some job types still lose money after a reprice, or the customers walk away from the new price. A job type that will not carry a price that pays should come off the list.
One thing to watch: dropping a job type does not drop your fixed costs. You lose that job’s profit and keep every dollar of overhead. The move pays only if you fill the freed hours with better work.
| Pressure wash jobs a month | 10 |
| Crew hours used (10 x 3) | 30 |
| Profit lost (10 x $36) | $360 |
| Profit per crew hour on interior repaint | $90 |
| 30 repaint hours | $2,700, if 30 hours of repaint work are there to sell |
The $2,700 holds only when repaint work is available to sell. If the route is full, the freed hours sit in the yard and nothing changes.
“Hi [first name], we have decided to stop offering [service] so we can focus on [our main services]. If you need help finding another provider, I am happy to recommend someone. If you would like to be on our regular route instead, I can get you a spot.”
Job types to test in each trade
Every trade has a few job types that feel like work and quietly lose money. Test these against your own table.
| Trade | Job types to test |
|---|---|
| Pool | One-time cleans, green-to-clean, far-away weekly stops |
| HVAC | Installs discounted to win the job, small repair calls with long drives |
| Painting | Deck refinishing, pressure washing, small touch-up visits |
| Roofing | Small repair calls, insurance work at fixed pricing |
| Fence and deck | Small repairs, custom one-off designs |
| Tree | Small trims in far-off zip codes, jobs with difficult access |
| Cleaning | Deep cleans priced as standard cleans, one-time move-outs |
| Landscaping | Irrigation repairs, seasonal cleanups, small mulch jobs |
| Pressure washing | Roof washes sold at a flat rate, add-on washes on paint jobs |
| Junk removal | Loads under a full truck, single-item pickups |
| Electrical | Service calls billed at a flat rate, small additions priced to close |
Put each of your job types through the same table, including the ones you believe are safe.
Costs that hide inside the table
A margin table lies when costs sit in the wrong place. Check four things before you act on it.
- Drive time on small jobs. A $150 job 40 minutes away carries more drive than a $150 job next door. Chapter 19 prices drive time.
- Callbacks. Rework on a job type eats its margin. Count callbacks by type.
- Warranty work. Install jobs with long warranties carry future cost your table does not show.
- Payment fees. Card fees come off the top. A 3 percent fee on an 8 percent job takes more than a third of the margin.
Point marketing at the work that pays
Once you know which job types earn the most per crew hour, your marketing should lead with them. The two that pay best per hour go first on your website, first in the services you list on your Google Business Profile, and first in the review request you send. Chapter 22 covers add-ons, which raise the profit on the job you already won.
Do this in one pass, on a single afternoon. Rewrite the first line of your service page so it names the job type you want more of. Update the services list on your Google profile to match. Then change the review request text so it asks about that job type by name. A review that says “rebuilt my deck” tells a stranger what you do, and a review that says “painted my house” does not, unless painting is the work you want.
The reviews you already have work the same way. Pull your last 20 five-star reviews, count how many mention your best-paying job type, and compare that to the share of your revenue that job type brings. A gap there is a reason to send better-targeted review requests starting now.
If you pay someone to fix it
Ask for a margin table by job type with revenue, direct cost and margin on every line. Ask how they handle drive time and callbacks, the two costs most tables leave out. Ask for a profit per crew hour version, because margin percent alone hides the labor waste. Ask for a written plan for the lowest-margin job type, repriced, bundled or withdrawn, with a date. Reject a vendor who reports revenue by job type and cannot report profit by job type.
Do this week
- Pull revenue by job type for the last 90 days from QuickBooks or your field app (45 minutes).
- For each type, estimate materials, labor hours and drive time, then write margin and profit per crew hour (60 minutes).
- Mark the lowest-margin type and price it at cost divided by one minus 30 percent, then quote the new price to the next five customers (45 minutes).
- Tag every one-time or entry-level job so you can count how many convert to recurring work (15 minutes to set up).
- Run your numbers at workbook.
servicelinepro. com/#fire, which takes about 10 minutes.
Risk and exit
The workbook flags any lead source that brings in more than a third of revenue, and at an example sale multiple of 3 each $1 of yearly profit adds $3 to the price.
- 28Lead Source Concentration
- 29Sale Price Multiple
Lead Source Concentration
A third of your revenue from one source means that source sets your prices.
One month a paid lead channel produced 106 phone leads on $15,000 of spend. The next month, after the platform stopped sending message leads, the same channel produced about 40 calls. That is a 62 percent drop in a month, from a change the owner did not make and could not vote on.
A single source can be a person (one builder or manager), a platform (a paid lead service or a social network) or a habit (referrals and repeat customers). Any of them can be a fine source, and the danger starts when one holds more than a third of your revenue and nothing sits behind it.
Stress test losing $24,000 a month from one source
Put your monthly revenue beside the share each source brings. The numbers below are the workbook’s default example.
Referrals bring $28,000 a month in this example, which is $336,000 a year. Two sources, referrals and the builder, carry 65 percent of the revenue, which is $52,000 a month on two relationships with people. The workbook flags any source above 33 percent, and this example crosses the line by two points.
Now stress it. Ask what happens if the builder partner stops sending work.
Twenty-four thousand dollars a month against fixed costs that stay where they were. Trucks, insurance, the office and the loan payment do not shrink with the work.
Run the same test on your top two sources. If losing either one would push you into accepting a price cut, you have found the leak.
Tally your sources for 90 days
Build a tally of where your work comes from that you can defend.
For the next 90 days, ask every new customer how they found you, write the answer in your CRM or field app, and weight it by revenue. Count dollars. A builder partner may send fewer jobs than the map does, and each one can be worth three times as much.
At the end of the first call: “Before I let you go, how did you find us?”
If the answer is “Google”: “Was that on the map, with the reviews, or did you click an ad at the top?”
If the answer is “a friend”: “Who should I thank?”
If the answer is “I saw your truck”: “Where did you see it?”
Each follow-up turns a vague answer into a source you can act on. “Google” is three different sources, the map, the paid ad and organic search. “A friend” is a name, and the name is a referral you can thank. Ask the question as you close the call, and write the answer down before you hang up.
Track by phone number as well
Asking is the minimum. Call tracking is better, because customers misremember what they did. Give each source its own number, one on the website, one on the Google profile, one on each ad and one on the truck. Your call tracking report then shows the count by number, with no human error. If you cannot afford that yet, use the question and check it against the call log.
Put the numbers in a table
Build a four column table in a spreadsheet: source, calls, jobs booked, revenue. Fill it each Friday for 90 days. At the end, total the revenue column and divide each source by the total. That gives you your own version of the example above.
Two traps catch people on the first pass. The first is the “other” bucket. If more than 15 percent of your revenue lands in “other” or “don’t know,” your tracking is the leak. Fix that before you draw conclusions from it.
The second is customers who come from two places. Someone saw your truck, searched your name on Google, then called. Credit the last thing they did and the first thing they remember, and log both. The tally needs to show the biggest bar.
Count the leads in your own log before you trust the platform
Run the test over one month, because platform reports count leads and a lead that nobody answers is worth nothing. Pull the platform’s reported lead count for the channel for the month. Then pull your own count for the same month from the call log and the form inbox, using the tracking number, the landing page or the caller’s first words. Write both numbers side by side with the spend.
If your count is close to the platform’s count, the channel is feeding you leads and you have a follow-up problem to fix in Chapter 6. If your count is half the platform’s count or less, the platform is reporting leads you never received, and you judge the channel on your count. Write the gap in dollars: a $500 month that produced 40 reported leads and 18 real calls is a $500 month that produced 18 calls. Set your bids on your count.
Check the spend against the cap too. One home-services account I manage had a $2,100 weekly cap on its local-services ads. On the 16th of the month it had spent about $500, and the owner told me they had never come close to the target budget. The cap allowed $300 a day, or $4,800 over those 16 days, so the account used about 10 percent of it ($500 / $4,800). Compare month-to-date spend with the daily cap times the days elapsed. When spend sits that far below the line, raising the cap buys nothing.
Build the second and third source
| Source | Time to first calls | Pool company example (40 open slots, $180 contribution a job) | What to watch |
|---|---|---|---|
| Past customers | Days | A 400-name wave at 5 percent books 20 jobs, half the open slots (Chapter 13) | Bookings divided by names texted |
| Paid ads (Google, Local Services, Meta) | Can produce calls in week one | Pays only while cost per closed job stays under $180 | Cost per closed job (Chapter 17) |
| Google Maps | Weeks to months (Chapter 10) | Calls fill the other 20 slots | Calls from the profile, map grid (Chapters 9 and 10) |
| Referrals | Weeks | Each referred job leaves $180 | Referrals per 10 happy customers (Chapter 14) |
| Partners (builders, managers, adjusters) | Months, built on relationships | One partner sending 10 jobs a month fills a quarter of the 40 slots | Share of revenue per partner |
| Organic search and your website | 6 to 12 months for authority | Adds calls to the same 40 slots | Calls and forms by page |
Pick the cheapest one first. For many owners that is the list of past customers, because you already own it and it needs no ad budget. The pool company owns 1,200 names, so its first wave of 400 books 20 jobs with no ad spend. Pick a second one that takes longer and pays longer, usually the map.
Set a ceiling
Write a rule on a card and tape it to the dispatch board: no source above one-third of revenue. When a source crosses it, you keep the work and add effort to the weakest source until the share comes back down.
Start small and measure
Give a new source a trial budget of time or money you can afford to lose. Run it 60 to 90 days. Judge it by revenue on your tally. A source that earns 10 percent of revenue after 90 days has done its job.
When one partner is most of your work
Some owners are concentrated by choice. A remodeler builds for one general contractor. A roofer works for a handful of insurance agencies. The revenue is steady and the relationship pays well, and the arrangement can last for years.
Protect it with three habits. Write down the terms. Payment days, pricing, scope and what happens if either side ends it. A partner who sends 30 percent of your work should sign a one page agreement.
Sell to the partner’s customers directly. Put your name on the work, leave a card, ask for the review. Over time some of them become your customers.
Keep a floor. Decide the lowest margin you will accept from the partner and hold it. If the builder wants 10 percent off, you need to know before the call what your answer is.
“I want to keep sending crews to your jobs. I can hold the current price through the end of the year. If you need a lower number, I can take on more jobs per month in exchange. What volume are you planning for next quarter?”
The script trades price for volume, in writing. It also tells you whether the partner can deliver.
What owners say back
“Referrals are my best source. Why would I change?” Keep them. Referrals are cheap, trusted work, and you still need two other sources because referrals depend on a person’s memory and a person’s mood. Run the stress test on referrals anyway, and count a builder who sends you work as a partner on its own line.
“My builder has been with me ten years.” Then you have a lot to lose. Ten years of volume built your crew and your fixed costs around that builder. Run the stress test above and write the monthly number down where you can see it. At $80,000 a month with the builder at 30 percent, the number is $24,000.
“I do not have money for a second source.” Past customers cost a text message and reviews cost a habit, so start with the free ones and measure the revenue on your tally at 90 days. Chapter 13 shows the text and Chapter 11 shows the review pace.
If you pay someone to fix it
- Ask for the source tally by revenue.
- Ask for call tracking on every number they touch, with the recordings available to you.
- Ask which sources they own and which they do not, and what each one costs to run.
- Ask for the second source to be live and measured at 90 days.
- Reject a vendor who reports a channel as working when no number in the call log moved.
Do this week
- Start the tally. Ask every new customer how they found you and log it with the revenue (15 minutes to set up).
- Pull last quarter’s revenue by source from your CRM, call tracking or invoices, and mark any source above one-third (45 minutes).
- Run the stress test on your top two sources and write down the monthly dollar loss for each (20 minutes).
- Pick the cheapest second source and set the first action for Monday (10 minutes).
- Run your numbers at workbook.
servicelinepro. com/#pipe, which takes about 10 minutes.
Sale Price Multiple
Every dollar of yearly profit you add is worth three more the day you sell.
A leak that costs a service company $5,000 a month in profit costs $60,000 a year in profit and $180,000 at a multiple of 3, and it keeps costing for every year you spend putting up with it.
A buyer prices the company on the earnings in the books, so the profit you lose this year is the profit a buyer will not pay for. The same arithmetic applies to a loan application, to a partner buying in, and to what your family inherits if something happens to you.
This chapter turns that number into a price, shows how plugging the leaks in this book raises the price, and tells you where to get a real valuation, because I am not going to give you one.
What a buyer pays for
Small service businesses are usually priced as a multiple of one earnings figure. The figure is called seller’s discretionary earnings, or SDE. It is the total benefit one owner takes from the company in a year: the profit the business makes plus what the owner pays himself.
The multiple is the number a buyer applies to SDE to reach a price. A multiple of 3 means the price is three years of SDE. The multiple depends on the trade, the size, the market, the buyer and the deal. It changes over time, and it differs between a pool company, a roofer and an HVAC contractor.
I do not know your multiple, and nobody reading a book does. The workbook uses 3 as an example number so the math is easy to follow, and I use it here for the same reason. Treat it as a placeholder and replace it with a real one before you plan anything.
Turn it around. A leak that costs $5,000 a month in profit costs $60,000 a year, and it costs $180,000 in sale price at a multiple of 3.
Find your SDE
Pull this from your books with your accountant, or from the last three years of tax returns. Start with a line by line build.
| Net income on the P&L | $120,000 |
| Owner salary and payroll taxes paid to you | $140,000 |
| Owner perks run through the company (truck, phone, insurance) | $18,000 |
| Depreciation | $22,000 |
| One-time costs (a lawsuit, a move) | $0 |
| SDE | $300,000 |
Those numbers are made up and chosen so the total matches the workbook, and the method behind them is real. Start from net income. Add back what the owner pays himself. Add back personal costs that run through the company. Add back depreciation and interest. Add back one-time costs that will not repeat. Subtract anything the company ought to pay and does not, such as a fair wage for a family member who works for you at less than market.
- Net income. The bottom line of the profit and loss report in QuickBooks for the last 12 months. Run it for each of the last three years as well.
- Owner pay. Your salary or draws, plus the employer payroll taxes on the salary. Your accountant has this.
- Perks. Truck payments, fuel, phone, insurance and travel that the company pays and would not exist without you. Count only what is real and documented.
- Depreciation and interest. On the profit and loss report or the tax return.
- One-time items. Anything a buyer would see once and not again. Keep a receipt for each.
- Fair wage check. If you do not draw a market salary for the job you do, the buyer will subtract one. Include that hit in the number.
Tell your accountant what you are doing. Ask which of your numbers a buyer would accept and which they would argue. Better to hear that now than in a buyer’s meeting.
Get a real multiple
Take the example 3 out of your head. Three people can tell you the real multiple for your trade and your size.
A business broker who sells companies in your trade. Ask for sold deals in the last two years, the multiple of SDE each sold for, the size of each business, and what was in the deal besides cash. A broker who cannot name any sold deals in your trade is the wrong broker.
A CPA or valuation analyst who does business valuations. This costs money, and it produces a document a bank, a partner or a court will accept. If you want a number you can stand on, buy this.
An owner in your trade who has sold. Buy them lunch. Ask what they were offered, what they got and what they wish they had done two years earlier.
“How many companies in my trade have you sold in the last two years?”
“What multiple of SDE did they sell for, and how big were they?”
“What moved the multiple up or down in those deals?”
“How much of the price was cash at closing, and how much was a seller note or an earnout?”
“What would you tell a company my size to fix before it goes to market?”
Listen to that last answer closely. The broker has seen what buyers reject, and the answer is your work list for the next two years.
Do not buy a number from a website calculator and put it in your plan. A calculator does not know your trade, your market or your books.
Turn leaks into profit before you multiply
Most of the chapters in this book price leaks in revenue. Chapter 5, for example, prices missed calls in monthly revenue. The sale worksheet asks for profit. These are different numbers, and mixing them produces a sale price nobody will pay.
Convert with your own margin on the added work. Say a fixed leak brings in $150,000 more revenue a year and 40 cents of every added dollar reaches profit after materials, labor and the cost of getting the job. That is $60,000 of added profit, which is the example above. If your own flow-through is 25 percent, the added profit is $37,500. Use your own.
Then count carefully. The leaks overlap, and Chapter 2 explains why. A missed call and a slow callback can be the same lost customer. Add one leak’s profit to the list only after the fix is working. A projected number is a guess. A number in 12 months of your books is a fact.
A buyer prices the earnings in the last 12 months of your books and the last two or three years of tax returns. A fix that started last month shows up in the sale price after it shows up in the books. If you plan to sell in three years, start now, because the fixes need time to show.
What raises the multiple
The workbook gives the fix in a line: recurring revenue, clean books, owner out of the truck. In my view those three are right, and a fourth belongs with them. Ask your broker whether they match what buyers in your trade say.
Recurring revenue. Maintenance plans, service agreements and scheduled routes that renew without a sales call (Chapter 25). A buyer values work that comes back without effort.
Clean books. A buyer will ask for the profit and loss and the tax returns, and they must match. Keep personal expenses out of the company account. Close the books every month. Job cost your work so you know which jobs earn money (Chapter 27). If your accountant needs three weeks to answer a buyer’s question, the buyer notices.
Owner out of the truck. Run the vacation test. Take two weeks off with the phone off. If the business grosses less than it normally would, or if a customer cannot get a decision, the company depends on you. Chapter 20 starts the hand-off: the phone, the schedule, the paperwork. A buyer who sees every sale running through you has to hire a replacement for you, and prices that in.
No concentration. A company that gets a third of its work from one builder or one platform has a buyer asking what happens if that goes away (Chapter 28). Spread the sources and you remove the question.
Add to those anything a buyer can take over without you. The website and the Google profile belong to the company. The phone numbers are in the company’s name. The customer list lives in a CRM. Reviews and map rankings take time to build, and a buyer cannot make them in a month.
Documented systems
A one page checklist for each recurring task is cheap and valuable. How to answer the phone, how to quote, how to close a job, how to ask for a review. A buyer who reads the pages sees a company that does not depend on any person remembering. Your next hire reads the same pages.
When to start
Start two to three years before you want to sell. That gives the books time to show the fixes and gives you time to hire the people who replace you. If a health problem, a partner dispute or a change in the market forces a sale sooner, the work you did still counts.
If you never sell, the same work raises your profit now, which is a good reason to start.
The number of months you have changes what you do first. With more than two years, start on the leak with the biggest dollars, because the fix will show in the books before you would have sold anyway. With a year or less, start on the leak you can close in 30 days, and get the accountant working on the SDE build this month. The books have to match the tax returns before a buyer sees them, and a last-minute cleanup of two years of records takes longer than most owners expect.
What owners say back
“I am not selling.” Run the worksheet anyway. The number is also what a bank sees, what a partner sees and what your family inherits.
“My company is worth more than 3 times what I make.” It might be. The 3 is an example. Ask a broker for real comparable sales in your trade, and if the real multiple is higher, the leaks you plug are worth more than the worksheet shows.
“Brokers say whatever earns their fee.” A broker is paid when a deal closes, so they have a reason to talk the price up. That is why you ask for sold deals. A CPA valuation has no commission attached. Get both and compare.
If you pay someone to fix it
Ask for the SDE build line by line, with your own numbers, and keep the worksheet. Ask for a written schedule of what gets plugged, in dollars of yearly profit added. Ask for the multiple to come with comparable sold deals, named, from your trade and size. Ask who owns the website, the profile and the customer list, and get that in writing. Reject a valuation that quotes a multiple without naming a single closed deal.
Do this week
- Ask your accountant for your SDE for the last three years and write down the three numbers (one hour meeting, one hour of your own work).
- Call one business broker who sells companies in your trade and ask the five questions above (20 minutes).
- Write the vacation test on a sticky note and list every task that would stop if you left for two weeks (20 minutes).
- Pick the one fix from this book that adds the most profit to your books and put a start date on it (15 minutes).
- Run your numbers at workbook.
servicelinepro. com/#sale, which takes about 10 minutes.
Get started
Sort the leaks by monthly dollars, cap the job leaks at Opportunity Value, and fix the phone in the first 14 days.
- 30Rank Your Leaks
- 31Build It or Hire It
- 32Monday Morning
Rank Your Leaks
Thirteen leaks sum to 5.6 times the gap they are supposed to explain, because a missed call, a slow callback and a map spot can all be the same customer.
Thirteen worksheets, thirteen monthly dollar figures, and a total of $100,246 a month on the legal pad. Your Opportunity Value from Chapter 2 is $18,000. The sum is 5.6 times larger than the gap it claims to explain, and the method that produced it is wrong.
Remove the overlap and the list becomes usable, with three leaks ranked and a name and a date next to each.
The figures below run the pool company from Chapter 2 through every worksheet, so they are labeled examples for one business. Two workbook defaults describe other trades, a $6,500 roof in Chapter 16 and a landscaper’s year in Chapter 24, and the pool figures replace them here. The method is real, and you will run it with your own numbers.
Run every worksheet
Open workbook.
Sort by monthly dollars
Write every leak in a column with the monthly dollar figure next to it, and sort from largest to smallest. Here is the list for the pool company.
| Rank | Leak | Chapter | Monthly dollars |
|---|---|---|---|
| 1 | Idle crew hours | 18 | $22,880 |
| 2 | Map coverage grid | 10 | $22,457 |
| 3 | Number one map spot | 9 | $14,850 |
| 4 | Missed calls | 5 | $8,100 |
| 5 | Slow callbacks | 6 | $7,200 |
| 6 | After-hours leads | 7 | $6,075 |
| 7 | Drive time | 19 | $4,840 |
| 8 | Past customers | 13 | $4,500 |
| 9 | Referrals | 14 | $2,700 |
| 10 | Seasonal dip | 24 | $1,894 |
| 11 | Door hangers | 15 | $1,800 |
| 12 | Add-on per job | 22 | $1,600 |
| 13 | Unchased estimates | 16 | $1,350 |
Several worksheets do not appear because they do not produce one monthly figure. The broken form sheet gives you dollars at risk, the review sheet a pace to hit, the AI sheet a ratio. Cost per closed job, next truck, lifetime value, maintenance plans, price raise, low-margin jobs, lead concentration and sale multiple each return a cost, a count, a percent or a value. Put those on the side of the pad, because they shape decisions about the ranked leaks and they do not compete with them on dollars.
Why the total is wrong
The leaks overlap, and the sum counts the same dollar several times. A caller who rings out is a missed call, a slow callback and an after-hours lead in three worksheets. The same estimate sits in the unchased list and in the slow callback list. The 208 idle crew hours are the 40 empty slots that Opportunity Value already prices, and the drive hours that zoning saves become more empty slots. The number one map spot and the coverage grid describe the same map.
There is a second reason. Your business can only run so many jobs. Opportunity Value tells you the most work your current crew and trucks could add. A leak that brings more customers can never be worth more than the gap those customers would fill.
The practical rule has two parts. Group the leaks into families and take the largest figure in each family as its stand-in. Never let the total of the leaks that fill your schedule exceed Opportunity Value.
Jobs, Hours and Margin
Every leak in the book belongs to one of three families, and the three behave differently.
- Jobs. Phone, Maps and Pipeline. These bring in jobs. Missed calls, slow callbacks, after-hours leads, broken forms, map position, coverage, reviews, AI recommendations, past customers, referrals, door hangers, unchased estimates and the seasonal dip all live here. The total in this family is capped by Opportunity Value, because a schedule only holds so many jobs.
- Hours. Idle crew hours, drive time and owner hours on $20 work. These describe hours instead of jobs, and an idle or saved hour earns money only when a job fills it, so the Jobs cap holds that money while the schedule has open slots. Owner hours go on the side of the pad as hours freed.
- Margin. Add-on per job, price raise, maintenance plans and low-margin job types. These work on jobs you already win, so they stack on top of the gap and do not overlap with it.
Apply that to the pool company and the three families come out like this.
| Phone: missed calls, slow callbacks, after-hours (take largest) | $8,100 |
| Maps: coverage grid and number one spot (take largest) | $22,457 |
| Pipeline: unchased estimates | $1,350 |
| Pipeline: past customers | $4,500 |
| Pipeline: referrals | $2,700 |
| Pipeline: door hangers | $1,800 |
| Seasonal dip: empty off-season slots | $1,894 |
| Sum of stand-ins | $42,801 |
| Cap: Opportunity Value | $18,000 |
| What the Jobs family can be worth | $18,000 a month at most |
That is a better number, and it changes the question. If the family can only be worth $18,000, then a dozen leaks compete for the same $18,000, and the question becomes which leaks fill the open capacity fastest and cheapest.
In the pool example the Hours family adds nothing yet. Chapter 18’s 376 unbilled crew-hours a month hold 88 hours of driving, which Chapter 19 prices again, 80 hours of shop work and 208 idle hours, and the idle hours are the 40 empty slots. Filled with 40 jobs, those hours bill 164 (40 x 4.1), and 164 x $110 = $18,040, within $40 of Opportunity Value, so the $22,880 row adds nothing to the cap. Unbilled time becomes its own money once the schedule is full, and zoning the drive then raises B from 120 to 134. Owner hours go on the side as 108 hours a month freed (Chapter 20), with no dollar figure, because they earn money only when an estimate waits, and a closed estimate is a job inside the cap. Fix the Jobs family first.
The Margin family stacks on top. Add-on per job ($1,600) belongs here, because it is earned on jobs you already win. The seasonal dip fills empty winter slots, so it sits inside the Jobs cap.
Choose the top three
Dollars rank the leaks. Four questions decide which ones you fix first.
- How many dollars a month? From the worksheet.
- What does the fix cost? In money and in hours. Many phone fixes cost less than a tank of gas.
- How soon will it show up? A text script for past customers shows up in days, and map work shows up later (Chapter 10 sets the targets).
- Who owns it? A leak without a named owner on your team does not get fixed.
Score each leak on those four, and pick the three that win on dollars and speed together. A $22,000 leak that takes six months to show up and costs $3,000 a month to fix is a real project. An $8,000 leak that you can fix on Thursday with a voicemail change is the first thing you do. Start the hard one second, in parallel, so it works while you collect the cheap money from the first.
Order for 90 days
- Days 1 to 14, phone. Answer every call, set up a missed-call text-back, put a live person or an AI receptionist on after-hours, and test your own website form. These fixes cost the least and show up the fastest, because the calls are already ringing.
- Days 15 to 45, pipeline. Text your past customers, follow up on every open estimate on a schedule, and ask every happy customer for a referral and a review. This money sits in your files and you own it already.
- Days 30 to 90, Google Maps. Fix your profile, start the review habit and build coverage outward from your real pin. Maps compounds, so start it early even though it pays late.
- Days 45 to 90, crew and pricing. Fix unbilled hours, drive time and owner hours once the phone and the pipeline are filling the schedule. Raise prices on a schedule you plan, add the add-on question to every job and offer maintenance plans.
The order follows speed and cost, and it protects the rest of the work. If you fix the crew first and the schedule is empty, the extra capacity sits in the yard. If you buy leads before the phone is fixed, the new leads leak out of the same holes.
A weekly 15-minute review
Pick one day a week, put 15 minutes on the calendar and ask four questions.
“Which of the three leaks did we work on this week?”
“What number moved? Show me the count.”
“What blocked us?”
“What is the one thing we do next week?”
Keep the list on one page with the dollar figure beside each leak and the last date you checked it. Update the figure after each fix. When a leak drops below the next one on the list, replace it with the next one.
Leaks the sheets do not catch
The worksheets price what this book covers. Your business may have a leak that is not in it, and you will usually find it by asking your crew. Ask each tech and your office manager the same question.
“If you were running this company and you wanted more money out of it without spending anything, where would you look first?”
Write the answers down. You will find two or three that are not on your list. Price them the same way: count them, multiply by your average job and rank them.
What owners say back
“The big number is on the map. Do I start there?” Start it, and run the phone fixes alongside, because the map moves slowly and the phone costs nothing to fix this week.
“My top three are all crew.” Then check the schedule. If the phone is already full and the crew is idle, you have a crew problem and the list is right. If the phone is half-empty, your crew is idle because the schedule is empty, and the Jobs leaks come first.
“Why is my total so much smaller than the workbook’s?” Because you removed the overlap. The pool company’s thirteen rows sum to $100,246, and its Jobs family cannot pass $18,000.
Do this week
- Run every worksheet that applies to you, with your own numbers where you have them, and mark defaulted numbers with a question mark (two hours).
- Write the ranked list on one page and put Opportunity Value at the top as the cap (30 minutes).
- Group the leaks into Jobs, Hours and Margin and take the largest figure from each overlapping group (20 minutes).
- Pick your top three and write a named owner and a date next to each (20 minutes).
- Put the weekly 15-minute review on the calendar for the same time every week, starting this Friday (5 minutes).
Build It or Hire It
A contractor group with four brands and $25 million a year left for a larger agency that offered everything, and the results got worse.
A contractor group with four brands, doing about $25 million a year, left its agency for a larger one that offered every discipline under one roof. Breadth won the account and the results fell.
Chapter 30 gave you a ranked list. You can close six of its rows alone, each with an hour and a decision: Missed calls (Chapter 5), Slow callbacks (6), Past customers (13), Referrals (14), Unchased estimates (16) and Add-on per job (22). Pay a vendor only for work that takes specialist skill, a tool you will not learn, or hours you will not find. For that work, put every agency you consider through the seven tests below, and ask each one on the first call.
Seven tests for any agency
| Test | Ask | Passing answer | Failing answer |
|---|---|---|---|
| Call tracking | “Which numbers will you set up, and where do I see the calls?” | Every channel sends calls to a number that records its source, and you can hear the recordings. | A report with no recordings, or one shared number. |
| Ownership | “If I cancel, what do I walk away with?” | You are the owner on the Google profile and the registrant on the domain, and the site, citations and content are yours. | The agency holds the domain, the profile login or the ad accounts. |
| Term | “What is the commitment after onboarding?” | A short start, then one month’s notice, with every term in writing before you pay. | An annual contract before any work is shown. |
| Reporting | “What will your monthly report say? Show me an example for a client in my trade.” | Calls in, jobs booked, and how many more jobs you booked than the month before, a number you can check against your own schedule. | Impressions, clicks and rankings with no booked-job count. |
| Profile address | “Will you change my address display, and what result have you measured from that change?” | Each change to the address, categories and service area is approved by you in writing first, backed by before-and-after call counts, and you check the profile a week after the work starts. | An instruction to hide your address, or no before-and-after counts. |
| Promises | “What is your expected timeline?” | A written timeline you read as a target. | A promised rank, date or lead count. |
| Limits | “What do you not do, and who do you send that work to?” | A named discipline and a named referral. | Every discipline claimed at the same depth. |
10 extra jobs to pay back a $3,000 monthly fee
A $3,000 monthly fee costs $36,000 over 12 months. On a $9,000 job at a 40 percent margin, each job leaves $3,600, so the agency has to deliver 10 extra booked jobs a year ($36,000 / $3,600) before you break even.
The pool company in Chapter 2 clears $180 a job. The same $3,000 fee needs 200 extra jobs a year ($36,000 / $180), which is 17 a month and 42 percent of its 40 open slots. Ask any agency for the number of extra jobs it expects and check that number against your call log.
Agency answers that should end the call
- The agency starts quoting a price before it has asked about your business or looked at your profile.
- It has no way to show you a customer in your trade and market, with their name and consent.
- It gets defensive when you ask for the export.
Questions for the first call
Take this script and ask every agency the same questions in the same order, then compare the answers.
“Before we talk price, what did you see in our profile and our website?”
“Which numbers will be tracked, and can I listen to the recordings?”
“If I cancel in month five, what do I own?”
“What will your Monday report say? Show me an example for a client in my trade.”
“What would you not do for us, and who would you refer us to?”
“Tell me about a client you lost, and why they left.”
“What do you need from us to make this work?”
The last two questions separate agencies fast. Listen for a specific lost client and a specific list of what the agency needs from you.
Three numbers to pull first
Pull your average job, your close rate and your phone hours before the first call, because any agency worth hiring will ask for all three.
What owners say back
“I got burned before.” You did, and a lot of owners did. Tell the next agency what the last one did, ask where its approach would differ, and look for a concrete answer about tracking, ownership and reporting.
“They’re cheaper.” Compare the cost to the value of a booked job, and run the arithmetic with your own average job.
“Why would I pay anyone if I can do this myself?” You can. Close the leaks from Chapter 30 that cost an hour and a decision first. If those are closed and you still see leaks on the map and in the pipeline, price the hire.
Do this week
- Sort the top ten leaks from Chapter 30 into two columns, one you will fix yourself and one you will hire out (30 minutes).
- Pick one item from the first column and finish it by Friday (one afternoon).
- Write down your answers to the seven tests for any agency you use now, and ask them in writing where you cannot answer (45 minutes).
- If you are shopping, run the fifteen-minute interview with two agencies and compare the answers (one hour).
- Ask whoever runs your Google profile whether you are listed as the owner, and check it yourself in your profile settings (15 minutes).
Monday Morning
Six hours across five days turns thirteen worksheets into three leaks with a name and a date on each.
Six hours of work on Monday through Friday turns the worksheets in this book into a ranked list with three names on it, and every one of those three has a first action you can finish before the week ends.
Set aside three hours on Monday, one hour on each of the next two days, and 30 minutes on Thursday and Friday. That is six hours in all. Put them on the calendar before you close this book.
Monday, hours one and two: your numbers
Open your field app, your phone portal and your Google Business Profile. Pull these six numbers, using the steps in Chapter 4.
- Average job from the last 90 days of invoices.
- Jobs completed last month.
- Jobs you could run in a month on a full schedule.
- Inbound calls in the last 30 days, with how many were answered, missed or sent to voicemail.
- Reviews in the last 90 days.
- Open estimates older than seven days with no follow-up.
Do the Opportunity Value math from Chapter 2 and write the monthly figure on a sticky note. Put the note where you will see it every morning.
Say your average job is $450, your ceiling is 120 and last month you ran 80. The sticky note says $18,000. That is an example, and your note will say something else.
Monday, hour three: the phone
Make three changes before you leave the office. Each one takes under an hour and each one pays back faster than anything else on your list.
- Decide who answers the phone at lunch and after 5 p.m., and write the name on the schedule.
- Turn on a missed-call text that goes out within a minute of any call you miss.
- Change the voicemail greeting so it tells the caller when you will call back and gives a second way to reach you.
Edit the wording until it sounds like you. Send a test call from your own phone and confirm that the text arrives.
“Hi, this is [your name] at [company]. Sorry we missed your call a minute ago. What do you need help with? We will get back to you by [time]. Reply STOP to opt out.”
End the text on a question the caller can answer in a few words.
Tuesday: test your business as a customer
Spend an hour as a customer, on your own phone, on cell data rather than the office wifi.
First, fill out your website form from a phone on cell data. Use a real number you control. Note whether you get a confirmation and how long it takes someone to reach you.
Second, search your service and your town on Google Maps, the way a customer would. Write down who shows up first, how many reviews they have and where you appear.
Third, ask ChatGPT or another assistant who to hire for your trade in your town. Do it ten times with slightly different wording and count how often it names you. Chapter 12 explains how to read the results.
Write each thing you find on the list and give it a dollar figure with the worksheet for that chapter. Do it while the surprise is fresh, because the number you write on Tuesday is the one you will still believe on Friday.
Wednesday: text your past customers
Open the customer export from Chapter 4 and filter to people whose last job was 12 to 36 months ago. Pick 50 to start. Text only customers who gave you a cell number for texts, and send each one by hand from the business line. Skip anyone with an open complaint or an unpaid invoice.
“Hi [first name], this is [your name] at [company]. We did your [job] a while back and I wanted to check in. Is everything still working? We have openings next week if you want us to take a look. Reply STOP and I’ll take you off the list.”
Send 50 on Wednesday and answer every reply the same day. By the end of the week you will know your response rate, the first real input for Chapter 13.
Then open your estimates. Pick every estimate older than seven days with no follow-up and call or text each one with a short message.
“Hi [first name], this is [your name] at [company]. I wanted to see if you had questions about the estimate for [job]. If it helps, I can walk through the numbers or adjust the scope.”
Thursday: ask for reviews and referrals
Thursday’s half hour goes to the two asks that cost nothing: a review and a referral.
For every job completed in the last seven days, text the customer a link to your Google review page. Ask the same day for every job from now on.
“Thanks for choosing [company]. If we did a good job, would you leave us a quick review? [link] And if a neighbor needs [your trade], send them our way and we will take care of them.”
Count your replies and reviews before you go home. You are building a weekly pace, and the pace matters more than the total (Chapter 11).
Friday: rank and assign
Spend the last 30 minutes of the week on the list. Run the worksheets for the leaks you found, using your own numbers, at workbook.
Next to each one, write a named owner, a start date and the first action.
Then put 15 minutes on the calendar for next Friday. The weekly review from Chapter 30 is the habit that keeps the list alive.
If the week goes sideways
A storm hits, a tech calls in sick, a customer needs you on site. Keep the order and drop the days. Do Monday’s three phone changes first, because they pay back fastest. Do the past-customer text second. Everything else can slide a week.
Do not wait for good data. If you cannot pull the call log by Monday, count calls by hand for three days with a tally sheet by the phone. If your field app will not export, count last month’s invoices in QuickBooks.
If your office manager pushes back, tell them what the week is for: finding calls and customers the business already paid for. Ask them what they would change first, because they often know.
Write the reply rate on the sticky note
Count the replies to the 50 past-customer texts and the replies to the estimate follow-ups, and write both numbers next to the Opportunity Value sticky note. If 8 of the 50 reply, text 50 more next Wednesday and count how many book, because Chapter 13 sizes each wave from bookings. If 40 of the 50 reply, check the list for current customers and open jobs before you trust the number, then size your first wave to your open slots.
Those two numbers are a real sample of your business, and Chapters 13 and 16 turn a sample into a monthly figure. Run the same week again with 50 different people, because a rate from one list tells you about that list.
The next 90 days follow the order in Chapter 30: phone first, then pipeline, then Maps, then crew and pricing.
Do this week
- Monday: pull six numbers, write the monthly Opportunity Value on a sticky note and change the three phone settings (3 hours).
- Tuesday: fill out your own form, search your own town on the map and ask an AI assistant ten times who to hire (1 hour).
- Wednesday: text 50 past customers and follow up on every old estimate (1 hour).
- Thursday: send review requests for the last seven days of jobs (30 minutes).
- Friday: run your worksheets at workbook.
servicelinepro. com, write your top three leaks with an owner and a start date, and put next Friday’s 15-minute review on the calendar (30 minutes).
Leak scoreboard
Copy each worksheet result here. Rank the leaks by monthly dollars and circle the top three. Chapter 30 shows how to rank them without double counting.
Notes and sources
Chapter 3 draws on three published works on costs that never appear on a ledger:
- Frédéric Bastiat, “What Is Seen and What Is Not Seen” (1850).
- Friedrich von Wieser, Social Economics (1914), the book that gave “opportunity cost” its modern use.
- Daniel Kahneman and Amos Tversky, “Prospect Theory: An Analysis of Decision under Risk,” Econometrica 47, no. 2 (1979).
Map and website figures come from published research, and the sources are named here:
- Local pack click-through by position (17.6 percent at position 1, 15.1 percent at position 3, a drop of 2.5 percentage points): First Page Sage, “Google Click-Through Rates (CTRs) by Ranking Position,” firstpagesage.com/reports/google-click-through-rates-ctrs-by-ranking-position.
- Website visitors who convert from organic search (2.7 percent across industries): Ruler Analytics, “Average Conversion Rate by Industry and Marketing Source,” ruleranalytics.com/blog/insight/conversion-rate-by-industry.
- Yelp in ChatGPT local answers (80 percent of answers): Mike Hawkes, “Top sources and directories for local AI search: What 1.9 million citations across 116,670 domains tells us,” BrightLocal, August 26, 2026.
- Yelp cited zero times in 18 ChatGPT answers: Whito, “We asked AI to recommend a tradesperson, again and again,” UK study, log run July 19, 2026.
Chapters 19 and 20 draw on:
- Jillian Beardwood, J. H. Halton and J. M. Hammersley, “The Shortest Path Through Many Points,” Proceedings of the Cambridge Philosophical Society 55, no. 4 (1959).
- Internal Revenue Service, standard mileage rate for business use in 2025: 70 cents a mile (Notice 2025-5).
- Gloria Mark, Victor M. Gonzalez and Justin Harris, “No Task Left Behind? Examining the Nature of Fragmented Work,” Proceedings of CHI 2005. Interrupted work took about 25 minutes on average to resume.
Client stories come from ServiceLine Pro’s own records and audits. No client is named. Each case is described by rough size, and by trade where naming the trade would not identify the client. Results are client-reported unless the chapter says we measured them.
Every other number in this book is a labeled example built on the default inputs of the companion workbook at workbook.
Nothing in this book is legal, tax or accounting advice. Check texting, call recording and pricing rules for your state with someone qualified before you change how you contact customers.
About the author
Will Hamilton is the founder of ServiceLine Pro, a marketing company that grows home-service and trade businesses from $1M to $10M with local SEO, Google Maps, websites, AI search and call tracking. He also owns a painting company, where every system in this book runs first.