One of the reasons why query results don't match Google Search Console reporting UI are anonymized search queries. Google does not show very rare search queries in these results to protect the privacy of the user making the query, but they are just omitted from the results. Anonymized queries are omitted from the totals when dimension "Search query" is being used, or if it is being used for filtering.
If a site has a significant number of these anonymized queries, you may see significant discrepancies as well.
Our Google Search Console connector now offers a correction feature to mitigate the discrepancies caused by these anonymized queries. The correction logic is adding anonymized queries under unknown search query, and aggregating them into the overall results. This can improve the accuracy in certain cases significantly. However it only applies to metrics "Impressions" and "Clicks", and not for example to "Average position".
The correction logic can be applied Page-level or Aggregate-level. This Aggregate-level option will often produce more accurate results.
Example when Page-level correction is enabled
Example when Aggregate-level correction is enabled
How to enable discrepancy correction logic for Google Search Console connector?
Supermetrics for Google Sheets and Supermetrics API
The correction level can be selected from "Discrepancy correction" dropdown under "Options" section within the sidebar:
Supermetrics for Data Studio
The correction level can be selected from "Correction for Google Discrepancies" dropdown within the data source configuration view:
Supermetrics for BigQuery
The correction level can be selected from "Correction for Google Discrepancies" dropdown during the transfer configuration.
The results are still not 100% accurate?
These discrepances are caused by the underlying Google Search Console API, and our logic may not be able to correct the discrepancies completely. You can find additional details from Discrepancies in Google Search Console results.