Sample engagement

AI-Powered Hospitality

Pacific Motel

+17.3% RevPAR

A single inventory system with a voice agent bolted onto the same source of truth — built to stop a 150-room property from selling the same room twice.

Pacific Motel
+17.3% RevPAR

Challenge

Pacific Motel runs 150 rooms across a single property. Rooms, rates, and arrivals were spread across a whiteboard, a spreadsheet, and a booking inbox, with nothing reconciling between them. A walk-in could be turned away from a room that was actually free, and an OTA could confirm a room that had just been sold at the desk — an average of 3.8 times a month, roughly 32 times a year ending in a paid guest relocation to another property. Overnight, a single porter covered the desk, security rounds, and the phone; of 34 after-hours calls a night, only about 11% ever got a response, and that was a next-day callback. Housekeeping worked from a printed sheet stale by mid-morning, so a cleaned room took 41 minutes on average to register as ready. Night audit ran 95 minutes by hand, with month-end revenue rebuilt manually.

Approach

We started from the failure mode that actually costs a property its rating: two channels confirming the same last room within milliseconds of each other. Rather than patching the existing spreadsheet-plus-inbox setup, we rebuilt availability as a single inventory ledger — never a status field on a room — so every booking write takes a row-level lock on the date range it wants and cannot collide with a concurrent sale. Rates were redesigned to be derived at query time rather than stored on the booking, so every channel (direct site, OTAs, voice agent) asks the same rate engine the same question and parity holds by construction. On top of that ledger, we layered a voice agent constrained to only ever quote what the rate engine returns and only ever hold what the ledger grants — a soft lock with a short expiry so abandoned calls release stock automatically.

Solution

Every booking write is idempotent and keyed, so a retried OTA webhook or a double-tapped confirm button produces exactly one booking. A rule engine resolves base rate, season, length-of-stay discounts, and day-of-week loading at query time, and applies restrictions like minimum stay and closed-to-arrival/departure. The channel connector runs two-way — outbound rate and availability deltas, inbound reservation webhooks — with a scheduled reconciliation job that raises a variance report rather than silently overwriting, since a silent overwrite here means a guest arrives to no room. The voice agent runs on a streaming pipeline (telephony leg, streaming speech-to-text, an intent layer with function calls against live availability and rate APIs, speech synthesis back down the same leg) with barge-in support, holding median response time to 1.4 seconds while still making a real API call per turn. It resolves 82% of calls without a human; the remaining 18% transfer with the transcript attached. Booking events fan out to guest messaging, the housekeeping queue, the accounting export, and reporting, so adding a new downstream consumer never touches the booking path itself. The ledger stores instants with the property's timezone applied at report time, so night audit and revenue reporting hold correctly across daylight saving. The housekeeping app is offline-tolerant, queuing status changes locally and reconciling on reconnect across uneven in-building coverage.

Results

Occupancy

71.4%→78.2%

RevPAR

NZD $129.95→NZD $152.49

Double bookings

3.8/month→0

Guest relocations

32/year→0

After-hours calls answered

11%→94%

Direct booking share

28%→37%

Room turn time to front desk

41 min→26 min

Night audit

95 min→12 min

Front-office admin

27.5 hrs/week→8.0 hrs/week

Annual value NZD $278,500 (OTA commission saved, after-hours bookings captured, admin labour redeployed, relocation costs avoided) against a NZD $145,000 build and NZD $38,000 annual running cost — 7.2-month payback

Product Screens

Front desk — today's book and the live voice-agent transcript, side by side.
Front desk — today's book and the live voice-agent transcript, side by side.
Inventory ledger — the room-night tape, read as a shape instead of a status field.
Inventory ledger — the room-night tape, read as a shape instead of a status field.
Night audit — postings and variances on one screen, closed in 12 minutes.
Night audit — postings and variances on one screen, closed in 12 minutes.
Direct booking, step 1 — dates and guests, read live from the property ledger.
Direct booking, step 1 — dates and guests, read live from the property ledger.
Direct booking, step 2 — rooms and rates, priced under the OTA channels.
Direct booking, step 2 — rooms and rates, priced under the OTA channels.
Direct booking, step 3 — a 10-minute hold that releases back to the ledger if abandoned.
Direct booking, step 3 — a 10-minute hold that releases back to the ledger if abandoned.

Ready to Build Something Great?

Book a free strategy session and get a tailored roadmap from our experts — no commitment required.