> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orriven.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Housing overview

> How the Housing module models hotel accommodation: hotels, room types, room blocks and stays — and the order to set them up in.

The **Housing** module manages an event's hotel accommodation the way organizers actually contract it: you negotiate **n rooms of one room type per night** with a hotel, watch **pickup** against that contract, and keep a rooming list of who is staying where. It is an optional module, off by default and [enabled per event](/en/events/settings).

## The model

Housing is built from four things, each layered on the last:

<CardGroup cols={2}>
  <Card title="Hotels" icon="building" href="/en/housing/hotels">
    The properties you house people at. Each hotel carries its own room types.
  </Card>

  <Card title="Room types" icon="bed" href="/en/housing/hotels">
    Deluxe King, Twin — the unit housing is managed in. Never a physical room number.
  </Card>

  <Card title="Room blocks" icon="calendar-range" href="/en/housing/room-blocks">
    A contract: n rooms of one room type per night, with rates as contract notes and pickup tracked against it.
  </Card>

  <Card title="Stays" icon="key-round" href="/en/housing/stays">
    One attendee's reservation — hotel, room type, nights, hotel confirmation, check-in. The rooming list is the stays list.
  </Card>
</CardGroup>

Two ideas shape everything here:

* **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

<Steps>
  <Step title="Add the hotel">
    Create each property you have contracted rooms with on the [Hotels](/en/housing/hotels) page.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Record the room block">
    Create a [room block](/en/housing/room-blocks) per contract: pick the hotel and room type, then enter the contracted count and rate for each night.
  </Step>

  <Step title="Arrange stays">
    Place attendees with [stays](/en/housing/stays) — each one optionally attributed to a block, which is what drives the block's pickup numbers.
  </Step>
</Steps>

<Tip>
  You can arrange stays without any room block at all — blocks are the contract-tracking layer, not a prerequisite. Add them whenever the contract exists.
</Tip>

## Where housing shows up elsewhere

* The [attendee detail page](/en/events/attendees) gains a **Housing** section showing that person's stays.
* Every stay change lands on the attendee's activity timeline, alongside their registration history.
* [Automations](/en/marketing/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.
