Skip to content
VERDANIAAn open economic laboratory
Research and methodology

How Verdania's numbers are made

Every result on this site comes from one published model. This page explains what it calculates, the assumptions it rests on, how uncertain it is, and how anyone can reproduce a run.

Model v0.1.0, released 16 October 2026. Parameter values are accepted for launch and open to revision.

Every figure is a simulated output for a fictional country. It is not a forecast, not a causal estimate for any real economy and not investment advice.

Read the full specification, with every equationBrowse the engine's source code

Design rules

  • No conclusion is built in. Every behavioural link is a named parameter with a central value, a range and an evidence label. Where research disagrees on the direction of an effect, the range crosses zero.
  • Uncertainty is explicit. Your policy choices are exact; the uncertain parameters are drawn many times, and results show a range.
  • The accounts always balance. Accounting identities are checked every year of every run, and a failure blocks the result.
  • A label never changes an equation. The four economic systems are bundles of policies run through the same model.
  • What isn't modelled is said, never faked.

The model in brief

Population

2,000,000 synthetic people in six regions, half women and half men in every region and age group. The engine works on 20,000 sample households, each standing for 40. No wage, job or leadership rule depends on gender, so any gender gap would have to come from a modelled mechanism; version 0.1 has none.

Production

Output comes from private capital, public infrastructure, and the number and skills of workers. Productivity grows at a trend rate. Public spending on education and health raises skills over time.

Y = A · K^α · G^γ · (h · L)^(1 − α)

Work and wages

Unemployment responds to the minimum wage, unemployment benefits, labour taxes and collective bargaining, each through its own named parameter. Bargaining and the minimum wage also shift the share of output paid as wages. When jobs are lost, they fall first on the workers most at risk.

u = u₀ + η_mw·Δbite + η_ub·Δrr + η_w·Δτ_L + η_cb·ΔCB

Firms and ownership

Profits are shared between public enterprises, cooperatives and private owners. Changes in ownership phase in over five years and are paid for at book value with public bonds, so nobody's wealth is simply taken. Private investment responds to corporate tax, the profit share and, possibly, public deficits.

I = Y · [ι₀ · (tax term)^ε_τ · (profit term)^ε_π − ψ · max(0, Δdeficit)]

Government

Revenue comes from income, capital, capital-gains, corporate and value-added taxes, plus the surplus of public enterprises. Spending covers health, education, infrastructure, pensions, unemployment benefits, a guaranteed minimum income and interest. Deficits add to debt or, if you choose, other spending is cut to respect a debt limit.

D(t+1) = D(t) + spending − revenue + compensation bonds

Households

Households receive wages, dividends, interest, pensions and benefits, pay taxes, then consume and save; richer households save a larger share. Health costs that public spending doesn't cover fall on households, and some go without care.

disposable income = market income + transfers − taxes

Closing the accounts

Trade balances the national accounts, so Verdania behaves like a small open economy.

net exports = GDP − consumption − investment − public spending

What the model leaves out

The most important simplification: there is no demand block. Tax rises and spending cuts carry no short-run cost to output, and extra spending brings no short-run boost. Output responds only through capital, public infrastructure, skills and employment.

  • Not modelled in v0.1: housing affordability, food security, social mobility, environmental sustainability, underemployment and supply chains between sectors.
  • The population is fixed: no births, deaths or migration. There is no inflation.
  • There is no default, inflation spiral or financial crisis. If debt or interest climbs too high, the run stops and says so instead of showing numbers outside the model's valid range.
  • Investment projects in the virtual market are described by their own assumptions; they don't yet feed the model.

Planned next

v0.2
Food and sector links, a demand block for downturns, housing, carbon and emissions, competition policy, investment projects that feed the model
v0.3
Social mobility, regional policies, underemployment, care time and part-time work
v0.4
Collective-planning alternatives for the collective-ownership model, trade policy

Parameters

