GA4 setup

Why your GA4 BigQuery numbers don't match the GA4 reports

You export raw GA4 data to BigQuery, run a count, and it does not match the GA4 interface. This is normal and expected. The two are built differently, and knowing why tells you which to rely on for what.

They are measuring differently

BigQuery gives you raw event rows exactly as they arrived. The GA4 UI applies a stack of processing on top: identity stitching, modelled conversions for unconsented users, attribution logic, and data thresholding that withholds small numbers for privacy. Raw rows and processed reports will never tie out exactly.

The usual culprits

Which to trust

Use the GA4 UI for standard reporting and anything involving attribution or users; it is the processed, official view. Use BigQuery for raw analysis, custom logic and long-term history that the UI's retention limit would delete. Just do not expect a row count in one to equal a headline number in the other.

Want us to check your tracking in 10 seconds?

Pop in your domain and we will show you what is firing, what is not, and where data is leaking. Free, no signup.

Check my tracking free

Get a plain-English audit

We check your live GA4, Google Tag Manager and consent setup by hand and tell you exactly what is wrong. The audit comes off any build.

See how it works & pricing

Datahound are analytics and ad-tracking specialists. We fix broken GA4, Google Tag Manager and server-side tracking so every sale, form and call gets counted. Back to datahound.agency · All tracking guides · GA4 data retention explained