Starter contract

martyns_law_venue

29 rules · pairs with martyns_law_event (34) — 63 together · plain YAML · starts in observation mode

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."

These are starting points you own. Every rule below ships in the trial, starts in observation mode, and is yours to read, edit, or delete from day one. Rules that reference a lookup list (lookup_file) validate against reference data you control in your tenant.
Rules as at 29 August 2026 — starting points you own, not a maintained regulatory feed. We correct errors in these samples; tracking regulatory change in your active contracts is yours.
RuleFieldSeverityWhat it enforces (the message your team sees)
venue_id_requiredvenue_iderrorvenue_id is required — every venue record must be uniquely identifiable
venue_name_requiredvenue_nameerrorvenue_name is required
venue_address_requiredvenue_addresserrorvenue_address is required
capacity_requiredcapacityerrorcapacity is required — Martyn's Law applies to premises with a capacity of 200 or more
capacity_minimumcapacityerrorcapacity must be >= 200 — Martyn's Law applies only to venues with a qualifying capacity of 200 or more persons
venue_type_requiredvenue_typeerrorvenue_type is required
venue_type_validvenue_typeerrorvenue_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_requiredduty_tiererrorduty_tier is required — declare 'standard' (200–799 capacity) or 'enhanced' (800+ capacity)
duty_tier_validduty_tiererrorduty_tier must be 'standard' or 'enhanced'
evacuation_procedure_documented_requiredevacuation_procedure_documentederrorevacuation_procedure_documented must be declared (true or false) — Martyn's Law requires a documented evacuation procedure for all in-scope premises
evacuation_procedure_documented_validevacuation_procedure_documentederrorevacuation_procedure_documented must be 'true' or 'false'
invacuation_procedure_documented_requiredinvacuation_procedure_documentederrorinvacuation_procedure_documented must be declared (true or false) — invacuation (shelter-in-place) procedures are a standard duty requirement
invacuation_procedure_documented_validinvacuation_procedure_documentederrorinvacuation_procedure_documented must be 'true' or 'false'
lockdown_procedure_documented_requiredlockdown_procedure_documentederrorlockdown_procedure_documented must be declared (true or false) — lockdown procedures are a standard duty requirement under Martyn's Law
lockdown_procedure_documented_validlockdown_procedure_documentederrorlockdown_procedure_documented must be 'true' or 'false'
staff_training_completed_requiredstaff_training_completederrorstaff_training_completed must be declared (true or false) — all staff must be trained on emergency procedures under standard duty
staff_training_completed_validstaff_training_completederrorstaff_training_completed must be 'true' or 'false'
staff_training_date_required_if_completedstaff_training_dateerrorstaff_training_date is required when staff_training_completed is true — record the date training was completed
staff_training_date_formatstaff_training_dateerrorstaff_training_date must be a valid date (YYYY-MM-DD)
senior_responsible_person_required_if_enhancedsenior_responsible_personerrorsenior_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_enhancedsenior_responsible_person_roleerrorsenior_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_enhancedsia_registration_numbererrorsia_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_enhancedterrorism_protection_plan_documentederrorterrorism_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_validterrorism_protection_plan_documentederrorterrorism_protection_plan_documented must be 'true' or 'false'
terrorism_protection_plan_review_date_required_if_ttp_documentedterrorism_protection_plan_review_dateerrorterrorism_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_formatterrorism_protection_plan_review_dateerrorterrorism_protection_plan_review_date must be a valid date (YYYY-MM-DD)
compliance_reviewed_by_requiredcompliance_reviewed_byerrorcompliance_reviewed_by is required — record who verified the compliance declarations before the record was saved
compliance_review_date_requiredcompliance_review_dateerrorcompliance_review_date is required — record the date of the compliance review
compliance_review_date_formatcompliance_review_dateerrorcompliance_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 →