Template

7‑Line Weekly Scorecard Template (Google Sheets) — Home Service Ops

A copy‑ready Google Sheets template for a one‑page, 7‑line weekly scorecard built from ServiceTitan/Jobber/Housecall Pro exports. Enter seven numbers each Friday, review trends every Tuesday, and coach one behavior per line using built‑in target bands and sparklines.

Make a copy in Google Sheets, then set three tabs: 1) Scorecard, 2) Rolling_12wk, 3) Targets. You’ll enter seven numbers each Friday from your CRM exports (ServiceTitan/Jobber/Housecall Pro) and review them every Tuesday for 15 minutes with your dispatcher and lead techs. The sheet color‑bands each line (good/better/best) and shows a 12‑week sparkline so you coach trends, not one‑offs.

Tab 1 — Scorecard (what you see every week)

Create a tab named Scorecard with this layout:

  • Header row

    • A1: Shop: [SHOP_NAME]
    • B1: Business Unit: [BUSINESS_UNIT]
    • C1: Trade: [PRIMARY_TRADE]
    • D1: Week ending: [WEEK_END_DATE] (Fri)
  • Column headers (row 3)

    • A3: KPI
    • B3: Owner
    • C3: This week
    • D3: Target band
    • E3: 12‑wk spark
    • F3: Pull path (ST/Jobber/HCP)
    • G3: Health check
    • H3: Behavior to coach (one line)
  • Rows 4–10 (paste this block)

    • A4: CSR booking rate % | B4: [CSR_LEAD_NAME]
    • A5: Speed‑to‑lead (min to first human) | B5: [INTAKE_LEAD_NAME]
    • A6: Schedule utilization % | B6: [DISPATCH_LEAD_NAME]
    • A7: First‑time fix rate % | B7: [LEAD_TECH_NAME]
    • A8: Estimate close rate % | B8: [ESTIMATOR_LEAD_NAME]
    • A9: Average ticket ($) | B9: [SERVICE_MANAGER_NAME]
    • A10: Revenue per crew‑day ($) | B10: [OPS_MANAGER_NAME]
  • Column D formulas (target band)

    • For higher‑is‑better KPIs (rows 4,6–10): =IF(C4="","",IF(C4>=Targets!C4,"Best",IF(C4>=Targets!B4,"Better",IF(C4>=Targets!A4,"Good","Below")))) then copy down to rows 6–10 (adjust row refs).
    • For lower‑is‑better KPI (row 5 – speed‑to‑lead): =IF(C5="","",IF(C5<=Targets!C5,"Best",IF(C5<=Targets!B5,"Better",IF(C5<=Targets!A5,"Good","Below"))))
  • Column E sparklines (from Rolling_12wk)

    • E4 (CSR booking): =SPARKLINE(Rolling_12wk!B2:B13,{"charttype","line";"ymin",0;"linewidth",2})
    • E5 (Speed‑to‑lead): =SPARKLINE(Rolling_12wk!C2:C13,{"charttype","line";"linewidth",2})
    • E6–E10: point each to columns D–H on Rolling_12wk respectively.
  • Conditional formatting (Scorecard!C4:D10)

    • Text/Cell contains Best → green fill.
    • Better → light‑green fill.
    • Good → amber fill.
    • Below → red fill.
    • Optional guardrail: if utilization (C6) > Targets!D6 (Max Safe) then add purple outline and note "Over‑booked risk".

Tip: Freeze header rows 1–3 and set C4:C10 to Percent or Currency as appropriate.

Tab 2 — Targets (good/better/best bands)

Create a tab named Targets. Fill these once for your shop. Use the examples if you don’t have baselines yet, then tune after 3–4 weeks. Units must match the KPI.

