User guide · Reference
Glossary
The words the app and this guide use, in alphabetical order, defined the way the code defines them.
A–Z
Front-desk, money, housekeeping, restaurant, staff and system terms.
- Arrival day
- The hotel-local calendar date of a booking's check-in. A guest can only be checked in on or after it; an early arrival is a date change first, so the folio charges the nights actually slept. Confirmed bookings whose arrival day is today (or earlier) sit in the Arriving Today column.
- Audit log
- The hotel-wide trail of who changed what, when, from which address. Readable by Super Admin, Hotel Manager, Security and anyone with Settings Full.
- BAR / rate plan
- BAR is the Best Available Rate: the room type's base rate. A rate plan adjusts it per night, kinds are BAR (rack), Weekend and Promo: by a percentage or a fixed nightly amount, optionally limited to certain weekdays, a validity window and one room type. The booking stores the average nightly rate and the tax-inclusive stay total.
- Board column
- Where a booking sits on the pipeline board: New Requests, Confirmed, Arriving Today, In-House Guests, Checked Out, Cancelled. Columns are derived from status plus dates and today's date, never stored, cancelled and no-show both land in Cancelled.
- Booking group
- A GRP- coded block of rooms for one guest (the organiser): a name, dates, an optional rate plan and a list of room types with quantities, capped at 80 rooms. Group rooms start unassigned, so the capacity guard, not the double-booking constraint, protects them.
- Capacity guard
- The per-night check that stops a room type being oversold: assigned and unassigned active bookings of the type are counted against its sellable rooms (maintenance and out-of-service rooms excluded) for every night of the stay, with the room-type row locked so two desks cannot both take the last room. Refuses with “No Deluxe left for <date>”.
- Checklist template
- The hotel's list of cleaning steps (Settings → Ops), copied onto every housekeeping task when it is created. Falls back to the built-in ten-step list if the hotel has none. Ticks on a task are its own; editing the template does not change open tasks.
- Deposit
- A percentage of the stay total (Settings → Hotel, deposit %) posted as a deposit line on a pre-arrival invoice when a booking is confirmed. At check-in that invoice becomes the folio: room and tax lines are appended and each deposit line is offset by an equal “Deposit applied” credit, so money paid against the deposit counts towards the stay.
- Derived status
- Anything computed from canonical fields at read time and never written to the database: board columns, room status, housekeeping state, invoice “overdue”, stock low/out, duty status, attendance %, leave day counts. One shared function computes each, used by both server and screen, so they can never disagree.
- Duty status
- On duty / Off duty / On leave for a staff member right now, derived in this order: approved leave covering today, then today's attendance mark (absent → off; present or late → duty), then a live rota window (including yesterday's overnight shift before it ends), else off. The reason travels with the status (“No shift on today's rota”).
- Exclusion constraint / double booking
- The database rule that makes double-booking impossible: for one hotel and one room, no two bookings in status new, confirmed or checked-in may overlap on a half-open date range [check-in, check-out). Same-day turnover is legal. A violation surfaces as 409 “Room is already booked for those dates”. Unassigned bookings are outside it (see capacity guard).
- Folio
- The guest's running bill for a stay: the invoice (INV- code) opened at check-in with room-night and tax lines, onto which POS room charges and fees post, and which must be settled (or explicitly settled later) before check-out closes it. One open folio per in-house stay.
- Hotel-local day
- The calendar date in the hotel's IANA timezone (Settings → Hotel), computed once per request. Every “today”: arrival day, arriving column, overdue, night audit, attendance, uses it, and timestamped facts (payments, closed tickets) are grouped by the instants the local day starts and ends, not UTC midnight.
- In-house
- A booking in status Checked In: the guest is physically staying. Shown in the In-House Guests column; its room reads Occupied.
- KDS
- Kitchen Display System: the kitchen's view of sent tickets, moving each through New → Preparing → Ready → Served, one step at a time. Lines reach it when the server presses Send.
- Modifier
- An option attached to a menu item on a ticket line (size, extra, sauce…) from the item's modifier groups. Each carries a price delta added to the unit price; a line's total is (item price + modifiers) × quantity.
- Night audit
- Closing the hotel-local business day once (Reports, needs Reports Edit). Refreshes room projections and freezes a snapshot: rooms total/occupied/dirty/out of order, in-house, arrivals, departures, no-shows, cancellations today, cash in, refunds, POS closed total, and outstanding invoices. A day can be closed only once.
- No-show
- A booking marked No Show because the guest never arrived. Allowed from new or confirmed only. Posts a no-show fee, a percentage of one night (Settings → Hotel, default 100%), as a fee line on the pre-arrival invoice. Counts as Cancelled on the board.
- Out of service
- A room flag set from Rooms (with an optional reason) that removes the room from sale and from every availability list; the room reads Out of Service and wins over every other status. Return clears the flag. Both work offline. Distinct from Maintenance, which comes from a work order that blocks the room.
- Outlet
- A point of sale, restaurant, bar, pool bar, with its own menu categories, tables, cash shifts and service-charge percentage. Tickets, shifts and menu items always belong to one outlet.
- Overdue
- Overdue is never stored: an invoice is overdue when it is still pending or partially paid and its due date is before the hotel-local today. Paying it makes it Paid.
- Part-payment
- A payment smaller than the outstanding balance; the invoice becomes Partially Paid. Payments can never exceed the balance, and net received (payments minus refunds) is what the status is computed from.
- PIN sign-in
- The shared four-digit front-desk PIN (Settings → Hotel, Settings Full to change): pick your name, type the PIN. It can sign in any active user except admin-tier roles, Super Admin, Hotel Manager, or any role holding Settings Full, which always need email and password. Ten wrong PINs in 15 minutes lock the pad.
- Purchase order
- A PO- coded order to a supplier for stock items: draft → ordered → partial (some lines received) → received, or cancelled. Receiving books a stock movement per line; received and cancelled orders are final.
- Quote
- The stay price the wizard shows before you save: for each night, the room type's base rate adjusted by the chosen rate plan, summed, then service charge, VAT and levy applied with the hotel's canonical rounding. The saved booking keeps the average nightly rate and the total; the folio opened at check-in matches it exactly.
- Ready for Guest (housekeeping)
- The final housekeeping column. Only a room with no open task, no card in Dirty, Assigned, In Progress or Inspection, can be sold or checked into; the check-in room picker offers ready rooms only.
- Refund cap
- Every refund is tied to one original payment and capped by what is left on it, refunds on a payment can never add up to more than that payment, and by the net amount received on the invoice. Leaving the amount blank refunds whatever remains on that payment. Refunds need Payments Full.
- Reorder level
- The quantity at which a stock item becomes Low (quantity ≤ reorder level; zero is Out). Crossing it downwards raises a notification (“Reorder level reached. Create purchase order.”). Status is derived, never stored.
- Room charge
- The Charge to Room tender in POS: closing a ticket posts its subtotal, service charge and VAT as separate POS lines onto the in-house guest's open folio. Needs a checked-in guest in that room; idempotent if the ticket was already posted.
- RLS / tenant
- Every table is scoped by hotel and Postgres row-level security enforces it on every query, so one hotel can never read another's rows, including demo sandboxes, which are ordinary tenants. Your session carries the hotel; there is no “switch hotel” inside the app.
- Sandbox
- On the public demo, a private clone of the template hotel created for your browser when you pick a role. Lives 24 hours (the Demo chip counts down), can be reset, and is swept automatically. Same browser → same sandbox; role switches reuse it.
- Sequence (BK-/INV-/PAY- codes)
- Human-readable codes come from per-hotel counters, one per kind: BK bookings, GRP groups, INV invoices, PAY payments, HK housekeeping tasks, M work orders, TKT tickets, SHF cash shifts, PO purchase orders, S staff, LV leave. Settings → Numbering shows the next value and lets Settings Full move it upward only.
- Settle later
- Checking out with a balance still owed (bill-to-company, disputed charge). Needs Payments Full, is written to the audit log, and leaves the folio open for collection. Everyone else must collect the balance before check-out.
- Shift (POS) vs shift (rota)
- Two unrelated things. A POS shift (SHF- code) is a cash-drawer session on one outlet, opened with a float, closed with a cash-up; one open per outlet. A rota shift is a staff template window in minutes since midnight (Morning 07:00 – 15:00, Night 18:00 – 06:00) assigned to one person on one date; it feeds duty status.
- Stayover
- A guest who stays another night. Housekeeping's stayover refresh task type is the lighter clean for occupied rooms, as opposed to the checkout clean created automatically at check-out and the deep clean requested from Rooms.
- Stock movement
- One row per change to a stock item's quantity with a reason: receive (from a purchase order), adjust (manual count, cannot go negative), consume (recipe-driven depletion when a POS ticket closes, clamped to what is on hand, with a notification for any shortfall) or waste.
- Supervisor authorisation
- Some POS discounts (staff meal, manager comp) require a second person's email and password in the dialog. The supervisor must be active and hold Payments Full or Settings Full. Their identity is recorded with the ticket.
- Tender
- How a ticket is paid: Cash, Mobile Money (MTN or Airtel), Card, or Charge to Room. Closing a ticket records the tender; only room charge touches a folio.
- Tier
- A guest's loyalty band, Platinum, Gold, Silver or Bronze, set on the profile (inline-editable in the list). Guest CRM counts every non-Bronze guest as a loyalty member.
- Void reason
- The reason required when voiding a line that has already been sent to the kitchen (unsent lines are simply deleted). The list is per hotel in Settings → Ops; defaults include “Guest changed mind”, “Wrong item rung” and “Item unavailable / 86'd”.
- Walk-in
- A guest with no reservation who books at the desk: booking source Walk-in in the wizard, usually checked in straight away. Other sources are Direct, Booking.com, Expedia, Travel Agent and Corporate.
- Work order
- An M- coded maintenance job: title, category, priority (High/Medium/Low), optional room or location, technician or external contractor, due date, estimated cost. Lifecycle Reported → Assigned → In Progress ⇄ Waiting for Parts → Completed → Closed; closed is final. An order that blocks its room makes the room read Maintenance until it completes.