How much should a society save?
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.
Optimal saving weighs the transition, not just the destination.
When something changes, consumption absorbs the surprise and capital follows.
Optimal saving, step by step
\[\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).
\[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.
\[\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.
\[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.
With CRRA utility \(\sigma\) is constant; verified symbolically in the guide’s _verify.py.
\[\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.
The Euler equation in one picture (illustrative parameters)
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.
\[f'(k^*) = \rho \;>\; n = f'(k_G) \quad\Longrightarrow\quad k^* < k_G\]
Optimal saving never oversaves: no dynamic inefficiency, unlike Solow.
\(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.
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.
Uniqueness needs as many unstable roots as jump variables, here one.
\[\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).
\[\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\).
\[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\).
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 impatientfrom 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| 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\).
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.
Time paths after the fall in ρ, relative to the old steady state (illustrative)
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.
\[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).
\[\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.
\[\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).
The first welfare theorem holds dynamically here, so the planner shortcut is safe.
What it means for data and policy
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.
A small σ means interest rates move consumption only modestly: a lesson for monetary policy.
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.
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.
\[\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.
The positive question (what do markets reveal?) differs from the normative one (what should a planner use?).
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.
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.
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.