Open Policy Analysis for:

California Proposition 40, Analysis From Boll, Saez, Zucman (BSZ)

This OPA site: AI generated, partially reviewed

Main estimate1, base scenario (BSZ's benchmark, row 1 of their Table 5, plus its income tax effects) $106.8B Defined as the wealth tax, plus the extra income tax from assets sold to pay it, minus the income tax lost to billionaires who leave, counted over 5 years and converted to today's dollars at 3% a year (present value: what money lost in future years is worth now). The wealth tax is counted at face value. More in the report.

1 BSZ's headline is the wealth tax alone: $104 billion in their Table 5, $103.8 billion here. This OPA adds the income tax effects to compare with the JR analysis. Why.

Three layers to understand the analysis

Open Output

Explore the main estimate and its assumptions →

The one-time revenue, the extra income tax from asset sales and the yearly income tax lost to leavers, for every combination of six inputs: the four rows of the paper's Table 5 plus 1,916 settings the authors did not publish. The main estimate is marked.

Open Materials

Materials for computational reproduction →

The R pipeline, its Python twin (the same computation written again in Python and checked against the R result), the SQL that rebuilds several of the workbook's data sheets from raw data the authors shared (not public), the test suite and every exported CSV. A guided tour is on the materials page.

How AI was used in this exercise, and what has been verified #

The numbers on this page reproduce and are tested; what is still being completed is the author's own review of each part, recorded in the last column below, and the author's questionnaire on who did what.

The author and Claude Code built this together. The table shows who led each object, by group of CRediT roles, and how closely the author has checked it.

How the table was made

This work was a collaboration between the author and Claude Code (Opus and Sonnet models) across many sessions, not an AI working alone. The table records who led the work on each public object of the BSZ analysis, using the CRediT contributor roles. The author gave these answers in a questionnaire on 2026-10-01; they were not inferred from commit history. The author answered the roles once and applied the same answers to every object of the BSZ analysis, and answered the verification question object by object. The JR analysis and the comparison were answered object by object on 2026-10-15. The table groups the 14 roles into three: ideas and direction (conceptualization, methodology, supervision, project administration), doing the work (data curation, formal analysis, investigation, software, validation, visualization) and writing (original draft, review and editing). Funding and resources do not apply. Each square in a cell is one role, coloured by who led it (key below the table). The last column is not part of CRediT. It records how closely the author has checked the object. The role-by-role answers are in CREDIT.md.

ObjectIdeas and
direction
Doing
the work
WritingHuman
verification
Explorer
Open Output
Report
Open Analysis
Slides
Open Analysis
Repository
Open Materials
Overview page
this page
led by the author led by Claude shared equally
One square per CRediT role in the group; roles that do not apply to an object are left out.
Human verification: not reviewed lightly reviewed reviewed

Human verification uses three levels: not reviewed, lightly reviewed (checked, but the author cannot yet explain it clearly) and reviewed (the author can explain it to others). The automated test suites are mechanical checks, not an outside review. No other person has verified this work, and the original authors have not reviewed it.

Claude Code agents also checked this OPA against every other set of assumptions the paper prints. All seven variations match. The author has not yet reviewed these checks.

Third-party sources. The paper, the workbook and the expert report belong to their authors and are not redistributed here; the source manifest gives where to get each and its SHA-256. Quotations are for commentary.

Difference between this OPA and the original analysis #

The claims are the authors'. What this OPA changes is what a reader can check and change.

Everything of substance on this site belongs to the original analysis: Boll, Saez and Zucman, California Billionaires: Wealth, Taxes, and Wealth Tax Revenue Estimates, NBER Working Paper 35218 (August 2026). The data work, the method, the four scenarios of Table 5 and every conclusion drawn from them are the authors' work. This site adds no data and no new model.

The authors shared a replication bundle of code and data with this project, on condition that it not be shared publicly. The numbers on this page come from the public workbook.

The original analysis MATERIALSDETAILSOUTPUT
Three layers, the third only in part. The paper gives the output and the details, and the workbook gives the formulas behind them. The code and part of the raw data behind the workbook are not public (the dashed half), and the workbook comes with no tests.
This OPA MATERIALSDETAILSASSUMPTIONSOUTPUT
Three layers, tightly connected. The open output has two parts, the output and the assumptions that produce it, and the explorer lets a reader move the assumptions. Every number in the explorer is computed from the public workbook by the code in the repository, the report derives Table 5 step by step, and the test suite checks each re-derived cell against the workbook.

This OPA rebuilds Table 5 and most of the paper's tables and figures in R, with a Python twin and a test suite. The code reproduces the paper's published results from the authors' public workbook (see What reproduces). It sorts every input by origin: data, research or guesswork. Its main estimate nets the income tax effects into one total, which is this OPA's choice, not the authors' (footnote 1). The explorer adds settings the authors did not publish. Where this site and the paper disagree, both numbers are shown, and the paper is the reference.

What the model says #

This OPA's main estimate is the base scenario of Table 5 in Boll, Saez and Zucman (2026), which they call the benchmark, with its income tax effects added. The wealth tax is 5% of the $2,307 billion that Forbes lists for 250 California billionaires on 1 July 2026, less 10% for avoidance and evasion: $103.8 billion, collected once (the paper prints $104 billion; the abstract says about $100 billion). Selling assets to pay it adds $3.68B of income tax. Leavers take $0.15B a year with them, worth $0.70B over 5 years at 3%. The total is $106.8 billion.1 The other rows are the authors' own sensitivity checks.

Scenario (Table 5 row)Wealth tax, one timeExtra income tax from salesIncome tax lost, per yearNet total2
Base (1), the main estimate$103.8B$3.7B$0.15B$106.8B
Missing billionaires (2)$127.9B$4.5B$0.20B†$131.5B
Leavers (3)$88.8B$3.1B$0.52B†$89.6B
Missing + leavers (4)$114.8B$4.1B$0.56B$116.3B

2 Total = wealth tax + extra income tax − income tax lost (present value, 5 years at 3%).
† The paper prints a digit lower; see What reproduces.

The yearly income tax loss has no end date in Table 5. The authors argue the losses should be temporary and give five years, the payment period, as an example ("If they last say only 5 years", PDF p.27). The main estimate's five years are this OPA's reading of that example. The JR analysis (Jaros and Rauh; first version Rauh, Jaros, Kearney, Doran and Cosso) counts it forever; BSZ call treating the responses as permanent "the main flaw in the scoring analysis of Rauh et al." (PDF p.22, fn.29). The JR analysis assumes leavers do not come back, because the Act permanently lifts the constitutional cap on taxes on intangible property and lets the Legislature change the Act by a two-thirds vote (chapter PDF p.32). The revenue itself moves with only two guesses: the avoidance rate, and whether anyone left California before 1 January 2026. See every input, by origin.

What this OPA does not estimate. Both analyses take the measure as written (docs/initiative/), with the wealth tax at face value. Neither counts the deferral charge of 7.5% a year that the Act adds to installment payments. Only the JR analysis projects the base to the 31 December 2026 valuation date. It grows the 2025 list by 7%, the yearly growth of billionaire wealth that the Act's own findings state, and checks the result against a forecast from past growth (chapter PDF pp.12-13). The BSZ analysis uses the 1 July 2026 list (BSZ's website tracks the estimate day by day, PDF p.23). The BSZ analysis alone counts the income tax from asset sales and the non-US-citizen residents. The JR analysis alone weights the revenue by the chance the Act survives in court.

