Skip to content

Dashboard usability test: six proposals, four implemented in drafts, two need a call #220

Open

Description

@vahid-ahmadi

A task-based usability test ran on a local merge of #204, #205, #206, #219 and r5-api-scenarios. Seven tasks covered four personas: policy analyst, rates trader, journalist and developer. Playwright started every task at / and counted clicks at 1440 and 375 px. All seven tasks can be completed, and no page scrolls horizontally at 375. The small fixes are already pushed to the owning PRs:

The proposals below need a judgement call or a bigger change, so I have not made them.

  1. Say whether the macro feedback changes the cost. An analyst asked "does the macro feedback change it?" The site answers in GDP (about 0.34× the revenue by q12, /obr#answers). It never says plainly that the costing itself is not revised: borrowing is not returned by the adapter, and that appears only in the "Cannot answer" row. Proposal: one sentence at the /obr worked example. (obr/index.html, Model pages: one-column methodology, one overview order, names not ids #206)
  2. Show each model's verdict on its router card. On /models with "Cost a reform" and "UK" selected, the OBR card's only quality signal is the tag "published anchor". The verdict sits inside the collapsed "What it is, strengths and limits". Proposal: show the one-line verdict on the card itself. It is already on the model's own "at a glance" panel, so link to that or reuse it, without adding a second copy of the fact. (models/index.html, r5 UI: question router on /models, copy-paste /connect, glossary, home and contact #204)
  3. Add a yes/no lead on /models/validation. A journalist asking "is any model validated?" finds four classes and seven verdicts, but no line that answers the question. The verdict column supports one: no model is validated as a forecaster, and the strongest evidence is replication of a published anchor. This needs your sign-off because it is a summary claim. (r5 UI: question router on /models, copy-paste /connect, glossary, home and contact #204)
  4. Put the CPI and GDP numbers next to the fans on /forecasts. A rates reader needs 3 clicks and 2 expanders to read the next four quarters (Forecasts, then the Inflation tab, then "Quarter by quarter"). The fans have no values and no hover. Decision: table the re-calibrated bands next to the fan, or keep only the raw table on the topic tab (it is now labelled). (forecasts/make_open_fans.py, Round 5 ui-data: forecast-evaluation scoreboard with full-height rail, flat archive, chart units and sources #205)
  5. Show the answer first on Same question. For +100bp, the benchmark box comes first and the answer table starts below the fold at 1440. Proposal: put the table first and the benchmark directly under it, or collapse the benchmark to one line. (models/compare/build.py, Models: 'Same question, every model' comparison view (/models/compare) #219)
  6. Fix the Forecasts sub-tab row at desktop width. economy-subnav-row is 1599 px wide in a 1440 viewport, so "Tax and benefit reform" is cut under the fade. Options: shorter labels ("Tax and benefits"), or the UK/US switch on its own row. (site_nav.py, r5 UI: question router on /models, copy-paste /connect, glossary, home and contact #204)
  7. Developer example. The /connect prompt "a 25 basis point US rate cut … hank_shock" sits next to --size -0.0025, which is a 100bp-annualised move. This is already tracked in hank_shock docstring: -0.0025 is a 100bp-annualised move, not '25bp'; productivity 0.01 is 2.1% TFP, not 1% #211, so fix it on /connect when hank_shock docstring: -0.0025 is a 100bp-annualised move, not '25bp'; productivity 0.01 is 2.1% TFP, not 1% #211 lands.

Evidence: the persona table, paths and click counts are in the r5 ux-test notes. The screenshots are local. An MCP check, frbus_shock(rffintay_aerr, 1.0, horizon=12), returned GDP −0.551% at 2027Q4, the same as /models/compare.

Recommendation: do 1, 2 and 5 now; they are wording and order changes within one PR each. Items 3 and 4 need your call.

🤖 Generated with Claude Code

Activity

  1. vahid-ahmadi commented on Nov 6, 2026

    @vahid-ahmadi
    ContributorAuthor

    All six proposals are now implemented, one commit per item, so any of them can be dropped on its own. No number changed. Item 7 still waits on #211.

    # Proposal PR Commit
    1 Say the macro feedback changes GDP, not the cost: the /obr worked example's "Direct yield" row now reads "the second round changes GDP, not this costing" #206 a26ef49
    2 Each router card on /models shows "Verdict: …", quoted from the verdict callout on the model's own page (all 7 cards) #204 8159905
    3 Needs your call. A yes/no lead on /models/validation: "Is any model validated? Not as a forecaster. None of the seven verdicts below claims forecast skill; the strongest checks are exact household rule arithmetic and replication of a published model or paper." #204 2f7869e (drop it to revert)
    4 Needs your call. Each GDP/CPI fan on /forecasts gets a "Quarter by quarter" table inside its figure, so the chart tabs keep the table with its fan. It shows the median, the re-calibrated 68%/90% bands as drawn, and the EFO, all from rounds/2026-07-29/boe-svar.json, generated by forecasts/score.py. #205 b39796b (drop it to revert)
    4a Band labels now agree wherever both kinds appear: legends on the topic and unemployment fans say "(raw)", and the track-record GDP/CPI fans say "(re-calibrated)" #205 e0b67fc
    5 Same question: the answer table now comes first and the benchmark box sits under it, at every width #219 148d3d6 (+0d24453 regenerates after merging r5-ui-home)
    6 The Forecasts sub-tab strip now fits at 1440 and 1280 px (it measured 1599 in a 1440 viewport). The topic tabs drop the chart icon they all shared, and the reform tab reads "Tax and benefits". Page titles are unchanged. #205 430b42f

    Checks: the merge of base + #204 + #206 + #205 + #219 has no conflicts. On that merge, pytest gives 1241 passed (with PYTHONPATH=integration/src), site_contract passes, the topics/score/open-fans/compare --check all pass, and the link check finds 0 broken links. No page scrolls horizontally at 375 px. Screenshots at 1440 and 375 px are local in shots/r5/uxfix.

    🤖 Generated with Claude Code

  2. changed the title [-]Dashboard usability test (r5): seven tasks pass; six proposals that need a call[/-] [+]Dashboard usability test: six proposals, four implemented in drafts, two need a call[/+] on Nov 6, 2026
  3. vahid-ahmadi commented on Nov 6, 2026

    @vahid-ahmadi
    ContributorAuthor

    Usability test 2: before and after

    I re-ran the same 4 personas and 7 tasks, plus 3 new tasks, on a fresh local merge of base + #204 + #206 + #205 + #219. The merge has no conflicts and was not pushed. I tested at 1440 and 375 px.

    Task Test 1 Test 2
    T1 cost of 1p + macro feedback Pass, slow (4 clicks, incl. a hidden expander) Pass, 3 visible clicks
    T2 which model for 5-year UK fiscal Pass, quality hidden Pass; the card shows "Verdict: …"
    T3 CPI next 4 quarters Pass, slow (2 pages, 2 expanders, unlabelled bands) Pass, 1 page: CPI tab → "Quarter by quarter"; bands labelled
    T4 100bp in each model Pass, answer below the benchmark Pass, table first
    T5 one-sentence forecast quality Pass Pass
    T6 is any model validated? Partial Pass ("Is any model validated? Not as a forecaster…")
    T7 connect MCP Pass Pass (#211 still open)
    T8 new: which 100bp answer to trust most? — Before: the takeaway counted verdicts but did not name the models. Fixed in #219 (b6236b1): "Off: OBR emulator and BoE SVAR; plausible: FRB/US; plausible in-model: US HANK."
    T9 new: is the record current? — Failed. The only date was "store updated 2026-08-26" in tile small print, and nothing said the record is stale (pipeline broken since 26 Oct, #221). Fixed in #205 (06e2902, 862ec6c): a line above the tiles reads "Last scored 26 August 2026. Outturns published after that date are not in the record yet." It is generated from scorecard.json, covered by a test, and updates when #221 rescores.
    T10 new: what is "partial replication"? — Pass: the chip on a model card links to the glossary entry in 1 click

    No number changed. Checks on the merge: pytest 1256 passed, 20 skipped; site_contract OK; generator --check OK; 0 broken links; no horizontal scroll at 375 px.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions