Subscription pricer

Design an airline subscription, set its price, and see who signs up and whether it pays.

An all-you-can-fly pass, a commuter route pass or a bundle of bags, seats and Wi-Fi all promise recurring revenue. The catch is who buys: the customers who gain most from a flat price already fly a lot. This page builds a synthetic customer base, lets each one decide, and adds up what the airline gains and gives away.

1Design the productA monthly price, what's included (trips, ancillaries or both), when pass holders can book, blackout dates, how long they commit, and whether RM keeps pass holders off flights that are filling up.
2Customers decideEach customer weighs what the product would save them against its price, with a bias: people overestimate how much they'll use a subscription. Heavy flyers gain most, so they sign up first.
3The airline adds it upSubscription revenue, minus the fares subscribers would have paid anyway and the paying passengers they push off full flights, minus extra costs, plus the extra trips and ancillaries the product brings in.
Price
Commitment
What's included
Round trips a year
Ancillaries on every trip
Restrictions
Booking window
Blackout dates
Seat availability
Pass seats only on flights RM expects to be less than 85% full
Behaviour

A customer signs up when the value they expect exceeds the price. With a bias of 25%, someone who will actually save $800 a year expects to save $1,000. Set it to 0 for perfectly rational customers. Gym members studied by DellaVigna and Malmendier paid about 70% more per visit than the pay-as-you-go price, because they expected to go more often than they did.

Loading…

Where the money goes

One year, all subscribers

From subscription revenue to net result

What subscribers pay, less what the airline gives away, plus what the product brings in. The last bar is the net effect of launching it.

The subscribers

    Profit against price

    Same design, every monthly price

    Who subscribes

    Adverse selection: heavy flyers sign up first

    Round trips a year with the airline, before the offer

    By customer segment

    Net result per subscriber: what each one pays, less what the airline gives up on them, plus what they add.

    Capacity control

    Without control, pass holders can take any seat for sale, including seats on flights that will sell out, where each one turns away a paying passenger. With control, RM opens pass seats only on flights it expects to fly with seats to spare. That protects revenue, but it makes the pass less useful, so fewer customers buy it.

    Subscriptions in the market

    Public terms, checked September 2026

    Real products that map onto the presets. Terms change often, especially introductory prices: check the airline's own page before quoting any of these.

    How it works

    Background

    An all-you-can-fly pass, a route pass for commuters or a monthly bundle of bags, seats and Wi-Fi all promise the same thing: recurring revenue from loyal customers. The catch is who buys it. The customers who gain most from a flat price are the ones who already fly a lot and would have paid you anyway, and they tend to expect to use it even more than they will. The page builds a synthetic customer base, lets each customer decide whether your product is worth its price, and then adds up what the airline gains and gives away.

    The customers

    Each market is a synthetic sample of customers (20,000 for the two networks, 12,000 for YUL–YYZ), drawn once with a fixed seed so the page always shows the same people, then scaled up to the market size. Customers belong to segments (occasional leisure, frequent leisure and visiting friends and relatives, business, road warriors or weekly commuters), and within a segment each one gets their own draw of:

    What a pass is worth to a customer

    Share of trips the rules allow U = clamp(a + b·φ − c·ℓ) × (1 − blackout share × (1 − φ)) With capacity control at X U′ = U × (q + (1 − q)·φ·q) q = share of trips on flights expected below X% full Extra trips the pass triggers I = γ × M × (1 − fee / F) Pass trips they'd take anyway Pb = min(A, U′ × M) A = round trips included a year Extra trips on the pass Pi = min(A − Pb, U′ᵢ × I) extra trips are fully flexible (φ = 1) Value V = (F − fee) × (Pb + ½ Pi) + value of the included ancillaries Signs up if noticed and V × (1 + bias) × (1 − commitment discount) − hassle > price × months paid

    The booking window sets a, b and c: any time (1, 0, 0), 14+ days ahead (1, 0, 1), last 3 days (0.05, 0.7, 0) and day before (0, 0.5, 0). Trips a customer was going to take anyway have fixed dates, so short windows hit them hardest; extra trips are discretionary and fit almost any window. Extra trips are valued at half the saving (the usual triangle under a demand curve). Included ancillaries are worth their full price on trips where the customer would have bought them and a quarter of it on the others. Customers who commit for 12 months discount the value by 10% for the risk (5% for 6 months). On a monthly plan they pay only for the months in which they fly: 12 × (1 − (11/12)ⁿ) months for n trips spread over the year.

    What it's worth to the airline

    Net = price × months paid − Pb × w × F fares subscribers would have paid you − (Pb × (1 − w) + Pi) × D paying passengers turned away on full flights − included ancillaries they'd have bought anyway + extra trips × ancillaries they still buy + fares on trips a bundle wins from competitors − extra trips × cost per passenger − ancillary fulfilment − 3% payment and servicing D = window factor × 1.6 × average fare × Σ wL·p(L) / Σ wL over the flights pass holders may use p(L) = 1 / (1 + e^−(L − 0.93)/0.025) chance that one more passenger on a flight expected to be L full turns away a paying one

    Trips switched from competitors and extra trips put new passengers on board. On a flight that would have flown with empty seats they cost only the variable cost per passenger ($30 on the low-cost network, $50 on the others); on a flight that will sell out, they take the seat of a paying passenger, typically a late booker paying well above the average fare (hence the 1.6). wL is the share of passengers on flights expected to be L full. A last-minute booking window already works as capacity control, because RM knows by then which flights will go out with empty seats: the displacement is multiplied by 0.3 for the last 3 days and 0.1 for the day before. A bundle with no trips doesn't displace anyone, since the extra trips it wins are booked and priced by RM like any other.

    The profit curve re-runs the same customers at every price; the capacity-control curve re-runs them at every threshold, at the price you chose. The most profitable price is the highest point of the curve, searched over 0 to the end of the axis.

    Data and sources

    Limitations

    This is a personal project and isn't affiliated with any airline. For the business side, read RM 101: Network Optimization on displacement, Loyalty 101: Segmentation & Customer Lifetime Value on who your heavy users are, and Commercial 101: Ancillaries & Merchandising on what a bundle gives away.