- DATE:
- AUTHOR:
- Dimensions product team
Coming to Dimensions: a major upgrade to SDG classification
TL;DR: We're rolling out a significantly improved Sustainable Development Goal (SDG) classifier, touching 26.1 million publications across all 17 SDGs. It's available today in preview via BigQuery — full rollout across Dimensions and the API follows in the coming months.
Why this matters
SDG classification is one of the most-used ways researchers, funders, and institutions track research impact against global priorities. The 2026 classifier is our biggest quality and coverage upgrade to date:
33.4M publications now carry an SDG code, up from 20.6.M — a gain of 12.8M newly classified publications
18.2M publications gain SDG coverage they didn't have before; a smaller, more precise set (5.4M) is refined out
Meaningful shifts in several categories as classification precision improves — most notably SDG 8, 9, and 14 see substantial coverage gains, while SDG 7 and 10 are re-scoped for greater accuracy
This is a retrained model, not a patch — expect real movement in your SDG numbers once you adopt it.
What's changing, and when
Phase 1 — Preview (live now, July 2026)
Nothing changes in your existing reports. Current SDG data in Dimensions, the Dimensions API, and BigQuery
category_sdg) stays exactly as is.A new BigQuery field,
sdg_v2026, is now available alongside the existing data — so you can explore, validate, and prepare your downstream reporting on your own timeline.Preview covers Publications only.
Phase 2 — Full rollout (in 3 months, October 2026)
sdg_v2026becomes the default poweringcategory_sdgacross Dimensions, the Dimensions API, and BigQuery.The current classifier remains accessible in BigQuery as
sdg_v2021, so historical comparisons stay possible.Full rollout extends to all relevant content types.
What you should do now
If SDG data feeds into your dashboards, KPIs, or reporting pipelines, now's the time to:
Query the new
sdg_v2026field in BigQuery and compare it against your current `category_sdg values.Flag any reports or thresholds that may need recalibrating ahead of the full rollout.
Reach out to your Dimensions contact with questions — we'll share the full rollout date as soon as it's confirmed.
We're giving you this lead time deliberately: no downstream reporting should break without warning. More details, including full category-by-category breakdowns, are available on request.
Appendix: sample BigQuery queries
For teams who want to start validating sdg_v2026 directly, here are a few queries to get started.
Total publications covered: sdg_v2021 vs sdg_v2026
SELECT
(
SELECT COUNT(DISTINCT t.id)
FROM dimensions-ai.data_analytics.publications AS t
WHERE ARRAY_LENGTH(COALESCE(t.categories.sdg_v2021.codes, [])) > 0
) AS sdg_v2021,
(
SELECT COUNT(DISTINCT t.id)
FROM dimensions-ai.data_analytics.publications AS t
WHERE ARRAY_LENGTH(COALESCE(t.categories.sdg_v2026.codes, [])) > 0
) AS sdg_v2026;Publications present in one version but not the other
WITH PublicationComparison AS (
SELECT
t.id AS publication_id,
COALESCE(t.categories.sdg_v2021.codes, []) AS codes_2021_array,
COALESCE(t.categories.sdg_v2026.codes, []) AS codes_2026_array
FROM dimensions-ai.data_analytics.publications AS t
)
SELECT
'Records with 2021 codes only' AS comparison_type,
COUNT(DISTINCT publication_id) AS count_of_records
FROM PublicationComparison
WHERE ARRAY_LENGTH(codes_2021_array) > 0 AND ARRAY_LENGTH(codes_2026_array) = 0
UNION ALL
SELECT
'Records with 2026 codes only' AS comparison_type,
COUNT(DISTINCT publication_id) AS count_of_records
FROM PublicationComparison
WHERE ARRAY_LENGTH(codes_2026_array) > 0 AND ARRAY_LENGTH(codes_2021_array) = 0;
Publication counts per SDG category, 2021 vs 2026
WITH Counts2021 AS (
SELECT code AS sdg_code, COUNT(DISTINCT t.id) AS count_2021
FROM dimensions-ai.data_analytics.publications AS t,
UNNEST(COALESCE(t.categories.sdg_v2021.codes, [])) AS code
GROUP BY sdg_code
),
Counts2026 AS (
SELECT code AS sdg_code, COUNT(DISTINCT t.id) AS count_2026
FROM dimensions-ai.data_analytics.publications AS t,
UNNEST(COALESCE(t.categories.sdg_v2026.codes, [])) AS code
GROUP BY sdg_code
)
SELECT
COALESCE(c21.sdg_code, c26.sdg_code) AS sdg_code,
COALESCE(c21.count_2021, 0) AS count_2021,
COALESCE(c26.count_2026, 0) AS count_2026
FROM Counts2021 AS c21
FULL OUTER JOIN Counts2026 AS c26
ON c21.sdg_code = c26.sdg_code
ORDER BY sdg_code;