The Difference between clicks and between impressions isn’t that big of a problem, we know that this can happen. The difference between positions though is, what is tripping us off.
Edit: I did another test, one without any URL given, one with a URL given. Without any URL, Clicks and Impressions match perfectly, but the position is off. Without a URL given, all three metrics vary.
Is this discpreancy normal or is the import broken/done wrong?
The discrepancies you’re seeing between the Google Search Console (GSC) interface and your BigQuery data are expected and not an indication of any issues with the import process. The main cause of the variance in average position lies in the calculation method. GSC uses a weighted average position, meaning queries with more impressions have a greater influence on the final number. On the other hand, a simple AVG(position) query in BigQuery treats each row equally, which results in a different and often misleading calculation. To match GSC’s approach, you’ll need to implement a weighted calculation in your SQL query.
Additionally, differences in clicks and impressions for specific URLs can be attributed to privacy thresholding. To protect user privacy, the API that populates BigQuery deliberately excludes data from rare or sensitive queries. This explains why site-wide totals often align, but totals for specific views such as for a single page might appear slightly lower in BigQuery compared to the GSC interface.
Other factors, such as how GSC groups different URL versions (e.g., HTTP/HTTPS) under a single primary property, while BigQuery may list them separately, also contribute to these discrepancies. Additionally, differences in time zones GSC uses Pacific Standard Time (PST), while BigQuery typically operates in UTC can cause data to be grouped into different days, leading to minor variations in daily totals.
You may find the following documentation helpful for further reference:
…it can also be as simple as “the search type isn’t matched.”
That is, in your query, try adding the following string and see if you can get closer clicks, impressions, and even position: WHERE search_type = ‘web’
The numbers you’re seeing in BQ are an aggregation of Web, images, news, and video. It’s possible the position discrepancies is due to an average of all of those position rank as well.