Elasticity of taxable income
Labor and tax subpanel · pooled centers and 90 percent intervals from 15 independent runs per model · shaded region marks the review range [0.25, 0.5].
What the models were asked
Percent change in taxable income from a 1 percent change in the net-of-tax rate.
- In standard notation:
- e = ∂ ln z / ∂ ln(1−τ) (shorthand for display; the models received only the prose definition above)
- Population:
- High-income taxpayers in the United States
- Interpretation:
- Medium-run ETI for top earners with avoidance and real responses combined
The exact prompt, verbatim
Answer from your current memory and background knowledge only.
Do not use tools, files, the web, code, or external resources.
Do not try to reconstruct a literature review or search for a consensus estimate.
Report the belief you currently endorse.
Quantity of interest:
- Name: Elasticity of taxable income
- Definition: Percent change in taxable income from a 1 percent change in the net-of-tax rate.
- Target interpretation: Medium-run ETI for top earners with avoidance and real responses combined
- Population/context: High-income taxpayers in the United States
- Units: elasticity
Task:
1. Use exactly the target interpretation above. In `interpretation`, restate it briefly.
2. Give your subjective quantiles p05, p25, p50, p75, and p95 for this quantity.
3. Set `point_estimate` equal to `p50`.
4. Make the quantiles weakly increasing and numerically coherent.
5. In `citations`, list up to 3 source anchors from memory that influenced your belief. These are recall anchors only. If none come to mind confidently, return `[]`.
6. Keep `reasoning_summary` brief and substantive.
Return valid JSON only with exactly this shape:
{
"interpretation": "...",
"point_estimate": <number>,
"quantiles": {
"p05": <number>,
"p25": <number>,
"p50": <number>,
"p75": <number>,
"p95": <number>
},
"citations": ["..."],
"reasoning_summary": "..."
}Read from the archived request logs; all 29 models received this identical text. How the JSON response is enforced varies by provider — see the Methods harness table and the Process page.
Dot: pooled center (mean of run point estimates). Bar: pooled 90 percent mixture interval. Faint underlay: each run's elicited p05–p95. Models sorted by center; color = provider family. Filters change which models render; the axis stays fixed to the full panel.
Review-range sources: Gruber and Saez 2002 (high-income estimates); Saez, Slemrod, and Giertz 2012 (survey range 0.12-0.40, upper half). These are hand-coded literature anchors, not benchmark truths.
Each model's elicited ETI implies a top marginal rate under one fixed Saez calibration — see the implied top rates for all 28 models.
Alternative estimators (REML and Bayesian hierarchical)
| Model | Pooled 90% | REML predictive 90% | Bayes predictive 90% |
|---|---|---|---|
| claude-opus-5 | [0.08, 0.96] | [0.01, 0.72] | [0.14, 0.54] |
| gemini-3.1-pro-preview | [0.10, 0.87] | [0.06, 0.68] | [0.18, 0.53] |
| gemini-3.5-flash | [0.07, 0.83] | [0.06, 0.70] | [0.19, 0.54] |
| gpt-5.5 | [0.11, 0.99] | [0.03, 0.77] | [0.17, 0.58] |
| kimi-k3 | [0.06, 0.99] | [0.02, 0.77] | [0.16, 0.59] |
| gpt-5.6-luna | [0.05, 1.20] | [-0.03, 0.86] | [0.13, 0.63] |
| claude-opus-4.8 | [0.10, 0.99] | [0.04, 0.79] | [0.18, 0.60] |
| gemini-3.1-flash-lite-preview | [0.07, 0.95] | [0.07, 0.75] | [0.20, 0.58] |
| claude-opus-4.7 | [0.12, 0.99] | [0.06, 0.81] | [0.20, 0.62] |
| gemini-3-flash-preview | [0.11, 1.04] | [0.07, 0.80] | [0.20, 0.62] |
| grok-4.1-fast | [0.10, 1.19] | [-0.00, 0.90] | [0.16, 0.67] |
| grok-4.5 | [0.10, 1.13] | [0.04, 0.85] | [0.19, 0.65] |
| gpt-5.4 | [0.15, 1.00] | [0.07, 0.84] | [0.21, 0.64] |
| gemini-3.6-flash | [0.10, 0.90] | [0.09, 0.81] | [0.23, 0.63] |
| gpt-5.4-mini | [0.10, 1.38] | [-0.01, 0.95] | [0.16, 0.71] |
| gpt-5.6-sol | [0.15, 1.17] | [0.06, 0.87] | [0.21, 0.67] |
| claude-fable-5 | [0.15, 1.08] | [0.09, 0.84] | [0.23, 0.65] |
| grok-4.3 | [0.11, 1.09] | [0.08, 0.85] | [0.22, 0.66] |
| minimax-m3 | [0.10, 1.33] | [0.04, 0.89] | [0.19, 0.68] |
| claude-sonnet-5 | [0.12, 1.15] | [0.09, 0.92] | [0.24, 0.72] |
| gpt-5.6-terra | [0.15, 1.18] | [0.13, 0.92] | [0.27, 0.72] |
| deepseek-v4-pro | [0.04, 1.81] | [-0.08, 1.05] | [0.08, 0.81] |
| glm-5.2 | [0.13, 1.23] | [0.11, 0.92] | [0.25, 0.73] |
| claude-sonnet-4.6 | [0.11, 1.28] | [0.06, 1.05] | [0.24, 0.80] |
| grok-4.20 | [0.16, 1.24] | [0.10, 0.99] | [0.26, 0.76] |
| kimi-k2.6 | [0.11, 1.24] | [0.10, 0.95] | [0.25, 0.75] |
| claude-haiku-4.5 | [0.11, 1.30] | [0.09, 0.94] | [0.22, 0.76] |
| gpt-5.4-nano | [0.12, 1.46] | [0.09, 1.06] | [0.26, 0.83] |
| qwen-3.7-max | [0.13, 1.41] | [0.13, 1.07] | [0.30, 0.83] |
The paper's headline object is the pooled mixture interval; the alternatives are robustness estimators (paper, Appendix A2).
Run-level responses
Each model answered 15 independent times. Pick a model to read every run: its elicited 90 percent interval, point estimate, and stated reasoning.
435 successful runs · elicited April and July 2026 · v4 prompts · 15 runs per model-quantity cell. Code · Raw responses · Paper (PDF)
Result directories: claude-opus-5-elasticities-batch15, gemini-3.1-pro-preview-elasticities-batch15, gemini-3.5-flash-elasticities-batch15, and 26 more.