Understanding aggregatable vs. non-aggregatable metrics and how to work with them
Sometimes the numbers in a report you build with the Windsor connector don’t match what you see in the original platform’s dashboard. For example, your daily users might be greater than the weekly total, or your campaign’s average CPC might be misleading.
In many cases, this happens because of mixing two different kinds of metrics: the ones you can sum up (aggregatable) and the ones you can’t (non-aggregatable).
This guide explains the difference between aggregatable and non-aggregatable metrics, highlights common mistakes and misunderstandings when using them, and gives practical tips for handling them correctly in reporting tools like Looker Studio or Google Sheets.
Aggregatable metrics
Some metrics can be added, averaged, or grouped without losing their meaning. These are aggregatable metrics—numbers that retain their meaning when summed or averaged.
Why they matter
Aggregatable metrics show the bigger picture. Add them up across time, campaigns, or channels, and you still get a valid total without double-counting or misinterpretation. That makes them easy to track, compare, and report.
Common types of aggregatable metrics:
- Clicks: Add daily clicks for a weekly or monthly total.
- Impressions: Combine impressions to see total reach.
- Spend: Add campaign spend to get the overall cost across campaigns.
- Conversions: Sum conversions across channels for a complete number.
- Video views: Add daily views to see the total watch count.
- Leads: Combine leads from different campaigns to count the total pipeline.
- App downloads: Add downloads from each source to see full app adoption.
- Page views: Add daily traffic to count overall visits.
- Signups: Sum signups from campaigns to calculate total new users.
Example
Let’s see how aggregatable metrics work in practice. Suppose we have two campaigns:
| Campaign | Impressions | Clicks |
| A | 1000 | 100 |
| B | 100 | 50 |
Total impressions across both campaigns are 1000+100=1100, and total clicks are 100+50=150. Impressions and clicks are both aggregatable metrics, so adding them gives accurate results.
Non-aggregatable metrics
Non-aggregatable metrics are the ones you can’t just add or average because they’re ratios or unique counts. If you try to manipulate them, the numbers usually look off and can lead to inaccurate reports.
Common types of non-aggregatable metrics:
- Users: 50 users on Monday and 60 users on Tuesday doesn’t mean 110 total. Some of those people could be the same.
- Reach: This metric can’t be summed across days or campaigns, because the same people may be counted multiple times. So, the unique reach must be calculated at the reporting level.
- Conversion rate: You can’t just average conversion rates. For example, to count the weekly conversion rate, you have to divide total conversions by total clicks.
- CPC (cost per click): Again, you can’t just average CPC across all campaigns. Instead, you have to combine spend and clicks first.
- Bounce rate, CTR, ROAS, and engagement rate: all these metrics work the same way: get totals first, then do the math.
- Average session duration: You have to calculate a weighted average; otherwise, it will be misleading.
Takeaway: Always aggregate the underlying totals before calculating these metrics.
Examples
The metrics that most often cause confusion are Reach and Users, especially when compared to the numbers in a GA4 or Google Ads dashboard. Let’s take a detailed look at them.
Example 1: Reach
For example, you might consider Reach as the number of unique users who saw your ad over a given period. However, you can’t just sum reach across multiple ads or days, because the same person may see multiple ads or see ads on different days. Counting them multiple times inflates the total.
Here’s a practical example.
| Account | Campaign | Ad | Reach |
| Account 1 | Summer Sale | Ad A | 500 |
| Account 1 | Summer Sale | Ad B | 600 |
| Account 1 | Summer Sale | Ad C | 400 |
Sum of ad-level reach: 1,500
Actual unique reach (according to Google Ads): 900
The discrepancy occurs because 600 users overlapped across ads.
Correct approach: Always pull Reach directly at the level you care about (campaign, ad set, or account) to get accurate numbers.
Example 2: Users
Users represent the number of unique people who visited your website, app, or saw your content during a given period.
If you break Users down by day, campaign, or medium and then just sum those values, the total will almost always exceed the true number of unique users. This happens because the same user can appear in multiple rows, for example, visiting on different days or across different campaigns.
Let’s check it in an example.
| Day | Users |
| Day 1 | 800 |
| Day 2 | 900 |
| Day 3 | 700 |
| Sum of daily users | 2,400 |
Sum of daily users: 2,400
Actual number of unique users (according to GA4): 1,600
In this example, 800 users visited on more than one day. Summing daily users inflated the total.
Correct approach: Always query Users at the level you care about (weekly, monthly, or by campaign) instead of summing lower-level counts. This ensures accurate numbers across GA4 and most other platforms that report unique users.
Common mistakes & how to avoid them
For aggregatable metrics
- Averaging instead of summing: Taking a daily average (e.g., daily revenue) and summing it for the month will lead to incorrect results.
- Mixing granularities: Reporting campaign-level clicks and then rolling them up to weekly totals without aligning dates can create errors.
- Ignoring blanks or missing data: Functions like SUM() may skip blank values, resulting in totals smaller than they should be.
How to fix it: Use raw counts, ensure your timeframes align, and handle blanks properly (e.g., COALESCE() in SQL or IFERROR() in Google Sheets/Excel).
For non-aggregatable metrics
- Averaging percentages incorrectly: Simply averaging daily or campaign-level percentages (e.g., conversion rates) instead of recalculating from raw counts is misleading.
- Mixing numerator and denominator: Using conversions from one period and sessions from another will distort results.
- Combining ratios with counts in formulas: This usually produces meaningless numbers.
How to fix it: Always recalculate metrics from the raw counts, maintain consistent time ranges, and keep ratios separate from raw counts in dashboards.
Working with aggregatable and non-aggregatable metrics in Looker Studio and Google Sheets
Let’s explore some common cases of working with these types of metrics in Looker Studio and Google Sheets.
Suppose you want to get totals for some metrics based on the marketing campaign data, like this:
| Campaign | Clicks | Conversions | Cost | Revenue | New customers |
| Google Ads | 12,000 | 1,200 | 6,000 | $24,000 | 600 |
| Meta Ads | 9,000 | 1,050 | 4,200 | $16,800 | 500 |
| 4,000 | 600 | 1,200 | $3600 | 100 |
Here’s how you count everything properly.
1. Clicks
Looker Studio:
- Aggregation: SUM(Clicks)
- Visualization: total clicks by campaign or overall will give the correct result.
Google Sheets:
=SUM(B2:B4) // where B column is ClicksIt’s safe to sum clicks across campaigns because clicks are raw counts and aggregatable.
2. Conversions
Looker Studio:
- Aggregation: SUM(Conversions)
- Can also compute AVG(Conversions) per campaign.
Google Sheets:
=SUM(C2:C4) // where C column is ConversionsConversions can be easily summed up because they’re an aggregatable metric.
3. Reach
If you want to calculate the number of unique people who saw your ads or content.
Looker Studio:
- No safe aggregation function like SUM.
If you sum campaign-level reach, you’ll double-count the same person reached across campaigns.
- Instead, pull “Unique Reach” directly from the source platform (Meta, Google Ads, etc.) at the desired reporting level.
Google Sheets:
- You can’t simply =SUM(reach_column).
- If Google Ads reports 10,000 reach and Meta Ads reports 12,000 reach, the true combined reach might only be 18,000 (because of overlap).
- The correct value can only come from the ad platform’s deduplicated reach metric, not a manual sum.
Reach must be recalculated at the platform level, not aggregated across rows.
4. Users
If you want to calculate the number of unique users who visited your site/app.
Looker Studio:
- Same issue as with reach: summing all users across dimensions (days, campaigns, devices) leads to inflated totals.
- The correct aggregation is “Users” from GA4 as provided (deduplicated by GA4).
Google Sheets:
- If you export daily users from your data source like GA4, =SUM(users_column) will overcount, because the same users could visit your site on several days.
- The correct weekly number must come from GA4’s built-in “Users” metric.
Like reach, users are unique counts and can’t be added up across rows.
5. Cost per conversion (CPC)
Formula: Cost / Conversions
Looker Studio (custom field):
Cost per Conversion = SUM(Cost) / SUM(Conversions)Google Sheets:
=SUM(D2:D4)/SUM(C2:C4) // D=Cost, C=ConversionsCPC should be determined from the totals after aggregation, not from per-campaign averages, as it is a non-aggregatable metric.
6. Return on ad spend (ROAS)
Formula: Revenue / Cost
Looker Studio (custom field):
ROAS = SUM(Revenue) / SUM(Cost)Google Sheets:
=SUM(E2:E4)/SUM(D2:D4) // E=Revenue, D=CostROAS is a non-aggregatable metric. Simply averaging it gives you wrong numbers, so always get it from the totals instead.
7. Customer acquisition cost (CAC)
Formula: Cost / New Customers
Looker Studio (custom field):
CAC = SUM(Cost) / SUM(New Customers)Google Sheets:
=SUM(D2:D4)/SUM(F2:F4) // D=Cost, F=New Customers
Simple averaging of per-campaign CAC will lead to wrong reporting. Apply the proper formula instead.
Conclusion
Always be aware of the type of metric you’re working with. Some metrics, like Clicks and Conversions, can be summed, while others, such as ROAS, Reach, or Users, require a more careful approach.
Never average ratios; doing so almost always leads to incorrect numbers and messy reports. Instead, start from the raw totals and calculate your metrics from there.
Whether you’re reporting in Looker Studio, Sheets, or any other dashboard, base your calculations on raw data. It may take a bit more effort upfront, but your reports will be accurate, consistent, and free from unexpected discrepancies.
Windsor.ai can provide raw counts when needed (for non-aggregatable metrics) or already aggregated values for metrics like clicks, impressions, or spend. So the metric you pull is already accurate and avoids double-counting or wrong averages.
For many platforms, you can pull metrics already calculated at the correct level, e.g., weekly users, campaign-level reach, or CPC. This means you don’t have to manually sum or recalculate anything in your destination tool.
If a metric is platform-specific and can’t be directly retrieved (like some custom calculated ratios), Windsor still gives you the underlying totals so you can calculate it reliably. But in many standard cases, it already delivers the final, correct metric ready to use in reports.
Tired of juggling fragmented data? Get started with Windsor.ai today to create a single source of truth

Windsor vs Coupler.io