Skip to content

Fix the surfaces the redesign left unverified: terminal money, rounding parity, drift labels, print - #4

Merged
rlaope merged 4 commits into
mainfrom
fix/unverified-surfaces
Sep 25, 2026
Merged

rlaope merged 4 commits into
mainfrom
fix/unverified-surfaces

Conversation

@rlaope

@rlaope rlaope commented Sep 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • Terminal money: jeval threshold --currency is new. jeval threshold and jeval report now print costs through jeval.currency (KRW 1,738 per case) instead of a bare 1,738 or 1,737.70.
  • Rounding parity: shares are rounded half away from zero, like the slider's toFixed, so the table and the live readout can no longer differ by a point at 12.5%. The slider gets the cost curve at full precision. The node parity test now also covers shares.
  • Drift chart: each slice now shows its model and n. The two slices used to be labelled "department" both, and the model-change label and the last slice name were clipped at the right edge. The drift charts now sit on plates like the other charts.
  • Print: the report now prints as a labelled 3-page A4 summary (verdict, reliability, first action's cost and impact). Before, it was 11 pages of charts capped at 56mm tall, with unreadable labels.

Test plan

  • uv run pytest passes; ruff format --check, ruff check and mypy are clean.
  • Drift section rendered from examples/make-drift-log.py data and checked in light and dark mode.
  • Report printed to PDF with Chromium; 3 pages checked.
  • The jeval threshold --currency krw --by lang output was checked by hand and is covered by a regression test.

`jeval threshold` gains --currency, and both it and `jeval report` print per-case costs and the
segment table through jeval.currency: "KRW 1,738 per case" rather than a bare "1,738" or
"1,737.70".

Signed-off-by: rlaope <[email protected]>
Python rounded a 12.5% share to even and the slider rounded it up, so the impact table and the live
readout under it disagreed by a point; shares now go through jeval.currency.format_percent, which
rounds a tie away from zero like toFixed. The slider also receives the cost curve at full precision
instead of six decimals. The report prints as a labelled three-page summary instead of eleven pages
of height-capped charts. A node-run parity test covers shares as well as money.

Signed-off-by: rlaope <[email protected]>
Two slices of one question were both labelled "department", and the model-change label and the
last slice's name ran off the right edge. Each slice now carries its model and n, points sit inside
the plot, and the drift charts sit on plates like the rest of the report.

Signed-off-by: rlaope <[email protected]>
The example report is rebuilt with the documented command; it is now 292 KB because the slider's
curve is embedded at full precision.

Signed-off-by: rlaope <[email protected]>
@rlaope
rlaope merged commit 713bb06 into main Sep 25, 2026
5 checks passed
@rlaope
rlaope deleted the fix/unverified-surfaces branch September 25, 2026 16:35
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