Repeat Repair Rate: Find the Hidden Capacity Drain in Your Service Department

Learn how to measure repeat repairs and see how they quietly steal technician time, overload your schedule, and limit growth, even when revenue looks fine. You’ll also build a simple month-by-month view, add a rolling trend line, and spot where repeat work is rising so you can take action.

Download the Excel file used in this tutorial:

Repeat Repair Rate by Month

1. Create the three helper columns in the dataset

  • Add a Month column for the original job using the service date:
    • Use TEXT(ServiceDateCell,”mmmm”) and fill down.
  • Add a Prior Job Date column using the Linked Prior Job ID:
    • If Linked Prior Job ID is blank, return blank.
    • If not blank, look up the prior job’s service date by matching that Job ID back to the table (lookup the service date tied to the prior job ID).
  • Add a Days Since Prior Job column:
    • If Linked Prior Job ID is blank, return blank.
    • If not blank, calculate the difference between the current arrival time/date and the prior job date to get a day count.

2. Build the monthly summary table

  • Create a Month list (January through December).
  • Add column headers:
    • Count
    • Repair
    • Emergency
    • Repeat Repair Rate
    • 3-Month Average

3. Count repeat repairs for each month using COUNTIFS

  • Repeat repairs are jobs where:
    • Month matches (January, February, etc.)
    • Job Status equals Completed
    • Days Since Prior Job is less than 60 (or your chosen threshold)
  • Use COUNTIFS() with criteria:
    • Month = the month in your summary row
    • Job Status = “Completed”
    • Days Since Prior Job = “<=60” (entered as a quoted criteria string)

4. Count total completed Repair and Emergency jobs for each month

  • For the denominator, count the total “universe” of completed jobs for that month in two categories:
    • Completed Repair jobs in the month
    • Completed Emergency jobs in the month
  • Use COUNTIFS() again with criteria:
    • Job Status = “Completed”
    • Month = the month in your summary row
    • Call Type = “Repair”
  • Copy that formula and change the Call Type criteria to “Emergency” to populate the other column.

5. Calculate the Repeat Repair Rate

  • Compute Repeat Repair Rate as:
    • Repeat Repairs ÷ (Repair Jobs + Emergency Jobs)
  • Format as a percentage (Ctrl + Shift + 5) and fill down.

6. Calculate the 3-month rolling average correctly

  • Do not average the three monthly percentages.
  • Use a weighted approach:
    • Sum of repeat repairs for the last 3 months ÷ Sum of total jobs for the last 3 months
  • Build it so when you drag down, the window shifts automatically to the next 3-month period.

7. Create the line chart for Repeat Repair Rate and 3-month average

  • Select Month plus the two series:
    • Repeat Repair Rate
    • 3-Month Average
  • Insert a Line Chart (Insert → Recommended Charts or Line).
  • Format chart title as “Repeat Repair Rate by Month”.
  • Optional formatting shown in the video:
    • Remove decimal places in percentages via Number formatting.
    • Add data labels to the blue line (and optionally remove labels from the orange line if it gets noisy).

8. Build the technician by system type heat map

  • Create a unique list of Technician names using UNIQUE() on the Technician column.
  • Create a unique list of System Types using UNIQUE() on the System Type column.
  • Paste values to remove formulas.
  • Sort system types alphabetically, then transpose so System Types run across the top.

9. Calculate repeat rate for each technician and system type cell

  • For each technician-system type intersection, calculate:
    • Numerator: count of repeat repairs (Days < 60, Completed) for that technician and system type, limited to Call Type Repair or Emergency
    • Denominator: count of all completed jobs for that technician and system type (Repair or Emergency), without the Days < 60 filter
  • Use COUNTIFS() with multiple criteria:
    • Technician = row label
    • System Type = column header
    • Job Status = “Completed”
    • Call Type = Repair or Emergency
    • Days Since Prior Job < 60 (numerator only)

10. Use the curly bracket trick to include Repair and Emergency in one criteria

  • Instead of writing two COUNTIFS blocks, use an array criteria:
    • {“Repair”,”Emergency”}
  • Wrap the COUNTIFS in SUM() to combine both results into a single numerator or denominator.

11. Fix copy behavior with absolute and relative references

  • Before copying across the heat map, lock references properly:
    • Lock the technician column reference so it doesn’t shift when copying across.
    • Lock the system type row reference so it doesn’t shift when copying down.
  • Copy and paste across the table instead of dragging, so the table structure stays aligned.

12. Handle divide-by-zero and missing combinations with IFERROR

  • Wrap the full rate calculation in IFERROR():
    • If denominator is zero, return blank.
  • Keep true zeros as zeros (meaning jobs exist, but none were repeats), but hide errors where no jobs exist at all.

13. Add conditional formatting with a benchmark threshold

  • Set a benchmark cell (example in the video: 25%).
  • Apply conditional formatting:
    • Highlight Cell Rules → Greater Than → 25%
  • Add a second rule to format blanks:
    • New Rule → Format only cells that contain blanks
  • In Manage Rules, check “Stop If True” for the blank rule so blanks don’t get colored by other rules.

Tracking Repeat Repair Rate for HVAC Service Ops

Q1. What is “repeat repair rate” in HVAC service operations?
Repeat repair rate measures how often a completed repair requires another repair soon after. It helps service managers identify quality issues that create extra truck rolls, reduce capacity, and hurt scalability.

Q2. Why can repeat repairs hurt growth even if revenue looks okay?
Because repeat jobs consume the same technician hours and schedule slots as new revenue-generating work. If your days are packed but revenue is not rising, repeat repairs can be one of the hidden reasons.

Q3. What will I be able to build after watching this lesson?
You’ll create a month-by-month view of repeat repairs, calculate a repeat repair rate, add a rolling 3-month trend line, and build a chart that makes it easy to see whether repeat repairs are improving or getting worse.

Q4. Why does the video separate “Repair” and “Emergency” calls?
Repair and emergency calls represent the core service work where repeats matter most. Excluding other call types helps keep the metric focused and prevents the numbers from being distorted by work that is not a true repeat-repair scenario.

Q5. What is the best way to interpret a 3-month rolling average for repeat repair rate?
A rolling average helps you see the real trend without overreacting to a single month. It smooths out normal variability so you can tell whether repeat repairs are consistently rising (a warning sign) or improving over time.

Q6. Can I use this to identify which technicians or service types have the biggest repeat issues?
Yes. The lesson shows how to break repeat repair rate down by technician and service type so you can pinpoint where coaching, process improvements, or training will have the biggest impact.

Q7. What if my data export does not look like the one in the video?
That’s common. As long as you can structure your service data so repeat repairs can be linked back to the original job, you can recreate the same tracking and reporting approach.

Get more lessons like this
by joining our newsletter

Receive weekly Excel tutorials, tips, and KPIs straight to your inbox

Databoards

Analysis & Development