Managerial Economics & Nonlinear Pricing
Two-Part Tariff Access Fee & Usage Price Formula (Oi Rule)
Optimize a subscription + usage two-part tariff (T*, p*) across homogeneous and heterogeneous customer segments using Walter Oi’s (1971) Disneyland Dilemma formula.
Why heterogeneous customers push optimal usage price strictly ABOVE marginal cost!
In Walter Oi’s (1971) two-part tariff (membership fee T plus per-unit price p), if all buyers share identical demand q(p) = a - b * p, setting usage price at marginal cost p* = c maximizes consumer surplus and lets entry fee T* = (a - b * c)^2 / (2 * b) capture 100% of total welfare! However, when share lambda_L of buyers have Low demand q_L(p) = a_L - b * p and share (1 - lambda_L) have High demand q_H(p) = a_H - b * p (a_H > a_L > b * c), keeping Low buyers in the club caps the entry fee at T(p) = (a_L - b * p)^2 / (2 * b) — so raising usage price p above marginal cost extracts extra margin from heavy High-demand users: p* = c + (1 - lambda_L) * (a_H - a_L) / b!
Verify on a SaaS / club pricing sheet with Low intercept a_L = 20 (B2), High intercept a_H = 30 (B3), slope b = 1 (B4), unit server cost c = 4 (B5), and Low-segment share lambda_L = 0.60 (B6): optimal usage price rises from 4.00 to p* = 4 + 0.40 * (30 - 20) / 1 = 8.00, optimal subscription fee is T* = (20 - 8)^2 / 2 = 72.00, and expected profit per customer hits 72 + (8 - 4) * (0.60 * 12 + 0.40 * 22) = 136.00 — strictly beating High-only exclusion profit 0.40 * (30 - 4)^2 / 2 = 135.20! Drop lambda_L to 0.40, however, and High-only exclusion profit jumps to 0.60 * 338 = 202.80, flipping the optimal strategy to excluding Low users at p = 4, T = 338!
| Two-Part Tariff Metric (a_L=20, a_H=30, b=1, c=4) | lambda_L = 1.00 (Homogeneous) | lambda_L = 0.60 (Mass Market) |
|---|---|---|
| Optimal Usage Price (p*) | 4.00 (= Marginal Cost c) | 8.00 (> Marginal Cost!) |
| Optimal Access / Base Fee (T*) | 128.00 | 72.00 |
| Inclusive Profit per Buyer | 128.00 | 136.00 (vs 135.20 Exclusive) |
Inclusive Two-Segment Optimal Usage Price p* = c + (1 - lambda_L)*(a_H - a_L)/b Formula
Validate a_H >= a_L > b * c, b > 0, c >= 0, and 0 < lambda_L <= 1 (requiring a_L - b * p* > 0 for interior Low-segment participation).
=LET(a_lo, B2, a_hi, B3, b_sl, B4, c_mc, B5, lam_l, B6, IF(OR(b_sl <= 0, c_mc < 0, a_lo <= b_sl * c_mc, a_hi < a_lo, lam_l <= 0, lam_l > 1), "Invalid Tariff Input", LET(p_inc, c_mc + (1 - lam_l) * (a_hi - a_lo) / b_sl, IF(a_lo <= b_sl * p_inc, "Low Segment Excluded at Interior Price", ROUND(p_inc, 4)))))Global Optimal Profit per Potential Buyer MAX(Inclusive_Profit, Exclusive_High_Profit) Formula
Always compare the inclusive two-segment tariff profit against the High-segment-only exclusion tariff (p_excl = c, T_excl = (a_H - b*c)^2 / (2*b), earned on fraction 1 - lambda_L)!
=LET(a_lo, B2, a_hi, B3, b_sl, B4, c_mc, B5, lam_l, B6, IF(OR(b_sl <= 0, c_mc < 0, a_lo <= b_sl * c_mc, a_hi < a_lo, lam_l <= 0, lam_l > 1), "Invalid Tariff Input", LET(p_inc, c_mc + (1 - lam_l) * (a_hi - a_lo) / b_sl, pi_ex, (1 - lam_l) * ((a_hi - b_sl * c_mc)^2) / (2 * b_sl), pi_in, IF(a_lo <= b_sl * p_inc, 0, ((a_lo - b_sl * p_inc)^2) / (2 * b_sl) + (p_inc - c_mc) * (lam_l * (a_lo - b_sl * p_inc) + (1 - lam_l) * (a_hi - b_sl * p_inc))), ROUND(MAX(pi_in, pi_ex), 4))))Try the example
Use the original values or change them to test your understanding.