All samplesSample. Every figure is invented.Print version (PDF)
Sannidhi

Sample · Home services and the trades

First Business Analysis

Plumbing and Heating Business

Prepared for the owner of Plumbing and Heating Business. Your numbers as of 30 September 2026. Prepared by Sannidhi, Santa Cruz, California. October 2026.

This is a sample. Plumbing and Heating Business is a fictional company and every figure in this document is invented. The format, the depth and the method are what a real client receives.

Three years of your own records, read in full: 9 programs, 12,600 jobs, 742 replacement estimates, 9,640 phone calls and every invoice since October 2023.

Two labels run through this document. From your data means the figure was counted from your own records. Our estimate means it is a projection, and the assumption behind it is stated beside it so you can disagree with it.

01The short version

Plumbing and Heating Business is a sound business that is losing money in three places it cannot currently see.

What is working

Where you are losing money

The three things to fix, in order

  1. Answer every inquiry and follow up every replacement estimate. What it is costing you: about $67,000 a year. Our estimate
  2. Bill everything you do, and keep the members you have. About $47,000 a year, plus $21,300 once. Our estimate
  3. Make Housecall Pro the one place your records are kept, and plan the day by area. About $35,000 a year. Our estimate

The one number to improve first: the share of replacement estimates that reach a yes or a no. Today it is 68%.

These figures are what each problem is costing you. They are not a promise of what will be recovered.

02What you asked for

On our first call, you were asked: if you could wave a wand and have one thing in your business handled automatically, perfectly, every time, what would it be?

Your answer, word for word:

"Every time one of my technicians gives a customer a price on a new water heater or a furnace, somebody stays on it until we get a yes or a no. Right now, if the customer does not say yes on the spot, nobody calls them again. I find out we lost it when I drive past and see another company's truck at the house."

The records agree with you. 238 of your 742 replacement estimates have no outcome, and 196 of those show no call or text after the day the price was given. Fix 1 is built around your answer.

03What we looked at

Software What was read Period
Housecall Pro6,480 customer records, 12,600 jobs, 742 replacement estimates in the last twelve months, 684 memberships, job notes and photosOctober 2023 to September 2026
QuickBooks OnlineEvery invoice, payment, supplier bill and the general ledgerOctober 2023 to September 2026
GustoHours, pay and overtime for all 14 peopleOctober 2023 to September 2026
Quo phone system9,640 inbound calls and 7,900 textsOctober 2025 to September 2026
Google Business ProfileViews, calls, website clicks, reviewsApril 2025 to September 2026
Google Local Services Ads540 leads you were charged for, and the spendOctober 2025 to September 2026
Google AdsSpend, search terms, clicksOctober 2025 to September 2026
Website form and Gmail386 inquiries and the replies to themOctober 2025 to September 2026
The dispatcher's shared spreadsheetParts on order, callbacks, the on call list and estimates to chaseCurrent version

What was missing. Google Ads has call reporting switched off, so a call from an ad cannot be told apart from any other call. Callbacks are tagged in Housecall Pro with no reason recorded. Phone history before October 2025 is not held.

Confidence. High on money, jobs, estimates, memberships and hours. Medium on marketing, because of the gap in call reporting. The value of missed inquiries is an estimate and is labeled as one.

04The shape of your business

Four lines of work make up the year. From your data

Line of work Jobs Revenue, last 12 months Share Gross margin
Service and repair calls3,120$1,248,00058%
Furnace and boiler replacements80$650,00036%
Water heater replacements210$546,00041%
Membership plan fees, with 1,010 tune up visits1,010$156,00020%
Total4,420$2,600,00047%

Growth is slowing. Revenue rose 9.1% two years ago and 3.2% in the last twelve months. From your data

No single customer matters much. Two sources of customers do. Your ten largest customers are 6% of revenue. But 612 of your 1,400 new customers, or 44%, came from Google's two paid products. From your data

Two technicians bring in 56% of service revenue. Four technicians run service calls. Technicians A and B billed $698,000 of the $1,248,000. From your data

Winter is your biggest season. December to February brings in 33% of the year's revenue and 58% of the year's overtime. April to June is the slowest quarter, at 19%. From your data

This is why everything below comes in this order. The business does not need more leads first. It needs to answer, close and bill the work that already reaches it.

05Where the money comes from and where it goes

You kept 8.0 cents of every dollar. Operating profit was $208,000 on $2,600,000, after your own salary. From your data

