Template

The One‑Page Weekly Owner Scorecard (Call → Schedule → Invoice)

A fill‑in‑the‑blanks, one‑page scorecard for home‑service owners. Includes exact formulas, where to pull each number (ST/Jobber/HCP, LSA, call‑tracking, accounting), target ranges, a 10‑minute Friday export checklist, and a 10‑minute Tuesday huddle script.

Print this one‑pager or copy it into your docs tool. Fill it out every Friday in under 10 minutes, then review it Tuesday with dispatch + lead techs. All fields use [BRACKETS] for you to fill. Formulas are plain‑English. We include exact pull‑steps for ServiceTitan (ST), Jobber, Housecall Pro (HCP), Google Local Services Ads (LSA), call‑tracking (e.g., CallRail), and accounting (QB/Stripe). Targets are practical ranges—set your own [YOUR_TARGET] per metric.

One‑page scorecard (fill this each Friday)

Fill this header, then the five boxes below. Keep it to one page.

  • Week of: [WEEK_START] → [WEEK_END]
  • Trade(s): [TRADE] • Mix: [SERVICE_%]% service / [INSTALL_%]% install • Season: [SEASON]
  • Tools: [CRM] • [CALL_TRACKING] • [ACCOUNTING]
  • Owner: [OWNER_NAME] • Prepared Friday by: [PREP_NAME]
  1. Missed‑call %
  • This week: [MISSED_CALL_PCT]% • Target: [YOUR_TARGET_MISSED_CALL]% • Trend vs last week: [UP/DOWN/FLAT]
  • One action if red: [ACTION]
  1. % first responses <15 min
  • This week: [FIRST_RESPONSE_15_PCT]% • Target: [YOUR_TARGET_FIRST_RESPONSE]% • Trend: [UP/DOWN/FLAT]
  • One action if red: [ACTION]
  1. Estimate close % (last 30 days)
  • This week: [EST_CLOSE_PCT]% • Target: [YOUR_TARGET_CLOSE]% • Trend: [UP/DOWN/FLAT]
  • One action if red: [ACTION]
  1. Schedule utilization %
  • This week: [UTILIZATION_PCT]% • Target: [YOUR_TARGET_UTIL]% • Rescue slot held? [YES/NO]
  • One action if red: [ACTION]
  1. Days‑to‑cash (service) or % ≤7 days
  • This week: [DTC_DAYS] days OR [DTC_7DAY_PCT]% ≤7 days • Target: [YOUR_TARGET_DTC]
  • One action if red: [ACTION]

1) Missed‑call %

What it tells you: How leaky your phones were.

Definition: Inbound calls that rang your line and weren’t answered by a human.

Formula: Missed‑call % = MISSED ÷ (ANSWERED + MISSED + VOICEMAIL)

Fill‑fields

  • [ANSWERED_CALLS] • [MISSED_CALLS] • [VOICEMAILS]
  • Missed‑call % auto‑calc = [MISSED_CALLS] ÷ ([ANSWERED_CALLS]+[MISSED_CALLS]+[VOICEMAILS])

Pull it fast

  • ST: Phones Pro → Calls → Filter [DATE=WEEK] and [DEPT/Main] → Export → Count Answered/Missed/Voicemail.
  • CallRail (or similar): Analytics → Call Log → Filter [DATE=WEEK] + [TAG=Sales] → Export summary.
  • If no tracker: Phone system log → inbound summary for main line.

Targets

  • Service‑heavy: <8–12% weekly. Weather spikes can bump higher—show recovery by week‑end.
  • Install‑heavy: Keep under 10–12% during active campaigns.

If red this week, try one

  • Route after‑hours to live answer or overflow ([VENDOR] or on‑call rotation).
  • Add a 2‑attempt missed‑call callback loop within 10 minutes, then 60 minutes.
  • Tag voicemail line in call‑tracking so it isn’t counted as “answered.”

Pitfalls to avoid

  • Untagged voicemails counted as answered.
  • Ring groups that log to a dead number.
  • Counting internal/tech calls in totals. Use [TAG=Leads/Sales].

2) % of first responses <15 minutes

What it tells you: How fast you touch new leads/messages.

Definition: First human reply (call/SMS/email) within 15 minutes of the original inquiry (web form, LSA message, voicemail, missed call, social DM).

Formula: % under 15 = (LEADS_RESPONDED_&lt;15) ÷ (TOTAL_NEW_LEADS)

Set your definitions

  • Count a “first response” when you: call back and connect, send a personalized SMS, or leave a voicemail + follow with SMS.
  • Auto‑responders don’t count.

Fill‑fields

  • [TOTAL_NEW_LEADS_THIS_WEEK]
  • [RESPONDED_WITHIN_15_MIN]
  • % under 15 auto‑calc = [RESPONDED_WITHIN_15_MIN] ÷ [TOTAL_NEW_LEADS_THIS_WEEK]

Pull it fast

  • LSA: Local Services → Leads → Filter [DATE=WEEK] → Sort by "First response" → Export.
  • ST/Jobber/HCP: Activity/Communications log → Filter [DATE=WEEK] + [Lead/Estimate Created] → Spot first outbound touch timestamp.
  • Shared inbox (Gmail/Outlook/Helpdesk): Search label [NEW LEADS] + export first reply times.

