Coaching section mart classification; 8 not-yet metrics are genuine silver gaps, 3 are dev-data sparse, no new silver committed this round
Why
2026-05-22-platform-mart-compute-repaired-and-promotion-scheduled asks each domain to run the readiness gate against its section and sort every not-yet-producing metric into silver-gap or dev-data-sparse. Coaching could not do that while the gate was reading empty across all seven sections (2026-05-22-coaching-mart-readiness-gate-empty). The warehouse is now restored: a fresh mart-audit-readiness.ts run reports GREEN 58, AMBER 2, RED 72, and the Coaching section resolves to 8 producing and 11 not-yet, matching the per-section table in the ask. This memo classifies the 11.
What
The 8 producing Coaching metrics (coach_active_count, coach_roster_count, coach_capacity_hours, coach_scheduled_hours, coach_completed_hours, coach_utilization_scheduled, coach_utilization_completed, coach_idle_hours) need no action and enter the soak. The 11 not-yet metrics split 8 silver-gap and 3 dev-data-sparse.
Silver-gap (8): genuine missing source, not dev-scale sparsity
These eight read RED because the source data does not exist in any Coaching-owned store, not because the dev dataset is small. They are the eight null_emit_only entries Coaching already declared in 2026-05-19-coaching-mart-100-percent-deployment-ack and 2026-05-19-coaching-round-10-asks-reply; the restored gate confirms those declarations. Platform should keep them classified as upstream-gated, and the 2026-06-09 default-accept should not reclassify them as dev-data-sparse.
Four of the eight collapse onto a single missing model. coach_churn_count, coach_onboarding_count, coach_ramp_time_days, and coach_tenure_distribution all need a coach_employment_event history table (hire, first-active, and departure dates). coaching.coach.status is point-in-time only, and coach.created_at conflates hiring-status rows with true onboarding starts, so neither substitutes. One silver model unblocks all four; it is the highest-leverage silver in the section.
The remaining four each need their own new source. coach_quality_score needs a coach quality-signal source. coach_satisfaction_of_platform needs a coach-survey surface. coach_revenue_share_pct needs a contract revenue-share-percentage field in the coach rate shape; the current rate JSON has no such key. coach_idle_hours_by_capability needs a coach capability taxonomy, and absent one it stays a correct null:not_applicable emit rather than a gap to fill.
Dev-data-sparse (3): compute correct, silver present, no data at dev scale
coach_cost_per_completed_lesson, coach_cost_per_hour, and coach_compensation_total are live compute in lib/mart/sections/coaching.ts, reading the lesson_rate and travel_comp columns Coaching shipped on 2026-05-19 (the Path A silver extension, 2026-05-19-coaching-silver-rate-column-reply). Silver and compute both exist. They read RED only because the dev dataset has no consumed lessons in-period: coach_scheduled_hours and coach_completed_hours both compute GREEN at a value of 0, so the cost compute has nothing to sum. These three resolve themselves once real consumed-lesson data is present; they are not an ask and no silver work is owed.
Build plan
Coaching is not committing a new silver build this round. The 2026-05-19 position holds: coach_employment_event, the quality-signal source, and the coach-survey surface are genuine future-initiative work with no current-sprint plan, and Coaching is not putting dates on them here, consistent with the no-rocks no-dates discipline. If and when Coaching prioritizes section coverage, coach_employment_event is first by leverage (four metrics), and Platform's documented activation pattern will pick up the dependent compute automatically when the model lands.
One data-quality flag
Correction (2026-05-22): This flag was wrong and is retracted in full by
2026-05-22-coaching-mart-capacity-flag-retracted. The capacity compute was verified directly against the Supabase warehouse:coach_capacity_hourscomputes correctly at 964 hours. The 3.79e7 figure was a single transient refresh tick (2026-05-22 08:15:41) that caughtcoaching.availability_templatemid-reseed; it self-corrected to 964 within minutes and has held there since. There is no compute defect and no malformedlocal_start_time/local_end_timerow. The paragraph below, and the third clause of the Asks (checking thecoach_capacity_hoursmagnitude), are both withdrawn.
coach_capacity_hours and coach_idle_hours are GREEN, but the gate reports a value range topping out near 3.79e7 hours, which is not a possible capacity figure. Coaching owns the derivation logic (documented in 2026-05-19-coaching-mart-100-percent-deployment-ack); Platform owns the implementation in queryCoachUtilization. The likely cause is a bad local_start_time or local_end_time on an availability_template row feeding an oversized interval. Worth a look before those two promote; flagging it here rather than opening a separate memo.
Asks
Platform: keep the eight silver-gap metrics classified as upstream-gated through the 2026-06-09 default-accept and do not reclassify them as dev-data-sparse; treat the three cost metrics as dev-data-sparse and expect them to produce once real consumed-lesson data lands; and check the coach_capacity_hours magnitude before promoting the Coaching producers.
References
2026-05-22-platform-mart-compute-repaired-and-promotion-scheduled, the per-domain ask.2026-05-22-coaching-mart-readiness-gate-empty, the empty-gate flag, now resolved.2026-05-19-coaching-mart-100-percent-deployment-ackand2026-05-19-coaching-round-10-asks-reply, the prior declarations of the eight silver gaps.2026-05-19-coaching-silver-rate-column-reply, the Path A rate-column silver extension behind the three cost metrics.