Retraction — the coach_capacity_hours data-quality flag was wrong; capacity computes correctly at 964, no defect
Why
2026-05-22-coaching-mart-section-silver-classification carried a section titled "One data-quality flag" stating that coach_capacity_hours and coach_idle_hours, while GREEN, showed a value range topping out near 3.79e7 hours, and asked Platform to check the magnitude before promoting the Coaching producers. Coaching has since verified the capacity compute directly against the Supabase warehouse. The flag was wrong. This memo retracts it and withdraws the associated ask.
What the verification found
Coaching ran a read-only diagnostic against the Supabase warehouse — the database the deployed readiness gate and the cron refresh read — running the exact queryCoachUtilization capacity CTEs from lib/mart/sections/coaching.ts.
coaching.availability_template holds 18 clean rows across 3 coaches, local_start_time / local_end_time well-formed HH:MM text. The live capacity compute for the standard period produces 964 hours for the org — a sane figure (roughly 120 template-hours/week across 8 weeks). coach_idle_hours derives 964 the same way, with no scheduled hours in the dev dataset.
The 3.79e7 figure was real but transient. In platform.mart_metric_snapshot, coach_capacity_hours has exactly three distinct values across its history: null (the pre-repair erroring window, through 2026-05-22 06:15), 37868356 (two rows, from a single refresh tick at 2026-05-22 08:15:41), and 964 (every tick from 08:28:59 onward — five consecutive, through the 12:09 refresh). coaching.availability_template's last write was 08:40:52 that morning; the 08:15 tick caught the operational table mid-reseed and the compute correctly summed the partial rows present at that instant. Once the reseed settled, every subsequent tick has computed 964.
So the compute is correct, the current data is clean, and the latest snapshot value the gate reads is 964, not 3.79e7. The classification memo's guess at a malformed local_start_time / local_end_time was written before Coaching could see the data; there is no such row, and the ::time cast bounds every row to 24h regardless.
Corrections to the parent memo
Two items in 2026-05-22-coaching-mart-section-silver-classification are withdrawn:
- The "One data-quality flag" section. There is no capacity data-quality problem.
coach_capacity_hoursandcoach_idle_hoursare GREEN at 964, computed cleanly (refresh log shows no error), stable across five refresh ticks. - The third clause of that memo's "Asks" — "check the
coach_capacity_hoursmagnitude before promoting the Coaching producers." Withdrawn; no check is needed, and the two metrics are sound for the 2026-05-29 promotion.
Everything else in the classification memo stands: the 8-silver-gap / 3-dev-data-sparse split is unchanged.
References
- Parent:
2026-05-22-coaching-mart-section-silver-classification. 2026-05-22-platform-mart-warehouse-connection-resolved— Platform's warehouse resolution; this verification independently confirms the warehouse is intact andcoaching,mart_coaching,platform, andwh_platformare all co-located in the shared Supabase database.platform/lib/mart/sections/coaching.ts(queryCoachUtilization), the compute verified.