How Many Tracking Numbers Do I Need? Sizing a Call Tracking Number Pool
"How many tracking numbers do I need?" is usually answered with a shrug and a plan tier. It deserves better, because getting it wrong is expensive in both directions: too few numbers silently corrupts your attribution, and too many is money spent on numbers nobody dials.
The good news is that the question has an actual answer, and it comes from one input most people never look at: peak concurrent visitors.
First: do you even need a pool?
Before doing any arithmetic, decide which question you are trying to answer. There are two, and they have very different costs.
Question one: which channel drove this call? Paid search, organic, paid social, your Google Business Profile, the van wrap, the direct mail piece. This is source-level tracking, and it needs one static number per channel. No pool. No concurrency math.
Question two: which campaign, ad, and keyword drove this call? This is session-level tracking, it requires dynamic number insertion with a pool, and the pool has to be big enough that no two simultaneous visitors ever see the same number.
Most businesses need question one answered and think they need question two. If you are not running enough paid search to make per-keyword bidding decisions, source-level tracking answers your real question for the price of four numbers. The distinction is covered fully in the dynamic number insertion guide.
| Source-level | Session-level | |
|---|---|---|
| Numbers needed | One per channel (typically 4–8) | A pool sized to peak concurrency |
| Tells you | Which channel | Which campaign, ad, keyword, landing page |
| Enables Google Ads conversion import | Not per keyword | Yes, via GCLID |
| Typical monthly number cost | $5–$10 | $6–$60 |
| Right for | Most local businesses | Anyone spending seriously on paid search |
The concurrency math
Here is the mechanism that determines pool size. When a visitor arrives, the platform assigns them a number from the pool and holds it against their session. It cannot reassign that number to someone else until the hold expires — otherwise a call arriving from the first visitor would be credited to the second.
That hold window is the crux. Platforms typically hold a number for somewhere between 10 and 30 minutes past the last activity, because prospects routinely read a page, close it, and call several minutes later.
So the pool must be large enough to cover: everyone whose hold window is still open, at your busiest moment.
The formula
Pool size = Peak concurrent sessions × (hold window ÷ average session length) × 1.3
Worked example — a home services company:
- Peak traffic hour: Monday 8–9 AM, 60 sessions on tracked landing pages
- Average session length: 3 minutes
- Hold window: 15 minutes
Sessions per hour of 60 means one arrival per minute. With a 15-minute hold, roughly 15 sessions are holding a number at any moment. Add 30% headroom for burst clustering:
15 × 1.3 ≈ 20 numbers
Twenty numbers, at $1.15/mo each, is $23/mo. That is the honest cost of trustworthy keyword-level attribution for that business.
The shortcut
If you do not want to pull session data, this approximation is close enough for most sites:
Peak hourly sessions on tracked pages ÷ 2, minimum 5.
For the example above: 60 ÷ 2 = 30, which is conservative but safe. Erring high on a $1.15/mo line item is the correct direction of error.
Use peak, not average. This is the single most common sizing mistake. A site averaging 8 concurrent sessions may hit 45 during a Monday morning rush or when an ad creative takes off. Size for the peak, because the peak hour is disproportionately where your revenue and your most important attribution data live.
What actually goes wrong when the pool is too small
When the pool exhausts, the platform has to do something. Depending on configuration it will either fall back to a shared static number — attribution collapses to channel level for those visitors — or reassign a still-held number, in which case a call may be credited to the wrong session.
The second failure is the dangerous one, and here is why: the resulting data looks completely legitimate. A conversion appears against a keyword. It has a timestamp, a session, a landing page. Nothing about it is flagged. You bid up that keyword. The keyword had nothing to do with it.
Compounding the problem, exhaustion happens at peak traffic — which is exactly when your best campaigns are running. So the campaigns you most want accurate data about are the ones getting the least accurate data. If you are pushing calls back into Google Ads as conversions, that bad attribution goes straight into Smart Bidding, and the algorithm acts on it with real money faster than any human review catches it. The integration mechanics are in call tracking + Google Ads integration.
Beyond the website: the other numbers you need
The DNI pool covers website visitors. A complete setup adds static numbers for surfaces where the visitor never touches your site:
| Surface | Numbers | Why static |
|---|---|---|
| Google Business Profile | One per location | Every caller arrived the same way; no pool needed. See GBP call tracking |
| Local Services Ads | Google's LSA number | Google supplies it; you add recording for lead disputes |
| Click-to-call social ads | One per campaign or ad set | The call never touches your site — see Meta ads call tracking |
| Print, vehicle wraps, direct mail | One per campaign or asset | The only way offline media is measurable at all |
| Each physical location's main line | One per location | Enables per-branch answer-rate and booking-rate comparison |
A three-location home services business with paid search, a Meta campaign, and a van fleet realistically runs something like: 15 pool numbers + 3 profile numbers + 1 Meta number + 1 fleet number = 20 numbers. At $1.15/mo, $23/mo total — inside the Growth plan's 15-number allowance plus a handful of add-ons, or comfortably inside Pro.
Where per-minute pricing changes the calculus
There is a reason pool sizing is treated as a painful trade-off on some platforms: when you are billed per number and per minute, every additional number and every additional recorded call has a variable cost. That creates real pressure to under-provision the pool, which means the pricing model is actively degrading your data quality.
On a flat-rate model with unlimited calls, that pressure disappears. Numbers are a predictable line item, minutes are not metered, and sizing the pool correctly is a $10 decision rather than a budgeting exercise. The two models are compared directly in per-minute vs flat-rate call tracking pricing, and total monthly cost is broken down in call tracking software cost per month.
How to verify your pool is right
Sizing is an estimate. Verification is data. Three checks, monthly:
- Pool exhaustion events. Any decent platform logs when a visitor could not be assigned a unique number. The target is zero. Anything above zero during peak hours means add numbers.
- Peak simultaneous assignment. If your busiest hour last month peaked at 14 of 15 numbers in use, you are one good ad day from exhaustion. Add headroom now.
- Unattributed calls. A rising share of calls that cannot be tied to a session usually means the pool is spilling to fallback numbers.
Re-check after any significant traffic change: a new campaign launch, a seasonal peak, a piece of PR, or a landing-page rollout that adds tracked pages.
Quick reference by business size
These are starting points, not prescriptions. Verify with your own peak-hour data.
| Business profile | DNI pool | Static numbers | Typical plan |
|---|---|---|---|
| Single-location local, light paid spend | 0 (source-level only) | 4–5 | Starter, $99/mo |
| Single-location, active paid search | 5–10 | 3–4 | Starter/Growth |
| Multi-location (2–5), paid search + social | 10–20 | 6–10 | Growth, $249/mo |
| High-volume regional, heavy paid | 20–40 | 10–15 | Pro, $499/mo |
| Agency managing client accounts | Per client | Per client | Pro / white-label — see white-label call tracking |
Frequently Asked Questions
How many call tracking numbers does a small business need?
If you only need to know which channel drove a call — paid search versus organic versus social versus your Google Business Profile — four to six static numbers is enough, one per channel plus one per location profile. If you need keyword-level attribution from a website, you need a dynamic pool sized to peak concurrent visitors, which for most small local businesses lands between five and fifteen numbers.
What is the formula for sizing a DNI number pool?
Take your peak concurrent visitors during your busiest hour, multiply by the session-hold window your platform uses divided by average session length, then add roughly 30% headroom. A shortcut that works for most sites: peak hourly sessions from your paid and organic landing pages divided by two, minimum five. The controlling input is concurrency during your busiest hour, never monthly traffic.
What happens if my number pool is too small?
Two visitors get shown the same tracking number at the same time. When one of them calls, the platform has to guess which session to credit — and it will guess wrong roughly half the time on any number that was shared. The damage is worse than missing data because the resulting attribution looks legitimate, so you will bid on it. Pool exhaustion also tends to peak exactly when traffic is highest, corrupting your best-performing campaigns most.
Do I need a tracking number for every keyword?
No, and that is a common misconception. Keyword-level attribution comes from binding a pooled number to a visitor session that already carries the keyword data, then releasing that number back to the pool afterward. A pool of ten numbers can attribute thousands of keywords over a month, because each number is reused continuously — you only need enough numbers to cover simultaneous visitors, not distinct keywords.
How much do extra tracking numbers cost?
On CallFlux, tracking numbers are $1.15/mo for local and $2.15/mo for toll-free, on top of a flat-rate plan that includes unlimited calls with no per-minute charges. Starter includes up to 5 numbers at $99/mo, Growth up to 15 at $249/mo, and Pro up to 50 at $499/mo. Because there are no usage charges, growing a pool is a predictable fixed cost rather than a variable one that scales with call volume.
Should I use local or toll-free tracking numbers?
For a local service business, use local numbers in the area codes you serve — local numbers see better answer rates from consumers and reinforce geographic relevance. Toll-free is appropriate for national brands, businesses whose customers are outside the local calling area, or campaigns where a memorable vanity-style number carries brand weight. Many businesses run both: local for map and regional campaigns, toll-free for national media.
Size it once, verify it monthly
The pool question comes down to one input — peak concurrent sessions — and one decision — whether you need channel-level or keyword-level answers. Everything else follows.
CallFlux plans include number allowances (5 on Starter, 15 on Growth, 50 on Pro) with additional local numbers at $1.15/mo, and unlimited calls at every tier so pool size never triggers a usage bill.
Review pricing, see phone numbers for availability, or book a demo and we will size a pool against your actual traffic data.