The Citizens Standard  ·  The methodology

Test the data

Every load-bearing number ties to a script that computes it, and every empirical claim runs on real, public data. This page maps each claim to its code: what the tests confirmed, and where the data made us walk a claim back.

Two kinds of backing

The replication layer does two distinct jobs, and we label which is which so you are never left guessing whether a number is internally consistent or externally tested.

Verification

Code that reproduces a published figure straight from the framework’s own engine and spec. It proves the paper is internally consistent: the number it prints is the number the model actually yields.

Stress-test

A module that takes a contested claim out to real external data, or sweeps an uncertain parameter across its plausible range. It proves robustness, and in several cases it honestly qualifies the claim.

Across the fourteen papers there are eleven replication packages, each with a run_all that executes end to end. Everything is plain Python on public data, no API key, no private series.

What each package tests

Eleven packages, one map. Each names the claims it backs, the file that computes or tests them, and whether the backing is verification or a stress-test. Nine packages reproduce a paper’s published figures; one is the stress-test hub that takes contested claims out to real external data.

architecture_replicationPapers 1, 4, 9
Launch issuance of $447B (2.0% of M2), with the floor figures that follow
code/run_all.py  (19/19 checks)
Verification
Stable Floors: Mode A $233K, Mode B $413K, Mode C $230K, and the Mode B return band
code/cs_engine.py
Verification
empirical_replicationPapers 2, 1, 3
Counterfactual realizable return of 4.26% on actual 1960-2025 data
code/ deterministic engine (historical CSV)
Verification
Outcomes under bad draws: 10,000-path bootstrap including the Depression and the Great Inflation, with P5/P10/P50 percentiles
code/mc_engine.py
Stress-test
macro_replicationPapers 5, 9
Propositions 4-9: price determinacy without a Taylor principle, two-circuit separation, stability
code/verify_proposition_4.py9.py
Verification
Price-stability locus g·Mᵀ ≈ $229.7B (Mᵀ ≈ 51% of M2); coupling threshold ζ* ≈ 0.13
code/recompute_illustrations.py
Verification
banking_replicationPaper 6
Propositions B1-B5: monetary control, lending cap, throttle, capital requirement, run-proof payments
code/paper6_model.py (run_all)
Verification
Collateral cap binds at σ ≈ 0.13 via the non-pledgeable lock
code/paper6_model.py (B2)
Verification
interoperability_replicationPaper 7
Zero is the uniquely robust common external anchor, across swept divergence shocks
code/equa_stress.py
Verification
Domestic launch figures reconcile to the dollar
code/cs_engine.py
Verification
structural_buyer_replicationPaper 8
Ownership plateau ψ* ≈ 0.10 via cohort decumulation (Prop 4)
code/verify_psi_plateau.py
Verification
Bounded premium (Prop 1), mirror-voting (Prop 7), leak (Prop 3)
code/verify_prop*.py
Verification
transition_replicationPaper 3
Debt-to-GDP 102% → 39% (Y30) → 15% (Y45) via Mode T
code/appendix_A2_debt_trajectory.py
Verification
The five-phase architecture and its phase milestones
code/phase_milestones.py
Verification
comparative_replicationPaper 13
Comparison against the Alaska PFD, Norway, Singapore, and LVT/UBI hybrids
src/compare.py, scenario_lvt_hybrid/lvt_hybrid.py
Verification
crisis_behaviour_replicationPaper 12
The procyclical dividend is the signature failure mode: the dividend falls to zero in a downturn
crisis_behaviour_replication/ + procyclicality/
Stress-test
empirical_validation_replicationPaper 10
Transactional-aggregate decomposition raced against Divisia and composition benchmarks on real FRED data
src/run_divisia_horserace.py, run_composition_horserace.py
Stress-test
M2 loses to the CS aggregate on RMSE; the analysis concedes the cases where it loses
src/ (robustness, Test A)
Stress-test
distribution_inequality_replicationThe stress-test hub · 14 sub-modules
Gini 0.830 → 0.743 (SCF 2022 microsimulation), with the floor-vs-dividend decomposition
src/channels.py; results/inequality_results.json
Verification
External anchor across the 2022 ~6pp spike and Japan’s ~17-year gap; floor survives a 40% drawdown; capture/override base rate from the IMF Fiscal Rules DB
anchor_real_shocks/, procyclicality/, capture_override_baserate/
Stress-test
The four claims the data qualified: transition timeline, issuance-neutrality mechanism, structural-buyer plateau range, and no welfare-optimal dividend (see below)
transition_debt_path/, credit_displacement/, dsge_twocircuit/, structural_buyer_endgame/, mode_choice_welfare/
Stress-test
Paper 14 second-order effects: rent-capitalization leak (~1.7%), demand impulse, crowd-out split (~79% net-new)
rent_capitalization/, mpc_demand_impulse/, crowdout_split/
Stress-test
Three papers carry no dedicated package by design, and the index says so plainly rather than implying code exists: Paper 4 (statutory text, its figures backed by the shared engine), Paper 9 (shares the verified engine; its central figure is self-stress-tested in its own Table 3 and swept in two modules), and Paper 11 (institutional design; its one empirical claim is backed by capture_override_baserate/). For the exhaustive map, every figure in all fourteen papers down to its file, see the full claim-to-code index.

What the tests qualified

The stress tests did not just confirm. In a few places they pushed back on the framework’s own first-pass claims, and the honest move is to lead with those rather than bury them. None of these sink the architecture; each one makes a specific number more truthful.

The transition timeline is optimistic

Paper 3 (Transition). The debt-to-GDP decline is real, but tested against current fiscal data the timeline leans fast. Most of the fall comes from nominal growth expanding the denominator, with the transition mode an assist rather than the main agent retiring the debt.

Issuance neutrality does not rest on credit displacement

Paper 5 (Macro Model). Getting neutrality from displacement alone would require roughly 73 to 89 percent of new issuance to displace bank credit; the literature supports only partial displacement. So neutrality is argued on other grounds, and the package says so instead of leaning on a mechanism that cannot carry the weight.

The ownership plateau is a range, not a point

Paper 8 (Structural Buyer). The structural buyer’s long-run ownership share is real and bounded, with a central estimate near 11 percent, but it is sensitive to holding-duration assumptions across roughly a 6 to 21 percent band. We report it as a range.

Full reserve sizes a credit gap it does not resolve

Paper 6 (Full-Reserve Banking). The model sizes the credit-supply gap full-reserve banking would remove (on the order of 3.3 percent of GDP per year). Whether less credit and less boom-bust is net-desirable is a value judgment the paper flags as open, not something the code can settle.

There is no welfare-optimal dividend share

Paper 1 (Architecture). We went looking for an optimal split between the locked floor and the cash dividend and did not find one: welfare moves monotonically with the dividend dial, with no interior peak. So which mode a polity runs is a values choice it makes for itself, not a number we can solve for. We report the null result rather than manufacture a sweet spot.

Run it yourself

The whole suite is public. Clone it, and run any package end to end:

git clone https://github.com/Neo-Solon/Citizens-Standard
cd Citizens-Standard/replication/architecture_replication/code
python run_all.py

Each package has its own run_all and a README stating its data sources and what it checks. Swap in your own assumptions and watch the figures move; that is the point.

Rigor you can run beats rigor you have to trust. Here is the whole suite, and the papers it backs.

Download the replication suite

Prefer the writeups first? The papers and data page has all fourteen, free to read, each linked to the code above. The full claim-to-code index lives in the replication folder.