Econ-ARK Journey

Micro for Macro

Monetary Policy in a Representative-Agent Model

Interest Rate ↓

Intertemporal Substitution

One agent saves more.

Monetary Policy in a simple Heterogeneous-Agent (HANK) Model

Interest Rate ↓

Low-Wealth

High MPC; respond to income

  • Labour Income
  • Cash-Flow

Middle-Wealth

Precautionary motive stifles response

  • Buffer-Stock Savings

High-Wealth

Low MPC; respond to prices

  • Interest Income
  • Asset Prices
Historical Perspective
1950s
Foundations: PIH & LCH
1977
The Bewley Model
1989-92
First Quantitative Models
1994
General Equilibrium
1998
Krusell-Smith
2010s-Now
Modern HANK

Select a milestone to learn more

Click on any year in the timeline to explore the key developments in heterogeneous agent modeling that led to today's powerful HANK frameworks.

Computing Bewley Models

Households

Optimize
consume & save

Distributions over Time
(savings, labour, etc.)

Markets

Aggregate
wages & prices

Firms

Invest & hire

Prices & Interest Rates

The goal of Econ-ARK is to provide cutting-edge, modular, open-source implementations of each component in this circular flow, from household optimization algorithms to aggregation and simulating general equilibrium solutions.

Interactive Dashboards

Fiscal Policy in a HANK Model with Search Frictions

This dashboard explores fiscal multipliers in a Heterogeneous Agent New Keynesian (HANK) model with Search and Matching frictions. To capture the distributional effects of fiscal policy, the model features households with heterogeneous preferences facing idiosyncratic income risk, unemployment dynamics, and endogenous job creation.

Key insight: UI extensions typically generate the highest multipliers due to targeting unemployed households with high marginal propensities to consume.

Heterogeneous Agents

Captures distributional effects across wealth and employment status

Search & Matching

Endogenous job creation and unemployment dynamics

Policy Multipliers

Compare effectiveness of UI, transfers, and government spending

Central Banker Learning Path

The notebooks below are ordered in a "bottom up" fashion to show you what HARK can do as quickly as possible. It begins with an introduction to the absolute basics of HARK's core framework for representing populations of heterogeneous agents, the AgentType superclass, including our workhorse example IndShockConsumerType; the second notebook on the path provides details of that model and its implementation in HARK.

Next, we explain how information about the agent's problem (parameters, etc) is structured conditional on which AgentType subclass is used, with a focus on how HARK's flexible time structure allows for both finite and infinite horizon problems. The fourth notebook on this path offers a tutorial on how to generate simulated data after solving an AgentType instance's problem.

The last three notebooks give instruction on the "sequence-space Jacobian method" for computing impulse responses to so-called MIT shocks in heterogeneous agents macroeconomic models. The first of these gives and overview of the method itself, including the computational motivation and the mathematics that the method uses. We then provide a tutorial on HARK's syntax for constructing HA-SSJs for (almost) all AgentType subclasses. Finally, we put it all together and show how those HA-SSJs can be used with the sequence_jacobian toolkit to specify a macroeconomic framework in which the microeconomic agents live, and compute impulse responses to unexpected macroeconomic shocks.

If you are an ambitious (or impatient!) reader, feel free to jump ahead to the final notebook and "start at the end" to get to the most macroeconomically substantive material first. You can then work backward through the notebooks to learn more about what was happening in each layer.

bewley_workflow.py

                                

Step-by-Step Learning Path

1

Gentle Introduction to HARK

The entry point for the HARK package, providing syntax and basic examples of its fundamental AgentType representation.

2

IndShockConsumerType Documentation

Documentation for the workhorse IndShockConsumerType model of consumption-saving under permanent and transitory income risk, which is used by the notebooks to follow.

3

Cycles Tutorial

An explanation for how problem data is structured for AgentType instances, and how to use HARK's flexible timing structure.

4

Simulation Introduction

Detailed documentation and examples for how simulation works for our AgentType subclasses, including both the legacy system and a new model-file based system.

5

SSJ Explanation

An overview of the mathematics of the sequence-space Jacobian method.

6

SSJ Tutorial

A tutorial for the syntax and scope of HARK's HA-SSJ constructor tool.

7

HANK Fiscal Example

An example application that combines HA-SSJs constructed from a HARK AgentType instance with the sequence_jacobian toolkit to compute impulse response functions to an unexpected macroeconomic shock. Includes a discussion of how the inclusion of heterogeneous agents in a new Keynesian model (HANK) matters substantively for the predictions of a macroeconomic model, relative to a traditional representative agent (RANK) or two-agent framework (TANK).

Further Resources

Aiyagari Steady‑State Notebook

Walk‑through of computing the stationary equilibrium in an incomplete‑markets Aiyagari model (ConsAggShockModel/AiyagariSteadyState.ipynb). Shows how to iterate on the capital‑labor ratio and verify market clearing with a heterogeneous household block solved in HARK. Useful as a micro foundation for RBC–style general‑equilibrium explorations or as a warm‑up before adding nominal rigidities.

View notebook

Distribution of Wealth & Marginal Propensity to Consume

Full reproduction of Carroll, Slacalek, Tokuoka & White (2017) using HARK (econ-ark/DistributionOfWealth). Matches the cross‑section of U.S. wealth and delivers the high MPCs that are essential for evaluating temporary fiscal transfers.

Repository

Krusell–Smith Incomplete‑Markets RBC Model

Classic aggregate‑shock benchmark recreated in econ-ark/KrusellSmith. Demonstrates law‑of‑motion iteration for the mean of the wealth distribution and provides a baseline for Elyesian policy experiments under real rigidities.

Repository

Consumption & Portfolio Choice over the Life Cycle

Replication of Cocco, Gomes & Maenhout (2005) in econ-ark/CGMPortfolio. Useful for stress‑testing calibrations of risk aversion and portfolio‑rebalancing costs before embedding a life‑cycle block inside a larger HANK framework.

Repository