Your CPL Is Wrong (and It Isn't Marketing's Fault)
Standard cost per lead math hides the live humans your dialer drops. Here is the corrected formula, a worked table, and how to use the real number.
Your CPL Is Wrong (and It Isn't Marketing's Fault)
Your cost per lead changes the moment you count recovered live answers. Not by a rounding error. By enough to flip which campaigns you scale and which you kill.
I sat through the same meeting for years. Marketing presents CPL by channel. The number looks fine or it looks bad. Either way, everyone nods, someone gets blamed or praised, and the meeting ends. The number nobody in that room could see was the one hiding inside the dialer: how many live humans picked up, said hello, and got classified as voicemail before an agent ever heard them.
Default dialer answering machine detection drops an estimated 10 to 20 percent of live humans. AMDY measured that on real traffic. Those are people who answered. People who said something. People your campaign paid full freight to reach, and then silently threw away. Your CPL was calculated as if that loss did not exist.
This article is about the corrected math. It is also about why the wrong number has been starting fights between marketing and IT for a decade, and why the corrected number ends those fights.
The Assumption Hiding in Every CPL Report
Cost per lead is usually presented as:
CPL = marketing spend / leads generated
Depending on your shop, "lead" means a form fill, a qualified contact, or a transferred call. In outbound, where the call center creates the contact itself, the CPL calculation tends to look like:
CPL = (spend on the campaign) / (leads attributed to the campaign)
Spend goes in the top. Leads come out the bottom. Simple, comparable across channels, and quietly wrong for any campaign that runs through a dialer.
Here is the assumption: that every answered live human becomes a conversation. The formula treats the dialer as a neutral pipe. A person answers, an agent talks to them, and the conversation either becomes a lead or does not. The detection layer is assumed to be free of opinion.
It is not. Detection is a classifier, and classifiers make mistakes in both directions. A voicemail read as a human wastes an agent's ten seconds. A human read as voicemail costs you the entire conversation. That second error is the expensive one, and it is invisible in every standard CPL report.
Think about what that means mechanically. A live human answers. The dialer listens for a few seconds to decide what happened. If it decides "machine," the call is dropped or sent to a recording, and the agent never knows. The prospect hears silence or a click. From the campaign's perspective, the call simply produced no lead. The CPL formula scores it as a miss attributable to the list, the offer, or the agent productivity. Never to the classifier.
So the denominator of your CPL is understated. You had more live conversations than you think. Some meaningful fraction of them were never allowed to become anything.
The Corrected Formula: Cost per Live Conversation
Fixing the math is not complicated. It is one substitution.
Standard:
CPL = spend / leads
Corrected:
Cost per live conversation = spend / (conversations that actually happened + conversations recovered from the detection layer)
"Recovered" means this: a live human who answered, was on track to be misclassified as a machine, and was correctly routed to an agent instead. That is a conversation your old CPL math counted as nothing. It is not nothing. It is a person who picked up the phone.
If you want the bridge between the two numbers in one line:
True CPL = standard CPL x (1 - recovered share of live answers)
Where recovered share = recovered conversations / total live answers. If your detection layer recovers 10 percent of live answers that the old system would have dropped, your true CPL is 10 percent lower than the number on the slide. Same spend, same list, more conversations. The recovery was always there in the physical world. It was just never counted.
If you want to go deeper on why the standard metric distorts budget decisions across the whole life of a number, I wrote about cost per number as a life metric, which is the same disease showing up in a different report.
A Worked Table You Can Run With Your Own Numbers
I refuse to invent a case study with tidy revenue figures, so here is a table built for substitution. Replace the inputs with your own and the logic holds. The only fixed facts in it are the ones that are actually fixed: the measured drop range of default detection, the FTC abandonment cap, and AMDY's plan pricing.
| Input | Symbol | Example value | Where yours comes from |
|---|---|---|---|
| Monthly campaign spend | S | your number | Finance |
| Live humans who answer per month | L | your number | Dialer logs, answered-call count |
| Share of live answers default AMD drops | d | 10 to 20 percent (AMDY measured) | Or measure yours: see below |
| Conversations that become leads | r | your conversion rate | CRM |
| AMDY paid plan cost | P | $79 to $999/month | Pricing page |
The corrected calculation, step by step:
- Dropped conversations today = L x d
- Recovered conversations with accurate detection = L x d x recovery rate
- True conversation count = L x (1 - d) + recovered
- Corrected CPL = (S + P) / true conversation count adjusted by your lead rate r
The point of running it is not to produce a pretty number. It is to see the size of the invisible bucket. If L is 100,000 live answers a month and d is 15 percent, the default classifier is erasing 15,000 human conversations a month. Multiply by your lead rate and your average value per lead, and you have the actual dollar figure. I will not pretend to know your lead rate. You do.
If you want to measure d on your own traffic instead of using the estimated range, there is a procedure for it, and it takes an afternoon: how to test AMD accuracy on your own calls. Measuring beats borrowing my estimate every time.
Why This Ends the Marketing-versus-IT Blame Meeting
Every operator knows this meeting. CPL is up 12 percent. Marketing says the list quality degraded. The list vendor says the offer got stale. IT says agent handle time grew. Everyone is armed with a dashboard. Nobody's dashboard contains the dropped-human count, because the dialer does not apologize when it hangs up on someone. It just logs the call as an answered call with no lead.
Here is the uncomfortable part: with the corrected number, the conversation stops being about blame and starts being about measurement. When you know that a fixed share of your live answers never reached an agent, three things happen.
First, channel comparisons get honest. If two channels have identical CPL but one attracts more answering-machine-prone dialing patterns, say late-evening consumer rows versus business-hour lines, their true cost per live conversation differs. You have been comparing apples to a bucket with a hole in it.
Second, list quality arguments get resolved with data instead of volume. A "bad list" and a "list where more humans happened to answer with background noise" produce identical standard CPLs and wildly different corrected ones. The second list is worth re-dialing. The first is not. Without the corrected number you cannot tell them apart, so lists get churned on gut feel.
Third, and this is the one that matters to a CEO: the fix stops being an argument about whose department underperformed and becomes a line item. Recovering conversations is not a marketing problem or an IT problem. It is infrastructure, the same way your CRM license is infrastructure. You do not negotiate with accounting over whether the CRM "works.' You check whether the conversations it touches are worth the invoice.
The FTC angle makes the infrastructure framing sharper. Under the Telemarketing Sales Rule, predictive dialer abandonment is capped at 3 percent of live answers per campaign over a 30-day period (16 CFR 310.4(b)(4), on ecfr.gov). Every live human your detector misclassifies as a machine is, functionally, an abandoned live answer from the prospect's point of view: they said hello and got nothing. The regulatory safe harbor is measured over live answers, which is exactly the denominator your standard CPL mishandles. I go deeper on that interaction in the 3 percent rule and detection latency. For this article the takeaway is one sentence: the same dropped humans that corrupt your CPL also sit uncomfortably close to a compliance metric the FTC actually enforces.
What to Do With the Corrected Number
A better metric that nobody acts on is decoration. Here is the action sequence I would run.
Step 1: Baseline before you change anything
Pull one month of dialer logs. Count answered calls, count conversations that reached an agent, count leads. Do not touch detection settings. You are establishing the denominator the old reports hid. If your platform logs per-call classification verdicts, so much the better; per-call detection logs are what let you reconstruct the dropped-human count directly instead of estimating it.
Step 2: Correct the CPL retroactively
Apply the formula above to the last quarter. The corrected numbers will not all move the same direction. Some campaigns you scaled were better than reported. Some you killed were fine. Write down which decisions would have changed. That list is the cost of the wrong metric, and it is the strongest argument you will ever have for fixing the measurement rather than relitigating each decision.
Step 3: Fix the detection layer, then re-measure
This is where I tell you what I sell, plainly. AMDY replaces the dialer's default answering machine detection with a server-side AI classifier. Install is one command on your existing Vicidial server, takes about five minutes, requires no carrier change, and starts returning verdicts at 125 milliseconds. The free Sandbox plan is 50,000 detections a month with no credit card and a hard cap, so measuring the delta on a slice of your traffic costs you nothing but the afternoon. Details are on the features page.
One thing worth knowing before you compare detection options: latency and accuracy trade off against each other, and the trade-off has direct dollar consequences because slower verdicts burn agent time. I laid out that math in AMD latency versus accuracy, and the error direction question, which kinds of mistakes a classifier makes, is covered in AMD error directions. Read both before you buy anything from anyone, including me. A vendor who will not tell you which way their classifier errs is a vendor with something to hide.
Step 4: Put the corrected CPL in the monthly deck
The two rows that matter
Once recovered conversations are being counted, add one row to the campaign report: cost per live conversation, alongside CPL. Keep both. The gap between them is the health indicator for your detection layer. When the gap widens, either your traffic mix changed or your classifier is drifting, and model drift is a real thing that creeps in quietly; see AMD model drift for the failure pattern.
The Second-Order Effects Nobody Prices In
The corrected CPL fixes the top-line number, but the dropped-human bucket distorts three downstream decisions too, and they are worth naming because they are where the money actually moves.
Staffing math. Every forecast model I have ever seen builds agent capacity from calls handled and conversions per hour. Both inputs sit downstream of detection. If a tenth or more of live answers never reach an agent, then handle-time-per-productive-hour looks worse than it is, occupancy looks worse than it is, and the conclusion the math hands you is "hire more agents." Some fraction of those hires are compensation for calls the classifier threw away. Run the corrected conversation count through the same staffing model before you approve the next req. Sometimes the answer really is more agents. Sometimes it is that you already bought the capacity and a filter is eating it.
Dial pacing. When conversations look scarce relative to spend, the reflex is to dial harder. More lines per agent, more aggressive pacing. But the FTC abandonment cap of 3 percent of live answers per campaign over 30 days tightens as pacing increases, and the cap's denominator is live answers, the same population your classifier is mishandling. Dialing harder into a leaky detector is paying more to fill a bucket with a hole, while the regulator watches the spill rate. Fixing the detector first changes what safe pacing even means for your floor.
Agent morale and coaching. Agents get coached on conversion. A dialer that intermittently fails to hand them live humans has two side effects that show up in coaching sessions disguised as performance problems. One, agents receiving a noisier mix of calls, more voicemails and dead air slipping through, adapt by disengaging in the first seconds of every call, which hurts the calls that were fine. Two, agents who occasionally hear the tail end of a dropped human, the "hello? hello?" as a call ends, learn to distrust the routing, and trust does not come back with a memo. I have watched good floors go cynical over exactly this and attribute it to list quality for a year before anyone looked at the classifier.
None of these three has a line in the CPL report either. That is the pattern worth internalizing: the detection layer sits so early in the funnel that every metric downstream of it is quietly conditioned on it. Fix the conditioning and a dozen numbers shift together.
Three Questions for the Next Review
Once you have the corrected number, put these to the room and let the silence do some work.
One: what share of our live answers last month never reached an agent? If nobody can answer, that is the finding. You are budgeting against a number you do not have.
Two: which of our channel comparisons would change sign or magnitude if the denominator included recovered conversations? There is usually at least one channel you are overfunding and one you already cut that did not deserve it.
Three: if we recover the conversations, do we still need the next hire this quarter? Sometimes yes. But the question should be answered with arithmetic, not with the org chart someone drew in January.
These questions cost nothing to ask and they cannot be answered from the standard stack, which is precisely why asking them changes the meeting. The person who asks them is also, not coincidentally, the person who ends the marketing-versus-IT argument, because neither department owns the answer. It lives between them, in the logs.
The Objection You Are About to Raise
"Our CPL is fine, so our detection must be fine." I had that thought too, for years. It is circular. Your CPL is calculated on the output of the detection layer, so the detection layer can never be the variable your CPL implicates. A metric built downstream of a filter cannot audit the filter. That is not a defense of the status quo. It is a description of the blind spot.
The other objection: "our agents would notice if we were dropping live humans." Some would, occasionally, when a prospect calls back angry. But the dropped call leaves no agent-side memory. There is nothing to notice. Silence does not generate a support ticket. That is precisely why this loss survives for years inside otherwise well-run operations, and why I wrote about honeypot detection as a way to catch silent misclassification on purpose rather than by accident.
The Meeting You Should Have Instead
Run the corrected number for one campaign. Walk into the next review with two CPLs per row: the old one and the true one. Then ask one question and stop talking:
"What would we change if the second column were the real one?"
It is the real one. The recovered conversations happened. People picked up phones. The only thing that changed is that somebody finally counted them.
If you want to count yours, the path is short: start the free trial, 50,000 detections a month, no card, and the corrected math is waiting in your own logs.
The leads you are buying are not the leads you are getting. How many of your live answers never met an agent?