What you see
A row of 7 cards, one per day of the selected week. Each card shows:
Occupancy % — large number at the top (e.g. 45%)
Rooms occupied / total — e.g. 9/20 rooms
Visual bar — color-coded fill matching the occupancy level
Daily revenue — sum of room rates for that night
Trend icon — ↑ green if ≥80% full, ↓ red if ≤20%
Color scale
Occupancy | Color |
0% | Gray (empty) |
1–25% | Red (very low) |
26–50% | Yellow (low) |
51–75% | Blue (healthy) |
76–100% | Green (strong) |
Navigating time
Previous / Next arrows: step one week backward or forward
This Week / Next Week: quick jump buttons
Date picker: jump to any specific week
Today's date is highlighted in the header row
You can look at past weeks (historical occupancy from completed stays) or future weeks (confirmed upcoming bookings).
How occupancy is calculated
For each day in the week, the system counts a room as occupied if a booking covers that night — specifically, the date falls within check-in ≤ date < check-out (the checkout day itself frees the room).
Bookings included:
Confirmed — booked but guest hasn't arrived yet
Checked-in — guest currently in-house
Checked-out / Completed — historical stays (so past weeks render properly)
Excluded: cancelled, no-show, and pending bookings — these never occupied a room.
Occupancy % = occupied rooms ÷ total rooms × 100
How revenue is calculated
For each day, daily revenue = sum of (each booking's total_amount ÷ nights) for bookings that cover that night. This spreads a multi-night stay's total evenly across its nights.
Click a day for details
Clicking any day card opens a modal with the full list of guests/bookings occupying rooms that night, so you can drill into who's staying and in which room.
When a day shows empty
A day will show 0% if:
No bookings cover that night, or
All bookings for that night are cancelled / no-show / pending, or
The hotel has no rooms configured yet
