Calculate the velocity of your outbound campaign.

How many calls per minute, and how long until the campaign is done? Set your concurrency lines, your provider's calls per second, your call and ringing times, and see what really sets the pace.

  • 2 ceilings
  • Ringing included
  • French calling hours
  • Nothing leaves your browser
01 Your campaign

Five inputs. The pace updates as you move them.

Your concurrency lines, your provider’s calls per second, the average call, the size of the file and when you start. Ringing time, phone lines or trunks, and callbacks sit under Advanced.

configure-your-campaigndefaults
1Concurrency linesagents on a call at once

10 included by default with every CallShift workspace

2Calls per secondset by your telephony provider

Twilio defaults to 1; most providers raise it on request

3Call durationaverage talk time

Across all dials: no-answers, voicemails, conversations. Ringing adds on top, under Advanced

4Calls in the campaigncontacts to dial
5Start timeyour local time

Defaults to your current time. Pick any time of the day

Advanced
▸Ringing time, phone lines or SIP trunks, pickup rate, inbound reservation
Dialingper dial, per line or trunk
Average ringing time

Time before someone picks up. The agent is already waiting and the call takes a SIP trunk slot, so ringing holds a line too

Phone lines or SIP trunks

Outbound numbers or SIP trunks you dial from. Where the CPS limit applies per number or per trunk, each one adds its own CPS

Callbackslines kept for inbound
Average pickup rate

Share of dials answered by a human. The missed rest drives callbacks, so it sizes the automatic inbound reserve

Inbound reserved lines

Concurrency lines kept free for inbound calls and callbacks. Auto keeps (1 - pickup rate) x 10% of lines (8% right now)

your-campaign-pace10 lines · 1 cps
Your bottleneckset by your planringing included

Your concurrency lines

20/minreal pace
8h 20mto finish
--:--ends at
27 s per dial2,333 voice min
Why

With 1 line reserved for inbound, 9 of your 10 lines dial out, and each dial holds its line 27 s (13 s ringing + 14 s talking), capping you at 20 calls/min. Adding lines helps only until 30 in total (keeping 8% for inbound): beyond that, your CPS of 1 call/second caps you at 60 calls/min. Want to go faster? Contact your platform to increase your concurrency capacity.

The two ceilings
Concurrency · 9 outbound lines20/minbottleneck
CPS · 160/min

The lower one sets your pace. Ringing counts on the lines.

Free, 15 min. Bring your campaign, leave with a sizing.

Sign up
02 Bottleneck

Two ceilings. The lower one sets your pace.

Your concurrency lines cap how many calls can hold a line at once; your provider’s CPS caps how many start every second. A dial holds its line from the first ring, so ringing counts on the first one.

Concurrency lines9 outbound · 1 kept for inboundbottleneck20 calls / min

9 lines × 60 / 27 s per dial = 20 calls/min

Provider CPS1 CPS60 calls / min

1 × 1 line or trunk × 60 = 60 calls/min

Line time per dialringing + talking27 s / dial

ringing 13 s (48%)talking 14 s (52%)

At full speed the provider starts 1 call per second; each holds its line 27 s, so 27 calls are on the lines at once. With 1 line kept for inbound, 30 concurrency lines let the CPS set the pace; you have 10. Ringing is part of that time: while the phone rings the AI agent is already waiting and the call holds a SIP trunk slot, yet nobody talks.

03 Calling hours

When your campaign dials, against French calling hours.

Cold calling consumers in France is allowed Monday to Friday, 10:00 to 13:00 and 14:00 to 20:00, never on weekends or public holidays (decree 2022-34). The run starts at your start time and dials without pause.

Reading your local time…

both keep your exact settings

real pace · concurrency-bound

20 calls/min · done in 8 h 20 min

04 What moves the pace

Four levers, and when each one pays off.

The verdict above names your bottleneck. Each lever below moves the pace only while its ceiling is the lower one.

Add concurrency lines

when concurrency is the bottleneck

Every dial holds a line for its ringing plus its call. Lines speed the campaign up until they cover CPS × lines or trunks × seconds per dial, plus the inbound reserve. At the defaults that is 30 lines for 1 CPS; past that point, extra lines sit idle.

30lines to keep up with 1 CPS

Raise the CPS

when your provider is the bottleneck

CPS is set by your telephony provider: Twilio starts at 1 call per second and most carriers raise it on request. Where CPS applies per SIP trunk or per number, spreading the file over several of them multiplies it. Each extra CPS is 60 more calls a minute, as long as your lines keep up.

+60calls per minute per extra CPS

Watch the ringing

13 s per dial by default

A dial takes its line from the first ring: the AI agent is already waiting and the SIP trunk slot is taken, yet nobody talks. At 13 s of ringing and 14 s calls, nearly half of every line's time goes to phones still ringing. Ring timeouts that fit your pickup pattern stop unanswered dials from holding lines for nothing.

48%of line time spent ringing

Keep lines for callbacks

missed calls ring back

Prospects who miss your call dial back. The simulator keeps (1 - pickup rate) × 10% of your lines free for them, rounded up: 8% at the default 20% pickup, more when fewer people answer, nothing at 100%.

8%of lines at 20% pickup
05 Method

How the simulator calculates your campaign velocity.

The model compares the two ceilings of any outbound calling campaign and keeps the lower one:

  • Line hold time = average ringing time + average call duration, in seconds. A dial takes its concurrency line from the first ring, not from pickup.
  • Concurrency pace = outbound concurrency lines × 60 / line hold time (seconds), in calls per minute.
  • CPS pace = CPS × phone lines or SIP trunks × 60, in calls per minute.
  • Real pace = the minimum of the two. Whichever is lower is your bottleneck.
  • Campaign duration = total calls in the campaign / real pace.
  • Total minutes in campaign = total calls in the campaign × average call duration (seconds) / 60. Ringing stays out: it holds lines but is not talk time. Unlike the duration, this volume of voice minutes does not move when you add concurrency lines or raise your CPS: going faster costs the same minutes, just sooner.

