ENSOscope

Methodology

How the forecasts, the ENSO classification, the skill verification, and the teleconnection composites are produced.

ENSO index & 7-class classification

For each ensemble member we compute area-weighted NINO sea-surface-temperature indices (NINO3.4, NINO3, NINO4) and the NINO3 precipitation anomaly. Each index is detrended for global warming by regression on a Berkeley Earth global warming index (GWI), so the classification reflects internal tropical-Pacific variability rather than the forced warming trend.

The standardized NINO3.4 index z is mapped to seven classes:

  • Neutral - |z| < 0.5
  • Moderate El Niño / La Niña - |z| ≥ 0.5
  • Strong - NINO3 (El Niño) / NINO4 (La Niña) |z| ≥ 1.25
  • Extreme - |z| ≥ 1.75 and, for El Niño, a NINO3 precipitation anomaly ≥ 5 mm/day

The precipitation requirement is deliberate: a truly extreme El Niño is distinguished not by SST alone but by the eastward shift of deep convection into the eastern Pacific, captured by the NINO3 rainfall response.

Bias & amplitude correction - no statistical calibration

Each member's index is corrected to the 1993-2016 common hindcast period with a variance-rescaling bias correction (after Merryfield & Lee): the hindcast mean is removed and the variance is rescaled to match observations,

z = (anomaly − μhindcast) / σhindcast  for each start month and lead time.

This removes both the mean bias and the model's ENSO amplitude bias - seasonal models typically over-amplify ENSO by ~40% (the cold-tongue bias). Probabilities are then the raw fraction of ensemble members in each class. No Platt or isotonic calibration is applied: the spread of the bias-corrected ensemble is the probability.

On the 1993-2016 hindcast this reproduces observed extreme-event frequencies (extreme El Niño 1.7% modelled vs 2.1% observed; extreme La Niña 10.5% vs 7.6%), which a calibration layer would otherwise obscure.

Skill verification

Skill is shown directly as the temporal correlation between the hindcast ensemble-mean NINO index and observations, as a function of start month and lead time, for each NINO region including NINO3 precipitation - the standard anomaly-correlation metric used in seasonal-forecast verification. Correlation falls at longer leads and across the boreal-spring predictability barrier. See the Skill tab.

Teleconnection composites

The Teleconnections maps composite climate-impact indicators (heat: Tmax, UTCI, WBGT, and daytime, nighttime and compound heatwave days; precipitation extremes: RX10day, consecutive dry days) by ENSO phase, from ERA5/CHIRPS observations and a CESM2 large ensemble. The ENSO indices used to classify each event are detrended for global warming, deseasonalised with a 30-year rolling window, and standardised by the ENSO standard deviation over 1980-2014 where the threshold is expressed in standard deviations. The composited fields themselves are not detrended: the global-warming correction belongs to the classification, so a composite shows the conditions actually observed or simulated during those events. Anomalies are shown relative to the neutral composite.

How the heatwave days are defined. Following the daytime, nighttime and compound framing of Zhang et al. (2025), a daytime heatwave day is one whose daily maximum temperature exceeds the local calendar-day 90th percentile (TX90p); a nighttime heatwave day is one whose daily minimum exceeds the 90th percentile (TN90p); and a compound heatwave day is hot by both measures at once. The percentiles use a recent multi-decade baseline (1981-2020 for the observations, 1980-2014 for the CESM2 historical ensemble) with a 5-day calendar-window smoother, so a heatwave day is defined relative to what is locally and seasonally normal rather than a fixed temperature. Counts are summed over each event window and then composited by ENSO phase.

Because the teleconnection composites use a long observational/ensemble baseline, they use a different normalization from the forecasts (which are constrained to the 1993-2016 hindcast period).

Absolute heat-stress thresholds