What reproduces #

The code reproduces the paper's published results from the authors' public workbook. The notes after the table record where the paper rounds or derives a figure differently from the workbook. None is a failure to reproduce a printed result.

Published objectResult
Table 5, estimating the one-time tax (PDF p.39) Reproduces. All 28 cells match the workbook's cached values. 26 round to the digit the paper prints; the other 2, the income tax loss in rows 2 and 3, are printed as $0.19B and $0.51B where the workbook gives $0.20B and $0.52B, one unit lower in the last digit. Row 4 of the same column is rounded as usual, and the paper does not say why these two differ (note 1)
Tables 1 to 4 and A1, Figures 1 to 7, 9 and A2 to A4 Reproduce. Every formula cell the pipeline re-derives matches the workbook's cached value within the tolerances the README lists (1e-4 for Table 5; 1e-3 to 1e-2 for the formula sheets, where the workbook rounds to cents). Figures are checked for structure and anchor values. Appendix Table A1's annualized growth row counts 43 years, as the paper and the workbook do, though 1982 to 2026 is 44 years. The report states what 44 would give (note 4)
The authors' workbook Reproduces the paper's count of 240 billionaires for 2025. The estimate itself uses the 1 July 2026 Forbes list of 250
The revenue under the paper's other assumptions (Table 5, August and May versions) All 7 printed variations match. The revenue on other valuation dates, in the authors' workbook, cannot be set here. The checks
Other numbers the paper prints All ten reproduce from the inputs the paper states. Six round to the printed digit, and one is the Table 5 loss cell above. Two come from first-order formulas in the text: the revenue-maximising rate of 3.8%, where the workbook's own curve peaks at 3.9% (note 6), and the 88% of revenue a 1% permanent tax keeps, where the curve gives 88.6% (note 7). The 25-year break-even on PDF p.22 uses the text's ratio of income tax to wealth, 0.2%; Table 5's inputs give 0.13% and about 38 years (note 5). The checks
Not reproduced The paper's Figure 8 and Appendix Figure A1 (wealth relative to AGI); the raw data behind the workbook (Forbes, tax statistics, SEC filings), which is taken as given

"Match" and "reproduces" mean the reproduced value rounds to the printed digit, or the paper prints it one unit lower in the last digit (note 1). A figure the text derives reproduces when the inputs the text states give it.

Along the way this OPA kept seven notes on where the paper's text, its tables and the workbook describe the same step differently. None is a failure to reproduce a printed result. One is rounding, two are small numerical differences and four are documentation notes. The full text is on the materials page, with test counts, scripts and the source manifest; the report gives each with its computation.