Because calls stop stacking up once they last longer than the time the CPS needs to replace them, only CPS × lines or trunks × line hold time calls ever hold a line at the same time. Ringing counts as much as talking there: while the phone rings, the AI agent is already waiting and the call takes a slot on your SIP trunk, yet nobody talks. With a typical provider CPS of 1 (Twilio's default), 13 seconds of ringing and 14 second average calls, that is 27 calls, more than the 10 concurrency lines included by default with CallShift: concurrency sets the pace until you add lines, and past that point the fastest lever is raising your CPS with your telephony provider. A share of your concurrency lines also stays reserved for inbound calls: prospects who miss your call tend to call back, so the automatic reserve is (1 - average pickup rate) × 10% of your lines, rounded up. With the default 20% pickup rate that is 8% of your lines; at 100% pickup nobody calls back, so nothing needs reserving, and the lower your pickup rate, the more callback capacity you keep.

Real campaigns run a little slower than the theory: your orchestration platform needs a moment to end each call, pick the next contact, warm up an agent and launch the call. Plan for a 10 to 20% margin on the pace shown above.

06 Questions

Frequently asked questions.

What is CPS (calls per second) in outbound calling?

CPS is the number of new calls your telephony provider lets you start every second. It is a setting on the provider side: with Twilio, for example, the default CPS is 1, and you can usually ask your provider to raise it. CPS multiplied by your phone lines or SIP trunks and by 60 gives the maximum number of calls you can launch per minute.

What is a concurrency line?

A concurrency line is one agent slot: the number of concurrency lines is how many agents you can deploy to be calling at the same time. It is different from a phone line or SIP trunk, the number or connection the calls go out through. With CallShift, 10 concurrency lines are included by default with every workspace.

What is a phone line or SIP trunk?

A phone line is an outbound phone number used to place the calls; a SIP trunk is the connection that carries them between your telephony provider and your voice platform. Both are different from a concurrency line, which is an agent slot. Depending on the provider, the CPS limit applies per trunk, per number or per account: where it applies per trunk or per number, spreading a campaign over several of them raises the pace.

Why does ringing time slow down an outbound campaign?

Because a dial takes its concurrency line from the first ring, not from the moment someone picks up. While the phone rings, the AI agent is already up and waiting and the call holds a slot on your SIP trunk, yet nobody is talking. Each dial therefore keeps a line busy for the average ringing time plus the average call duration: with 13 seconds of ringing and 14 second average calls, a dial holds its line 27 seconds, and for nearly half of that time nobody talks. It is not talk time, though, so it does not add to the voice minutes the campaign consumes.

What usually limits the speed of an outbound calling campaign?

The lower of two ceilings: the provider CPS limit, which caps how many calls start every second, and your concurrency lines, which cap how many calls can hold a line at once. Ringing counts toward the second, since a dial holds its line from the first ring. With a CPS of 1, 13 seconds of ringing and 14 second average calls, 27 calls hold a line at once, so 10 concurrency lines are the bottleneck: adding lines speeds the campaign up until the CPS takes over, and from there only raising the CPS with your telephony provider does.

How many concurrency lines do I need for an outbound campaign?

Multiply your CPS by your number of phone lines or SIP trunks and by the seconds each dial holds a line, that is your average ringing time plus your average call duration, then add the lines you reserve for inbound calls. Example: with a CPS of 1, one phone line or trunk, 13 seconds of ringing, 14 second average calls and 3 inbound lines, you need 30 concurrency lines: 27 for outbound calls, ringing or talking, plus 3 for inbound.

How do I calculate the velocity of an outbound campaign?

Compare two paces and keep the lower one: outbound concurrency lines times 60 divided by the seconds each dial holds a line (average ringing time plus average call duration), and CPS times phone lines or SIP trunks times 60. That minimum is your real pace in calls per minute. Divide the total calls in the campaign by it to get the campaign duration.

What is a callback and why reserve inbound lines?

A callback is an inbound call from a prospect who missed your call and dials your number back. Callbacks are frequent during an outbound campaign, so it is best practice to keep a share of your concurrency lines free for inbound. The simulator reserves (1 - average pickup rate) x 10% of your lines, rounded up: 8% at the default 20% pickup rate, more when fewer people pick up, and nothing at 100% pickup since nobody calls back.

What are the legal outbound calling hours in France?

Cold calling consumers in France is allowed Monday to Friday, from 10:00 to 13:00 and from 14:00 to 20:00, and never on Saturdays, Sundays or public holidays (French decree 2022-34, in force since 1 March 2023). That leaves 9 hours of legal calling per weekday, so a campaign longer than that has to be split across several days. The simulator warns you when the start time you pick, or the finish time it computes from your pace, falls outside those windows.

Why don't my real campaigns match the calculated results exactly?

It can be multifactorial, but very likely your orchestration platform applies its own operational margin (or latency) to process all the calls: terminating a call, checking the next contact, warming up the new agent, launching the call. A reasonable approach is to apply a 10 to 20% margin to the theoretical velocity from the simulator.

Still have questions?

Contact us

Contact
Next step

See it on your own calls.

Book a call with a voice AI engineer: we start from your real call flows and show you the agent, the architecture and the numbers that fit them.

1:1with a voice AI engineer, no slides
2architectures we ship in production: speech-to-speech and pipelines
1rollout plan to leave with: volume, pricing, telephony