Project Overview
Project Magee is HotelMap's robotics project focused on the event attendee and, most precisely, the non-local event attendee who is going to require accommodation during an event. The name Magee refers to the MAGS entity — the system intelligence that operates in the background of all HotelMap tracking and reporting infrastructure.
The project spans the full lifecycle of the attendee: from the moment they commit to attending an event, through weeks or months of pre-event marketing, to the point at which they either book their hotel through the official HotelMap channel or they do not. Everything Magee builds serves that final binary outcome — and that outcome is an opportunity, not an inevitability.
The Optimised Capture Opportunity
Every other channel in hotel marketing competes for the attention of people who might want to travel. OTAs, search ads, and display campaigns all target people in an undecided state — browsing, comparing, not yet committed. The event housing context is categorically different. The travel decision has already been made. The attendee has paid their registration fee, confirmed a date, and committed to being at a specific location. They need a bed. The question is only whose bed.
This is not a customer acquisition problem. It is a routing problem. HotelMap is the official channel — already known to the attendee, already in their confirmation email, already endorsed by the event they trust. The friction that stands between HotelMap and the booking is not disinterest. It is inertia, price perception, and a booking experience that is not fast or compelling enough to win before the attendee goes elsewhere.
The commercial reality
The event organiser sold the ticket. They created the reason to travel. The non-local attendee paid to attend and will book a hotel regardless — that is not in question. The only question is which booking channel captures the commission. At an event with 10,000 attendees, 8,000 of whom are non-local, a capture rate of just 50% generates approximately £300,000 in hotel booking commission. That money exists. It is being spent. Right now it flows to OTAs and direct hotel websites. Every percentage point of capture rate improvement is a direct transfer of that revenue to the event organiser and HotelMap.
| Metric | Value | Note |
|---|---|---|
| Total attendees | 10,000 | Representative major professional event |
| Non-local attendees | 8,000 | 80% requiring accommodation — all booking a hotel somewhere |
| Bookings at 50% capture | 4,000 | Half the non-local audience routed through the official channel |
| Commission at 50% capture | £300K | Revenue that exists regardless — the only variable is who captures it |
Revenue framing — what closing the gap means
The gap between the current 48% capture rate and what is achievable translates directly and calculably into revenue. Based on 5,000 non-local attendees at a representative professional conference, average nightly rate £175:
| Scenario | Capture rate | Bookings captured | GMV (2 nights, £175/night) | Commission at 10% |
|---|---|---|---|---|
| Current baseline | 48% | 2,400 | £840,000 | £84,000 |
| Improved — conservative | 58% | 2,900 | £1,015,000 | £101,500 |
| Improved — target | 68% | 3,400 | £1,190,000 | £119,000 |
| Opportunity per event (baseline to target) | +20pp | +1,000 bookings | +£350,000 | +£35,000 |
Registration — The Starting Gun
Registration is the moment an attendee commits. It is also the moment at which HotelMap must first act: classifying the registrant as local or non-local, assigning a persistent identifier, and firing the first hotel communication while intent is at its highest. Everything that follows depends on the quality of what is captured here.
The multi-system registration problem
A single event rarely runs on a single registration system. The most common architecture separates visitors from exhibitors, each with their own platform, data schema, and registration journey. Exhibitors may be registered months before the event opens to visitors. They often register multiple people under a single company booking. Their profile data — including contact names, company address, and attendance days — arrives through an exhibitor management system that has no connection to the visitor registration platform.
Data we must capture at registration
Not all registration systems collect all fields. The following table defines required versus ideal fields for Magee classification and communication. Where a field is absent, Magee uses the next-best signal in its hierarchy.
| Field | Required for | Visitor systems | Exhibitor systems | Fallback if absent |
|---|---|---|---|---|
| Email address | Identity anchor, tokenised links, SHA-256 hash | ✓ | ✓ | None — required |
| Home postcode / ZIP | Primary location classification | ✓ | ✗ | IP geolocation at registration |
| Country | International classification, currency | ✓ | Partial | IP geolocation country field |
| Company address | Exhibitor location proxy | ✗ | ✓ | IP geolocation |
| Attendance dates | Pre-populate hotel search dates | Partial | Partial | Default to full event duration |
| Job title / seniority | Segment by likely spend and decision-making authority | Partial | ✓ | Omit from segmentation |
| Language / locale | Email language selection, UI localisation | Partial | ✗ | Browser Accept-Language header |
| Registration IP address | Location classification, VPN detection | ✓ | ✓ | Captured server-side regardless |
The reg_id — the anchor for everything
At the moment a registration record is normalised into the Magee system, a reg_id is assigned. This identifier is immutable, event-scoped, and becomes the primary key across every subsequent system touch: email sends, hotel page views, search events, booking completions, and post-event reconciliation. Nothing in the Magee stack operates without it.
| Magee registrant field | Definition |
|---|---|
| reg_id | UUID assigned at ingestion; immutable primary key |
| Raw email plus separate SHA-256 hash for identity-safe joins | |
| event_id | Scopes all downstream activity to the relevant event |
| attendee_type | visitor | exhibitor | speaker |
| location_raw | Postcode, company address, or country source field |
| is_non_local | Boolean derived from location classification |
| distance_km | Geocoded distance from attendee location to event venue |
| confidence | Classification confidence score from 0.0 to 1.0 |
| locale | Language tag used for communications and UX copy |
| registered_at | Registration ingestion timestamp |
User Journey Intelligence
Knowing that 52% of non-local attendees do not book through the official channel is the beginning of the insight, not the end of it. To improve the capture rate systematically, we need to understand where in the journey people leave and why. This section defines the signal architecture, the analytical methods, and the specific behavioural questions that Magee is built to answer.
What to track — and what not to
The temptation in journey tracking is to record everything. The problem is signal density without signal quality. An attendee who scrolls through 40 hotel cards on a mobile device generates hundreds of events that tell us very little about why they did not book. What we need is a concise, structured set of events that map directly to the questions we are trying to answer about capture rate.
Friction identification — where and why people stop
The funnel has a small number of high-leakage points. Identifying them requires two complementary approaches: quantitative funnel analysis to find where the drop-off occurs, and qualitative session replay to understand why. A hotel detail view to booking initiation rate below 8% is a strong signal that the hotel presentation — price display, room type clarity, availability messaging — is creating hesitation.
Largest absolute loss: Hotel page → Search executed (900 attendees). Largest relative loss: Hotel detail → Booking initiated (51% drop).
Session replay tools (Microsoft Clarity is free and sufficient for most events; FullStory and Hotjar provide more analytical depth for high-traffic deployments) record anonymised screen interaction. They reveal behaviours that funnel analytics cannot. Three specific session signals are particularly diagnostic:
Repeat visit behaviour
The majority of event hotel bookings do not happen on the first visit to the hotel page. The attendee arrives after the registration confirmation, sees the hotels, may even search — and then leaves without booking. They return later, often prompted by a follow-up email. Understanding this consideration cycle is essential to timing the retargeting sequence correctly and to evaluating the true value of each marketing touchpoint.
Date search patterns
Date search errors are one of the highest-frequency, most fixable causes of failed bookings. When an attendee searches for the wrong dates — most commonly searching a single night when the event runs for three days, or searching the wrong month — they will either see no results, see poor availability, or book a hotel for the wrong period entirely and cancel later. All three outcomes damage capture rate.
The correct default dates for a hotel search are: check-in on the evening before the first event day, check-out on the morning of the day after the final event day. These defaults should be pre-populated from the event data, not left to the attendee to fill in.
| Metric | What it reveals | Action if elevated |
|---|---|---|
| % of searches using default dates | How many attendees accept the pre-populated dates without changing them | If low (<50%), the defaults are wrong or not visible enough |
| % of searches for wrong month | Date entry errors — searching November for a December event | Add event date confirmation prompt before search executes |
| % of searches for 1 night vs event duration | Partial stay intent — some attendees attend only one day | Show event schedule in search to help attendees choose their days |
| Extended stay rate | Attendees adding nights before or after the event | Opportunity: promote extended stay options and local attractions |
| Search refinement rate | How many attendees change their dates after seeing results | High refinement = results are not meeting expectations at initial dates |
Speed to book — minimising cognitive load
The fastest path from registration to confirmed booking is the highest-converting path. Every additional step, every additional decision, every additional screen is an opportunity for the attendee to be distracted, interrupted, or simply to decide they will do it later. Later very often becomes never.
The optimal hotel booking flow for an event attendee who arrives via a registration confirmation email contains three steps: a search results page with pre-populated dates and guest count; a hotel detail page with the room type, price, and a single clear call to action; and a payment and confirmation screen.
| Metric | Target | Intervention if off-target |
|---|---|---|
| Time from registration to first hotel page view | <24 hours median | Redesign confirmation email hotel CTA — prominence and placement |
| Time from first hotel page view to booking | <7 days median | Review the Day 2 follow-up email — is it reaching non-converters? |
| Time spent on search results page before clicking through | <90 seconds median | Too long: too many options, poor sorting; too short: bad results, bouncing |
| Time from booking initiation to confirmation | <4 minutes | Payment form friction — reduce required fields, add saved payment options |
| Booking form completion rate | >80% | If below 80%, add form analytics to identify the specific abandonment field |
Testing — Meaningful, Scalable, Actionable
The capture rate can only be improved systematically if changes are tested rather than assumed. But event housing has a structural challenge that most digital testing frameworks are not designed for: per-event sample sizes are small, test windows are short and non-repeating, and the audience is a single cohort — you cannot run the same person through two different booking experiences simultaneously.
The sample size problem
A typical event may have 1,000 non-local attendees. To detect a 5 percentage point improvement in booking conversion (from 48% to 53%) at 80% statistical power and 95% confidence, the minimum sample size is approximately 900 per variant — very close to the entire non-local population of a typical event. There is no room for multiple variants, and the test will have weak power to detect smaller effects.
Cross-event test pools
The solution to small per-event samples is to run the same test across multiple events simultaneously, treating all non-local attendees across the pooled events as a single experimental population. This requires a consistent test variant assignment mechanism — assign by a hash of reg_id so the same attendee always sees the same variant if they attend multiple events during the test window — and a consistent outcome definition across all events in the pool.
| Test type | Suitable for | Assignment method | Risk level |
|---|---|---|---|
| A/B — single variant | High-traffic events or cross-event pools. One change at a time. | Hash of reg_id — 50/50 split | Low |
| Email sequence holdout | Testing full email cadence changes — withhold a sequence element from a control group | Random 20% holdout assigned at registration | Low–medium |
| Multivariate | High-volume events only. Testing combinations of UI changes simultaneously. | Fractional factorial design | Medium |
| Holdback / shadow | Measuring the effect of a complete new feature vs the absence of it | 10% holdback group sees previous experience | Medium |
| Sequential / Bayesian | Ongoing optimisation with continuous result monitoring and early stopping | Bayesian posterior update as data arrives | Requires statistical expertise |
The temptation is to wait for a large event to run a proper test. But a large event that goes badly because of a poor variant is a costly mistake, and the delay waiting for the right event means months of forgone learning. The better approach is to run small, well-scoped changes across many medium-sized events in a cross-event pool. Accept directional results initially. Confirm with higher-powered replication on larger events. Move quickly, record everything, act only on what is significant.
Attendee Identification
Before Magee can track an attendee or work to convert them, it must first answer the foundational question with reasonable confidence: is this person non-local? Do they live far enough from the event venue that they will need accommodation?
The identification framework combines three signal types, each assigned a weight that reflects its reliability. The combined score produces a classification with an associated confidence level.
| Distance from venue | Classification | Action |
|---|---|---|
| 0–50 miles / 0–80 km | Local | Excluded from capture rate audience |
| 50–150 miles / 80–240 km | Likely non-local | Enters capture rate audience, moderate urgency |
| 150+ miles / 240+ km | Definitely non-local | Enters capture rate audience, high priority |
| International | International | Enters audience, flag for currency and arrival day logic |
Location Detection Research
Before building the identification layer, HotelMap conducted a deep engineering review of every available technique for determining a web user's true location — including VPN detection and bypass, cookieless identification, browser fingerprinting, and their legal status under GDPR and ePrivacy. The full research document covers the complete technical landscape in six sections.
| Technique | Resolution | Consent needed | Reliability |
|---|---|---|---|
| Registration address / postcode | Street level | No (provided at registration) | Very high |
| IP geolocation (MaxMind / IPQS) | City level | No (legitimate interest) | Good (66–90% city) |
| Browser timezone | Country / region | No | High |
| JA4 TLS fingerprinting | Device / browser | No (server-side) | High — cross-browser stable |
| Canvas / WebGL fingerprinting | Device | Recommended | Degrading on Safari / Firefox |
MaxMind GeoIP2 as a self-hosted MMDB for baseline geolocation at approximately £25/month, with Spur.us or IPQualityScore for enrichment on VPN-flagged traffic. Fingerprint Pro at £79/month as a probabilistic last resort. Total cost at moderate traffic volumes: under £200/month.
The Tracking Journey
The pre-event window between a registrant committing to attend and the event starting can span weeks or months. During that time Magee must maintain a persistent, enriched record of each non-local registrant without relying on third-party cookies, which are blocked on Safari and partitioned on Chrome and Firefox.
Identity resolution hierarchy
Email retargeting cadence
| Timing | Email type | Content strategy |
|---|---|---|
| Immediately post-registration | Confirmation + hotel CTA | Highest-conversion moment. Embed hotel booking as an integrated step. |
| 24–48 hours later | Complete your stay | Feature top three hotels by proximity and value. Include rate comparison. |
| One week post-registration | Rate urgency | Real-time availability data. 'Rooms filling up' with accurate inventory signals. |
| Two weeks before event | Last chance for group rate | Countdown timer. Social proof: number of attendees who have already booked. |
| One week before event | Final reminder | Remaining inventory, urgency messaging, any open cart from prior browsing. |
| Day of cutoff | Urgency close | Book today or lose the group rate. Clear single call to action. |
Analytics Architecture
The reporting layer is the first deliverable in the Magee build sequence. The analytics architecture records all attendee interactions with reg_id as the primary key, stitching sessions server-side regardless of the browser's cookie and storage policies.
- event_id
- reg_id
- is_non_local
- distance_miles
- event_id
- reg_id
- source
- session_number
- event_id
- reg_id
- checkin
- checkout
- guests
- dates_match_event
- event_id
- reg_id
- hotel_id
- booking_id
- revenue
- nights
- capture_rate
- time_to_booking
- touches_before_conv
- revenue_per_attendee
Legal Compliance
IP addresses are personal data under GDPR, confirmed by CJEU rulings. The EDPB Guidelines 2/2023 (finalised October 2024) clarified that ePrivacy Article 5(3) applies to device fingerprinting, tracking pixels, IP-only tracking, and URL tracking. The Magee architecture is designed from the ground up to operate within these constraints using a tiered consent model.
Data controller relationships
The event organiser acts as Data Controller. HotelMap acts as Data Processor under a DPA. Hotels act as separate Data Controllers once bookings are made. Registration forms must include clear privacy notices covering the data flow from registration through to hotel booking. A DPA is required between the event organiser and HotelMap before any data processing begins.