Live · 5 projects updating from ERA5 right now

Precision heat exposure data, for any community on Earth.

Send us a map. We return daily heat metrics, automatically, forever, built on the same reanalysis data as the IPCC and WMO, at the resolution your community actually needs.

36
heat values per polygon, per day
~15 min
from map upload to first data
06:00 UTC
daily automatic refresh
1940–now
ERA5 historical coverage
01 · The Gap

Heat is the deadliest weather hazard. Turning global data into local action is still hard.

Global data exists

ERA5 reanalysis covers the globe at hourly resolution, fusing satellite, radiosonde, and station data with a climate model. Scientifically authoritative, but a 28 km grid, not a neighborhood.

Local decisions need local data

Public health teams and city planners need heat exposure for their specific communities, not regional averages. Turning a raw climate grid into per-community metrics takes engineering most teams can't sustain.

Heat is already the deadliest weather-related hazard on the planet, and climate change is making it worse. Closing that gap takes resources most communities don't have, and good data work is already happening in many of them. One piece within reach: turning global climate data into something a district in Dhaka or a county in Arizona can act on the same morning.
02 · What It Does

You give us a map. We give you daily heat data, automatically, forever.

Any geography

Cities, districts, counties

Any set of polygons, anywhere on Earth. A standard GeoJSON file, the same format used by Google Maps, QGIS, and every modern GIS tool.

Growing history

Initialized in ~15 minutes

Projects start with 10 days of historical data. New days append automatically every morning. No further action required.

Always current

06:00 UTC, every day

A scheduled process updates every active project each morning, blending near-real-time estimates with authoritative ERA5 data as it becomes available.

03 · Inputs & Outputs

A GeoJSON file in. A risk assessment out.

You don't need to know anything about AWS, databases, or reanalysis pipelines. You need a shape file and an API key.

What goes in

A GeoJSON FeatureCollection, each feature a named polygon: city districts, census tracts, health zones, river catchments, anything with a boundary.

project_ida name for your study
json_objyour GeoJSON polygons
credentialsusername + API key
date_from / date_tooptional query filter

What comes out

Heat metrics: 36 values per polygon per day, spanning temperature, heat index, UTCI, and WBGT across full-day, daytime, and nighttime windows.
Forecast outlook: a 7-day Open-Meteo forecast per polygon, refreshed daily and superseded automatically by ERA5-confirmed values as each day actually arrives.
Vulnerability indicators: wealth, urban density, healthcare access, land cover, tree canopy, age structure, human development, nighttime light.
Air quality: PM2.5, PM10, NO₂, O₃, SO₂, and CO per polygon per day, modeled via CAMS reanalysis, with real ground-station readings (OpenAQ) taking precedence wherever one exists inside the polygon.
Land surface temperature: Landsat 8/9 thermal-band composites per polygon, resolving the urban heat island at the scale of individual streets and rooftops rather than the city-wide reanalysis grid alone.
WMO 10-year baseline on request: percentile distributions per polygon, per day-of-year, showing whether an event is historically unusual.
AI narrative summary experimental: plain-language risk level, key findings, affected populations, recommendations.
curl -X POST https://api.heatrisk.io/v1/evaluate \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "phoenix-cooling-centers",
    "json_obj": { "type": "FeatureCollection", "features": [ ... ] }
  }'
{
  "project_id": "phoenix-cooling-centers",
  "status": "ready",
  "date": "2026-06-17",
  "polygon": "Maricopa County",
  "metrics": {
    "t2m_c": { "max": 43.3, "mean": 36.1 },
    "heat_index_f": { "max": 102.5 },
    "utci_c": { "max": 62.3, "category": "beyond_extreme" },
    "wbgt_c": { "max": 31.3 }
  },
  "vulnerability": { "rwi": 0.60, "healthsites_per_10k": 1.2 }
}

Endpoint and shape shown here are illustrative; real credentials come with the real endpoint and the actual request/response contract in docs/api.md.

04 · The Metrics

Four variables. Three time windows. One severity language.

UTCI (ISO 15743) and WBGT (ISO 7243) are the physiological and occupational-safety standards, comparable across a dry desert and a humid tropic alike.

Moderate Very strong Extreme Beyond extreme
UTCI <38°C38–46°C46–54°C>54°C · hazardous

WBGT crosses its own hard line at 32°C (suspend moderate/heavy outdoor work) and 35°C (all outdoor work must stop). These are the thresholds occupational-health agencies and emergency managers act on directly.

T2m
°C · air temperature

Standard measurement, 2m above ground.

HI
°F · heat index

"Feels like" temperature. Misleading in dry climates.

UTCI
°C · ISO 15743

Radiation + wind + humidity + temp. Comparable across climates.

WBGT
°C · ISO 7243

Occupational threshold. >35°C: stop outdoor work.

