Prop 40, BSZ analysis: checks against the paper’s variations
The wealth tax revenue under every other set of assumptions the paper prints
BSZ analysis of California Proposition 40: Overview · Open Output: Explorer · Open Analysis: Report and Slides · Open Materials (guide)
Also in this project: Comparison overview · JR analysis overview
All seven variations the BSZ papers print reproduce at the paper’s rounding. The one assumption that moves the revenue as much as these, the date on which wealth is valued, cannot be set in this OPA.
What was checked
The BSZ paper prints the revenue of the one-time tax, $104 billion, under its main assumptions (Table 5, row 1). This OPA computes that figure as $103.8 billion. The paper also prints the revenue under a few other assumptions. Each check below sets the same assumptions in this OPA and compares the result with the printed figure.
The checks use the wealth tax revenue of Table 5, not this OPA’s main estimate of $106.8 billion. The main estimate adds income tax effects that the paper does not print under other assumptions, so there is no printed figure to check it against.
The two versions of the paper (August 2026 and May 2026) print seven such variations, all in Table 5. The May version values wealth on 15 April 2026 instead of 1 July 2026.
Results
All figures are in billions of dollars. “Match” means this OPA’s value rounds to the printed figure.
| Variation | Paper | Printed | This OPA | Result | How to set it |
|---|---|---|---|---|---|
| Main assumptions, for reference | Aug, Table 5 row 1 | 104 | 103.82 | Match | Explorer, as it opens |
| Add the 370 billionaires Forbes misses, estimated from the shape of the list | Aug, Table 5 row 2 | 128 | 127.85 | Match | Explorer: switch P (Count billionaires Forbes misses) on |
| Page, Thiel, Hankey and Kalanick escape the tax | Aug, Table 5 row 3 | 89 | 88.80 | Match | Explorer: switch L (Aggressive assumption on leavers) on |
| Both of the above | Aug, Table 5 row 4 | 115 | 114.82 | Match | Explorer: switches P and L on |
| Wealth valued on 15 April 2026 | May, Table 5 row 1 | 98 | 98.19 | Match | R code, May workbook |
| 15 April, plus the billionaires Forbes misses | May, Table 5 row 2 | 121 | 120.93 | Match | R code, May workbook |
| 15 April, plus the four leavers escape | May, Table 5 row 3 | 84 | 83.94 | Match | R code, May workbook |
| 15 April, plus both | May, Table 5 row 4 | 109 | 108.55 | Match | R code, May workbook |
What could not be checked
The valuation date. The authors’ workbook gives the revenue for every day of 2026. It is $92.5 billion on 1 January (the residency date), $87.0 billion at the year’s low on 30 March, and $110.9 billion at its high so far on 6 October (the workbook’s shortrunseries sheet, rows 15 to 272, column D). This OPA values wealth on 1 July 2026. The measure values wealth on 31 December 2026 (BSZ PDF p.23); the BSZ analysis uses the 1 July list, and this OPA follows it. The only other date it can use is 15 April, through the May workbook. It has no setting for any other date, so these three figures cannot be reproduced.
The explorer’s four numeric dials. The paper prints the revenue at one value of avoidance (α), of the share of avoidance that is leaving (m), of avoidance by the less visible billionaires (αₛ) and of the share of the tax paid by selling assets (s). It prints no revenue at any other value of these four. Moving them in the explorer has no printed figure to compare with.
Who ran these checks
Claude Code agents chose the variations from the papers and ran the checks on 15 October 2026. The scripts were then rerun once, in a separate session, with the same results. The author has not yet reviewed these checks.
To rerun them from the repository root:
Rscript feedback/scenario-tests-2026-10-15/bsz-sensitivity.RThe full record, with the source of every figure, is in bsz-sensitivity.md. A second record, bsz.md, checks ten other numbers the paper prints. All ten reproduce from the inputs the paper states. Six round to the printed digit. One is a Table 5 loss cell that the paper prints one unit lower in the last digit. Two come from first-order formulas in the text. The revenue-maximising rate with de-concentration is printed as 1/26 = 3.8%, and the workbook’s own curve peaks at 3.9%. A 1% permanent tax is said to keep 88% of its revenue, and the curve gives 88.6%. The last is the break-even on page 22. There the paper says that if all billionaires left, the lost income tax would take 25 years to equal the wealth tax. That figure uses the text’s ratio of income tax to wealth, 0.2% (abstract, Table 2), and reproduces from it. Table 5’s inputs, the 2019-2025 average tax against 1 July 2026 wealth, give 0.13% and about 38 years. The materials page keeps each as a note, with its kind (notes 1, 5, 6 and 7). None is a failure to reproduce a printed result.
Settings the paper does not print
This OPA lets a reader change assumptions the paper holds fixed. The table below lists ten such changes, each made one at a time from the main assumptions, with the result this OPA gives. The paper prints no figure for any of them, so they are untested against the authors’ own work.
The author of this OPA has sent this table to the original authors, asking them to test whether they obtain the same results. Their responses will be posted here.
All figures are in billions of dollars. Wealth tax revenue, the extra income tax from asset sales (over five years) and the income tax lost per year are the three result columns of the paper’s Table 5. The income tax lost per year is negative, as Table 5 prints it. The net total is this OPA’s main estimate: the wealth tax, plus the extra income tax from asset sales, minus the present value of the income tax lost to leavers over 5 years (3% a year). Each setting can be made in the explorer.
| Setting changed from the main assumptions | Wealth tax revenue | Extra income tax from asset sales | Income tax lost per year | Net total | Authors’ result |
|---|---|---|---|---|---|
| None, the main assumptions, for reference | 103.82 | 3.68 | −0.15 | 106.80 | |
| No avoidance or evasion (α = 0, instead of 10%) | 115.35 | 4.09 | 0.00 | 119.44 | Pending |
| Avoidance and evasion of 5% | 109.58 | 3.89 | −0.08 | 113.12 | Pending |
| Avoidance and evasion of 20% | 92.28 | 3.27 | −0.31 | 94.15 | Pending |
| Avoidance and evasion of 30% | 80.75 | 2.86 | −0.46 | 81.51 | Pending |
| None of the avoidance is leaving California (m = 0, instead of half) | 103.82 | 3.68 | 0.00 | 107.50 | Pending |
| All of the avoidance is leaving California (m = 1) | 103.82 | 3.68 | −0.31 | 106.09 | Pending |
| None of the tax is paid by selling assets (s = 0, instead of one third) | 103.82 | 0.00 | −0.15 | 103.11 | Pending |
| All of the tax is paid by selling assets (s = 1) | 103.82 | 11.05 | −0.15 | 114.16 | Pending |
| The billionaires Forbes misses are counted, with 10% avoidance among them (instead of 20%) | 131.11 | 4.65 | −0.20 | 134.86 | Pending |
| The billionaires Forbes misses are counted, with 50% avoidance among them | 118.10 | 4.19 | −0.20 | 121.39 | Pending |
Both tables are built when this page is rendered, from the explorer’s data file (site/explorer/grid.js, which the pipeline writes), so they show the values the explorer shows. The May rows run the same estimating function on the May workbook.