12.8%
of calls declined by carriers
Measured on a shared area-code pool, from the dialer's own log. A managed fleet runs about a third of that.
DID reputation management for VICIdial
DIDfleet is the layer beside your VICIdial that decides which number each lead dials from, keeps every number's workload inside what it can carry, and keeps good leads alive. You keep your dialer, your numbers and your carrier.
Read-only to start. Thirty days of your dial logs, and you get the map of what is burning.
90.1%
of calls connect
up from 80.4% on the same lists
63%
fewer carrier declines
12.8% down to 4.7%
23,703
leads brought back
after a carrier error retired them
15 min
full fleet regrade
every number, every quarter hour
Measured on a live VICIdial deployment, August to September 2026. Client anonymised; method available on request.
The problem
Carriers score every outbound number. A dialer treats numbers as one shared pool, so it never sees which ones are hurting you, and it never sees the leads it quietly stops calling.
12.8%
Measured on a shared area-code pool, from the dialer's own log. A managed fleet runs about a third of that.
30,170
One dialer had permanently stopped calling them after a single transient failure. 13,410 had connected on an earlier call.
3,601
One morning's load put the wrong value in the caller-ID field. Dialed like that, every one fails on its first call.
How it works
Right number, right place, right workload, with evidence for every decision. It runs beside VICIdial and writes one thing into it: the caller ID each lead will dial from.
Every number's carrier responses, read from your own dial log on every call. No lookups to buy.
Numbers that run hot are pulled. So are whole purchased ranges that fail as a unit.
Their leads move to a healthy local neighbour inside the same cycle, with the old value saved first.
Rested numbers come back up a warm-up ladder. New numbers start at the bottom of it.
Chosen from the lead's ZIP, not just its area code: same rate center first, then metro, then state, from numbers with a healthy live record.
Caps per number come from the measured dial rate and how seasoned the number is, counted against leads that can actually dial today.
A lead that spilled onto a distant number is re-homed to a local one when a slot opens, in a capped batch each night.
Measured result
The cleanest comparison we have: lists that dialed from a shared area-code pool, then from per-lead local numbers. Only lists dialed under both methods are counted.
The before period is the smaller sample: 2,639 dials against 49,369. Connect and decline are carrier responses read from the dial log, not survey figures. Steady state since: 88.9% connect and 5.4% declined across 89,327 dials.
Why it works
A call a carrier declines is a conversation that never had a chance. A lead a carrier error retires is an appointment that never had a chance. The fleet removes both, on every call, every day.
+9.7 pts
80.4% to 90.1% on the same lists. When the fleet was switched off by accident one morning, delivery fell four points before lunch. Switched back on, it recovered within the hour.
+12.5%
The first full week on the fleet: 450 booked against 400 the week before, every day ahead of the same day the prior week, with a quarter fewer dials to get there. Same floor, same dialer, from the client's own logs.
5x
Fresh leads answer about five times as often as worn ones. The fleet's nightly reports put lead wear next to number health, so your spend goes where it moves the number.
A recurring over-capacity alarm looked like a reason to buy numbers. The data said it would not move contact rate, and we told the client to keep the money. You get the same answer, either way it falls.
Lead protection
23,703
A transient carrier error marks a reachable lead dead on most dialers. The fleet brings them back nightly, on evidence, with a revert file for every run.
4 min
The wrong value in the caller-ID field, caught and replaced with real local numbers before the lists were switched on. None was dialed.
100%
114,028 of 114,028 across two campaigns on the day this was written. A lead cannot fall through to a toll-free fallback.
Always watching
Read-only guards run beside the fleet. They name the problem and change nothing, because putting a status back is a decision, not a reflex.
A do-not-call, booked or transferred lead that becomes dialable again is named within 5 minutes, with the status change that did it.
When the dial level goes above what the agents on the floor can absorb, the alert gives the level, the safe ceiling and who changed it.
A purchased range is graded as a unit while it seasons, so a failing range is flagged before any single number trips its own threshold.
Each territory is tracked against its own healthy floor, so one bad market cannot hide inside a good average.
=== 11:00 ET briefing · Campaign A === DIALER level 4 · last hr 2,016 dials · 33 conversations · drop 30% · 7 agents on STAMPS 8,810 active leads on 121 lists · 8,810 stamped · 0 blank · 0 unstamped ACTIVITY 4 stamper runs in the last hour · 554 leads restamped or moved FLEET 2,200 graded · 139 hot (6%) · 54 watch · 1 kept on thin supply TERRITORY 1 degraded vs a 6.7% floor · worst: 17%
A real briefing, campaign name removed. Six lines on the hour, exceptions the minute they happen. A quiet hour is dropped rather than posted.
Number purchasing
Demand is dialable leads per area code. Supply is the clean numbers that survive and what they can carry today. The gap is the order, as a sheet a vendor can fill.
Clean members of a failing range keep dialing. A number is benched, rested, retired or cleared on its own record, never condemned by the batch it arrived in.
A vendor-ready file: every number and range, dials, declines, rate and reason. Fewer arguments and faster credits.
8 of 10
of the numbers we graded bad were confirmed flagged on AT&T and T-Mobile by an independent carrier-analytics lookup, in a sealed 20-number test. Grading from your own dial log matches a paid lookup where it matters.
How it stays safe
The prior value is saved before the change. Over 1,000 runs so far, any of them reversible to the row.
A kill switch halts all writes instantly. A new site starts read-only, and the installer refuses to go live without an explicit flag.
The write account can change the caller-ID field and the status on the lead table. It reads the rest and can alter none of it.
It runs beside your live system computing every decision and writing nothing, until its numbers match yours.
How it compares
| VICIdial CID groups | Label monitoring services | Managed-hosting add-ons | DIDfleet | |
|---|---|---|---|---|
| Chooses the number for each lead | By area code | No | By area code | Per lead, by ZIP and rate center |
| Sizes each number's workload | No | No | Flat calls-per-day rule | From the measured dial rate |
| Benches and rests hot numbers | No | Tells you which | Yes | Yes, and whole failing ranges |
| Warm-up for new numbers | No | No | Yes | Yes, a four-step ladder |
| Recovers leads retired by carrier errors | No | No | No | Yes, nightly |
| Catches bad caller-ID values in lead loads | No | No | No | Yes, every 2 to 5 minutes |
| Buy lists and vendor dispute files | No | No | Some provision numbers | Yes, with the evidence |
| Sees the label shown on the handset | No | Yes | Yes | Not today. Optional add-on. |
| Works on the VICIdial you already run | Yes | Yes | You move to their hosting | Yes |
Categories, not brands, described from their public material in September 2026. We list the row we lose on because you would find it anyway.
Getting started
Live in about three weeks without touching what dials today. Our latest install went from upload to a verified shadow run, matching the production system's numbers exactly, in under an hour.
Read-only. Thirty days of your dial logs graded into a map of what is burning: numbers, purchased ranges and territories.
Installed beside your dialer. It computes every decision and writes nothing, until its numbers match yours.
One campaign cuts over against a matched control. Same floor, same weekday baselines. The result is a number.
One command to go live. Rollback is one file. Then the loops take over.
What you need
With per-lead custom caller ID enabled on the campaign. We read the dial log and the lead tables.
Read on the dialer schema, write on two columns, over a VPN or an allow-listed address.
A few hundred to several thousand, routed inbound so that callbacks land.
ZIP, county or state on the record. Area code is the fallback, not the plan.
SIP response codes on outbound calls. Any standard trunk qualifies.
Someone who activates lists and places number orders. The system tells them what to buy.
Not a fit: inbound-only operations, floors under a few thousand dials a day, or campaigns with no lead geography.
Questions
More of your calls will ring: on the same lists, connects went from 80% to 90% and carrier declines fell by 63%. More of your leads stay alive to be called. In our first live deployment the floor booked 12.5% more appointments in its first full week, on 25% fewer dials. The pilot puts your own number on it: one campaign against a matched control, so the result is yours, not ours.
Every number it assigns is one you own and that rings back to you, which is the line the Truth in Caller ID rules draw. It never invents or borrows a number. Your calling compliance stays your responsibility, and the compliance watcher helps you keep it.
One field on each lead: the caller ID that lead dials from. The nightly recovery job can also return a lead retired by a carrier error to a callable status. It does not touch campaigns, lists, agents, the dialplan or your carrier.
Create one file and every write stops. Each write saved the previous value first, so any run can be rolled back to the row. It starts in shadow mode and does not go live without an explicit flag.
On a small Linux machine, yours or ours, as services that restart themselves and come back after a reboot. Nothing is installed on the dialer, and nothing changes for your agents.
No. It grades numbers from the carrier responses already in your dial log, on every call. In a sealed test that grading agreed with a paid lookup on 8 of 10 bad numbers. A lookup feed can be added if you want the handset label as well.
VICIdial natively, which also covers the VICIdial family such as GoAutoDial and OSDial with little change. The method needs three things from a dialer: a caller-ID field it can set per lead, a dial log with the carrier's response codes, and lead records with a location. Any platform that exposes those through an API can be brought in next, and Five9, Genesys Cloud, Ytel and CallTools are the ones we are looking at first. If you run something else, tell us what it is.
Next step
Read-only. Thirty days of your dial logs and the list of numbers you own. You get back the share of your fleet that is burning, the purchased ranges failing as a unit, the territories left underserved, and what your next number order should be.
Request a fleet audit