Sample report"Keystone Mechanical" is a composite shop; the method, the math and the format are representative of what you receive.
Osnova · Findings Report · Sample

The Ops Blueprint

Prepared for Keystone Mechanical Co., HVAC & plumbing, Northeast Philadelphia

Engagement
One week · data-first · 1 site day
Shop profile
3 trucks · 7 people · ~$2.1M/yr
Prepared by
Osnova
Fee
Baseline, Team · $2,500, credited toward the Build · findings are yours to keep either way
The one-line verdict

Keystone is losing $87,000 a year, counted conservatively, through four losses, with two growth levers waiting behind them. Every one is cheap to fix, and none of them are about the quality of the work.

From our conversation

Your business, in your words and by the data.

Before any findings, here is the business as you described it at kickoff, checked against your own records. Everything in this report aims at these targets, so if any line below is wrong, flag it now, because the fixes would be aiming at the wrong thing.

The business
HVAC & plumbing · since 2009 (17 yrs)
Your words
The crew
7 people · 3 trucks · owner still runs jobs
Your words
Service area
Northeast Philadelphia: Fox Chase, Rhawnhurst, Bustleton & neighbors
The records: job addresses
Who you serve today
~85% residential homeowners · a handful of small landlords
The records: 14 mo of invoices
Who you want to serve
More replacements & installs, fewer $200 patch calls · property-manager contracts
Your words
Services
Repair & service calls · heater/AC replacement · repipes · emergency work (weekdays only, today)
Both
How leads arrive today
Word of mouth & repeat (~70%) · Google trickle · zero paid channels
Your words (unverifiable until call tracking exists)
Lead goal
Steady booked pipeline 2–3 weeks out, without buying leads
Your words
Average ticket today
$505 repair · $6,850 replacement
The records
Goal average ticket
→ More of the mix in $6–8K replacements + maintenance plans
Your words
Revenue today
~$2.1M / yr
The records
The goal
$2.6M within 18 months, without a fourth truck
Your words

“The phone never stops, but the money doesn’t match the busy. And I can’t hire my way out of it; I’ve tried.”

The main pain, in your words · kickoff call

Every priority in the plan traces back to this box: the losses explain why the money doesn’t match the busy; priorities 05–06 move the ticket mix toward replacements and plans; and the $2.6M target is reachable on recovered work alone, with no fourth truck.

What we did

One week in your data, one day in your shop.

You sent the exports (call logs, invoices and quotes), which hold a record your systems have been keeping all along. We spent one day on site, called a handful of your customers (including one who didn’t hire you) and counted everything, so every finding below traces to a record rather than an opinion.

212
calls analyzed (log export)
47
quotes traced
1
site day
4
customer calls

What didn’t cooperate. The card-terminal export came out malformed and two of the six customers we tried never picked up, and every real engagement has gaps like these. Our rule holds through them: if a claim can’t be traced to a log line, an invoice or a recording, it doesn’t get written, so what you get back is your own records, annotated.

The life of a phone call

212 calls came in, and 44 never got a callback.

Rang the line212
Answered live151
Missed61
Never called back44
Jobs booked88

This is an eight-week export from the phone system, which had been counting calls all along. Nearly one call in three went unanswered, almost always because everyone, including the owner, was on a job, and of the 61 missed, 44 never got a callback; those callers moved on to the next name on Google.

The plan

Everything, in the order to do it.

Most businesses have a handful of small problems compounding quietly rather than one big one. Keystone has four losses and two growth levers, ranked by what to fix first rather than by size, and each one below comes with its evidence, its math and the specific tools to fix it, priced. Do them in order, since each one makes the next work better.

How to read this number

Keep four things in mind before you take $87,000 at face value. It is revenue, not profit: after labor and materials, roughly half becomes gross profit. It assumes capacity, so Priority 01 carries a 30% haircut because some calls were missed while trucks were genuinely full. Follow-up does not get full credit, because untouched quotes are also weaker leads, so the close-rate gap is trimmed rather than claimed whole. Every loss is a range, and only the low end is summed. The reasonable-case total is $116,000, and we would rather you be surprised in the right direction.

Priority 01: Plug the daytime phone

$34,000–44,000 / yr
View the annotated records
Call-log export, 8 weeks, annotated TUE 09:41 inbound · missed · all hands on Frankford install · no callback logged
TUE 11:16 inbound · missed · caller retried once · gone
WED 14:02 inbound · answered · booked · $1,480 (heater swap)
THU 08:37 inbound · missed · voicemail: "no heat, second floor" · returned FRI 16:10 · already hired elsewhere
8-WEEK TOTALS · 61 missed of 212 · 44 never returned

