TimesFM 2.5 Integration Plan for CommodityNode

Goal

Add a second foundation-model forecasting track alongside Chronos-2, then surface a premium consensus forecast on CommodityNode commodity hubs.

Why add TimesFM 2.5

Phase 1 — Backend scaffolding

  1. Keep existing assets/data/forecast.json as the public/default forecast artifact for backward compatibility.
  2. Introduce model-specific artifacts:
    • assets/data/forecast-chronos2.json
    • assets/data/forecast-timesfm.json
  3. Introduce a consensus artifact:
    • assets/data/forecast-consensus.json
  4. Add a merger script that produces consensus + disagreement metadata.

Phase 2 — UI exposure

For flagship hubs, show:

Phase 3 — Editorial framing

Each forecast panel should explain:

Forecast artifact design

forecast-chronos2.json

Chronos-only output, close to current schema.

forecast-timesfm.json

TimesFM-only output, same shape as Chronos where possible.

forecast-consensus.json

Suggested schema per commodity:

{
  "crude_oil": {
    "updated_at": "2026-04-10T05:00:58.778599+00:00",
    "horizon_days": 90,
    "models": {
      "chronos2": {
        "direction": "bullish",
        "confidence": 0.58,
        "current_price": 98.35,
        "median": [],
        "p10": [],
        "p90": []
      },
      "timesfm": {
        "direction": "bullish",
        "confidence": 0.64,
        "current_price": 98.35,
        "median": [],
        "p10": [],
        "p90": []
      }
    },
    "consensus": {
      "direction": "bullish",
      "confidence": 0.61,
      "median": [],
      "p10": [],
      "p90": []
    },
    "agreement": {
      "level": "high",
      "score": 0.84,
      "direction_match": true,
      "median_gap_day_30_pct": 1.2,
      "median_gap_day_90_pct": 2.6
    }
  }
}

Median path

Band logic

Direction logic

Agreement score

Start simple:

UI recommendation

Main panel

Supporting chips

Premium microcopy

Implementation notes

Ralph implications

Ralph should later check:

Next coding tasks

  1. Add scripts/forecast_timesfm.py
  2. Add scripts/merge_forecasts.py
  3. Add new JSON outputs under assets/data/
  4. Update commodity frontend JS to read consensus first
  5. Add audit checks for new forecast surfaces