Training day exists only as a generic calendar entry
Step 1 — The season calendar (Important dates) supports adding a dated entry of kind "event", and the seed already includes "Reviewer training" here. This is the only piece of training day that's built today: it's a plain calendar entry with a title, date, and optional description — not a structured training-day event with its own roster, role scope, or attendance model.
Tag each training day by the role it trains
Step 2 — Not built. There's no field distinguishing a reviewer-training session from an adjudicator-training session or a makeup/online day; "Reviewer training" above is just a title string, not a structured role scope.
Take a training-day roster (present / absent)
Step 3 — Not built. Attendance in this app (performance_attendance) is tied to a performance, not a training day — there's no training_attendance table or roster UI. This is the paper-sign-in-sheet replacement the doc calls out as still missing.
Online training + external quiz → mark present later
Step 4 — Not built. No path exists for crediting a reviewer who completed training online/after the fact.
Multiple training days + makeup days, editable attendance
Step 5 — Not built (follows directly from step 3's missing roster/attendance model).
Demo / sample show for practice scoring
Step 6 — Not built. There's no performances.isDemo flag, so there's no way to seed a practice show reviewers can score without it counting toward eligibility or awards.
Collect waivers at training
Step 7 — Partially built, but not here: user_profiles.waiverStatus exists as a flag (not_submitted/submitted/approved/expired) with a submit + admin-approve flow, but it's global per-user rather than per-season, and there's no document upload for the (required, for minors) parent-signed copy. See the role-onboarding-invites presentation for a screenshot of the actual waiver UI — training day is just the usual real-world collection moment, with no training-specific UI of its own.
Trace "was this person trained?" for late additions
Step 8 — Not built. With no training_attendance records to derive from, there's no trained/untrained indicator to backfill or verify for a mid-season addition.
Training completion gates show assignment
Step 9 — Not built. Reviewer/adjudicator assignment (see the performance-day presentation, step 1) works regardless of any training record — there's no gate checking training completion before letting someone onto a show roster.