DEV Community

dayu2333-jinyul
dayu2333-jinyul

Posted on • Originally published at elninoguide.com

I Built a Real-Time ENSO Tracker — Here's What 70 Years of El Niño Data Actually Shows

I got curious about whether the 2026 El Niño forecasts are actually reliable, so I pulled 70 years of NOAA ENSO data and built a tracker. The patterns are way more interesting than I expected.

The dataset

I compiled monthly ONI (Oceanic Niño Index) values from NOAA CPC for every significant ENSO event since 1950 — 126 months across 8 major El Niño/La Niña events. The dataset is CC0 if you want to use it: github.com/dayu2333-jinyul/enso-historical-data

5 things the data actually shows

1. Super El Niños follow a surprisingly regular rhythm. Since 1950: 1972, 1982, 1997, 2015, 2023. That's roughly every 10-15 years. Having two Super events in 2015 and 2023 (only 8 years apart) is unusual and doesn't fit the historical pattern.

2. The 1997-98 event was the most intense, but not the most expensive. Peak ONI of +2.5°C, but 2015-16 hit +2.6°C. The difference is that 2015-16 was better forecasted, so governments and farmers prepared. Better forecasting literally saves billions.

3. SOI (Southern Oscillation Index) leads ONI by about 2-4 weeks. If you watch SOI daily (Darwin-Tahiti pressure difference), you can spot an El Niño developing before the official ONI confirms it. Right now SOI is trending negative — consistent with the 2026 forecast.

4. Subsurface heat content is the canary in the coal mine. Before every Super El Niño, subsurface temperatures at 100-200m depth spike 2-3 months before the surface warming shows up. NOAA's TAO/TRITON buoy array measures this in real time.

5. The "El Niño forecast" everyone cites is actually an ensemble of 20+ models that disagree wildly. The IRI plume shows forecasts ranging from neutral to Super El Niño for the same period. A single "63% chance of Super El Niño" headline hides a lot of uncertainty.

The tracker I built

I wanted to see all this in one place, so I built a dashboard that pulls ONI, SOI, trade winds, and subsurface temps from NOAA/BOM/ECMWF and visualizes them together: elninoguide.com/dashboard

It's vanilla HTML/CSS/JS, hosted on Cloudflare Pages, updates daily. No API keys needed because all the source data is public.

What I'd do differently

If I were building this again, I'd use D3.js or Observable for the visualizations instead of Chart.js. The subsurface cross-section plot in particular needs a proper heatmap, which Chart.js doesn't do well.

Also, NOAA's data formats are... let's say "historical." Every dataset uses a different file format, different column naming, and different update schedules. I spent more time parsing data than building the actual dashboard.

The repo

Dataset (CC0): enso-historical-data
Tracker source: el-nino-enso-tracker

Has anyone else worked with NOAA climate data? Curious what tools you use for parsing their formats.

Top comments (0)