Methodology

How the numbers are made: the data, the indicators, and what they do and do not show.

What the numbers are

Temperatures come from ERA5, the fifth-generation global reanalysis from ECMWF, distributed by the Copernicus Climate Change Service. A reanalysis combines a weather model with historical observations. It is a consistent, gap-free estimate on a 0.25° grid (about 28 km), not a direct measurement. Specifically we use daily statistics of 2 m air temperature (daily mean and daily maximum, computed on the Indian Standard Time day).

Where the ERA5 files come from

Some years are the Copernicus Climate Data Store's post-processed daily statistics. Others are computed by this project from the hourly ERA5 2 m temperature in the public ARCO-ERA5 copy hosted by Google Cloud (a copy of the same ECMWF/Copernicus ERA5 data on the same 0.25° grid). For those years the daily mean, maximum and minimum are taken over the 24 hourly values of each India local day (UTC+05:30), the same day definition as the Copernicus product. The two routes agree closely but not always to the last decimal, because of rounding and the way daily statistics are computed. The current year's partial figures use the ARCO copy because it is updated within days. ERA5 data are provided under CC-BY 4.0; they contain modified Copernicus Climate Change Service information.

Indicators

  • Average temperature: mean of daily mean temperature over the calendar year.
  • Average daily maximum: mean of daily maximum temperature over the year.
  • Days ≥ 40 °C (and ≥ 35 °C): number of days in the year on which a grid cell's daily maximum reaches the threshold, then area-weighted across the region. This is a count of reanalysis days, not of IMD-declared heatwave days. IMD declares heatwaves from station maxima using region-specific thresholds (plains ≥ 40 °C, coastal ≥ 37 °C, hills ≥ 30 °C) together with a departure from normal of at least 4.5 °C, or an absolute maximum of 45 °C or more.
  • Anomaly: annual average temperature minus the region's own 1991–2020 average (the WMO standard normal period).
  • Hot nights (daily minimum ≥ 25 °C): number of days on which a grid cell's lowest hourly ERA5 2 m temperature within the India local day (UTC+05:30) is 25 °C or more, area-weighted across the region. It is a modelled estimate, not a station reading, and it is not IMD's warm-night criterion. Some years are computed from ERA5 hourly data in Google's public ARCO-ERA5 copy; they can differ slightly from the Copernicus daily statistics. The tracker makes no claim about health effects.
  • Trend: ordinary least-squares slope for temperature; Theil–Sen slope for days ≥ 40 °C, with a Kendall τ p-value. Trends over about 25 years are sensitive to start and end years and to natural variability such as El Niño.

Assigning grid cells to states and districts

Each grid cell is a square polygon around its centre. Cells and region boundaries are projected to an India-suitable coordinate system and intersected. A region's value is the average of the cells it overlaps, weighted by the overlapping area. Cells over the sea contribute nothing. Regions that contain no cell centre are flagged as low-resolution on their page. District values are smoother than the real landscape and should not be read as local station temperatures.

Boundaries

States/UTs: geoBoundaries ADM1 (geoBoundaries gbOpen IND ADM1 (DataMeet / Election Commission of India), 2011, CC BY 2.5 IN). Districts: geoBoundaries ADM2 (geoBoundaries gbOpen IND ADM2 (Pathways Data / LGD), 2021, ODbL 1.0). These are not official Survey of India boundaries, and the two layers come from different years, so districts created or renamed since then may be missing or differ. Boundary depictions here carry no legal status.

What is not included

Heat-related mortality, population exposure, humidity-based heat stress, urban heat islands, forecasts and live alerts are not part of this version.

Data currency

Current release 2026-10-31-f8bb6a6, covering 2020–2025, generated 2026-10-31.Each release is validated before publication; if an update fails, the previous valid release stays online and the failure is logged.