Act I — The Question

How much should a society save?

Solow handed households a saving rate — what if they chose it?

In the Solow model, households save a fixed fraction of income, whatever happens.

Real households decide: consume today, or save and consume more tomorrow?

Making saving a choice turns a growth model into a model of optimal behaviour — and lets us judge outcomes.

The naive answer — save enough to maximise consumption forever — is wrong

Solow’s golden rule

  • pick the capital stock that maximises steady-state consumption
  • ignores what it costs to get there

Ramsey’s optimum

  • maximise discounted lifetime utility
  • counts the sacrifices on the way

Optimal saving weighs the transition, not just the destination.

Where we’re going

  • The question: how should households split income between today and tomorrow?
  • The model: the Hamiltonian and its FOCs, saddle-path stability, shocks, and the decentralised equilibrium
  • So what: the data on \(\sigma\) and \(r > g\), policy cases, and three frontier debates

Two kinds of variables: capital is sticky, consumption can jump

Capital \(k\) — the state

  • built by past saving
  • changes only gradually

Consumption \(c\) — the control

  • chosen freely each instant
  • can jump when news arrives

When something changes, consumption absorbs the surprise and capital follows.

The planner, one household, infinite lives — defensible shortcuts

  • Planner: under the welfare theorems it reproduces the competitive outcome
  • One household: fine if people respond similarly to incentives
  • Infinite lives: dynastic altruism, as in Barro (1974)
  • Discounting: positive interest rates reveal impatience

Act II — The Model

Optimal saving, step by step

Households maximise discounted utility of everyone alive

\[\int_0^\infty u(c_t)\, e^{nt} e^{-\rho t}\, dt \qquad \text{s.t.} \qquad \dot k_t = f(k_t) - n k_t - c_t\]

Population grows at \(n\); the future is discounted at \(\rho > n\); capital grows by output minus consumption minus “capital widening” \(nk\) (no depreciation).

The Hamiltonian prices capital with a shadow value λ

\[H = u(c)\,e^{nt} + \lambda\,\big[f(k) - nk - c\big]\]

\(\lambda_t\), the co-state, is the value at \(t\) of one more unit of capital: a shadow price, like a Lagrange multiplier.

