Your query is counting all mentions of protests, but GDELT records the same event multiple times from different sources, inflating the count.
To get the number of unique protests in Iran for September 2022, modify your query to count distinct events instead of all mentions.
SELECT COUNT(DISTINCT GLOBALEVENTID) AS unique_protests
FROM `gdelt-bq.gdeltv2.events_partitioned`
WHERE _PARTITIONTIME BETWEEN TIMESTAMP('2022-09-01') AND TIMESTAMP('2022-09-30')
AND EventRootCode = '14'
AND ActionGeo_CountryCode = 'IR';
You can filter based on confidence scores:
NumMentions > X
→ Only count events reported multiple times.AvgTone < 0
→ Focus on negative-toned events (protests usually have a negative tone).