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

Abierto
#224 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 9 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
34/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
github-actions, python
Área
backend, devops

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
HTML
Estrellas
3
Forks
0
Merge medio
8 d 15 h
PR fusionados (30 d)
1

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de PolicyEngine/macro

Todos los issues de PolicyEngine/macro

Issues similares

Más issues de Backend & API Design

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.