| code | varchar(50) | | Auto-generated EX-YYYY-NNN per tenant per year |
| format | enum | ISO 22398 | tabletop · walkthrough · simulation · full_scale · drill · parallel · cutover |
| status | enum | | draft · scheduled · in_progress · aar_pending · under_review · closed |
| outcome | enum | | pass · partial · fail · inconclusive · cancelled |
| scenario_id | uuid | | FK scenarios — coverage_tags drive programme rollup |
| programme_id | uuid | | FK annual_test_programmes — annual programme membership |
| actual_end_at | timestamptz | | Used to compute SAMA SLA dates |
| aar_due_at | timestamptz | §9.1 | actualEndAt + 28 days (SAMA) |
| improvement_plan_due_at | timestamptz | §10.1 | actualEndAt + 60 days (SAMA) |
| retest_due_by | timestamptz | | actualEndAt + 90 days when outcome=fail |