Facebook Ads Reach Calculator

Unique reach from an exposure model rather than a division, with how many people see the ad once, twice or six times, and how quickly reach saturates.

Enable JavaScript to customise; default output below.

Reported for context. Reach follows the impressions bought rather than the time they are spread over, though a longer flight usually costs more an impression.

Live preview reach.txt
Audience                             800,000
Budget                               $4,000.00 over 2.0 weeks
Impressions                          434,783 at a $9.20 CPM

Reach
  people who see it at least once    335,420
  share of the audience              41.9%
  frequency among those reached      1.30
  impressions a head of audience     0.54
  cost a person reached              $0.0119

How often they see it
  never                              58.07%, about 464,580 people
  1 time                             31.56%, about 252,489 people
  2 times                            8.58%, about 68,611 people
  3 times                            1.55%, about 12,430 people
  4 times                            0.21%, about 1,689 people
  5 times                            0.02%, about 184 people
  6 or more                          0%, about 18 people

Against the usual shortcuts
  impressions counted as people      434,783, 29.6% too high
  impressions over a frequency of 2  217,391, which assumes an even spread
  this model                         335,420
  the difference                     impressions do not queue politely one person at a time: some people see the ad three times before others see it once

What more budget buys
  $4,000.00                          335,420 reached, 41.9% of the audience, frequency 1.30  ← yours
  $8,000.00                          530,207 reached, 66.3% of the audience, frequency 1.64
  $16,000.00                         709,015 reached, 88.6% of the audience, frequency 2.45
  $32,000.00                         789,652 reached, 98.7% of the audience, frequency 4.40
  which shows                        reach saturates while frequency keeps climbing: the money stops buying new people long before it stops buying impressions

434,783 impressions against an audience of 800,000 reaches about 335,420
people, 41.9% of it, at a frequency of 1.30. Counting the impressions as
people would have said 434,783, which is 29.6% too high.

Doubling the budget does not double the reach. $8,000.00 would reach
530,207 rather than 670,840, because the second half of the money keeps
finding people the first half already found.

This model assumes exposures fall randomly across the audience. Real
delivery is more concentrated than that, since the platform re-serves
whoever is cheapest to reach, so treat the reach figure as an optimistic
bound and the frequency as a conservative one.

Frequency is an average over a distribution with a long tail. The table
above is the useful part: a campaign whose average frequency looks
reasonable can still be showing the same ad a dozen times to a small
group, and that group is where the negative feedback comes from.

Reach and frequency trade against each other at a fixed budget, and the
right balance depends on the job. A launch needs reach, a considered
purchase needs frequency, and the mistake is planning one and reporting
the other.

Platform reach figures are deduplicated per platform, not across them.
The same person counted on two networks is one person, so adding
reported reach across channels overstates it by the overlap, which is
usually large.

None of this says whether the ad works. It says how many people had the
chance to see it and how often, which is the denominator for that
question rather than an answer to it.

Output is valid and updates as you type.

Impressions divided by frequency is not reach. It assumes the impressions spread themselves evenly across the audience, one person at a time, and they do not: some people see the ad three times before others see it once.

The standard way to model that is to treat exposures as falling randomly across the audience, which gives a Poisson distribution. With λ impressions per member of the audience:

reach          = audience × (1 − e^−λ)
frequency      = λ / (1 − e^−λ)
seen exactly k = e^−λ λ^k / k!

On the example, 434,783 impressions against an audience of 800,000 reach about 335,420 people at a frequency of 1.30. Counting the impressions as people would have said 434,783, which is 29.6 percent too high.

The model is wrong in a known direction. Real delivery is more concentrated than random, because the platform re-serves whoever is cheapest to reach, so this overstates unique reach. It is still far closer than dividing, and the shape of the answer is the part that matters.

How to use

  1. Put in the audience the campaign can actually deliver to, the budget and the CPM you expect.
  2. Read the reach and the frequency together. Neither means much alone.
  3. Use the exposure table to see how concentrated the delivery is, and the budget table to see where reach stops growing.

