
200% occupancy simulated on production
Performance Testing · Hospitality · Production
citizenM guests book, check in and control their room through one app. spriteCloud load tested that entire journey at simulated 200 percent occupancy, on production, in a real hotel.
citizenM built its hotels around self-service. Guests book a room, check in, control the lights and media, and check out, all through the mobile app. As the app gained features, its performance became inseparable from the guest experience. A light switch that responds after three seconds is a broken light switch, whether 10 guests are using the app or 100.
citizenM asked spriteCloud to test the performance limits of the complete production landscape behind the app. First, the room controls: what happens to response times when every guest in the building changes their lights at once? Second, the booking flow: at what booking rate does the system slow down, if every available room gets booked through the app?
The hard part: the final tests had to run on production. Real hotel, real rooms, real infrastructure, no room for error. You cannot spin up a staging copy of a building.
spriteCloud worked with the app's development partner to define the load models, and with the middleware party for API access and real-time monitoring during execution.
The scenarios were unusually stateful. Creating a booking requires a user without an open booking. Checking in requires a room that is available and cleaned. The scripts needed admin-level API access to set rooms and statuses to the right state before each run, which made the load model considerably more involved than firing requests at an endpoint.
The work ran in deliberate rounds. Scripts for the full guest journey, from booking through check-in, room controls and check-out to cleanup, were built and tuned on the acceptance environment. Light, isolated tests followed on a handful of production rooms, with spriteCloud staff physically in the hotel watching whether the controls behaved.
Then the full tests: two days in one hotel, multiple floors emptied for the purpose, simulating 100 and 200 percent occupancy across all rooms while all parties monitored server response in real time. The engagement closed with a full test report and analysis.
citizenM got what it asked for: measured limits of its production landscape under loads beyond full occupancy, and the confidence to keep building the guest experience on top of the app. The collaboration across citizenM, the development partner and the middleware party ran smoothly enough that all three monitored the production runs together.
To ensure the smooth operation of all systems, we decided to stress and load test our digital and on-premise infrastructure. We took relevant guest journeys and tried to simulate 100% and 200% occupancy. To do this properly you need a good engineering partner like spriteCloud to be able to model this.

Director Technology & Digital, citizenM
Every team has a regression problem. Let’s fix yours in 8 weeks.
Start the conversationSee more case studies