Back to Blog
Analytics

7 roofing KPIs every roofing company should track

The 7 roofing KPIs worth checking every week, how to calculate each one with a worked example, and which of them the RoofSell Analytics page shows for you.

James Liu·January 14, 2026·5 min read

Roofing KPIs are the handful of numbers that tell you if your sales process is working: how many leads come in, how fast you answer them, how many you close and what each job is worth. You don't need a data team to track them. You need 7 numbers, a consistent way to count them and about 20 minutes a week. Here's each one, how to calculate it and where to find it.

A note on the examples: the numbers below are made up to show the math. Plug in your own.

1. Leads per month, by source

What it is: how many new leads you get each month, split by where they came from.

Why it matters: a slow month in sales often starts as a slow month in leads. Splitting by source tells you which marketing is paying for itself.

Where to find it: the RoofSell Analytics page shows Total Leads and a Leads per Month chart for up to 6 recent months. On the Dashboard, the Lead Source filter separates leads from your website widget (Widget) from quotes your reps created by hand (Manual). The Market filter does the same by city.

2. Speed to lead

What it is: the time between a lead arriving and your first real conversation with the homeowner.

Why it matters: homeowners often ask several companies for a quote at once. The first useful call tends to set the terms for the rest.

How to track it: RoofSell doesn't calculate response time for you today, so keep a simple log. For each new lead, note when it arrived (the Create Date on the Dashboard) and when someone first spoke to the homeowner. Average it once a week. Set a target, such as under 1 hour during business hours, and look at every miss.

3. Lead-to-close rate

What it is: the share of leads that turn into signed jobs.

Formula: won quotes divided by total leads, times 100.

Example: 80 leads and 14 won jobs gives 14 / 80 = 17.5%.

Where to find it: Analytics shows this as Conversion Rate, calculated as won quotes divided by all leads. It's only as accurate as your statuses, so make sure every finished deal is marked Won or Lost on the Dashboard.

Close rate by rep

The Analytics page shows the company total. To compare reps, filter the Dashboard by Rep, then by Status, and compare each rep's Won count with their total. Do it monthly. A big gap between two reps working similar leads is worth a conversation. Look at follow-up habits first, since they're the easiest thing to coach.

4. Average deal size

What it is: the average revenue per won job.

Formula: total revenue from won jobs divided by the number of won jobs.

Example: 14 won jobs worth $196,000 in total gives $196,000 / 14 = $14,000 per job.

Where to find it: Analytics shows Avg Deal Size. One detail matters here. RoofSell uses each won quote's estimated price, and when a quote lists several products, that's the price of the lowest option. If your homeowners often pick a higher tier, your real average is higher than the dashboard shows. Compare it with your signed contracts once a quarter.

5. Revenue by month

What it is: revenue from won jobs, month by month.

Why it matters: it shows your seasonality and tells you whether a good quarter was a trend or a one-off.

Where to find it: Analytics shows Total Revenue and a Revenue by Month (Won Quotes) chart. Two things to know when you read it. It groups won quotes by the month the lead came in, not the month the contract was signed. And it uses the same estimated price as average deal size, so treat it as a conservative figure.

6. Open quote age

What it is: how long your open quotes have been waiting for an answer.

Why it matters: a quote that's been open for 6 weeks often isn't a live deal anymore. A pile of old open quotes makes your pipeline look healthier than it is.

How to track it: on the Dashboard, set the Status filter to Open and sort by Create Date, oldest first. Anything older than your normal sales cycle needs a call this week or a Lost status. The Status Breakdown chart on Analytics shows how many leads sit in New, Open, Won and Lost. A growing New count means leads are arriving faster than anyone is working them.

7. Cost per lead and cost per job

What it is: what you spend on marketing for each lead, and for each signed job.

Formulas: monthly marketing spend divided by leads that month, and monthly marketing spend divided by jobs won that month.

Example: $3,000 a month on ads and listings, 60 leads and 9 won jobs. Cost per lead is $3,000 / 60 = $50. Cost per job is $3,000 / 9, or about $333.

How to track it: RoofSell doesn't know your ad spend, so this one lives in your own spreadsheet. Take the lead and win counts from Analytics and divide. Then compare cost per job with average deal size. About $333 per job is easy to live with on a $14,000 roof. On a $1,500 repair it eats most of the margin.

A 20-minute weekly review of your roofing KPIs

  1. Open Analytics. Write down Total Leads, Conversion Rate and Avg Deal Size, and compare them with last week.
  2. Look at Leads per Month. Is this month on pace with last month?
  3. On the Dashboard, set Status to New. Every lead here should have an Active Rep and a first call logged.
  4. Set Status to Open, sort by Create Date and pick the 5 oldest quotes to follow up on or close out.
  5. Update your speed to lead and cost per lead sheet.
  6. Pick one number to improve next week and one action that should move it.

The follow-up habits that move these numbers are covered in 5 tactics to close more roofing deals.

Common mistakes when tracking roofing KPIs

  • Leaving quotes in Open forever. Your conversion rate looks lower and your pipeline looks bigger than reality.
  • Counting test leads. Delete test quotes so they don't skew the totals.
  • Comparing back-to-back months without thinking about season. Once you have a year of history, compare each month with the same month last year.
  • Tracking 30 numbers. Start with these 7 and add another only when you know what you'll do with it.

If you're new to statuses in RoofSell, the help article on the lead lifecycle explains what New, Open, Won and Lost mean. The features page shows everything else included in the dashboard.