WHO Global Health Observatory — Health Indicator Time Series

Long-format observations from the WHO Global Health Observatory (GHO): one row per indicator, place, time period, and disaggregation. The key columns are `indicator_code` (the GHO metric, e.g. life expectancy, child mortality, immunization coverage), `spatial_dim`/`spatial_dim_type` (country or WHO region), `year`, and up to three disaggregation dimensions (`dim1`–`dim3`, typically sex and age group). `numeric_value` carries the estimate with `low`/`high` as its uncertainty bounds; `value_display` is the source display string and may embed confidence intervals, so use `numeric_value` for analysis. Coverage spans all GHO indicators across countries and WHO regions over multiple decades (~10.2M rows). The table mixes national totals with WHO-region aggregates and disaggregated breakdowns, so filter `indicator_code`, `spatial_dim_type`, `time_dim_type`, and the `dim*` columns before aggregating.

who-values·25 columns·220.5 MB·CC BY-NC-SA 3.0 IGO·updated 15d ago
WHO

Source: WHO · connector code

Schema

observation_idBIGINT
indicator_codeVARCHAR
spatial_dim_typeVARCHAR
spatial_dimVARCHAR
parent_location_codeVARCHAR
parent_locationVARCHAR
time_dim_typeVARCHAR
yearINTEGER
time_dimVARCHAR
time_dimension_valueVARCHAR
time_dimension_beginTIMESTAMP
time_dimension_endTIMESTAMP
dim1_typeVARCHAR
dim1VARCHAR
dim2_typeVARCHAR
dim2VARCHAR
dim3_typeVARCHAR
dim3VARCHAR
data_sourceVARCHAR
value_displayVARCHAR
numeric_valueDOUBLE
lowDOUBLE
highDOUBLE
commentsVARCHAR
updated_atTIMESTAMP

Get this dataset on your machine

subsets sync --bundle medium clones the mid-size tiers as queryable local tables — use --bundle large for the widest tier

pip install subsetsio
subsets sync --bundle small # or medium, or large
subsets serve # search + SQL at http://localhost:8080

Free and open — the data syncs straight from the public bucket, and search + SQL run entirely on your machine. See docs →

Query it locally

Full docs →
Bash
subsets serve   # local API on http://localhost:8080
curl -s -X POST "http://localhost:8080/query" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT * FROM \"who-values\" LIMIT 5"}'

No account, no API key — the data syncs straight from bundles.subsets.io and every query runs on your machine. See the local API reference.