Static condition: \(u'(c)e^{nt} = \lambda\), so the marginal value of consuming equals the marginal value of saving.

Capital is an asset: its return must equal its opportunity cost

\[\rho + n = \frac{\dot\lambda}{\lambda} + f'(k)\]

Opportunity cost of holding capital (\(\rho + n\)) = dividend (\(f'(k)\)) + capital gain on its price (\(\dot\lambda/\lambda\)).

The arbitrage logic we reuse for investment, asset prices and policy.

Three conditions characterise the optimum

\[u'(c_t)\,e^{nt} = \lambda_t \qquad \dot\lambda_t = \rho\lambda_t - \lambda_t\big[f'(k_t) - n\big] \qquad \lim_{t\to\infty} k_t\lambda_t e^{-\rho t} = 0\]

Static FOC (3.7) · co-state equation (3.8) · transversality condition (3.9). With \(k_0\) given, they pin down a unique path.

The TVC is an optimality condition: never end with valuable capital that could have been consumed.

Deriving the Euler equation takes three lines

  • Differentiate \(u'(c)e^{nt} = \lambda\) in time: \(\;u''(c)\dot c\,e^{nt} + n u'(c)e^{nt} = \dot\lambda\)
  • Divide by \(\lambda\): \(\;\dfrac{u''(c)c}{u'(c)}\dfrac{\dot c}{c} + n = \dfrac{\dot\lambda}{\lambda} = \rho + n - f'(k)\)
  • Use \(u''c/u' = -1/\sigma\): \(\;\dfrac{\dot c}{c} = \sigma\big[f'(k) - \rho\big]\)

With CRRA utility \(\sigma\) is constant; verified symbolically in the guide’s _verify.py.

The Euler equation: consumption grows when saving pays more than impatience costs

\[\frac{\dot c_t}{c_t} = \sigma\,\big[f'(k_t) - \rho\big], \qquad \sigma \equiv -\frac{u'(c)}{u''(c)\,c}\]

Differentiate the static condition in time and use the arbitrage condition. \(\sigma\) is the elasticity of intertemporal substitution.

Every intertemporal choice in the book is a variation on this equation.

Consumption grows to the left of k*, where capital’s return beats impatience

The Euler equation in one picture (illustrative parameters)

Optimal saving stops short of the golden rule

The kdot = 0 locus peaks at the golden rule; the optimum E lies to its left (illustrative)

Discounting (\(\rho > n\)) makes the consumption-maximising capital stock not worth building.

The modified golden rule pins the steady state

\[f'(k^*) = \rho \;>\; n = f'(k_G) \quad\Longrightarrow\quad k^* < k_G\]

Optimal saving never oversaves: no dynamic inefficiency, unlike Solow.

With illustrative numbers, the optimum holds one eighth of the golden-rule capital

\(f(k) = k^{1/3}\), \(\rho = 0.04\), \(n = 0.01\) (the guide’s worked example):

Capital \(k\) Consumption \(c\)
Optimum (modified golden rule) 24.06 2.646
Golden rule 192.45 3.849

\(k^*/k_G = (n/\rho)^{1/\alpha} = 0.125\): discounting matters enormously.

Only the saddle path reaches the steady state

Phase diagram: arrows show the motion in each region; dashed paths diverge (illustrative)

Given \(k_0\), consumption jumps onto the saddle path; then both move along it to E.

Why every other path fails: the transversality condition

  • Too much consumption: capital runs to zero, then consumption collapses: infeasible
  • Too little consumption: capital piles up past the golden rule, where \(f'(k) < n\): valuable capital is never consumed
  • The transversality condition rules both out and selects the saddle path

Uniqueness needs as many unstable roots as jump variables, here one.

Linearise the system around the steady state

\[\begin{bmatrix}\dot k \\ \dot c\end{bmatrix} = \Omega \begin{bmatrix}k - k^* \\ c - c^*\end{bmatrix}, \qquad \Omega = \begin{bmatrix}\rho - n & -1 \\ \sigma c^* f''(k^*) & 0\end{bmatrix}\]

Partial derivatives of \(\dot k = f(k) - nk - c\) and \(\dot c = \sigma c[f'(k) - \rho]\) at \((k^*, c^*)\) (3.27–3.33).

A negative determinant makes the steady state a saddle

\[\det\Omega = \sigma c^* f''(k^*) < 0 \;\Rightarrow\; \lambda_s < 0 < \lambda_u\]

Product of the eigenvalues is negative, so one is stable and one unstable. Illustrative values: \(\lambda_s \approx -0.0412\), \(\lambda_u \approx 0.0712\).

Convergence needs the unstable coefficient to be zero, which pins down a unique \(c_0\) for each \(k_0\).

The stable arm slopes up, with slope equal to the unstable root

\[c - c^* = (\rho - n - \lambda_s)\,(k - k^*), \qquad \rho - n - \lambda_s = \lambda_u > 0\]

From the first row of \((\Omega - \lambda_s I)v_s = 0\); \(\lambda_s + \lambda_u = \operatorname{tr}\Omega = \rho - n\). Illustrative slope \(\approx 0.0712\).

A parameter sweep shows how patience raises steady-state consumption

import numpy as np                         # arrays and maths
import matplotlib.pyplot as plt            # plotting
alpha, n = 2/3, 0.01                       # illustrative parameters
rhos = np.linspace(0.015, 0.08, 100)       # impatience rates, all above n
k_star = ((1 - alpha) / rhos) ** (1 / alpha)   # optimum for each rho
c_star = k_star ** (1 - alpha) - n * k_star    # consumption on kdot = 0
fig, ax = plt.subplots()                   # one panel
ax.plot(rhos, c_star)                      # lower rho → higher c*
ax.set_xlabel("impatience ρ"); ax.set_ylabel("steady-state c*")
plt.show()
print(round(c_star[0], 2), round(c_star[-1], 2))   # patient vs impatient

↗ Run the full model in Colab

Shooting: solve the saddle path by bisecting on c₀

from scipy.integrate import solve_ivp      # ODE solver
a, rho, n, sig = 2/3, 0.04, 0.01, 1.0      # illustrative parameters
def rhs(t, y):                             # planner's system (3.5, 3.15)
    k, c = y
    mpk = (1 - a) * k ** (-a)              # marginal product f'(k)
    return [k ** (1 - a) - n * k - c, sig * c * (mpk - rho)]
k0 = 0.5 * ((1 - a) / rho) ** (1 / a)      # start at half of k*
def too_high(c0):                          # does capital run out?
    hit = lambda t, y: y[0] - 0.5 * k0; hit.terminal = True
    sol = solve_ivp(rhs, (0, 600), [k0, c0], events=hit)
    return sol.t_events[0].size > 0
lo, hi = 0.1, k0 ** (1 - a) - n * k0       # bracket for c0
for _ in range(50):                        # bisect: shoot, narrow
    mid = (lo + hi) / 2
    lo, hi = (lo, mid) if too_high(mid) else (mid, hi)
print("saddle-path c0 =", round((lo + hi) / 2, 3))   # ≈ 1.71

↗ Run the full model in Colab

Comparative statics: what moves, on impact and in the long run

Change On impact Long run: \(k^*\), \(c^*\)
\(\rho\) ↓ (permanent) \(c\) jumps down both ↑
\(\rho\) ↑ (permanent) \(c\) jumps up both ↓
\(\sigma\) ↑ faster adjustment unchanged
\(n\) ↑ \(c\) jumps down to the new \(c^*\) \(k^*\) unchanged; \(c^*\) ↓

The steady state depends on \(\rho\), \(n\) and technology, not on \(\sigma\).

More patience: consumption dips, then climbs to a higher steady state

A permanent fall in ρ: jump from E down to A, then up the new saddle path to E′ (illustrative)

With these numbers consumption falls about 15% on impact, and ends about 12% higher.

On impact only consumption moves; capital follows gradually

Time paths after the fall in ρ, relative to the old steady state (illustrative)

Anticipated, transitory shocks: consumption jumps only on the news

A transitory, anticipated increase in the discount rate (book Figure 3.8)

No anticipated jump: it would offer infinite capital gains. The path lands on the saddle path exactly when ρ returns.

The market economy: households, firms and prices

\[c_t + \dot a_t + n a_t = w_t + r_t a_t, \qquad r_t = f'(k_t), \qquad w_t = f(k_t) - f'(k_t)k_t\]

Households own assets \(a = k - b\) (capital minus debt); competitive firms pay factors their marginal products (3.35–3.39).

No-Ponzi is a constraint; transversality is an optimality condition

\[\lim_{t\to\infty} a_t\, e^{-(r-n)t} \ge 0\]

Markets will not let a household borrow forever to pay interest (3.40); the TVC is chosen by the optimiser. They coincide in equilibrium.

Mixing them up is a classic error: one is imposed, the other is chosen.

Integrating the budget constraint gives lifetime solvency

\[\int_0^\infty w_s e^{-(r-n)s}\,ds + a_0 = \int_0^\infty c_s e^{-(r-n)s}\,ds\]

Multiply \(\dot a - (r-n)a = w - c\) by \(e^{-(r-n)t}\), integrate, and let \(t \to \infty\) under no-Ponzi (3.41–3.45).

Same equations, same paths: the market replicates the planner

  • Household Euler equation: \(\dot c / c = \sigma(r - \rho) = \sigma[f'(k) - \rho]\)
  • Identical households cannot borrow from each other: \(b = 0\), so \(a = k\)
  • The budget constraint becomes \(\dot k = f(k) - nk - c\), and no-Ponzi becomes the TVC

The first welfare theorem holds dynamically here, so the planner shortcut is safe.

Act III — So What

What it means for data and policy

US consumption barely responds to interest rates

Consumption growth vs the real interest rate, US 1948–2025

Source: FRED (BEA, Federal Reserve Board), snapshot 2026-10-15 · the data lab · notebook

Right direction, weak strength: the estimated slope is about 0.19, far below σ = 1.

Why the Euler equation fits poorly in simple data

  • Ex-post real rates mismeasure the ex-ante rates savers face
  • The T-bill rate is a safe return, not the return on capital \(f'(k)\)
  • Some households are liquidity-constrained; habits smooth consumption
  • Consumption and interest rates are both endogenous

A small σ means interest rates move consumption only modestly: a lesson for monetary policy.

The safe real rate has mostly been below growth

Real T-bill rate vs real GDP growth, US decade averages

Source: FRED (BEA, Federal Reserve Board), snapshot 2026-10-15 · the data lab

With the safe rate, r > g in only 19% of years. But the model’s r is the return on capital.

Case study: does r > g make inequality explode?

Real interest rates 1317–2018 (Schmelzing 2019), as reproduced in the chapter

In the model \(r = \rho > n = g\) on the balanced growth path: \(r > g\) is efficiency, not explosion.

If labour is hard to replace, its share can rise as capital grows

\[\frac{wL}{Y} = \alpha\left(\frac{AL}{Y}\right)^{\frac{\varepsilon-1}{\varepsilon}}\]

CES technology: with an elasticity of substitution \(\varepsilon < 1\), labour becomes more essential as the economy grows. Cobb–Douglas (\(\varepsilon = 1\)) keeps the share constant at \(\alpha\).

Whether r > g concentrates income depends on technology, not on r and g alone.

Case study: the social discount rate decides climate policy

  • The Stern Review urged sharp, immediate emission cuts
  • Nordhaus (2007): its conclusions hinge on a near-zero discount rate, inconsistent with market real rates and saving rates
  • In the model, \(f'(k^*) = \rho\): steady-state capital is very sensitive to \(\rho\)
  • Ramsey thought discounting future utility unethical: who should choose \(\rho\)?

The positive question (what do markets reveal?) differs from the normative one (what should a planner use?).

Optimal saving changes levels, not long-run growth

On the balanced growth path, \(k^*\) and \(y^* = f(k^*)\) are constant: no growth per person.

Diminishing returns stop accumulation once \(f'(k)\) falls to \(\rho\).

Long-run growth needs technology: that is where the next chapters go.

The tempting mistake — and the correction

Objection. If households become more patient and save more, they must consume less forever.

Response. Consumption falls only on impact. The new steady state has more capital and more consumption.

A second objection: optimal saving rules out oversaving everywhere

Objection. Since optimisers never oversave, dynamic inefficiency is a Solow curiosity.

Response. True for an infinitely-lived planner. With overlapping generations (Chapter 8), markets can accumulate capital beyond the golden rule.

Frontier: should a planner discount the future at all?

  • Ramsey called discounting future utility ethically indefensible
  • Caplin and Leahy (2004): standard discounting imposes a “tyranny of the present” on a social planner
  • The choice of \(\rho\) drives climate and long-lived infrastructure policy

Frontier: what does a representative household hide?

  • Caselli and Ventura (2000): heterogeneous tastes, skills and wealth can still aggregate, if structured
  • Distributional dynamics are compatible with the representation, but not explained by it
  • Heterogeneous-agent models relax it, and change policy answers

Frontier: is r below g the new normal?

  • Schmelzing (2019): a centuries-long decline in real interest rates
  • Holston, Laubach and Williams (2017): the natural real rate has fallen across advanced economies
  • If \(r < g\) persists: dynamic efficiency (Chapter 8) and debt sustainability (Chapters 17–18) are back in play

Key takeaways

  • Euler equation: \(\dot c / c = \sigma[f'(k) - \rho]\); σ looks small in the data
  • Modified golden rule: \(f'(k^*) = \rho\), so no oversaving
  • Saddle path: \(\det\Omega < 0\), so one stable root; the TVC selects the unique path
  • Shocks: permanent shifts move the loci; consumption jumps, capital follows
  • Equivalence: markets replicate the planner (no-Ponzi = TVC in equilibrium)
  • Policy: \(r > g\) is not destiny; the discount rate is a choice

Optimal saving reshapes the path to the steady state — not long-run growth.