OpenDQV Cloud starter template (v0.1) — your tenant inherits this baseline. First customer edit creates v1.0 in your audit trail; pin by yaml_hash for replay. Martyn's Law (Terrorism (Protection of Premises) Act 2025) compliance contract for qualifying events — temporary or one-off events where 800 or more individuals are expected to attend (s.3(1)(d)), regardless of whether the venue is a permanent premises; there is no 200-person tier — all qualifying events carry the enhanced-level duties. Distinct from martyns_law_venue: the responsible party is the event organiser (the Act's s.4 concept is 'persons responsible for qualifying premises or events'), the SIA obligation is notification, and all procedures are event-specific and time-bounded.
| Rule | Field | Severity | What it enforces (the message your team sees) |
|---|---|---|---|
| event_id_required | event_id | error | event_id is required — every qualifying event record must be uniquely identifiable |
| event_name_required | event_name | error | event_name is required |
| event_location_required | event_location | error | event_location is required — record the address or site name of the event |
| event_organiser_required | event_organiser | error | event_organiser is required — the event organiser is the responsible party under Martyn's Law for qualifying events |
| event_type_required | event_type | error | event_type is required |
| event_type_valid | event_type | error | event_type must be one of: concert_live_music, festival, sports_event, conference_exhibition, market_fair, religious_gathering, protest_demonstration, film_production, other |
| expected_attendance_required | expected_attendance | error | expected_attendance is required — qualifying events require 800 or more individuals (s.3(1)(d)); there is no 200-person tier — all qualifying events carry the enhanced-level duties |
| expected_attendance_minimum | expected_attendance | error | expected_attendance must be >= 800 — qualifying events require 800 or more individuals (s.3(1)(d)); there is no 200-person tier — all qualifying events carry the enhanced-level duties |
| event_start_date_required | event_start_date | error | event_start_date is required |
| event_start_date_format | event_start_date | error | event_start_date must be a valid date (YYYY-MM-DD) |
| event_end_date_required | event_end_date | error | event_end_date is required |
| event_end_date_format | event_end_date | error | event_end_date must be a valid date (YYYY-MM-DD) |
| duty_tier_required | duty_tier | error | duty_tier is required — template-level classification — the Act applies enhanced-level duties to all qualifying events (s.3); every qualifying event (800+ expected) carries these duties |
| duty_tier_valid | duty_tier | error | duty_tier must be 'standard' or 'enhanced' — template-level classification — the Act applies enhanced-level duties to all qualifying events (s.3); every qualifying event (800+ expected) carries these duties |
| evacuation_procedure_documented_required | evacuation_procedure_documented | error | evacuation_procedure_documented must be declared (true or false) — a documented evacuation procedure is required for all qualifying events under Martyn's Law |
| evacuation_procedure_documented_valid | evacuation_procedure_documented | error | evacuation_procedure_documented must be 'true' or 'false' |
| invacuation_procedure_documented_required | invacuation_procedure_documented | error | invacuation_procedure_documented must be declared (true or false) — a shelter-in-place procedure is required for all qualifying events |
| invacuation_procedure_documented_valid | invacuation_procedure_documented | error | invacuation_procedure_documented must be 'true' or 'false' |
| lockdown_procedure_documented_required | lockdown_procedure_documented | error | lockdown_procedure_documented must be declared (true or false) — a lockdown procedure is required for all qualifying events under Martyn's Law |
| lockdown_procedure_documented_valid | lockdown_procedure_documented | error | lockdown_procedure_documented must be 'true' or 'false' |
| staff_briefing_completed_required | staff_briefing_completed | error | staff_briefing_completed must be declared (true or false) — all event staff must be briefed on the emergency procedures before the event opens |
| staff_briefing_completed_valid | staff_briefing_completed | error | staff_briefing_completed must be 'true' or 'false' |
| staff_briefing_date_required_if_completed | staff_briefing_date | error | staff_briefing_date is required when staff_briefing_completed is true — record the date the pre-event staff briefing was completed |
| staff_briefing_date_format | staff_briefing_date | error | staff_briefing_date must be a valid date (YYYY-MM-DD) |
| senior_responsible_person_required | senior_responsible_person | error | senior_responsible_person is required — Martyn's Law mandates a named designated senior individual for qualifying events with an expected attendance of 800+; the Act's term is 'designated senior individual' (s.10) |
| senior_responsible_person_role_required | senior_responsible_person_role | error | senior_responsible_person_role is required — record the organisational role of the designated senior individual (s.10) |
| sia_notification_reference_required | sia_notification_reference | error | sia_notification_reference is required — qualifying events with 800+ expected attendance must notify the Security Industry Authority (SIA); record the notification reference |
| terrorism_protection_plan_documented_required | terrorism_protection_plan_documented | error | terrorism_protection_plan_documented is required — documented public protection procedures and measures for the event, per ss.5–7, are mandated for qualifying events with 800+ expected attendance |
| terrorism_protection_plan_documented_valid | terrorism_protection_plan_documented | error | terrorism_protection_plan_documented must be 'true' or 'false' |
| terrorism_protection_plan_review_date_required_if_ttp_documented | terrorism_protection_plan_review_date | error | terrorism_protection_plan_review_date is required when terrorism_protection_plan_documented is true |
| terrorism_protection_plan_review_date_format | terrorism_protection_plan_review_date | error | terrorism_protection_plan_review_date must be a valid date (YYYY-MM-DD) |
| compliance_reviewed_by_required | compliance_reviewed_by | error | compliance_reviewed_by is required — record who verified the compliance declarations before the event record was saved |
| compliance_review_date_required | compliance_review_date | error | compliance_review_date is required |
| compliance_review_date_format | compliance_review_date | error | compliance_review_date must be a valid date (YYYY-MM-DD) |
Run your own data against this contract in the free trial — drop a CSV in the dashboard, no code, no credit card. Start free trial →