4HF

Command Palette

Search for a command to run...

Backtesting

32 forecasting models — 8 pure mathematical baselines, a sentiment-only and a sentiment + crop-calendar variant of each (the same three families the live Forecasts page picks between), and 8 real library-grade models (AutoARIMA, Prophet, Chronos-Bolt, LightGBM…) — replayed walk-forward against real FRED history (24 months, no look-ahead) at 1, 2, and 3 months ahead. Toggle the horizon to compare.

Library-model snapshot: 74 days ago
Forecast horizon:
(walk-forward over 24 months, no look-ahead)
Model leaderboard
Lower mean error = better. Sorted by Avg MAPE (lower better). The current production model is tagged. * = fewer than 300 total backtested points across all benchmarks — treat rank order with caution at this sample size.
Momentum-driftwins with 6.2% avg MAPE

At 1 month ahead, Momentum-drift has the lowest mean error (6.2% MAPE across 14 benchmarks) and won 3/14 outright. Accuracy typically degrades at longer horizons — toggle to compare.

RankModelAvg MAPEAvg MASEAvg DirBandWinsn
Momentum-driftTS-nativecurrent
60% EWMA momentum (3-month weighted) + 40% structural drift, clamped ±15%.
6.2%—20.8%87.5%3/14280*
2
Momentum-drift + SentimentTS-native
60% EWMA momentum (3-month weighted) + 40% structural drift, clamped ±15%. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon only).
6.3%—30.5%85.2%4/15299*
3
Momentum-drift + Sentiment + CalendarTS-native
60% EWMA momentum (3-month weighted) + 40% structural drift, clamped ±15%. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon) + crop-calendar seasonality across Hassad's sourcing regions (fixed weight, all horizons).
6.3%—33.2%85.2%3/15299*
4
Chronos-BoltChronos
Amazon's zero-shot pretrained time-series foundation model (amazon/chronos-bolt-small). No per-benchmark training — the same pretrained weights forecast every series. Band: native 10%/90% predicted quantiles (an 80% interval — Chronos-Bolt's trained quantile range tops out at 0.9, so bandCoverage for this model targets 80%, not the 95% other models use).
6.3%—24.1%84.6%2/14266*
5
Auto-ARIMA + SentimentTS-native
Automatic ARIMA — tries AR orders 0-2 on differenced series, picks the best by AIC. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon only).
6.6%—35.2%82.9%2/15299*
6
AutoETS (StatsForecast)StatsForecast
Automatic exponential smoothing (error/trend/seasonal).
6.6%—0%87.7%4/14154*
7
Auto-ARIMATS-native
Automatic ARIMA — tries AR orders 0-2 on differenced series, picks the best by AIC.
6.7%—31.6%87.1%1/14280*
8
Naive (drift) + SentimentTS-native
Random walk with drift — predicts last price plus the average monthly change over the window. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon only).
6.7%—37%83.9%1/15299*
9
Auto-ARIMA + Sentiment + CalendarTS-native
Automatic ARIMA — tries AR orders 0-2 on differenced series, picks the best by AIC. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon) + crop-calendar seasonality across Hassad's sourcing regions (fixed weight, all horizons).
6.7%—35.8%82.6%1/15299*
10
Naive (drift)TS-native
Random walk with drift — predicts last price plus the average monthly change over the window.
6.8%—33.2%86.4%1/14280*
11
Moving avgTS-native
Adaptive moving average — tries windows of 2/3/4/6 months and picks the best by in-sample error.
6.9%—28.9%83.9%0/14280*
12
Naive (drift) + Sentiment + CalendarTS-native
Random walk with drift — predicts last price plus the average monthly change over the window. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon) + crop-calendar seasonality across Hassad's sourcing regions (fixed weight, all horizons).
6.9%—38.4%82.9%2/15299*
13
Theta (StatsForecast)StatsForecast
Theta decomposition method.
6.9%—0%81.8%0/14154*
14
Moving avg + SentimentTS-native
Adaptive moving average — tries windows of 2/3/4/6 months and picks the best by in-sample error. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon only).
7%—29.1%81.5%2/15299*
15
Moving avg + Sentiment + CalendarTS-native
Adaptive moving average — tries windows of 2/3/4/6 months and picks the best by in-sample error. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon) + crop-calendar seasonality across Hassad's sourcing regions (fixed weight, all horizons).
7.1%—29.9%81.5%0/15299*
16
LinReg (Darts)Darts
Darts autoregressive linear model (lags=1). Band: 95% interval from in-sample lag-1 residual stddev (Darts has no native prediction interval for this model).
7.4%—30%85%1/14266*
17
AutoARIMA (StatsForecast)StatsForecast
Automatic ARIMA order selection (AIC).
7.5%—0%87%1/14154*
18
WLS regressionTS-native
Weighted least squares linear fit (exponential decay λ=0.95) — recent prices weighted more heavily.
8%—41.9%77.5%0/14280*
19
WLS regression + SentimentTS-native
Weighted least squares linear fit (exponential decay λ=0.95) — recent prices weighted more heavily. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon only).
8.1%—44.1%76.1%1/15299*
20
WLS regression + Sentiment + CalendarTS-native
Weighted least squares linear fit (exponential decay λ=0.95) — recent prices weighted more heavily. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon) + crop-calendar seasonality across Hassad's sourcing regions (fixed weight, all horizons).
8.2%—43.7%76.1%1/15299*
21
Holt-Winters + SentimentTS-native
Triple exponential smoothing — captures level, trend, and 12-month seasonality with grid-searched parameters. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon only).
8.7%—42.5%80.9%0/15299*
22
Holt linear + SentimentTS-native
Holt's linear trend method (level + slope), one-step ahead. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon only).
8.7%—42.5%80.9%0/15299*
23
Holt-WintersTS-native
Triple exponential smoothing — captures level, trend, and 12-month seasonality with grid-searched parameters.
8.8%—39.1%84.3%0/14280*
24
Holt linearTS-native
Holt's linear trend method (level + slope), one-step ahead.
8.8%—39.1%84.3%0/14280*
25
Holt-Winters + Sentiment + CalendarTS-native
Triple exponential smoothing — captures level, trend, and 12-month seasonality with grid-searched parameters. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon) + crop-calendar seasonality across Hassad's sourcing regions (fixed weight, all horizons).
8.8%—44%80.5%0/15299*
26
Holt linear + Sentiment + CalendarTS-native
Holt's linear trend method (level + slope), one-step ahead. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon) + crop-calendar seasonality across Hassad's sourcing regions (fixed weight, all horizons).
8.8%—44%80.5%0/15299*
27
Seasonal naiveTS-native
Predicts the price from one cycle ago — tries both 6-month and 12-month cycles, picks the best.
9.7%—17.5%75%0/14280*
28
Seasonal naive + SentimentTS-native
Predicts the price from one cycle ago — tries both 6-month and 12-month cycles, picks the best. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon only).
10.1%—18.4%72.5%0/15299*
29
ProphetProphet
Facebook Prophet — additive trend + seasonality with uncertainty. Walk-forward every 3rd month (offline run-time constraint).
10.1%—36.3%70%0/1470*
30
Seasonal naive + Sentiment + CalendarTS-native
Predicts the price from one cycle ago — tries both 6-month and 12-month cycles, picks the best. + real GDELT news-sentiment nudge (grid-searched weight, 1-month horizon) + crop-calendar seasonality across Hassad's sourcing regions (fixed weight, all horizons).
10.2%—22.7%72.1%0/15299*
31
SeasonalNaive (StatsForecast)StatsForecast
Forecast = last observed value from the same season.
16.3%—0%75.9%0/14154*
32
LightGBM (MLForecast)MLForecast
Gradient-boosted trees (LightGBM) on lag/rolling features via Nixtla's MLForecast. Band: 95% interval from in-sample one-step residual stddev.
31%—40.3%79.6%1/1498*
Model accuracy matrix · 1 month ahead
MAPE % per benchmark × model (lower is better). ★ = that model won the benchmark (lowest MAPE in the row) at this horizon.
Benchmark
Naive (drift)TS-native
Seasonal naiveTS-native
Moving avgTS-native
Holt-WintersTS-native
Holt linearTS-native
WLS regressionTS-native
Auto-ARIMATS-native
Momentum-driftcurrent · TS-native
Naive (drift) + SentimentTS-native
Seasonal naive + SentimentTS-native
Moving avg + SentimentTS-native
Holt-Winters + SentimentTS-native
Holt linear + SentimentTS-native
WLS regression + SentimentTS-native
Auto-ARIMA + SentimentTS-native
Momentum-drift + SentimentTS-native
Naive (drift) + Sentiment + CalendarTS-native
Seasonal naive + Sentiment + CalendarTS-native
Moving avg + Sentiment + CalendarTS-native
Holt-Winters + Sentiment + CalendarTS-native
Holt linear + Sentiment + CalendarTS-native
WLS regression + Sentiment + CalendarTS-native
Auto-ARIMA + Sentiment + CalendarTS-native
Momentum-drift + Sentiment + CalendarTS-native
AutoARIMA (StatsForecast)StatsForecast
AutoETS (StatsForecast)StatsForecast
Theta (StatsForecast)StatsForecast
SeasonalNaive (StatsForecast)StatsForecast
ProphetProphet
LinReg (Darts)Darts
Chronos-BoltChronos
LightGBM (MLForecast)MLForecast
Alfalfa Hay (US PPI Index)
Feed Additives & Forage
9.1%9.1%7.1%10.4%10.4%8.2%10.9%8.9%8.9%8.9%7%10.2%10.2%8%10.7%8.7%9.3%9.1%7.4%10.7%10.7%8.4%11%8.9%7.8%7.8%8.1%10.6%10.2%7.5%7.1%14.1%
Australia Chilled Meat Export
Protein
2.7%5.6%3.7%2.8%2.8%5.1%2.8%2.5%2.7%5.2%3.5%2.8%2.8%5.1%2.8%2.5%3.1%5.4%3.7%3%3%5.3%3.1%2.8%2.4%1.7%1.9%27.5%4.9%4.2%3.5%2.2%
Barley (IMF Global Price)
Grains, Oilseeds & Fats
3.5%3.7%4%3.9%3.9%5.7%4%3%3.2%3.6%3.9%3.9%3.9%5.1%3.7%3%3.5%3.6%4%3.9%3.9%5.3%3.9%3.2%1.7%1.8%2.7%8.8%4.3%3.6%2.9%3.6%
Brazil Chilled/Frozen Export
Protein
————————7.6%18.1%10.8%9.3%9.3%11.6%7.5%7.8%7.1%17.9%10.7%9%9%11.1%7.3%7.3%————————
Broiler Chicken (IMF Poultry Proxy)
Protein
1.4%2.7%1.6%1.7%1.7%1.8%1.4%1.4%1.4%2.7%1.6%1.7%1.7%1.8%1.4%1.4%1.4%2.7%1.6%1.7%1.7%1.8%1.4%1.4%1.9%1.7%1.8%3.9%2.5%1.7%1.5%3.8%
Butter (US PPI Proxy)
Protein
9.1%14.3%9.2%10.6%10.6%14.1%7.9%7.2%8.8%14.3%9.2%10.4%10.4%13.6%7.6%7.2%9%14.3%9.4%10.5%10.5%14.1%7.9%7.2%10.7%10.4%11.7%30.6%18.6%10.9%8.5%10.4%
Corn (IMF Global Price)
Grains, Oilseeds & Fats
2.9%4.3%4.2%3%3%4.6%2.9%2.8%2.9%4.3%4%3%3%4.5%2.9%2.8%3.1%4.5%4.2%3.2%3.2%4.4%3.2%3%3.3%2.7%2.8%4.7%4.6%4.3%3.3%3%
Dairy Products Price Index (GDT Proxy)
Protein
1.1%2.4%1.7%1.1%1.1%1.8%1.1%1%1.1%2.4%1.7%1.1%1.1%1.8%1%1%1.6%2.6%2.1%1.8%1.8%2.4%1.5%1.5%1.5%1.3%1.3%4.3%2%1.5%1%1.3%
Egg Price Index (US PPI Proxy)
Protein
31.3%36.4%27.6%53.6%53.6%30.9%29%27.2%31%36.4%27.6%53.2%53.2%30.9%28.7%27.1%31%36.4%27.6%53.2%53.2%30.9%28.7%27.1%35.5%25.8%26.9%51%41.2%32.1%26.8%345.4%
Lean Hogs (IMF Swine Proxy)
Protein
4.9%4.8%5.8%6.4%6.4%7.4%4.6%4.4%4.9%4.6%5.6%6.3%6.3%7.4%4.4%4.3%4.9%4.6%5.6%6.3%6.3%7.4%4.4%4.3%6.8%5.7%6.5%9.2%11.2%5.2%4.5%4.8%
Live Cattle (IMF Beef Proxy)
Protein
1.5%6.2%2.1%1.7%1.7%1.6%1.5%1.5%1.4%5.7%1.8%1.6%1.6%1.3%1.4%1.4%1.4%5.7%1.8%1.6%1.6%1.3%1.4%1.4%1.9%1.8%1.8%16.8%1.4%1.7%2%2.1%
Skim Milk Powder (US PPI Proxy)
Protein
2.6%3.8%3.3%3.2%3.2%3.3%2.4%2.5%2.6%3.6%3%3.2%3.2%3.2%2.3%2.5%2.6%3.6%3%3.2%3.2%3.1%2.1%2.6%2.1%2%2.6%3.7%2.1%3.8%2.3%3.3%
Soybean Meal (IMF Global Price)
Grains, Oilseeds & Fats
6%6.3%6.3%6%6%6%6.4%5.7%5.8%6.3%6.2%6%6%5.8%6.3%5.7%6.1%6.1%6.3%6.1%6.1%6.1%6.5%5.7%8.8%8.4%7.5%12.7%13.4%5.5%5.5%13%
Urea / NPN (US PPI Proxy)
Feed Additives & Forage
3.4%13.2%5.1%3.3%3.3%5.3%3.4%3.2%3.2%12.7%4.5%3.2%3.2%5.1%3.3%3%3.2%12.7%4.5%3.2%3.2%5.1%3.3%3%2.8%3.6%3.4%24.1%3.8%3.4%3.9%2.4%
Vegetable Price Index (US PPI Proxy)
Fruits, Vegetables & Juices
15.5%22.8%14.3%15.1%15.1%16.1%15.3%15.5%15.3%22.7%13.9%14.9%14.9%15.7%15.1%15.4%15.5%23.2%14.1%15.1%15.1%15.8%15.1%15.7%18.1%17%18.1%20.2%21.5%18.7%15.1%24.1%

