Your Google Analytics 4 data in BigQuery is unlikely to be accurate unless you follow these four rules for data aggregation.
Rule-1: Aggregate event-level data at the session level when you are calculating dimensions and metrics with a session scope.
A session may have multiple events (like page_view, scroll, click, etc.). Each event could have a different source or no source at all.
Suppose a session has 3 page_view events (all with the same source) and 2 scroll events (with a missing source).
If you count these as “sessions” without aggregation, you’ll see 5 sessions for one user-session combination.
So you will inflate your session count.
You can aggregate event-level data at the session level by using a unique combination of ‘user_pseudo_id’ (which represents the user) and ‘ga_session_id’ (which represents the session).