Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Chapter 16: The Discrete-Time Overlapping Generations Model

kapitaali.com

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 tt) and old (period t+1t+1). There is no uncertainty.

Endowments: The young earn wage wtw_t in period tt; the old earn nothing (they retire).

Budget constraints:

cty+st=wt(young: consume and save)c^y_t + s_t = w_t \quad \text{(young: consume and save)}
ct+1o=(1+rt+1)st(old: consume all savings plus returns)c^o_{t+1} = (1+r_{t+1})s_t \quad \text{(old: consume all savings plus returns)}

where ctyc^y_t is young consumption, ct+1oc^o_{t+1} is old consumption, st0s_t \geq 0 is saving (borrowing is ruled out by the terminal age), and rt+1r_{t+1} is the interest rate from period tt to t+1t+1.

Lifetime utility maximization:

maxst0u(wtst)+βu((1+rt+1)st).\max_{s_t \geq 0} u(w_t - s_t) + \beta u\bigl((1+r_{t+1})s_t\bigr).

First-order condition (assuming interior solution):

u(wtst)+β(1+rt+1)u((1+rt+1)st)=0,-u'(w_t - s_t) + \beta(1+r_{t+1})u'\bigl((1+r_{t+1})s_t\bigr) = 0,
u(cty)=β(1+rt+1)u(ct+1o).\boxed{u'(c^y_t) = \beta(1+r_{t+1})u'(c^o_{t+1}).}

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 s(wt,rt+1)s(w_t, r_{t+1}) is the solution to the household’s optimization problem. Under standard assumptions (strictly concave utility, intertemporal normality), ss is:

  • Increasing in wtw_t (higher income → more saving, if the income effect dominates).

  • Ambiguously signed in rt+1r_{t+1}: 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 u(c)=lncu(c) = \ln c and β(0,1)\beta \in (0,1):

1cty=β(1+rt+1)1ct+1o=β(1+rt+1)1(1+rt+1)st=βst.\frac{1}{c^y_t} = \beta(1+r_{t+1})\frac{1}{c^o_{t+1}} = \beta(1+r_{t+1})\frac{1}{(1+r_{t+1})s_t} = \frac{\beta}{s_t}.

So cty=st/βc^y_t = s_t/\beta. Combined with the young budget constraint cty+st=wtc^y_t + s_t = w_t:

stβ+st=wt    st(1+ββ)=wt    st=β1+βwt.\frac{s_t}{\beta} + s_t = w_t \implies s_t\left(\frac{1+\beta}{\beta}\right) = w_t \implies \boxed{s_t = \frac{\beta}{1+\beta}w_t.}

Two remarkable properties of the log-utility saving function: (1) it is independent of rt+1r_{t+1} (income and substitution effects cancel exactly); (2) it is a constant fraction β/(1+β)\beta/(1+\beta) of wage income.


16.3 Firms: Competitive Production

A representative firm produces output using capital and labor with a CRS Cobb–Douglas technology:

Yt=Ktα(AtLt)1α,At=(1+g)tA0.Y_t = K_t^\alpha (A_t L_t)^{1-\alpha}, \quad A_t = (1+g)^t A_0.

In intensive form (k~t=Kt/(AtLt)\tilde{k}_t = K_t/(A_tL_t)): y~t=k~tα\tilde{y}_t = \tilde{k}_t^\alpha.

Competitive factor markets imply:

rt=f(k~t)δ=αk~tα1δ,w~twtAt=f(k~t)k~tf(k~t)=(1α)k~tα.r_t = f'(\tilde{k}_t) - \delta = \alpha\tilde{k}_t^{\alpha-1} - \delta, \qquad \tilde{w}_t \equiv \frac{w_t}{A_t} = f(\tilde{k}_t) - \tilde{k}_tf'(\tilde{k}_t) = (1-\alpha)\tilde{k}_t^\alpha.

16.4 General Equilibrium: The Capital Accumulation Map

Market clearing: The capital stock at t+1t+1 equals the aggregate savings of the young generation at tt:

Kt+1=Ltst,K_{t+1} = L_t s_t,

since the old dissave entirely (sts_t was their only saving, now returned as (1+rt+1)st(1+r_{t+1})s_t). In intensive form (k~t+1=Kt+1/(At+1Lt+1)\tilde{k}_{t+1} = K_{t+1}/(A_{t+1}L_{t+1})):

k~t+1=LtstAt+1Lt+1=st(1+g)(1+n)At=s(w~t,rt+1)(1+g)(1+n).\tilde{k}_{t+1} = \frac{L_t s_t}{A_{t+1}L_{t+1}} = \frac{s_t}{(1+g)(1+n)A_t} = \frac{s(\tilde{w}_t, r_{t+1})}{(1+g)(1+n)}.

