The BSZ analysis (Boll, Saez and Zucman, August 2026) finds that the one-time billionaire tax raises money for California, net of the income tax it changes. The JR analysis (Jaros and Rauh, September 2026, a working paper of the National Bureau of Economic Research, NBER) finds that it loses money, because it counts the income tax lost to billionaires who leave for ever. This page puts both on one definition, the net fiscal effect. Each slider moves one disputed assumption from one analysis's value towards the other's. The bars show what one estimating function returns for each panel.
Today's dollars (present value): what money received or lost in future years is worth now.
Start from the BSZ estimate and take away what each disagreement costs: each term is that input's effect on the net fiscal effect when switched from the BSZ value to the JR value, averaged over every order the inputs could be switched in (its Shapley value). The terms add up exactly. The JR estimate here is the exact mean of the authors' Monte Carlo, −$39.0B; their seeded run prints −$38.9B. The report gives every step.
Each panel holds the assumptions the two analyses disagree on, with the JR values taken from its latest version (September 2026). The BSZ panel starts every slider at the BSZ value, the JR panel at the JR value. A slider has five positions: the two analyses' values and three steps between them. The BSZ value is printed at the left end and the JR value at the right end. Each box opens with its formula; hover over a dial's symbol, or tap it, for what it is and why the two analyses differ. Three inputs that barely move the estimate (non-US-citizen residents, the real-estate deduction, extra income tax from asset sales) share one switch.
The bars show what the common estimating function returns for each panel. The left sliders move only the left bar and the right sliders only the right bar. Move every slider in one panel to its far end and the two bars meet. The report states the function line by line; your browser runs a copy of it, which a test checks against the pipeline.
The BSZ analysis's main estimate1 (Boll, Saez and Zucman, August 2026)
With these sliders $106.8B
Wealth tax collected = 5% × (W − D) × (1 − a) × q
The wealth on the list, less what has already left, less avoidance, times the chance the tax survives in court. moreThe four dials multiply each other, so the effect of one depends on where the others stand. W and D are valued on the same Forbes list. Hover over a dial for what each analysis assumes.
Income tax lost = f × C × A(H)
The share of billionaires' income tax that leaves, times that income tax per year, counted over H years. moreA(H) is what $1 a year for H years is worth today, at the 1.5% to 4.5% discount rates both analyses use: about 5 for 5 years, about 37 for ever. The three dials multiply each other. In the BSZ analysis f also follows D in the box above. Hover over a dial for what each analysis assumes.
Starts at the BSZ analysis's net total, $106.8B.
The JR analysis's main estimate1 (Jaros and Rauh, NBER, September 2026)
With these sliders −$39.0B
Wealth tax collected = 5% × (W − D) × (1 − a) × q
The wealth on the list, less what has already left, less avoidance, times the chance the tax survives in court. moreThe four dials multiply each other, so the effect of one depends on where the others stand. W and D are valued on the same Forbes list. Hover over a dial for what each analysis assumes.
Income tax lost = f × C × A(H)
The share of billionaires' income tax that leaves, times that income tax per year, counted over H years. moreA(H) is what $1 a year for H years is worth today, at the 1.5% to 4.5% discount rates both analyses use: about 5 for 5 years, about 37 for ever. The three dials multiply each other. In the BSZ analysis f also follows D in the box above. Hover over a dial for what each analysis assumes.
Starts at −$38.98B, the exact average of the authors' Monte Carlo simulation (a model run many times with its uncertain inputs drawn at random). The authors' own run of it gives −$38.9B, the main estimate in the header; the two differ by sampling error.
1 Each analysis's own main estimate, defined its own way. The BSZ analysis's is a net total over 5 years: the wealth tax (Table 5 row 1), plus extra income tax from assets sold to pay it, minus the income tax lost to billionaires who leave, for 5 years at 3%. BSZ's own headline is the wealth tax alone; the net total is this OPA's choice, explained on the BSZ analysis overview. The JR analysis's is a perpetuity net present value, averaged over the authors' Monte Carlo draws (Jaros and Rauh, NBER chapter c15504, Tax Policy and the Economy vol. 41, September 2026).
The net fiscal effect puts both on one definition, and the panels start at its two ends. The BSZ end is $106.8B and the JR end −$39.0B, a gap of $145.8B. The BSZ end discounts the same 5 years over the JR analysis's 1.5% to 4.5% rate range instead of at 3%. The JR end is the exact average of the Monte Carlo whose own run gives −$38.9B.
Conventions. All amounts are nominal billions of dollars. The wealth tax is counted at face value when assessed and undiscounted, as both analyses do (the BSZ analysis values the base on 1 July 2026; the JR analysis grows its 2025 Forbes base by 7% to 31 December 2026). Present values are at the assessment date. The 1.5% to 4.5% range is what the JR code draws; the code labels it r − g and the text r (the JR analysis's mismatch 3).
Where the numbers come from. Every number on this page is computed by
comparison/R/ from the two analyses' export contracts
(bsz-analysis/export/r/, rjkdc-analysis/export/r/: the files each
pipeline writes for others to read) and the transcriptions in comparison/data/.
The estimating function is score_common() in comparison/R/model.R,
with a Python twin (R and Python agree to 1e-9 on every exported number; see comparison/tests). The browser runs model.js,
a copy of it, and a test runs that copy with node over 600 slider mixes
against the R values, to 1e-9. The report derives each number
step by step and shows the bridge from the BSZ end to the JR end; the
materials page lists the code, tests and files.
Data. ends.csv (the two ends, at
each horizon setting),
slider_sample.csv (300 slider mixes per
panel with their values, the sample the tests run model.js on),
inputs.csv (every disputed input and its sources),
DISPUTES.md
(the crosswalk of the disagreements, one row each, with what each analysis says and where),
bridge.csv (the bridge, step by step),
comparison-data.js (what this page reads).
A test fails if comparison-data.js or this page differs from the generator's
output.
Kinds. Each slider's explanation ends with the kind of its two values: data (settled by observable facts), research (a published estimate), guesswork (asserted without data or a study behind it) and scenario (a choice of which world is estimated).