Paste this table starting at A3 (A=Good, B=Better, C=Best, D=Max Safe if applicable):

  • Row 4 (CSR booking rate % — higher is better)

    • A4: [CSR_GOOD_%] (example: 70)
    • B4: [CSR_BETTER_%] (example: 80)
    • C4: [CSR_BEST_%] (example: 88)
  • Row 5 (Speed‑to‑lead minutes — lower is better)

    • A5: [STL_GOOD_MIN] (example: 15)
    • B5: [STL_BETTER_MIN] (example: 5)
    • C5: [STL_BEST_MIN] (example: 2)
  • Row 6 (Schedule utilization % — higher is better with a cap)

    • A6: [UTIL_GOOD_%] (example: 70)
    • B6: [UTIL_BETTER_%] (example: 80)
    • C6: [UTIL_BEST_%] (example: 85)
    • D6: [UTIL_MAX_SAFE_%] (example: 90)
  • Row 7 (First‑time fix rate % — higher is better)

    • A7: [FTFR_GOOD_%] (example: 75)
    • B7: [FTFR_BETTER_%] (example: 82)
    • C7: [FTFR_BEST_%] (example: 88)
  • Row 8 (Estimate close rate % — higher is better)

    • A8: [EST_CLOSE_GOOD_%] (example: 40)
    • B8: [EST_CLOSE_BETTER_%] (example: 50)
    • C8: [EST_CLOSE_BEST_%] (example: 60)
  • Row 9 (Average ticket $ — higher is better; set by trade)

    • A9: [AVG_TICKET_GOOD_$] (example: 350 for HVAC service; 450 for plumbing)
    • B9: [AVG_TICKET_BETTER_$] (example: 500)
    • C9: [AVG_TICKET_BEST_$] (example: 650)
  • Row 10 (Revenue per crew‑day $ — higher is better; set by pricing/mix)

    • A10: [REV_PER_CREWDAY_GOOD_$] (example: 1,200)
    • B10: [REV_PER_CREWDAY_BETTER_$] (example: 1,600)
    • C10: [REV_PER_CREWDAY_BEST_$] (example: 2,000)

Notes:

  • Use your own history to tighten these after 3–4 weeks. Markets and job mix vary.
  • Keep utilization’s Max Safe under 90% to protect travel time, quality, and callbacks.

Tab 3 — Rolling_12wk (trend source)

Create a tab named Rolling_12wk with these columns starting row 1. Keep the newest week on the bottom; keep 12 rows only.

  • A1: Week ending (Fri)
  • B1: CSR booking %
  • C1: Speed‑to‑lead (min)
  • D1: Utilization %
  • E1: FTFR %
  • F1: Est. close %
  • G1: Avg ticket $
  • H1: Revenue / crew‑day $

Each Friday, add a row with this week’s seven values. Your Scorecard sparklines point to B2:B13 (and so on) to draw the trend. Optional: add a Notes column (I) for weather, promo, or staffing context.

KPI definitions + where to pull (enter values in Scorecard C4–C10)

Use this section to define each KPI, know what to export, and where to enter the weekly value (Scorecard column C).

  1. CSR booking rate (%)
  • Definition: Booked jobs ÷ eligible lead calls.
  • Enter as percent in C4.
  • Where to pull:
    • ServiceTitan: Call Center summary or Marketing Campaigns Performance → filter to Possible Lead calls; export and compute Booked/Eligible.
    • Jobber: If using CallRail, pull call data from CallRail and compare to Jobs Created; otherwise track from your phone system’s lead call list vs jobs created.
    • Housecall Pro: With CallRail integration, use call log + Jobs Created this week.
  • Coaching note: Use call tags to exclude non‑lead calls (spam, vendor). Coach one objection pattern weekly.
  1. Speed‑to‑lead (minutes to first human response)
  • Definition: Median minutes from new lead to first human call/text.
  • Enter minutes in C5.
  • Where to pull:
    • CallRail (with ST/Jobber/HCP): Activity log export; compute median time to first outbound after lead.
    • No integration? Sample 20 new web leads from your inbox/CRM and time‑stamp callbacks.
  • Alternative metric: % of leads responded to in <5 minutes (track if easier for your stack).
  1. Schedule utilization (%)
  • Definition: Billable hours ÷ total paid hours for field staff.
  • Enter percent in C6.
  • Where to pull:
    • ServiceTitan: Technician Performance or Timesheets + Job duration; export billable vs total hours.
    • Jobber: Time Sheets (if enabled) vs Visits; or use payroll export for total hours and Jobber job time for billable.
    • Housecall Pro: Time tracking vs Jobs/Invoices list.
  • Guardrail: Do not chase 100%. Set Max Safe in Targets!D6 (e.g., 90%).
  1. First‑time fix rate (FTFR %)
  • Definition: Jobs resolved on the first visit ÷ total jobs.
  • Enter percent in C7.
  • Where to pull:
    • ServiceTitan: Use Callback/Return Visit metrics or compute from Jobs with appointment count = 1.
    • Jobber/HCP: From Jobs list, approximate using repeat visits/callback flags; if unavailable, track callbacks % and compute FTFR ≈ 100% − callback%.
  • Coaching note: Stockouts and vague diagnoses are the usual culprits—tighten truck stock and pre‑call checks.
  1. Estimate close rate (%)
  • Definition: Accepted estimates ÷ sent estimates for the week (or rolling 2‑week window if low volume).
  • Enter percent in C8.
  • Where to pull:
    • ServiceTitan: Business Unit Performance → Sold Rate or Estimates status export.
    • Jobber: Insights → Reports → Quotes → export CSV; compute Approved/Sent.
    • Housecall Pro: Estimates list → Actions → Export; compute Approved/Sent.
  • Coaching note: Run a 3‑touch follow‑up (same‑day text, next‑day call, day‑4 options text) and track objections.
  1. Average ticket ($)
  • Definition: Revenue on completed opportunity jobs ÷ count of opportunity jobs (service tickets only; exclude installs unless that’s your focus).
  • Enter currency in C9.
  • Where to pull:
    • ServiceTitan: Opportunity Job Average (Technician or BU Performance reports).
    • Jobber: Jobs/Invoices revenue ÷ Jobs count, or use Products & Services report to confirm mix.
    • Housecall Pro: Jobs/Invoices export; revenue ÷ closed jobs.
  • Coaching note: Offer good/better/best options and financing; inspect every ticket for missed add‑ons (code compliance, maintenance).
  1. Revenue per crew‑day ($)
  • Definition: Revenue ÷ crew‑days (1 tech working a full day = 1 crew‑day; a 2‑tech crew for a full day = 2 crew‑days).
  • Enter currency in C10.
  • How to compute fast:
    • Crew‑days = total tech paid hours on jobs ÷ [STD_DAY_HOURS] (e.g., 8). Then revenue ÷ crew‑days.
    • If you don’t have hours, approximate: total jobs × average crew size × (scheduled hours ÷ [STD_DAY_HOURS]).
  • Where to pull revenue: same as Average ticket source above; pair with timesheets/schedule for crew‑days.
  • Coaching note: Dispatch for profitability (right tech, right job, right zone) and protect first jobs of the day.

