Measured
Engine v3.0.0 against arbor-torture (22,330 nodes):
High (>70%): 781 nodes (3.5%)
Medium (40-70%): 0 nodes (0.0%)
Low (10-40%): 0 nodes (0.0%)
Minimal (<10%): 21,549 nodes (96.5%)
The same shape appeared on the smaller v1 fixture (25 high, 0 medium, 0 low, 103 minimal). Every node is either roughly 90%+ or roughly 0%.
Why it matters
A score with two reachable values is not a score. The product surfaces "Path heat 40%" and thresholds merge gates on it, so buckets that can never be populated make the number decorative — and make any threshold between 10% and 70% arbitrary, since nothing ever lands there.
Likely cause
Percentile ranking over a distribution where most nodes have zero callers: the tie at zero swallows ~96% of the mass, so everything with any inbound edge jumps straight to the top of the ranking. Worth checking how ties are handled before changing the thresholds themselves.
Reproduce
analyze-local /path/to/arbor-torture --top 25000 > out.txt
python grade.py out.txt # check I
Measured
Engine v3.0.0 against
arbor-torture(22,330 nodes):The same shape appeared on the smaller v1 fixture (25 high, 0 medium, 0 low, 103 minimal). Every node is either roughly 90%+ or roughly 0%.
Why it matters
A score with two reachable values is not a score. The product surfaces "Path heat 40%" and thresholds merge gates on it, so buckets that can never be populated make the number decorative — and make any threshold between 10% and 70% arbitrary, since nothing ever lands there.
Likely cause
Percentile ranking over a distribution where most nodes have zero callers: the tie at zero swallows ~96% of the mass, so everything with any inbound edge jumps straight to the top of the ranking. Worth checking how ties are handled before changing the thresholds themselves.
Reproduce