Definition 16.2 (Equilibrium Map). With log utility: s(w~t,rt+1)=β1+βw~tAts(\tilde{w}_t, r_{t+1}) = \frac{\beta}{1+\beta}\tilde{w}_t \cdot A_t. Therefore:

k~t+1=β(1+β)(1+g)(1+n)w~t=β(1α)(1+β)(1+g)(1+n)k~tαϕ(k~t).\tilde{k}_{t+1} = \frac{\beta}{(1+\beta)(1+g)(1+n)}\tilde{w}_t = \frac{\beta(1-\alpha)}{(1+\beta)(1+g)(1+n)}\tilde{k}_t^\alpha \equiv \phi(\tilde{k}_t).

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:

k~t+1=ϕ(k~t)=β(1α)(1+β)μ0k~tα,μ0(1+g)(1+n).\tilde{k}_{t+1} = \phi(\tilde{k}_t) = \frac{\beta(1-\alpha)}{(1+\beta)\mu_0}\tilde{k}_t^\alpha, \quad \mu_0 \equiv (1+g)(1+n).

This is a one-dimensional increasing map on R+\mathbb{R}_+.

16.4.1 Steady State

The steady state satisfies k~=ϕ(k~)\tilde{k}^* = \phi(\tilde{k}^*):

k~=β(1α)(1+β)μ0k~α    k~1α=β(1α)(1+β)μ0.\tilde{k}^* = \frac{\beta(1-\alpha)}{(1+\beta)\mu_0}\tilde{k}^{*\alpha} \implies \tilde{k}^{*1-\alpha} = \frac{\beta(1-\alpha)}{(1+\beta)\mu_0}.
k~=[β(1α)(1+β)(1+g)(1+n)]1/(1α).\boxed{\tilde{k}^* = \left[\frac{\beta(1-\alpha)}{(1+\beta)(1+g)(1+n)}\right]^{1/(1-\alpha)}.}