Empirical range
The range comes from published studies.
Contested
Researchers disagree, sometimes on the direction of the effect.
Theoretical
Grounded in theory, with little direct measurement.
Synthetic
A modelling choice for this fictional country.
Policy levers (you control these)
Parameter
Top income-tax ratetau_topVerdania today: 35%Range: 20% – 70%
Basic income-tax ratetau_bVerdania today: 22%Range: 5% – 40%
Corporate tax ratetau_cVerdania today: 25%Range: 5% – 45%
Capital-income tax ratetau_kVerdania today: 20%Range: 0% – 50%
Capital-gains tax ratetau_cgVerdania today: 15%Range: 0% – 50%
VAT ratetau_vVerdania today: 12%Range: 0% – 25%
Minimum wage (share of median wage)biteVerdania today: 45%Range: 30% – 70%
Collective-bargaining coveragecbVerdania today: 35%Range: 10% – 90%
Unemployment-benefit replacement raterrVerdania today: 40%Range: 0% – 80%
Guaranteed minimum income (share of baseline median)gmiVerdania today: 20%Range: 0% – 60%
Public health spendingmVerdania today: 4.5% of outputRange: 1% – 7% of output
Public education spendingeVerdania today: 4.2% of outputRange: 2% – 8% of output
Public infrastructure investmentigVerdania today: 3% of outputRange: 1% – 8% of output
Cooperative / worker-owned capital shares_coopVerdania today: 3%Range: 0% – 50%
Public ownership of capitals_pubVerdania today: 10%Range: 0% – 80%
Debt limit (used by the adjust-spending closure)debt_limitVerdania today: 90% of outputRange: 30% – 150% of output
Structural parameters (uncertain, drawn in every run)
Parameter
Capital elasticity of outputalphaCentral: 0.35Range: 0.3 to 0.4Empirical range
Output elasticity of public capitalgammaBom & Ligthart (2014), Journal of Economic Surveys: meta-analysis mean about 0.08Central: 0.08Range: 0 to 0.15Empirical range
Private capital depreciationdeltaCentral: 0.06Range: 0.04 to 0.08Synthetic
Public capital depreciationdelta_gCentral: 0.04Range: 0.03 to 0.05Synthetic
Trend TFP growthg_aCentral: 0.01Range: 0.005 to 0.015Synthetic
Investment response to (1 - corporate tax)eps_tauCentral: 0.5Range: 0 to 1Contested
Investment response to profit shareeps_piCentral: 0.5Range: 0 to 1Contested
Crowding-out of private investment by deficitspsiCentral: 0.3Range: 0 to 1Contested
Unemployment response to minimum-wage biteeta_mwMinimum-wage employment effects disagree on sign at moderate bites (e.g. Cengiz et al. 2019)Central: 0.05Range: −0.05 to 0.2range crosses zeroContested
Unemployment response to replacement rateeta_ubCentral: 0.03Range: 0 to 0.08Contested
Unemployment response to labour-tax rateeta_wCentral: 0.05Range: 0 to 0.15Contested
Unemployment response to bargaining coverageeta_cbOECD (2019) Negotiating Our Way Up: effects depend on coordinationCentral: 0Range: −0.02 to 0.04range crosses zeroContested
Labour-share response to bargaining coveragetheta_cbCentral: 0.1Range: 0 to 0.25Theoretical
Labour-share response to minimum-wage bitetheta_mwCentral: 0.05Range: 0 to 0.15Theoretical
Wage compression from bargainingkappaCentral: 0.15Range: 0 to 0.3Theoretical
Taxable-income elasticity of top earnerse_tiSaez, Slemrod & Giertz (2012), Journal of Economic LiteratureCentral: 0.25Range: 0.1 to 0.5Empirical range
Human-capital growth per point of education spending (3-year lag)phi_eCentral: 0.1Range: 0 to 0.25Theoretical
Human-capital growth per point of health spending (1-year lag)phi_hCentral: 0.05Range: 0 to 0.15Theoretical
TFP-growth effect of collective ownership sharezeta_ownCentral: 0Range: −0.02 to 0.01range crosses zeroContested
Retained share of after-tax operating surplusrho_retLow because operating surplus here includes self-employed mixed income and household-owned capitalCentral: 0.1Range: 0.05 to 0.2Synthetic
Base interest rate on public debtr0Central: 0.04Range: 0.03 to 0.06Synthetic
Debt risk premium per unit of debt above 60% of outputrho_dCentral: 0.05Range: 0.02 to 0.1Synthetic
Share of catastrophic-spending households forgoing carebeta_forgoCentral: 0.5Range: 0.3 to 0.8Synthetic

Uncertainty

  • Each run draws every structural parameter 40 times from a triangular distribution over its range, most likely at the central value. Your policy levers are never randomised.
  • The baseline and your scenario share the same draws, so a range measures the effect of your policy, not random noise.
  • Results show the central value with the 10th to 90th percentile range of the draws. Every run also reports the share of draws that left the model's valid range.

Accounting checks

  1. Wages plus profits equal output.
  2. Household wages and dividends add up to the national totals.
  3. Consumption, investment, public spending and net exports add up to GDP.
  4. What households, firms and government save, minus investment, equals the balance with the rest of the world.
  5. Public debt changes by exactly the deficit plus any compensation bonds.
  6. Household wealth adds up to the national total.
  7. Identical inputs give byte-identical results.
  8. With no policy change, the baseline stays on its growth path.
  9. Year 0 is identical in every scenario.
  10. Each of the four economic systems pays for itself: a deficit within 3% of output in year 10.
  11. In the virtual market, unallocated plus allocated units always equal the grant.

Behaviour tests check limits only (for example, a 0% VAT raises no VAT). They never check the direction of a contested effect.

Synthetic and empirical data

All people, places and figures in Verdania are synthetic, and every figure in the database is labelled synthetic or empirical. Empirical figures in use today: 0. Where a parameter's range draws on published research, the source is named in the table above.

Cited sources: Bom & Ligthart (2014), Journal of Economic Surveys; Cengiz, Dube, Lindner & Zipperer (2019), Quarterly Journal of Economics; OECD (2019), Negotiating Our Way Up; Saez, Slemrod & Giertz (2012), Journal of Economic Literature.

Version history

  • v0.1.0 · 16 October 2026current

    First public model: supply-side macro block, household distribution, presets A-D. See docs/economic-model.md.

Reproduce a run

Every saved scenario keeps a complete record of its run:

  • the model version and the engine build (its git commit)
  • the population seed and the random seed for the draws
  • the horizon and every policy lever
  • input fingerprint: SHA-256 of the inputs in canonical form
  • output fingerprint: SHA-256 of everything the run reports, except the build id
  1. Open any saved or published scenario and press "Re-run and verify". The engine recomputes it and compares both fingerprints.
  2. Or run the open-source engine yourself and send it the scenario's levers and horizon: the same model version gives the same fingerprints.

Published scenariosRun an Experiment