Reports, exports & night audit
Purpose and who uses it
Hotel ManagerAccountantHR ManagerOne page that reads the same tables as the Dashboard and turns them into charts, files and a daily close.
Reports & Analytics shows revenue, occupancy, attendance, loyalty and stock as live queries, nothing is pre-computed, so what you see is what the database holds right now. From here you can queue an Excel or PDF export, print the page, and close the business date (the night audit).
You only see sections your role can read elsewhere: revenue, payments and inventory need Payments view; occupancy, booking sources and room-type performance need Bookings view; housekeeping and maintenance need Rooms; attendance needs Staff; loyalty needs Guests. Exports follow the same rule, so a workbook never contains a sheet you could not see on screen.
Screen anatomy
Toolbar actions, the period bar, the KPI strip, the charts, the area cards and the Exports tray.
- 1Page head“Every module, one period; compare with the period before; export or print”.
- 8ToolbarExport PDF and Export Excel (Reports Full), Close 2026-09-04 (Reports Edit, only while the day is open) and Print.
- 2Period barToday, Last 7 / 30 / 90 days, Month, Quarter or Year to date, or two dates of your own; tick Compare with previous period to see the period of equal length before it. The choice is in the address bar, so a report can be bookmarked or shared.
- 3KPI stripOccupancy, ADR, RevPAR, average stay, room revenue, net receipts, POS sales, outstanding now, arrivals, departures, cancellations, no-shows, rooms cleaned, clean turnaround, open work orders, attendance and new guests, each with its change against the previous period when comparing. Tiles your role cannot see are simply absent.
- 6ChartsNet receipts and Occupancy per day (dashed line = previous period), Check-ins and check-outs, Room type performance, Staff attendance, Guest loyalty, Inventory position, Booking sources.
- 7Exports tray“Generated files are kept for 30 days”. Filter by filename or requester, Status and Kind; Download when Ready.
- 4Reports by areaFront office, Revenue & payments, Restaurant & POS, Rooms, Housekeeping, Maintenance, Inventory, Staff, Guests, Night audit and, for administrators and Security, Security & access: each card carries its headline figure for the period and opens that area's full report with the same period.
Reading the report cards
What each card measures and where the number comes from.
- Net receipts: payments received minus refunds per hotel-local day, for the whole period; the dashed line is the same series for the previous period when Compare is on.
- KPI definitions: Occupancy = room nights sold ÷ room nights available (rooms × days). ADR = room revenue ÷ nights sold. RevPAR = room revenue ÷ nights available. Average stay = nights ÷ stays that arrived in the period. Room revenue = the agreed nightly rate × nights that fall in the period for confirmed, in-house and departed stays. Outstanding is the balance of every open folio right now, not a period figure.
- Occupancy: rooms occupied per night as a share of all rooms, with the previous period dashed when comparing.
- Check-ins and check-outs: arrivals and departures per day over the last two weeks. Room type performance: occupied nights per type as a share of that type's capacity over the last 30 days.
- Staff attendance: daily attendance % with Present / Late / Absent totals in the header. The card only appears once attendance has been recorded.
- Guest loyalty: guests on file, loyalty members, the returning-guest rate, a bar per tier (Platinum, Gold, Silver, Bronze) and how many guests are in-house right now. Spend figures are collected payments.
- Inventory position: Healthy / Low stock / Out of stock counts and how many items carry expiry dates. Full detail is on the Inventory page.
- Booking sources: a count per source (Direct, Walk-in, Booking.com, Expedia, Travel Agent, Corporate) for bookings created in the last 90 days.
- Operations tiles: rooms cleaned and the average clean turnaround (task created to Ready), open work orders, attendance % (present plus late over everything recorded) and guests created in the period.
The page refreshes itself whenever a booking, invoice, housekeeping task, work order, room or staff record changes anywhere in the hotel, you do not need to reload.
Area reports
Eleven pages, one per part of the hotel, each with its own KPIs, charts and tables over the period you pick.
Every card under Reports by area opens its own page. The period bar at the top is the same one the hub uses and travels in the address, so a bookmarked area report always reopens on the same dates. The arrows in the page head step through the areas in order; Excel and PDF (Reports Full) export exactly what the page shows, one sheet per chart or table, plus a Summary sheet with the KPIs.
- Front office (Bookings view): occupancy per night, ADR, RevPAR, average stay, arrivals and departures, cancellations and no-shows, lead time with a histogram, sources, room type performance and ADR by type, group versus individual.
- Revenue & payments (Payments view): net receipts per day, invoiced versus collected per week, methods and mobile money networks, refunds, receipts by cashier, and outstanding balances by age (right now, not for the period).
- Restaurant & POS (Payments view): sales per day, a weekday by hour heat map, sales by outlet and server, top items by quantity and by revenue, voided lines, kitchen status at close, covers and average ticket.
- Rooms (Rooms view): occupancy by type and by floor, revenue per room, rooms by status right now, and the open work orders that keep a room out of sale.
- Housekeeping (Rooms view): tasks per day, by type, status, priority and floor, rooms readied per attendant and each attendant's turnaround.
- Maintenance (Rooms view): orders per week, by category, priority, status and technician, estimated cost by category, time to repair, and the orders that block rooms.
- Inventory (Payments view): quantity in and out per day, out by reason and department, most consumed and most received items, and a low-stock table for right now.
- Staff (Staff view): attendance per day and by department, late marks and absences per person, marks by kind, leave by type and status.
- Guests (Guests view): new guests per week, arrivals split into first stay and returning, tiers, top countries, VIP and corporate counts, top spenders for the period.
- Night audit (Reports view): every close in the period as recorded at the time, occupancy and money at close, movements, and the closes table.
- Security & access (administrators and Security): events and denied requests per day, events by role, top actions and people, the most recent denied requests.
Custom reports and saved reports
Build your own report from any area of the system, save it under a name and share it with the hotel.
Open Custom report from the toolbar (or go to /reports/custom). The left column describes what you want; the right pane runs it as you change things, so there is no Run button to remember.
- 1Pick a sourceBookings, Room nights, Invoices, Payments, POS tickets, POS lines, Stock movements, Housekeeping tasks, Work orders, Attendance or Audit events. You only see the sources your role may read; Audit needs the same access as the Audit log page.
- 2Choose the date field and the periodEach source offers one or more dates (a booking can be counted by arrival, departure or creation). The period bar is the same one the hub uses, presets or custom dates, up to 366 days.
- 3FilterAdd a filter per column: pick values from a list for statuses and types, type a number for amounts, or ask for empty and not-empty. Filters combine with AND.
- 4Group and measureGroup by a day, week or month bucket and by up to two columns (room type, source, department, payment method and so on). Add up to eight measures: count, distinct count, sum, average, minimum or maximum of a numeric column.
- 5Pick a chartTable is always available. Bar, line and donut need at least one group and one measure; line needs a date bucket.
- 6Save and shareSave report asks for a name and an optional description. Tick Share with the hotel so colleagues can open it from the Saved reports card; they run it with their own access, so a shared report over payments still shows nothing to someone without Payments view.
- Room nights is a virtual source: one row per room per night in the period, with occupied and available flags, so occupancy by floor or by type is a one-line report.
- Money is whole shillings; percentages are rounded to one decimal. Results are capped at 1,000 rows or 400 buckets and the preview says so when it truncates.
- Ownership: only the person who saved a report, or someone with Reports Full, can rename, edit or delete it. Your own reports and the shared ones appear on the hub; private reports of other people never do.
- Export: a saved report has Excel and PDF buttons (Reports Full). The file carries the report name, the resolved period and the row count, and lands in the Exports tray like every other export.
Exporting to Excel or PDF
Hotel ManagerSuper AdminExports run as background jobs; the file lands in the tray and a notification tells you when.
- 1Click Export Excel or Export PDFNeeds Reports Full. The toast reads “Export queued. It appears below when ready”. The request carries the current period (30 days).
- 2Watch the Exports trayThe row starts as Queued, moves to Running while the worker builds the file, then Ready (or Failed with the reason next to the badge). The tray refreshes on the export.done live event, so there is nothing to poll.
- 3DownloadClick Download on a Ready row. Anyone with Reports View can download; the file is named reports-2026-09-04.xlsx or .pdf. A “Export ready, reports-2026-09-04.xlsx. Download it from Reports” notification also arrives in the System category.
- Queued → Running
- Running → Ready
- Running → Failed (error / > 5 MB)
- Excel workbook sheets: Overview, Revenue, Occupancy, Check-in out, Room types, Booking sources, Staff attendance, Guest tiers, Inventory, each only if you may see that section. The hotel name, address and generation time sit in the title block.
- PDF: the same sections laid out as a printable report.
- Guest list: the Export button on the Guests page queues a
guests-xlsxexport (code, name, phone, email, country, tier, stays, lifetime spend). It needs Reports Full and Guests view, and it downloads from this tray too. - Retention: files are stored for 30 days; older ones are pruned whenever a new export is queued. The tray lists the 20 most recent. Files above 5 MB fail rather than store.
Night audit, closing the business date
Hotel ManagerAccountantHR ManagerFreeze one hotel-local day: occupancy, cash, POS and open balances, and re-sync every room's state.
- 1Check the business-date stripIt shows today's hotel-local date (from the timezone in Settings → Branding & locale) and whether it is still open.
- 2Click Close 2026-09-04 in the toolbarNeeds Reports Edit. The button is hidden once the day is closed.
- 3Confirm “Close 2026-09-04?”Dialog text: “This freezes a snapshot of occupancy, cash and open invoices for the hotel-local business date. You cannot close the same day twice.” Click Close business date.
- 4DoneToast “2026-09-04 closed”; the strip changes to “Closed 23:58” and an audit-log row night_audit.closed carries the snapshot.
| Field | Type | Notes |
|---|---|---|
| Rooms | Total rooms, occupied (in-house bookings), dirty (cleaning or a pending/in-progress housekeeping state), out of order. | |
| Bookings | In-house, arriving today (new or confirmed with today's check-in), departing today (in-house with today's check-out), no-shows dated today, cancellations made today. | |
| Cash | Payments received, refunds and closed POS ticket totals, by the instants the hotel-local day starts and ends, so a payment taken at 01:00 belongs to that day, not to yesterday UTC. | |
| Invoices | Count and total of invoices still owing. Balance is derived from payments (the stored status column is only a cache). |
Permissions
View to read and download, Edit to close the day, Full to create exports.
| Role | Reports |
|---|---|
| Super Admin | Full |
| Hotel Manager | Full |
| Receptionist | None |
| Accountant | Edit |
| Housekeeping Mgr | View |
| Maintenance | None |
| Restaurant Mgr | View |
| HR Manager | Edit |
| Security | None |
| Waiter | None |
| Chef | None |
- View: open the page, read every section your other module levels allow, list and download exports, see the night-audit status.
- Edit: Close business date. By default this includes the Accountant and HR Manager.
- Full: Export Excel, Export PDF and the Guests page Export button. The Export action is a Full-level action everywhere in the app, so by default only Super Admin and Hotel Manager produce files; Accountants download them.
Tips
Jump links, the exports filter and closing at the right time.
Errors you may see
Messages from the reports, exports and night-audit endpoints.
2026-09-04 is already closedGuest exports need Guests view accessExport is queuedExport not found- Business date
- The hotel-local calendar day (per the timezone in Settings), which is what the night audit closes.
- Night audit
- The daily close: a frozen snapshot of rooms, bookings, cash and open balances, plus a room-state re-sync.
- Export tray
- The Exports card listing the last 20 generated files with their status.