A Cautionary Tale from Austerity Economics

2008

Financial Crisis

The worst global recession since the 1930s. Banks failed, unemployment soared, governments borrowed massively to stimulate their economies.

The Debate

Stimulus vs. Austerity

Should governments keep spending to boost growth — or slash spending to reduce dangerous debt levels? The debate was fierce.

The Question

Does debt kill growth?

Policymakers desperately wanted data. At what point does government debt become so large that it chokes off growth?

2010 — "Growth in a Time of Debt"

Carmen Reinhart & Kenneth Rogoff

Harvard University, American Economic Review

Countries whose government debt exceeds 90% of GDP experience dramatically lower economic growth — averaging just -0.1% per year.

Cited 3,000+ times.

"The recent research of economists Carmen Reinhart and Kenneth Rogoff confirms that high levels of government debt consistently lead to lower economic growth."

— Paul Ryan, U.S. House Budget Committee, 2013 Budget Proposal

European Commission

Imposed austerity on Greece, Spain, Portugal, Ireland as condition of bailouts.

UK Treasury

Chancellor Osborne used it to defend sweeping welfare and public service cuts.

IMF

Cited in country reports recommending fiscal consolidation across debt-heavy nations.

U.S. Congress

Informed Republican budget plans targeting trillions in spending reductions.

2013 — A Grad Student Asks for the Spreadsheet

28
years old
Thomas Herndon
PhD Student, UMass Amherst
01 The assignment — Professor asked students to replicate a famous economics paper. He chose Reinhart-Rogoff.
02 The mismatch — His results didn't match. He ran the numbers again. And again. Still wrong.
03 The email — He emailed Reinhart and Rogoff directly and politely asked for their original Excel file.
04 The moment — They sent it. What he found inside would become one of the most famous discoveries in economics.

Three Errors. One Catastrophic Result.

The Number That Changed Everything

Original Claim

Growth above 90% debt:

-0.1%

per year average

Debt above 90% causes contraction

vs.

Corrected Result

Growth above 90% debt:

+2.2%

per year average

Slower growth — but not economic collapse

Try It Yourself

Toggle countries in and out to see how the conclusion changes.

Select Countries
Try deselecting New Zealand — that's what the Excel error did.

Five Lessons from Spreadsheet-Gate

01 — Share your data

Research that shapes policy must be verifiable. Journals now require raw data and code.

02 — Excel is fragile

An off-by-one range error became the most expensive typo in economic history.

03 — Replicate before acting

No policy affecting millions should rest on a single unreviewed spreadsheet.

04 — Power amplifies errors

Institutions adopt what confirms their priors — and resist correction fiercely.

05 — The grad student matters

Thomas Herndon did what no senior economist had bothered to do. It took 3 years.

What R Would Have Prevented

  • Transparent code: Every step visible — mean(df$growth) always uses ALL rows
  • Reproducible: set.seed() + script = same result every time
  • Version-controlled: Git tracks every change to every line
  • Peer-reviewable: Anyone can run the same script and verify

The R Challenge

In Excel, a probabilistic sensitivity analysis needs hundreds of rows of formulas. In R:

# The entire PSA set.seed(42) delta_cost <- rnorm(10000, 20000, 5000) delta_qaly <- rnorm(10000, 1.5, 0.4) # 10,000 simulations. Done.
Change the seed, rerun — every result is traceable. Try that in a 10,000-row spreadsheet.

Cost-Effectiveness Plane

Simulation Table

CEAC Preview

The R Code

A full cohort Markov model — readable, auditable, one screen:

# States: Healthy, Sick, Dead P <- matrix(c( 0.89, 0.10, 0.01, 0.00, 0.95, 0.05, 0.00, 0.00, 1.00 ), nrow = 3, byrow = TRUE) trace <- matrix(0, nrow = 21, ncol = 3) trace[1, ] <- c(1000, 0, 0) for (i in 2:21) { trace[i, ] <- trace[i-1, ] %*% P } # Full cohort simulation in one line of logic.
The entire model logic: trace[i,] <- trace[i-1,] %*% P . Try dragging formulas across 20 years x 3 states in Excel.

Model Structure

Unidirectional progressive disease model — patients move from Healthy → Sick → Dead. No recovery from Sick to Healthy (e.g. CKD, progressive cancer).

Transition Probability Matrix

Markov Trace

Drag the slider to watch the cohort flow through health states.

Trace Table — Key Cycles

Cost-Effectiveness Results

Cost-Effectiveness Acceptability Curve

The CEAC answers: "At my WTP, what is the probability the new treatment is cost-effective?"

Move the WTP slider and watch the probability change in real-time. This is what R enables — interactive, explorable decision support that no static spreadsheet can match.

The Comparison

Criterion Excel R
Reproducibility Cell references hidden; copy-paste errors common Script = complete audit trail
PSA (10,000 sims) Thousands of rows, slow, crash-prone 3 lines of R, < 1 second
Markov Models Drag formulas across states x cycles Matrix multiplication: 1 line
Sensitivity Analysis Manual data tables, limited dimensions Loops + parallel computing
Visualization Basic charts, limited customization ggplot2, plotly, Shiny dashboards
Collaboration Email attachments, version confusion Git + GitHub, branching, code review
Cost Licence fee (Rs. 5,000-15,000/year) Free & open-source, forever
Regulatory Acceptance Common but scrutinized for errors NICE, HTAIn, WHO — all accept R

Workshop Promise

Over the next 3 days, you will build every model type shown in this app — from scratch, in R. No prior R experience required.