Alongside the percentile-based heatwave days, the heat indicators are also counted against fixed temperature thresholds that carry a direct health meaning, so a number can be read as "days of at least strong heat stress" rather than "days above the local 90th percentile". These were added at the request of the humanitarian teams.

  • UTCI - days at or above 32 °C (strong heat stress), 38 °C (very strong) and 46 °C (extreme), following the standard UTCI thermal-stress scale.
  • WBGT - days at or above 29 °C, 31 °C and 32 °C, approximately the US National Weather Service category edges (29.4, 31.1 and 32.2 °C).
  • Nighttime heat - nights whose minimum stays at or above 20 °C (tropical night), 25 °C (equatorial night) and 30 °C (torrid night).

These are shown from the observations only, and that is deliberate. A percentile threshold is defined from the field's own distribution, so a uniform warm or cold bias cancels out: a model running 2 °C warm still has the same number of days above its own 90th percentile. An absolute threshold has no such protection, because it reads the actual value. Measured on ERA5, a 1 °C warm bias adds roughly 6 days per season over the Horn of Africa, 7 over South Asia and 10 over Southeast Asia, which is as large as the El Niño signal itself. The percentile-based layers are therefore the ones to use for the model ensemble; the fixed thresholds are reported from the reanalysis.

One further caution on WBGT. It is computed here with a simplified formula that uses temperature and humidity only, assuming light winds and fairly sunny conditions, and so cannot respond to the actual radiation or wind. A seasonal mean tolerates that approximation well; a count of threshold crossings tolerates it less well, because a count is a step function at the cut-off. UTCI, computed with the full Bröde polynomial using actual radiation and wind, is the more reliable of the two for this purpose.

Event replay

The teleconnection maps answer "what does an El Niño typically do", by averaging every past event of a class into one seasonal composite. The Event replay page answers the opposite question, for one named event, and nothing on it is averaged into seasons.

The window. Each event is replayed from January of the year it began through December of the year it ended. That places the peak near the middle and shows the build-up and the decay either side: the 1997-98 El Niño runs January 1997 to December 1998. It also handles multi-year events without special-casing, so the 2020-2023 triple-dip La Niña is one 48-month window rather than three clipped pieces. Events shorter than 24 months are padded by extending the end, never the start, which would push the onset off the edge.

The comparison. The faint lines behind each panel are the other observed events of the same type, aligned so that month 0 is January of each one's own first year. Without a common origin, events beginning in different calendar months could not be read on one axis.

The country series. Monthly, area-weighted over the country at native 0.25°, from CHIRPS rainfall and ERA5 heat. Only fixed thresholds are used here: a percentile index would need a 0.25° percentile climatology, and dropping to 1° would leave small countries with two or three grid cells. Note that the seasonal maps show the longest dry run (CDD), while this page counts days below 1 mm, because a longest run inside one calendar month is ambiguous when spells cross month boundaries. They are different quantities and are labelled differently.

The neutral reference. The dashed green line on each panel is what an ordinary year looks like in that country: the average of the catalogued neutral years for the same calendar month, between 11 and 16 years per month. Comparing an event only against other events answers "was this El Niño worse than the last one"; it cannot answer "was it worse than a normal year", which is the question that decides whether to pre-position anything. The same reference defines every anomaly on the page. A conventional thirty-year normal is deliberately not used: such a window contains El Niños and La Niñas, so an event measured against one is partly measured against itself. Months belonging to no catalogued period at all are ENSO transitions and count as neither.

The most recent months are not counted as neutral. Classification needs five months of persistence, so a run that has not yet lasted that long belongs to no event and would otherwise be recorded as neutral by default. In the middle of the record that is safe, because we can see what followed. At the end of the record it is not: the record simply stops, and the run may still be building. Treating those months as neutral would state that conditions are normal when what we actually have is no classification yet, and it would fold them into the very definition of an ordinary year. So the trailing unclassified period is excluded from the reference and is not labelled anywhere on the site. As of August 2026 that period is February to June 2026, which contains a June at +2.17 standard deviations: unambiguously not an ordinary month, and exactly the kind of value that must not be allowed to define what ordinary means.

