# Verification of regenerated IRI objective ENSO probabilities against as-issued copies

Author: AI research agent (Claude Opus 5.5), run by Westark Data. Date: 2026-10-03.
Data checked: `/work/enso-objective/data/objective_probs_raw.csv` (parsed from regenerated SVGs `https://ensoforecast.iri.columbia.edu/figure3_plot/<YEAR>/<MONTH0>`).
Per-season comparison table: `/work/enso-objective/lit/verify_asissued.csv` (1138 season-rows). Raw downloads and scripts: `/work/enso-objective/lit/asissued/` (`old/`, `live/`, `cur/`, `img/`, `tools/`).

## Method

As-issued copies came from four independent Wayback Machine sources (all fetched raw via `id_`):

- **A. Old-site monthly archive** `iri.columbia.edu/climate/ENSO/currentinfo/archive/YYYYMM/figure3.html` (HTML table "IRI Probabilistic ENSO Forecast/Prediction for NINO3.4 Region - Made in <Month YYYY>"). 30 months sampled every 5th month 2003-2013 plus extras; captures 2003-2013 (some captured later, e.g. 2013-12 for 2012-13 months).
- **B. Old-site live page** `iri.columbia.edu/climate/ENSO/currentinfo/figure3.html`, every distinct capture 2003-2013 (57 captures; truly contemporaneous). Issue month taken from the "Made in <Month YYYY>" line, never inferred from the seasons.
- **C. 2013+ site** `iri.columbia.edu/our-expertise/climate/forecasts/enso/current/`, every 2nd monthly capture 2014-2021: HTML table "IRI/CPC Mid-Month Plume-Based (2014-16) / Model-Based (2016-21) ENSO Forecast Probabilities". Issue month taken from the nearest preceding "Published: <date>" of the model-based section. Rows belonging to the following table on the page were dropped (non-consecutive season).
- **D. 2013+ site static PNGs** (from mid-2021 the page shows `wp-content/uploads/YYYY/MM/figure3*.png` instead of a table): 7 issues 2021-08 ... 2025-12. Bar heights measured from pixels (gridline-calibrated; measurement error <=0.6 pt where nothing overlaps the bars).
- **Cross-check text**: Technical ENSO Update paragraphs in local quick-look pages `/work/enso-outlooks/raw/iri_ql/*.html` (2013-10, 2018-01, 2018-02, 2020-08), and a scan of the DB against the CPC/IRI official (consensus) probabilities in `/work/enso-outlooks/data/official_probs_raw.csv` (2013-08..2025-04).

Matching is by issue month and season label; position in the list (k) and first season were compared separately to detect label shifts. Status per season-row: `exact` (|diff|<0.05 for all three), `within1` (<=1 pt), `match_img` (PNG, <=0.7 pt), `differ`, `season_missing_in_csv`.

## Headline results

- **114 distinct issue months** checked (2003-2008: 38, 2009-2013: 31, 2014-2019: 31, 2020-2025: 14); 1138 season-rows.
- **No season-label shift anywhere.** In every compared issue the first season and every position k agree (mid-month issue for month M starts with season M,M+1,M+2, e.g. Mid-Jun 2003 -> JJA; Mid-Nov -> NDJ), in all eras.
- **109 of 114 issues agree with the as-issued copy:** 106 are exact or within rounding, and in 3 the as-issued page itself is in error (see below). In 5 issues the DB differs from what was issued: 2018-01, 2018-02, 2013-10, 2025-12, and 2004-09 (one zeroed season). In addition, 2009-01 and 2011-12 have lost their 10th season. At row level, 1028 season-rows are exact and 56 PNG rows are within pixel error. 26 rows are `within1`, almost all because the as-issued 2009-12..2012-02 tables printed sub-1% values with decimals (0.1-0.4%) that the DB stores as 0 (the DB holds integers).
- **Genuine discrepancies (DB differs from what was issued):**
  1. **2018-01 and 2018-02: DB contains the wrong forecast.** The DB values for "Mid-Jan 2018" are identical (9/9 seasons) to the CPC/IRI *official consensus* issued early Feb 2018, and "Mid-Feb 2018" equals the official issued early Mar 2018. As issued, Mid-Jan 2018 had La Nina 69/50/30% for JFM/FMA/MAM (archived table and Technical Update text agree); the DB has 87/60/43%. Differences up to 18-19 pts. These two issues should be replaced or excluded. The scan found no other DB issue equal to an official forecast (2013-08..2025-04).
  2. **2013-10: revised by 1-2 pts.** The archived table and the as-issued text ("La Nina at 5% for Oct-Dec", El Nino "exceed 30% by Apr-Jun ... 42% by Jun-Aug") agree with each other; the DB has 4% / 35% / 44%.
  3. **2025-12: small difference (~1.3-1.4 pts) in 2 seasons** of the PNG (JFM La Nina 34 vs DB 35; AMJ 9/78/13 vs DB 9/77/14), beyond the pixel error seen elsewhere (<=0.6). Likely a minor post-issue update.
  4. **Missing / truncated last season:** 2004-09 10th season (JJA 2005) is all-zero in the DB/SVG (as-issued 10/45/45). 2009-01 and 2011-12 had 10 seasons as issued but the DB has 9.
