Retail Pricing & Game Theory
Varian Model of Sales Promotional Price Floor Formula
Calculate Hal Varian’s (1980) mixed-strategy promotional discount floor p_min = c + (U / (U + I)) * (r - c), equilibrium store profit, and sale-frequency CDF F(p).
Why supermarkets randomize weekly promotions instead of posting a predictable everyday price!
If competing retailers posted static prices in a market containing BOTH Loyal/Uninformed Shoppers (U per store, who visit one store and pay up to reservation price r) AND Informed Bargain-Hunters (I price-comparison shoppers who buy from whichever of the N >= 2 stores posts the lowest price), any deterministic low price could be profitably undercut by $0.01 until a store gave up and jumped back to r to harvest its captives! Hal Varian (1980) proved in "A Model of Sales" that retailers play a symmetric randomized promotional strategy: each store earns guaranteed Security Profit Pi* = U * (r - c), never discounts below exact Promotional Price Floor p_min = c + (U / (U + I)) * (r - c), and prices at or below p with cumulative probability F(p) = 1 - ((U * (r - p)) / (I * (p - c)))^(1 / (N - 1))!
Verify on Competing_Stores N = 2 (B2), Regular_List_Price r = 100.00 (B3), Unit_Cost c = 20.00 (B4), Uninformed_Captives_Per_Store U = 300 (B5), Informed_Bargain_Hunters I = 500 (B6), and Candidate_Promo_Price p = 60.00 (B7): Equilibrium Store Profit is 300 * (100 - 20) = 24,000.00; Deepest Rational Sale Floor is p_min = 20 + (300 / 800) * 80 = 50.00 (never price below $50 even to win all 800 shoppers!); Single-Store Promo Frequency <= $60 is F(60) = 1 - (300 * 40) / (500 * 40) = 0.4000 (40.00% of weeks); and Market-Wide Bargain Availability (at least one store <= $60) is 1 - (1 - 0.40)^2 = 0.6400 (64.00% of weeks)!
| Varian Promotional Pricing Metric (N=2, r=100, c=20, U=300, I=500) | Formula | Verified Output |
|---|---|---|
| Equilibrium Expected Store Profit (Pi*) | U * (r - c) = 300 * 80 | 24,000.00 |
| Minimum Rational Promo Floor (p_min) | c + (U / (U + I)) * (r - c) | 50.00 (Max 50% Markdown) |
| Single-Store Sale CDF at p = 60 | 1 - ((U*(r - p)) / (I*(p - c)))^(1/(N-1)) | 0.4000 (40.00% of Weeks) |
| Market Deal Availability (Min Price <= 60) | 1 - (1 - F(60))^N | 0.6400 (64.00% of Weeks) |
Varian Minimum Promotional Sale Floor p_min Formula
Validate integer N >= 2, r > c >= 0, U > 0, and I > 0.
=LET(n_st, B2, r_ls, B3, c_un, B4, u_cp, B5, i_bh, B6, IF(OR(n_st < 2, INT(n_st) <> n_st, c_un < 0, r_ls <= c_un, u_cp <= 0, i_bh <= 0), "Invalid Sales Input", ROUND(c_un + (u_cp / (u_cp + i_bh)) * (r_ls - c_un), 2)))Store Promotional Price CDF F(p) on [p_min, r] Formula
Clamp F(p) cleanly to 0 below p_min and 1 at or above list ceiling r.
=LET(n_st, B2, r_ls, B3, c_un, B4, u_cp, B5, i_bh, B6, p_pr, B7, IF(OR(n_st < 2, INT(n_st) <> n_st, c_un < 0, r_ls <= c_un, u_cp <= 0, i_bh <= 0), "Invalid Sales Input", LET(p_mn, c_un + (u_cp / (u_cp + i_bh)) * (r_ls - c_un), IF(p_pr <= p_mn, 0, IF(p_pr >= r_ls, 1, ROUND(1 - (((u_cp * (r_ls - p_pr)) / (i_bh * (p_pr - c_un))) ^ (1 / (n_st - 1))), 4))))))Try the example
Use the original values or change them to test your understanding.