import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import fsolveModule 3 — Keynes and the Multiplier
The Great Depression and the Birth of Macroeconomics
From Smith to Simulation: Computing the Ideas that Built Economics
The University of Edinburgh · School of Economics
Part I — The History
October 1929
On October 29, 1929 — “Black Tuesday” — the New York Stock Exchange crashed. Within weeks, billions of dollars in wealth had evaporated. But the crash itself was only the beginning. What followed was the Great Depression: the most severe economic catastrophe of the modern era.
Between 1929 and 1933, US GDP fell by nearly 30%. Unemployment rose to 25%. World trade collapsed by two-thirds. Factories stood idle. Millions who wanted to work could not find jobs. And the prevailing economic orthodoxy — the classical economics descended from Smith and Ricardo — had no good explanation for why, and no good prescription for what to do about it.
Classical economists believed in Say’s Law: “supply creates its own demand.” In this view, a general glut — an economy-wide shortage of demand — was impossible. If people saved more, interest rates would fall, investment would rise, and equilibrium would be restored. The prescription was patience: the market would sort itself out.
But as the Depression dragged on year after year, patience began to look less like wisdom and more like indifference.
John Maynard Keynes (1883–1946)
Into this crisis stepped John Maynard Keynes, a Cambridge economist, investor, patron of the arts, and one of the most brilliant minds of the 20th century. In 1936, he published The General Theory of Employment, Interest, and Money, which turned classical economics upside down.
Keynes’s central argument was simple but revolutionary: demand matters. An economy can get stuck in a state where people want to work but firms won’t hire them, because firms don’t expect enough demand for their products. And this isn’t a temporary glitch — it can persist indefinitely.
“The outstanding faults of the economic society in which we live are its failure to provide for full employment and its arbitrary and inequitable distribution of wealth and incomes.”
— J.M. Keynes, The General Theory (1936), Chapter 24
The Key Ideas
1. The Paradox of Thrift. If everyone tries to save more during a recession (a perfectly rational individual response to uncertainty), total spending falls, firms cut production, workers lose their jobs, incomes fall — and total saving actually decreases. What is rational for each individual is disastrous for the economy as a whole. Smith’s invisible hand, which harmonises self-interest and social welfare in the market for oats, breaks down at the level of the whole economy.
2. Animal Spirits. Investment depends not just on interest rates (as the classics assumed) but on business confidence — what Keynes called “animal spirits.” When entrepreneurs are optimistic, they invest; when they’re pessimistic, they don’t. And pessimism can be self-fulfilling: if firms expect a recession, they cut investment, which causes the recession.
3. The Multiplier. This is the idea we’ll compute today. When the government spends an extra pound, it doesn’t just add one pound to the economy. That pound becomes someone’s income; they spend part of it; that spending becomes someone else’s income; they spend part of that; and so on. The total effect on GDP is a multiple of the original spending. The size of this multiplier depends on how much of each pound of income people spend (the marginal propensity to consume).
Edinburgh Connection
Keynes’s ideas were fiercely debated in Edinburgh. The University’s economics department in the 1930s and 40s included several economists who were sceptical of Keynes — they belonged more to the classical tradition that Keynes was attacking. This tension between Keynesian macroeconomics and classical market-clearing models remains alive today, and Edinburgh’s department has contributed to both sides of the argument.
Part II — The Computation
Setting Up
The Keynesian Cross
The simplest Keynesian model is the Keynesian cross. The economy has three sources of spending:
Consumption by households: \(C = c_0 + c_1(Y - T)\)
- \(c_0\) is autonomous consumption (what people spend even if income is zero — drawing down savings, borrowing)
- \(c_1\) is the marginal propensity to consume (MPC): the fraction of each additional pound of disposable income that gets spent
- \(Y - T\) is disposable income (income minus taxes)
Investment by firms: \(I = \bar{I}\) (for now, we treat this as fixed — determined by animal spirits)
Government spending: \(G\) (also fixed — a policy choice)
Equilibrium requires that total output equals total spending:
\[Y = C + I + G\]
\[Y = c_0 + c_1(Y - T) + \bar{I} + G\]
This looks like a simple equation, and it is — we can solve it by hand. But setting it up computationally lets us explore variations that are much harder analytically.
# Parameters
c0 = 100 # autonomous consumption
c1 = 0.6 # marginal propensity to consume (MPC)
I_bar = 200 # investment (animal spirits)
G = 150 # government spending
T = 100 # taxes
def consumption(Y, c0=c0, c1=c1, T=T):
"""Household consumption as a function of income."""
return c0 + c1 * (Y - T)
def total_spending(Y, c0=c0, c1=c1, I_bar=I_bar, G=G, T=T):
"""Total planned spending: C + I + G."""
return consumption(Y, c0, c1, T) + I_bar + G
def equilibrium_condition(Y, c0=c0, c1=c1, I_bar=I_bar, G=G, T=T):
"""Returns zero when Y = C + I + G (equilibrium)."""
return Y - total_spending(Y, c0, c1, I_bar, G, T)# Find equilibrium
Y_star = fsolve(equilibrium_condition, x0=500)[0]
C_star = consumption(Y_star)
# Analytical solution for comparison
Y_analytical = (c0 - c1 * T + I_bar + G) / (1 - c1)
print(f"Equilibrium output: Y* = {Y_star:.2f}")
print(f"Equilibrium consumption: C* = {C_star:.2f}")
print(f"Investment: I = {I_bar}")
print(f"Government spending: G = {G}")
print(f"Check: C + I + G = {C_star + I_bar + G:.2f}")
print(f"\nAnalytical solution: Y* = {Y_analytical:.2f}")Visualising the Keynesian Cross
The Keynesian cross plots total spending against total output. The 45-degree line shows where \(Y = \text{Spending}\) — equilibrium is where the spending line crosses the 45-degree line.
Y_range = np.linspace(0, 2000, 300)
fig, ax = plt.subplots(figsize=(8, 6))
# 45-degree line
ax.plot(Y_range, Y_range, 'k--', linewidth=1, label='45° line (Y = Spending)')
# Total spending line
spending = total_spending(Y_range)
ax.plot(Y_range, spending, color='steelblue', linewidth=2.5, label='Planned spending (C + I + G)')
# Mark equilibrium
ax.plot(Y_star, Y_star, 'ro', markersize=10, zorder=5)
ax.annotate(f'Equilibrium\nY* = {Y_star:.0f}',
xy=(Y_star, Y_star), xytext=(Y_star + 200, Y_star - 150),
fontsize=11, arrowprops=dict(arrowstyle='->', color='red'),
bbox=dict(boxstyle='round,pad=0.3', facecolor='lightyellow', edgecolor='gray'))
# Mark components
ax.axhline(c0 + I_bar + G - c1 * T, color='gray', linestyle=':', alpha=0.5)
ax.text(50, c0 + I_bar + G - c1 * T + 20,
f'Autonomous spending = {c0 + I_bar + G - c1*T:.0f}', fontsize=9, color='gray')
ax.set_xlabel('Output (Y)', fontsize=12)
ax.set_ylabel('Planned Spending', fontsize=12)
ax.set_title('The Keynesian Cross', fontsize=14)
ax.legend(fontsize=10, loc='lower right')
ax.set_xlim(0, 1800)
ax.set_ylim(0, 1800)
ax.set_aspect('equal')
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()The Fiscal Multiplier
Now for Keynes’s most powerful policy insight. What happens when the government increases spending by \(\Delta G\)?
The theoretical multiplier is:
\[\text{Multiplier} = \frac{\Delta Y}{\Delta G} = \frac{1}{1 - c_1}\]
With \(c_1 = 0.6\), the multiplier is \(1 / (1 - 0.6) = 2.5\). Every pound the government spends generates £2.50 in total output. Let’s verify this computationally and see the round-by-round mechanics.
# Increase government spending by 50
delta_G = 50
G_new = G + delta_G
# New equilibrium
Y_star_new = fsolve(equilibrium_condition, x0=500, args=(c0, c1, I_bar, G_new, T))[0]
delta_Y = Y_star_new - Y_star
multiplier_numerical = delta_Y / delta_G
multiplier_theoretical = 1 / (1 - c1)
print(f"Original Y*: {Y_star:.2f}")
print(f"New Y* (G + {delta_G}): {Y_star_new:.2f}")
print(f"Change in output: ΔY = {delta_Y:.2f}")
print(f"Change in spending: ΔG = {delta_G}")
print(f"\nNumerical multiplier: {multiplier_numerical:.4f}")
print(f"Theoretical multiplier: {multiplier_theoretical:.4f}")The Multiplier Round by Round
The multiplier works through a chain of spending. Let’s trace it explicitly:
- Round 1: The government spends £50 (say, building a road). This is £50 of new income for road builders.
- Round 2: Road builders spend 60% of their £50 = £30 at shops. Shopkeepers earn £30.
- Round 3: Shopkeepers spend 60% of £30 = £18. Their suppliers earn £18.
- Round 4: Suppliers spend 60% of £18 = £10.80. And so on…
Total effect: \(50 + 50 \times 0.6 + 50 \times 0.6^2 + 50 \times 0.6^3 + \cdots = \frac{50}{1 - 0.6} = 125\)
# Trace the multiplier round by round
n_rounds = 20
spending_per_round = np.array([delta_G * c1**r for r in range(n_rounds)])
cumulative = np.cumsum(spending_per_round)
print("Round | New spending | Cumulative effect")
print("-" * 45)
for r in range(min(10, n_rounds)):
print(f" {r+1:>2} | £{spending_per_round[r]:>7.2f} | £{cumulative[r]:>7.2f}")
print(f" ... | ... | ...")
print(f" ∞ | £{0:>7.2f} | £{delta_G / (1 - c1):>7.2f}")
# Visualise
fig, axes = plt.subplots(1, 2, figsize=(12, 4.5))
axes[0].bar(range(1, n_rounds + 1), spending_per_round, color='steelblue', alpha=0.7)
axes[0].set_xlabel('Round', fontsize=12)
axes[0].set_ylabel('New spending (£)', fontsize=12)
axes[0].set_title('Spending per Round', fontsize=13)
axes[0].grid(True, alpha=0.3, axis='y')
axes[1].plot(range(1, n_rounds + 1), cumulative, 'o-', color='coral', markersize=5)
axes[1].axhline(delta_G / (1 - c1), color='black', linestyle='--',
label=f'Limit = ΔG/(1-c₁) = £{delta_G/(1-c1):.0f}')
axes[1].set_xlabel('Round', fontsize=12)
axes[1].set_ylabel('Cumulative effect on Y (£)', fontsize=12)
axes[1].set_title('Cumulative Multiplier Effect', fontsize=13)
axes[1].legend(fontsize=10)
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()How the MPC Changes the Multiplier
The marginal propensity to consume \(c_1\) is the engine of the multiplier. When people spend more of each additional pound, the multiplier is larger. Let’s see how the multiplier varies with \(c_1\).
c1_values = np.linspace(0.1, 0.95, 200)
multipliers = 1 / (1 - c1_values)
fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(c1_values, multipliers, color='steelblue', linewidth=2.5)
# Mark a few key values
for c1_mark, name in [(0.5, 'Cautious'), (0.6, 'Moderate'), (0.8, 'Confident'), (0.9, 'Exuberant')]:
m = 1 / (1 - c1_mark)
ax.plot(c1_mark, m, 'o', markersize=8, zorder=5)
ax.annotate(f'{name}\nc₁={c1_mark}, m={m:.1f}',
xy=(c1_mark, m), xytext=(c1_mark - 0.08, m + 1.5),
fontsize=9, ha='center',
bbox=dict(boxstyle='round,pad=0.2', facecolor='lightyellow', edgecolor='gray'))
ax.set_xlabel('Marginal Propensity to Consume (c₁)', fontsize=12)
ax.set_ylabel('Fiscal Multiplier = 1/(1 - c₁)', fontsize=12)
ax.set_title('The Multiplier Depends on How Much People Spend', fontsize=13)
ax.grid(True, alpha=0.3)
ax.set_xlim(0.05, 1.0)
ax.set_ylim(0, 22)
plt.tight_layout()
plt.show()
print("As c₁ approaches 1 (people spend everything), the multiplier explodes.")
print("As c₁ approaches 0 (people save everything), the multiplier shrinks to 1.")
print("This is why Keynes argued the MPC is the crucial behavioural parameter.")The IS Curve: Adding Interest Rates
In the real economy, investment isn’t fixed — it depends on the interest rate \(r\). When interest rates are low, borrowing is cheap and firms invest more. We model this as:
\[I(r) = \bar{I} - d \cdot r\]
where \(d\) measures how sensitive investment is to the interest rate.
Now equilibrium depends on \(r\): for each interest rate, there’s a different equilibrium output. The set of all \((Y, r)\) pairs where the goods market is in equilibrium is called the IS curve (“Investment = Saving”).
d = 500 # investment sensitivity to interest rate
def investment(r, I_bar=I_bar, d=d):
return I_bar - d * r
def is_equation(Y, r, c0=c0, c1=c1, I_bar=I_bar, d=d, G=G, T=T):
"""Returns zero at goods-market equilibrium for given r."""
C = c0 + c1 * (Y - T)
I = I_bar - d * r
return Y - C - I - G
# Compute the IS curve: for each r, find Y*
r_values = np.linspace(0.01, 0.15, 50)
Y_is = np.array([fsolve(is_equation, x0=500, args=(r,))[0] for r in r_values])
# Plot
fig, ax = plt.subplots(figsize=(8, 5))
ax.plot(Y_is, r_values * 100, color='steelblue', linewidth=2.5) # r in percent
ax.set_xlabel('Output (Y)', fontsize=12)
ax.set_ylabel('Interest rate (%)', fontsize=12)
ax.set_title('The IS Curve: Goods-Market Equilibrium', fontsize=13)
ax.grid(True, alpha=0.3)
ax.invert_yaxis() # convention: high Y to the right, high r up
ax.set_ylim(16, 0)
plt.tight_layout()
plt.show()
print("The IS curve slopes downward: lower interest rates → more investment → higher output.")
print("This is one of the fundamental relationships in macroeconomics.")Fiscal Policy Shifts the IS Curve
When the government increases spending, the IS curve shifts to the right — at every interest rate, equilibrium output is higher. This is the graphical version of the multiplier.
fig, ax = plt.subplots(figsize=(8, 5))
for G_val, color, label in [(150, 'steelblue', f'G = 150 (original)'),
(200, 'coral', f'G = 200 (fiscal expansion)'),
(100, 'seagreen', f'G = 100 (austerity)')]:
Y_is_shift = np.array([
fsolve(is_equation, x0=500, args=(r, c0, c1, I_bar, d, G_val, T))[0]
for r in r_values
])
ax.plot(Y_is_shift, r_values * 100, color=color, linewidth=2, label=label)
ax.set_xlabel('Output (Y)', fontsize=12)
ax.set_ylabel('Interest rate (%)', fontsize=12)
ax.set_title('Fiscal Policy Shifts the IS Curve', fontsize=13)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
ax.set_ylim(16, 0)
plt.tight_layout()
plt.show()
print("Keynes's prescription for the Great Depression: shift the IS curve right")
print("by increasing G. The government spends what the private sector won't.")Animal Spirits: What Happens When Confidence Collapses?
Keynes argued that investment is driven partly by rational calculation and partly by “animal spirits” — waves of optimism and pessimism. Let’s simulate what happens when a confidence shock hits the economy.
# Simulate the economy over time with a confidence shock
T_sim = 40 # periods (quarters)
# Animal spirits: investment confidence over time
I_bar_path = np.ones(T_sim) * 200
# At period 10, a confidence crash: investment drops by 30%
I_bar_path[10:] = 140
# Compute equilibrium Y in each period
r_fixed = 0.05 # fixed interest rate for this exercise
Y_path = np.empty(T_sim)
for t in range(T_sim):
Y_path[t] = fsolve(
is_equation, x0=500,
args=(r_fixed, c0, c1, I_bar_path[t], d, G, T)
)[0]
# Now simulate WITH fiscal response: G increases to offset the shock
G_response = np.ones(T_sim) * G
G_response[12:] = G + 40 # government responds 2 quarters later with extra spending
Y_path_response = np.empty(T_sim)
for t in range(T_sim):
Y_path_response[t] = fsolve(
is_equation, x0=500,
args=(r_fixed, c0, c1, I_bar_path[t], d, G_response[t], T)
)[0]
# Plot
quarters = np.arange(T_sim)
fig, axes = plt.subplots(1, 2, figsize=(13, 5))
axes[0].plot(quarters, I_bar_path, 'o-', color='coral', markersize=4, label='Investment confidence')
axes[0].axvline(10, color='red', linestyle=':', alpha=0.5, label='Confidence shock')
axes[0].set_xlabel('Quarter', fontsize=12)
axes[0].set_ylabel('Autonomous investment (Ī)', fontsize=12)
axes[0].set_title('Animal Spirits: Confidence Collapse', fontsize=13)
axes[0].legend(fontsize=9)
axes[0].grid(True, alpha=0.3)
axes[1].plot(quarters, Y_path, 'o-', color='steelblue', markersize=4, label='No policy response')
axes[1].plot(quarters, Y_path_response, 's-', color='seagreen', markersize=4, label='Fiscal stimulus (G↑)')
axes[1].axvline(10, color='red', linestyle=':', alpha=0.5)
axes[1].axvline(12, color='green', linestyle=':', alpha=0.5, label='Policy kicks in')
axes[1].set_xlabel('Quarter', fontsize=12)
axes[1].set_ylabel('Output (Y)', fontsize=12)
axes[1].set_title('Keynes vs. Doing Nothing', fontsize=13)
axes[1].legend(fontsize=9)
axes[1].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
print(f"Output drop without intervention: {Y_path[0] - Y_path[15]:.0f}")
print(f"Output drop with fiscal stimulus: {Y_path[0] - Y_path_response[15]:.0f}")
print(f"\nGovernment spending partially offsets the confidence crash.")
print(f"This is Keynes's core policy argument: when animal spirits fail,")
print(f"the government must step in to maintain demand.")Part III — Exercises
Exercise 1 — The Paradox of Thrift
Keynes argued that if everyone tries to save more, total output falls and saving may actually decrease. Let’s test this.
When the MPC \(c_1\) falls (people save more), the multiplier shrinks. Starting from baseline (\(c_0 = 100\), \(c_1 = 0.6\), \(\bar{I} = 200\), \(G = 150\), \(T = 100\)):
(a) Compute equilibrium \(Y^*\) for \(c_1 = 0.6, 0.5, 0.4, 0.3\). Show that output falls as people save more.
(b) Compute total saving \(S = Y - C - T\) at each equilibrium. Does saving actually increase when people try to save more?
(c) Plot \(Y^*\) and \(S\) against \(c_1\). This is the paradox of thrift in action.
(d) In 2–3 sentences, explain why what is rational for each individual (saving more in uncertain times) can be harmful for the economy as a whole. How does this relate to Smith’s invisible hand?
# Your answer hereExercise 2 — Balanced-Budget Multiplier
A politician proposes increasing government spending by £100, financed entirely by a £100 tax increase (so the budget stays balanced: \(\Delta G = \Delta T = 100\)).
Classical economists might argue this has no effect — the government takes a pound and gives it back. Keynes disagrees.
(a) Starting from the baseline, compute \(Y^*\) with \(G = 150\), \(T = 100\).
(b) Now compute \(Y^*\) with \(G = 250\), \(T = 200\) (balanced-budget increase of 100).
(c) What is \(\Delta Y\)? Is the balanced-budget multiplier equal to 0, 1, or something else?
(d) Explain intuitively why a balanced-budget fiscal expansion still increases output. (Hint: the government spends 100% of the extra revenue, but taxpayers only reduce spending by \(c_1 \times 100\).)
# Your answer hereExercise 3 — A Progressive Tax System
In our model so far, taxes \(T\) are a fixed lump sum. In reality, taxes depend on income. Let’s make the model more realistic.
Replace the fixed tax \(T\) with a proportional income tax: \(T(Y) = \tau \cdot Y\), where \(\tau\) is the tax rate.
The consumption function becomes: \(C = c_0 + c_1 (Y - \tau Y) = c_0 + c_1(1 - \tau)Y\)
(a) Write a new equilibrium condition function for this model. Use \(\tau = 0.25\).
(b) Find \(Y^*\) using fsolve. Compare to the fixed-tax model.
(c) What is the fiscal multiplier now? Derive the formula: \(\text{Multiplier} = \frac{1}{1 - c_1(1-\tau)}\). Verify numerically by increasing \(G\) by 50.
(d) Compare the multiplier with \(\tau = 0\) vs \(\tau = 0.25\) vs \(\tau = 0.5\). How does the tax rate affect the multiplier? Keynes’s followers called the income tax an “automatic stabiliser” — explain why.
# Your answer herePart IV — Quiz
Conceptual Questions
Q1. Before Keynes, classical economists believed that a general glut (economy-wide shortage of demand) was impossible because of:
- The quantity theory of money
- Say’s Law (“supply creates its own demand”)
- The labour theory of value
- Ricardo’s theory of comparative advantage
Q2. Keynes’s “paradox of thrift” states that:
- People who save more end up wealthier
- If everyone tries to save more, total income falls and aggregate saving may not increase
- Thrift is always beneficial for the economy
- Saving and investment are always equal
Q3. “Animal spirits” in Keynes’s framework refers to:
- Consumer demand for luxury goods
- Waves of business optimism and pessimism that drive investment decisions
- The instinct of workers to demand higher wages
- International currency speculation
Q4. Keynes’s policy prescription for the Great Depression was:
- Cut government spending to balance the budget
- Wait for the market to self-correct
- Increase government spending to replace lost private demand
- Return to the gold standard
Q5. The IS curve shows all combinations of \((Y, r)\) where:
- The money market is in equilibrium
- The goods market is in equilibrium (output = planned spending)
- Unemployment is zero
- Inflation is stable
Computational Questions
Q6. If the MPC is 0.8, the fiscal multiplier \(1/(1-c_1)\) equals:
- 1.25
- 2.5
- 5.0
- 8.0
Q7. In the Keynesian cross, equilibrium occurs where:
- The spending line has slope 1
- The spending line crosses the horizontal axis
- The spending line crosses the 45-degree line
- Consumption equals zero
Q8. If government spending increases by £100 and the MPC is 0.6, the total change in output is:
- £100
- £160
- £250
- £600
Q9. The IS curve slopes downward because:
- Higher output causes lower interest rates
- Lower interest rates stimulate investment, which increases equilibrium output
- Higher interest rates increase consumption
- Government spending falls when interest rates rise
Q10. A fiscal expansion (increase in \(G\)) shifts the IS curve:
- Leftward
- Rightward
- Upward along the same curve
- It doesn’t affect the IS curve
Quiz Answers
Click to reveal answers
Q1. (b) Say’s Law — the classical belief that production of goods automatically generates enough income to buy those goods, making a general demand deficiency impossible.
Q2. (b) The paradox is that individual rationality (save more when times are bad) produces a collectively irrational outcome (lower total income). The fallacy of composition.
Q3. (b) Animal spirits are the irrational waves of confidence and pessimism that drive business investment, beyond what can be justified by cold calculation of expected returns.
Q4. (c) Keynes argued that when private demand collapses, the government must fill the gap by increasing its own spending — the fiscal multiplier ensures the effect is magnified.
Q5. (b) The IS curve shows combinations of output \(Y\) and interest rate \(r\) where the goods market clears: \(Y = C + I(r) + G\).
Q6. (c) \(1/(1 - 0.8) = 1/0.2 = 5.0\). Each pound of government spending generates £5 of output.
Q7. (c) The 45-degree line represents \(Y = \text{Spending}\). Where the spending function crosses it, output equals planned spending — that’s equilibrium.
Q8. (c) \(\Delta Y = \Delta G \times \frac{1}{1-c_1} = 100 \times \frac{1}{0.4} = 250\).
Q9. (b) Lower \(r\) → cheaper borrowing → more investment → higher total spending → higher equilibrium \(Y\). So low \(r\) pairs with high \(Y\): a downward slope.
Q10. (b) Higher \(G\) increases autonomous spending, raising equilibrium \(Y\) at every \(r\), so the IS curve shifts right.
Further Reading
- Keynes, J.M. The General Theory of Employment, Interest, and Money (1936), Chapters 1–3, 10 (the multiplier).
- Skidelsky, R. Keynes: A Very Short Introduction — an excellent 150-page overview of Keynes’s life and ideas.
- Heilbroner, R. The Worldly Philosophers, Chapter 9 (“The Heresies of John Maynard Keynes”).
- Hicks, J.R. “Mr. Keynes and the ‘Classics’” (1937) — the paper that invented the IS-LM model.
Next week: Marx and the Machinery Question — capital accumulation, the labour share of income, and the debate over whether technology helps or hurts workers.