Targets

  • With dispatcher: ≥90% under 15 minutes.
  • Owner/CSR split: ≥80% under 15 minutes.

If red this week, try one

  • Put LSA + web leads into a shared inbox with a 10‑minute SLA rule + mobile push.
  • Enable missed‑call text‑back with a booking link.
  • Block one dispatcher from phones 9–11am just for first responses.

Pitfalls to avoid

  • Counting auto‑replies.
  • Double‑counting multi‑channel inquiries (same person called + filled form). Deduplicate by phone/email.

3) Estimate close % (30‑day window)

What it tells you: Are sent quotes turning into approved work?

Definition: Approved estimates ÷ sent estimates in the last 30 days. Exclude $0/warranty lines and duplicates.

Formula: Close % = APPROVED_ESTIMATES_30D ÷ SENT_ESTIMATES_30D

Scope settings (set once, revisit quarterly)

  • Include job types: [SERVICE_REPAIR], [REPLACEMENT], [INSTALL_PROJECT].
  • Exclude: [$0/WARRANTY], [DUPLICATE/RESENT], [INTERNAL NO‑CHARGE].

Fill‑fields

  • [SENT_ESTIMATES_30D] • [APPROVED_ESTIMATES_30D]
  • Close % auto‑calc = [APPROVED_ESTIMATES_30D] ÷ [SENT_ESTIMATES_30D]

Pull it fast

  • ST: Reports → Estimates/Opportunity report → Filter [DATE=LAST 30 DAYS], [Business Unit], [Exclude $0] → Export status counts.
  • Jobber: Reports → Quotes → Conversion/Status → Filter [LAST 30 DAYS] → Export.
  • HCP: Reports → Estimates → Conversion Rate → Filter [LAST 30 DAYS] → Export.

Targets (tune by mix/season)

  • Service replacement: 45–65%.
  • Repairs/SMB jobs: 35–55%.
  • Roofing/large projects: 25–40% with higher average ticket.

If red this week, try one

  • Run a 3‑touch follow‑up on all open quotes inside 7 days (Day 1 SMS, Day 3 call, Day 7 email with a simple choice).
  • Add 1 photo + 1 plain‑English “why now” line to every quote.

Pitfalls to avoid

  • $0 invoices/lines inflating denominator.
  • Mis‑typed job types mixing repairs with replacements.
  • Counting “options” as separate sent estimates—dedupe per decision.

4) Schedule utilization %

What it tells you: Did you book most of the hours you could actually run?

Definition: Booked job duration (or sold hours) ÷ available tech hours (exclude PTO/training; protect one rescue slot/crew/day).

Formula: Utilization % = BOOKED_HOURS ÷ AVAILABLE_HOURS

