Skip to content

Scoring Changelog

A versioned record of every change to the scoring methodology — transforms, weights, thresholds, patterns, and ranking logic.

Every promotion that touches a formula, weight, threshold, or ranking order gets an entry here, written as part of the same PR that ships the change.


Entry format

markdown
### vX.Y.Z — YYYY-MM-DD

**Changed:** short name of what moved (e.g. "LRS weights", "churn_magnet threshold")
**PR:** hotspots#NNN

| | Before | After |
|--|--|--|
| field or formula | old value | new value |

**Notes:** (optional) why, edge cases, what stays the same

One entry per released version that contains a scoring change. If a release has no scoring changes, omit it.


Changelog

v1.24.0 — current baseline

No scoring changes since this changelog was introduced. The formulas in Scoring Methodology represent the current baseline.

Baseline snapshot:

ComponentValue
LRS weightscc=1.0, nd=0.8, fo=0.6, ns=0.7
R_cc cap6.0 (log2 scale)
R_nd cap8.0 (linear)
R_fo cap6.0 (log2 scale)
R_ns cap6.0 (linear)
Band: LowLRS < 3.0
Band: Moderate3.0 ≤ LRS < 6.0
Band: High6.0 ≤ LRS < 9.0
Band: CriticalLRS ≥ 9.0
Activity: churn weight0.5
Activity: fan-in weight0.4
Activity: touch weight0.3
Activity: SCC weight0.3
Activity: recency weight0.2
Activity: neighbor-churn weight0.2
Activity: depth weight0.1
Driver label percentileP75
Quadrant active thresholdtouch > P50 OR days_since ≤ 30
Pattern: complex_branchingCC ≥ 10 AND ND ≥ 4
Pattern: deeply_nestedND ≥ 5
Pattern: exit_heavyNS ≥ 5
Pattern: god_functionLOC ≥ 60 AND FO ≥ 10
Pattern: long_functionLOC ≥ 80
Pattern: churn_magnetchurn ≥ 200 AND CC ≥ 8
Pattern: hub_functionfan-in ≥ 10 AND CC ≥ 8
Pattern: middle_manfan-in ≥ 8 AND FO ≥ 8 AND CC ≤ 4
Pattern: shotgun_targetfan-in ≥ 8 AND churn ≥ 150
Pattern: stale_complexCC ≥ 10 AND LOC ≥ 60 AND days ≥ 180
Pattern: neighbor_riskneighbor_churn ≥ 400 AND FO ≥ 8
Pattern: cyclic_hubSCC ≥ 2 AND fan-in ≥ 6

Released under the MIT License. · hotspots.dev