EP-01
Systematic Underestimation by SP Size Class
Estimation Precision
Default severity: medium
EstimationQualityBusiness ValueEffort
What it detects
Issues of a specific story point size class (e.g. all 5-point stories) consistently take more time than the median for that class — the team\'s calibration for that size class is systematically off. Different from ES-02 (which is overall); this is per size class.
Detection formula
FOR each_sp_class C IN \[1, 2, 3, 5, 8, 13, 21\]: actual_times = \[time_spent FOR issue WHERE story_points = C AND time_spent > 0\] IF COUNT(actual_times) \< config.ep.min_sample_size // default: 5 THEN SKIP (insufficient data) median_actual(C) = MEDIAN(actual_times) expected_hours(C) = C * config.ep.hours_per_sp // configured hours per SP ratio(C) = median_actual(C) / expected_hours(C) IF ratio(C) > config.ep.underestimate_ratio // default: 1.5 (50% over) THEN FLAG class C as systematically underestimated IF ratio(C) > config.ep.critical_underestimate_ratio // default: 3.0 THEN CRITICALExamples in practice
- A team shows issues of a specific story point size class (e while min sample size is set to 5.
- Example signal: Issues of a specific story point size class (e.
Suggested response
Recalibrate estimation precision—check size classes, drift, and BV vs effort trade-offs.
Coaching playbook
Symptom
Issues of a specific story point size class (e.g. all 5-point stories) consistently take more time than the median for that class — the team\'s calibration for that size class is systematically off. Different from ES-02 (which is overall); this is per size class.
Why it matters
When "Systematic Underestimation by SP Size Class" keeps appearing, the team is signalling a repeatable process gap. Left unexamined, the pattern hides where work really stalls and makes improvement metrics harder to trust.
What you can achieve
Recalibrate estimation precision—check size classes, drift, and BV vs effort trade-offs.
Facilitation questions
- What system change would stop "Systematic Underestimation by SP Size Class" from firing again?
- What do the cited issues have in common — same root cause or same workaround?
- Who owns the two-week experiment and how will we verify on the next import?
Run this rule against your own tracker data with Flow Analyzer.