M2 root-cause fix already landed in PR #2152/#2141 — honest-ratio recompute
runs unconditionally after all median mutations. Gap found: segment-multiplier
(#2255) mutates both sides after that recompute with independent rounding,
untested at the ratio-invariant level. Added regression guard.
M3 — median_bargain_pct (house-level exposure discount) and
asking_to_sold_ratio (estimate-level asking-vs-sold) are genuinely different
metrics with no honest common basis. Chose explicit cross-referencing
docstrings over merging.