05 · Real Data, Right Now

Same API. Five climate zones. One recent day each.

All five projects are live in the API today — and were yesterday, and every morning before that.

ARIZONA · 17 polygons
ANDALUSIA · 120 polygons
BANGLADESH · 64 polygons
OAXACA HIGHLANDS · 50 polygons
LAGOS · 21 polygons (+ border Ogun)

Oaxaca Highlands and Andalusia both show the faint outline of their full state/region behind the colored sample: the Oaxaca Highlands' 50 municipios are a scattered set of specific farming communities in the Oaxaca state highlands (not Oaxaca de Juárez, the state capital), not one contiguous area, and Andalusia's 120 span Seville province plus neighboring slices of Huelva, Cádiz, and Córdoba — the gaps between them are real neighboring municipios that simply aren't part of this dataset, not missing data. The API works on any set of boundaries you send it, complete or not.

Moderate Very strong Extreme Beyond

Color always reflects each area's real UTCI danger level. Switch metrics and watch bar height move, while the color, the actual physiological risk, doesn't. That gap is the whole reason this API reports four metrics, not one.

Arizona · Jun 17
T2m 43.3°C · HI 102.5°F
UTCI 62.3°C · WBGT 31.3°C
🇺🇸
Arizona
Beyond Extreme
Andalusia · Jun 22
T2m 39.8°C · HI 101.6°F
UTCI 56.2°C · WBGT 32.7°C
🇪🇸
Andalusia
Beyond Extreme
Bangladesh · Jun 23
T2m 34.0°C · HI 113.6°F
UTCI 51.3°C · WBGT 35.2°C ⚠
🇧🇩
Bangladesh
Extreme
Oaxaca Highlands · Jun 15
T2m 29.0°C · HI 85.2°F
UTCI 46.7°C · WBGT 30.1°C
🇲🇽
Oaxaca Highlands
Extreme
Lagos · Jun 18
T2m 30.9°C · HI 103.8°F
UTCI 45.3°C · WBGT 31.9°C
🇳🇬
Lagos
Very Strong

The dry heat illusion

Switch to Heat Index: Arizona falls out of first place. Switch to UTCI: it's back on top. Same place, same day: dry air hides what solar radiation is actually doing.

Wet heat at the limit

Switch to WBGT: Bangladesh jumps past Arizona and Andalusia. 35.2°C is the ISO threshold where all outdoor work must stop.

One metric isn't enough

Every area here changes rank depending on which lens you use. That's the case for reporting all four, every time, instead of picking just one.

ERA5 final provisional (Open-Meteo), confirmed within ~6 days forecast (Open-Meteo, 7-day outlook)
ARIZONA
ANDALUSIA
BANGLADESH
OAXACA HIGHLANDS
LAGOS
Jun 14Jul 3 · todayJul 5

Every project, every day, three sources: hollow provisional cells become solid when ERA5 confirms them, usually within 6 days, and violet forecast cells become provisional as each day arrives — the pipeline's reconciliation, visible.

Looking the other direction: the 7-day forecast

Every polygon also carries an Open-Meteo forecast alongside its confirmed data — illustrative example below for Arizona; see the colonia specimen explorer further down for a live, per-polygon forecast you can search yourself.

FRI
Jul 4
104°F
UTCI 61°C
SAT
Jul 5
106°F
UTCI 63°C
SUN
Jul 6
101°F
UTCI 58°C
MON
Jul 7
97°F
UTCI 53°C
TUE
Jul 8
99°F
UTCI 56°C
WED
Jul 9
103°F
UTCI 60°C
THU
Jul 10
105°F
UTCI 63°C

Illustrative example, not live data — Open-Meteo forecast model, refreshed daily, superseded by ERA5-confirmed values as each day arrives.

How far back does "1940–now" actually go?

MARICOPA COUNTY, AZ · ONE JUNE PER DECADE
101.9°F
1946
102.4°F
1956
106.1°F
1966
106.6°F
1976
108.4°F
1986
105.4°F
1996
105.0°F
2006
111.2°F
2016
109.5°F
2026

Back to 1946 — any June since then, per polygon, through the same code that ran this morning. That's the archive's real reach: not a trend claim (nine single hottest-days a decade apart is too little to call a slope), just proof of depth.

Why HI/T2m only, and where these bars come from

Each bar is that June's single hottest day, by heat index, pulled directly from the CDS archive and run through the same computation code the live API uses — not sampled from the daily pipeline, which only holds a rolling recent window. Heat index and 2m air temperature only: these are ERA5-native variables with an unbroken historical record back to 1940. UTCI/WBGT are not shown here because they depend on wind and solar fields sourced from a separate near-real-time archive that doesn't extend this far back. Computed once; historical values don't change.

06 · Worked Example

Bangladesh: a typical day, not a record heatwave

