Fix drill-in: CTR as %, suppress near-zero-baseline delta (#55)
* Dashboard: readable SVG charts (axis + values + threshold line), inconclusive note, register recent GDA push - barChart(): SVG with y-axis (max/0), per-bar values (few points), and a labeled
- Dashboard: readable SVG charts (axis + values + threshold line), inconclusive note, register recent GDA push
- barChart(): SVG with y-axis (max/0), per-bar values (few points), and a labeled
dashed threshold line — before/after uses the baseline avg as the line to beat, gate uses the target center. Fixes 'green stuff unintelligible without numbers'
- inconclusive tests now explain WHY (sparse cohort) + flag verdicts computed before
the #50 volume-gate fix as needing a re-run
- registered exp_gda_013: gdalerts 945a309 (thin price-guide pages noindexed + bands
collapsed, shipped 2026-07-16) — a real before/after on the S4 cohort that was never registered. Answers 'shouldn't recent pushes be listed as tests?'
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Fix misleading test drill-in: CTR as %, suppress sparse-baseline delta
The year-titles/schema tests showed '0.00 -> 0.01 (+403%)' in green — CTR rendered as a raw fraction, and a huge % computed off a near-zero baseline (noise off ~3 clicks), contradicting the 'inconclusive/too sparse' flag right above it.
- fmtMetric(): CTR -> %, position -> 1dp, counts -> integers (threaded through summary,
chart axis, bar values, baseline/target labels)
- deltaReliable(): only show a % change when baseline clears a floor (CTR >=1%) and >=3
points/side; otherwise '(too sparse - % not reliable)', matching the verdict
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>