Thresholds. Heat stress and warm nights each carry all three health cut-offs, selectable above the panel: UTCI ≥32, ≥38 and ≥46 °C, and nights that never drop below 20, 25 or 30 °C. The extreme end is a different question from the mild end rather than a scaled version of it, since a country can gain a fortnight of UTCI ≥32 days in an El Niño year and not a single day above 46. Where a country never reaches a cut-off anywhere in the 1981-2025 record the button says so, because "never happens here" is information and a blank panel is not. The map underneath follows the selected cut-off when it is already showing that family.

Comparing two events in space. Below the world map, the selected country is drawn twice side by side: the chosen event on the left, any other event of the same family on the right, on one shared colour scale. Independent scales would show the same anomaly in different colours and quietly invert the comparison the panels exist to make. A month slider steps both panels together through the same offset from each event's own January, so "November of year 0" is November of 1997 on one side and November of 2023 on the other. This matters because the difference between two seasons is often not how much fell but when: a window average cannot separate a season that started early from one that caught up late. Values are clipped to the country and its border drawn heavy, with neighbours outlined for orientation only. The colour range is set from the two months on screen rather than from the whole record, because on an extreme month a fixed range saturates both panels into identical blocks and destroys the comparison; the bar under each panel carries the numbers, and rescales with the slider.

The axis. Months are named, on two lines, with the relative year under each January. The year is relative rather than absolute because the comparison lines are different events from different decades sharing one axis; the selected event's real years are in the axis title and in every tooltip. Labels are never rotated: a rotated tick label is anchored at its own centre, so it drifts away from the tick it belongs to, and on a 48-month axis that drift is larger than the spacing between months.

Resolution. The country time series are computed at the source resolution, 0.25°, from CHIRPS and ERA5. The maps are 1°. That is a hosting limit, not a scientific one, and it costs nothing where it applies: the world map is about two pixels per degree, so a 0.25° cell there would be half a pixel. It does cost something on the country zoom, where a 1° cell is a visible block, and a 0.25° version of that layer is built and waiting on somewhere large enough to serve it. Note the distinction: the gridded 0.25° map is not yet served, but the sub-national numbers below are computed from that same 0.25° store, so the regional figures already carry the full source resolution even while the picture above them is drawn at 1°.

Sub-national regions. Clicking a province on either country panel swaps every chart below it to that province. The regional figures are the mean of the 0.25° cells whose centre falls inside the admin-1 boundary, taken from the same store the maps are drawn from, so the table and the map above it can never disagree. Charts are shown in absolute units against the same neutral-year reference the country view uses: the store holds anomalies, and the neutral mean per calendar month is carried alongside them so the absolute value can be recovered exactly rather than approximated. A region with fewer than three grid cells is left out, because an average over one or two pixels is noise rather than a measurement; that drops a few very small units, Nairobi among them.

The ± beside a regional figure is a spread, not an error bar. It is the standard deviation of the cells inside that region for that month, so it answers whether the region moved as one, and it is not an uncertainty on the mean. The two imply opposite things about confidence and are easily confused. Where the spread is larger than the mean, part of the region went the other way and the average is hiding a split rather than summarising a signal.

Boundaries are Natural Earth admin-1. For some countries these are the older administrative divisions: DR Congo appears as its eleven pre-2015 provinces rather than the current 26, and Kenya as its former provinces rather than its 47 counties. This is adequate for regional comparison and inadequate for matching a specific current administrative unit; where that matters the OCHA Common Operational Datasets are the right source, and are what humanitarian reporting aligns to.

The map. Each event's map is its own, not a phase composite: the field is aggregated over the replay window and expressed against the neutral-year normal for the same calendar months. Matching the months matters, because a 24-month window contains two of every month and a 36-month one does not, so comparing against an annual mean would alias the seasonal cycle into the anomaly and make long events look wet or dry for no physical reason.

What is deliberately absent. An event still running also carries the live ECMWF sea-surface-temperature forecast, shown dashed. The rainfall and heat panels stop at the observed record: there is no calibrated forecast of country rainfall or heat behind this site, and deriving one from the SST forecast would be a considerably larger claim than that forecast supports.

Data sources and references

Every dataset used here is open and freely available. Please cite the original sources below if you reuse this material.