Repository navigation
Redesign the static site: Autumn Budget look, one fact per home, readable layouts - #200
Merged
Merged
Conversation
The generator template now follows DESIGN.md §7.7: title band without the value, a single stat tile (observation and change on the prior one) linking to the series' topic page, the provenance list with publisher and snapshot chips, and a where-next row (topic page, data store, forecast record). No .grain, no hard-coded nav, no ordinal eyebrows. --rebuild rewrites every committed note from its own snapshot, and --check now also fails on a note that no longer matches the template, so the 53 pages cannot drift. site_nav.where_next() is the shared row. The hand-written CPI note gets the same where-next row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ch fact once /forecasts, /forecasts/us, /economy and /economy/us get an "On this page" rail and a where-next row; eyebrows lose their ordinals and the title bands their reveal hooks; the /forecasts lede is cut to the record's rule. The record counts are a stat row from forecasts/score.py (the home of those numbers; the duplicate 'next due' line is folded into the tile). Topic pages (economy/topics.py): readings are stat tiles, the lede names the series instead of restating them, the model prose points at the forecast table rather than quoting its first row, the validation callout keeps the verdict in words and links to the figures, and every page ends with where next. The hub topic lists show each topic's question, not its reading, and the trend note no longer restates the CPI print. No .grain. The /forecasts 375 px overflow was the as-of recipe that data/build_page.py emitted outside a code block; it is a .codeblock now. The coverage limit links to its numbers on /svar/validation instead of restating them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
chartkit.tick_plan picks about seven quarter labels on a wide fan and three on a narrow one, so the 13-quarter CPI and the unemployment fans on /forecasts no longer stack labels. site_nav.render() takes an optional source, so generate_release_notes.py --check renders each note from its template without writing to the committed page. The OG-UK runtime chart sizes its viewBox to the content box (labels now exactly 12 px), the hank-targets miss uses a true minus sign, and an unused literal-colour rule is gone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nav-h header contract The phase-2 tab lede dropped the current-vintage phrase the site contract asks for; it is back in the lede (one sentence, within the §5 limit). The 112px assertion pinned the two-row mobile header from #70. The redesign replaced it with a single --nav-h band whose view tabs scroll inside themselves (DESIGN.md §2.4, §3.1), so the literal no longer applies. The test now checks the same intent against the new shell: the header height and every sticky offset read --nav-h, the tab row contains its own overflow, and none of the old hard-coded 112/129/172px offsets survive. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…esting /forecasts#limits called Bank Rate 'the only robust win'. The boe-svar evaluation (papers/boe-svar/figures/rolling_evaluation.json) says otherwise: against the drifting random walk Bank Rate is 0.793 at h=1 with DM p=0.018, but its Benjamini-Hochberg q is 0.362 and none of the 64 variable x horizon tests clears q<0.10 (min q 0.362; production spec 0.401). The sentence now matches that and links to its home on /svar/validation#forecasters without restating the figures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, short ledes - reveal.js labels each cell of a word-heavy table from its column head and marks it .t-stack; below 640px each row becomes a card instead of a 720px side-scroll. Numeric grids and long registers (>20 rows) keep the scroller. data-stack=yes/no overrides; without JS every table scrolls. - Sub-tab rows, table scrollers and method diagrams fade on the edge that hides content; the chosen sub-tab is scrolled into view on load. Model tab rows fit at 375px (8px tab padding under 400px). - The hand-drawn methodology diagrams on all seven models rendered labels at ~5px on a phone (§1.8). Their 10px text is now 11px and below 640px the diagram keeps its 580px width and scrolls inside its figure. - /forecasts#run: one-line lead; the two engine paragraphs move into an About expander (generator: economy/topics.py), unchanged. - Ledes cut to the §5 limit on /economy, /economy/us, /forecasts/us and the DEFINE-UK replication report (every caveat kept). The /economy/us forecast note moves from the title band into an intro card under the sub-tabs. Topic ledes keep proper nouns (Bank Rate, UK, CPI) instead of lower-casing them. The topics cards on both hubs lead with one sentence. - /models and /connect mark their first sub-tab before the first section is reached; /notes/releases gains its where-next row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…N.md §4.12) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Checked every methodology diagram at 1440 after the 10 to 11px bump. - define: the multiplier diagram is 640 units wide so its two bar labels no longer run off the edge (they clipped before the bump too); the clean-room footnote is reworded to fit (same facts, same numbers). - svar: the outputs box is wider; '+ 2 unidentified (residual volatility)' wraps to two lines; the zero-restriction line is shortened to fit. - obr, frb-us: the 'converged' arrow label between two boxes is now 'done'. - On phones a diagram uses its own width attribute, not a fixed 580px. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…epeated tabs Overview gains a model card sourced from capabilities.py (pinned by a new site-contract test). Methodology drops the panel-less fourth step that restated the Overview join. Validation swaps two padding tiles for the executable check and names the test behind it. Code drops the 'what it can answer' table that duplicated the Overview, adds the missing step-1 panel with runnable CLI commands and a reproduce step. Paper landing states the claim in words and links the numbers instead of restating them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… becomes a router - Header views: Home, Forecasts, Models, Use (site_nav.DESTINATIONS); shell rewritten on all 110 pages with site_nav.py --write. - Paper and replication-report crumbs run through their model (Home / Models / OBR emulator / Paper). - Home: reader router replaces "Three ways in"; one trust card with all seven verdicts in words (the duplicate verdict list under the map is gone); a dedicated forecast-record card (method steps, the scored period in words, links to /forecasts, no restated counts); phone question list under the map; joins shrunk to pipeline strips linking /models#compose (the StepPanel restated it line for line); dead glance-tab script removed. - /models: "Which model" router framing, no-model-answers callout and recommend_model; Compare moved before Combine and unclamped (it showed one row); comparison heads no longer break mid-word, ids at 12 px; a four-entry verification-class glossary (#classes). - DESIGN.md 3.1, 3.2, 3.4, 4.9, 7.1, 7.2 updated to match. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, fold release notes into daily digests - ingest_outturns.py had no unemployment mapping, so the satellite's 2026Q2 outturn (MGSX 4.9, vintage 2026-08-26) sat in data/latest unscored. Mapped, ingested, scored: outside its 90% band, smaller error than no change. Test added so every forecast variable must map to a series. - score.py: scoreboard table is the home of every scored number, with the archived band, the outturn's immutable snapshot link, the no-change baseline and every stored published path (BoE Feb MPR, OBR Mar EFO, BoE SEF Apr) for that quarter. Fixes the 'Inside outside 90% band' label. - Outturn dots on the open-round fans; status tile says when the store was last updated instead of 'lands when the ONS publishes it'. - /forecasts: title is the record, not reform scoring; new 'How we score' card states the six rules and describes the hindsight test as the code runs it (by snapshot date, not release time). Order: record, scoreboard, rules, open rounds, archive, limits, data, platform, notes. - Release notes: 53 per-series pages -> 8 per-date digests with a new-observation / revision / no-change column; Bank Rate printed 3.8%, now the stored 3.75%. Redirect /notes/releases/<date>-<series> -> /notes/releases/<date>#<series> needed (vercel.json, coordinator). - test_site_integrity discovery floor 70 -> 60: the site has 65 pages now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nt home Overview gains a registry-sourced model card; the bridge mechanics and the direct-lever expander now live once (Methodology step 6, Code step 4), and the worked example links the microsimulation's yield instead of restating it. Validation promotes the forecast-vs-outturn backtest to a step of its own (the only test against reality), moves the HMRC comparison of the microsim's costing behind an expander that links its home on /pe/validation, moves the anchored-horizon figures from Methodology into the configuration table, adds the income-tax profile limit from the paper, and drops a clause that attributed superseded 2.2%/3.6% figures to the paper. Code flags LFSUR and IF as non-responding readouts and adds the score_reform and compare routes. Paper landing gains status chips, a one-line claim and the section list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e store missed - /economy and /economy/us repeated the store's series list and release calendar (DESIGN.md §7.0 makes /forecasts#data their home). Both hubs now carry one provenance card linking to it; the old #indicators, #markets and #releases anchors land on that card. - Store calendar: missing 'Store id' header fixed (rows had four cells, head three), plus a status column computed from the store's own last fetch: the 13 August GDP release has passed and is not in the store. - Inflation topic said the round 'starts at 2026Q3' over a table that began at 2026Q2; both topic tables now start at the first quarter without an outturn. - Growth topic said rounds are scored 'against the vintage it was made on'; scoring uses the outturn as published, with its snapshot recorded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…unnable code Overview gains a registry-sourced model card and shows all six 2026Q1 shock probabilities from latest_shocks.json (it showed four). The incidence worked example keeps its mechanism but drops the 0.94pp and £0.09bn figures, which have no committed artifact (only a commit message). The sources table moves from the Overview expander to Methodology, replacing a card that only pointed back at it. Validation keeps the satellite's skill result and links its specification, and folds the cited OBR/external forecaster table into the diagnostics expander. Code adds the missing step-1 panel, the fourth hosted tool, draw/runtime guidance and a Python route. Paper landing states the claim in words, keeps the current-forecast window, and lists the sections. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Overview of frb-us, us-hank, olg and define opens on a model card (answers, horizon, inputs, outputs, join, cannot answer, access, runtime, vintage, uncertainty) copied from capabilities.py MODELS, with the verdict. - Validation tabs gain a trust card: the six MODEL_QUALITY levels and what would change each, never shown on the site before. - Each fact once: the FRB/US 100bp response and multipliers live on Validation; Methodology and the paper ledes link instead of restating. - FRB/US worked-shock comparators corrected to the paper's comparison table (no published GDP figure; core inflation vs about -0.08pp); the two multiplier cells only the paper carried are added; duplicate id fixed; the core PCE miss moves into the limits table. - OLG: cohort ages corrected to 20-99 (papers/psl-og); the five structural limits and the og+microsim overlay limits move into the limits table; showcase table emits U+2212. - DEFINE: one h1 across tabs, a full limits table, duplicates trimmed. - Eyebrows carry id, country, access and horizon; report kickers drop ordinals; HANK Code lists all three MCP tools. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…omes 'Track record' - /forecasts/us: title and first card are why there is no US record, then what a record takes, the LONGBASE baseline, and the US routes. The 'what exists today' card only repeated the where-next row. Its pointer to the baseline now names the three topic pages that show it. - economy/topics.py: the section strip's first tab is 'Track record', the name a forecaster's reader looks for. DESIGN.md §3.4, §7.5 and §7.7 updated to the scoreboard, the rules card and the release digests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ted from its lede Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…RB/US vintage row no longer repeats the card Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g dot strip; /connect as a developer page - chartkit: unit= line above the plot, endlabel() direct labels - make_charts: fix dashed-official misuse (anchored, freerun, coverage), ONS outturn as dots, interpolated bar as outline (flag in chart_data.json, no value changed), frb-us residuals as a dot strip on a log axis, units on every chart, phone tick crowding - make_current_outlooks: OBR outlook roles, unit lines - style.css r2:charts-use section: label halo, new chart classes - DESIGN.md 6.1/6.2/7.8 updated for the above - /connect: Tools and Limits cards sourced from integration/, hosted and local Python scripts, job pattern for slow tools; /contact headings simplified Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The /economy series index removed in dd73587 was the only place showing the publisher's release date (release_updated) and the series-to-topic map. Both are now rows in the store catalogue on /forecasts#data, their one home. The scorecard status string counts forecasts and periods separately (it said '2 forecast period(s)' for two variables in one period); README names the stored published-path benchmarks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…egrate # Conflicts: # style.css
…egrate # Conflicts: # style.css
…tegrate # Conflicts: # obr/validation/index.html # style.css
… rounds Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…egrate # Conflicts: # notes/releases/2026-07-29-uk_bank_rate/index.html # notes/releases/2026-07-29-uk_gilt_10y/index.html # notes/releases/2026-07-29-uk_gilt_20y/index.html # notes/releases/2026-07-29-uk_gilt_5y/index.html # notes/releases/2026-07-29-us_treasury_10y/index.html # notes/releases/2026-08-04-uk_bank_rate/index.html # notes/releases/2026-08-04-uk_gilt_10y/index.html # notes/releases/2026-08-04-uk_gilt_20y/index.html # notes/releases/2026-08-04-uk_gilt_5y/index.html # notes/releases/2026-08-04-us_federal_funds_rate/index.html # notes/releases/2026-08-04-us_real_gdp/index.html # notes/releases/2026-08-04-us_treasury_10y/index.html # notes/releases/2026-08-05-uk_bank_rate/index.html # notes/releases/2026-08-05-uk_gilt_10y/index.html # notes/releases/2026-08-05-uk_gilt_20y/index.html # notes/releases/2026-08-05-uk_gilt_5y/index.html # notes/releases/2026-08-05-us_treasury_10y/index.html # notes/releases/2026-08-06-uk_bank_rate/index.html # notes/releases/2026-08-06-uk_gilt_10y/index.html # notes/releases/2026-08-06-uk_gilt_20y/index.html # notes/releases/2026-08-06-uk_gilt_5y/index.html # notes/releases/2026-08-06-us_treasury_10y/index.html # notes/releases/2026-08-07-uk_bank_rate/index.html # notes/releases/2026-08-07-uk_gilt_10y/index.html # notes/releases/2026-08-07-uk_gilt_20y/index.html # notes/releases/2026-08-07-uk_gilt_5y/index.html # notes/releases/2026-08-07-us_treasury_10y/index.html # notes/releases/2026-08-10-uk_bank_rate/index.html # notes/releases/2026-08-10-uk_gilt_10y/index.html # notes/releases/2026-08-10-uk_gilt_20y/index.html # notes/releases/2026-08-10-uk_gilt_5y/index.html # notes/releases/2026-08-10-us_payroll_employment/index.html # notes/releases/2026-08-10-us_treasury_10y/index.html # notes/releases/2026-08-10-us_unemployment_rate/index.html # notes/releases/2026-08-12-uk_bank_rate/index.html # notes/releases/2026-08-12-uk_gilt_10y/index.html # notes/releases/2026-08-12-uk_gilt_20y/index.html # notes/releases/2026-08-12-uk_gilt_5y/index.html # notes/releases/2026-08-12-us_treasury_10y/index.html # notes/releases/2026-08-26-uk_average_weekly_earnings/index.html # notes/releases/2026-08-26-uk_bank_rate/index.html # notes/releases/2026-08-26-uk_core_cpi_yoy/index.html # notes/releases/2026-08-26-uk_cpi_yoy/index.html # notes/releases/2026-08-26-uk_gilt_10y/index.html # notes/releases/2026-08-26-uk_gilt_20y/index.html # notes/releases/2026-08-26-uk_gilt_5y/index.html # notes/releases/2026-08-26-uk_monthly_gva/index.html # notes/releases/2026-08-26-uk_public_sector_net_borrowing/index.html # notes/releases/2026-08-26-uk_public_sector_net_debt_gdp/index.html # notes/releases/2026-08-26-uk_unemployment_rate/index.html # notes/releases/2026-08-26-uk_vacancies/index.html # notes/releases/2026-08-26-us_cpi/index.html # notes/releases/2026-08-26-us_treasury_10y/index.html # style.css
…est anchors, bump the stylesheet Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, neutral verdict tone, global CSS fixes - Model card: the US two-column dl.model-card on all seven Overviews, in section#card under the verdict, one field order (DESIGN.md 4.13). UK Access/Runtime split at the existing middot; US cards gain the registry Status verbatim. Values unchanged. Test extended to all seven (order, Status verbatim, Horizon quoted). - Trust card on pe, obr, svar Validation from MODEL_QUALITY (levels and next gates verbatim); new test checks all seven levels against the registry. - Verdict callouts use the default brand tone; warn stays for caveats. Homepage .scored-verdict loses its rust rule. - StepPanel steps lose the 70vh min-height (stepper.js activates the last step at page end); code tabs lose the 45vh tail. - .vc-legend styled outside .vc-fig (sb-legend folded in); zero-specificity table baseline in cards; base 10px comparison-table id span removed; model map switches to the list below 1000px and its legend is 12px. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…--write Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
…refresh run Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Models: 'Same question, every model' comparison view (/models/compare)
Weekly drift check: hosted model output vs the numbers the site quotes
Decision needed (#218): bump the hosted OBR pin to obr-macroeconomic-model main (e4d7faa)
r5 UI: question router on /models, copy-paste /connect, glossary, home and contact
BoE SVAR: label replication figures with their run vintage (boe-var-model 845e2a4) — option (a) for boe-var-model #24
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Model pages: one-column methodology, one overview order, names not ids
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Round 5 ui-data: forecast-evaluation scoreboard with full-height rail, flat archive, chart units and sources
…date Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
BoE SVAR: replication figures to 2026Q2 data — merge only if boe-var-model #24 merges (option b)
…arios Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Integration layer: scenario sweep fixes (fiscal-year OBR window, SVAR simple y/y, units, fail-fast validation)
vahid-ahmadi
marked this pull request as ready for review
November 10, 2026 16:56
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR redesigns the whole site in the style of the Autumn Budget 2026 and tourism dashboards: a dark teal header band with four views, a teal title band on every page, a sticky white sub-tab row, then white cards on a grey canvas. Each card has a short title, a one-line lede, the figure or table, and the long explanation behind an expander. The two-sided step panel (numbered steps on the left, sticky figures on the right) remains the main layout for model Overview, Methodology, Validation and Code tabs.
DESIGN.mdis the binding spec. URLs, numbers and data are unchanged; generated pages were changed through their generators and regenerated.By page type
--nav-h. The stylesheet cache buster is now 10.site_nav.SUBTABS./stepper.jsreplaces the inline copies.chartkit.py), so they render at 12 px at any width. Ours is solid, the official series is dashed, legends are in HTML, and zero lines are drawn./forecasts.--rebuild./connectis an MCP → CLI → Python step panel./contactis a single card.Phase 4 (QA) changes
/forecastsmoved, unchanged, into an About expander. Ledes over 40 words were cut to the limit with every caveat kept:/economy,/economy/us,/forecasts/usand the DEFINE-UK replication report. The/economy/us"no US forecast" note moved from the title band into an intro card. Topic ledes keep proper nouns ("official Bank Rate", "UK nominal par yield") instead of lower-casing them. On/economyand/economy/us, the meta paragraph at the top of the topics card ("The rest of this site is organised by model…") was replaced by one sentence. It held no caveat or number, so it was removed rather than hidden./forecasts#limitssaid Bank Rate was "the only robust win".papers/boe-svar/figures/rolling_evaluation.jsoncontradicts that. Against a drifting random walk, Bank Rate scores 0.793 at h=1 with DM p=0.018. Its Benjamini–Hochberg q is 0.362, and none of the 64 variable × horizon tests reaches q < 0.10 (minimum q is 0.362, or 0.401 on the production spec). The sentence now says Bank Rate comes closest and no gain survives correction for the number of tests run. It links to/svar/validation#forecastersand does not restate the figures./modelsand/connectmark their first sub-tab before the first section is reached./notes/releasesgained its "where next" row. The OBR paper lede names the March 2026 EFO baseline again.Round 2 (tab-by-tab economist and designer review, five areas)
/modelsis a router.vercel.jsonto its digest anchor.Round 3 (layout and density)
/modelscomparison table is transposed to five columns.Screenshots (before → after)
Full-page shots at 1440 and 375 px were taken for home,
/obr,/obr/validation,/models,/forecasts,/economy, a release digest and/svar/validation, before (origin/main) and after (this branch). They were reviewed locally and are not attached. What changes, page by page:/obr). Before: slogan h1, 100–150-word paragraphs, a step panel whose right side was empty after step 1. After: model name h1, a model card, short steps with a figure per step, detail in expanders./obr/validation,/svar/validation). After: a stat row as the home of each headline number, the tests as rows, a limits card that keeps every failure statement./models. Before: an eight-column comparison table clipped at 1440. After: five columns, models as rows./forecasts. After: the scoreboard is the full-width lead card; limits are label/value rows.Content flags (published record or wording that changed, beyond layout)
/forecasts(it was never scored before). It falls outside the archived 90% band, with a smaller error than no change.papers/boe-svar/figures/rolling_evaluation.json).papers/frb-us/sections/comparison.tex(no published GDP figure; core inflation −0.034pp vs ≈−0.08pp). The Methodology claim that both multipliers sit inside published ranges was removed (the pegged year-2 0.90 is below 1.1–1.2).papers/psl-og/sections/calibration.tex)./models#score: "GDP −0.02% on impact building to −0.06%" deleted (see decision 1).Not in this PR, for Vahid: data PR #195 has been open since 27 Aug and adds 20 per-series notes from the old generator, which conflicts with the digests;
fetch-vintages.ymlnever runs ingest or score, so the record stays stalled at 26 Aug.Round 5: correctness pass from the 5 Nov model-repo reviews
Each change cites its repo source in the commit message. Numbers changed (old → new):
/frb-us/validationlimitsbacktests/longbase_vs_outturns.md, fix in PolicyEngine/us-frb-model#10 (LONGBASE now compounded like the outturn)/frb-us/validationlimits/svar/validationcoverageresults/coverage_evaluation.jsonproduction_spec/olgshowcase/obr/validationtiletests/test_model_invariants.py:910-962Wording withdrawn or corrected (no number changed):
/define/validation, the replication report and the paper (calibration.tex,limitations.tex, PDF rebuilt). In the cached run social benefits rise (+8.0 of 118.2), so the bias direction is not established. The withdrawn IMF 1.1–1.5 band is gone from the methodology diagram and the kv rows, and the label "DEFINE-UK 1.78" now reads "1.78, to 2040 (our computation)". Source: Correct the multiplier caveat, state units, gate stock-flow consistency, and sweep every cached scenario define-uk-model#15.OAHHxis described as an asset stock, not "other income". Source: Fix lagged ONS formulas, employment seed units and out-of-window shocks; correct the profits explanation obr-macroeconomic-model#48.make_charts.py, regenerated).hank_summaryframing and MCP docstrings) says that only the steady state is validated and IRF magnitudes are not. "Realistic distribution" and "response concentrating among high-MPC households" now say the distribution is calibrated (about 54% hand-to-mouth vs about one third in US data) and that the by-wealth split is an MPC-proportional allocation. Source: Review fixes, scenario sweep tests, pinned G-shock and MPC figures us-hank-model#4 README.Backend:
obr_shockpassesend= max(2027Q4, last shocked quarter) torun_reform, and the periods cap goes 40 → 25 (the databank ends 2031Q1). Before this,periods=20reported a 12-quarter cumulative as a 20-quarter one. The new tests fail on the oldcore.py. No real solve past 2027Q4 was run locally.Decisions for Vahid
/models#score. We deleted "GDP −0.02% on impact building to −0.06%". It is a per-quarter percentage and conflicts with the ratio framing on/obr/validation. Restore it with a units note, or leave it out?Kept duplicates.
/obr#answers,/obr/validation,/pe/validationand the pe chart.Keep these, or reduce each to one home?
Word-valued stat tiles. The olg, us-hank and define tiles hold words ("none", "anchors", "1 row"). Keep them as tiles, or turn them into callouts?
Same forecast twice. The hero fan on the home page and the boe-svar Overview outlook chart plot the same forecast. Keep both, or replace one with a link?
/economytrend figures. They no longer show the latest value, which now lives on the topic pages. Is that acceptable?DEFINE diagram label. Resolved in round 5: the label now reads "1.78, to 2040 (our computation)" and the withdrawn IMF band is gone.
Site-contract test change. In
test_site_contract.py, themin-height: 112pxassertion was replaced. It pinned the two-row mobile header from Fix platform audit findings #70, which the single--nav-hband replaces (DESIGN §2.4, §3.1). The test now checks the same intent on the new shell:--nav-h;Is that acceptable as the new contract?
Method diagrams. On a phone they use a native-width scroller with a fade instead of the chartkit HTML-label overlay. Converting them to the overlay is a larger rewrite of 40 hand-drawn SVGs. Accept the scroller, or schedule the rewrite?
Table stacking needs JS.
reveal.jsdecides which tables become cards on a phone, using a word-heavy heuristic with adata-stackoverride. Without JS every table scrolls. Accept, or writedata-labelinto the markup and generators instead?Paper and report landings restate Validation figures. The
/papers/boe-svarresult paragraph repeats 0.32pp and the smallest adjusted q of 0.36./papers/define-ukand/reports/define-uk-replicationrepeat 4.66% and 1.78. These are each paper's own summary, so they were left alone. Keep them, or link to Validation?Step-panel spacing. Each step is at least 70vh tall so the sticky panel can follow along. This leaves a large blank stretch after short steps, for example after step 2 of "How the models connect" on the home page. Keep it, or lower it to around 55vh?
Home lede. The home intro-card lede is 47 words and links all seven models. §7.1 treats it as an intro card rather than a title band, so the 40-word limit was not applied. Trim it?
/contact. It has no "where next" row because §7.9 says "nothing else". Confirm.Tests
PYTHONPATH=integration/src python3 -m pytest tests integration/tests -q: 1467 passed, 101 skipped (round 5).tests+test_site_contract.pyalone: 1172 passed, 19 skipped (the count fell from 1564 when 53 release notes became 8 digests;tests/test_site_integrity.pyis parametrized per page, 1000 → 595 cases). Its discovery floortest_the_suite_actually_found_the_sitewas lowered from 70 to 60 pages to match.python3 site_contract.pyandpython3 site_nav.pypass.--checkpasses:economy/build.py,economy/topics.py,notes/generate_release_notes.py,forecasts/{make_us_baseline,ingest_outturns,archive,make_open_fans,score}.py,data/build_page.py,data/fetch.py,assets/make_hero.py,assets/make_current_outlooks.py,olg/figures/make_showcase.py,validation/figures/make_charts.py.vercel.jsonredirects, cleanUrls and#fragmentids, found no broken links./obr/validation,/forecastsand a topic page;reveal.jskeeps its?v=2query string, which is hard-coded on the pages. A cached copy only means tables scroll and rows don't fade.🤖 Generated with Claude Code