Sign in

Practical guide

Meta reach is not additive: why you cannot sum reach across rows

Reach counts unique people within a defined scope: one account, campaign, ad set or ad over one period. The same person can appear in several daily or ad-level rows, so those rows are not independent populations and cannot be added. Ask the source for the aggregate scope you need rather than building it by addition.

By Adlane · Updated

Meta reach is unique within a scope, and only that scope

A reach figure answers the question “how many different people were shown at least one impression within this scope?” The scope is the level and the period of the report row. A daily row counts the people reached that day; a per-ad row counts the people reached by that ad. Change the scope and the count is for a different population.

This is what makes reach different from impressions or spend. An impression is an event; two events on two days are two impressions. A person is not an event; the same person on two days is still one person. Adding reach rows treats people as if they were events.

Illustrative example: 100 on Monday, 100 on Tuesday, 140 in total

Illustrative example: a fictional ad reaches 100 people on Monday and 100 people on Tuesday. If 60 of those people were shown the ad on both days, the two-day reach is 140, not 200. The 60 returning people are in both rows, and a spreadsheet sum counts them twice.

The overlap cannot generally be recovered from the two daily totals alone. Nothing in “100” and “100” says whether the overlap was 0, 60 or 100. A formula cannot deduplicate people it cannot identify, which is why the whole-period figure has to come from the provider, which can.

Which metrics you can add and which you cannot

Use the table before aggregating any breakdown. The rule of thumb: counts of events add; counts of people do not; ratios never add and must be recomputed from their parts.

MetricAdditive across rows?How to get a total for the scope you need
Impressions, spend, clicks, counted actionsYesSum the rows for the same account, currency and attribution setting
ReachNoRequest reach at the aggregate level and period from the provider
FrequencyNoDivide whole-period impressions by whole-period reach from the provider
Click-through rate, cost per resultNoRecompute from summed numerators and denominators
Reach across overlapping campaignsNoRequest account-level reach; label it unavailable if not returned

Write down the scope before asking for the total

State the scope of the total you want: which account, which campaign or ad, over which complete period. Then request reach at exactly that level and period. Keep the daily or ad-level rows for pattern analysis, such as spotting the day reach stopped growing, and treat their sum as meaningless for a unique-audience claim.

When you aggregate compatible additive measures into a summary, keep reach outside that calculation. If the provider does not return whole-period reach for the scope you need, write “unavailable” in that cell. An honest blank is more useful than a confident wrong number.

Frequency inherits the same caution

Frequency is impressions divided by reach. Any reach figure built by addition carries its overstatement into frequency as an understatement, and any average of daily frequencies hides the fact that each day’s average is over a different set of people. Whole-period frequency must come from whole-period impressions and whole-period reach.

The same logic applies to overlapping audiences across campaigns: two campaigns targeting similar people reach a combined audience smaller than the sum of their reach figures. Read the two rows as two views of partly the same people.

Ask Adlane for reach at the scope you need

In Adlane, connect Meta and select the ad account. Ask a bounded question that names the scope, such as “What was this campaign’s reach and frequency for the last complete four weeks at the campaign level, and separately show the daily impressions, using the account’s attribution setting for any results?” Review the evidence and check that the period-level reach was returned rather than summed.

Any change the review leads to is prepared as a proposal you approve before it is applied; nothing is changed from the conversation, and new campaigns start paused. Adlane reports reach as the provider returns it for the requested scope and does not reconstruct it by addition. It is not affiliated with Meta.

Sources

Continue your review