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.
| Metric | Additive across rows? | How to get a total for the scope you need |
|---|---|---|
| Impressions, spend, clicks, counted actions | Yes | Sum the rows for the same account, currency and attribution setting |
| Reach | No | Request reach at the aggregate level and period from the provider |
| Frequency | No | Divide whole-period impressions by whole-period reach from the provider |
| Click-through rate, cost per result | No | Recompute from summed numerators and denominators |
| Reach across overlapping campaigns | No | Request 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.