5× more appointments from the same lead list.
A lead-scoring model, proven in a live A/B test on 28,695 leads: same campaign, same agents, same scripts. The only change was the order of the list.
The dialer called every purchased list top to bottom, in the order the supplier delivered it. Agents burned hours on addresses that were never going to book, while the best leads sat untouched at the bottom. Nobody knew which half of a 25,000-row file was worth calling first.
- A scoring model (XGBoost) trained on 295,000 historical leads and 528,000 calls, predicting the probability that a lead becomes a booked appointment.
- Features from public data only, joined per address: demographics, building age, floor area, energy characteristics. Any new list can be scored before the first dial, no behavioral history needed.
- A local pipeline that ingests supplier files, deduplicates against the full contact history (existing customers, previously called, previously scored), scores every row and outputs dialer-ready batches.
I scored a fresh list of 28,695 leads, split it into the top-scored half and the bottom-scored half, and ran both through the same campaign under identical conditions.
| Metric | Top half | Bottom half | Difference |
|---|---|---|---|
| Reached (spoke to someone) | 24.8% | 21.1% | +18% |
| Appointments booked | 0.6% | 0.1% | 5× |
| Conversation → appointment | 2.2% | 0.7% | 3.1× |
| Avg. conversation length | 46s | 30s | +53% |
Same leads, same callers, same scripts. The only difference was the order of the list.
Operational automations had grown into ~10 fragile no-code workflows with silent failures. I migrated them one-for-one into a single Python service and extended it.
- Speed-to-lead guardrails: alert after 15 min, escalate after 45
- Expired-callback recovery and a cancellation-retention lifecycle
- Persistent dedup, overlap protection and rate limiting
The layer that assembles, checks and delivers the numbers daily, without anyone lifting a finger.
- 4 scheduled daily briefings straight from the warehouse
- AI watchdogs on a cadence: KPI analyst, workflow watchdog, data-quality checks
- One surfaced that 50-64% of quotes had no lead-source attribution
If your team dials cold or purchased lists, roughly half your calling capacity is going to the wrong half of the list. This same approach works on your data.