Methodology

How BigSim models the economy

BigSim is an agent-based macroeconomic simulator. Instead of assuming an idealized, frictionless economy, we encode observed real-world behavior in agents, institutions, and rules — then let macro outcomes emerge from the bottom up.

1. Why agent-based modeling

Most macroeconomic models used by governments and central banks are DSGE models (Dynamic Stochastic General Equilibrium). They assume a single “representative agent” who optimizes perfectly over an infinite time horizon. They're elegant, but they can't capture what we need:

DSGE Models

  • One representative agent
  • Perfect rationality assumed
  • Equilibrium by construction
  • Can't model unemployment well
  • Distribution is invisible

Agent-Based (BigSim)

  • Millions of individual agents
  • Bounded rationality, heuristics
  • Equilibrium is emergent (or not)
  • Unemployment arises naturally
  • Distributional effects visible

When AI displaces 30% of jobs, the question isn't “what happens to the representative agent” — it's “what happens to the truck driver, the copywriter, the bank teller, each in different cities with different savings and different options.” That requires an agent-based model.

2. The agents

BigSim models the US economy through interacting agent types. Each agent has state (properties that change over time) and behavior (rules for how it acts each month). The model can run at reduced scale for faster iteration, or scale up to a full-size model of the US with millions of households and hundreds of millions of individuals.

People

Individuals

Each person has an age, education, occupation, wage, health status, credit score, and AI exposure risk. They earn wages, look for work, and make spending decisions based on their situation.

Households

Groups of individuals who share housing and pool finances. Households consume, save, invest, pay rent or mortgages, and respond to economic shocks as a unit.

Firms

Firms

Millions of firms distributed across 20+ NAICS industry sectors. They hire workers, produce goods, set prices, take loans, pay wages, and go bankrupt when they can't cover costs. Each firm has its own productivity level, workforce, and financial position.

Landlords & REITs

From small individual landlords with a couple of rental units to institutional REITs with thousands. They set rents, manage vacancies, and face their own cash-flow pressures when tenants can't pay.

Financial system

Commercial banks

A set of named large banks modeled individually (JPMorgan, Bank of America, etc.) based on real market share data — plus an aggregate community banking sector that represents the thousands of smaller local and regional banks.

Federal Reserve

A realistic central bank agent with historically grounded behavior (including patterns like the Greenspan put), crisis tools, and policy quirks observed in practice. Fed behavior is configurable per scenario, so you can run both historical replays and counterfactual policy regimes.

Government

Federal government

Sets fiscal policy, runs transfer programs (unemployment insurance, SNAP, Social Security, EITC), collects federal taxes, issues debt, and applies regulatory settings. Budget deficits accumulate as national debt.

Local government

State and local taxation (property, sales, income), public services, and local spending. Separated from federal to capture the distinct fiscal dynamics and constraints faced by sub-national governments.

Markets & institutions

Stock market

Tracks aggregate equity valuation, P/E ratios, bubble dynamics. Wealth effects flow to households.

Housing market

Tracks home prices, mortgage rates, foreclosures, rental vacancy rates. Connects to banks (mortgages), landlords (rental income), and households (shelter costs).

MBS pools

Mortgage-backed securities that bundle residential mortgages into tradeable instruments. Connects bank origination to investor risk, with prepayment and default pass-through.

Pension & retirement funds

DB and DC plans invest in stocks and bonds; losses cascade to retiree wealth and spending.

Gig economy

Platform-based work with independent contractors — lower benefits, higher flexibility, different labor dynamics than traditional employment.

Foreign sector

Trade balance, capital flows, and foreign holdings of US debt. Intentionally coarse — a scope boundary rather than a claim that global dynamics are simple.

Universities & education

