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: 13 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.3% avg MAPE

At 1 month ahead, Momentum-drift has the lowest mean error (6.3% MAPE across 14 benchmarks) and won 2/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.3%20.4%88.6%2/14280*
2
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*
3
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.4%28.8%84.3%3/15300
4
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.4%33.1%84%3/15300
5
Moving avgTS-native
Adaptive moving average — tries windows of 2/3/4/6 months and picks the best by in-sample error.
6.6%29.6%86.4%2/14280*
6
Auto-ARIMATS-native
Automatic ARIMA — tries AR orders 0-2 on differenced series, picks the best by AIC.
6.6%28.3%87.9%0/14280*
7
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.6%37.1%83.7%1/15300
8
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%83%4/15300
9
AutoETS (StatsForecast)StatsForecast
Automatic exponential smoothing (error/trend/seasonal).
6.6%0%87.7%3/14154*
10
Naive (drift)TS-native
Random walk with drift — predicts last price plus the average monthly change over the window.
6.7%30%86.4%0/14280*
11
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%39.1%82%3/15300
12
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).
6.8%30.3%81%2/15300
13
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.8%39.8%83%2/15300
14
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).
6.9%32.9%81%1/15300
15
Theta (StatsForecast)StatsForecast
Theta decomposition method.
6.9%0%81.8%0/14154*
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.1%37.1%78.9%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.2%41.9%74.7%0/15300
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.3%44.8%75.7%0/15300
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%39.2%80.3%1/15300
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%39.2%80.3%1/15300
23
Holt-WintersTS-native
Triple exponential smoothing — captures level, trend, and 12-month seasonality with grid-searched parameters.
8.8%33.1%85.4%0/14280*
24
Holt linearTS-native
Holt's linear trend method (level + slope), one-step ahead.
8.8%33.1%85.4%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%40.4%80%0/15300
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%40.4%80%0/15300
27
Seasonal naiveTS-native
Predicts the price from one cycle ago — tries both 6-month and 12-month cycles, picks the best.
9%18.8%75.4%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).
9.7%20%72.7%0/15300
29
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).
9.8%26.5%72.7%0/15300
30
ProphetProphet
Facebook Prophet — additive trend + seasonality with uncertainty. Walk-forward every 3rd month (offline run-time constraint).
10.1%36.3%70%0/1470*
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
12%10.1%6.3%16.2%16.2%10.3%11.4%10.2%11.7%10%6.3%16%16%10.1%11.3%10%12.1%10.1%6.5%16.6%16.6%10.5%11.5%10.3%7.8%7.8%8.1%10.6%10.2%7.5%7.1%14.1%
Australia Chilled Meat Export
Protein
2.7%6.7%4%3.6%3.6%5%2.8%2.7%2.7%6.3%3.8%3.5%3.5%5%2.8%2.6%3%6.4%4%3.7%3.7%5.1%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.6%3.4%3.2%3.8%3.8%5.9%3.9%2.9%3.3%3.3%3.2%3.7%3.7%5.2%3.6%2.9%3.6%3.2%3.3%3.8%3.8%5.5%3.9%3.1%1.7%1.8%2.7%8.8%4.3%3.6%2.9%3.6%
Brazil Chilled/Frozen Export
Protein
7.2%21.3%11%8.5%8.5%11.9%7.9%7.5%6.8%21.2%10.9%8.2%8.2%11.5%7.7%7%
Broiler Chicken (IMF Poultry Proxy)
Protein
1.6%2.5%1.7%1.9%1.9%1.9%1.5%1.4%1.5%2.5%1.7%1.9%1.9%1.9%1.4%1.4%1.5%2.5%1.7%1.9%1.9%1.9%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
8%14.9%9.2%8.3%8.3%11.9%7.6%7.4%7.7%14.9%9.2%8.3%8.3%11.6%7.4%7.4%7.8%14.9%9.4%8.5%8.5%12.2%7.5%7.4%10.7%10.4%11.7%30.6%18.6%10.9%8.5%10.4%
Corn (IMF Global Price)
Grains, Oilseeds & Fats
3.6%4.6%4.3%4.4%4.4%5.1%3.4%3.2%3.5%4.5%4.1%4.4%4.4%5%3.3%3.2%3.8%4.8%4.4%4.6%4.6%5%3.6%3.4%3.3%2.7%2.8%4.7%4.6%4.3%3.3%3%
Dairy Products Price Index (GDT Proxy)
Protein
1.2%2%1.6%1.2%1.2%1.6%1.1%1.1%1.2%2%1.6%1.2%1.2%1.6%1.1%1.1%1.7%2.3%1.8%1.6%1.6%2.1%1.5%1.6%1.5%1.3%1.3%4.3%2%1.5%1%1.3%
Egg Price Index (US PPI Proxy)
Protein
28%32.9%24.6%46.5%46.5%32.7%26.5%27.7%28%32.9%24.6%46.3%46.3%32.7%26.5%27.7%28%32.9%24.6%46.3%46.3%32.7%26.5%27.7%35.5%25.8%26.9%51%41.2%32.1%26.8%345.4%
Lean Hogs (IMF Swine Proxy)
Protein
4.9%5.9%6%6.7%6.7%7.5%4.4%4.6%4.9%5.8%5.8%6.6%6.6%7.5%4.3%4.6%4.9%5.8%5.8%6.6%6.6%7.5%4.3%4.6%6.8%5.7%6.5%9.2%11.2%5.2%4.5%4.8%
Live Cattle (IMF Beef Proxy)
Protein
1.4%6.1%2.1%1.6%1.6%1.8%1.4%1.4%1.3%5.7%1.7%1.5%1.5%1.4%1.3%1.3%1.3%5.7%1.7%1.5%1.5%1.4%1.3%1.3%1.9%1.8%1.8%16.8%1.4%1.7%2%2.1%
Skim Milk Powder (US PPI Proxy)
Protein
2.2%2.5%2.7%2.3%2.3%2.5%2.4%2.3%2.2%2.4%2.7%2.3%2.3%2.5%2.4%2.3%2.1%2.3%2.6%2.2%2.2%2.2%2.2%2.2%2.1%2%2.6%3.7%2.1%3.8%2.3%3.3%
Soybean Meal (IMF Global Price)
Grains, Oilseeds & Fats
7.1%6.2%6.3%9%9%7.3%7.8%5.9%6.9%6.2%6.3%8.9%8.9%7%7.6%5.8%7.3%6.1%6.3%9%9%7.5%7.9%5.9%8.8%8.4%7.5%12.7%13.4%5.5%5.5%13%
Urea / NPN (US PPI Proxy)
Feed Additives & Forage
2.9%9.6%4.1%3.2%3.2%3.8%3.1%2.8%2.7%9.1%3.7%3.1%3.1%3.6%2.8%2.6%2.7%9.1%3.7%3.1%3.1%3.6%2.8%2.6%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
14.9%19.2%16.4%14.6%14.6%15.7%15.8%15.2%14.8%19.2%16.2%14.5%14.5%15.4%15.7%15.2%15%19.7%16.2%14.7%14.7%15.4%16%15.4%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) 12%(n=20)Seasonal naive 10.1%(n=20)Moving avg 6.3%(n=20)Holt-Winters 16.2%(n=20)Holt linear 16.2%(n=20)WLS regression 10.3%(n=20)Auto-ARIMA 11.4%(n=20)Momentum-drift 10.2%(n=20)Naive (drift) + Sentiment 11.7%(n=20)Seasonal naive + Sentiment 10%(n=20)Moving avg + Sentiment 6.3%(n=20)Holt-Winters + Sentiment 16%(n=20)Holt linear + Sentiment 16%(n=20)WLS regression + Sentiment 10.1%(n=20)Auto-ARIMA + Sentiment 11.3%(n=20)Momentum-drift + Sentiment 10%(n=20)Naive (drift) + Sentiment + Calendar 12.1%(n=20)Seasonal naive + Sentiment + Calendar 10.1%(n=20)Moving avg + Sentiment + Calendar 6.5%(n=20)Holt-Winters + Sentiment + Calendar 16.6%(n=20)Holt linear + Sentiment + Calendar 16.6%(n=20)WLS regression + Sentiment + Calendar 10.5%(n=20)Auto-ARIMA + Sentiment + Calendar 11.5%(n=20)Momentum-drift + Sentiment + Calendar 10.3%(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 6.7%(n=20)Moving avg 4%(n=20)Holt-Winters 3.6%(n=20)Holt linear 3.6%(n=20)WLS regression 5%(n=20)Auto-ARIMA 2.8%(n=20)Momentum-drift 2.7%(n=20)Naive (drift) + Sentiment 2.7%(n=20)Seasonal naive + Sentiment 6.3%(n=20)Moving avg + Sentiment 3.8%(n=20)Holt-Winters + Sentiment 3.5%(n=20)Holt linear + Sentiment 3.5%(n=20)WLS regression + Sentiment 5%(n=20)Auto-ARIMA + Sentiment 2.8%(n=20)Momentum-drift + Sentiment 2.6%(n=20)Naive (drift) + Sentiment + Calendar 3%(n=20)Seasonal naive + Sentiment + Calendar 6.4%(n=20)Moving avg + Sentiment + Calendar 4%(n=20)Holt-Winters + Sentiment + Calendar 3.7%(n=20)Holt linear + Sentiment + Calendar 3.7%(n=20)WLS regression + Sentiment + Calendar 5.1%(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.6%(n=20)Seasonal naive 3.4%(n=20)Moving avg 3.2%(n=20)Holt-Winters 3.8%(n=20)Holt linear 3.8%(n=20)WLS regression 5.9%(n=20)Auto-ARIMA 3.9%(n=20)Momentum-drift 2.9%(n=20)Naive (drift) + Sentiment 3.3%(n=20)Seasonal naive + Sentiment 3.3%(n=20)Moving avg + Sentiment 3.2%(n=20)Holt-Winters + Sentiment 3.7%(n=20)Holt linear + Sentiment 3.7%(n=20)WLS regression + Sentiment 5.2%(n=20)Auto-ARIMA + Sentiment 3.6%(n=20)Momentum-drift + Sentiment 2.9%(n=20)Naive (drift) + Sentiment + Calendar 3.6%(n=20)Seasonal naive + Sentiment + Calendar 3.2%(n=20)Moving avg + Sentiment + Calendar 3.3%(n=20)Holt-Winters + Sentiment + Calendar 3.8%(n=20)Holt linear + Sentiment + Calendar 3.8%(n=20)WLS regression + Sentiment + Calendar 5.5%(n=20)Auto-ARIMA + Sentiment + Calendar 3.9%(n=20)Momentum-drift + Sentiment + Calendar 3.1%(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.2%(n=20)Seasonal naive + Sentiment 21.3%(n=20)Moving avg + Sentiment 11%(n=20)Holt-Winters + Sentiment 8.5%(n=20)Holt linear + Sentiment 8.5%(n=20)WLS regression + Sentiment 11.9%(n=20)Auto-ARIMA + Sentiment 7.9%(n=20)Momentum-drift + Sentiment 7.5%(n=20)Naive (drift) + Sentiment + Calendar 6.8%(n=20)Seasonal naive + Sentiment + Calendar 21.2%(n=20)Moving avg + Sentiment + Calendar 10.9%(n=20)Holt-Winters + Sentiment + Calendar 8.2%(n=20)Holt linear + Sentiment + Calendar 8.2%(n=20)WLS regression + Sentiment + Calendar 11.5%(n=20)Auto-ARIMA + Sentiment + Calendar 7.7%(n=20)Momentum-drift + Sentiment + Calendar 7%(n=20)
FRED / IMF (global poultry, proxy) · drift 3%/yr · vol 2%
Naive (drift) 1.6%(n=20)Seasonal naive 2.5%(n=20)Moving avg 1.7%(n=20)Holt-Winters 1.9%(n=20)Holt linear 1.9%(n=20)WLS regression 1.9%(n=20)Auto-ARIMA 1.5%(n=20)Momentum-drift 1.4%(n=20)Naive (drift) + Sentiment 1.5%(n=20)Seasonal naive + Sentiment 2.5%(n=20)Moving avg + Sentiment 1.7%(n=20)Holt-Winters + Sentiment 1.9%(n=20)Holt linear + Sentiment 1.9%(n=20)WLS regression + Sentiment 1.9%(n=20)Auto-ARIMA + Sentiment 1.4%(n=20)Momentum-drift + Sentiment 1.4%(n=20)Naive (drift) + Sentiment + Calendar 1.5%(n=20)Seasonal naive + Sentiment + Calendar 2.5%(n=20)Moving avg + Sentiment + Calendar 1.7%(n=20)Holt-Winters + Sentiment + Calendar 1.9%(n=20)Holt linear + Sentiment + Calendar 1.9%(n=20)WLS regression + Sentiment + Calendar 1.9%(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) 8%(n=20)Seasonal naive 14.9%(n=20)Moving avg 9.2%(n=20)Holt-Winters 8.3%(n=20)Holt linear 8.3%(n=20)WLS regression 11.9%(n=20)Auto-ARIMA 7.6%(n=20)Momentum-drift 7.4%(n=20)Naive (drift) + Sentiment 7.7%(n=20)Seasonal naive + Sentiment 14.9%(n=20)Moving avg + Sentiment 9.2%(n=20)Holt-Winters + Sentiment 8.3%(n=20)Holt linear + Sentiment 8.3%(n=20)WLS regression + Sentiment 11.6%(n=20)Auto-ARIMA + Sentiment 7.4%(n=20)Momentum-drift + Sentiment 7.4%(n=20)Naive (drift) + Sentiment + Calendar 7.8%(n=20)Seasonal naive + Sentiment + Calendar 14.9%(n=20)Moving avg + Sentiment + Calendar 9.4%(n=20)Holt-Winters + Sentiment + Calendar 8.5%(n=20)Holt linear + Sentiment + Calendar 8.5%(n=20)WLS regression + Sentiment + Calendar 12.2%(n=20)Auto-ARIMA + Sentiment + Calendar 7.5%(n=20)Momentum-drift + Sentiment + Calendar 7.4%(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) 3.6%(n=20)Seasonal naive 4.6%(n=20)Moving avg 4.3%(n=20)Holt-Winters 4.4%(n=20)Holt linear 4.4%(n=20)WLS regression 5.1%(n=20)Auto-ARIMA 3.4%(n=20)Momentum-drift 3.2%(n=20)Naive (drift) + Sentiment 3.5%(n=20)Seasonal naive + Sentiment 4.5%(n=20)Moving avg + Sentiment 4.1%(n=20)Holt-Winters + Sentiment 4.4%(n=20)Holt linear + Sentiment 4.4%(n=20)WLS regression + Sentiment 5%(n=20)Auto-ARIMA + Sentiment 3.3%(n=20)Momentum-drift + Sentiment 3.2%(n=20)Naive (drift) + Sentiment + Calendar 3.8%(n=20)Seasonal naive + Sentiment + Calendar 4.8%(n=20)Moving avg + Sentiment + Calendar 4.4%(n=20)Holt-Winters + Sentiment + Calendar 4.6%(n=20)Holt linear + Sentiment + Calendar 4.6%(n=20)WLS regression + Sentiment + Calendar 5%(n=20)Auto-ARIMA + Sentiment + Calendar 3.6%(n=20)Momentum-drift + Sentiment + Calendar 3.4%(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.2%(n=20)Seasonal naive 2%(n=20)Moving avg 1.6%(n=20)Holt-Winters 1.2%(n=20)Holt linear 1.2%(n=20)WLS regression 1.6%(n=20)Auto-ARIMA 1.1%(n=20)Momentum-drift 1.1%(n=20)Naive (drift) + Sentiment 1.2%(n=20)Seasonal naive + Sentiment 2%(n=20)Moving avg + Sentiment 1.6%(n=20)Holt-Winters + Sentiment 1.2%(n=20)Holt linear + Sentiment 1.2%(n=20)WLS regression + Sentiment 1.6%(n=20)Auto-ARIMA + Sentiment 1.1%(n=20)Momentum-drift + Sentiment 1.1%(n=20)Naive (drift) + Sentiment + Calendar 1.7%(n=20)Seasonal naive + Sentiment + Calendar 2.3%(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 2.1%(n=20)Auto-ARIMA + Sentiment + Calendar 1.5%(n=20)Momentum-drift + Sentiment + Calendar 1.6%(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) 28%(n=20)Seasonal naive 32.9%(n=20)Moving avg 24.6%(n=20)Holt-Winters 46.5%(n=20)Holt linear 46.5%(n=20)WLS regression 32.7%(n=20)Auto-ARIMA 26.5%(n=20)Momentum-drift 27.7%(n=20)Naive (drift) + Sentiment 28%(n=20)Seasonal naive + Sentiment 32.9%(n=20)Moving avg + Sentiment 24.6%(n=20)Holt-Winters + Sentiment 46.3%(n=20)Holt linear + Sentiment 46.3%(n=20)WLS regression + Sentiment 32.7%(n=20)Auto-ARIMA + Sentiment 26.5%(n=20)Momentum-drift + Sentiment 27.7%(n=20)Naive (drift) + Sentiment + Calendar 28%(n=20)Seasonal naive + Sentiment + Calendar 32.9%(n=20)Moving avg + Sentiment + Calendar 24.6%(n=20)Holt-Winters + Sentiment + Calendar 46.3%(n=20)Holt linear + Sentiment + Calendar 46.3%(n=20)WLS regression + Sentiment + Calendar 32.7%(n=20)Auto-ARIMA + Sentiment + Calendar 26.5%(n=20)Momentum-drift + Sentiment + Calendar 27.7%(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 5.9%(n=20)Moving avg 6%(n=20)Holt-Winters 6.7%(n=20)Holt linear 6.7%(n=20)WLS regression 7.5%(n=20)Auto-ARIMA 4.4%(n=20)Momentum-drift 4.6%(n=20)Naive (drift) + Sentiment 4.9%(n=20)Seasonal naive + Sentiment 5.8%(n=20)Moving avg + Sentiment 5.8%(n=20)Holt-Winters + Sentiment 6.6%(n=20)Holt linear + Sentiment 6.6%(n=20)WLS regression + Sentiment 7.5%(n=20)Auto-ARIMA + Sentiment 4.3%(n=20)Momentum-drift + Sentiment 4.6%(n=20)Naive (drift) + Sentiment + Calendar 4.9%(n=20)Seasonal naive + Sentiment + Calendar 5.8%(n=20)Moving avg + Sentiment + Calendar 5.8%(n=20)Holt-Winters + Sentiment + Calendar 6.6%(n=20)Holt linear + Sentiment + Calendar 6.6%(n=20)WLS regression + Sentiment + Calendar 7.5%(n=20)Auto-ARIMA + Sentiment + Calendar 4.3%(n=20)Momentum-drift + Sentiment + Calendar 4.6%(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.4%(n=20)Seasonal naive 6.1%(n=20)Moving avg 2.1%(n=20)Holt-Winters 1.6%(n=20)Holt linear 1.6%(n=20)WLS regression 1.8%(n=20)Auto-ARIMA 1.4%(n=20)Momentum-drift 1.4%(n=20)Naive (drift) + Sentiment 1.3%(n=20)Seasonal naive + Sentiment 5.7%(n=20)Moving avg + Sentiment 1.7%(n=20)Holt-Winters + Sentiment 1.5%(n=20)Holt linear + Sentiment 1.5%(n=20)WLS regression + Sentiment 1.4%(n=20)Auto-ARIMA + Sentiment 1.3%(n=20)Momentum-drift + Sentiment 1.3%(n=20)Naive (drift) + Sentiment + Calendar 1.3%(n=20)Seasonal naive + Sentiment + Calendar 5.7%(n=20)Moving avg + Sentiment + Calendar 1.7%(n=20)Holt-Winters + Sentiment + Calendar 1.5%(n=20)Holt linear + Sentiment + Calendar 1.5%(n=20)WLS regression + Sentiment + Calendar 1.4%(n=20)Auto-ARIMA + Sentiment + Calendar 1.3%(n=20)Momentum-drift + Sentiment + Calendar 1.3%(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.2%(n=20)Seasonal naive 2.5%(n=20)Moving avg 2.7%(n=20)Holt-Winters 2.3%(n=20)Holt linear 2.3%(n=20)WLS regression 2.5%(n=20)Auto-ARIMA 2.4%(n=20)Momentum-drift 2.3%(n=20)Naive (drift) + Sentiment 2.2%(n=20)Seasonal naive + Sentiment 2.4%(n=20)Moving avg + Sentiment 2.7%(n=20)Holt-Winters + Sentiment 2.3%(n=20)Holt linear + Sentiment 2.3%(n=20)WLS regression + Sentiment 2.5%(n=20)Auto-ARIMA + Sentiment 2.4%(n=20)Momentum-drift + Sentiment 2.3%(n=20)Naive (drift) + Sentiment + Calendar 2.1%(n=20)Seasonal naive + Sentiment + Calendar 2.3%(n=20)Moving avg + Sentiment + Calendar 2.6%(n=20)Holt-Winters + Sentiment + Calendar 2.2%(n=20)Holt linear + Sentiment + Calendar 2.2%(n=20)WLS regression + Sentiment + Calendar 2.2%(n=20)Auto-ARIMA + Sentiment + Calendar 2.2%(n=20)Momentum-drift + Sentiment + Calendar 2.2%(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) 7.1%(n=20)Seasonal naive 6.2%(n=20)Moving avg 6.3%(n=20)Holt-Winters 9%(n=20)Holt linear 9%(n=20)WLS regression 7.3%(n=20)Auto-ARIMA 7.8%(n=20)Momentum-drift 5.9%(n=20)Naive (drift) + Sentiment 6.9%(n=20)Seasonal naive + Sentiment 6.2%(n=20)Moving avg + Sentiment 6.3%(n=20)Holt-Winters + Sentiment 8.9%(n=20)Holt linear + Sentiment 8.9%(n=20)WLS regression + Sentiment 7%(n=20)Auto-ARIMA + Sentiment 7.6%(n=20)Momentum-drift + Sentiment 5.8%(n=20)Naive (drift) + Sentiment + Calendar 7.3%(n=20)Seasonal naive + Sentiment + Calendar 6.1%(n=20)Moving avg + Sentiment + Calendar 6.3%(n=20)Holt-Winters + Sentiment + Calendar 9%(n=20)Holt linear + Sentiment + Calendar 9%(n=20)WLS regression + Sentiment + Calendar 7.5%(n=20)Auto-ARIMA + Sentiment + Calendar 7.9%(n=20)Momentum-drift + Sentiment + Calendar 5.9%(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) 2.9%(n=20)Seasonal naive 9.6%(n=20)Moving avg 4.1%(n=20)Holt-Winters 3.2%(n=20)Holt linear 3.2%(n=20)WLS regression 3.8%(n=20)Auto-ARIMA 3.1%(n=20)Momentum-drift 2.8%(n=20)Naive (drift) + Sentiment 2.7%(n=20)Seasonal naive + Sentiment 9.1%(n=20)Moving avg + Sentiment 3.7%(n=20)Holt-Winters + Sentiment 3.1%(n=20)Holt linear + Sentiment 3.1%(n=20)WLS regression + Sentiment 3.6%(n=20)Auto-ARIMA + Sentiment 2.8%(n=20)Momentum-drift + Sentiment 2.6%(n=20)Naive (drift) + Sentiment + Calendar 2.7%(n=20)Seasonal naive + Sentiment + Calendar 9.1%(n=20)Moving avg + Sentiment + Calendar 3.7%(n=20)Holt-Winters + Sentiment + Calendar 3.1%(n=20)Holt linear + Sentiment + Calendar 3.1%(n=20)WLS regression + Sentiment + Calendar 3.6%(n=20)Auto-ARIMA + Sentiment + Calendar 2.8%(n=20)Momentum-drift + Sentiment + Calendar 2.6%(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) 14.9%(n=20)Seasonal naive 19.2%(n=20)Moving avg 16.4%(n=20)Holt-Winters 14.6%(n=20)Holt linear 14.6%(n=20)WLS regression 15.7%(n=20)Auto-ARIMA 15.8%(n=20)Momentum-drift 15.2%(n=20)Naive (drift) + Sentiment 14.8%(n=20)Seasonal naive + Sentiment 19.2%(n=20)Moving avg + Sentiment 16.2%(n=20)Holt-Winters + Sentiment 14.5%(n=20)Holt linear + Sentiment 14.5%(n=20)WLS regression + Sentiment 15.4%(n=20)Auto-ARIMA + Sentiment 15.7%(n=20)Momentum-drift + Sentiment 15.2%(n=20)Naive (drift) + Sentiment + Calendar 15%(n=20)Seasonal naive + Sentiment + Calendar 19.7%(n=20)Moving avg + Sentiment + Calendar 16.2%(n=20)Holt-Winters + Sentiment + Calendar 14.7%(n=20)Holt linear + Sentiment + Calendar 14.7%(n=20)WLS regression + Sentiment + Calendar 15.4%(n=20)Auto-ARIMA + Sentiment + Calendar 16%(n=20)Momentum-drift + Sentiment + Calendar 15.4%(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)