Arte SheetsLearn. Try. Understand.

Public Economics & Mechanism Design

Samuelson Public-Good Rule & Lindahl Benefit Price Formula

Sum marginal willingness-to-pay schedules vertically via Samuelson’s rule SUM(MRS_i) = MC_G, compare against free-rider voluntary provision, and solve Lindahl benefit prices.

Sum demand VERTICALLY for non-rival public goods — not horizontally!

For a private good, market demand adds quantities horizontally at a common price; for a non-rival pure public good (flood levees, open-source security audits, street lighting), every household consumes the SAME quantity G simultaneously, so Paul Samuelson’s (1954) efficiency rule sums marginal willingness-to-pay VERTICALLY: SUM(MB_i(G*)) = c_G! Under linear individual marginal benefit schedules MB_i(G) = a_i - b_i * G and unit cost c_G > 0, efficient provision is G_Sam* = (SUM(a_i) - c_G) / SUM(b_i), whereas Erik Lindahl’s (1919) personalized unit prices p_i* = a_i - b_i * G_Sam* achieve unanimous consent for G_Sam* while summing identically to c_G!

Build a 3-household table (A2:D4) with intercepts B2:B4 = {50, 40, 30} (sum = 120), slopes C2:C4 = {2, 1, 1} (sum = 4), and unit provision cost c_G = 40 (G2). A classic student mistake is averaging or taking only the highest buyer: voluntary private Nash provision supplies only MAX_i((a_i - c_G) / b_i) = (50 - 40) / 2 = 5.00 units (75% free-rider underprovision!), whereas Samuelson vertical summation yields G_Sam* = (120 - 40) / 4 = 20.00 units, supported by Lindahl personalized prices D2:D4 = {10.00, 20.00, 10.00} summing cleanly to 40.00!

Household / Benchmark (c_G = 40)MB_i(G) = a_i - b_i * GLindahl Price p_i* at G* = 20
Household 150 - 2 * G (Choke = 25)10.00 (25% Share)
Household 240 - 1 * G (Choke = 40)20.00 (50% Share)
Household 330 - 1 * G (Choke = 30)10.00 (25% Share)
Aggregate OutcomeSUM = 120 - 4 * G -> G* = 20SUM(p_i*) = 40.00 (= c_G)

Interior Samuelson Optimal Public-Good Quantity G_Sam* Formula

Validate SUM(a_i) > c_G > 0 and verify every household retains non-negative marginal benefit a_i - b_i * G_Sam* >= 0 at the interior solution.

=LET(c_ug, G2, a_sm, SUM(B2:B4), b_sm, SUM(C2:C4), IF(OR(c_ug <= 0, b_sm <= 0, a_sm <= c_ug), "Zero Efficient Provision", LET(g_st, (a_sm - c_ug) / b_sm, IF(MIN(B2 - C2 * g_st, B3 - C3 * g_st, B4 - C4 * g_st) < 0, "Kinked Demand (Drop Saturated Buyer)", ROUND(g_st, 4)))))

Voluntary Cournot-Nash Private Provision Benchmark Formula

Without coordination or Lindahl cost-sharing, only the single highest standalone-demand contributor funds the public good, while others free-ride at zero contribution.

=LET(c_ug, G2, ROUND(MAX(0, (B2 - c_ug) / C2, (B3 - c_ug) / C3, (B4 - c_ug) / C4), 4))

Try the example

Use the original values or change them to test your understanding.

Further reading