Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 21 additions & 9 deletions integration/src/policyengine_macro/jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,17 @@
"pe_population_impact",
)

# The longest a get_job_result call may block. The transport ceiling is 150s;
# this leaves room for request overhead so the poll itself never becomes the
# thing that times out.
MAX_WAIT_SECONDS = 120
# How long a get_job_result call blocks.
#
# The hard ceiling is 150s, but staying under it is not sufficient: measured
# end-to-end through a real Claude Code session, polls at 60-120s repeatedly
# hit transport timeouts and one Modal `InternalFailure: Server has lost track
# of input`, while 30s polls came back reliably. The flakiness scales with how
# long the connection is held open, not with how close it gets to 150s -- so
# the default is short, and a caller asking for a long block gets capped well
# below the ceiling rather than at it.
DEFAULT_WAIT_SECONDS = 30
MAX_WAIT_SECONDS = 60

_spawn: Callable[[str, dict], str] | None = None
_poll: Callable[[str, int], Any] | None = None
Expand Down Expand Up @@ -112,13 +119,15 @@ def start(tool: str, arguments: dict | None = None) -> dict:
"status": "running",
"next_step": (
f"Call get_job_result(job_id={job_id!r}). It blocks until the job "
f"finishes or up to wait_seconds (max {MAX_WAIT_SECONDS}); if it "
"returns status 'running', call it again with the same job_id."
f"finishes or up to wait_seconds (default {DEFAULT_WAIT_SECONDS}, "
f"max {MAX_WAIT_SECONDS}); if it returns status 'running', call it "
"again with the same job_id. Short polls are more reliable than "
"long ones -- prefer the default over asking for a long block."
),
}


def result(job_id: str, wait_seconds: int = 60) -> dict:
def result(job_id: str, wait_seconds: int = DEFAULT_WAIT_SECONDS) -> dict:
"""Poll a job. Blocks up to wait_seconds, then reports back either way."""
if not backend_available():
raise NoBackend(_NO_BACKEND_MESSAGE.format(tools=", ".join(JOB_TOOLS)))
Expand All @@ -132,7 +141,10 @@ def result(job_id: str, wait_seconds: int = 60) -> dict:
"waited_seconds": wait,
"next_step": (
"Not finished yet. Call get_job_result again with the same "
"job_id; a score_reform over the default five-year window "
"typically needs two or three polls."
"job_id -- polling repeatedly is expected and cheap. A "
"score_reform over the default five-year window typically needs "
"several polls. If a poll errors rather than returning, retry it: "
"the job keeps running regardless of what happens to the "
"connection watching it."
),
}
11 changes: 8 additions & 3 deletions integration/src/policyengine_macro/mcp_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,19 @@ def start_job(
def get_job_result(
job_id: Annotated[str, Field(description="Job id from start_job")],
wait_seconds: Annotated[
int, Field(description="Seconds to block waiting, max 120")
] = 60,
int, Field(description="Seconds to block waiting, max 60")
] = 30,
) -> dict:
"""Fetch a started job's result, waiting up to wait_seconds for it.

Returns status 'done' with the result, or status 'running' -- in which
case call again with the same job_id. A score_reform over the default
five-year window typically needs two or three polls.
five-year window typically needs several polls; that is expected.

Keep wait_seconds short. Long blocking polls hit transport timeouts far
more often than short ones, and a poll that errors is not a job that
failed -- the job runs on regardless of the connection watching it, so
just call again with the same job_id.
"""
return jobs.result(job_id, wait_seconds)

Expand Down
22 changes: 19 additions & 3 deletions integration/tests/test_jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,13 +128,29 @@ def test_unfinished_job_tells_the_caller_to_poll_again():
assert "again" in out["next_step"]


def test_wait_is_capped_below_the_transport_ceiling():
"""A poll that outlived the 150s ceiling would be the bug it works around."""
def test_wait_is_capped_well_below_the_transport_ceiling():
"""A poll that outlived the 150s ceiling would be the bug it works around.

The cap sits far below it, not just inside it. Measured end-to-end through
a real Claude Code session: polls at 60-120s repeatedly hit transport
timeouts and one Modal `InternalFailure: Server has lost track of input`,
while 30s polls came back reliably. The flakiness tracks how long the
connection is held open rather than how close it gets to 150s.
"""
seen = []
jobs.set_backend(lambda t, a: "fc-1", lambda j, w: (seen.append(w), (False, None))[1])
jobs.result("fc-1", wait_seconds=10_000)
assert seen == [jobs.MAX_WAIT_SECONDS]
assert jobs.MAX_WAIT_SECONDS < 150, "the cap must sit inside the ceiling"
assert jobs.MAX_WAIT_SECONDS <= 60, "long blocking polls are unreliable"
assert jobs.DEFAULT_WAIT_SECONDS <= 30, "the default poll must be short"


def test_default_wait_is_the_short_one():
"""Callers who pass nothing get the interval that actually works."""
seen = []
jobs.set_backend(lambda t, a: "fc-1", lambda j, w: (seen.append(w), (False, None))[1])
jobs.result("fc-1")
assert seen == [jobs.DEFAULT_WAIT_SECONDS]


def test_negative_wait_is_clamped_not_passed_through():
Expand Down
2 changes: 1 addition & 1 deletion integration/tests/test_remote_mcp.py
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@ async def test_score_reform_default_window_works_through_a_job():
out = None
while waited < deadline:
out = await asyncio.wait_for(
_call("get_job_result", {"job_id": job_id, "wait_seconds": 120}),
_call("get_job_result", {"job_id": job_id, "wait_seconds": 30}),
timeout=180,
)
if out["status"] == "done":
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-uk_bank_rate/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-uk_core_cpi_yoy/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-uk_cpi_yoy/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-uk_gilt_10y/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-uk_gilt_20y/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-uk_gilt_5y/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-uk_monthly_gva/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-uk_unemployment_rate/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-uk_vacancies/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-us_cpi/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down
1 change: 0 additions & 1 deletion notes/releases/2026-08-26-us_treasury_10y/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<nav class="nav-links" aria-label="Primary">
<a class="nav-mobile" href="/">Home</a>
<a class="nav-mobile" href="/models">Models</a>
<a class="nav-mobile" href="/economy">Economy</a>
<a class="nav-mobile" href="/forecasts">Forecasts</a>
<a class="nav-mobile nav-start" href="/connect">Use</a>
<a class="nav-gh" href="https://github.com/PolicyEngine/macro" aria-label="GitHub"><svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2c-.9 .9 -1.3 2 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5"/></svg></a>
Expand Down