calibration: count same-day closes honestly (#34) #54
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/calibration-honesty"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes the honesty gap in #34: the cold-start surface counted only usable closes and hid the ones that structurally can't calibrate.
The dishonesty
calibrationSamplessilently drops closed+estimated issues that closed in 0 working days (same-day closes). The UI then showedN/20 closed issues estimated, reading as "just (20−N) closes away". On this repo that hid 10 of 24 closes: the note said14/20as if 6 away, when a third of the history will never count toward the fit.Fix
calibrationCoverage(issues, timelines, asOf)→{ candidates, usable, excludedSameDay }, counting the silently-excluded same-day closes. Pure, tested.CalibrationDatagainsexcludedSameDay;backlogCalibrationreturns the coverage; the Runway note and the Calibration screen now append "… · N same-day closes can't calibrate" — the thin sample is explained, not just reported.Verification
Ran
calibrationCoverageagainst christian/commitea:closed=24, usable=14, excludedSameDay=10— so the note now honestly reads "14/20 closed issues estimated · 10 same-day closes can't calibrate."131 core tests green (incl. new coverage test); core + desktop typecheck clean; 14 fixture e2e green. Appends preserve the existing live-runway assertion substring.
Base
Off
main; touchesapp-shell.tsx(calibration prop) — small rebase expected against #52, which also edits that region.🤖 Generated with Claude Code
The cold-start surface showed "N/20 closed issues estimated", implying you're just (20−N) closes away. But calibrationSamples silently drops closed+estimated issues that closed in 0 working days (same-day closes) — real closes that structurally can't calibrate. On this repo that's 10 of 24 closes hidden: the note read 14/20 as if 6 away, when a third of the history will never count. - core: `calibrationCoverage(issues, timelines, asOf)` → { candidates, usable, excludedSameDay }, counting the silently-excluded same-day closes. Pure, tested. - surface it: CalibrationData gains `excludedSameDay`; backlogCalibration returns the coverage; the Runway note and the Calibration screen now say "… · N same-day closes can't calibrate" so the thin sample is explained, not just reported. Verified on christian/commitea: closed=24, usable=14, excludedSameDay=10. 131 core green (incl. new coverage test); core + desktop typecheck; 14 fixture e2e. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>