safety.book_event_security — Full Intent Specification
INTENT NAMESPACE: safety
INTENT NAME: book_event_security
FULL ID: safety.book_event_security
VERSION: v1.0.0
STATUS: live
TTBS WEIGHTS: time 0.20 · taste 0.10 · budget 0.25 · safety 0.45
LAST UPDATED: 2026-05-14
Security manpower + access-control + frisking + crowd-management for a one-off event: wedding, corporate function, concert at a private venue, school annual day, political rally (private organizer), startup conference. Distinct from safety.book_personal_security because: (a) scope is venue + crowd, not principal; (b) headcount ranges from 4 to 200+ guards; (c) access-control hardware (gates, magnetometers, x-ray) may be needed; (d) DGP / commissioner permission may be needed for large events (>500 attendees); (e) fire NOC, alcohol permit, ambulance standby, traffic plan all become part of safety. Partners are PSARA-licensed event-security divisions.
1. NATURAL LANGUAGE COVERAGE
Classifies IN
- "security for wedding 300 guests"
- "bouncers for corporate event"
- "frisking + access control for concert"
- "event security 7 PM Saturday"
- "crowd management 1000 attendees"
- "anti-poaching security at startup conference"
- "VIP arrival management at venue"
- "security for school annual day"
- "magnetometer for entry"
- "event guards 8-hour shift"
Classifies OUT — borderline NO
- "personal bodyguard for host" →
safety.book_personal_security - "venue booking" →
entertainment.book_event_venue/entertainment.book_party_hall - "police bandobast" → public-event police; out of v1 (govt-only)
- "fire NOC application" → not this intent (partner may assist)
- "DJ + bouncer combo" → DJ is entertainment; bouncer subset of event security
MULTI-INTENT TRIGGERS
- "venue + catering + event security" →
entertainment.book_event_venue+food.book_catering_event+safety.book_event_security - "concert ticket + event security for after-party" →
entertainment.book_concert_ticket+safety.book_event_security - "wedding photographer + event security + personal bodyguard for bride" → multi-domain
2. INPUT — TOMO → PROVIDER
{
"intent": "safety.book_event_security",
"intent_version": "v1.0.0",
"request_id": "req_esec_4r2p_2026-05-14T17:30:00Z",
"user_session_id": "anon_user_token_or_uid",
"event": {
"type": "wedding_reception",
"types_allowed": ["wedding_reception", "corporate_function", "concert_private_venue", "school_event", "religious_gathering", "political_rally_private", "startup_conference", "exhibition_trade"],
"expected_attendees": 300,
"start_iso": "2026-06-12T18:00:00+05:30",
"end_iso": "2026-06-12T23:30:00+05:30",
"venue_address_id": "addr_venue_v1",
"venue_type": "indoor_outdoor_lawn",
"alcohol_served": true,
"celebrity_attendees_flag": false
},
"manpower_request": {
"guards_count": 12,
"bouncers_count": 6,
"supervisors_count": 1,
"female_guards_count": 3,
"frisking_lane_count": 2,
"vehicle_parking_marshal_count": 4
},
"hardware_request": {
"metal_detectors_walk_through": 2,
"metal_detectors_handheld": 4,
"x_ray_baggage": 0,
"barricades_count": 20,
"communication_radios": "partner_supplied"
},
"standby": {
"ambulance_standby_required": true,
"ambulance_class": "bls",
"fire_extinguisher_check": true
},
"permits": {
"commissioner_permission": "not_required",
"fire_noc": "venue_owner_holds",
"alcohol_permit": "user_holds"
},
"user_constants": {
"preferred_agencies": ["G4S Events", "Securitas Events", "Topsgrup Events", "SIS Events"]
}
}
Field rules
expected_attendees> 500 →commissioner_permissionbecomes mandatory; UI surfaces requirement honestly.alcohol_served: truerequiresalcohol_permitfield; partner verifies before deployment.- Guards/bouncers/supervisors counts STRICT integers.
female_guards_countmandatory if female attendees expected > 30%.
3. PROVIDER TOOLS
esec.quote
Returns total price by guard-hour + hardware + standby.
esec.psara_verify
Returns agency license + state validity.
esec.permit_check
Cross-checks user's permit declarations against partner's compliance matrix.
esec.assign_team
Returns team roster (anonymized ids + bands) + supervisor contact.
esec.recce
Pre-event venue recce 24–72h before.
esec.live_track
Live ops dashboard during event window.
esec.completion_handover
Post-event signoff + incident register.
esec.dispute
Misconduct / SLA breach post-event.
esec.cancel
Cancel with partner-specific notice band.
4. RESPONSE SHAPE
{
"intent": "safety.book_event_security",
"request_id": "req_esec_4r2p_2026-05-14T17:30:00Z",
"permit_check": {
"commissioner_permission_required": false,
"fire_noc_status": "venue_owner_holds",
"alcohol_permit_status": "user_holds",
"all_pass": true
},
"options": [
{
"tier": "OK",
"provider": "SIS Events",
"hourly_rate_per_guard_inr": 220,
"guards_total": 19,
"supervisors": 1,
"bouncers": 6,
"female_guards": 3,
"hardware_included": {"walk_through": 2, "handheld": 4, "barricades": 20},
"ambulance_standby_included": false,
"ambulance_standby_addon_inr": 2500,
"duration_hours": 6,
"total_inr": 30580,
"psara_license_no": "PSA-TS-2018-XXXX",
"psara_valid_until_iso": "2027-08-31",
"ttbs_score": 0.66,
"tier_reason": "cheapest licensed event team"
},
{
"tier": "GOOD",
"provider": "G4S Events",
"hourly_rate_per_guard_inr": 320,
"guards_total": 19,
"supervisors": 1,
"bouncers": 6,
"female_guards": 3,
"hardware_included": {"walk_through": 2, "handheld": 4, "barricades": 20},
"ambulance_standby_included": true,
"duration_hours": 6,
"total_inr": 44640,
"psara_license_no": "PSA-KA-2017-XXXX",
"psara_valid_until_iso": "2028-06-30",
"background_check_band": "verified_plus_aadhaar",
"encrypted_radio": true,
"recce_included": true,
"ttbs_score": 0.87,
"tier_reason": "balanced — ambulance standby + recce + encrypted radio"
},
{
"tier": "GREAT",
"provider": "Topsgrup Events Elite",
"hourly_rate_per_guard_inr": 450,
"guards_total": 19,
"supervisors": 2,
"bouncers": 6,
"female_guards": 3,
"hardware_included": {"walk_through": 2, "handheld": 4, "barricades": 20, "x_ray_baggage": 1},
"ambulance_standby_included": true,
"ambulance_class_standby": "als",
"duration_hours": 6,
"total_inr": 64200,
"psara_license_no": "PSA-MH-2016-XXXX",
"psara_valid_until_iso": "2029-12-31",
"background_check_band": "verified_plus_aadhaar_plus_court",
"encrypted_radio": true,
"recce_included": true,
"vip_arrival_management": true,
"dedicated_supervisor_per_zone": true,
"ttbs_score": 0.93,
"tier_reason": "ALS ambulance + X-ray + court-cleared + 2 supervisors"
}
]
}
5. CONTROLLED VOCABULARIES
event.type
wedding_reception · corporate_function · concert_private_venue · school_event · religious_gathering · political_rally_private · startup_conference · exhibition_trade
event.venue_type
indoor_hall · indoor_outdoor_lawn · outdoor_ground · rooftop
permits.commissioner_permission
not_required · applied · granted · denied
permits.fire_noc
venue_owner_holds · user_to_apply · not_required · expired
background_check_band
verified · verified_plus_aadhaar · verified_plus_aadhaar_plus_court
All STRICT ENUM.
6. TTBS DIMENSIONS
TIME (weight 0.20)
- Lead time before event
- Recce slot availability
- Team arrival punctuality SLA
- TIME = lead × recce × punctuality
TASTE (weight 0.10)
- Agency brand
- Supervisor communication
- Crowd-management band (prior event reviews)
- TASTE = brand × comms × crowd_band
BUDGET (weight 0.25)
total_inrvs best- Hardware add-on transparency
- Overtime band
- BUDGET = 1 − (total − best) / best
SAFETY (weight 0.45 — dominant)
- PSARA license valid + state-aligned
- Permit check passed (commissioner / fire / alcohol)
- BG band of guards
- Encrypted radio
- Ambulance standby (≥ BLS) for crowd > 200
- Female guards count fits female attendee share
- Frisking lane count fits attendee throughput (≤ 200 per lane per hour)
- Recce done
- SAFETY = psara × permits × bg × radio × ambulance × female_fit × lane × recce
HARD FILTERS
- PSARA license valid + state-aligned.
- Permits all pass.
- Female guards ≥ 1 if female attendees expected > 0.
- Ambulance standby ≥ BLS for crowd > 200.
- Frisking-lane throughput sufficient.
7. COMPLETION CONTRACT
Success criteria
- Quote accepted; recce scheduled.
- Recce findings shared; team roster finalized.
- Hardware delivered to venue 2h pre-event.
- Team arrives 90 min pre-event; checks gates, lanes, parking.
- Live ops during event; incident register updated.
- Closeout: team checks venue clear; signoff sheet signed.
- CPC webhook fires.
CPC webhook
{
"event": "safety.book_event_security.completed",
"intent_id": "safety.book_event_security",
"request_id": "req_esec_4r2p_2026-05-14T17:30:00Z",
"order_id": "ESEC9KP72",
"provider": "G4S Events",
"guards_total": 19,
"duration_hours": 6,
"total_inr": 44640,
"tomo_commission_base_inr": 6696,
"tomo_commission_inr": 670,
"pass_through_inr": 37944,
"psara_license_no": "PSA-KA-2017-XXXX",
"incident_count": 0,
"completed_at_iso": "2026-06-13T00:30:00+05:30",
"signature_hmac_sha256": "…"
}
Failure cases
team_short_arrival→ SLA penalty + emergency backfill.permit_invalid_pre_event→ event security paused pending compliance.crowd_exceeded_capacity→ user advised + emergency 112 escalation if safety threshold breached.misconduct_report→ partner investigation.
8. WIDGET
{
"widget": "EventSecurityWidget",
"header": {
"event_strip": "Wedding reception · 300 guests · 6 PM – 11:30 PM",
"permits_strip": "Commissioner not required · Fire NOC venue · Alcohol permit you",
"team_strip": "12 guards + 6 bouncers + 1 supervisor + 3 female guards · 2 frisk lanes"
},
"regions": {
"region_1_intelligence": ["PSARA verified", "Aadhaar-verified guards", "BLS ambulance standby", "encrypted radio"],
"region_2_summary": "Recce 48 h before, team arrives 90 min pre-event",
"region_3_visual": null,
"region_4_now_pin": "Lock team — recce slot tomorrow morning",
"region_5_tomo_choices": [
{"tier": "OK", "label": "SIS · ₹30,580 · standby ambulance add-on", "reason": "cheapest"},
{"tier": "GOOD", "label": "G4S · ₹44,640 · ambulance + recce + encrypted radio", "reason": "balanced"},
{"tier": "GREAT", "label": "Topsgrup Elite · ₹64,200 · ALS ambulance + X-ray + court-cleared", "reason": "highest safety"}
]
},
"footer_disclosures": [
"Above 500 attendees, you'll need commissioner permission — partner can guide but the application is yours.",
"Alcohol permits are on you; partner will refuse to deploy without a valid permit.",
"Incident register is shared after the event; keep it for any insurance claim."
]
}
9. CACHING POLICY
- Quote: 24h TTL.
- PSARA license: 90d cache.
- Permit verification: per-event; not cached.
- Recce findings: at partner; encrypted; pointer at TOMO.
- Past events: 3 years on-device, encrypted.
10. ERROR CODES
| Code | Meaning | UI surface |
|---|---|---|
ERR_PSARA_INVALID |
license lapsed | Drop option |
ERR_PERMIT_MISSING_COMMISSIONER |
crowd > 500 without permission | Block book |
ERR_FIRE_NOC_INVALID |
NOC expired | Block book |
ERR_ALCOHOL_PERMIT_MISSING |
flag set, permit absent | Inline collect |
ERR_FEMALE_GUARDS_INSUFFICIENT |
female attendees + 0 female guards | Adjust count |
ERR_FRISKING_LANE_THROUGHPUT_LOW |
lanes < attendees / hour | Add lanes |
ERR_RECCE_NOT_DONE |
high-priority event without recce | Schedule recce |
ERR_BG_BAND_INSUFFICIENT |
guards bg below tier | Upgrade tier |
ERR_TEAM_SHORT_ON_ARRIVAL |
crew short on the day | Emergency backfill |
ERR_PARTNER_OFFLINE |
partner API down | Try next |
11. SANDBOX → PRODUCTION CHECKLIST
- Sandbox commissioner permission gate at 500.
- Sandbox fire NOC gate.
- Sandbox alcohol permit gate.
- Sandbox female-guards minimum gate.
- Sandbox frisking-lane throughput gate.
- Sandbox recce mandatory flow for high-priority events.
- Production PSARA database synced weekly per state.
- Production court-record check supplier validated.
- Production rate limit: 4 events / user / month (anti-abuse).
- Production CPC HMAC-SHA256 5-min replay verified.
12. ANTI-FABRICATION RULES
- NO
paid_placementon agencies. - NO synthetic team photos.
- NO claim of commissioner permission on user's behalf — that's user's filing.
- NO bundling promo into total.
- NO TOMO-issued PSARA badge.
- NO synthetic recce findings.
- NO marketing of "celebrity protection" without partner credentials.
- NO claim of police partnership.
- NO holding incident register at TOMO beyond pointer.
- NO marketing language ("smart event security").
13. REGULATORY FRAMING
- PSARA 2005 + state rules — license per state.
- CrPC + Police Acts — DGP / commissioner permission for large public gatherings.
- Fire Services / Civil Defence — venue NOC.
- State excise — alcohol permits.
- Arms Act 1959 — no armed guards at public events (typically).
- Indian Medical Council Act / NMC — ambulance standby compliance.
- DPDPA 2023 — guards roster + recce + incident register = personal data; partner is processor.
- Consumer Protection Act 2019 — partner is service provider.
- TOMO is router only — does NOT employ guards, does NOT operate hardware, does NOT obtain government permissions.