Dispatch: Coach Dashboard Retool + AD View
To: Daedalus (frontend), Socrates (backend)
From: Wadsworth
Date: 2026-05-03
Priority: High — Refines LAT demo scope
Problem
Current Coach dashboard shows multi-sport roster. Real coaches manage ONE sport. Need:
1. Coach Dashboard retool → single-sport focus
2. AD View → multi-sport overview (new)
Decision
Implement BOTH:
- Coach view: single sport, clean roster, quick status
- AD view: all sports summary, drill-down capability
Files
shared/build-20260501/frontend/templates/coach/dashboard.html— Retool thisshared/build-20260501/frontend/templates/ad/dashboard.html— Create newshared/build-20260501/backend/app/api/dashboard.py— Add endpointsshared/project-docs/rtsport/coach-retool-spec.md— Full spec
Backend Tasks (Socrates)
- Update User model — Add
assigned_sportsandassigned_teamsarrays - New endpoint:
GET /api/v1/dashboard/coach?sport=Football
- Returns roster filtered to that sport
- Includes team grouping (Varsity/JV/Freshman) - New endpoint:
GET /api/v1/dashboard/ad
- Returns all sports summary (athlete counts, out/modified/cleared)
- Recent activity across all sports - Seed data: Add test coaches:
-coach_fb@preble.k12.wi.us— Football only
-coach_bb@preble.k12.wi.us— Basketball only
-ad@preble.k12.wi.us— AD role
Frontend Tasks (Daedalus)
Coach Dashboard (Retool)
- Header: Show sport name with dropdown selector (if multi-sport coach)
- Quick stats: Out / Modified / Cleared for THIS SPORT ONLY
- Roster: Filtered to selected sport, grouped by team
- Athlete detail: Position info, grade, sport-specific context
- Actions: Message AT, View Timeline
AD View (New)
- Header: "AD Overview" — no sport selector
- School stats: Total athletes, active cases, out today
- Sport cards: Grid of all sports with counts
- Recent activity: Cross-sport feed
- Tap sport card: Drill down to that sport's coach view
Design Notes
- Keep existing CSS tokens and color system
- Mobile-first — coaches check this on phones on the sideline
- AD view can be desktop-friendly (they're at a desk)
- Sport icons: 🏈 Football, 🏀 Basketball, ⚽ Soccer, etc.
Test Script
1. Login as coach_fb → see only Football roster
2. Switch sport dropdown → Basketball → roster reloads
3. Login as ad → see all sports summary
4. Tap Football card → see Football coach view
5. Verify stats are sport-scoped (not school-wide)
Success Criteria
- [ ] Coach sees only their sport's athletes
- [ ] Sport selector works (if multi-sport assigned)
- [ ] AD sees all sports summary
- [ ] Drill-down from AD to sport view works
- [ ] All data loads from API (no hardcoded mock)
ETA
- Backend API: May 10
- Frontend retool: May 12
- Integration test: May 14
Matt's open questions (answer if you have opinions):
1. Coach sport assignment: Manual by AT? Self-selected? Imported?
2. Assistant coaches: Full team or position group?
3. AD permissions: View-only or can edit?
4. Phase 1 priority: Coach first, AD second?