Actual vs predicted · 1 month ahead

FRED / BLS PPI (alfalfa hay) · drift 4%/yr · vol 2.5%
Naive (drift) 9.1%(n=20)Seasonal naive 9.1%(n=20)Moving avg 7.1%(n=20)Holt-Winters 10.4%(n=20)Holt linear 10.4%(n=20)WLS regression 8.2%(n=20)Auto-ARIMA 10.9%(n=20)Momentum-drift 8.9%(n=20)Naive (drift) + Sentiment 8.9%(n=20)Seasonal naive + Sentiment 8.9%(n=20)Moving avg + Sentiment 7%(n=20)Holt-Winters + Sentiment 10.2%(n=20)Holt linear + Sentiment 10.2%(n=20)WLS regression + Sentiment 8%(n=20)Auto-ARIMA + Sentiment 10.7%(n=20)Momentum-drift + Sentiment 8.7%(n=20)Naive (drift) + Sentiment + Calendar 9.3%(n=20)Seasonal naive + Sentiment + Calendar 9.1%(n=20)Moving avg + Sentiment + Calendar 7.4%(n=20)Holt-Winters + Sentiment + Calendar 10.7%(n=20)Holt linear + Sentiment + Calendar 10.7%(n=20)WLS regression + Sentiment + Calendar 8.4%(n=20)Auto-ARIMA + Sentiment + Calendar 11%(n=20)Momentum-drift + Sentiment + Calendar 8.9%(n=20)AutoARIMA (StatsForecast) 7.8%(n=11)AutoETS (StatsForecast) 7.8%(n=11)Theta (StatsForecast) 8.1%(n=11)SeasonalNaive (StatsForecast) 10.6%(n=11)Prophet 10.2%(n=5)LinReg (Darts) 7.5%(n=19)Chronos-Bolt 7.1%(n=19)LightGBM (MLForecast) 14.1%(n=7)
FRED / IMF (global lamb) · drift 5%/yr · vol 2%
Naive (drift) 2.7%(n=20)Seasonal naive 5.6%(n=20)Moving avg 3.7%(n=20)Holt-Winters 2.8%(n=20)Holt linear 2.8%(n=20)WLS regression 5.1%(n=20)Auto-ARIMA 2.8%(n=20)Momentum-drift 2.5%(n=20)Naive (drift) + Sentiment 2.7%(n=20)Seasonal naive + Sentiment 5.2%(n=20)Moving avg + Sentiment 3.5%(n=20)Holt-Winters + Sentiment 2.8%(n=20)Holt linear + Sentiment 2.8%(n=20)WLS regression + Sentiment 5.1%(n=20)Auto-ARIMA + Sentiment 2.8%(n=20)Momentum-drift + Sentiment 2.5%(n=20)Naive (drift) + Sentiment + Calendar 3.1%(n=20)Seasonal naive + Sentiment + Calendar 5.4%(n=20)Moving avg + Sentiment + Calendar 3.7%(n=20)Holt-Winters + Sentiment + Calendar 3%(n=20)Holt linear + Sentiment + Calendar 3%(n=20)WLS regression + Sentiment + Calendar 5.3%(n=20)Auto-ARIMA + Sentiment + Calendar 3.1%(n=20)Momentum-drift + Sentiment + Calendar 2.8%(n=20)AutoARIMA (StatsForecast) 2.4%(n=11)AutoETS (StatsForecast) 1.7%(n=11)Theta (StatsForecast) 1.9%(n=11)SeasonalNaive (StatsForecast) 27.5%(n=11)Prophet 4.9%(n=5)LinReg (Darts) 4.2%(n=19)Chronos-Bolt 3.5%(n=19)LightGBM (MLForecast) 2.2%(n=7)
FRED / IMF (global barley, proxy) · drift -1%/yr · vol 2.5%
Naive (drift) 3.5%(n=20)Seasonal naive 3.7%(n=20)Moving avg 4%(n=20)Holt-Winters 3.9%(n=20)Holt linear 3.9%(n=20)WLS regression 5.7%(n=20)Auto-ARIMA 4%(n=20)Momentum-drift 3%(n=20)Naive (drift) + Sentiment 3.2%(n=20)Seasonal naive + Sentiment 3.6%(n=20)Moving avg + Sentiment 3.9%(n=20)Holt-Winters + Sentiment 3.9%(n=20)Holt linear + Sentiment 3.9%(n=20)WLS regression + Sentiment 5.1%(n=20)Auto-ARIMA + Sentiment 3.7%(n=20)Momentum-drift + Sentiment 3%(n=20)Naive (drift) + Sentiment + Calendar 3.5%(n=20)Seasonal naive + Sentiment + Calendar 3.6%(n=20)Moving avg + Sentiment + Calendar 4%(n=20)Holt-Winters + Sentiment + Calendar 3.9%(n=20)Holt linear + Sentiment + Calendar 3.9%(n=20)WLS regression + Sentiment + Calendar 5.3%(n=20)Auto-ARIMA + Sentiment + Calendar 3.9%(n=20)Momentum-drift + Sentiment + Calendar 3.2%(n=20)AutoARIMA (StatsForecast) 1.7%(n=11)AutoETS (StatsForecast) 1.8%(n=11)Theta (StatsForecast) 2.7%(n=11)SeasonalNaive (StatsForecast) 8.8%(n=11)Prophet 4.3%(n=5)LinReg (Darts) 3.6%(n=19)Chronos-Bolt 2.9%(n=19)LightGBM (MLForecast) 3.6%(n=7)
FRED / IMF (global poultry, quarterly) · drift -2%/yr · vol 2%
Naive (drift) + Sentiment 7.6%(n=19)Seasonal naive + Sentiment 18.1%(n=19)Moving avg + Sentiment 10.8%(n=19)Holt-Winters + Sentiment 9.3%(n=19)Holt linear + Sentiment 9.3%(n=19)WLS regression + Sentiment 11.6%(n=19)Auto-ARIMA + Sentiment 7.5%(n=19)Momentum-drift + Sentiment 7.8%(n=19)Naive (drift) + Sentiment + Calendar 7.1%(n=19)Seasonal naive + Sentiment + Calendar 17.9%(n=19)Moving avg + Sentiment + Calendar 10.7%(n=19)Holt-Winters + Sentiment + Calendar 9%(n=19)Holt linear + Sentiment + Calendar 9%(n=19)WLS regression + Sentiment + Calendar 11.1%(n=19)Auto-ARIMA + Sentiment + Calendar 7.3%(n=19)Momentum-drift + Sentiment + Calendar 7.3%(n=19)
FRED / IMF (global poultry, proxy) · drift 3%/yr · vol 2%
Naive (drift) 1.4%(n=20)Seasonal naive 2.7%(n=20)Moving avg 1.6%(n=20)Holt-Winters 1.7%(n=20)Holt linear 1.7%(n=20)WLS regression 1.8%(n=20)Auto-ARIMA 1.4%(n=20)Momentum-drift 1.4%(n=20)Naive (drift) + Sentiment 1.4%(n=20)Seasonal naive + Sentiment 2.7%(n=20)Moving avg + Sentiment 1.6%(n=20)Holt-Winters + Sentiment 1.7%(n=20)Holt linear + Sentiment 1.7%(n=20)WLS regression + Sentiment 1.8%(n=20)Auto-ARIMA + Sentiment 1.4%(n=20)Momentum-drift + Sentiment 1.4%(n=20)Naive (drift) + Sentiment + Calendar 1.4%(n=20)Seasonal naive + Sentiment + Calendar 2.7%(n=20)Moving avg + Sentiment + Calendar 1.6%(n=20)Holt-Winters + Sentiment + Calendar 1.7%(n=20)Holt linear + Sentiment + Calendar 1.7%(n=20)WLS regression + Sentiment + Calendar 1.8%(n=20)Auto-ARIMA + Sentiment + Calendar 1.4%(n=20)Momentum-drift + Sentiment + Calendar 1.4%(n=20)AutoARIMA (StatsForecast) 1.9%(n=11)AutoETS (StatsForecast) 1.7%(n=11)Theta (StatsForecast) 1.8%(n=11)SeasonalNaive (StatsForecast) 3.9%(n=11)Prophet 2.5%(n=5)LinReg (Darts) 1.7%(n=19)Chronos-Bolt 1.5%(n=19)LightGBM (MLForecast) 3.8%(n=7)
FRED / BLS PPI (butter proxy) · drift 8%/yr · vol 3.5%
Naive (drift) 9.1%(n=20)Seasonal naive 14.3%(n=20)Moving avg 9.2%(n=20)Holt-Winters 10.6%(n=20)Holt linear 10.6%(n=20)WLS regression 14.1%(n=20)Auto-ARIMA 7.9%(n=20)Momentum-drift 7.2%(n=20)Naive (drift) + Sentiment 8.8%(n=20)Seasonal naive + Sentiment 14.3%(n=20)Moving avg + Sentiment 9.2%(n=20)Holt-Winters + Sentiment 10.4%(n=20)Holt linear + Sentiment 10.4%(n=20)WLS regression + Sentiment 13.6%(n=20)Auto-ARIMA + Sentiment 7.6%(n=20)Momentum-drift + Sentiment 7.2%(n=20)Naive (drift) + Sentiment + Calendar 9%(n=20)Seasonal naive + Sentiment + Calendar 14.3%(n=20)Moving avg + Sentiment + Calendar 9.4%(n=20)Holt-Winters + Sentiment + Calendar 10.5%(n=20)Holt linear + Sentiment + Calendar 10.5%(n=20)WLS regression + Sentiment + Calendar 14.1%(n=20)Auto-ARIMA + Sentiment + Calendar 7.9%(n=20)Momentum-drift + Sentiment + Calendar 7.2%(n=20)AutoARIMA (StatsForecast) 10.7%(n=11)AutoETS (StatsForecast) 10.4%(n=11)Theta (StatsForecast) 11.7%(n=11)SeasonalNaive (StatsForecast) 30.6%(n=11)Prophet 18.6%(n=5)LinReg (Darts) 10.9%(n=19)Chronos-Bolt 8.5%(n=19)LightGBM (MLForecast) 10.4%(n=7)
FRED / IMF (global maize, proxy) · drift -5%/yr · vol 3%
Naive (drift) 2.9%(n=20)Seasonal naive 4.3%(n=20)Moving avg 4.2%(n=20)Holt-Winters 3%(n=20)Holt linear 3%(n=20)WLS regression 4.6%(n=20)Auto-ARIMA 2.9%(n=20)Momentum-drift 2.8%(n=20)Naive (drift) + Sentiment 2.9%(n=20)Seasonal naive + Sentiment 4.3%(n=20)Moving avg + Sentiment 4%(n=20)Holt-Winters + Sentiment 3%(n=20)Holt linear + Sentiment 3%(n=20)WLS regression + Sentiment 4.5%(n=20)Auto-ARIMA + Sentiment 2.9%(n=20)Momentum-drift + Sentiment 2.8%(n=20)Naive (drift) + Sentiment + Calendar 3.1%(n=20)Seasonal naive + Sentiment + Calendar 4.5%(n=20)Moving avg + Sentiment + Calendar 4.2%(n=20)Holt-Winters + Sentiment + Calendar 3.2%(n=20)Holt linear + Sentiment + Calendar 3.2%(n=20)WLS regression + Sentiment + Calendar 4.4%(n=20)Auto-ARIMA + Sentiment + Calendar 3.2%(n=20)Momentum-drift + Sentiment + Calendar 3%(n=20)AutoARIMA (StatsForecast) 3.3%(n=11)AutoETS (StatsForecast) 2.7%(n=11)Theta (StatsForecast) 2.8%(n=11)SeasonalNaive (StatsForecast) 4.7%(n=11)Prophet 4.6%(n=5)LinReg (Darts) 4.3%(n=19)Chronos-Bolt 3.3%(n=19)LightGBM (MLForecast) 3%(n=7)
FRED / BLS PPI (dairy proxy) · drift 6%/yr · vol 3%
Naive (drift) 1.1%(n=20)Seasonal naive 2.4%(n=20)Moving avg 1.7%(n=20)Holt-Winters 1.1%(n=20)Holt linear 1.1%(n=20)WLS regression 1.8%(n=20)Auto-ARIMA 1.1%(n=20)Momentum-drift 1%(n=20)Naive (drift) + Sentiment 1.1%(n=20)Seasonal naive + Sentiment 2.4%(n=20)Moving avg + Sentiment 1.7%(n=20)Holt-Winters + Sentiment 1.1%(n=20)Holt linear + Sentiment 1.1%(n=20)WLS regression + Sentiment 1.8%(n=20)Auto-ARIMA + Sentiment 1%(n=20)Momentum-drift + Sentiment 1%(n=20)Naive (drift) + Sentiment + Calendar 1.6%(n=20)Seasonal naive + Sentiment + Calendar 2.6%(n=20)Moving avg + Sentiment + Calendar 2.1%(n=20)Holt-Winters + Sentiment + Calendar 1.8%(n=20)Holt linear + Sentiment + Calendar 1.8%(n=20)WLS regression + Sentiment + Calendar 2.4%(n=20)Auto-ARIMA + Sentiment + Calendar 1.5%(n=20)Momentum-drift + Sentiment + Calendar 1.5%(n=20)AutoARIMA (StatsForecast) 1.5%(n=11)AutoETS (StatsForecast) 1.3%(n=11)Theta (StatsForecast) 1.3%(n=11)SeasonalNaive (StatsForecast) 4.3%(n=11)Prophet 2%(n=5)LinReg (Darts) 1.5%(n=19)Chronos-Bolt 1%(n=19)LightGBM (MLForecast) 1.3%(n=7)
FRED / BLS PPI (eggs proxy) · drift -1%/yr · vol 2%
Naive (drift) 31.3%(n=20)Seasonal naive 36.4%(n=20)Moving avg 27.6%(n=20)Holt-Winters 53.6%(n=20)Holt linear 53.6%(n=20)WLS regression 30.9%(n=20)Auto-ARIMA 29%(n=20)Momentum-drift 27.2%(n=20)Naive (drift) + Sentiment 31%(n=20)Seasonal naive + Sentiment 36.4%(n=20)Moving avg + Sentiment 27.6%(n=20)Holt-Winters + Sentiment 53.2%(n=20)Holt linear + Sentiment 53.2%(n=20)WLS regression + Sentiment 30.9%(n=20)Auto-ARIMA + Sentiment 28.7%(n=20)Momentum-drift + Sentiment 27.1%(n=20)Naive (drift) + Sentiment + Calendar 31%(n=20)Seasonal naive + Sentiment + Calendar 36.4%(n=20)Moving avg + Sentiment + Calendar 27.6%(n=20)Holt-Winters + Sentiment + Calendar 53.2%(n=20)Holt linear + Sentiment + Calendar 53.2%(n=20)WLS regression + Sentiment + Calendar 30.9%(n=20)Auto-ARIMA + Sentiment + Calendar 28.7%(n=20)Momentum-drift + Sentiment + Calendar 27.1%(n=20)AutoARIMA (StatsForecast) 35.5%(n=11)AutoETS (StatsForecast) 25.8%(n=11)Theta (StatsForecast) 26.9%(n=11)SeasonalNaive (StatsForecast) 51%(n=11)Prophet 41.2%(n=5)LinReg (Darts) 32.1%(n=19)Chronos-Bolt 26.8%(n=19)LightGBM (MLForecast) 345.4%(n=7)
FRED / IMF (global swine, proxy) · drift -3%/yr · vol 3%
Naive (drift) 4.9%(n=20)Seasonal naive 4.8%(n=20)Moving avg 5.8%(n=20)Holt-Winters 6.4%(n=20)Holt linear 6.4%(n=20)WLS regression 7.4%(n=20)Auto-ARIMA 4.6%(n=20)Momentum-drift 4.4%(n=20)Naive (drift) + Sentiment 4.9%(n=20)Seasonal naive + Sentiment 4.6%(n=20)Moving avg + Sentiment 5.6%(n=20)Holt-Winters + Sentiment 6.3%(n=20)Holt linear + Sentiment 6.3%(n=20)WLS regression + Sentiment 7.4%(n=20)Auto-ARIMA + Sentiment 4.4%(n=20)Momentum-drift + Sentiment 4.3%(n=20)Naive (drift) + Sentiment + Calendar 4.9%(n=20)Seasonal naive + Sentiment + Calendar 4.6%(n=20)Moving avg + Sentiment + Calendar 5.6%(n=20)Holt-Winters + Sentiment + Calendar 6.3%(n=20)Holt linear + Sentiment + Calendar 6.3%(n=20)WLS regression + Sentiment + Calendar 7.4%(n=20)Auto-ARIMA + Sentiment + Calendar 4.4%(n=20)Momentum-drift + Sentiment + Calendar 4.3%(n=20)AutoARIMA (StatsForecast) 6.8%(n=11)AutoETS (StatsForecast) 5.7%(n=11)Theta (StatsForecast) 6.5%(n=11)SeasonalNaive (StatsForecast) 9.2%(n=11)Prophet 11.2%(n=5)LinReg (Darts) 5.2%(n=19)Chronos-Bolt 4.5%(n=19)LightGBM (MLForecast) 4.8%(n=7)
FRED / IMF (global beef, proxy) · drift 4%/yr · vol 2.5%
Naive (drift) 1.5%(n=20)Seasonal naive 6.2%(n=20)Moving avg 2.1%(n=20)Holt-Winters 1.7%(n=20)Holt linear 1.7%(n=20)WLS regression 1.6%(n=20)Auto-ARIMA 1.5%(n=20)Momentum-drift 1.5%(n=20)Naive (drift) + Sentiment 1.4%(n=20)Seasonal naive + Sentiment 5.7%(n=20)Moving avg + Sentiment 1.8%(n=20)Holt-Winters + Sentiment 1.6%(n=20)Holt linear + Sentiment 1.6%(n=20)WLS regression + Sentiment 1.3%(n=20)Auto-ARIMA + Sentiment 1.4%(n=20)Momentum-drift + Sentiment 1.4%(n=20)Naive (drift) + Sentiment + Calendar 1.4%(n=20)Seasonal naive + Sentiment + Calendar 5.7%(n=20)Moving avg + Sentiment + Calendar 1.8%(n=20)Holt-Winters + Sentiment + Calendar 1.6%(n=20)Holt linear + Sentiment + Calendar 1.6%(n=20)WLS regression + Sentiment + Calendar 1.3%(n=20)Auto-ARIMA + Sentiment + Calendar 1.4%(n=20)Momentum-drift + Sentiment + Calendar 1.4%(n=20)AutoARIMA (StatsForecast) 1.9%(n=11)AutoETS (StatsForecast) 1.8%(n=11)Theta (StatsForecast) 1.8%(n=11)SeasonalNaive (StatsForecast) 16.8%(n=11)Prophet 1.4%(n=5)LinReg (Darts) 1.7%(n=19)Chronos-Bolt 2%(n=19)LightGBM (MLForecast) 2.1%(n=7)
FRED / BLS PPI (skim milk proxy) · drift -2%/yr · vol 2.5%
Naive (drift) 2.6%(n=20)Seasonal naive 3.8%(n=20)Moving avg 3.3%(n=20)Holt-Winters 3.2%(n=20)Holt linear 3.2%(n=20)WLS regression 3.3%(n=20)Auto-ARIMA 2.4%(n=20)Momentum-drift 2.5%(n=20)Naive (drift) + Sentiment 2.6%(n=20)Seasonal naive + Sentiment 3.6%(n=20)Moving avg + Sentiment 3%(n=20)Holt-Winters + Sentiment 3.2%(n=20)Holt linear + Sentiment 3.2%(n=20)WLS regression + Sentiment 3.2%(n=20)Auto-ARIMA + Sentiment 2.3%(n=20)Momentum-drift + Sentiment 2.5%(n=20)Naive (drift) + Sentiment + Calendar 2.6%(n=20)Seasonal naive + Sentiment + Calendar 3.6%(n=20)Moving avg + Sentiment + Calendar 3%(n=20)Holt-Winters + Sentiment + Calendar 3.2%(n=20)Holt linear + Sentiment + Calendar 3.2%(n=20)WLS regression + Sentiment + Calendar 3.1%(n=20)Auto-ARIMA + Sentiment + Calendar 2.1%(n=20)Momentum-drift + Sentiment + Calendar 2.6%(n=20)AutoARIMA (StatsForecast) 2.1%(n=11)AutoETS (StatsForecast) 2%(n=11)Theta (StatsForecast) 2.6%(n=11)SeasonalNaive (StatsForecast) 3.7%(n=11)Prophet 2.1%(n=5)LinReg (Darts) 3.8%(n=19)Chronos-Bolt 2.3%(n=19)LightGBM (MLForecast) 3.3%(n=7)
FRED / IMF (global soybean meal, proxy) · drift 2%/yr · vol 3%
Naive (drift) 6%(n=20)Seasonal naive 6.3%(n=20)Moving avg 6.3%(n=20)Holt-Winters 6%(n=20)Holt linear 6%(n=20)WLS regression 6%(n=20)Auto-ARIMA 6.4%(n=20)Momentum-drift 5.7%(n=20)Naive (drift) + Sentiment 5.8%(n=20)Seasonal naive + Sentiment 6.3%(n=20)Moving avg + Sentiment 6.2%(n=20)Holt-Winters + Sentiment 6%(n=20)Holt linear + Sentiment 6%(n=20)WLS regression + Sentiment 5.8%(n=20)Auto-ARIMA + Sentiment 6.3%(n=20)Momentum-drift + Sentiment 5.7%(n=20)Naive (drift) + Sentiment + Calendar 6.1%(n=20)Seasonal naive + Sentiment + Calendar 6.1%(n=20)Moving avg + Sentiment + Calendar 6.3%(n=20)Holt-Winters + Sentiment + Calendar 6.1%(n=20)Holt linear + Sentiment + Calendar 6.1%(n=20)WLS regression + Sentiment + Calendar 6.1%(n=20)Auto-ARIMA + Sentiment + Calendar 6.5%(n=20)Momentum-drift + Sentiment + Calendar 5.7%(n=20)AutoARIMA (StatsForecast) 8.8%(n=11)AutoETS (StatsForecast) 8.4%(n=11)Theta (StatsForecast) 7.5%(n=11)SeasonalNaive (StatsForecast) 12.7%(n=11)Prophet 13.4%(n=5)LinReg (Darts) 5.5%(n=19)Chronos-Bolt 5.5%(n=19)LightGBM (MLForecast) 13%(n=7)
FRED / BLS PPI (urea proxy) · drift -6%/yr · vol 4%
Naive (drift) 3.4%(n=20)Seasonal naive 13.2%(n=20)Moving avg 5.1%(n=20)Holt-Winters 3.3%(n=20)Holt linear 3.3%(n=20)WLS regression 5.3%(n=20)Auto-ARIMA 3.4%(n=20)Momentum-drift 3.2%(n=20)Naive (drift) + Sentiment 3.2%(n=20)Seasonal naive + Sentiment 12.7%(n=20)Moving avg + Sentiment 4.5%(n=20)Holt-Winters + Sentiment 3.2%(n=20)Holt linear + Sentiment 3.2%(n=20)WLS regression + Sentiment 5.1%(n=20)Auto-ARIMA + Sentiment 3.3%(n=20)Momentum-drift + Sentiment 3%(n=20)Naive (drift) + Sentiment + Calendar 3.2%(n=20)Seasonal naive + Sentiment + Calendar 12.7%(n=20)Moving avg + Sentiment + Calendar 4.5%(n=20)Holt-Winters + Sentiment + Calendar 3.2%(n=20)Holt linear + Sentiment + Calendar 3.2%(n=20)WLS regression + Sentiment + Calendar 5.1%(n=20)Auto-ARIMA + Sentiment + Calendar 3.3%(n=20)Momentum-drift + Sentiment + Calendar 3%(n=20)AutoARIMA (StatsForecast) 2.8%(n=11)AutoETS (StatsForecast) 3.6%(n=11)Theta (StatsForecast) 3.4%(n=11)SeasonalNaive (StatsForecast) 24.1%(n=11)Prophet 3.8%(n=5)LinReg (Darts) 3.4%(n=19)Chronos-Bolt 3.9%(n=19)LightGBM (MLForecast) 2.4%(n=7)
FRED / BLS PPI (fresh vegetables) · drift 2%/yr · vol 3%
Naive (drift) 15.5%(n=20)Seasonal naive 22.8%(n=20)Moving avg 14.3%(n=20)Holt-Winters 15.1%(n=20)Holt linear 15.1%(n=20)WLS regression 16.1%(n=20)Auto-ARIMA 15.3%(n=20)Momentum-drift 15.5%(n=20)Naive (drift) + Sentiment 15.3%(n=20)Seasonal naive + Sentiment 22.7%(n=20)Moving avg + Sentiment 13.9%(n=20)Holt-Winters + Sentiment 14.9%(n=20)Holt linear + Sentiment 14.9%(n=20)WLS regression + Sentiment 15.7%(n=20)Auto-ARIMA + Sentiment 15.1%(n=20)Momentum-drift + Sentiment 15.4%(n=20)Naive (drift) + Sentiment + Calendar 15.5%(n=20)Seasonal naive + Sentiment + Calendar 23.2%(n=20)Moving avg + Sentiment + Calendar 14.1%(n=20)Holt-Winters + Sentiment + Calendar 15.1%(n=20)Holt linear + Sentiment + Calendar 15.1%(n=20)WLS regression + Sentiment + Calendar 15.8%(n=20)Auto-ARIMA + Sentiment + Calendar 15.1%(n=20)Momentum-drift + Sentiment + Calendar 15.7%(n=20)AutoARIMA (StatsForecast) 18.1%(n=11)AutoETS (StatsForecast) 17%(n=11)Theta (StatsForecast) 18.1%(n=11)SeasonalNaive (StatsForecast) 20.2%(n=11)Prophet 21.5%(n=5)LinReg (Darts) 18.7%(n=19)Chronos-Bolt 15.1%(n=19)LightGBM (MLForecast) 24.1%(n=7)