Intake lives in whichever pocket is least busy, so when the trucks are full, calls go unanswered in the exact hours new customers call.

  • Missed-call text-back: sends a “Sorry we missed you, tap to book” text with a live booking link the moment a call rings out. Built into Jobber (from ~$39/mo solo; texting & automations on ~$119–199/mo tiers) or Housecall Pro (~$59+/mo).
  • Call tracking: CallRail (~$45–50/mo) tags every call by source, so in 90 days you know which channel earned each ring.
  • The 8:30 ritual: one named person owns a ten-minute morning callback list. $0, since it is a habit rather than a tool.
If you get stuck: both platforms include free onboarding with the trial; or hire a one-time “field service software setup” freelancer (~$400–600) and be running inside a week.

44 unreturned × 60% genuine × 55% historical close × $505 avg first ticket × 6.5 (annualized) ≈ $47,700 → 30% capacity haircut → $34,000 used in the total.

Cost to fix: ~$150/mo in tools · Payback: under 3 weeks

Priority 02: Catch the after-hours calls

$17,000–22,000 / yr
View the annotated records
Carrier log, nights & weekends, trailing 12 months AFTER-HOURS INBOUND · 71 calls · 0 booked
VOICEMAIL BOX · full on 11 separate nights · callers heard a beep and a dead end
SAT 21:34 · caller ID matched existing customer · burst supply line · a national franchise’s truck on the block Sunday AM

Emergencies are the most profitable calls in the trade, and this setup loses every one that comes in after hours.

  • Live after-hours answering: AnswerConnect or a similar trades-savvy service (~$250–350/mo): real emergencies triaged to an on-call tech at emergency rates, everything else booked for morning.
  • Cheaper starting point: Jobber’s AI Receptionist add-on (~$99/mo) answers and books when nobody can pick up.
  • An emergency rate card: publish after-hours pricing so the 9pm call is profitable instead of dreaded. $0

71 after-hours calls × 35–45% genuine emergencies × $680 avg ticket ≈ $17,000 used in the total · cost to fix ~$100–300/mo · payback ~6 emergency jobs.

Priority 03: One board for quotes & invoices

$24,000–33,000 / yr
View the annotated records
Records review: 47 open quotes traced, 14 months QUOTE #1141 · $6,200 AC replacement · sent · no follow-up · customer hired competitor day 9
QUOTE #1187 · $3,900 repipe · sent · owner called day 3 · won
QUOTE #1203 · $11,400 rooftop unit · sent · no follow-up · status unknown
PATTERN · 31 of 47 quotes never touched again over 14 months (≈27/yr) · touched quotes close at 41% · untouched at 12%

Quotes are written at night, sent, and mentally filed as done, and invoicing lives apart from quoting, so nothing has an age or a next touch.

  • Move quoting AND invoicing into one system: Jobber or Housecall Pro: every quote automatically sits on an open-quotes board with its age; won quotes convert to jobs and invoices in the same record; deposits and card payments attach to it; QuickBooks sync keeps the books clean without double entry.
  • Automated quote follow-up: day-3 text and day-7 email in your voice; included on Jobber’s Grow tier (~$199/mo) and doable manually on any tier with a Friday 20-minute review.
  • The template: rebuild the quote as good / better / best (see Priority 06); templates live in the same tool.
  • Zero-budget version: even a shared spreadsheet with quote date + next touch beats memory. $0, because having a board matters more than which brand it is.

27 untouched quotes/yr × gap trimmed to 21 pts × $4,150 avg quote ≈ $24,000 used in the total (full-gap case: $33,000) · cost to fix $0–200/mo · payback first revived quote.

Priority 04: Wake the 1,240-customer list

$12,000–16,500 / yr
View the annotated records
Invoice archive, 14 months reviewed CUSTOMER RECORDS ON FILE · 1,240 unique addresses
OUTBOUND CONTACT SENT · 0 · no reminders, checkups or seasonal notes
SAMPLE · 214 customers have 10+ year old equipment on record · none have heard from Keystone since the invoice

The most valuable asset in the business, the people who already trust you, is sitting untouched in a filing cabinet.

  • The twice-a-year touch: spring AC note, fall heating note: Mailchimp (free–$20/mo at this list size) or Jobber’s Marketing Suite add-on (~$79/mo) if you want it inside the same tool as everything else.
  • The aging-equipment letter: a one-afternoon mail merge to the 214 households with 10+ year systems on file, offering an inspection before winter. postage only
  • The maintenance-plan offer: every touch carries the agreement offer (Priority 06), turning reactivation into recurring revenue.