64 districts, initialized in under 15 minutes. Jun 23 peak conditions — and "typical" is exactly what the ten-year baseline in the Mexico City deep dive below is built to test.

BANGLADESH · 64 districts
52 / 64
districts in extreme-stress territory today
39%
of Bangladesh's workforce is in agriculture, ILO 2018
0.679
average HDI across these 64 districts
−0.05
average RWI · moderate poverty
DistrictUTCI °CWBGT °CPopulation
Loading live districts…

Top 8 of 64 districts by UTCI · real ERA5 data

07 · Beyond Exposure

Heat exposure ≠ heat risk.

Risk depends on who is exposed and their adaptive capacity. Each indicator is extracted per polygon at project initialization.

82.7M people live in Bangladeshi districts facing both extreme heat stress and below-average wealth — as of Jul 4.

Each dot is one of Bangladesh's 64 districts — position is heat exposure (UTCI) vs. relative wealth, color is the site's severity tier, size is population. Wealth data (Meta RWI) covers ~93 low- and middle-income countries; for high-income geographies the API substitutes healthcare-access and land-cover indicators.

THE PRIORITY LIST · districts in extreme heat & below-average wealth · updated daily
DistrictUTCI °CRWIFacilities/10kPopulation
Sunamganj53.5−0.210.102.9M
Sylhet52.60.000.304.0M
Natore52.5−0.070.352.0M
Netrakona52.5−0.190.242.6M
Thakurgaon52.1−0.280.121.6M
Maulvibazar52.0−0.080.182.2M
Mymensingh52.0−0.080.265.9M
Lalmonirhat51.9−0.190.091.5M

Top 8 of 37 qualifying districts, ranked by UTCI · real ERA5 data

RWI · Meta/World Bank — sub-km wealth VIIRS · NASA — nighttime lights, energy access GHSL-SMOD · JRC — urban density WorldCover · ESA — 10m land cover Healthsites · OSM-derived — facility access HDI · GDL — human development index WorldPop · WorldPop — age structure Canopy Height · Meta/WRI — tree cover
08 · Deep Dive

Is today unusual? Ask each of 1,182 colonias.

Mexico City runs at colonia resolution — 1,182 neighborhoods, each measured against its own ten-year baseline (2016–2025) for this exact day of year. This is the API's full output, nothing summarized away.

DATA THROUGH Jun 28

On Jun 28, 1,179 of Mexico City's 1,182 colonias ran warmer than usual for the date — each measured against its own ten-year baseline. 3 crossed the 95th percentile.

Live anomaly gauge · peak colonia 07000

Warmer than usual. Hotter than roughly three of every four readings this colonia has seen on this date since 2016 — but short of extreme.

22.4°C (72.4°F)
typical
p75 · 19.9°C
p95 · 23.6°C
p99 · 25.3°C

The gauge reads from live data — on a normal day it says so. Baseline: 120 monthly reference distributions per colonia, 2016–2025 (WMO-standard decade), matched by day of year.

Where are these colonias?

1,182 colonias make a solid choropleth unreadable at this scale (heat itself is grid-limited here — see the specimen explorer below). Instead, three that each tell part of today's story, located within the city:

WHOLE CITY
MEXICO CITY · 1,182 colonias
PERSISTENT HEAT

Which neighborhoods run hot every season, not just today?

A median composite of clear-sky Landsat 8/9 thermal readings across this city's three most recent warm seasons (Mar–May 2024–2026), each colonia measured against the city's own average — skin temperature, not air temperature. Unlike ERA5's ~28 km grid, Landsat's ~100 m thermal band resolves individual colonias, so this is the first per-colonia map this API has ever been able to draw honestly.

MEXICO CITY · WARM-SEASON SURFACE ANOMALY
cooler than the city0hotter

Colonia specimen explorer

Search any of Mexico City's 1,182 colonias to see every field the API returns for it — 36 heat metrics, 16 ten-year baseline percentiles, 42 vulnerability indicators (including the Landsat persistent-heat composite above), and an Open-Meteo forecast outlook, from one API call.

Loading colonia detail…

09 · Who Uses This

Five live monitored events. Five real questions. One API.

These are live projects, not hypotheticals: 272 polygons across 5 countries, updating today.

🇺🇸

Arizona

Emergency management · 17 counties (AZ + border NV/CA) · 10M+ population
"Which counties sustained dangerous UTCI and have inadequate cooling infrastructure?"
UTCI + WBGT + Healthsites + VIIRS energy access
Jun 17 peak: UTCI 62.3°C · 7 of 17 counties above 54°C
🇲🇽

Oaxaca Highlands

Agricultural extension · 50 municipios (highlands, not Oaxaca city) · smallholder farming
"How many UTCI degree-days of heat stress did highland corn communities accumulate this season?"
UTCI seasonal accumulation + HDI 0.709 + RWI −0.30
Jun 15 peak: UTCI 46.7°C · HI looks mild, UTCI reveals highland loading
🇪🇸

