You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Inputs from #50 (PR #58) that this issue should build on:
srm_kpi.dimension has five values: quality / cost / delivery / service / hse (director ruling 2026-10-24). 02 §4.7 now lists hse_score on srm_performance_review beside the other four stored scores. Score flows must tolerate a dimension with no active KPI (cost has only a manual KPI; hse likewise).
Auto KPIs carry auto_metric (otd_rate / lot_pass_rate / ppm / ack_on_time_rate, the review's rate field) and linear thresholds full_score_value / zero_score_value: score = clamp(100 × (raw − zero) / (full − zero), 0, 100). Rates are in percentage points (98 = 98%), so multiply a stored fraction by 100 first; PPM is raw PPM (full < zero ⇒ lower is better).
Generate only from active == true KPIs, snapshot weight onto the score line, and refuse to generate (notify the director) when active weights do not sum to 100% (03 §10 step 1, updated in feat(core): v0.5 P1 KPI library srm_kpi #58). ACK_ON_TIME ships inactive until ERP.
One global scheme in v0.5; material_classes per-class filtering is a documented seam only.
Activity
marchtian commentedon Oct 24, 2026
Inputs from #50 (PR #58) that this issue should build on:
srm_kpi.dimensionhas five values: quality / cost / delivery / service /hse(director ruling 2026-10-24). 02 §4.7 now listshse_scoreonsrm_performance_reviewbeside the other four stored scores. Score flows must tolerate a dimension with no active KPI (cost has only a manual KPI; hse likewise).auto_metric(otd_rate/lot_pass_rate/ppm/ack_on_time_rate, the review's rate field) and linear thresholdsfull_score_value/zero_score_value: score = clamp(100 × (raw − zero) / (full − zero), 0, 100). Rates are in percentage points (98 = 98%), so multiply a stored fraction by 100 first; PPM is raw PPM (full < zero ⇒ lower is better).active == trueKPIs, snapshotweightonto the score line, and refuse to generate (notify the director) when active weights do not sum to 100% (03 §10 step 1, updated in feat(core): v0.5 P1 KPI library srm_kpi #58).ACK_ON_TIMEships inactive until ERP.material_classesper-class filtering is a documented seam only.Generated by Claude Code
feat(core): v0.5 P2 performance review generation and auto scoring (#62)