Example

An audience of 800,000, $4,000 at a $9.20 CPM over two weeks:

Reach
  people who see it at least once    335,420
  share of the audience              41.9%
  frequency among those reached      1.30
  cost a person reached              $0.0119

How often they see it
  never                              58.07%, about 464,580 people
  1 time                             31.56%, about 252,489 people
  2 times                            8.58%, about 68,611 people
  3 times                            1.55%, about 12,430 people
  4 times                            0.21%, about 1,689 people

Against the usual shortcuts
  impressions counted as people      434,783, 29.6% too high
  impressions over a frequency of 2  217,391, which assumes an even spread
  this model                         335,420

What more budget buys
  $4,000.00                          335,420 reached, 41.9% of the audience, frequency 1.30
  $8,000.00                          530,207 reached, 66.3% of the audience, frequency 1.64
  $16,000.00                         709,015 reached, 88.6% of the audience, frequency 2.45
  $32,000.00                         789,652 reached, 98.7% of the audience, frequency 4.40

Eight times the budget buys 2.4 times the reach and 3.4 times the frequency. Reach saturates while frequency keeps climbing, which is the whole planning problem in one table.

Pitfalls

Reach and impressions are different units. Reach counts people, impressions count deliveries. A report that adds them, or uses one where it means the other, is a report that has lost the plot.

Doubling the budget does not double the reach. The second half of the money keeps finding people the first half already found. Past about 70 percent coverage, extra money is buying frequency whether you asked for it or not.

Average frequency hides its own tail. A campaign whose average looks reasonable can still be showing one ad a dozen times to a small group. That group is where the negative feedback and the hidden-ad reports come from.

This model is an optimistic bound on reach. Random exposure is the most spread-out delivery you could get. Real delivery concentrates, so treat the reach figure as a ceiling and the frequency as a floor.

Platform reach is deduplicated per platform, not across them. Adding reported reach across networks counts the same person more than once, usually by a large margin.

A large audience is not free reach. The budget decides how much of an audience gets touched. Widening the targeting without widening the budget lowers coverage and hands the delivery system more room to pick the cheapest people.

Reach says nothing about whether the ad worked. It is the denominator for that question, not an answer to it.

Compatibility

Arithmetic in the browser: nothing is uploaded and nothing is stored.

The exposure terms are built iteratively rather than with a factorial, so the distribution stays accurate at high λ where a direct factorial would overflow. The test suite asserts the distribution never sums above one and that the share who see the ad at least once is exactly one minus the share who never see it, which are the two properties a probability distribution has to have.

Reach is capped by the audience by construction, since the model multiplies the audience by a share that cannot exceed one. A budget far larger than its audience reports nearly complete coverage and a high frequency rather than an impossible reach.

The weeks field is reported for context and does not change the arithmetic: reach follows the impressions bought rather than the calendar they are spread over. A longer flight usually costs more per impression, which belongs in the CPM.

Frequently asked questions

Why is this different from the platform’s reach estimate?
The platform’s estimate uses its own delivery history and knows things this does not. Use it when you have it. This is for planning before a campaign exists, and for sanity-checking a number that looks too round.
What frequency should I plan for?
Two to three over a few weeks is the usual range for prospecting. Below one, a large part of the audience sees a single impression and forgets it; above five, response typically falls while cost keeps rising.
Should I cap frequency?
If the exposure table shows a meaningful group seeing the ad six or more times, yes. A cap moves that money to people who have not seen it, which is almost always the better use of it.
Is a 42 percent coverage figure bad?
It is neither. It is the coverage that budget buys against that audience, and the question is whether you would rather cover more of a smaller audience. That is a targeting decision the arithmetic cannot make for you.
Can I use this for other platforms?
Yes. The exposure model is not specific to any network: it needs an audience size, a budget and a CPM. The caveat about concentrated delivery applies to every optimising ad system.
Weekly drops

New tools, when there are new tools

One email when something worth using ships. No schedule to fill, so no filler.

Your address goes nowhere else, and one click unsubscribes.