Composite study

This is a product-class write-up, not a named-client story and not a results press release. Counts below describe the pack we actually write (approach points, tools, layers) — not invented bug totals or conversion lifts.

4
Approach points
4
Tools in the pack
4
Layers covered
3
Challenges documented

Overview

Search said available. Chat said “I reserved it.” Checkout then failed — or worse, both checkouts succeeded against a stale cache.

Hotel-local midnight vs user timezone shifted a one-night stay into a sold-out date the concierge still described as open.

Industry pattern this is grounded in

Oversell is the hospitality P0. An assistant that states availability without a hold is oversell with friendlier grammar.

Highlights

Typical launch bar: Wait until journeys and evals agree — do not ship on demo scores alone.

Challenges

01

Inventory lock TTL expired during a long chat, and the model did not refresh.

02

Multi-room bookings mixed occupancies in the tool arguments.

03

Weekend search spikes hid 5xx behind a cached “available.”

How we tested

01

Two-user last-room test: one success, one clean fail.

02

Chat availability from the same hold service as checkout.

03

Price at search matches checkout; occupancy and dates include timezone.

04

Supplier failure rolls back payment.

Starting point vs what we required

Starting point versus the controls we required
Starting pointWhat we required
Inventory lock TTL expired during a long chat, and the model did not refresh.Two-user last-room test: one success, one clean fail.
Multi-room bookings mixed occupancies in the tool arguments.Chat availability from the same hold service as checkout.
Weekend search spikes hid 5xx behind a cached “available.”Price at search matches checkout; occupancy and dates include timezone.

What we delivered

01

Journeys / UI

  • Playwright — Last-room race including chat hold
02

API / contract

  • Postman — Hold TTL and supplier rollback
03

Load / soak

  • k6 — Weekend search spike
04

LLM traces / evals

  • LangSmith — Hold tool vs spoken availability

Outcomes

Concierge holds used the same lock as checkout, with visible expiry. Tool arguments for occupancy were schema-validated.

k6 on weekend search plus a functional oversell assertion, not only p95.

Stack

Testing stack used on this product class
LayerToolWhat we validated
Journeys / UIPlaywrightLast-room race including chat hold
API / contractPostmanHold TTL and supplier rollback
Load / soakk6Weekend search spike
LLM traces / evalsLangSmithHold tool vs spoken availability

Same method as the rest of our work: severity-ranked findings, pass rules in writing, and a ship / wait / block call. See the evaluation method and tool comparison.