It's 11:47am on a Tuesday. A homeowner in Phoenix dials your tracking number — emergency plumbing, burst pipe, ready to pay whatever it takes. The IVR qualifies them. The routing logic fires.
And then nothing. Ring. Ring. Ring. Voicemail.
The buyer you routed to hit their daily cap at 11:32am. The backup buyer only covers Texas. The third-tier fallback is on lunch. Your most valuable call of the day just bounced.
That's a fill-rate problem. And if you're running pay-per-call at any volume, you've probably got one — whether you know it or not.
(I say "probably" because I've been wrong before. Ran an audit on my own campaigns last year convinced the routing was fine. It wasn't. Twenty-two percent of my plumbing calls were hitting voicemail between 1pm and 3pm. I felt pretty dumb when I found it.)
What Fill Rate Actually Means
Fill rate is the percentage of qualified inbound calls that successfully connect to a live buyer. Not "calls answered by IVR." Not "calls that entered the routing queue." Calls where a qualified caller reached a human (or an AI agent) ready to convert them.
Here's the math that matters:
Fill rate = (Calls connected to buyers ÷ Qualified inbound calls) × 100
If 1,000 qualified calls come in and 820 connect to a live buyer, your fill rate is 82%. That sounds okay. But flip it: 180 calls went nowhere. At a $65 HVAC payout, that's $11,700 in potential revenue that vanished because your routing couldn't match supply to demand.
Most operators we talk to don't track fill rate explicitly. They track answer rate (which includes IVR), they track call duration, they track conversion. But fill rate — the bridge between "call arrived" and "buyer picked up" — gets lost in the metrics soup. Frustrating? Yeah.
The target: 85-95% fill rate on qualified calls. Below 80%, you're losing real money. Below 70%, your routing logic is actively sabotaging you.
The Four Causes of Low Fill Rate
When calls go unmatched, it's almost always one of these four problems. Sometimes two or three at once.
1. Buyer Caps — Daily and Hourly
Every buyer has limits. Some are explicit: "I can only take 50 calls per day." Some are implicit: their sales team can realistically handle 8 calls per hour before quality tanks.
The problem is when caps hit mid-day and your routing doesn't adapt.
Picture this: your primary buyer in Florida has a 75-call daily cap. They're aggressive in the morning — answering fast, taking everything. By 1pm, they've hit 75. Your routing logic still shows them as "active," so calls keep going to them.
Ring. Ring. Voicemail.
The fix isn't complicated, but it requires actually configuring your caps correctly:
- Use hourly pacing, not just daily caps. A 75-call daily cap spread across 9 hours is roughly 8 calls per hour. Set hourly micro-caps to prevent morning front-loading.
- Configure "cap exhausted" triggers. When a buyer hits their limit, they should immediately drop out of the routing pool — not stay in as a ghost option.
- Track cap utilization by hour. If the same buyer hits their cap by 2pm every day, either raise the cap or reduce their routing priority in the afternoon.
Most platforms support this. Most operators don't configure it. That gap is your fill-rate leak. For a detailed walkthrough, see our guide on how to set buyer caps and concurrency.
Honestly, this one annoys me more than any other cause. The feature exists. It takes ten minutes to set up. And yet I've seen seven-figure campaigns running with default cap settings. Why? Nobody checked.
2. Concurrency Limits
Caps control how many calls a buyer can take per day. Concurrency controls how many they can take right now.
A buyer might have a 100-call daily cap but only 3 available phone lines. If 4 calls route to them simultaneously, one bounces. Scale that across peak hours and you're bleeding fill rate on your best traffic.
This is especially brutal during call spikes — Monday mornings, after a storm event, during Medicare AEP. I've seen operators lose 15-20% of peak-hour calls to concurrency collisions alone. Painful to watch.
The diagnosis is simple: pull your call logs and look for calls that routed to a buyer but ended in under 5 seconds with no transfer. That's a concurrency bounce. If you're seeing more than 3-5% of calls in that bucket, your concurrency limits aren't matching actual buyer capacity. This is also why low answer rates in pay-per-call often trace back to concurrency issues.
For more on managing sudden volume surges, see our post on handling call spikes with overflow routing.
3. Business Hours Gaps
This one seems obvious. It isn't.
Most operators configure buyer hours based on the buyer's local time zone. "Business hours: 8am-6pm ET." Done.
But your callers aren't all in Eastern time. A caller in Phoenix at 4pm (7pm ET) routes to your East Coast buyer who closed an hour ago. A caller in Seattle at 9am (12pm ET) might hit a buyer who hasn't started their lunch coverage.
The compounding problem: different buyers have different hours, and the overlaps don't always cover every calling hour.
I've audited routing configs where there was no active buyer coverage from 5pm-6pm ET. Just a one-hour gap. Nobody noticed because total daily volume looked fine — but that hour was dropping 100% of calls to voicemail.
One hour. Weeks of lost calls. Embarrassing when you find it.
The fix:
- Map buyer hours against caller time zones, not just buyer time zones. If you're buying national traffic, you need coverage from 8am Hawaii time to 8pm Eastern — that's 2am-8pm ET.
- Use time-zone-aware routing. Route West Coast callers to West Coast buyers in the afternoon, even if your East Coast buyers are technically still "open."
- Configure after-hours fallback. If no primary buyer is available, where does the call go? If the answer is "voicemail," you're losing those calls.
For a step-by-step on setting up after-hours flows, see set up after-hours call routing.
4. Geographic Coverage Gaps
You have 12 buyers. They cover 38 states. But they don't cover Nevada, Montana, Wyoming, or the Dakotas.
A caller from Billings, Montana dials in. Your IVR qualifies them. Your routing logic looks for a buyer who covers Montana. There isn't one. The call either drops, hits a generic voicemail, or rings a buyer who'll reject it as out-of-area.
Geo gaps are sneaky because they're low-volume by definition — you don't get many calls from low-population states. But they add up, and they're often your highest-intent callers (less competition in those markets means more serious buyers).
Diagnosis: pull a report of calls by caller state. Compare to your buyer coverage map. Any state with calls but no buyer coverage is a gap.
Two fixes:
- Add a national buyer as fallback. Someone who'll take calls from any state, even at a lower payout. This is your safety net.
- Expand existing buyer territories. Some of your regional buyers might be willing to cover adjacent states if you ask. The plumber in Boise might take Montana calls. Just ask — worst case they say no.
Building a Fill-Rate-Optimized Routing Stack
Here's the routing architecture that actually works. Think of it as three tiers.
Tier 1: Primary Buyers
These are your best buyers — highest conversion rates, best payouts, fastest answer times. Route to them first, always, when they're available and under cap.
Configure: individual caps (daily + hourly), concurrency limits, exact hours, exact geo coverage.
Tier 2: Overflow Buyers
These buyers only receive calls when Tier 1 is unavailable. Maybe they have lower conversion rates, or they pay slightly less, or their hours are limited. But they're available when Tier 1 isn't.
Configure: relaxed geo coverage (ideally national), extended hours, higher concurrency tolerance.
Tier 3: Safety Net
This is your "never let a call die" layer. A national buyer with no caps, 24/7 availability, and the willingness to take any qualified call. Payout is probably 20-30% below Tier 1, but a lower payout is infinitely better than zero.
Some operators use AI voice agents here — not to close the call, but to capture caller info and schedule a callback. Better than voicemail.
The key principle: every call must have a destination. If your routing logic can produce a scenario where a qualified call has nowhere to go, your fill rate will suffer. No exceptions. Build the fallback before you need it.
Diagnosing Your Current Fill Rate
You can't fix what you don't measure. Here's how to calculate your fill rate today.
Pull these numbers from your call platform for the last 30 days:
- A: Total calls that passed IVR qualification (entered the routing queue as "qualified")
- B: Total calls where a buyer answered and the call lasted more than 15 seconds
Your fill rate = B ÷ A × 100.
If that number is below 85%, start digging into the gap. The calls in A but not in B fall into buckets:
- Buyer didn't answer: rings, then voicemail or hangup
- Buyer rejected: answered, then immediate decline
- No buyer available: routing found zero eligible destinations
- Concurrency bounce: routing found a buyer, but all their lines were busy
Most platforms can break this down. If yours can't, you're flying blind. Fix that first.
For the broader context on why pay-per-call campaigns bleed money, see why pay-per-call campaigns are bleeding money. Fill rate is one of the three big leaks.
The Overflow Buyer Playbook
Adding overflow buyers sounds simple. In practice, most operators mess it up in one of three ways.
Mistake 1: Setting overflow payout too low.
Look, I get the instinct. You want to maximize margin on spillover. But if your Tier 1 payout is $65 and your overflow payout is $25, good luck finding a buyer willing to sit in the overflow seat. They'll get your worst calls (after-hours, edge geos, cap-exhausted spillover) at a 60% discount. Not compelling.
Better approach: overflow payout at 75-85% of Tier 1. The margin hit is real, but fill rate improvements usually more than cover it.
Mistake 2: No SLA on overflow answer rate.
Your overflow buyer agreed to take spillover calls. But they're treating them as low priority — 40% answer rate, 30-second average ring time. That's not overflow. That's a second voicemail system.
Set explicit expectations: 80%+ answer rate, under 15 seconds average ring time. If they can't hit those, they're not solving your fill-rate problem.
Mistake 3: Same hours as primary buyers.
If your overflow buyer has the same 8am-6pm hours as your primary buyers, they're not covering the gap you actually have — which is probably early morning and evening when primary buyers are closed.
The whole point of overflow is to cover when Tier 1 can't. That means different hours, broader geo, higher tolerance for weird calls. If your overflow looks exactly like your primary, what's the point?
Capacity-Based Routing Adjustments
Here's a technique most operators don't use: dynamic routing based on real-time capacity, not just static caps.
Static caps say: "Buyer A can take 50 calls today."
Capacity-based routing says: "Buyer A has 3 lines. Right now, 2 are occupied. Route the next call to Buyer B, who has 5 open lines."
The difference matters at scale. Static caps don't account for concurrent load. Capacity-based routing does.
If your platform supports real-time concurrency tracking (VeloCalls does, Ringba does, CallRail sort of does), turn it on. Weight routing toward buyers with open capacity, not just buyers who haven't hit their daily number. It's a small change that compounds over thousands of calls. Our deep dive on how call routing engines decide in milliseconds explains the mechanics.
The math is simple: a buyer with 1 open line is less likely to answer the next call than a buyer with 5 open lines. Route accordingly.
When to Add More Buyers vs. Fix Routing
A question we get constantly: "Should I add more buyers or optimize the buyers I have?"
The answer depends on where your fill-rate loss is coming from.
Add more buyers if:
- Your geo coverage has real gaps (states with no buyer)
- Your hours coverage has real gaps (nobody takes calls after 6pm local)
- Your primary buyers are consistently hitting caps before 3pm
- You're seeing 15%+ of calls bounce due to "no buyer available"
Fix routing first if:
- You have buyers who aren't hitting their caps (underutilized capacity)
- Your concurrency limits are too tight (buyers have more lines than you're allowing)
- Your Tier 2 is underperforming on answer rate (they exist but don't pick up)
- You're routing calls to capped-out buyers (logic isn't respecting caps)
Most of the time, the answer is "fix routing first." I'm biased here — I've seen too many operators add buyers as a band-aid when the real problem was a three-minute config fix. Adding buyers is expensive — you're splitting margin, managing more relationships, adding complexity. Wringing efficiency out of existing buyers is free.
The exception: if you're truly out of capacity, no amount of routing optimization will help. You need more supply.
Monitoring Fill Rate Over Time
Fill rate isn't a set-it-and-forget-it metric. It drifts.
Buyers change their hours. Caps get hit earlier as you scale. Seasonal volume shifts expose gaps you didn't notice in slow months. A buyer who was answering 90% of calls in May might be at 70% by August because their team went on vacation.
Set up weekly fill-rate monitoring. Pull the report every Monday. If you're below target, dig into which tier, which buyer, which hour is causing the drop. Our real-time call analytics dashboard guide shows how to set up these reports.
The operators who win at pay-per-call treat fill rate like a dashboard metric, not a one-time audit. Weekly check, every Monday, no excuses.
Frequently Asked Questions
What is a good fill rate for pay-per-call campaigns?
Most operators target 85-95% fill rate on qualified inbound calls. Below 80% means you're losing real margin — calls came in, buyers existed, but something in the routing prevented a match. At scale, even 5% unfilled at $50 payouts is $2,500 per thousand calls left on the table.
Why do calls go unmatched even when buyers are active?
Four common causes: (1) buyer daily or hourly caps already hit, (2) buyer concurrency limits maxed — they can only take 3 calls at once and all lines are occupied, (3) buyer hours don't cover the caller's time zone, (4) geo gaps — no buyer covers the caller's state or metro. Most operators underestimate how often caps and concurrency collide.
How do I set up overflow routing for unfilled calls?
Add a fallback buyer tier in your routing logic — this is a secondary buyer group that only receives calls when primary buyers are unavailable. Set the fallback payout lower (since it's lower-priority traffic), but make sure these buyers have wide geo coverage and extended hours. Some operators use a national buyer with no caps as the safety net.
Should I lower buyer caps to improve fill rate?
Counterintuitive, but sometimes yes. If a buyer's cap is set to 100 calls/day and they consistently fill by 2pm, you're routing afternoon calls to them that just ring out. Lowering the cap — or switching to hourly pacing — spreads their allocation through the day and reduces dead-ends. The goal is matching supply to actual buyer availability, not maximizing theoretical capacity.
Try VeloCalls for Your Vertical
AI calling + pay-per-call platform built for HVAC, plumbing, roofing, PI lawyers, Medicare brokers, and insurance. Smart routing, real-time bidding, visual IVR builder, AI conversation intelligence. Per-minute pricing — Managed starts at 4¢/min, BYOC at 2¢/min, both drop as you scale.