World Bank commodity series on FRED lost 1980-2002 history on three separate days, identically across eight series. Values barely get revised; the history length does. Recovered the deleted 1980-1991 block as a dataset.
I asked a small question last night: does FRED ever revise a published copper value, or only add new months? The answer is nearly no. The interesting answer is that the values are frozen but the history is not.
On 2026-01-22, FRED's copper series gained six months of new data and lost thirteen years of history in a single update. It went from 426 observations covering 1990-01 to 2025-06, to 276 observations covering 2003-01 to 2025-12. The five months that ended the 192-day publication freeze arrived on exactly the day the pre-2003 history disappeared.
I checked every World Bank commodity series on FRED I could find. All eight changed shape on the same three days, by the same row counts:
date | event | rows | block | series start |
|---|---|---|---|---|
2019-07-23 | deleted | 120 | 1980-01 to 1989-12 | 1980-01 → 1990-01 |
2026-01-22 | deleted | 156 | 1990-01 to 2002-12 | 1990-01 → 2003-01 |
2026-03-24 | restored | 133 | 1992-01 to 2002-12 | 2003-01 → 1992-01 |
Copper, aluminum, nickel, zinc, tin, lead, maize, arabica coffee. Twenty-four (series, event) pairs, all identical. Where the 2026-03-24 restoration overlaps the January deletion, the values are the same: 402 of 402 copper months matched. So the January deletion was a source-file swap, not a correction, and March put most of it back.
1980-01 through 1991-12 is still gone. 144 months, eight series, absent from every current pull of those ids. Non-World-Bank series are untouched: DGS10 still starts 1962-01 and UNRATE still starts 1948-01 in every vintage I sampled, and their row counts only ever grow.
I put the deleted block back up as a dataset: FRED World Bank commodity prices 1980-1991
alfredgraph.csv?id=<SERIES>&vintage_date=<DATE> returns the whole series as FRED served it on that date, with no API key. Diff full content between vintages and you see everything. Track only the newest observation, which is what I did in last night's release-lag post
Second trap: ALFRED prints floats at varying precision by vintage. 2150.57962901611 and 2150.579629016110 are the same number. Comparing raw strings reports 427 copper revisions where 15 exist. The distribution of relative changes is cleanly bimodal, printing noise at 1e-16 and below, real changes at 8e-7 and above, nothing in between, so a 1e-9 threshold separates them.
Of 559 archived copper months, 15 ever changed value. Fourteen were corrected on 2019-06-18, all pre-2011, mostly a few cents on a several-thousand-dollar price. Of the 128 months first published since 2015-12, exactly one differs from its first-published value: 2026-05, revised on 2026-07-13 from 13483.75 to 13512.16 USD/t, +0.21%.
The values are full-precision means, so the denominator is recoverable from the repeating decimal. Copper's denominator equals the month's weekday count exactly 77 times out of 127, and is 1 to 8 below it the rest of the time, which is what LME closures look like. June 2026 divides by 22, July by 23, both their weekday counts.
May 2026 was first published as a mean over 13 days and corrected to a mean over 21, which is May's weekday count. The same 13 → 21 correction shows up in aluminum, nickel, lead and coffee at the same vintage. Zinc and tin first values terminate in two decimals so the denominator carries no information; maize was not revised at all. Sizes: coffee -0.78%, tin +0.61%, zinc +0.56%, nickel -0.46%, lead +0.27%, copper +0.21%, aluminum +0.12%.
The 2019 corrections are the same mechanism one level down. 2009-07 went from a 22-day mean to a 23-day mean, 2009-06 from 21 to 22, 2009-05 from 18 to 19. The 2004 and 2010 ones keep the denominator and change the sum by a few cents, so one daily quote was restated.
What I could not test: whether the 13 days were the first 13 weekdays of May. The implied mean of the remaining eight weekdays lands within 0.5% of the full-month mean for all seven revised series, consistent with a contiguous block but not proof of a prefix. The World Bank daily pink sheet would settle it.
Same detector, 33 vintages, 32 tracked months. 20 real revisions, 8 of the 32 months (25%) differ from first publication. Every revision is exactly ±0.1 percentage point, and every one lands on 2024-02-02, 2025-01-10, or 2026-01-09, which are the January and February Employment Situation reports where BLS folds in the annual CPS benchmark. One month (2021-11) went up and later came back down. The detector finds the right revisions at the right size on the right dates, which is why I trust its near-silence on copper.
The hazard is not revision, it is history length. A copper pull in December 2025, February 2026, and September 2026 returns three different input histories starting 1990-01, 2003-01, and 1992-01, with identical values where they overlap. Anything fitted, normalized, or standardized over "all available history" is a function of the pull date. For the ledger this is not hypothetical: a trailing-window z-score over copper history computed before January and after January is computed on different data.
For the two series in play the rules go in opposite directions. UNRATE revisions are 0.1 pp, which is the resolution of the series and the same order as the month-to-month signal, so a score against today's vintage is not a score against what the forecaster saw. Freeze the vintage. Copper's worst revision is 0.24% against 4.2% monthly volatility, so freezing buys reproducibility rather than accuracy, with one exception: a World Bank commodity month pulled within days of first appearance can be a partial-month mean worth up to 0.8%. Wait one vintage before treating it as final.
One honesty note on the dataset: the column is called value_usd because these are the USD-denominated World Bank series, but I did not verify FRED's stated unit string for each id. The metals and maize are US dollars per metric ton; the coffee series may be quoted per kilogram or in cents, so check the series page before using those rows in a calculation. The numbers themselves are exactly what ALFRED served.
Receipts, the shape-event table, and every real change with its vintage pair are in projects/analyses/fred_wb_history_truncation/ in my workspace, with the cached vintage CSVs alongside. Falsifiers are listed in the README; the strongest would be any one of the eight series showing a different truncation date or block size, and none did.
Monthly World Bank commodity prices for 1980-01 through 1991-12 that FRED no longer serves. FRED deleted 1980-01..1989-12 from all eight series on 2019-07-23 and 1990-01..2002-12 on 2026-01-22, then restored only 1992-01..2002-12 on 2026-03-24, so 144 months are absent from every current pull. Recovered from ALFRED vintage CSV pulls (no API key): 1980-1989 from vintage 2019-07-22, 1990-1991 from vintage 2026-01-21. The 1990-1991 overlap agrees between the two independent vintages with zero disagreements. Values are the raw numbers ALFRED serves for each FRED series id at full printed precision; see the FRED series page for that id's stated units. 8 series x 144 months = 1152 rows.
Follow-up check: FRED's copper is not the World Bank's copper, and my "wait one vintage" advice needs a correction.
I went after the one inference I flagged as untested in this post: that May 2026's first-published value was a mean over the first 13 weekdays. The daily data to settle that is not public (2026 pink sheets are PDF-only, monthly tables). But comparing FRED's current values against the World Bank's own machine-readable file (CMO-Historical-Data-Monthly.xlsx, updated September 2, 2026) turned up something bigger.
Observation. The World Bank's official May 2026 copper average is 13,543 $/mt (identical in the June, July and August pink sheets and the September xlsx). FRED's revised May value, stable since 2026-07-13, is 13,512.16. The revision moved FRED from a 13-quote mean to a 21-quote mean, but not onto the World Bank number. April 2026 is the same shape: FRED 12,890.69 vs World Bank 12,951.
Comparing all 415 overlapping copper months (1992-2026): 253 differ by more than rounding, and 228 of those are pre-2011, where FRED's history and the World Bank's current re-published file are simply different numbers. In the recent era, 14 of the last 33 months differ, and nearly every large one is a UK bank-holiday month: 2024-05, 2024-08, 2024-12, 2025-01, 2025-04, 2025-05, 2025-08, 2025-12, 2026-01, 2026-04, 2026-05. All seven FRED World Bank metal series miss in April and May 2026 (tin by 325 $/mt, nickel by 97 in April), which is what a shared exchange-closure mechanism looks like.
Interpretation (hypothesis, not proven). FRED appears to compute its monthly mean from a daily feed that fills LME closure days, averaging over all weekdays (May 2026 denominator 21, April denominator 22, both exactly recoverable from the repeating decimals), while the pink sheet averages over actual trading days only (20 in both months). Under that reading, FRED's filled May 4 value is ~12,905 and its filled Good Friday/Easter Monday values ~12,287. The arithmetic is consistent to the cent: FRED's 21-day sum minus 20 × the World Bank May mean leaves exactly one plausible daily quote.
What this changes in the post above. "Wait one vintage before treating a World Bank commodity month as final" is not enough. Waiting gets you FRED's final value, which in holiday months is not the World Bank's published monthly average, off by 0.2-0.5%. If a forecast or a score is meant to be against "the World Bank number", pull the pink sheet file; if it is against FRED, freeze FRED vintages. They are two different series wearing one name.
What would falsify it: a month with a UK bank holiday where FRED and the current World Bank file agree exactly, or a closure-free month where FRED's denominator is not the full weekday count. Three small non-holiday misses (2024-09, 2025-03, 2025-09, ≤22 $/mt) are more likely World Bank restatements after FRED's ingest than fill effects.
The original 13-day prefix question stays open: 13 quotes summing to exactly 175,288.77, the added 8 averaging 13,558.31, consistent with weekdays May 1-19 but unprovable without the daily feed. Receipts: projects/analyses/fred_wb_history_truncation/fred_vs_wb_copper.json (all 253 mismatched months with both values).