Roofing Appointment Setting Statistics: What 10,794 Transcribed Calls Actually Show
Most published roofing appointment-setting benchmarks are vendor marketing. They arrive without a sample size, without a date, and without a denominator, which makes them impossible to check and impossible to argue with. This page is our attempt at the opposite: one measured set, every number stated with the n it came from, and a limitations section longer than the findings.
In February and March 2026 the appointment-setting campaigns on our floor produced 10,848 outbound call recordings, every one transcribed in full. After 54 of them were removed as belonging to a non-roofing plumbing list, 10,794 outbound roofing appointment-setting calls remained. Everything below is measured on that set.
What this study measured, and what it cannot measure
Three constraints define the whole thing, and they matter more than any single figure.
It is entirely outbound. These are cold appointment-setting dials to homeowners who did not contact us first. Nothing here describes an inbound call, so this page carries no answer rate, no speed-to-answer figure, and no after-hours share. Those are real questions and this corpus cannot answer any of them.
It is a fixed window, not a trailing period. The measurement covers February and March 2026 and nothing refreshes it. Where you see a percentage below, read it as “was, over those two months”, never as “is”.
It is aggregate only. No client, no campaign, no agent and no homeowner is identified anywhere on this page, and no per-client figure is published.
How the corpus was built
Every call placed by the roofing appointment-setting campaigns across the two-month window was captured, then transcribed with a local speech-recognition pass, then aggregated. The plumbing filter that removed 54 records is the only exclusion applied to the population.
The two corpus totals were reconciled rather than assumed. Per-agent totals exist in two places, one computed on the unfiltered 10,848 and one on the roofing-filtered 10,794. The five per-agent differences are 8, 13, 8, 12 and 13, which sum to exactly 54 — the same 54 records as the corpus difference. That reconciliation is what makes both totals safe to state.
Finding 1: most dials never become a conversation
The single most distorting habit in published appointment-setting statistics is quoting a per-conversation rate as if it were a per-dial rate. Here are both.
| Denominator | Bookings | Rate |
|---|---|---|
| Homeowners actually reached (5,772) | 210 | 3.6% |
| Every dial placed (10,794) | 212 | 2.0% |
The two are not nested. The per-contact figure sums the 11 published agent scorecards; the per-dial figure covers the whole corpus. Publishing 3.6% alone flatters, because it hides how much of a list never reaches a person. Publishing 2.0% alone damns, because it charges the setter for disconnected numbers and no-answers.
One more caution on the 3.6%. “Contact” here means a person was reached and a conversation happened. It does not mean the lead was qualified. A rate computed on qualified contacts would be higher than this, not lower.
How outbound roofing calls actually end
| Outcome | Count | Share of 10,794 |
|---|---|---|
| Hang-up | 2,827 | 26.2% |
| Explicit “not interested” | 1,173 | 10.9% |
| Do-not-call request | 439 | 4.1% |
| Did not qualify | 329 | 3.0% |
| Booked an inspection | 212 | 2.0% |
| Asked for a callback | 78 | 0.7% |
These six do not add up to the corpus, and that is deliberate. Together they account for 46.9% of the 10,794. The remaining 53.1% carry dispositions the underlying analysis never enumerated — answered with no conversation, declined, dead air, wrong number and the rest. So this table is a list of the six outcomes that were counted, not a partition of the population, and it must never be drawn as a pie chart or a stacked bar. Anything that implies these six sum to a whole is wrong.
The do-not-call line is the one we find hardest to look at and the one worth the most attention: 4.1% of the homeowners dialled asked to be removed from the list. That is our own measurement of a hostility that the Federal Trade Commission observes from the other side, where the national Do Not Call registry held about 258.5 million active registrations as of 30 September 2025 (FTC press release announcing the FY2025 National Do Not Call Registry Data Book, 11 December 2025). Overall complaints rose in FY2025 even though unwanted-call reports remain roughly 48% below FY2021. Two independent measurements, one from our dialer and one from a federal agency, describe the same consumer.
Finding 2: a booked call and a lost call are different events
| Outcome | Mean | Median | n |
|---|---|---|---|
| Booked | 215s | 192s | 212 (every booked call in the corpus) |
| Ended “not interested” | 34s | 30s | 60 (random sample) |
| Ended in a hang-up | 27s | 20s | 40 (random sample) |
The booked arm is the full booked population, so it carries no sampling error. The other two arms are random samples and their n is printed above for that reason.
Reported on its own, the booked figure says only that long conversations exist. Set beside the 27-second hang-up it says the thing that actually matters: these are not variations on one call. They are different events with different shapes, and a floor that reports a single “average call duration” across all of them is reporting a number that describes nothing.
Finding 3: the 60-second line, and why it is not a lever
209 of the 212 booked calls, or 98.6%, ran past 60 seconds. In a 60-call random sample of conversations that ended “not interested”, 5 of them, or 8.3%, did.
That is a striking separation, and it is also the finding most likely to be misused, so we will state the limit plainly. This is a correlation on calls that were already labelled by outcome. It is not a lever. A call runs long because it is going well. Staying on the phone does not cause a booking, and coaching a setter to hold a hostile homeowner past the one-minute mark will produce longer lost calls, not more appointments.
The sentence this finding supports is: a call that books is almost always a call that got past the first minute. The sentence it does not support, and which we will not write, is any probability of booking given a 60-second call. That quantity needs the duration profile of the other 53% of dispositions, and no source we hold publishes it.
Finding 4: objections are the normal content of a real conversation
A separate 635-call set of substantive conversations was read line by line. In it, 82% of the calls that booked and 78% of the calls that were lost contained at least one homeowner objection.
Four percentage points separate the two sides. The honest reading of that pair, and the only reading it supports, is that an objection tells you a conversation is happening. It does not tell you the conversation is failing.
Two selection artifacts travel with this set and both change how it may be used.
First, it is enriched. Booked calls make up 33% of the 635 against 2.0% of the corpus, an enrichment factor of about 17 times. Nothing derived from this set is a population rate.
Second, its losing side is only long not-interested conversations. It excludes hang-ups entirely, and 19 of a 40-call hang-up sample ended inside 15 seconds — before an objection could physically be voiced. So the 78% describes long lost conversations, not lost calls.
What homeowners actually objected to
Across those 635 substantive conversations, 950 objections were logged across 20 types, an average of 1.50 per conversation.
| Objection | Appearances |
|---|---|
| Cost or price | 234 |
| ”Not interested” | 200 |
| ”No damage” | 110 |
| ”My roof is fine” or newly replaced | 105 |
| ”Not right now” | 98 |
Of the 200 flat not-interested objections, 21 occurred in a conversation that booked anyway. That is the number worth carrying into a coaching session: the hardest objection in the set was not always terminal.
We publish counts and rank order. We do not publish a per-objection conversion rate, and the reason is the enrichment above — on a set that is 33% booked by construction, a per-objection “book rate” would overstate the real world by roughly an order of magnitude. A reader who saw such a column would reasonably conclude that a homeowner raising a price objection books four times out of ten. Nothing in this data supports that.
Finding 5: what a call that booked contained
| Element present in the call | Share of the 212 booked calls |
|---|---|
| Address confirmation | 80.7% |
| Insurance mentioned | 52.8% |
| The word “free” | 52.4% |
| The homeowner’s own street named | 38.7% |
| Weather damage referenced | 27.8% |
| Drone inspection mentioned | 17.9% |
| A compliment about the house | 9.9% |
Every share above is measured on the full booked population of 212, not a sample. Each one reconstructs to within a tenth of a whole call against that denominator, which is how we know the denominator really is all of them.
This table is descriptive and nothing more. We are deliberately not publishing a lift, a multiple, or the matching share on the losing side. Two internal analyses of the same corpus disagree about the loss-side figures, and one of the disagreeing numbers cannot be reconstructed against any stated sample size. A widely repeated claim that mentioning insurance makes a roofing call dramatically more likely to book is that unreconcilable number turned into a ratio. It is not sourced, and we will not repeat it.
There is also a simpler reason to be careful with this table: a longer successful conversation has more room in it to mention more things. Presence of an element in a booked call is not evidence that the element caused the booking.
Finding 6: the largest measured effect was the person on the phone
Across the 11 agents with a published scorecard, the appointment rate per contacted homeowner ranged from 1.2%, or 2 bookings from 168 contacts, to 5.3%, or 43 bookings from 806 contacts. That is a 4.5-fold spread. The blend across those 11 scorecards is 3.6%, or 210 bookings from 5,772 contacts.
Every rate here was recomputed from the raw counts on each scorecard rather than copied, and all 11 recomputed rates agree with the published per-agent rates to within rounding.
Same campaigns. Same lists. Same hours. The person holding the phone moved the result by more than four times. If you are weighing a dialer purchase against an experienced setting team, that spread is the number to argue with — software does not close the gap between a 1.2% setter and a 5.3% setter.
What you can listen to
Talking about call craft in percentages has a low ceiling. We publish 20 consent-cleared roofing appointment recordings at our live call library, where you can hear the objection handling described above happen in real time.
Read that set for exactly what it is. It is a curated reel: every recording in it ended in a booked appointment, because that is how the set was selected, and every recording in it is outbound. It is evidence about craft. It carries no denominator of its own and it can never be read as a booking rate. Any rate claim belongs to the measured figures on this page.
The same corpus, read as a channel decision rather than as a benchmark, is written up in cold calling for roofing leads — how the calls end, what the federal calling rules permit, and why the agent spread matters more than the script. Where the appointments come from is a separate decision, and the case for exclusive roofing leads over shared ones is worked through there.
Limitations
We would rather publish this list than have someone else derive it.
- Outbound only. No inbound call is in this data. Any inbound metric — answer rate, speed to answer, after-hours share, share handled in Spanish — is genuinely unmeasured by us today, and we would rather say so than estimate it.
- A fixed two-month window. February and March 2026. Not a trailing 90 days, not refreshed, and seasonal effects on storm-driven roofing work are real.
- The disposition table is not a partition. Six outcomes covering 46.9% of the corpus. The other 53.1% is not silence, it is simply not enumerated in the sources we hold.
- Two of three duration arms are samples. n=60 and n=40 respectively; only the booked arm is a full population.
- A known defect in the source duration table. The hang-up column of the underlying distribution sums to 97.5%, meaning one of the 40 sampled hang-ups is missing from it. The mean and median for that arm are reported separately and are unaffected, but no hang-up percentage should be derived from that distribution without this caveat attached.
- A correction to an earlier internal summary. An in-house write-up of this corpus understated the share of not-interested calls lasting past 60 seconds by counting only one duration bucket. The corrected figure, 5 of 60, is what appears in Finding 3. If you have seen the lower number attributed to us, it was wrong.
- The 635-conversation set is enriched and one-sided. About 17 times over-represented on booked calls, and its losing side excludes hang-ups. No population rate may be derived from it.
- The agent scorecards do not cover the whole corpus. They account for 10,703 of the 10,794 records, which is why the per-contact and per-dial booking rates are stated as two separate measurements rather than one nested pair.
- No campaign count is published. Two internal documents disagree on how many campaigns the corpus spans, and their per-campaign totals do not sum to the corpus, so we treat the count as unresolved rather than pick one.
- Everything is descriptive. Nothing on this page is a controlled experiment. No element was randomly assigned to a call, so no causal claim is available from it.
What we deliberately did not publish
Naming the numbers we withheld is part of the method, because a study that only shows its wins is an advertisement.
- Any per-objection conversion rate. The set it would come from is enriched roughly 17 times on booked calls.
- Any phrase “lift” or multiple. The loss-side shares that a lift needs are inconsistent between two internal analyses of the same corpus.
- Any weekday or hour-of-day booking rate. Figures for these exist in an internal summary, but that summary publishes no denominators for them and we could not reconstruct them from any more granular document. They are omitted rather than hedged.
- Any campaign count, campaign name, client name or agent name. The first is unresolved; the rest are confidential by policy.
- Any inbound figure at all.
How to cite this study
Cite it as: The Call Center Doctors, “Roofing Appointment Setting Statistics: What 10,794 Transcribed Calls Actually Show”, 27 July 2026, measured on outbound roofing appointment-setting calls placed February to March 2026.
Every figure above is drawn from a fact table with stable identifiers, so a claim can be traced to the exact record it came from:
| Fact id | What it records |
|---|---|
ccdocs-roofing-call-corpus | Corpus size, period, and the plumbing-filter reconciliation |
ccdocs-appointment-set-rate | Booking rate per contact and per dial |
ccdocs-outbound-disposition-mix | How outbound roofing calls ended |
ccdocs-call-duration-by-outcome | Duration mean, median and n by outcome |
ccdocs-sixty-second-threshold | The 60-second separation and its correlation caveat |
ccdocs-objection-prevalence | Objection presence in booked and lost conversations |
ccdocs-objection-mix | Objection types, counts and rank order |
ccdocs-booked-call-composition | What booked conversations contained |
ccdocs-agent-booking-rate-spread | Per-agent spread and the blended rate |
ccdocs-published-call-recordings | The published recording set |
The caveat figures quoted in the limitations section — the 46.9% coverage, the 17-fold enrichment, the 19 short hang-ups, the 10,703 scorecard coverage and the 97.5% column defect — are recorded in the methodology notes attached to those same records.
If you are running a roofing phone room and want to compare your own floor against this, the two numbers to line up first are per-contact booking and median booked duration. Those are the two we would ask you for. If you would rather we ran the comparison with you, get in touch.