Stability: ϕ(k~)=αϕ(k~)/k~=αk~α1ϕ(1)=α(0,1)\phi'(\tilde{k}^*) = \alpha\phi(\tilde{k}^*)/\tilde{k}^* = \alpha\tilde{k}^{*\alpha-1}\cdot\phi(1) = \alpha \in (0,1). Since ϕ(k~)=α<1\phi'(\tilde{k}^*) = \alpha < 1, the steady state is locally asymptotically stable — the economy converges monotonically to k~\tilde{k}^* from any initial condition. (The map ϕ\phi is globally stable on R++\mathbb{R}_{++} 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 σ1\sigma \neq 1, the saving function s(w,r)s(w, r) depends on rr, which itself depends on k~t+1\tilde{k}_{t+1} (a forward-looking dependence). The equilibrium map is then an implicit equation:

k~t+1=s(w~(k~t),r(k~t+1))(1+g)(1+n).\tilde{k}_{t+1} = \frac{s(\tilde{w}(\tilde{k}_t), r(\tilde{k}_{t+1}))}{(1+g)(1+n)}.

This implicit equation can have multiple solutions for k~t+1\tilde{k}_{t+1} given k~t\tilde{k}_t when σ<1\sigma < 1 (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 {cty,cto,k~t}\{c^y_t, c^o_t, \tilde{k}_t\} 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 k~\tilde{k}^* is dynamically inefficient (over-accumulated capital) if and only if:

r<n+g,i.e.,f(k~)δ<n+g.r^* < n + g, \quad \text{i.e.,} \quad f'(\tilde{k}^*) - \delta < n + g.

Equivalently: the net marginal product of capital is less than the population-plus-technology growth rate.

Proof. The Golden Rule capital stock k~GR\tilde{k}^{GR} maximizes c~=f(k~)(n+g+δ)k~\tilde{c}^* = f(\tilde{k}) - (n+g+\delta)\tilde{k} (steady-state consumption per effective worker), satisfying f(k~GR)=n+g+δf'(\tilde{k}^{GR}) = n+g+\delta.

If k~>k~GR\tilde{k}^* > \tilde{k}^{GR}: the economy is to the right of the Golden Rule. Reducing capital (reducing ss) would raise steady-state consumption and be Pareto-improving across all generations. Hence k~>k~GR\tilde{k}^* > \tilde{k}^{GR} implies dynamic inefficiency.

k~>k~GR\tilde{k}^* > \tilde{k}^{GR} iff f(k~)<f(k~GR)=n+g+δf'(\tilde{k}^*) < f'(\tilde{k}^{GR}) = n+g+\delta, i.e., r=f(k~)δ<n+gr^* = f'(\tilde{k}^*)-\delta < n+g. \square

Is the Diamond OLG model dynamically inefficient in practice? Abel, Mankiw, Summers, and Zeckhauser (1989) test dynamic efficiency by comparing aggregate profits (rK\approx r^*K^*) to aggregate investment ((n+g+δ)K\approx (n+g+\delta)K^*). For all OECD economies, aggregate profits substantially exceed investment — implying r>n+gr^* > n+g 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 τ\tau and transfers the proceeds to the current old:

dt=τwtLt/Lt1=τwt(1+n).d_t = \tau w_t L_t / L_{t-1} = \tau w_t (1+n).

The household’s budget constraints with social security:

cty+st=(1τ)wt(young: after-tax wage)c^y_t + s_t = (1-\tau)w_t \quad \text{(young: after-tax wage)}
ct+1o=(1+rt+1)st+dt+1=(1+rt+1)st+τwt+1(1+n)(old: savings plus transfer)c^o_{t+1} = (1+r_{t+1})s_t + d_{t+1} = (1+r_{t+1})s_t + \tau w_{t+1}(1+n) \quad \text{(old: savings plus transfer)}

With log utility, the optimal saving becomes:

st=β1+β(1τ)wtτwt+1(1+n)(1+β)(1+rt+1).s_t = \frac{\beta}{1+\beta}(1-\tau)w_t - \frac{\tau w_{t+1}(1+n)}{(1+\beta)(1+r_{t+1})}.

The second term is the present value of the social security transfer discounted at rt+1r_{t+1}. The PAYG system reduces private saving dollar-for-dollar if r=nr^* = n (where the implicit return on PAYG contributions equals the market return), less than dollar-for-dollar if r>nr^* > n (which the system crowds out more valuable private saving), and more than dollar-for-dollar if r<nr^* < n (dynamically inefficient case).

Capital accumulation with PAYG: The equilibrium map becomes:

k~t+1=st(1+g)(1+n)<β(1α)k~tα(1+β)μ0(for τ>0).\tilde{k}_{t+1} = \frac{s_t}{(1+g)(1+n)} < \frac{\beta(1-\alpha)\tilde{k}_t^\alpha}{(1+\beta)\mu_0} \quad \text{(for } \tau > 0\text{)}.

Social security reduces the steady-state capital stock. If the economy is dynamically inefficient (r<nr^* < n), 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 (r>nr^* > n), PAYG reduces welfare-enhancing private capital formation.

Generation-by-generation welfare analysis:

GenerationEffect of introducing PAYG
First old generationGains: receives transfer dd without having contributed
Middle generations (steady state)Ambiguous: lose rr^* on reduced saving, gain nn implicit return
Future generations (new SS)Gain iff r<nr^* < n (dynamic inefficiency corrected); lose iff r>nr^* > n

16.7 The Recursive Competitive Equilibrium

Definition 16.4 (Recursive Competitive Equilibrium). A recursive competitive equilibrium (RCE) for the Diamond OLG model consists of:

  1. A value function V(k~,age)V(\tilde{k}, \text{age}) for each household type.

  2. Policy functions: cy(k~)c^y(\tilde{k}), s(k~)s(\tilde{k}), co(k~)c^o(\tilde{k}).

  3. Price functions: r(k~)r(\tilde{k}), w(k~)w(\tilde{k}).

  4. A transition function: k~=Φ(k~)\tilde{k}' = \Phi(\tilde{k}).

such that: (i) households optimize taking prices as given; (ii) firms optimize (factor markets clear); (iii) goods market clears: Yt=ctyLt+ctoLt1+Kt+1+δKtY_t = c^y_t L_t + c^o_t L_{t-1} + K_{t+1} + \delta K_t; (iv) the transition function Φ\Phi is consistent with savings behavior: k~=s(k~)/μ0\tilde{k}' = s(\tilde{k})/\mu_0.

The RCE reduces the economy’s dynamics to the single map k~t+1=Φ(k~t)\tilde{k}_{t+1} = \Phi(\tilde{k}_t), 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:

α=0.36\alpha = 0.36, β=0.5\beta = 0.5 (one period = 30 years, so β=0.5\beta = 0.5 implies annual discount of about 0.97830), n=0.3n = 0.3 (30-year population growth), g=0.5g = 0.5 (30-year technology growth), δ=1\delta = 1 (capital fully depreciates in 30 years).

μ0=(1+n)(1+g)=1.3×1.5=1.95\mu_0 = (1+n)(1+g) = 1.3\times1.5 = 1.95.

Steady state:

k~=[0.5×0.641.5×1.95]1/0.64=[0.322.925]1.5625=[0.1094]1.5625=0.0359\tilde{k}^* = \left[\frac{0.5\times0.64}{1.5\times1.95}\right]^{1/0.64} = \left[\frac{0.32}{2.925}\right]^{1.5625} = [0.1094]^{1.5625} = 0.0359

r=0.36×0.03590.641=0.36×28.61=9.31=8.3r^* = 0.36\times 0.0359^{-0.64} - 1 = 0.36\times 28.6 - 1 = 9.3 - 1 = 8.3 per 30 years → annual rate 7.7%\approx 7.7\%

n+g=0.3+0.5=0.8n+g = 0.3 + 0.5 = 0.8 per 30 years → annual rate 2%\approx 2\%

Since r=8.3n+g=0.8r^* = 8.3 \gg n+g = 0.8, 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_payg
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Python

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) k~\tilde{k}^*; (b) rr^*; (c) ϕ(k~)=α\phi'(\tilde{k}^*) = \alpha (always, confirming stability for log utility); (d) a Boolean dynamic_efficient flag; (e) the effect of τ=0.1\tau = 0.1 PAYG on k~\tilde{k}^* as a percentage change. Test with the calibration of Section 16.8 and with a hypothetical economy where r<n+gr^* < n+g (dynamically inefficient — try very high β\beta, low rr).

Exercise 16.2 (Python — CRRA Utility, Numerical Map)

For CRRA utility with σ{0.5,1,2,5}\sigma \in \{0.5, 1, 2, 5\}: (a) compute the saving function s(w~,r)s(\tilde{w}, r) numerically (by solving the household FOC); (b) write the implicit map k~t+1=s(w~(k~t),r(k~t+1))/μ0\tilde{k}_{t+1} = s(\tilde{w}(\tilde{k}_t), r(\tilde{k}_{t+1}))/\mu_0; (c) solve for k~\tilde{k}^* using fixed-point iteration; (d) check whether multiple steady states can arise for σ<1\sigma < 1. Plot the map for each σ\sigma value.

Exercise 16.3 (Julia — PAYG Welfare Calculation)

For the log-utility calibration, compute the welfare effect of introducing a small PAYG system (τ=0.01\tau = 0.01). (a) For the current old (initial generation): compute ΔU=ln(d0)ln(0)=+\Delta U = \ln(d_0) - \ln(0) = +\infty (they get a windfall — the first generation always gains). (b) For a middle generation (in the new steady state): ΔU=ln(cy,new)+βln(co,new)[ln(cy,old)+βln(co,old)]\Delta U = \ln(c^{y,new}) + \beta\ln(c^{o,new}) - [\ln(c^{y,old}) + \beta\ln(c^{o,old})]. Is this positive or negative for the calibration (where r>nr^* > n)? (c) Plot ΔU\Delta U as a function of the PAYG tax rate τ\tau for middle generations and identify the welfare-maximizing τ\tau.

Exercise 16.4 — Fully Funded vs. PAYG (\star)

A fully funded (FF) social security system collects contributions τwt\tau w_t from the young, invests them at the market rate rt+1r_{t+1}, and returns (1+rt+1)τwt(1+r_{t+1})\tau w_t 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 n+gn+g (not rr^*). (c) When is PAYG welfare-superior to FF? Show this is exactly when n+g>rn+g > r^* — the dynamic inefficiency condition.


16.10 Chapter Summary

Key results:

  • In the Diamond OLG model, young households save s(wt,rt+1)s(w_t, r_{t+1}) from their wage income; old households dissave entirely. Capital accumulation is Kt+1=LtstK_{t+1} = L_t s_t.

  • With log utility and Cobb–Douglas production: st=[β/(1+β)]wts_t = [\beta/(1+\beta)]w_t (independent of rr); the equilibrium map is k~t+1=[β(1α)/((1+β)μ0)]k~tα\tilde{k}_{t+1} = [\beta(1-\alpha)/((1+\beta)\mu_0)]\tilde{k}_t^\alpha, with unique stable steady state k~=[β(1α)/((1+β)μ0)]1/(1α)\tilde{k}^* = [\beta(1-\alpha)/((1+\beta)\mu_0)]^{1/(1-\alpha)}.

  • The steady state is dynamically efficient iff r>n+gr^* > n+g (net MPK exceeds population-plus-growth rate); empirically, all OECD economies satisfy this.

  • PAYG social security reduces k~\tilde{k}^* by crowding out private saving. It improves welfare iff the economy is dynamically inefficient (r<n+gr^* < n+g).

  • The Recursive Competitive Equilibrium is the map Φ:k~tk~t+1\Phi: \tilde{k}_t \mapsto \tilde{k}_{t+1} consistent with household optimization and market clearing.

  • In APL: the map is phi ← {(saving ⍵)÷mu0}; simulation is phi \ T ⍴ k0 (scan); the steady state is phi ⍣ (1e¯8∘>|⊢-phi) ⊢ k0_init.

Next: Chapter 17 — Recursive Methods for Real Business Cycle Models