Where each dollar went Share of revenue
Labor, field and office38%
Parts, materials and equipment27%
Trucks, fuel and repairs6%
Overhead, insurance, advertising, software, rent21%
Operating profit8%

Work done and never invoiced: $21,300. We matched every finished job in Housecall Pro against every invoice in QuickBooks. 46 finished jobs have no invoice. Most are service calls from December to February, closed on the truck with the invoice left as a draft. From your data

Parts used and not billed: about $26,800 a year. On 412 service invoices, the technician's notes name a part and the invoice has no part on it. Our estimate, at an average of $65 a part from your own price book.

Warranty parts you paid for twice: about $5,400. 37 parts were replaced under a manufacturer's warranty, and QuickBooks shows no credit from the supply house for any of them. Nobody files the claim. From your data

Discounts came to $38,200. Technicians C and D gave a discount on 31% of their invoices. Technicians A and B gave one on 9%. All four work from the same price book. From your data

Your prices have fallen behind your costs. The price book was last updated in January 2024. Since then your supply house price for a standard tank water heater has risen 11%, and your average technician wage has risen 14%. Each point of margin on water heaters is $5,460 a year. From your data

You are paid in 17 days. Service calls are invoiced within a day, and most are paid before the truck leaves. Replacements take a median of 6 days to invoice, because the office builds each one by hand. $148,000 is owed to you today. $41,000 of it is more than 60 days old, and $23,500 of that is owed by two property management companies. From your data

Software costs $21,840 a year across 11 tools. Two of them do the same job as Housecall Pro, at $265 a month. From your data

06Who stays and who drifted

The membership plan is the best thing you sell, and it is not being looked after. From your data

Memberships Count
Active on 1 October 2025668
Signed up in the year244
Lost in the year228
Active on 30 September 2026684

You signed up 244 members and lost 228. The plan grew by 16.

131 of the 228 never chose to leave. Their card expired or was declined, the payment failed, and the membership ended. Nobody called. Another 58 cancelled, and 39 moved or sold the house. The 131 were paying $29,900 a year in fees. From your data

127 members had no visit at all in the last twelve months. The plan promises two tune up visits a year. 684 members were owed 1,368 visits and 1,010 were done. A member who pays every month and never sees a technician is the next one to cancel. From your data

Members buy from you. Members were given 138 replacement estimates and accepted 84, or 61%. Everyone else was given 604 and accepted 206, or 34%. From your data

Most first time customers do not come back. Of the 1,310 customers who first called you in the year to September 2025, 341 returned in the following twelve months. That is 26%. From your data

You know which water heaters are about to fail. Job notes and photos in Housecall Pro give an age for 1,120 water heaters in your customers' homes. 412 are ten years old or more. Nothing in any program uses that list. From your data

07How new customers find you

1,400 new customers arrived in the last twelve months. From your data

Source New customers Average first year revenue Ad spend Cost per booked job
Google search and your Google profile402$720NoneNone
Google Local Services Ads348$610$38,400$110
Google Ads264$540$52,800$200
Referral from a customer231$1,240NoneNone
Saw a truck38$720NoneNone
Unknown117$690NoneNone

The average new customer spent $742 in their first year.

Google Ads cost $200 for each booked job, and those customers spent $540. That is your most expensive source and your lowest spending customer. From your data

37% of the Google Ads money went to searches you do not want. $19,500 was spent on searches for plumbing jobs and pay, for commercial work, and from towns outside your service area. From your data

You paid for 61 leads and never called them back. Local Services Ads charged you for 540 leads, about $71 each. 61 of them were missed calls that nobody returned. That is about $4,300. From your data

Your best source costs nothing and has no process. Referred customers spend the most by a wide margin. Nothing in any program asks for a referral.

Your Google profile is seen 5,900 times a month. In 18 months it produced 6,840 call clicks and 4,120 website clicks. From your data

What cannot be measured yet. With call reporting off, the 264 Google Ads customers are only those who used the website form or told your office where they found you. The true count is higher. Turning call reporting on is part of Fix 1 and costs nothing.

08How fast you answer

You miss 15% of your calls. 1,446 of 9,640 inbound calls went unanswered. From December to February the share rose to 24%: 732 of 3,050. From your data

When the call was missed Missed calls
Weekdays, 7 to 8 in the morning, before the office opens188
Weekdays, 8 to noon246
Weekdays, noon to 1, when both office staff are at lunch231
Weekdays, 1 to 4:30205
Weekdays, after 4:30318
Weekends258
Total1,446

