Social Security and Capital Accumulation
“The overlapping-generations model is the essential tool for thinking about intergenerational issues: pension reform, public debt, and the distribution of welfare across generations.” — Peter Diamond, Nobel Lecture, 2010
Cross-reference: Principles Ch. 25.1 (Diamond OLG: dynamic efficiency, PAYG social security); Ch. 22.2 (Ricardian equivalence failure) [P:Ch.25.1, P:Ch.22.2]
16.1 The Diamond (1965) OLG Model: Structure and Motivation¶
Chapter 12 analyzed the continuous-time OLG model of Blanchard and Yaari, which achieves tractability by assuming a constant mortality rate. The discrete-time Diamond (1965) model is the more common benchmark in the macroeconomics literature. It features two-period-lived households — a young generation and an old generation coexist at each date — and a competitive production sector with capital and labor.
The OLG structure introduces a feature absent from the Ramsey model: generational heterogeneity. Different generations have different intertemporal budget constraints because they were born at different times and face different wage and interest rate environments. This heterogeneity creates scope for markets to fail in a specific way: the competitive equilibrium can be dynamically inefficient, accumulating more capital than is socially optimal. The government can improve welfare by taxing away excess saving — a policy dimension entirely absent from the representative-agent framework.
The Diamond model is also the foundation for the analysis of PAYG social security [P:Ch.25.1] and the fiscal theory of the price level in an OLG context [P:Ch.22.2]. This chapter derives the model completely, proves the dynamic efficiency conditions, and analyzes social security reform.
16.2 Households: Two-Period Optimization¶
Each household lives for two periods: young (period ) and old (period ). There is no uncertainty.
Endowments: The young earn wage in period ; the old earn nothing (they retire).
Budget constraints:
where is young consumption, is old consumption, is saving (borrowing is ruled out by the terminal age), and is the interest rate from period to .
Lifetime utility maximization:
First-order condition (assuming interior solution):
This is the discrete-time Euler equation — the same condition as in the infinite-horizon Ramsey model, now for a two-period problem.
Definition 16.1 (Saving Function). The saving function is the solution to the household’s optimization problem. Under standard assumptions (strictly concave utility, intertemporal normality), is:
Increasing in (higher income → more saving, if the income effect dominates).
Ambiguously signed in : higher returns increase the return to saving (substitution effect: save more) but also make any given saving target achievable with less saving (income effect). The sign depends on the elasticity of intertemporal substitution.
16.2.1 Closed-Form Solution: Log Utility¶
For and :
So . Combined with the young budget constraint :
Two remarkable properties of the log-utility saving function: (1) it is independent of (income and substitution effects cancel exactly); (2) it is a constant fraction of wage income.
16.3 Firms: Competitive Production¶
A representative firm produces output using capital and labor with a CRS Cobb–Douglas technology:
In intensive form (): .
Competitive factor markets imply:
16.4 General Equilibrium: The Capital Accumulation Map¶
Market clearing: The capital stock at equals the aggregate savings of the young generation at :
since the old dissave entirely ( was their only saving, now returned as ). In intensive form ():
Definition 16.2 (Equilibrium Map). With log utility: . Therefore:
Theorem 16.1 (Equilibrium Dynamics — Log Utility). Under log utility and Cobb–Douglas production, the dynamics of the normalized capital stock are governed by the map:
This is a one-dimensional increasing map on .
16.4.1 Steady State¶
The steady state satisfies :
Stability: . Since , the steady state is locally asymptotically stable — the economy converges monotonically to from any initial condition. (The map is globally stable on because it is increasing and concave with a unique crossing of the 45-degree line.)
16.4.2 Multiplicity with Non-Log Utility¶
For general CRRA utility with , the saving function depends on , which itself depends on (a forward-looking dependence). The equilibrium map is then an implicit equation:
This implicit equation can have multiple solutions for given when (high EIS, strong substitution effect) — multiple equilibria. The Diamond model can exhibit multiplicity of steady states and indeterminate dynamics for certain parameter configurations, unlike the Ramsey model which has a unique globally stable steady state.
16.5 Dynamic Efficiency and Inefficiency¶
Definition 16.3 (Dynamic Efficiency). An allocation is dynamically efficient if there is no feasible reallocation that makes every generation better off. The competitive equilibrium is dynamically inefficient iff the economy is over-accumulating capital — investing more than the Golden Rule.
Theorem 16.2 (Dynamic Inefficiency Criterion). The steady state is dynamically inefficient (over-accumulated capital) if and only if:
Equivalently: the net marginal product of capital is less than the population-plus-technology growth rate.
Proof. The Golden Rule capital stock maximizes (steady-state consumption per effective worker), satisfying .
If : the economy is to the right of the Golden Rule. Reducing capital (reducing ) would raise steady-state consumption and be Pareto-improving across all generations. Hence implies dynamic inefficiency.
iff , i.e., .
Is the Diamond OLG model dynamically inefficient in practice? Abel, Mankiw, Summers, and Zeckhauser (1989) test dynamic efficiency by comparing aggregate profits () to aggregate investment (). For all OECD economies, aggregate profits substantially exceed investment — implying and dynamic efficiency. The Diamond model’s over-accumulation is a theoretical possibility that empirical data suggest is not realized.
Why can the Diamond OLG over-accumulate when the Ramsey model cannot? In the Ramsey model, the competitive equilibrium coincides with the social planner’s solution (First Welfare Theorem), which never accumulates beyond the Golden Rule because impatient households optimize. In the Diamond OLG model, the First Welfare Theorem does not apply because markets are incomplete: the young and the unborn cannot trade with each other before they are born. This market incompleteness allows the equilibrium to reach the over-accumulation region.
16.6 PAYG Social Security and Welfare Analysis¶
A Pay-As-You-Go (PAYG) social security system taxes the current young at rate and transfers the proceeds to the current old:
The household’s budget constraints with social security:
With log utility, the optimal saving becomes:
The second term is the present value of the social security transfer discounted at . The PAYG system reduces private saving dollar-for-dollar if (where the implicit return on PAYG contributions equals the market return), less than dollar-for-dollar if (which the system crowds out more valuable private saving), and more than dollar-for-dollar if (dynamically inefficient case).
Capital accumulation with PAYG: The equilibrium map becomes:
Social security reduces the steady-state capital stock. If the economy is dynamically inefficient (), this reduction is welfare-improving: the economy was over-accumulating, and PAYG corrects the inefficiency by transferring resources from young savers to old consumers. If the economy is dynamically efficient (), PAYG reduces welfare-enhancing private capital formation.
Generation-by-generation welfare analysis:
| Generation | Effect of introducing PAYG |
|---|---|
| First old generation | Gains: receives transfer without having contributed |
| Middle generations (steady state) | Ambiguous: lose on reduced saving, gain implicit return |
| Future generations (new SS) | Gain iff (dynamic inefficiency corrected); lose iff |
16.7 The Recursive Competitive Equilibrium¶
Definition 16.4 (Recursive Competitive Equilibrium). A recursive competitive equilibrium (RCE) for the Diamond OLG model consists of:
A value function for each household type.
Policy functions: , , .
Price functions: , .
A transition function: .
such that: (i) households optimize taking prices as given; (ii) firms optimize (factor markets clear); (iii) goods market clears: ; (iv) the transition function is consistent with savings behavior: .
The RCE reduces the economy’s dynamics to the single map , which we can analyze with the tools of Chapters 14 and this chapter.
16.8 Worked Example: Full Algebraic Solution and Phase Diagram¶
Cross-reference: Principles Ch. 25.1 (Diamond model) [P:Ch.25.1]
Log utility, Cobb–Douglas, Calibration:
, (one period = 30 years, so implies annual discount of about 0.97830), (30-year population growth), (30-year technology growth), (capital fully depreciates in 30 years).
.
Steady state:
per 30 years → annual rate
per 30 years → annual rate
Since , the economy is dynamically efficient. PAYG social security reduces welfare in this calibration.
APL¶
⍝ APL — Diamond OLG: Map simulation and phase diagram
⎕IO←0 ⋄ ⎕ML←1
alpha←0.36 ⋄ beta←0.5 ⋄ n←0.3 ⋄ g←0.5 ⋄ delta←1
mu0 ← (1+n)×(1+g)
⍝ Factor prices (Fixed unmatched parenthesis in 'rate')
wage ← {(1-alpha)×⍵*alpha}
rate ← {(alpha×⍵*(alpha-1)) - delta}
⍝ Saving function
saving ← {(beta÷(1+beta))×wage ⍵}
⍝ Equilibrium map
phi ← {(saving ⍵)÷mu0}
⍝ Steady state calculation
kstar_formula ← ((beta×(1-alpha))÷((1+beta)×mu0))*÷(1-alpha)
⍝ Simulate from k0 = 0.01
k0 ← 0.01
⍝ Use {phi ⍺}\ to generate the orbit, ignoring the dummy right argument
path ← {phi ⍺}\ 30 ⍴ k0
⍝ Dynamic efficiency
rstar ← rate kstar_formula
⍝ Effect of PAYG social security (tau=0.1)
tau ← 0.1
saving_payg ← {(beta÷(1+beta))×(1-tau)×wage ⍵}
phi_payg ← {(saving_payg ⍵)÷mu0}
⍝ Fixed convergence guard: {1e¯8 > |⍺-⍵}
kstar_payg ← phi_payg ⍣ {1e¯8 > |⍺-⍵} ⊢ kstar_formula × 0.9
⍝ --- Formatted Output ---
⎕← '--- DIAMOND OLG MODEL ---'
⎕← 'Steady State k*: ', ⍕kstar_formula
⎕← 'Verify phi(k*): ', ⍕phi kstar_formula
⎕← '--- SIMULATION PATH ---'
⎕← 'k[0], k[14], k[29]: ', ⍕path[0 14 29]
⎕← '--- DYNAMIC EFFICIENCY ---'
⎕← 'Interest Rate (r*): ', ⍕rstar
⎕← 'Pop/Tech Gr (n+g): ', ⍕n+g
⎕← 'r* vs n+g: ', ⍕rstar > n+g ⍝ 1 means dynamically efficient
⎕← '--- POLICY EXPERIMENT ---'
⎕← 'PAYG SS k* (τ=0.1): ', ⍕kstar_payg
⎕← 'Capital Crowding: ', ⍕kstar_formula - kstar_paygPython¶
import numpy as np; import matplotlib.pyplot as plt
from scipy.optimize import fixed_point
alpha, beta, n, g, delta = 0.36, 0.5, 0.3, 0.5, 1.0
mu0 = (1+n)*(1+g)
wage = lambda k: (1-alpha)*k**alpha
rate = lambda k: alpha*k**(alpha-1) - delta
phi = lambda k: (beta/(1+beta))*wage(k)/mu0 # equilibrium map (log utility)
kstar = ((beta*(1-alpha))/((1+beta)*mu0))**(1/(1-alpha))
print(f"k̃* = {kstar:.5f}")
print(f"r* = {rate(kstar):.3f} vs n+g = {n+g:.3f} → {'efficient' if rate(kstar)>n+g else 'inefficient'}")
# Phase diagram
k_grid = np.linspace(0.001, 0.08, 300)
k_next = phi(k_grid)
fig, ax = plt.subplots(figsize=(8,6))
ax.plot(k_grid, k_next, 'b-', linewidth=2, label='k̃\' = φ(k̃)')
ax.plot(k_grid, k_grid, 'k--', label='45° line')
ax.axvline(kstar, color='red', linestyle=':', label=f'k̃*={kstar:.4f}')
# PAYG experiment
for tau in [0.0, 0.1, 0.2]:
phi_tau = lambda k, t=tau: (beta/(1+beta))*(1-t)*wage(k)/mu0
kstar_tau = fixed_point(phi_tau, kstar*0.9)
ax.plot([kstar_tau], [phi_tau(kstar_tau)], 'o', markersize=8, label=f'τ={tau}: k̃*={kstar_tau:.4f}')
ax.set_xlabel('k̃ₜ'); ax.set_ylabel('k̃ₜ₊₁')
ax.set_title('Diamond OLG: Phase Diagram and PAYG Effects')
ax.legend(); plt.tight_layout(); plt.show()
# Simulate convergence
path = [0.01]; [path.append(phi(path[-1])) for _ in range(30)]
print(f"\nPath: {[round(x,5) for x in path[:5]]} ... {round(path[-1],5)} → k̃*={kstar:.5f}")Julia¶
alpha, beta, n, g, delta = 0.36, 0.5, 0.3, 0.5, 1.0
mu0 = (1+n)*(1+g)
wage(k) = (1-alpha)*k^alpha
phi(k) = (beta/(1+beta))*wage(k)/mu0
kstar = ((beta*(1-alpha))/((1+beta)*mu0))^(1/(1-alpha))
rstar = alpha*kstar^(alpha-1) - delta
println("k̃* = $(round(kstar,digits=5))")
println("r* = $(round(rstar,digits=3)) vs n+g = $(n+g) → $(rstar>n+g ? "efficient" : "INEFFICIENT")")
println("\nStability: φ'(k*) = α = $alpha < 1 → stable ✓")
# Simulate
k = 0.01; path = [k]
for _ in 1:40; k = phi(k); push!(path,k); end
println("Converges to: $(round(path[end],digits=5)) (k*=$(round(kstar,digits=5)))")R¶
alpha<-0.36; beta<-0.5; n<-0.3; g<-0.5; delta<-1.0; mu0<-(1+n)*(1+g)
wage <- function(k) (1-alpha)*k^alpha
phi <- function(k) (beta/(1+beta))*wage(k)/mu0
kstar <- ((beta*(1-alpha))/((1+beta)*mu0))^(1/(1-alpha))
rstar <- alpha*kstar^(alpha-1) - delta
cat(sprintf("k̃*=%.5f, r*=%.3f, n+g=%.1f → %s\n",
kstar, rstar, n+g, ifelse(rstar>n+g,"efficient","INEFFICIENT")))
# Path simulation via Reduce
path <- Reduce(function(k,.) phi(k), 1:40, kstar*0.3, accumulate=TRUE)
cat(sprintf("Path: %.5f → %.5f → %.5f → ... → %.5f (k*=%.5f)\n",
path[1],path[2],path[3],tail(path,1),kstar))16.9 Programming Exercises¶
Exercise 16.1 (APL — Stability Analysis)¶
Write a dfn olg_stability ← {alpha beta n g delta ← ⍵ ⋄ ...} that returns: (a) ; (b) ; (c) (always, confirming stability for log utility); (d) a Boolean dynamic_efficient flag; (e) the effect of PAYG on as a percentage change. Test with the calibration of Section 16.8 and with a hypothetical economy where (dynamically inefficient — try very high , low ).
Exercise 16.2 (Python — CRRA Utility, Numerical Map)¶
For CRRA utility with : (a) compute the saving function numerically (by solving the household FOC); (b) write the implicit map ; (c) solve for using fixed-point iteration; (d) check whether multiple steady states can arise for . Plot the map for each value.
Exercise 16.3 (Julia — PAYG Welfare Calculation)¶
For the log-utility calibration, compute the welfare effect of introducing a small PAYG system (). (a) For the current old (initial generation): compute (they get a windfall — the first generation always gains). (b) For a middle generation (in the new steady state): . Is this positive or negative for the calibration (where )? (c) Plot as a function of the PAYG tax rate for middle generations and identify the welfare-maximizing .
Exercise 16.4 — Fully Funded vs. PAYG ()¶
A fully funded (FF) social security system collects contributions from the young, invests them at the market rate , and returns to the old at retirement. (a) Show that a fully funded system is equivalent to a mandated private saving account — it does not affect the equilibrium capital stock or welfare. (b) By contrast, show that PAYG provides an implicit return of (not ). (c) When is PAYG welfare-superior to FF? Show this is exactly when — the dynamic inefficiency condition.
16.10 Chapter Summary¶
Key results:
In the Diamond OLG model, young households save from their wage income; old households dissave entirely. Capital accumulation is .
With log utility and Cobb–Douglas production: (independent of ); the equilibrium map is , with unique stable steady state .
The steady state is dynamically efficient iff (net MPK exceeds population-plus-growth rate); empirically, all OECD economies satisfy this.
PAYG social security reduces by crowding out private saving. It improves welfare iff the economy is dynamically inefficient ().
The Recursive Competitive Equilibrium is the map consistent with household optimization and market clearing.
In APL: the map is
phi ← {(saving ⍵)÷mu0}; simulation isphi \ T ⍴ k0(scan); the steady state isphi ⍣ (1e¯8∘>|⊢-phi) ⊢ k0_init.
Next: Chapter 17 — Recursive Methods for Real Business Cycle Models