1,240 customers × 2–3% annual reactivation × $445 avg ticket ≈ $12,000 used in the total · cost to fix ~$50/mo · payback first 2 reactivated customers.

Priority 05: Turn reviews & referrals into an engine

Growth lever

The best moment to ask for a review is in the doorway while the goodwill is still there, and the system makes sure the ask happens every time; referred customers also close faster, pay more and haggle less.

  • Automated review requests: NiceJob (~$75/mo) or Jobber’s built-in review requests: a text after every closed job, routed to Google.
  • Reply to every review: ten minutes a week, and each reply is read by the next hundred people who look you up.
  • A named referral thank-you: $50 credit or gift card, mentioned out loud at close-out and printed on the close-out card. cost per referral, not per month
In this shop: 4.8 stars from customers who were never once asked, so the reputation is already there and only the asking is missing.

Priority 06: Three-option quotes & maintenance plans

Growth lever

Options move the customer from deciding whether to hire you to deciding which one, which raises the ticket without pressure, and plans turn one-time repairs into recurring revenue.

  • Good / better / best on every quote: patch it, fix it right, or replace it, each with a price and an honest lifespan. Typically lifts average tickets 15–25%; built as a template in the same tool as Priority 03. $0 once templated
  • Maintenance agreements: an annual tune-up plan sold at close-out and in every seasonal touch; the recurring line that smooths January and July.
  • Financing on replacements: consumer financing options (available through Jobber/Housecall Pro partners) turn “patch it again” into an approved replacement.
In this shop: 214 households with 10+ year equipment on file, zero maintenance agreements sold, because the upgrade conversation has never had a system behind it.
Why the order matters, and why small levers beat one big one
+10% leads× +10% close× +10% ticket× +10% repeat= +46% revenue

This is arithmetic rather than a forecast, and the same conservative rules from the box above apply. What matters most is the order: answer the phone before you advertise, build the board before you follow up, and earn the reviews before you ask for referrals. Priorities 01–04 recover money you already earned, and 05–06 grow what the repaired system can now hold, one lever at a time, measured monthly.

Illustrative interviews: composite shop, not real customer statements

Four customer calls, and nobody criticized the work.

“The guys are fantastic. Getting them on the phone is the hard part; I called twice before I gave up and tried someone else. Ended up waiting for you anyway.”

Homeowner, Fox Chase · hired twice

“He quoted me for the AC and I honestly meant to say yes. Then two weeks went by and another company called me back first.”

Homeowner, Rhawnhurst · quote #1141, lost

“I’d give them my building’s contract tomorrow if I knew someone would pick up on a Saturday.”

Property manager, 14 units · current customer
What’s working: keep these as they are

The quality of the work is already strong.

Callback rate: 4%

92%+ of jobs closed with zero return visits. That’s elite for the trade, and it’s why referrals carry the business.

4.8-star reputation

Every negative review in two years is about responsiveness and none is about quality, which matches what the losses show.

Parts margin discipline

Material markups are consistent and healthy, and the setup behind them should stay as it is.

If you want the fixes installed

The math forward.

The Baseline’s job ends here: losses found, priced, and ordered. If you want them fixed, the Build installs them at a fixed price and Run keeps them working, never billed by the hour.

LineYear one
Addressable loss, conservative ends (01–04)$87,000
Recapture at 60%$52,000
Build: all four systems, one-timeAnswer, Follow-Up, Come-Back, Run-Without-You · Baseline fee credited($6,500)
Run: 12 months at $750/moscorecard, check-ins, adjustments($9,000)
Net year-one recapture, kept by Keystone$36,500

The 60% comes from blending three benchmarks against these losses: text-backs typically recover about half of missed callers, follow-up revives a minority of dead quotes, and reactivation is benchmarked at 2–3%. It is a midpoint rather than a promise, and actual recapture is measured monthly against this table, so the ongoing work answers to that measurement. In every year after, the Build is paid for and the systems keep running; Run is optional at $9,000 a year, and many teams run the scorecard themselves.

Part II · The deep dives

The evidence behind the plan.

Three chapters for when you’re ready: who your best customers are, which channels deserve your hours, and how a job should feel end-to-end. You can skip them today and come back when you have a quiet hour.

Where to aim

Who your best customer is, and where to find more of them.

Some revenue is worth more than other revenue. Your own invoices already show which customers pay best, complain least and come back, and permit and demographic data shows where they live. Each recommendation below is tagged with the disciplines behind it, so you can see how the conclusion was made.

