Nowcast can't archive a new round: the hosted forecast_uk is pinned to boe-var data ending 2026Q1

Aperta
#224 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 9 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
34/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
github-actions, python
Ambito
backend, devops

Direzione di ricerca

Read nowcast.py and the workflow that invokes it, then trace how it calls hosted forecast_uk and archives rounds. Check whether a cheap capabilities or metadata request can detect the hosted model's data edge before the expensive forecast call; the issue also reports a redirect failure in mcp/client/streamable_http.py. Done means avoiding forecast calls when no newer round is available and checking the endpoint on the first due run after #195 merges.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

data question

Problem

Even once the data store is refreshed (#195 via #221), the nowcast job cannot archive a new round. The round comes from forecast_uk on the hosted MCP server, and that model does not read macro's data store. It reads boe-var-model's bundled data/boe_var_data.csv at the commit pinned in pyproject.toml:

  • boe_var @ git+https://github.com/PolicyEngine/boe-var-model@42cbcbb…
  • at 42cbcbb (and on boe-var-model main, last data commit cf5fdf7 on 2026-07-20, "Refresh data vintage to 2026Q1 (#2)"), the last row of data/boe_var_data.csv is 2026Q1

So nowcast.py will stop with data edge 2026Q1 is already archived and nothing new has been released; no round written, as it did on 13 Aug (run 31670728758) and 19 Aug. The record has had no new round since 2026-07-29. The two archived boe-svar rounds, and the 07-28 unemployment satellite round, all have data edge 2026Q1.

There is also an unrelated crash: on 16 Sep (run 35058603658) the call itself failed with httpx.HTTPStatusError from mcp/client/streamable_http.py::_raise_for_unfollowed_redirect. That points to the Modal URL https://policyengine--policyengine-macro-mcp-serve.modal.run/mcp answering with a redirect. I have not re-tested it, to avoid starting a Modal container.

Upcoming releases a round could be archived ahead of

GDP 2026Q3 first estimate 12 Nov, unemployment 17 Nov, CPI 18 Nov (the next_release dates in #195's data).

Cost if nothing changes

Once #195 merges, --due 3 is true on 9–12 Nov and again on 14–18 Nov. On each of those days the job installs the MCP client and calls forecast_uk with 6000 draws, which takes about 5.5 minutes on a cold Modal container, only to be told "data edge 2026Q1 already archived". The same thing happened on 12–13 Aug and 17–19 Aug.

Options

  1. Refresh boe-var-model's data to 2026Q2 before 12 Nov: run scripts/download_data.py, re-pin macro's boe_var, and redeploy the MCP app. A round with a 2026Q2 edge that forecasts 2026Q3 is a scoreable claim for the 12/17/18 Nov releases only if it is archived before 07:00 on 12 Nov. That is a model-data change plus a deploy, so it needs you. A refresh after 12 Nov gives a 2026Q3 edge, which cannot be scored against these releases; its first scored period would be Q4 (February).
  2. Skip the November window. The existing rounds already cover 2026Q3–2029Q2 and will be scored as the outturns land. Stop the wasted Modal calls by also gating nowcast.py on the hosted model's data edge: a cheap capabilities/metadata call, or comparing against the last archived edge before calling forecast_uk. After that, make the boe-var data refresh a standing task right after each GDP first estimate, so the next round (edge 2026Q3, archived before the February releases) is in place.
  3. Either way: after #195 merges, look at the first due run to check the endpoint no longer redirects (16 Sep crash).

Recommendation: option 2 now, without the gate the job will spend roughly 9 cold Modal calls in November for nothing. Choose option 1 only if you can refresh, re-pin and deploy calmly by 11 Nov.

Lingua principale
HTML
Stelle
3
Fork
0
Merge medio
8g 15h
PR unite (30g)
1

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PolicyEngine/macro

Tutte le issue di PolicyEngine/macro

Issue simili

Altre issue su Backend & API Design

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.