When the FIFA World Cup comes to town, thousands of guests need beds across four continents. Khaya managed this in spreadsheets. I designed the platform that replaced them — and unlocked 10x growth.
Khaya is a company that does something most people don't think about: when a major sporting event happens — a World Cup, an Olympics, a continental championship — someone has to house the media, the VIPs, the athletes' families, the broadcast crews, the sponsors. Thousands of people who need accommodation in cities that are already at capacity. Khaya is that someone.
The business was thriving. Four continents. Thousands of guests. Thousands of booked apartments. Festivals, Olympics, sport events — they handled them all. But behind the scenes, every booking, every price calculation, every room assignment lived in spreadsheets. And spreadsheets don't scale.
A single double-booking at the FIFA World Cup doesn't mean an apologetic email — it means a VIP client stranded in a foreign city during the biggest event of the year. A pricing error on a large room block doesn't cost hundreds — it costs tens of thousands. The spreadsheets were a ticking bomb, and Khaya was growing too fast to keep defusing it manually.
The real discovery didn't come from audits or analytics — it came from listening. I spent time with the people who actually ran Khaya's operations: sitting beside sales reps as they built offers under deadline pressure, watching operations managers juggle room assignments across time zones, taking notes while account managers fielded urgent calls from VIP clients.
What emerged wasn't chaos — it was an incredibly sophisticated operation held together by institutional knowledge and manual effort. People had developed intricate workarounds: color-coded spreadsheet tabs, naming conventions for room blocks, verbal agreements about who "owned" which properties.
Sales reps needed speed — building multi-room, multi-property offers under deadline pressure. Operations managers needed accuracy — seeing exactly what's available, what's blocked, what's sold. Account managers needed context — client history, request status, deal likelihood.
I documented every spreadsheet the team used — stock trackers, pricing calculators, client request logs, occupancy overviews. Each one represented a workflow the platform needed to absorb.
I catalogued the most common and costly errors. Double-bookings happened when two sales reps worked from stale spreadsheet copies. Pricing errors occurred during manual VAT and margin calculations. Both were structurally caused by the tool.
Khaya wasn't just looking to digitize their current operation — they wanted to grow. I modeled what their workflows would look like at 10x scale: more events running simultaneously, more cities, more staff onboarded for event-specific surges.
The research revealed something important: Khaya's team had already invented the right mental model. Their color-coded spreadsheets — blue for booked, green for available, grey for blocked — were essentially a calendar-grid stock view. They'd built the right tool in the wrong medium.
This meant the design job wasn't to reimagine how accommodation booking works. It was to take the mental models the team had already developed and give them a proper home.
Spreadsheets force you to read data row by row. The platform needed to let you see data. A calendar-grid with color-coded blocks replaces thousands of cells with scannable patterns.
In spreadsheets, every piece of context lives in a different tab. The platform brings context to the user — hover cards with deal details, property panels with room breakdowns and maps, inline pricing calculations.
The biggest spreadsheet failures — double-bookings, pricing miscalculations, stale data — weren't user errors. They were tool limitations. Real-time availability, auto-calculated pricing, and role-based access eliminate entire categories of errors.
"Khaya's team had already invented the right mental model in their spreadsheets. Our job wasn't to reimagine how accommodation booking works — it was to give their intuitions a system that could scale to thousands of apartments without breaking."
The platform — internally called Lili — is a role-based booking system built around a calendar-grid stock view. Properties and rooms line the left axis. Dates span the top. Color-coded blocks show exactly what's booked, available, blocked, or under offer.
Buildings and rooms on the left, dates across the top, color-coded blocks showing status. This sounds simple, but it's the thing that makes a massive apartment operation manageable at a glance.
Clicking a booking block surfaces a floating card with everything relevant: deal name, ID, discovery stage, offer expiry date, hotness factor, key account manager, and room assignment.
The offer panel pulls together client, project, date range, room types, pricing with auto-calculated netto, VAT, and total — all in one scrollable panel alongside the stock view.
A simple star-based indicator showing deal likelihood. This tiny design element lets sales teams prioritize visually without opening each deal.
The top nav includes an event selector — "2018 FIFA World Cup." This scopes everything: stock, offers, clients, requests. Each event is its own world.
Small bar charts at the top of the stock view showing occupancy trends across dates. This gives managers a macro view before they dive into room-level detail.
The style guide anchors every design decision — Roboto for clean readability at small sizes, Khaya red (#D0011A) for primary actions, and a functional color palette where green means available, blue means booked, and grey means blocked.
The spreadsheet era had a hard limit: Khaya could only grow as fast as their best people could manage complexity manually. The platform removed that ceiling entirely.
The platform replaced spreadsheet-based workflows with a structured booking management system, enabling Khaya to grow from a small operation to handling thousands of guests across four continents.
Real-time data and auto-calculated pricing make double-bookings and margin errors structurally impossible. At this scale, each prevented error saves thousands in emergency rebooking costs.
The unified offer builder lets employees create complex multi-room, multi-property offers with auto-calculated pricing in one flow. What took hours now takes minutes.
Occupancy charts and the stock dashboard give managers an at-a-glance view of how full properties are across time, enabling dynamic pricing decisions.
Role-based permissions mean different employees see what they need. This makes it possible to onboard new staff for event-specific surges without risking data integrity.
The searchable, filterable requests table with status indicators ensures every client inquiry is tracked. For a business serving VIPs at major events, a missed response means losing the deal.
"The most satisfying design projects aren't the ones where you invent something new. They're the ones where you find people doing extraordinary things with terrible tools — and give them a system that matches their ambition."