model 04 — US heterogeneous-agent NK model · us-hank · US · hosted

See who responds to a US shock, not just how much.

Run stylized monetary, fiscal-spending, and productivity shocks through a two-asset heterogeneous-agent New Keynesian model — aggregate impulse responses plus first-order distributional output: MPCs by wealth quartile and the hand-to-mouth share.

methodology

Steady state, Jacobian, then instant IRFs.

The five stages of the us-hank pipeline, from the heterogeneous-agent structure to the first-order distributional block. The theory is the Auclert–Bardóczy–Rognlie–Straub Econometrica 2021 paper's; the implementation builds on the authors' sequence-jacobian toolkit.

1

Heterogeneous agents, two assets

Each household holds two assets liquid wealth varies by household illiquid wealth varies by household consumption decision MPC varies with liquid wealth the full distribution enters the general-equilibrium response
click to expand

Households differ

This is a validated replication of the two-asset heterogeneous-agent New Keynesian (HANK) model of Auclert, Bardóczy, Rognlie and Straub (Econometrica 2021, "Using the Sequence-Space Jacobian to Solve and Estimate Heterogeneous-Agent Models"). Households differ in liquid and illiquid wealth, so their marginal propensities to consume differ, and the model carries that whole distribution through the general-equilibrium response — the thing a representative-agent model cannot say.

Production grids, not demo grids

The model runs at the paper's production grid sizes — 50 liquid × 70 illiquid × 50 capital points — rather than the packaged demo grids. It is a VAR-free, sequence-space HANK: no estimated reduced form, no expectations shortcut. A variant option selects the paper's two_asset model (the default) or a fast one_asset textbook variant — no capital, so no investment response, and monetary/productivity shocks only.

2

Calibrate and solve the steady state

Calibrate to the paper's targets, solve once, cache calibrate discounting + portfolio-adjustment costs match targets the paper's asset-market targets, checked value by value steady state ~13 s, once, cached at the paper's production grids — no data vintage to refresh
click to expand

Hit the paper's targets

The first stage solves the general-equilibrium steady state at the production grids, calibrating discounting and portfolio-adjustment costs to hit the paper's asset-market targets. The solve takes about 13 seconds, is computed once, and is cached.

Checked value by value

The hosted steady state is set against the paper's published calibration targets, value by value, on the validation page. The parameterisation is the published paper's throughout — there is no data vintage to refresh.

3

Differentiate: the sequence-space Jacobian

One T×T matrix per shock–outcome pair (T = 300 quarters) outcome path T × 1 = GE Jacobian T × T · ~5 s, cached × shock path T × 1 warm IRF matrix–vector product, effectively instant
click to expand

One linear map

The second stage builds the general-equilibrium sequence-space Jacobian — the \(T \times T\) linear map from each exogenous path to each outcome path, with \(T = 300\) quarters. It takes about 5 seconds and is cached alongside the steady state.

Instant IRFs

With both caches warm, an impulse response is a matrix–vector product — effectively instant. The first call per variant pays the steady-state and Jacobian solves, roughly 18 seconds cold; every later call reuses them.

4

Shock: three instruments, endogenous labor tax

An AR(1) shock decays each quarter: size × persistenceᵗ size quarters t → three instruments monetary · fiscal_spending · productivity endogenous labor tax balances the budget each period
click to expand

AR(1) paths

A shock is an AR(1) path, \(\varepsilon_t = \text{size} \times \rho^t\), on one of three instruments: the Taylor-rule intercept (monetary), real government spending (fiscal_spending), or TFP (productivity).

The design point that matters

The labor tax is endogenous. The fiscal block balances the government budget each period, so a spending shock is implicitly tax-financed — and there is no exogenous transfer or tax-rate instrument to shock. Requests for one are refused with that explanation rather than answered with an invented mapping; score_reform refuses model="hank" outright.

5

Distribute — within first-order limits

MPCs by liquid-wealth quartile (schematic, not data) Q1 Q2 Q3 Q4 liquid-wealth quartile → hand-to-mouth share from the steady-state distribution impact consumption by total-wealth quartile, allocated by steady-state MPCs first-order: linear in the shock, deviations — not forecasts
click to expand

The distributional block

From the steady-state joint distribution and consumption policy, the model reports MPCs by liquid-wealth quartile, the hand-to-mouth share, and a first-order allocation of the impact consumption response across total-wealth quartiles — allocated in proportion to steady-state MPCs.

What "first-order" means here

Responses are linear in the shock, with no state dependence: the distributional cuts capture the MPC-heterogeneity channel, not full household-level dynamics along the transition. And the model is not a forecaster — every result is a deviation around the calibrated steady state, not a projection of the US economy. The code page has the commands and Python API; the validation page has the replication gate and full limits.