Weekly cadence — Friday update and Tuesday huddle

Friday (10 minutes)

  1. Export or read this week’s numbers.
    • ServiceTitan: Technician Performance, Business Unit Performance, Call Center/Campaigns summary.
    • Jobber: Quotes, Products & Services, Jobs/Invoices; CallRail if integrated.
    • Housecall Pro: Jobs/Estimates lists; dashboard CSV; CallRail if integrated.
  2. Enter seven values in Scorecard C4–C10.
  3. Append a new row to Rolling_12wk with the same seven values and week ending date.
  4. Glance at Column D colors; jot one coaching note per red/amber line.

Tuesday (15 minutes — dispatcher + lead techs)

  1. Read the sparkline trend (E column) line by line; call out one health check (G) per KPI.
  2. For each KPI, agree on one behavior to coach this week; write it in Column H.
  3. Assign the owner (Column B) to report back next Tuesday on what changed.
  4. Close with one question: “Which single line is the cheapest to move by Friday, and what exact behavior will we coach to move it?”

Pull‑path crib notes (paste into F4–F10)

Copy these into Scorecard column F (or adapt for your stack):

  • CSR booking rate

    • ST: Call Center summary or Marketing Campaigns Performance → filter Possible Lead → export.
    • Jobber: Use CallRail call log; compare to Jobs Created this week.
    • HCP: CallRail + Jobs Created.
  • Speed‑to‑lead

    • CallRail: Activity log export → compute median minutes to first outbound after new lead.
    • Alt: Shared inbox/CRM timestamps for web leads.
  • Schedule utilization

    • ST: Technician Performance/Timesheets → billable vs total hours.
    • Jobber/HCP: Time tracking vs Jobs; else pair payroll hours with job hours.
  • First‑time fix rate

    • ST: Callback/Return Visit metrics or Jobs with appointments=1.
    • Jobber/HCP: Jobs + callbacks flags; else 100% − callback%.
  • Estimate close rate

    • ST: BU Performance (Sold Rate) or Estimates status export.
    • Jobber: Insights → Reports → Quotes → export.
    • HCP: Estimates list → Export.
  • Average ticket

    • ST: Opportunity Job Average (Tech/BU Performance).
    • Jobber: Jobs/Invoices revenue ÷ jobs; confirm with Products & Services.
    • HCP: Jobs/Invoices export.
  • Revenue per crew‑day

    • Revenue from same source as Avg ticket; crew‑days from timesheets/schedule.