Skip to content

processed_global_* — the country-aggregation family

Three columns: - processed_global_keyword_volumeUInt64 - processed_global_volume_trendString (JSON) - processed_growth_globalString (JSON)

Table: keywords.keywords_data_local Last validated: 2026-05-21

What they are

Country-summed equivalents of processed_keyword_volume, processed_volume_trend, and processed_growth. These are the "worldwide" versions of the per-country metrics that the product shows on the global view.

The row identity is (dimension_keyword_hash, country). The global versions are stored on every row but contain the cross-country sum. (Yes, this is denormalised — every country row carries the same global numbers for that keyword.)

How they're computed

In processing.py around L2671–L2689, after the per-country processed_* columns have been written:

  1. processed_global_keyword_volume — sum of per-country processed_keyword_volume across every country that has approved data for the keyword.
  2. processed_global_volume_trend — merge of per-country trends. For each month, sum the per-country values that have a published value for that month. Implicitly excludes countries below their own display gate.
  3. processed_growth_globalbuild_growth_json(global_trend) over the merged trend. Same gate as per-country growth (processing.py:KB-ANCHOR:growth-metrics-display-gate): only computed when processed_global_keyword_volume > 200; otherwise empty.

Edge cases

  • Denormalised storage — every country row carries the same global value. If you SELECT processed_global_keyword_volume FROM keywords_data_local WHERE dimension_keyword_hash = X you get N identical rows (one per country with data for that keyword). Pick LIMIT 1 if you want a single global number per keyword.
  • Anyone country dominating — for keywords with one giant country (e.g. US-heavy queries), the global is essentially that country's value; the long-tail sum from other countries is rounding noise.
  • Sub-200 countries excluded by their own gate — countries with processed_keyword_volume <= 200 write null for that column, so they contribute 0 to the global sum even if their raw signal exists.
  • Global growth uses global trend, not per-country growths — growth is recomputed over the merged trend rather than weighted-averaging the per-country growth tags. Avoids the math problem of "averaging classifications".

Downstream

  • Customer UI's "Global volume / trend / growth" widgets — the most prominent presentation of these fields.
  • ES + keywords_metrics_local upload paths.

See also