GigaProjects

← Back to WealthDist

debug_sim.py


import numpy as np
from tax_simulation import MultiYearSimulation, LogNormalDistribution, ProgressiveTax, TaxBracket, Simulation

# Setup minimal simulation
dist = LogNormalDistribution(mean=50000, sigma=0.75)
brackets = [
    TaxBracket(0, 0.10),
    TaxBracket(50000, 0.30),
    TaxBracket(100000, 0.50)
]
tax = ProgressiveTax(brackets)

sim = MultiYearSimulation(dist, tax, n_people=10000, n_years=10, savings_rate=0.20, initial_wealth_multiplier=2.0)
sim.run()

print("Year | Pre-Tax Gini (Blue) | Actual/UBI Gini (Orange) | Wealth Base Mean")
print("-" * 70)

for year in range(11):
    w_pre = sim.history['pre'][year]
    w_ubi = sim.history['ubi'][year]
    
    gini_pre = Simulation.gini(w_pre)
    gini_ubi = Simulation.gini(w_ubi)
    mean_base = np.mean(w_ubi)
    
    print(f"{year:4d} | {gini_pre:.4f}             | {gini_ubi:.4f}               | ${mean_base:,.0f}")

print("\nCheck: Is UBI Gini decreasing? Is Pre Gini > UBI Gini?")

Run this code