Skip to content

Should the Sleeper Bus Price Like an Airline?

Same seat, same route — should Tuesday cost less than Friday?

moderate
9 min read
dynamic-pricingtransport

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

candidate

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?

interviewer

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.

candidate

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

Two leaks, opposite fixes — and the math tier under each. The honest part is subtracting the ₹6k dilution.

Analysis & Data

interviewer

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.

candidate

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.

interviewer

And the fairness backlash?

candidate

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.