Skip to content

Self-Healing Caller-ID Fleet Management for Outbound Calling

A self-healing caller-ID fleet for a high-volume call center: 4,761 numbers regraded every 15 minutes, a 3.9% decline floor, and 12.5% more booked appointments.

+12.5%
appointments week over week
4,761
numbers under management
3.9%
decline floor, from 6.7%
~200
answered calls recovered daily

Caller-ID reputation is a perishable asset. Carriers grade outbound numbers continuously, and a number that dials too hard from the wrong place starts getting rejected as spam. For a high-volume outbound call center, we built the system that manages this automatically: a self-healing fleet where every number is graded, paced, benched, and replaced by the system itself. It has been live since mid August.

What we built

The fleet manager assigns every lead a local, reputation-screened caller ID and then never stops watching:

  • The whole fleet is regraded every 15 minutes, 4,761 numbers on the live campaign, from real dial outcomes in the logs.
  • Numbers carriers start rejecting get benched automatically, and their leads rotate to healthy neighbors in the same territory.
  • New numbers climb a warm-up ladder instead of dialing at full pace on day one.
  • Purchased ranges are watched as blocks. One range was caught failing as a unit at 12.9% decline over 70 dials, before any single number tripped an individual threshold.
  • Purchases are sized from demand. Per-area-code buy recommendations are computed nightly from lead demand versus surviving clean supply, on a live dashboard.

In one week of grading and rotation, the unhealthy share of the fleet fell from 13% to 8%. The fleet-wide carrier-decline floor improved from 6.7% to 3.9% in about two weeks, and the worst territory improved from 17% to 10%. The best delivery morning ran 171 conversations per hour at a 15% drop rate.

The routing fix that recovered 200 calls a day

While instrumenting the fleet we traced a separate leak end to end, through the dialplan, the screening scripts, and the network logs. An external machine-screening service was returning empty verdicts on a large share of real humans, roughly 1,279 of the 26,000 calls entering screening each day, and verdictless answered calls were being killed before reaching an agent.

The fix was one routing configuration line. No new software, no restart, effective on the next call.

We verified it the way we verify everything: same day, same floor, treated campaign against an untouched control. The treated campaign dropped 23.7% of answered calls against its 30.7% frozen baseline while the control ran 30.0% against its 28.7% baseline. That is an 8.3 point difference-in-differences. At identical answer volume, 101 answered calls each, the treated side held 39 conversations of 30 seconds or more versus 34, with 9 drops versus 24. The best morning since ran 8.7% dropped at more than 200 answered calls.

A second campaign, onboarded invisibly

The second, larger campaign was brought on in shadow mode: its own pool of 933 numbers graded on its own dial history, zero overlap with the live fleet. 68,005 leads were stamped in about 7 minutes, entirely invisible behind the active configuration, and coverage has read 100.0% at every 15-minute check since. New loads of about 3,000 leads a day are stamped automatically within 5 minutes. Cutover is one guarded command. Revert is one field, instant.

Measured, not vibes

The same discipline runs the whole operation. Booked appointments finished the launch week at 450 versus 400 the week before, up 12.5%, with every single day at or above its comparator. A proposed screen-pop configuration change was simulated against 7 days of real call traffic before touching production; the simulation showed it would have degraded 46% of inbound callbacks, so it was rejected on evidence. Eleven resident monitoring loops, a 5-minute canary with named revert rules, and an audit row with a one-line revert on every production change keep it that way.

Reputation management is not a purchase, it is an operating system. This one runs itself.