Your numbersMoney

1. The aging-equipment homeowner

The highest-value customer already in the filing cabinet: households with 10+ year old systems on record. They already expect a replacement is coming and would rather hear about it from the shop that fixed the old one. Replacement tickets run 6–10× a repair ticket, and this segment closes on trust more than price.

In the data: 214 households on file with 10+ yr equipment · avg replacement ticket $6,850 vs. $505 first-repair avg

MoneyOperationsCustomer experience

2. The small property manager

One relationship can cover ten roofs. Managers of 5–30 unit buildings buy reliability contracts rather than one-off repairs, which brings recurring revenue that smooths the seasons and clusters jobs on one block. They drop vendors over responsiveness, which is exactly what the new intake system fixes, so one manager can be worth a street of homeowners.

In the data: interview: “I’d give them my building’s contract tomorrow if I knew someone would pick up on a Saturday.” · 14 units, already a customer

Online presenceMarketingYour numbers

3. The premium-zip emergency caller

These households pay for certainty, hiring whoever answers, communicates and shows up, and they do not haggle at 9pm with water on the floor. Winning them depends on being found in search and answering the phone more than on price. They also produce the referrals and reviews that feed Lever 01.

In the data: every lost after-hours call traced to a competitor with a 24/7 line · emergency avg ticket $680, zero price objections in interviews

The territory call.

Defend

The home zips: Fox Chase, Rhawnhurst, Bustleton

Tight routes are where the profit is, so everything within 15 minutes of the shop stays priority one; it is where reviews, referrals and same-day capacity build on each other.

Pursue

The Huntingdon Valley – Abington – Elkins Park corridor

Same drive time as the far end of the current map, 30–40% higher average tickets, and older housing stock full of aging systems. This is where the aging-equipment and premium-emergency profiles overlap, so the expansion should go here first.

Cherry-pick

Chestnut Hill & Mt. Airy

Replacement-grade and contract work only, since those tickets justify the drive and one-off small repairs there break up the routes. Let the quote board enforce the rule so nobody has to be the bad guy.

Skip

Beyond the corridor, for now

Bucks County and deep Montgomery ask for a fourth truck before they pay for one. Revisit when the corridor is producing and capacity exists; growth that breaks the schedule just reopens Loss 01.

Method: profiles built from 14 months of invoices segmented by ticket, repeat rate, and margin; territory tiers from job-address clustering × drive-time × area income and housing-age data. In your Blueprint, this chapter is built from your books rather than a hunch about your market.

MarketingOnline presenceOperations
The presence checklist

Everywhere you’re “supposed” to be, and what each one costs.

Plenty of advice lists the platforms a contractor “must” be on. Here is the whole list, priced in the currency you’re shortest on (hours per month, done properly) and followed by a triage, so you can see how much “everything” really is and choose on purpose.

Own itGoogle Business Profile~2 hrs/moWhere every emergency search ends. Photos, posts, Q&A and hours make this your storefront.
Own itReviews: asking & answering~1 hr/moThe doorway ask from the close-out ritual plus a reply to every review. Mostly systematized in the Install.
Own itGoogle Local Services Ads~2 hrs/moPay-per-lead rather than per-click, and the one paid channel worth it at this ticket size. Passing Google’s screening also earns its guarantee badge.
Own itNextdoor~2 hrs/moWhere “anyone know a good plumber?” gets asked daily, by name, in your defend-tier zips.
MaintainWebsite + local SEO~2 hrs/moOne clear page per service and area. Built once in the Install; touched quarterly, not weekly.
MaintainSeasonal email touch~1 hr/moThe Stage 6 cadence, with pre-written templates, runs nearly on its own.
MaintainFacebook business page~1 hr/moClaimed, current and answering messages, because a dead page reads worse than no page.
MaintainLinkedIn, property managers only~1 hr/moUsed for outreach rather than content: ten minutes a week aimed at target profile #2 from Where to Aim.
MaintainYelp, claim only~½ hr/moClaimed and accurate so the reviews land somewhere you control. The free listing is all you need; expect frequent ad-sales calls, and feel free to keep declining.
MaintainTrucks, yard signs, door magnetsone-timeThe oldest local SEO there is. Every parked truck in a pursue-tier zip is a billboard you already paid for.
Show the 6 channels we’d skip, and why
SkipInstagram~8 hrs/moNobody finds an emergency plumber on a grid of photos. Revisit only if you build a remodel/install line.
SkipTikTok~15 hrs/moThis is a content job more than a marketing channel, and it suits personality brands with time to spare, which is not this year’s priority.
SkipYouTube~10 hrs/moGreat for national how-to audiences; irrelevant for “water heater repair near me, today.”
SkipThumbtack~6 hrs/mo + feesYou bid against several shops for the same price-sensitive lead, which can fill schedule gaps but is hard on margins; the losses above are worth more than these leads.
SkipAngi / HomeAdvisor~5 hrs/mo + feesLeads are shared (sold to competitors as well), so run the close-rate math before paying; it seldom favors shops this size.
SkipHouzz / BBB / directories~3 hrs/moClaim the free listings once so your name, number, and hours match everywhere Google looks; invest nothing further.
Doing everything on the list, properly
~45 hrs / month

