Intraday BigQuery data is useful, but it is not final. Teams get into trouble when they compare intraday exports to finalized daily data or use intraday numbers in dashboards without flagging them as provisional.
Two export types, two different purposes
GA4 exports data toBigQueryin two table formats: intraday and daily. They are not interchangeable.Intraday tables(events_intraday_YYYYMMDD) are written throughout the day as events arrive.Daily tables(events_YYYYMMDD) are created after Analytics collects the day's events and can continue to receive updates for late-arriving events.
The gap between them is not a bug. It reflects the fundamental difference between streaming and batch processing. Understanding this distinction is the first step to building reliable BigQuery pipelines, and to running a defensibleBigQuery parity checkagainst GA4 reports.
streaming export may not include all data
intraday tables are removed when the daily table is complete
query daily tables when you need a dependable day-level dataset
daily tables can be updated for late-arriving events
Why the numbers diverge
Several processing steps happen between intraday streaming and daily finalization. If your dataset is missing tables entirely rather than just lagging, see themissing tables debugging checklist:
- Best-effort streaming. Google documents streaming export as a best-effort operation, so intraday data can be incomplete due to late events or other processing delays.
- Late-arriving data. Events sent with a historical timestamp can be added to the daily table for up to 72 hours after the table date, and Google notes that reprocessing can occasionally happen even later.
- Attribution field availability. Google documents that some user-attribution fields are not fully processed in streaming export, so intraday is a poor source forattribution-sensitive reporting.
- Pipeline timing. If your dashboards query intraday and daily exports without clear cutover rules, the same business metric can look unstable simply because the data source changed mid-day. This is particularly important for any pipeline feedingdata quality scoringor executive reporting.
Identify your use case
Determine whether you need real-time data (intraday) or accurate historical data (daily). Never use intraday for permanent reporting tables.
Check table availability before querying
Always check whether the daily table for a given date exists before falling back to intraday. Use INFORMATION_SCHEMA.TABLES or a date check in your query logic.
Add provisional flags to intraday data
If intraday data appears in dashboards, label it clearly as provisional. Use a calculated field or banner to prevent stakeholders from treating it as final.
Set a finalization wait period
For stable reporting, wait until the daily table exists and remember that Google can still update it for late-arriving events for up to 72 hours.
Reconcile and monitor divergence
Build a reconciliation query that compares intraday and daily counts for recent dates. Use the trend to understand your property's normal gap instead of assuming one fixed benchmark.
BigQuery export reliability checklist
- Daily tables used for all permanent reporting and dashboards
- Intraday queries handle table-not-found gracefully
- A documented cutover rule exists between intraday and daily exports
- Intraday data labeled as provisional in any dashboards
- Reconciliation query monitors intraday vs daily divergence
- ML pipelines confirmed to use daily tables only
- Late-arriving daily table updates are accounted for in pipeline logic
Related guides to read next
GA4 Data Hygiene Audit
Systematic approach to finding and fixing data quality issues in your GA4 property and BigQuery exports.
GA4 Audit Checklist
Complete audit checklist for GA4 property configuration, tagging, and export reliability.
GA4 Session Counting Explained
How GA4 counts sessions differs from UA. Understanding this prevents major discrepancies in BigQuery pipelines.
Ready to audit your GA4 property?
Run a full GA4 audit in under 2 minutes. Free to start.