Skip to content

Cross-check validation against the current (2026) pyfrbus release - #1

Merged
vahid-ahmadi merged 1 commit into
mainfrom
validate-vs-2026-pyfrbus
Jul 18, 2026
Merged

Cross-check validation against the current (2026) pyfrbus release#1
vahid-ahmadi merged 1 commit into
mainfrom
validate-vs-2026-pyfrbus

Conversation

@vahid-ahmadi

Copy link
Copy Markdown
Contributor

Documentation only — no code or gate changes.

Our headline validation compares against the vendored pyfrbus 1.0.0 (2022-04-06). The Board now ships 1.1.1 (2026-02-05) with every module rewritten, including solver.py, newton.py and jacobian.py — the exact paths our cross-validation exercises. So the check was repeated against it to confirm the agreement isn't an artifact of one old release.

model.xml and LONGBASE are byte-identical between the two releases, so this isolates solver differences:

comparison (284 endos × 20 quarters) max abs max rel
ours vs pyfrbus 1.0.0 (committed reference) 6.0e-9 4.9e-8
ours vs pyfrbus 1.1.1 1.4e-8 1.8e-7
pyfrbus 1.1.1 vs pyfrbus 1.0.0 1.3e-8 1.3e-7

The third row is the point: the Fed's own two releases differ from each other by as much as we differ from either. All three residuals sit at solver-tolerance scale in the same near-zero series (wpsn, zgap05). 1.1.1 reuses its LU factorization across Newton iterations, recomputing only when the residual fails to halve — that changes the iterate path, not the fixed point.

On the tracking invariant, pyfrbus 1.1.1 reproduces LONGBASE to 1.1e-8; ours is 5.6e-17.

The committed reference stays on 1.0.0 so the gate keeps a fixed anchor. Existing gates (< 1e-6) pass comfortably against 1.1.1 output either way. Only the VAR path was exercised; 1.1.1's jacobian.py lead-substitution fix touches the MCE path, which we don't yet support.

Separately: the data package the Board's page labels "Updated: May 5, 2026" is byte-identical to our vendored April vintage (same SHA-256) — noted in vendor/README.md so nobody re-does that chase.

🤖 Generated with Claude Code

The vendored reference is pyfrbus 1.0.0 (2022). Repeating the shock comparison
against the Board's 1.1.1 (2026-02-05) gives 1.4e-8 max abs, while the Fed's own
two releases differ from each other by 1.3e-8 — our residual is the same scale as
the reference implementation's version-to-version noise. Tracking under 1.1.1 is
1.1e-8 vs our 5.6e-17.

Also records that the data package the Board labels 'Updated: May 5, 2026' is
byte-identical to the vendored April vintage.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vahid-ahmadi
vahid-ahmadi merged commit d30d188 into main Jul 18, 2026
3 checks passed
@vahid-ahmadi
vahid-ahmadi deleted the validate-vs-2026-pyfrbus branch July 18, 2026 17:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant