The model
Housing is built from four things, each layered on the last:Hotels
The properties you house people at. Each hotel carries its own room types.
Room types
Deluxe King, Twin — the unit housing is managed in. Never a physical room number.
Room blocks
A contract: n rooms of one room type per night, with rates as contract notes and pickup tracked against it.
Stays
One attendee’s reservation — hotel, room type, nights, hotel confirmation, check-in. The rooming list is the stays list.
- A room type is not a physical room. Inventory is a per-night count on a room type, the way a ticket type’s capacity is a count — not a list of door numbers. If the hotel eventually assigns “Room 1208”, that is an optional late detail recorded on the stay, never something a reservation depends on.
- You negotiate with the hotel, not with a counter. Contracted counts are a promise; exceeding one is a fact the console flags so you can renegotiate — never an error that blocks a booking.
Enable the module
Housing is off by default. Open any of its pages — Hotels, Room blocks or Stays in the event navigation — and the enable wall appears; one click switches it on for this event. Enabling is one-way and per event.Suggested setup order
1
Add the hotel
Create each property you have contracted rooms with on the Hotels page.
2
Add its room types
On the hotel’s page, add the room types your contract covers — Deluxe King, Twin — with how many guests each sleeps.
3
Record the room block
Create a room block per contract: pick the hotel and room type, then enter the contracted count and rate for each night.
4
Arrange stays
Place attendees with stays — each one optionally attributed to a block, which is what drives the block’s pickup numbers.
Where housing shows up elsewhere
- The attendee detail page gains a Housing section showing that person’s stays.
- Every stay change lands on the attendee’s activity timeline, alongside their registration history.
- Automations can react to a stay being confirmed by the hotel or the guest checking in — “email the guest their hotel confirmation” is a flow you build, not a special feature.
- The stays table exports to CSV — that export is your rooming list for the hotel.
Rules to know
- Room type ≠ physical room; a stay never requires a room number to exist.
- Pickup and availability are always derived from the actual stays — they cannot drift and cannot be edited by hand.
- Going over a contracted count is flagged, never blocked.
- Rates and currency on blocks are contract notes — nothing is charged to anyone through this module.
- Hotels, room types and blocks archive rather than delete; who was housed where must stay answerable.