Small districts produce rare-event count posteriors that are heavily
zero-inflated, and the absolute 1e-3 floor / raw-sd fallback broke on both
extremes of that data:
- All-identical draws (e.g. 500 zeros, the norm for a group with a handful of
students) collapsed to h = 1e-3, a near-delta spike of density ~399. Because
SexRidgeColumn shares one maxPdf per column, that single spike flattened every
other ridge in the column to sub-pixel height. Measured on a real district
(0400315 AZ, unified_m4_mod): the three informative ridges rendered at
0.07-0.13px of a 47.56px row.
- When IQR is 0 -- the normal case when most draws are 0 -- min(sd, iqr/1.34)
was falsy and the rule fell all the way back to raw sd, which a few extreme
draws inflate until the ridge is a flat line claiming maximal uncertainty.
Bandwidth is now clamped to [domainWidth/50, domainWidth/6] and the robust rule
degrades by picking the smallest *positive* spread estimate instead of
discarding robustness entirely. The floor is slightly wider than one render
step at n = 60, so a degenerate draw set resolves as a narrow bump; it does not
bind on an ordinary posterior (spread wider than ~8% of the domain keeps its
own Silverman bandwidth). On the district above the informative ridges now
render at 5.66-5.70px, a ~60x improvement.
Five new tests cover both failure modes; all five fail against the old formula.