The single lunch hour loses almost as many calls as the whole morning.

168 new callers never heard from you. Most missed calls came from existing customers who reached you later. 412 came from numbers that are not in your customer list, and 168 of those were never called or texted back. From your data

Website inquiries wait 19 hours. That is the median time to a first reply. 24 of 386 inquiries were never answered. From your data

What a booked call is worth. In your own records, 62% of new callers who reach a person book a job, and a new customer spends $742 in the first year. So each new inquiry is worth about $460. If a third of the 192 unanswered inquiries were people with a real job, that is 64 customers and $29,400 a year. Our estimate

238 replacement estimates have no outcome. You gave 742 estimates worth $2,840,000. 290 were won and 214 were lost. The other 238, worth $760,000, were never marked either way, and 196 of them show no contact after the day the price was given. From your data

Who gave the estimate matters more than the price. From your data

Who gave the estimate Estimates Won Share won
Technician A1487148%
Technician B1315542%
Technician C1223932%
Technician D1172723%
You2249844%
Total74229039%

You gave all 188 furnace and boiler estimates and 36 of the larger water heater jobs. All four technicians quote water heaters from the same price book. Technician A's open estimates show a second call or text 61% of the time. For the other three it is 12%. Technician A follows up. Nobody asked the others to.

Your own estimates are slow in the season when speed matters most. A technician reports a furnace or boiler that needs replacing, and you visit and price it. The median wait from the report to your estimate is 6 days. From your data

Days from the technician's report to your estimate Estimates Won Share won
The same day or the next482858%
2 to 5 days622744%
6 days or more782532%

09What customers say

412 Google reviews, average 4.7. Only 38 arrived in the last twelve months, against 3,410 paid jobs. From your data

54 reviews have no reply, including 7 of your 11 reviews below three stars.

What people praise: a technician who explained the problem before starting, and a truck that arrived when promised. What people complain about: hearing nothing after being given a price, and a repair that needed a second visit. Both complaints match the records in parts 8 and 10.

Reviews affect what you pay for leads. Google says it uses your review count, your rating and how reliably you answer when it decides where to show your Local Services Ad.

10How your week runs

A service truck does 4.1 jobs a day. Four service trucks ran 4,130 service calls and tune up visits over 1,000 truck days. From your data

Where a service truck's paid day goes Hours
On the job5.2
Driving2.3
At the supply house0.7
At the shop, loading and paperwork0.9
Total paid day9.1

Trucks are sent by who is free, and not by where they are. On 31% of days at least one truck crossed your service area twice. Taking 20 minutes a day of driving off each service truck is 333 hours a year, or $17,300. Our estimate, at a full cost of $52 an hour.

1,140 trips to the supply house. That is the count of counter purchases on your supplier bills. No truck has a standard stock list. From your data

The four service technicians, side by side. From your data

Technician Service calls Average ticket Memberships sold Callbacks
A810$4529631
B795$4187138
C770$3712240
D745$3541456
All four3,120$400203165

This is not a ranking of effort. Technician D is your newest, 14 months in, and has not worked a day alongside a senior technician since the first month. The table shows three habits that A and B have and nobody has taught: offer the plan on every call, bill every part, and call back on every estimate.

187 callbacks in the year. 165 followed a service call and 22 followed an install. That is 5.5% of paid jobs. A callback takes about 1.5 hours of truck time and earns nothing: 281 hours, or $14,600 a year. Our estimate, at $52 an hour. Bringing technicians C and D to the rate of A and B would remove about a third of them.

Overtime cost $30,000 in premium pay. 58% of it fell in December, January and February. From your data

Your own hours. You told us you spend 24 hours a week on office work, 8 of them on estimates. Our estimate, from your own count of your hours.

11Your software and your records

The tools are good. Too much of the business runs outside them.

Tool What it does for you Verdict
Housecall ProCustomers, calls booked, dispatch, estimates, invoices, memberships, the price bookKeep. Make it the one place your records are kept.
QuickBooks OnlineThe booksKeep. Fix how membership payments arrive.
GustoPayrollKeep.
QuoPhones and textsKeep. Add a text back on missed calls.
The dispatcher's spreadsheetParts on order, callbacks, the on call list, estimates to chaseReplace with Housecall Pro job tags and fields.
Google Local Services AdsPaid leads by phone and messageKeep. Answer every one.
Google AdsPaid searchKeep, with call reporting on and the unwanted searches removed.
Google Business ProfileYour listing and reviewsKeep. Reply to every review.
Two overlapping toolsA separate review request tool and a separate forms toolCancel. $265 a month.

