The 5‑Number Weekly Scorecard (ServiceTitan / Jobber / Housecall Pro)
A printable, one‑page scorecard template for home service shops with five weekly KPIs, exact pull‑path placeholders for ServiceTitan/Jobber/Housecall Pro, starter targets, and a ‘red → action’ box. Includes a 10‑minute Tuesday update checklist and reason‑code notes so the huddle ends with one fix, not chatter.
Print this one‑pager and run it every Tuesday at 7:30am with your dispatcher and lead techs. Update all five numbers in under 10 minutes from your CRM and phone logs, mark anything red, then pick one fix before you leave the huddle. Targets are starting points—tune for season and trade. Track business‑hours vs after‑hours separately where noted.
Header — Shop + Week
- Week of: [YYYY‑MM‑DD]
- Huddle time: [Tuesday 07:30]
- Dispatcher: [NAME] Lead tech(s): [NAME(S)]
- Platform: [ServiceTitan | Jobber | Housecall Pro | Other: ______]
- Trades covered: [Plumbing/HVAC/Electrical/Other]
- Season: [In‑season | Shoulder | Off‑season]
- Shop defaults: First‑touch target [15] min • Answer target [90]% (BH) • Rescue slot held/crew [YES/NO] • Deposit policy [%] over [$_]
10‑Minute Tuesday Update Checklist
- Open your CRM and phone analytics.
- Calls + first‑touch: last 7 days (BH vs after‑hours).
- Estimates: last 90 days.
- Utilization: next 7 days.
- Cash: last 30 days (or rolling 90 for stability).
- Fill each metric’s Actual, compare to Target, mark [GREEN/RED].
- If any metric is RED, write one root cause in Notes (use reason codes below).
- In “One Red → One Fix,” commit a specific action, owner, and due date.
- Screenshot or save the filled sheet to your ops folder. Coach from recordings or examples this week.
- Next Tuesday: review last week’s fix result first, then update the five numbers.
Defaults: Starting Targets (edit for season/trade)
- Missed‑call rate (BH): Target [≤10%]. Track after‑hours separately.
- % of new leads first‑touched ≤15 minutes: Target [≥80%].
- Estimate close rate (last 90 days, by service type): Target [≥50% overall].
- Schedule utilization (next 7 days): Target [85–90% in‑season] with a same‑day rescue slot per crew.
- Days to cash (or % collected ≤7 days): Target [≤7 days] or [≥80% within 7 days].
1) Missed‑Call Rate — Business Hours
Definition: % of inbound calls during business hours not answered live.
Formula: Missed calls ÷ Total inbound calls (BH)
- Target: [≤10%] Actual: [__%] Status: [GREEN | RED]
- After‑hours missed‑call rate (tracked separately): [__%]
- Notes/Reason code: [LETTER(S)] Details: [TEXT]
Pull path (pick one):
- ServiceTitan: [Phones Pro > Abandoned Calls] or [Contact Center Pro > Call Journey > Filter Business Hours > Export]
- Jobber: [CallRail > Unanswered Calls > Filter business hours] or [Phone system logs]
- Housecall Pro: [CallRail > Unanswered Calls] or [HCP phone/call reporting if enabled]
If RED → action (check one):
- Set overflow/answering service 8a–5p this week; confirm ring group.
- Coach from 5 call recordings/CSR on greeting + qualification.
- Add a second line/seat during peak window [TIME–TIME].
- Tighten IVR: option 1 = book, 2 = dispatch/emergency; remove dead ends.
- Owner: [NAME] Due: [DATE] Verify (how you’ll check): [TEXT]
2) % of New Leads First‑Touched ≤15 Minutes
Definition: % of new leads (calls, web forms, texts, chats) first‑touched within 15 minutes.
Count a “first touch” as a live answer, outbound call, text, or email reply.
Formula: # leads first‑touched ≤15 min ÷ total new leads
- Target: [≥80%] Actual: [__%] Status: [GREEN | RED]
- Notes/Reason code: [LETTER(S)] Details: [TEXT]
Pull path (examples):
- ServiceTitan: [Abandoned Calls > Age column for callbacks] + [Call Journey timestamps]; for web/request leads, use [Lead/Job “Created” vs first outbound activity].
- Jobber: [Client Communications Report > filter last 7 days] + [Lead created vs first outbound timestamp] or [CallRail first outbound].
- Housecall Pro: [Inbox/message history] + [CallRail first outbound] to time‑stamp first contact.
If RED → action (check one):
- Turn on auto‑reply SMS for web forms (“We got it—expect a call in 10–15 minutes”).
- Assign a rotating “hot‑lead” owner 8a–5p; set a 15‑min timer in dispatch.
- Add a missed‑call callback queue and clear it every 30 minutes.
- Add a quick‑quote template for common jobs to speed first reply.
- Owner: [NAME] Due: [DATE] Verify: [TEXT]
3) Estimate Close Rate — Last 90 Days (by service type)
Definition: % of estimates marked won in the last 90 days. Track by service type.
Formula: Won estimates ÷ (Won + Lost estimates)
Table (add rows as needed):
Service type [A] — Quoted [] Won [] Close rate [__%]
Service type [B] — Quoted [] Won [] Close rate [__%]
Service type [C] — Quoted [] Won [] Close rate [__%]
Target (overall): [≥50%] Actual (overall): [__%] Status: [GREEN | RED]
Notes/Reason code(s): [LETTER(S)] Details: [TEXT]
Pull path:
- ServiceTitan: [Reports > Estimates or Jobs with Linked Estimates > Won/Lost by date range (90 days)]
- Jobber: [Reports > Quotes Report > Conversion (90 days) > Export CSV]
- Housecall Pro: [Reports > Estimates on Jobs (90 days)] or [Dashboard > Estimates]
If RED → action (check one):
- Standardize to a 3‑option proposal (Good/Better/Best) with financing line.
- Run a 3‑touch follow‑up (Day 1 text, Day 3 call, Day 7 email) on all open quotes.
- Same‑day pricing huddle: review 5 open quotes; fix scope/photos.
- Add deposit requirement [%] for jobs over [$_].
- Owner: [NAME] Due: [DATE] Verify: [TEXT]
4) Schedule Utilization — Next 7 Days
Definition: % of crew‑days booked versus capacity over the next 7 days. Always hold a same‑day rescue slot per crew.
Formulas:
Capacity (crew‑days) =
# Crews × # Shifts/Day × 7Booked (crew‑days) =
Sum of scheduled crew‑days (exclude rescue slot)Utilization =
Booked ÷ CapacityTarget: [85–90% in‑season] Actual: [__%] Status: [GREEN | RED]
Rescue slot held per crew today? [YES/NO]
Notes/Reason code: [LETTER(S)] Details: [TEXT]
Pull path:
- ServiceTitan: [Capacity Planning (Open/Adjustable) > Provided vs Consumed > next 7 days]
- Jobber: [Schedule > Visits > Export next 7 days] then divide by crew capacity.
- Housecall Pro: [Schedule/Reports export > next 7 days] then divide by crew capacity.
If RED → action (check one):
- Protect the same‑day rescue slot; stop overbooking past [__%].
- Backfill gaps with outbound on unsold estimates (call/text 10/day).
- Confirm reminders (SMS/email) 24h + 2h to reduce no‑shows.
- Rebalance crews/shift a maintenance day to production.
- Owner: [NAME] Due: [DATE] Verify: [TEXT]
5) Days to Cash (or % Collected ≤7 Days)
Choose one way to track weekly: (A) Median days from invoice to payment, or (B) % collected within 7 days.
Formulas:
Days to cash =
Median(payment date − invoice date)% collected ≤7 days =
# invoices paid ≤7 days ÷ # invoices issuedTarget: [≤7 days] or [≥80% ≤7 days] Actual: [VALUE] Status: [GREEN | RED]
Online pay links on every invoice/estimate? [YES/NO]
Deposits required on jobs over [$___]? [YES/NO]
Notes/Reason code: [LETTER(S)] Details: [TEXT]
Pull path:
- ServiceTitan: [Reports > AR Transactions or Payments > export with invoice + payment dates]
- Jobber: [Reports > Invoices/Payments > export] (include issue + paid dates)
- Housecall Pro: [Reports > Payments/AR > export] (issue + paid dates)
If RED → action (check one):
- Send invoices same day; enable online payments.
- Add automated reminders (Day 3, Day 7) with pay link.
- Require [%] deposits on jobs over [$_].
- Offer financing line on estimates/invoices.
- Owner: [NAME] Due: [DATE] Verify: [TEXT]
Reason Codes (use in Notes)
Use these in Notes to explain a RED metric.
- P = Peak inbound overflow
- S = Staffing gap / coverage
- T = Tool/report not configured
- Q = Quote quality (scope/photos/pricing)
- F = Follow‑up missed or late
- C = Calendar hole / rescue slot used
- W = Weather/parts delay
- D = Deposit policy off or ignored
- O = Online payments not enabled/used
- H = Handoff error (field → office)
- M = Material/backorder issue
One Red → One Fix (commit before you leave)
Pick one RED box above and make it mechanical.
- Red metric: [TEXT]
- Today’s fix (1 sentence): [TEXT]
- Owner: [NAME]
- Due: [DATE]
- How we’ll verify next Tuesday: [TEXT]
- Result next week (fill then): [TEXT]