In short. Refresh recent GA4 BigQuery date partitions because late events can update daily tables for up to three days.
Definition: A GA4 daily BigQuery table can change because Google Analytics may add late-arriving events to the table for up to three days after the events' dates. The events keep their correct timestamp, so a query over an earlier
events_YYYYMMDDtable can return different results when it runs again during that window.
Key facts
- Google creates an
events_YYYYMMDDtable each day when the Daily export option is enabled, as described in its BigQuery Export schema. - Google says the daily tables can receive events for their dates up to 72 hours later, and recommends comparing data older than 72 hours in its BigQuery and Analytics comparison guidance.
- Late events keep the correct timestamp. Events arriving after the three-day window are not recorded, according to the schema documentation.
- A streaming export uses an
events_intraday_YYYYMMDDtable that is populated continuously and deleted at the end of the day once the daily table is complete.
What happens during the update window?
Google documents that some devices send event data after the day on which the events are triggered. Analytics can then update the daily table for that event date for up to three days. The table name represents the event date, while event_timestamp records when Google Analytics received the event in microseconds UTC.
The developer guidance describes the same period as 72 hours beyond the table date. It identifies offline or delayed events from a Firebase SDK or Measurement Protocol implementation as a situation where the difference can matter. The standard reporting surface and BigQuery can be updated at different times during those 72 hours, so the two surfaces can show different values temporarily.
Which fields and tables should a report use?
The schema page defines event_date as the date when the event was logged, in YYYYMMDD format and the app's registered timezone. It defines event_timestamp as the time when Google Analytics received the event. The event_original_occurrence_timestamp parameter holds the original device time for events ingested after the standard 72-hour processing window.
If streaming export is enabled, events_intraday_YYYYMMDD is continuously populated during the day. Google says that table is deleted at the end of the day after events_YYYYMMDD is complete. A report that needs a stable daily result should therefore read the daily table and allow the documented update window to close.
How should a report refresh recent partitions?
Google's BigQuery event export query guide says to filter a date range with the _TABLE_SUFFIX pseudo column in the WHERE clause. A scheduled report can use that pattern for a rolling range that includes dates still inside the late-event window, then recalculate those partitions on later runs.
-- Example: Query a specific date range for selected events.
--
-- Counts unique events by date and by event name for a specifc period of days and
-- selected events(page_view, session_start, and purchase).
SELECT
event_date,
event_name,
COUNT(*) AS event_count
FROM
-- Replace table name.
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
event_name IN ('page_view', 'session_start', 'purchase')
-- Replace date range.
AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
GROUP BY 1, 2;
The guide also says that the sample table name should be replaced with your own table. The date filter limits which daily tables the query reads, so the refresh job can target the recent dates instead of rebuilding its full history.
Related terms
- GA4 traffic acquisition
- How do I query AI referral sessions in the GA4 BigQuery export?
- Where is the page referrer stored in a GA4 BigQuery export?
FAQ
What is a late-arriving event in GA4 BigQuery?
It is an event sent to Analytics after the day on which it was triggered. Google says the event is written to the table for its event date when it arrives within the documented three-day window.
When can a daily BigQuery table be treated as stable?
Google's developer guidance recommends comparisons on data older than 72 hours for delayed events. A report can use that age as its stability boundary while retaining a refresh process for more recent daily tables.
What happens when an event arrives after the window?
Google's schema documentation says events arriving after the three-day window are not recorded. The documentation also identifies event_original_occurrence_timestamp for events ingested after the standard 72-hour processing window, so the ingestion path and field availability should be checked when investigating such data.
Sources
- Google Analytics Help, "BigQuery Export schema", n.d.
- Google for Developers, "Bridge the gap between the Google Analytics UI and BigQuery export", April 2023
- Google for Developers, "Basic queries for Google Analytics event data export", 15 June 2026
Check how a page reads to answer engines. Open the GEO score analyzer