Methodology

Each model predicts the price 1 month ahead using only the history observed up to that point — a walk-forward replay over the last 24 live FRED observations per benchmark, with no look-ahead leakage. Use the horizon toggle to compare 1, 2, and 3 months ahead; accuracy typically degrades at longer horizons as uncertainty compounds. Metrics: MAPE = mean absolute % error. Directional accuracy = share of months the predicted sign matched actual (±1% deadband). Band coverage = share of actuals inside the 95% band. Quarterly series and non-live benchmarks are excluded. n(shown on each model chip below, and as “Wins” sample size in the leaderboard) = the number of walk-forward months a model was actually evaluated over — this differs across the Python library models due to differing minimum-training requirements and, for Prophet, a reduced every-3rd-month cadence (an offline runtime constraint). A model with a lower MAPE over fewer months is not necessarily more accurate than one tested over more months — check n before comparing across libraries.

TS-nativeNaive (drift)TS-nativeSeasonal naiveTS-nativeMoving avgTS-nativeHolt-WintersTS-nativeHolt linearTS-nativeWLS regressionTS-nativeAuto-ARIMATS-nativeMomentum-driftTS-nativeNaive (drift) + SentimentTS-nativeSeasonal naive + SentimentTS-nativeMoving avg + SentimentTS-nativeHolt-Winters + SentimentTS-nativeHolt linear + SentimentTS-nativeWLS regression + SentimentTS-nativeAuto-ARIMA + SentimentTS-nativeMomentum-drift + SentimentTS-nativeNaive (drift) + Sentiment + CalendarTS-nativeSeasonal naive + Sentiment + CalendarTS-nativeMoving avg + Sentiment + CalendarTS-nativeHolt-Winters + Sentiment + CalendarTS-nativeHolt linear + Sentiment + CalendarTS-nativeWLS regression + Sentiment + CalendarTS-nativeAuto-ARIMA + Sentiment + CalendarTS-nativeMomentum-drift + Sentiment + CalendarStatsForecastAutoARIMA (StatsForecast)StatsForecastAutoETS (StatsForecast)StatsForecastTheta (StatsForecast)StatsForecastSeasonalNaive (StatsForecast)ProphetProphetDartsLinReg (Darts)ChronosChronos-BoltMLForecastLightGBM (MLForecast)