On this page
- Confidential work
- This case study describes design solutions for a B2B SaaS platform. Detailed UI mockups and user data are protected under NDA and available to discuss in person or via secure channels.
Capacity and Overbooking
The Problem
Airlines were losing money on every flight. Not because of bad pricing – because nobody knew how many seats they actually had to sell.
Three different capacity numbers lived in three different systems. Physical seats (what the plane has), restricted seats (regulatory limits), virtual seats (what you can sell). Revenue analysts spent 4+ hours every day trying to reconcile them in Excel.
Worse: the overbooking system had a 30% variance. Analysts would set "115% target" and the system would actually book 108% or 121%. Completely random. That gap cost airlines regulatory fines and missed revenue every quarter.
The Goal
Real-time capacity visibility. Predictable overbooking. Zero manual errors.
What I built
I designed an overbooking wizard that shows how adjustments affect sellable capacity in real time. You could see: "This flight currently sells 300 seats, but with 3.5% overbooking, we can book 311 – an increase of 11 seats."
For overbooking adjustments, I added a simple wizard:
-
- Filter flights (JFK-LAX, next 30 days)
- Select rows you want to change
- Enter target percentage (115%)
- Preview rounded capacity (+12 seats per flight)
- Add mandatory comment ("Summer peak demand")
- Confirm
The system logs everything to an Influence History audit trail.
Research process
I shadowed 5 revenue analysts for a week. Watched them work. Counted clicks. Timed tasks. Asked questions.
Key finding: They didn't trust the system. They would set an overbooking target, then manually check 10-15 flights in another tool to verify it actually applied. Because it usually didn't.
The problem wasn't the algorithm – it was that the UI never showed them what actually happened after they hit "Submit."
See detailed Object-Oriented researchResults *
- 83%
- Overbooking precision
- $1M+
- Revenue recovered
- +50%
- Analyst productivity gain
- -75%
- Empty seat loss
* All since Q1 2022, across 5 airlines.
Revenue analysts went from "I hope this worked" to "I know exactly what changed."
Our Revenue Operating System provides a singular platform to support the entire customer journey while optimizing price and revenue performance throughout.
Network Origin-Destination
The Problem
Revenue teams were analyzing the wrong thing. They'd look at individual flights: Oslo-Rome direct, 78% full - looks good, and miss the bigger picture: that route was bleeding money across five connecting options.
Eery team worked at the leg level (single flights), not the market level (regions level, network). Data lived in three separate systems. Pulling an OD report? Four days, if you were lucky. By the time analysts got their spreadsheets, the market had already shifted.
Network planners couldn't answer basic questions like "Should we fly Barcelona-Frankfurt?" without spending a day reconciling booking data, competitor fares, and last year's numbers. 15-20% of that data was wrong.
Why OD vs Leg matters
Here's the thing airlines got wrong for years.
- Leg thinking
- You optimize one plane: flight SK123 has 78% load factor
- Network thinking
- You optimize a market: Oslo-Rome makes $2.3M across 8 flight options.
One's tactical. One's strategic. We needed to give teams the network view.
What I built
An OD analytics platform that finally showed the full picture. Pick a city pair-say, Barcelona-Frankfurt, and see:
- Total demand
- Across direct AND connecting flights
- Revenue trends
- That 90-day sparkline showing -15%? That's your cue
- Market routing
- Which legs serve this market (2 direct, 3 via Munich)
The filter + aggregation pattern
After multiple design iterations, we killed the drill-down idea. Why? It trapped people in hierarchies. Supporting multiple cascades is not the right thing to do in tables. Instead:
- Aggregation selector
- Pick your level: region, city-pair, or flight
- Filters
- Slice by date, competitor count, profitability
- Table updates
- In-place: no navigation, no lost context
Same pattern we used for Advanced Filters. Same mental model across products.
Making it work on iPads
Network planners don't sit at desks all day. They're in airport meetings, staring at tablets. So we made the table responsive: collapsible columns, horizontal scroll for details, tap-to-expand sparklines.
One-click export? CSV with your exact view-filters, sorts, aggregation level-baked in. Filename even includes the date and criteria. No more manual cleanup before sending to stakeholders.
Results *
- 96%
- Report speed
- 5×
- Decision velocity
- +85%
- Data accuracy
* Measured across 5 airlines, 2021-2023.
Network planners stopped managing individual flights and started optimizing markets. That's how Cyprus Airways went from reactive scheduling to strategic capacity allocation.
In press
We are helping reshape Cyprus Airways into the leading airline of the Mediterranean, for and by the people of Cyprus.
Promotion Management
- Work in progress
- This section of the case study is currently being developed and will be available soon.
Results *
- 79%
- Campaign launch speed
- 12%
- Promo uptake
- 0
- Post-launch corrections
- 5 → 1
- Tools consolidated
* 18 promotional campaigns, 2021-2023.
The new workflow eliminated IT dependencies, reduced campaign setup from a full workday to under 2 hours, and gave marketing teams confidence through real-time validation. Airlines reported 12% higher promotional uptake due to faster time-to-market during demand windows.
In press
This unique advantage provides valuable insight to help best allocate marketing dollars for high-yielding returns.
Advanced Filters
- Work in progress
- This section of the case study is currently being developed and will be available soon.
Results *
- 1 min
- Filter setup time
- 5 min
- Average decision making time
- 3×
- Query complexity
* All since Q1 2022, across 5 airlines.
The new filter system transformed analyst workflow from a frustrating bottleneck into a fluid, keyboard-first experience. Teams now create 3× more complex analyses in 80% less time, with saved filter sets becoming institutional knowledge shared across departments.
FLYR's platform filters detailed information instantly through the Cirrus dashboard and user interface, enabling airlines to conduct greater analyses and generate reports for informed decision-making.
What I learned
Talk to users early
I wasted 3 weeks building a promotion preview feature that showed "estimated revenue impact." Users ignored it. Why? They didn't trust forecasts. They wanted to see affected flights-actual inventory they could verify. I redesigned it to show flight lists instead of projections.
Validation is a feature, not a bug
Analysts initially complained that the system "blocked" them too much. I explained: "Would you rather find out about conflicts now or after the promo goes live?" They got it. Validation went from "annoying" to "life-saving."
Performance matters
A beautiful dashboard that takes 15 seconds to load is useless. I spent as much time optimizing render speed as I did on visual design.
Documentation scales
I built filter patterns once, documented them, and saw them reused across 4 other product teams. Good design work compounds.
Appendix
Capacity and Overbooking
User Pain Points
- Revenue analysts spent 4+ hours/day reconciling spreadsheets
- Three capacity types (physical, restricted, virtual) lived in separate systems
- Manual adjustments arrived too late to prevent revenue loss
- 30% variance between intended and actual overbooking meant regulatory risk
Use Case
- High-Demand Route Adjustment
-
- Filter flights: JFK-LAX, next 30 days
- Select aggregated row (20 flights)
- Click "Adjust Overbooking"
- Enter 115% target
- Preview: system shows rounded capacity (+12 seats/flight)
- Add comment: "Summer peak demand"
- Confirm → system logs to Influence History
- Actor
- Revenue Analyst
- Goal
- Increase sellable capacity without regulatory risk
Objects and Actions
Primary Objects
- Flight
-
- market
- cabin
- date
- load factor
- Capacity Layer
-
- physical
- restricted
- virtual
- Overbooking Rule
-
- target %
- affected flights
- analyst comment
Key Actions
- Overbooking
-
- Adjust target
- Preview impact
- Apply with comment
- Capacity View
-
- Filter flights
- View capacity
- Export CSV