Purpose
Checks the venue and room contact records linked to an event for completeness. Flags missing logistics details that the Lead Planner needs to advance the venue and build the Showbook. Leverages past event history at the same venue to surface lessons that should have been captured.
Goal: Every time we return to a venue, we should be smarter than last time.
Owner
Findings route to: Planning Manager
How to Run
python -m event_audit venue --event 1247
python -m event_audit venue --event 1247 --depth deep
What It Reads
From Odoo (x_events model)
All core event fields plus:
- x_studio_venue (many2one to res.partner — the venue contact)
- x_studio_venue_room (many2one to res.partner — the room within the venue)
- x_studio_on_site_contact, x_studio_related_field_onsite_contact_phone
- x_studio_venue_constraints_details
- x_studio_logistics_notes, x_studio_event_risks
From Odoo (res.partner — venue contact record)
name,street,street2,city,zip,phone,email,websitex_studio_venue_notes— General venue-level information (applies to all events here)x_studio_venue— Is Venue? boolean flagcomment— Internal notes
From Odoo (res.partner — room contact record, if applicable)
namex_studio_venue_room_notes— Room-specific details (ceiling height, floor type, power drops, etc.)x_studio_is_room_in_venue— Is Room In Venue? boolean flag
From Odoo (x_events — past event history)
- Up to 10 most recent closed events at the same venue
- Fields:
x_name,x_studio_date,x_studio_event_type
What It Checks
| Check | Depth |
|---|---|
| Venue street address populated | quick |
| Venue phone number populated | quick |
| Venue notes field populated | quick |
| Room notes populated (if room assigned) | quick |
| Quality of venue notes (dock access, parking, power, restrictions) | standard |
| On-site contact fields populated for this event | standard |
| Venue constraints documented for this event | standard |
| Past events leveraged (notes captured from prior visits?) | deep |
| Risk inference from venue type (arena, outdoor, remote) | deep |
Findings Output
Written to x_studio_audit_venue (text field on x_events).
Also creates structured records in x_audit_run and x_audit_finding. Findings are categorized as:
- Venue record gaps — Missing from the venue or room contact record (applies to all events at this venue)
- Event-specific venue gaps — Missing from this event's record (on-site contact, constraints)
- Lessons from past events — Things that should have been captured based on event history at this venue
- Notes — General observations
Depth Levels
- Quick — Check if address, phone, and notes fields are populated
- Standard — Evaluate quality of venue info, check for missing logistics details, review room notes
- Deep — Full analysis including past event history and inferred risks from venue type
Prompt
Full prompt at scripts/event_audit/prompts/venue.md. Key instructions:
- Distinguish between venue-level info (dock access — applies to all events) and event-level info (specific time restriction for this event)
- Don't flag missing room notes if no room is assigned
- Be practical — missing website is not a blocker, missing dock location is
- If venue has been used before, leverage that ("2 events here, zero notes captured")
- A clean report with detailed venue notes is a valid outcome
Learnings File
scripts/event_audit/learnings/venue.md
Configuration File
scripts/event_audit/auditors/venue.yaml