Membership payments reach QuickBooks as one combined deposit. Housecall Pro sends invoices to QuickBooks correctly. Membership payments arrive as a single deposit with no customer attached, and your office manager matches them by hand, about 4 hours a week. The dispatcher's spreadsheet takes another 5. From your data, and our estimate from what your office told us.

The spreadsheet holds work that no program knows about. It lists 64 open items today: parts on order, callbacks to book and estimates to chase. None of them exists in Housecall Pro. If the spreadsheet is wrong or the dispatcher is out, they are lost. From your data

The two programs do not agree. Housecall Pro holds 6,480 customers and QuickBooks holds 7,020. 410 are duplicates. This is how 46 finished jobs went unbilled: nothing compares the two. From your data

Record gaps. 318 customers have no mobile number, so they cannot be sent a text. 96 members have a card that expires in the next 90 days.

Access. 6 people who no longer work for you still have a working login to at least one program. Two of those logins open the Housecall Pro app, with every customer's address in it. From your data This is something for you to act on this week.

What only one person knows. The on call rotation lives with the dispatcher. Boiler work lives with one install lead.

12What breaks if you are away for a month

None of these is a crisis today. Each one could become a crisis with a single event.

13What AI is worth using here

Worth doing now

Not worth doing yet

14The options, the three fixes and the scorecard

Option A: do nothing. The business stays profitable. The losses in this document continue at roughly their current size, and the membership plan keeps losing nearly as many members as it gains.

Option B: fix it yourselves. Everything here can be done by your own office with this document as the plan. The limit is time: the 9 hours a week your office spends copying between programs are the hours this would need, and winter is close.

Option C: Sannidhi does it. The three fixes below, in order.

Fix What gets done What it is costing you Cost
1. Answer and follow upText back on missed calls. Same day replies. A staggered lunch in the office. Follow up on every replacement estimate until it is marked won or lost. Furnace and boiler estimates drafted the same day for your approval. Call reporting on, and the unwanted searches removed.About $67,000 a year. Our estimateIncluded
2. Bill what you do, keep your membersWeekly match of finished jobs to invoices. Parts checked against job notes before an invoice closes. Warranty claims filed. Members contacted before a card expires and when a payment fails. Overdue tune up visits booked. The price book updated, with your approval.About $47,000 a year, plus $21,300 once. Our estimateIncluded
3. One record, and a planned dayThe dispatcher's spreadsheet moved into Housecall Pro. Membership payments matched in QuickBooks without retyping. Trucks sent by area. A stock list for each truck. A reason recorded on every callback. Old logins removed.About $35,000 a year. Our estimateIncluded

Together the three problems are costing you about $149,000 a year, about 5.7% of revenue. These are the amounts you are losing. They are not a promise of what will be recovered.

Every cost, stated plainly

How the estimates were built. Fix 1 is $29,400 from unanswered inquiries plus 5% of the $760,000 in open estimates, which is $38,000. Fix 2 is $26,800 in parts not billed, $5,400 in warranty parts, and $14,900 from keeping half of the 131 members lost to a failed card. Fix 3 is 9 office hours a week at $27 an hour, which is $12,600, plus $17,300 in drive time and $4,900 for a third of the callbacks.

What comes first. Fix 1 starts in the first week, because it is what you asked for and because the heating season starts in November. Fix 2 starts with the 46 unbilled jobs, since that money is already earned.

Your scorecard

These are your main numbers as of 30 September 2026. The same ten are measured again every quarter, and your Monday report tracks them in between.

Main number Today Where it comes from
Revenue, last 12 months$2,600,000QuickBooks
Replacement estimates that reached a yes or a no68%Housecall Pro
Replacement estimates won39%Housecall Pro
New inquiries with no reply192 a yearQuo, website form
Active memberships684Housecall Pro
Memberships lost, last 12 months34%Housecall Pro
Finished work not yet invoiced$21,300Housecall Pro and QuickBooks
Callbacks, last 12 months187Housecall Pro
Jobs per service truck per day4.1Housecall Pro
Your hours a week on office work24Your own count

What we could not tell from your records