That is a part-time employee you do not have, which is why “be everywhere” advice usually ends in doing everything badly.

The triaged plan above
~8 hrs / month

Four owned channels and six on maintenance, most of it built once during the Install and run by the systems rather than by you.

Where all of this lands you

Online presence, graded 0–4, from invisible to fully run for you:

0 · Invisible
1 · Findable (today)
2 · Credible
3 · Systematized
4 · Done

Great reviews are carrying a thin digital presence: no site in search, unanswered reviews, inconsistent listings. The Install builds Levels 2–3; the Monthly Engagement runs Level 4, where the whole system works and none of it is your job.

The customer’s journey

How a job feels today, and how it feels rebuilt.

A customer never sees your scheduling board or your margins; they experience six moments, and they hire, refer and review based on how those moments feel. The left side is what we observed, and the right side is the redesign the Install builds.

1 · First contact
A ring, then a voicemail beep: 29% of calls missed and 44 never returned, so callers try the next name on Google.
Every call lands somewhere: instant text-back with a booking link by day, the after-hours line by night.
2 · The house call
A four-hour window with no name and no heads-up. The work is excellent, but nothing is left behind to remember it by.
Certainty before the doorbell: confirmation text with the tech’s name and photo, and a plain-English explainer sheet that stays on the counter.
3 · The quote
One number, days later, then silence: 31 of 47 quotes never touched again. “I honestly meant to say yes.”
Options, on the spot: good / better / best built on-site from a template, with automatic day-3 and day-7 follow-up in your voice.
4 · The agreement
A handshake or a texted “ok go ahead”; payment terms surface at the end, and three scope disputes last year all came from missing paper.
One page, e-signed before the truck leaves: scope, price, deposit and warranty in plain English, with no surprises.
5 · Close-out
Clean work, on time, then the truck leaves and the relationship stops, leaving 4.8-star work with near-zero review capture.
The doorway ritual: walk-through, warranty card and fridge magnet with the after-hours number, and the review ask while the goodwill is standing there.
6 · Afterward
Silence: 1,240 past customers and zero touches, until something breaks and they try to remember your name.
The afterward, automated: twice-a-year seasonal touch, aging-equipment heads-up, referral thank-you, all running on their own.
The paper kit, built with you during the Install

Explainer sheet · three-option quote template · plain-English agreement (e-sign + deposit link) · close-out card & magnet · follow-up scripts in your voice · seasonal touch templates

Method: mapped from the site day, the call-log and quote-trace analysis, and customer calls. Every breakpoint on the left cross-references a loss earlier in this report.

Which step is this?

Where this report sits.

This sample is a Baseline report: the written diagnosis that starts every engagement. Here is how it fits with the other steps.

Free

Customer Checkup + walk-through

A few taps that put a dollar figure on where customers slip away, then a 20-minute call to go over it.

Baseline · from $1,500

This report

Two weeks covering a mystery-shop of your calls, forms, booking and follow-up, your service blueprint, every loss priced and a ranked plan. Solo $1,500 · Team $2,500 · Multi-location $4,500, credited toward your Build.

Build · $2,000 a system

Install the fixes

Answer, Follow-Up, Come-Back and Run-Without-You, set up in your tools with your team trained. All four for $6,500.

Run · from $750/mo

Keep it working

A monthly scorecard, check-ins and adjustments. Month-to-month.

Your shop’s numbers will be different

A Baseline finds your own.

This sample shows the method. A Baseline runs it on your business in two weeks: every loss priced in your real dollars, and a report like this one that is yours to keep whether or not we ever fix a thing.

For a rough number for your own shop before signing up for anything, the free Customer Checkup gets you close in about three minutes.

We make no sales calls and apply no pressure, and if a Baseline isn’t the right fit yet, we’ll tell you that directly.