- **Apparent mismatches that are errors in the as-issued page, not the DB:** 2020-08 ASO, where the archived HTML table shows La Nina/Neutral 47/53 but the same page's text says La Nina 53%, Neutral 47%, which is the DB value. 2023-04 NDJ, where the legend covers the bar top in the PNG and a visual reading (~79) equals the DB. 2020-12 MAM 52/48/1 as issued (sums to 101) vs DB 52/48/0.

## Parser self-check

Bar values re-derived by hand from SVG path coordinates and y-tick positions (`<g id="ytick_*"><use y=...>`, tick labels from matplotlib `<!-- 0 -->...<!-- 100 -->` comments; bars = `<path>` with fill #0000ff/#aaaaaa/#ff0000 inside the axes, legend swatches excluded). In all files the 0 tick is at y=433.917812 and the 100 tick at y=45.837812 (3.8808 px per %).

| SVG | season (k) | colour | bar top y | derived % | CSV |
|---|---|---|---|---|---|
| 2015-10 | MJJ (7) | La Nina | 402.871412 | 8.000 | 8 |
| 2015-10 | MAM (5) | El Nino | 57.480212 | 97.000 | 97 |
| 2015-10 | MJJ (7) | El Nino | 294.209012 | 36.000 | 36 |
| 2008-06 | JJA (0) | Neutral | 142.857812 | 75.000 | 75 |
| 2008-06 | ASO (2) | La Nina | 356.301812 | 20.000 | 20 |
| 2018-11 | AMJ (5) | Neutral | 348.540212 | 22.000 | 22 |
| 2018-11 | MJJ (6) | El Nino | 162.261812 | 70.000 | 70 |
| 2023-04 | AMJ (0) | El Nino | 278.685812 | 40.000 | 40 |
| 2023-04 | SON (5) | La Nina | 430.037012 | 1.000 | 1 |

All values derive to exact integers and equal the CSV, and the season labels (from the `<!-- JAS -->` text comments) equal the CSV `season` column. **The parser is correct.** The integer-only bar heights show the DB stores integer percentages.

## How the probabilities were computed and labelled at the time (from the old pages)

- 2003-2009 old-site title: "IRI Probabilistic ENSO Forecast for NINO3.4 Region - Made in <Month>". 2010-2013: "IRI Probabilistic ENSO Prediction". 2014-2016 (new site): "IRI/CPC Mid-Month Plume-Based ENSO Forecast Probabilities". From 2016-04: "Model-Based". From about 2021 the as-issued product is a static PNG titled "Mid-<Month> <Year> IRI Model-Based Probabilistic ENSO Forecasts". The regenerated SVGs title every year "CCSR/IRI Model-Based Probabilistic ENSO Forecasts".
- 10 seasons were issued through 2011-12; 9 seasons from 2012-01 on.
- Early values are coarse and look hand-set (multiples of 5, long runs of identical values, the 25/50/25 climatology at long leads in 2009-01). Some rows do not sum to 100, and these are reproduced exactly in the DB (for example 2007-03 MJJ sums to 105). This fits a partly judgmental "probabilistic assessment" that "considered" several models (wording of the old note `archive/201006/note_ensoprob.html`), not a purely regression-based objective product. The DB reproduces those as-issued numbers.
- **Category definition changed.** The old note says the La Nina/El Nino thresholds "must vary seasonally ... to maintain the 25% - 50% - 25% distribution", which is a quantile-based definition. Later issues use fixed +-0.5 C. The regenerated SVG subtitle "Neutral ENSO: -0.5 C to 0.5 C" is therefore anachronistic for the early years. Verification against an ONI +-0.5 C outcome should allow for this, and for the use of the 25/50/25 climatology in early years.
- The 2014+ pages say the model-based forecast is "a purely objective ENSO probability forecast, based on regression, using as input the model predictions from the plume", with "each of the forecasts ... weighted equally".

## Per-issue comparison table

Sources: A = old-site archive figure3.html, B = old-site live figure3.html (contemporaneous capture), C = 2013+ site HTML table, D = 2013+ site PNG. `shift` = first-season or position mismatch.

| issue | src | n rows | statuses | shift | max abs diff | note | example source URL |
|---|---|---|---|---|---|---|---|
| 2003-06 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20030715152442/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200306/figure3.html |
| 2003-07 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20030806070850/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2003-09 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20031008074305/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2003-11 | A+B | 18 | 18 exact | no | 0.0 |  | https://web.archive.org/web/20050124205159/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200311/figure3.html |
| 2004-01 | B | 10 | 10 exact | no | 0.0 |  | https://web.archive.org/web/20040217234956/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2004-04 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20040603083625/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200404/figure3.html |
| 2004-07 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20040805233454/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2004-09 | A+B | 18 | 1 differ, 17 exact | no | 45.0 | DB has all-zero bars for 10th season (missing data in DB) | https://web.archive.org/web/20050124222339/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200409/figure3.html |
| 2004-11 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20041208072653/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2005-01 | B | 10 | 10 exact | no | 0.0 |  | https://web.archive.org/web/20050204001259/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2005-02 | A+B | 20 | 20 exact | no | 0.0 |  | https://web.archive.org/web/20050303224054/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200502/figure3.html |
| 2005-03 | B | 10 | 10 exact | no | 0.0 |  | https://web.archive.org/web/20050402023714/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2005-07 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20060904045217/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200507/figure3.html |
| 2005-10 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20051110042810/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2005-11 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20051126105532/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2005-12 | A+B | 18 | 18 exact | no | 0.0 |  | https://web.archive.org/web/20060903070431/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200512/figure3.html |
| 2006-02 | B | 10 | 10 exact | no | 0.0 |  | https://web.archive.org/web/20060221070700/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2006-04 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20060504005932/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2006-05 | A+B | 18 | 18 exact | no | 0.0 |  | https://web.archive.org/web/20060616032718/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200605/figure3.html |
| 2006-08 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20060823000741/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2006-10 | A+B | 18 | 18 exact | no | 0.0 |  | https://web.archive.org/web/20061103113913/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200610/figure3.html |
| 2006-11 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20061205210115/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2006-12 | B | 18 | 18 exact | no | 0.0 |  | https://web.archive.org/web/20070101124538/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2007-01 | B | 10 | 10 exact | no | 0.0 |  | https://web.archive.org/web/20070120223239/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2007-03 | A | 10 | 10 exact | no | 0.0 |  | https://web.archive.org/web/20070609152058/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/200703/figure3.html |
| 2007-04 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20070508090715/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2007-05 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20070609132254/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2007-07 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20070812042313/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2007-08 | A+B | 18 | 18 exact | no | 0.0 |  | https://web.archive.org/web/20070912040427/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200708/figure3.html |
| 2007-10 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20071025111614/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2007-12 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20071229054332/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2008-01 | A+B | 20 | 20 exact | no | 0.0 |  | https://web.archive.org/web/20081013025009/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/200801/figure3.html |
| 2008-02 | B | 10 | 10 exact | no | 0.0 |  | https://web.archive.org/web/20080303161427/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2008-04 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20080513225852/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2008-06 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20081207055214/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200806/figure3.html |
| 2008-10 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20090327080136/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200810/figure3.html |
| 2008-11 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20090327080149/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200811/figure3.html |
| 2008-12 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20081222190658/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2009-01 | A+B | 20 | 18 exact, 2 season_missing_in_csv | no | 0.0 | 10th season present as-issued, absent from DB/SVG | https://web.archive.org/web/20090327075407/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200901/figure3.html |
| 2009-02 | B | 10 | 10 exact | no | 0.0 |  | https://web.archive.org/web/20090308020315/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2009-04 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20090621085058/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/200904/figure3.html |
| 2009-07 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20090728220251/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2009-08 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20090828224755/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2009-09 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20100614033138/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/200909/figure3.html |
| 2009-12 | B | 9 | 8 exact, 1 within1 | no | 0.3 | as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20100110040641/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2010-02 | A | 10 | 10 exact | no | 0.0 |  | https://web.archive.org/web/20100613013809/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/201002/figure3.html |
| 2010-05 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20100612104325/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2010-07 | A+B | 18 | 16 exact, 2 within1 | no | 0.4 | as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20110720184532/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/201007/figure3.html |
| 2010-10 | B | 9 | 6 exact, 3 within1 | no | 0.3 | as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20101108225941/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2010-11 | B | 9 | 7 exact, 2 within1 | no | 0.4 | as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20101209002948/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2010-12 | A | 9 | 8 exact, 1 within1 | no | 0.2 | as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20110720191330/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/201012/figure3.html |
| 2011-05 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20110720184826/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/201105/figure3.html |
| 2011-06 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20110720074227/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2011-07 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20110813153543/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2011-08 | B | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20110820020701/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2011-10 | A+B | 18 | 14 exact, 4 within1 | no | 0.4 | as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20111116232950/http://iri.columbia.edu:80/climate/ENSO/currentinfo/archive/201110/figure3.html |
| 2011-11 | B | 9 | 8 exact, 1 within1 | no | 0.4 | as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20111206120848/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2011-12 | B | 9 | 6 exact, 1 season_missing_in_csv, 2 within1 | no | 0.4 | 10th season present as-issued, absent from DB/SVG; as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20120101183407/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2012-01 | B | 9 | 6 exact, 3 within1 | no | 0.4 | as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20120123051117/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2012-02 | B | 9 | 8 exact, 1 within1 | no | 0.3 | as-issued decimal (<0.5%) shown as 0 in DB (DB integers) | https://web.archive.org/web/20120309165353/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2012-03 | A | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20131211114824/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/201203/figure3.html |
| 2012-05 | B | 16 | 16 exact | no | 0.0 |  | https://web.archive.org/web/20120518222545/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2012-08 | A | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20131211114644/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/201208/figure3.html |
| 2012-09 | B | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20121017074414/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2013-01 | A+B | 18 | 18 exact | no | 0.0 |  | https://web.archive.org/web/20131211114332/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/201301/figure3.html |
| 2013-06 | A | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20131211113820/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/201306/figure3.html |
| 2013-10 | A | 8 | 3 differ, 5 within1 | no | 2.0 | archived table (and as-issued Technical Update text: LN 5% OND, EN >30% AMJ, 42% JJA) differ from DB by 1-2 pts: DB revised | https://web.archive.org/web/20131211113609/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/201310/figure3.html |
| 2013-11 | A+B | 16 | 16 exact | no | 0.0 |  | https://web.archive.org/web/20131211113543/http://iri.columbia.edu/climate/ENSO/currentinfo/archive/201311/figure3.html |
| 2013-12 | B | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20131221114101/http://iri.columbia.edu/climate/ENSO/currentinfo/figure3.html |
| 2014-06 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20140702095806/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2014-10 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20141027131403/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2014-12 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20150109232153/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2015-02 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20150308220235/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2015-04 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20150504073735/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2015-06 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20150709052155/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2015-08 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20150904081421/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2015-10 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20151107115526/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2015-12 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20160107012045/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2016-02 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20160304023040/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2016-04 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20160513173910/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2016-06 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20160711073610/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2016-08 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20160906103911/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2016-10 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20161109184821/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2016-12 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20170111174651/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2017-02 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20170306193439/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2017-04 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20170508181239/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2017-06 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20170709184043/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2017-08 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20170907080532/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2017-10 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20171104195437/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2018-01 | C | 9 | 9 differ | no | 18.0 | DB values equal CPC/IRI official (early-Feb 2018) forecast; as-issued text (LN 69% JFM, 50% FMA, 30% MAM) matches archived table, not DB | https://web.archive.org/web/20180125061619/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2018-02 | C | 9 | 9 differ | no | 19.0 | DB values equal CPC/IRI official (early-Mar 2018) forecast; as-issued text (LN ~55% FMA, ~35% MAM) matches archived table, not DB | https://web.archive.org/web/20180317123121/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2018-06 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20180718074913/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2018-09 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20181019065631/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2019-01 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20190124021232/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2019-02 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20190317053830/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2019-04 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20190508080952/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2019-07 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20190731100638/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2019-08 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20190901034414/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2019-10 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20191101040552/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2019-12 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20200103094703/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2020-02 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20200317224747/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2020-04 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20200501093640/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2020-06 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20200716120014/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2020-08 | C | 8 | 1 differ, 7 exact | no | 6.0 | archived HTML table has LN/N swapped (47/53); as-issued text says LN 53%, N 47% = DB; HTML typo | https://web.archive.org/web/20200911033348/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2020-10 | C | 8 | 8 exact | no | 0.0 |  | https://web.archive.org/web/20201102050616/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2020-12 | C | 8 | 7 exact, 1 within1 | no | 1.0 |  | https://web.archive.org/web/20210102172211/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2021-04 | C | 9 | 9 exact | no | 0.0 |  | https://web.archive.org/web/20210509225214/http://iri.columbia.edu/our-expertise/climate/forecasts/enso/current/ |
| 2021-08 | D | 8 | 8 match_img | no | 0.5 |  | https://web.archive.org/web/20210901070822/https://iri.columbia.edu/wp-content/uploads/2021/08/figure3.png |
| 2022-06 | D | 8 | 8 match_img | no | 0.5 |  | https://web.archive.org/web/20220706060036/https://iri.columbia.edu/wp-content/uploads/2022/06/figure3.png |
| 2023-04 | D | 9 | 8 match_img, 1 match_img_visual | no | 2.0 | PNG bar top occluded by legend text; visual reading ~79 = DB | https://web.archive.org/web/20230501144652/https://iri.columbia.edu/wp-content/uploads/2023/04/figure3-2.png |
| 2024-02 | D | 9 | 9 match_img | no | 0.6 |  | https://web.archive.org/web/20240312030950/https://iri.columbia.edu/wp-content/uploads/2024/02/figure3.png |
| 2024-10 | D | 8 | 8 match_img | no | 0.5 |  | https://web.archive.org/web/20241103023215/https://iri.columbia.edu/wp-content/uploads/2024/10/figure3.png |
| 2025-08 | D | 8 | 8 match_img | no | 0.6 |  | https://web.archive.org/web/20250914232002/https://iri.columbia.edu/wp-content/uploads/2025/08/figure3.png |
| 2025-12 | D | 8 | 1 differ, 7 match_img | no | 1.4 | PNG differs by ~1.3-1.4 pts in 2 seasons (JFM LN 34 vs 35; AMJ N 78/EN 13 vs 77/14) beyond pixel error (<=0.6 elsewhere): small revision likely | https://web.archive.org/web/20260113084120/https://iri.columbia.edu/wp-content/uploads/2025/12/figure3.png |

## Caveats

- Sources A and C/D are web copies that Wayback sometimes captured weeks to years after issue. Source B and the quick-look text are contemporaneous, and where they overlap with A they agree with it.
- Issues 2021-2025 were checked only through 7 PNGs, at about 0.5 pt precision.
- The CPC-official contamination scan covers only 2013-08..2025-04, so it cannot catch the same fault in earlier DB issues. The direct comparisons cover 2003-2013 well, though, and found none.