Fill‑fields

  • [#_TECHS_THIS_WEEK] • [STD_SHIFT_HOURS] • [PTO_TRAINING_HOURS]
  • Available hours = ([#_TECHS_THIS_WEEK] × [STD_SHIFT_HOURS] × [DAYS_WORKED]) − [PTO_TRAINING_HOURS] − [RESCUE_SLOTS_HELD_HOURS]
  • Booked hours this week = [BOOKED_JOB_HOURS]

Pull it fast

  • ST: Capacity Planning or Dispatch Board export → Sum booked durations for [DATE=WEEK]. Also pull tech availability hours (exclude on‑call only).
  • Jobber/HCP: Calendar export → Sum job durations; subtract blocked PTO/training.

Targets

  • Service routes: 85–92% weekly. Keep one same‑day rescue slot per crew.
  • Install crews: 80–90% weekly; use milestones to align cash.

If red this week, try one

  • Hold a daily rescue slot per crew (e.g., 2–3pm) and tighten confirmation rules to reduce rollovers.
  • Pre‑sell maintenance/IAQ jobs into light days to smooth load.

Pitfalls to avoid

  • Counting on‑call/emergency coverage as available hours.
  • Estimating durations too low (drives rollovers and fake “wins”).

5) Days‑to‑cash (service) or % ≤7 days

What it tells you: How long cash takes to hit the bank after the job.

Pick one primary metric (track both if you can):

  • Days‑to‑cash (DTC): average days from job completion to funds received.
  • % ≤7 days: share of service tickets collected within 7 days.

Formulas

  • DTC = AVG( DEPOSIT_DATE_OR_FINAL_PAYMENT_DATE − JOB_COMPLETION_DATE )
  • % ≤7 days = (# SERVICE TICKETS PAID IN ≤7 DAYS) ÷ (# SERVICE TICKETS COMPLETED)

Fill‑fields

  • [SERVICE_TICKETS_COMPLETED] • [PAID_<=7D] • [AVG_DTC_DAYS]

Pull it fast

  • ST: Reports → Payments/AR → Filter [DATE=WEEK COMPLETED] → Export completion date + payment/deposit date.
  • Jobber: Reports → Payments → Filter [DATE=WEEK] → Export.
  • HCP: Reports → Payments Export → Filter [DATE=WEEK] → Export.
  • Stripe/QB: Payouts/Deposits → Match to invoice IDs if needed.

Targets

  • Service tickets: ≥70% collected within 7 days; push same‑day where possible.
  • Installs/projects: Keep blended DTC ≤14 days using deposits/milestones.

If red this week, try one

  • Require on‑site payment on service calls (card/ACH) and send invoice before tech leaves.
  • For installs, add [30% DEPOSIT AT BOOKING] + [50% ON DELIVERY] + [20% AT COMMISSIONING].

Pitfalls to avoid

  • Completion date not set (stuck “in progress”).
  • Checks logged as “promised” but not received.
  • Deposits not linked to job/project (or logged to wrong customer).

10‑minute Friday export checklist

Use this quick routine to pull, paste, and be done in under 10 minutes.

  1. Phones (2 min)
  • ST Phones Pro or CallRail → Filter [THIS WEEK] → Export summary → Paste [ANSWERED/MISSED/VOICEMAIL].
  1. First responses (2–3 min)
  • LSA Leads → Filter [THIS WEEK] → Export → Count first responses under 15 minutes.
  • CRM activity (ST/Jobber/HCP) → Spot‑check timestamps for web leads/messages → Estimate % if tooling is weak; document method.
  1. Estimates (2 min)
  • CRM → Estimates/Quotes status report [LAST 30 DAYS] → Exclude $0/warranty/duplicates → Paste [SENT/APPROVED].
  1. Schedule (2 min)
  • Calendar/capacity export [THIS WEEK] → Sum booked hours; subtract PTO/training and held rescue slots → Paste [BOOKED] and [AVAILABLE].
  1. Cash (1–2 min)
  • Payments export [THIS WEEK COMPLETED] → Calculate DTC or % ≤7 days → Paste result.

Final: Circle any red vs target and write one [ACTION] per red box.

10‑minute Tuesday huddle script

Keep it tight and decide one action per red box. Timebox to 10 minutes.

  1. Open last Friday’s scorecard. Read each metric out loud with green/amber/red status.

  2. If a metric is red, ask exactly one of these:

  • Phones: “Which hours/channels spiked misses? What will we route/change before Friday?”
  • First response: “Where are we slow (LSA, web form, SMS)? What block or automation gets us under 15?”
  • Close rate: “Which step in the 3‑touch follow‑up didn’t happen? Fix it or change the script?”
  • Utilization: “Where did rollovers come from? Do we need a bigger rescue slot or tighter confirms?”
  • Cash: “Which step is aging (on‑site payment, invoice send, funding)? What do we change today?”
  1. Pick one [ACTION] per red metric. Assign [OWNER], [DUE_DATE].

  2. End with the question: “Which of our five went red last week, and what one action will we try by Friday?”

Target ranges cheatsheet (service vs. install)

Use these as starting points; set your own [YOUR_TARGET] on the scorecard.

  • Missed‑call %: Service <8–12%; Install <10–12%.
  • % first responses <15 min: Dispatcher shop ≥90%; lean team ≥80%.
  • Estimate close % (30‑day): Replacement 45–65%; Repairs/SMB 35–55%; Roofing/large projects 25–40%.
  • Schedule utilization %: Service 85–92% with one rescue slot/crew; Installs 80–90%.
  • Days‑to‑cash: Service ≥70% ≤7 days (push same‑day); Installs blended ≤14 days via deposits/milestones.

Data‑cleanup pitfalls (and fixes) — do this once, then spot‑check monthly

Get clean inputs before you chase fixes.

  • Missed‑call %: Tag voicemail lines; filter out internal calls; segment by channel if possible.
  • First response: Define what “counts”; dedupe multi‑channel leads; ignore auto‑replies.
  • Close %: Exclude $0/warranty/duplicates; verify job types; ensure “convertible” flags are set correctly in CRM.
  • Utilization: Exclude PTO/training/on‑call; hold a rescue slot; use realistic job durations.
  • Days‑to‑cash: Ensure completion date is set; tie deposits to projects; reconcile payouts to invoices weekly.

CSV mini‑spec (optional) — for manual/Excel workflow

If you don’t have built‑in reports, this gets you there.

CSV columns to export

  • Phones: date, answered, missed, voicemail, source/channel.
  • First response: lead_id, source, created_at, first_outbound_at, minutes_to_first.
  • Estimates: estimate_id, created_at, status, job_type, total_amount.
  • Schedule: job_id, tech, start, end, duration_hours, job_type.
  • Cash: job_id, completed_at, payment_date, amount, method.

Quick formulas

  • Missed‑call %: = missed ÷ (answered + missed + voicemail)
  • % <15 min: = COUNTIF(minutes_to_first<=15) ÷ COUNTALL(leads)
  • Close %: = COUNTIF(status IN {approved}) ÷ COUNTIF(status IN {sent, view})
  • Utilization %: = SUM(duration_hours) ÷ ([#techs × shift_hours × days] − PTO − training − rescue)
  • DTC: = AVERAGE(payment_date − completed_at) or % ≤7: = COUNTIF(DAYS<=7) ÷ COUNTIF(all service tickets)