Andalusia

Civil protection · 120 municipios (Seville + border Huelva/Cádiz/Córdoba) · high healthcare access
"Was last week's heatwave anomalous? Which municipios exceeded 95th-percentile historical UTCI?"
UTCI/WBGT + WMO 10-yr baseline + HDI 0.889
Jun 22 peak: 119 of 120 municipios in Extreme+ UTCI simultaneously
🇳🇬

Lagos

Public health targeting · 21 LGAs (Lagos + border Ogun) · dense urban core
"Which LGAs combine peak WBGT exposure with the lowest wealth scores?"
HI + WBGT + Meta RWI (0.24 avg) + VIIRS (6.5)
Jun 18 peak: WBGT 31.9°C across dense core LGAs
🇧🇩

Bangladesh

Disaster planning & outdoor labor protection · 64 districts
"Which districts crossed the WBGT 35°C stop-work threshold today, which are forecast to cross it again tomorrow, and who lacks healthcare access to respond?"
WBGT + UTCI + 7-day forecast + health facilities/10k (0.30) + HDI 0.679
Jun 23 peak: WBGT 35.2°C · 3 districts crossed stop-work
Same API. Any geography.

272 polygons across 5 daily projects — plus the 1,182-colonia Mexico City deep dive above

Data is already flowing. No pilot required to see it work.

10 · How It Works

For technical reviewers

Serverless AWS infrastructure: no servers to maintain, scales automatically, costs near-zero when idle.

Your map
API + Lambda
ERA5 + LandScan
Aurora
Your results

EventBridge replays this whole flow automatically, every morning at 06:00 UTC, for every active project. ERA5 (~5-day lag) and Open-Meteo (same-day) fill in for each other so today's date is never empty; LandScan sizes the population behind every polygon.

Project lifecycle

<1 sec

Submit geography

Responds immediately with a project ID and estimated ready time.

~10–15 min

Initializes in the background

LandScan extraction, 10-day ERA5 backfill, heat-metric computation.

ongoing

Updates daily, unattended

06:00 UTC, every morning: confirms yesterday's ERA5 data and refreshes a 7-day forecast, no further action needed.

on request

WMO baseline (~6–8 hrs)

10-year climatology, computed once per project.

on request

AI narrative (~30 sec)

Plain-language risk summary, any time window.

Infrastructure detail, for technical reviewers
AWS Lambda

Four functions: API requests, daily updates, WMO computation, async jobs.

Aurora PostgreSQL

Serverless. Scales to zero when idle.

Amazon S3

GeoJSON and raster storage, pre-loaded once.

EventBridge

Fires the daily 06:00 UTC trigger.

SQS Queues

Async jobs, automatic retries.

Secrets Manager

Keys and credentials, never hardcoded.

On the roadmap

The pipeline keeps growing — some of what's below has already shipped.

Shipped · Jul 2026

Air quality (CAMS + OpenAQ)

PM2.5, PM10, NO₂, O₃, SO₂, and CO alongside heat exposure — live for every demo project, with real ground-station readings (OpenAQ) taking precedence over modeled CAMS values wherever a station exists inside a polygon, and a hierarchical spatial-consistency QC pass to catch sensor faults before they reach an ambient estimate.

Shipped · Jul 2026

Land surface temperature (Landsat 8/9 TIRS)

Thermal-band satellite imagery, composited into a warm-season baseline per polygon — the first per-colonia surface-temperature map this API has ever been able to draw honestly (ERA5's ~28 km grid never resolved colonias; Landsat's ~100 m thermal band does). In Mexico City this composite already surfaced a 26°C persistent surface-temperature range across colonias, explained mostly by tree canopy.

In development

AI interpretation tool

Beyond the existing experimental narrative summary, we're developing and validating a deeper AI interpretation layer that reasons over heat-specific context — physiological thresholds, occupational exposure standards, local vulnerability — rather than generic summarization. Being validated against real pilot data before it ships broadly.

Have a data source your work depends on? Tell us: new variables get evaluated against real pilot use cases, not added speculatively.

11 · Summary

Three things to remember

01

Any geography, ~15 minutes

A GeoJSON map is all you need. The system initializes and updates every day without further action.

02

Same data as the IPCC and WMO

ERA5 is the global scientific standard for atmospheric reanalysis, the same data the world's leading climate agencies use.

03

Exposure plus context

Physical exposure alone doesn't predict risk. Vulnerability, the WMO baseline, and AI narrative turn metrics into decisions.

Ready to pilot? We can initialize your data the same day.

Contact us to request API credentials. We'll set up your account and walk through your first project.

datascience_crisisready@harvard.edu