Should the Sleeper Bus Price Like an Airline?
Same seat, same route — should Tuesday cost less than Friday?
The Prompt
Your client runs 120 premium sleeper buses on intercity routes like Mumbai–Goa and Bengaluru–Hyderabad, selling at fixed prices per route (~₹1,400 average). Occupancy swings from 55% midweek to 100% sold-out-with-waitlist on Fridays, Sundays, and holidays. The CEO asks: should we adopt airline-style dynamic pricing, and what would it earn us?
Opening exchange
The occupancy spread already answers "is there mispricing" — sold-out Fridays mean we're underpriced at peak; 55% Tuesdays may mean overpriced off-peak, or just thin demand. Before recommending: how do customers book — direct app or aggregators? And what does the competition do on these routes?
60% book via aggregator platforms, 40% direct. Competitors are mostly fixed-price too; trains are the real midweek competitor. Waitlists on Friday run 30–40 seats per bus.
A 30–40 seat waitlist on a ~36-berth bus means peak demand is roughly 2× capacity — enormous headroom.
A waitlist the size of the bus itself is the clearest underpricing signal you can get. I'll structure this as: where's the revenue leak (peak vs off-peak), how much can dynamic pricing recover, and what are the execution risks — fairness perception, aggregator mechanics, and competitive response.
Structure & Hypothesis
Analysis & Data
Size the prize. A bus has 36 berths; assume 40 peak departures and 80 off-peak departures a week across the fleet… actually, let's keep it per-bus-per-week: 3 peak and 4 off-peak departures.
Peak: 3 departures × 36 berths, currently all at ₹1,400. With a stepped curve — first third at ₹1,400, middle at ₹1,800, last third at ₹2,300 — average ≈ ₹1,830, +₹430/berth: 3 × 36 × 430 ≈ +₹46,400/bus/week, and the waitlist says volume holds. Off-peak: 4 × 36 at 55% = 79 filled; an advance-purchase ₹999 fare could lift occupancy to ~70% — 22 extra berths × ₹999 ≈ +₹22,000, minus dilution from full-fare bookers who'd have paid ₹1,400 anyway, say 15 × ₹400 = ₹6,000 — net ≈ +₹16,000. Total ≈ ₹62,000/bus/week, ~₹39 crore annualized across 120 buses — roughly a 20% revenue lift at near-zero marginal cost.
Counts the dilution honestly. Most candidates forget that off-peak discounts also reach people who would have paid full fare.
And the fairness backlash?
Three design rules: cap the peak-to-floor ratio at ~2.3× (airlines run 5–10× and get hated for it); frame everything as early-bird savings off a higher anchor rather than surge on a base; and keep prices fixed once booked — no repricing, no airline-style fare classes visible. Buses sell to families, not expense accounts; perception discipline is worth a few rupees of theoretical yield.
Recommendation
Recommend to the CEO
- Adopt stepped, occupancy-triggered pricing: 3 fare steps per departure, peak ceiling ~2.3× the off-peak floor — not continuous airline-style surge.
- Frame as early-bird discounts from a raised anchor; never let a customer watch a price rise mid-booking.
- Pilot on two routes for eight weeks; measure revenue per departure, direct-app share, and review sentiment before fleet rollout.
- Use the off-peak ₹999 fare to attack rail-substitutable midweek demand, and push it through the direct app only — protecting aggregator rank at peak.
Key Takeaway
What this case teaches
A waitlist is a price signal, not an ops problem. Dynamic-pricing cases are 30% arithmetic and 70% mechanism design — caps, framing, and channel handling decide whether the math survives contact with real customers.