Degree production, student debt, retraining capacity. Critical for modeling how displaced workers can (or can't) adapt.

Agents are initialized from real data: BLS occupational employment statistics, NAICS industry counts, Census income distributions, Federal Reserve balance sheets, and FDIC banking data. Browse all entities in the registry →

3. Time & simulation flow

The simulation runs in monthly time steps. Each month, every agent acts according to its rules. Within a time step, the system is solved simultaneously — all agents act based on the same snapshot of the world, and their actions are reconciled together. This avoids artifacts from arbitrary ordering and reflects how real economic activity unfolds concurrently.

Each monthly step runs through 10 phases in order:

1. Banking

Banks assess capital ratios, set lending rates, and process loan applications. The Fed sets monetary policy — interest rates, reserve requirements, and crisis tools like QE and bailouts. Credit conditions propagate to every other phase.

2. Production

Firms decide how much to produce based on current workforce, capacity, inventory levels, and their expectations of future demand. Pricing is adaptive: firms use markups, competitive pressure, and sticky adjustment rules that reflect observed real-world behavior.

3. Wages & labor

Firms adjust their workforce — hiring when they expect growth, laying off when revenue falls. Workers search for jobs, weighing offers against their reservation wage. Wages respond to labor market tightness, firm ability to pay, bargaining power, and well-documented downward stickiness.

4. Taxation

Federal and local governments collect income taxes, payroll taxes, property taxes, capital gains taxes, and corporate taxes. Tax structures are parameterized — brackets, rates, and deductions can change via policy events.

5. Transfers

Government transfer programs distribute funds: unemployment insurance, SNAP, Social Security, EITC, and stimulus payments. Each program has its own eligibility rules and phase-in/phase-out rates.

6. Housing & goods

Home prices and rents respond to demand, interest rates, and inventory — with real-world frictions like price stickiness and financing constraints. Households consume goods based on income, wealth, and their marginal propensity to consume. Renters pay landlords; mortgage payments flow to banks and MBS pools.

7. Profit & investment

Firms calculate profits, pay dividends, and decide on capital investment. Stock prices respond to earnings, expectations, liquidity, and bubble/crash dynamics. Pension funds gain or lose value. Wealth effects feed back into consumption and confidence.

8. Accounting close

All balance sheets update. Firms that can't cover costs enter insolvency. Banks absorb loan losses. Budget deficits accumulate as national debt.

9. Events

Historical regime events and structural trends fire based on the simulation date — policy changes, crises, technology shocks. Each event modifies specific parameters through documented transmission mechanisms.

10. Invariant check

The system verifies stock-flow consistency constraints: no money created or destroyed, all balance sheets balance, all flows have matching sources and sinks. Violations flag model bugs rather than silently corrupting results.

4. Expectations & perception

A key feature of BigSim — and a core Keynesian insight — is that agents don't just respond to current conditions. They act on their expectations about the future. These expectations can be self-fulfilling:

Firm expectations

Firms don't just produce based on current orders. They form expectations about future demand based on recent trends, economy-wide signals, and their own sales history. A firm that expects a downturn may preemptively cut hiring — which reduces household income, which reduces demand, which confirms the expectation.

Consumer confidence

Households don't just spend based on current income. When people feel insecure about their jobs or the economy, they cut spending and increase savings — even before anything bad has actually happened to them. This precautionary behavior can amplify downturns.

Bank lending sentiment

Banks tighten lending standards when they perceive rising risk — even for creditworthy borrowers. This credit contraction can choke off investment and recovery precisely when the economy needs it most.

Why this matters

Standard economic models often treat expectations as “rational” — agents perfectly predict the future on average. BigSim uses adaptive, imperfect expectations: agents learn from the recent past, overreact to shocks, and can collectively create booms and busts through their own beliefs.

5. Parameters & calibration

BigSim has over 400 parameters that govern how agents behave, how markets adjust, and how institutions operate in practice. We prioritize empirical realism over theoretical elegance: parameters are chosen to match observed behavior, not to force textbook equilibrium conditions. These fall into several categories:

Empirical parameters

Values drawn directly from data — tax rates, wage distributions, industry employment shares, bank capital ratios. These have real-world benchmarks we can validate against.

Examples: Income tax brackets, FICA rate, SOC occupation distribution, NAICS industry GDP shares

Behavioral parameters

Coefficients that govern agent decision-making — how much do firms adjust prices when demand shifts? How quickly do unemployed workers lower their reservation wage? These are calibrated against observed macro behavior.

Examples: Marginal propensity to consume, wage adjustment speed, firm markup targets, hiring/firing thresholds

Historical events

Toggleable regime events — things that actually happened in the real economy. These can be turned on or off to test counterfactual histories: what if the 2008 bank bailout hadn't happened? What if the dot-com bubble hadn't burst?

Examples: Tax Reform Act of 1986, dot-com crash, 2008 financial crisis, COVID pandemic, stock buyback legalization

Policy interventions

Specific policy choices that can be dialed up, dialed down, or replaced. These are the main experimental levers — the things you change to test 'what if' scenarios.

Examples: Earned Income Tax Credit, unemployment insurance duration, minimum wage, capital gains tax rate, stimulus payments

Structural parameters

Architectural features of the model — how many industries, how banks are structured, time step length. Changed less often but important for understanding model assumptions.

Examples: Number of industry sectors, bank count, simulation start year, scaling ratio

All parameters are defined in YAML files that serve as the single source of truth. The simulation engine reads these directly — no hardcoded values in application code. Each parameter is documented with its source, plausible range, and audit status (green/yellow/red). This means anyone can inspect, question, or propose changes to any assumption the model makes.

💡 Policy experiments you can run

Because policies are just parameter configurations, you can test scenarios like: bailing out only banks vs. only homeowners vs. both during a housing crisis; replacing unemployment insurance with a universal basic income; changing how capital gains are taxed during an AI productivity boom. The model shows you not just aggregate GDP but who benefits and who gets hurt.

6. Historical grounding

To trust a model about the future, it needs to get the past right. BigSim is calibrated against US economic history from 1986 to 2024, including:

Regime events

Tax reforms, financial deregulation (Glass-Steagall repeal), trade shocks (NAFTA, China WTO), the dot-com bubble, the 2008 financial crisis and its aftermath, the COVID pandemic, stimulus response, and central-bank reaction regimes (including backstop behavior) — each encoded with specific transmission mechanisms that describe how the event propagates through the model.

Structural trends

Declining union membership, rising housing costs, the shift from manufacturing to services, automation of blue-collar work, financialization of the economy, the growth of the gig economy, rising student debt — long-running parameter trajectories that shape the baseline.

Each regime event can be toggled on or off, enabling counterfactual analysis: What if Glass-Steagall hadn't been repealed? What if the 2008 response had bailed out homeowners instead of banks? These aren't just academic questions — they build intuition for how policy choices interact with economic structure.

The model's job is to reproduce the broad shape of these 40 years. If it can track unemployment through the 2008 crisis and the COVID shock, we have more reason to trust its predictions about an AI displacement scenario.

7. Scenario testing

The point of BigSim isn't to predict one future — it's to compare possible futures under different policy choices. Every experiment follows the same structure:

  1. 1

    Define a baseline

    Current policy settings, no intervention. This is the control.

  2. 2

    Introduce a shock

    e.g., AI displaces 30% of white-collar jobs over 5 years.

  3. 3

    Apply a policy response

    UBI, job guarantee, public investment, retraining programs, new tax structures — one at a time or in combination.

  4. 4

    Compare trajectories

    Not just end-of-run numbers — the full path matters. How fast does unemployment spike? How quickly does recovery happen? Who gets left behind? Do cascading failures hit the banking system?

All scenarios use fixed random seeds and identical run parameters so results are reproducible. The simulator is designed for comparative policy testing, not point predictions.

8. Technical architecture

BigSim uses a declarative, data-driven architecture. The model's behavior is defined in YAML configuration files, not hardcoded in application logic. This makes the model transparent, auditable, and easy to experiment with.

┌─────────────────────────────────────────────────┐
│          Configuration Layer (YAML)              │
│  entities, rules, parameters, scenarios          │
└───────────────────────┬─────────────────────────┘
                        │
                        ▼
┌─────────────────────────────────────────────────┐
│          Simulation Engine (Julia)                │
│  Agent-based, monthly time steps                 │
│  Scales to millions of agents                    │
└───────────────────────┬─────────────────────────┘
                        │
                        ▼
┌─────────────────────────────────────────────────┐
│          Dashboard & Analysis (Next.js)           │
│  Registry browser, scenario comparison            │
└─────────────────────────────────────────────────┘

Why Julia?

Julia combines Python-like ergonomics with compiled performance close to C. Its multiple dispatch system is a natural fit for agent-based models where different agent types share common interfaces but have distinct behavior. The prototype engine runs at scale with no GC pauses on the hot path.

Why declarative?

If you want to test “what if wages were stickier downward?” you should be able to change a YAML value, not edit compiled code. Declarative rules make the model accessible to economists, not just programmers.

Scaling

Useful results can be obtained from a scaled-down model (thousands of agents) that runs in seconds. But BigSim is being built with the capacity to simulate a full-scale model of the US — roughly 130 million households and over 330 million individuals — for maximum realism when it matters.

Open source

All code, data, and parameters are public on GitHub. We believe economic models used to inform policy should be transparent and reproducible. If you disagree with an assumption, you can see exactly where it lives and propose a change.

9. Limitations & transparency

We believe in being honest about what a model can and can't do. BigSim is not a crystal ball. Here's what to keep in mind:

Models are simplifications

Every model makes choices about what to include and exclude. BigSim models the domestic US economy with separate federal and local government entities and a simplified foreign sector. It doesn't model individual states or cities. These are deliberate scope choices, not oversights.

Parameters are uncertain

Many of our parameters are calibrated from data, but some are estimated or borrowed from literature. We flag uncertainty levels explicitly and welcome challenges to any value.

Agent behavior is stylized

Real humans are more complex than any behavioral rule. Our agents use heuristics and adaptive expectations rather than full cognitive models. This is standard in ABM literature but worth remembering.

Comparative, not predictive

BigSim is designed to compare policy scenarios, not predict exact numbers. If scenario A shows 15% unemployment and scenario B shows 8%, the takeaway is the relative difference and the mechanisms that drive it — not that unemployment will be exactly 15%.

Help make this model better

Browse the registry, review the parameters, or join the conversation. The more eyes on this, the more realistic it gets.