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 venue and event operators. Enforces documented emergency procedures, staff training, and — for enhanced-duty venues (800+ capacity) — a named designated senior individual (s.10 — required where the responsible person is not an individual), documented public protection procedures (s.5) and, for enhanced duty premises, public protection measures with the s.7 compliance document, and SIA notification at the point of write, before the compliance record is saved. Named after Martyn Hett (1987–2017), killed in the Manchester Arena attack. The omission failure mode this contract prevents: "we didn't fill that field in."
| Rule | Field | Severity | What it enforces (the message your team sees) |
|---|---|---|---|
| venue_id_required | venue_id | error | venue_id is required — every venue record must be uniquely identifiable |
| venue_name_required | venue_name | error | venue_name is required |
| venue_address_required | venue_address | error | venue_address is required |
| capacity_required | capacity | error | capacity is required — Martyn's Law applies to premises with a capacity of 200 or more |
| capacity_minimum | capacity | error | capacity must be >= 200 — Martyn's Law applies only to venues with a qualifying capacity of 200 or more persons |
| venue_type_required | venue_type | error | venue_type is required |
| venue_type_valid | venue_type | error | venue_type must be one of: arena, conference_centre, hotel, museum_gallery, nightclub, place_of_worship, pub_bar, restaurant, shopping_centre, sports_stadium, theatre, other |
| duty_tier_required | duty_tier | error | duty_tier is required — declare 'standard' (200–799 capacity) or 'enhanced' (800+ capacity) |
| duty_tier_valid | duty_tier | error | duty_tier must be 'standard' or 'enhanced' |
| evacuation_procedure_documented_required | evacuation_procedure_documented | error | evacuation_procedure_documented must be declared (true or false) — Martyn's Law requires a documented evacuation procedure for all in-scope premises |
| 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) — invacuation (shelter-in-place) procedures are a standard duty requirement |
| 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) — lockdown procedures are a standard duty requirement under Martyn's Law |
| lockdown_procedure_documented_valid | lockdown_procedure_documented | error | lockdown_procedure_documented must be 'true' or 'false' |
| staff_training_completed_required | staff_training_completed | error | staff_training_completed must be declared (true or false) — all staff must be trained on emergency procedures under standard duty |
| staff_training_completed_valid | staff_training_completed | error | staff_training_completed must be 'true' or 'false' |
| staff_training_date_required_if_completed | staff_training_date | error | staff_training_date is required when staff_training_completed is true — record the date training was completed |
| staff_training_date_format | staff_training_date | error | staff_training_date must be a valid date (YYYY-MM-DD) |
| senior_responsible_person_required_if_enhanced | senior_responsible_person | error | senior_responsible_person is required for enhanced-duty venues — Martyn's Law mandates a named designated senior individual for premises with a capacity of 800+; the Act's term is 'designated senior individual' (s.10) |
| senior_responsible_person_role_required_if_enhanced | senior_responsible_person_role | error | senior_responsible_person_role is required for enhanced-duty venues — record the organisational role of the designated senior individual (s.10) |
| sia_registration_number_required_if_enhanced | sia_registration_number | error | sia_registration_number is required for enhanced-duty venues — the responsible person must notify the Security Industry Authority (s.9 Notification requirements); record the SIA notification reference |
| terrorism_protection_plan_documented_required_if_enhanced | terrorism_protection_plan_documented | error | terrorism_protection_plan_documented is required for enhanced-duty venues — a public protection plan document (ss.5–7) is mandated for premises with a capacity of 800+ |
| 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 — record the date the plan was last reviewed |
| 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 record was saved |
| compliance_review_date_required | compliance_review_date | error | compliance_review_date is required — record the date of the compliance review |
| 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 →