Methods
The protocol identifies prompt-conditioned response distributions under a fixed elicitation design — what a model returns when asked, not how well it forecasts. The paper carries the full treatment; this page summarizes the estimand and discloses the per-model harness.
Elicitation
A memory-only prompt fixes each quantity's interpretation and requests structured JSON: a point estimate, five quantiles (p05, p25, p50, p75, p95), citations, and a reasoning summary. The prompt instructs the model to answer from background knowledge alone — no tools, no literature reconstruction. Two sign-ambiguous quantities carry direction-first clarifiers that define what the reported sign means without calling either direction correct. The exact prompt text appears verbatim on every quantity page and on the Process page, alongside costs and the full generation pipeline.
How the nine headline elasticities were chosen
Three criteria, fixed in the registry before the panel ran: each quantity is a standard named object with a published review anchor or an established calibration home; each has a direct policy consumer (six labor-and-tax parameters feed CBO-style and PolicyEngine-style tax-benefit microsimulation, three macro-and-trade parameters are core calibration inputs); and the two subpanels pair a domain where lower elasticities read as more room for redistribution with one where no such monotone mapping exists. Selection determines coverage, not model comparisons — every model answers the identical panel. Each quantity's page opens with the exact definition the models received.
Repeated runs and pooling
Each model-quantity cell runs 15 independent times. Each run's quantiles become a piecewise-uniform distribution; the pooled predictive distribution is the equal-weight mixture of the 15. The headline interval is the pooled 90 percent mixture interval — the predictive spread of repeated elicited answers, not a confidence interval for their mean. REML and Bayesian hierarchical estimators run alongside as robustness checks.
Panel
29 models from nine organizations — Anthropic, OpenAI, Google, xAI, DeepSeek, Alibaba, Moonshot AI, Zhipu AI, and MiniMax — elicited in five waves: 11 in April 2026 and 18 in July 2026 (six frontier updates, five Chinese-lab models, the GPT-5.6 family, and late Grok 4.5, Kimi K3, Gemini 3.6 Flash, and Claude Opus 5 additions), all under identical prompts. 26 U.S.-scoped quantities: 9 headline elasticities in two subpanels, 4 calibration parameters, a capital-gains convention sibling, and 12 simulation-facing coefficients. 11,310 successful runs at a 100 percent parse rate, with every cell verified against the exact 15-run grid; failed slots re-ran as fresh independent draws, each traced in the failure manifest (58 July frontier slots) or in per-directory recovery archives (4,168 records across the Chinese-lab wave).
Reproduce it
Every table rebuilds from the committed artifacts without API access, and a verification script pins the paper's prose to the generated tables. The README documents both reproduction paths and costs; the paper carries the full estimand discussion, robustness appendices, and limitations.
Per-model harness disclosure
The structured-output mechanism, completion budget, sampling regime, and reasoning configuration follow each provider's API surface and are therefore confounded with model identity — disclosed in full here and bounded empirically by the paper's cross-mechanism ablation (max center movement 0.03).
| Model | Path | Mechanism | Budget | Sampling | Reasoning |
|---|---|---|---|---|---|
| GPT-5.5 | OpenAI Chat Completions | strict JSON schema | 1200 (8000 for the 40 re-elicited runs) | temperature 1.0, batched n <= 8 | provider default effort |
| GPT-5.6 Sol | OpenAI Chat Completions | strict JSON schema | 8000 | temperature 1.0, batched n <= 8 | provider default effort |
| GPT-5.6 Luna | OpenAI Chat Completions | strict JSON schema | 8000 | temperature 1.0, batched n <= 8 | provider default effort |
| GPT-5.6 Terra | OpenAI Chat Completions | strict JSON schema | 8000 | temperature 1.0, batched n <= 8 | provider default effort |
| GPT-5.4 | OpenAI Chat Completions | strict JSON schema | 1200 | temperature 1.0, batched n <= 8 | provider default effort |
| GPT-5.4 mini | OpenAI Chat Completions | strict JSON schema | 1200 | temperature 1.0, batched n <= 8 | provider default effort |
| GPT-5.4 nano | OpenAI Chat Completions | strict JSON schema | 1200 | temperature 1.0, batched n <= 8 | provider default effort |
| Claude Fable 5 | native Anthropic API | strict JSON schema | 32000 | none accepted (provider default) | always-on reasoning |
| Claude Opus 4.8 | native Anthropic API | strict JSON schema | 32000 | none accepted (provider default) | off (provider default) |
| Claude Sonnet 5 | native Anthropic API | strict JSON schema | 32000 | none accepted (provider default) | adaptive (provider default) |
| Claude Opus 5 | native Anthropic API | strict JSON schema | 32000 | none accepted (provider default) | adaptive, on by default (provider default) |
| Claude Opus 4.7 | LiteLLM | forced function call | 1200 | temperature 1.0 | off (provider default) |
| Claude Sonnet 4.6 | LiteLLM | forced function call | 1200 | temperature 1.0 | off (provider default) |
| Claude Haiku 4.5 | LiteLLM | forced function call | 1200 | temperature 1.0 | off (provider default) |
| Gemini 3.1 Pro | LiteLLM | forced JSON object | 1200 | temperature 1.0 | provider default thinking |
| Gemini 3.5 Flash | LiteLLM | forced JSON object | 4000 | temperature 1.0 | provider default thinking |
| Gemini 3.6 Flash | LiteLLM | forced JSON object | 8000 | temperature 1.0 | provider default thinking |
| Gemini 3 Flash | LiteLLM | forced JSON object | 1200 | temperature 1.0 | provider default thinking |
| Gemini 3.1 Flash-Lite | LiteLLM | forced JSON object | 1200 | temperature 1.0 | provider default thinking |
| Grok 4.20 | LiteLLM | forced function call | 1200 | temperature 1.0 | reasoning variant |
| Grok 4.3 | LiteLLM | forced function call | 4000 | temperature 1.0 | provider default |
| Grok 4.5 | LiteLLM | forced function call | 8000 | temperature 1.0 | provider default |
| DeepSeek V4 Pro | LiteLLM via OpenRouter | forced JSON object (schema validated locally) | 8000 | temperature 1.0 | provider default |
| Qwen 3.7 Max | LiteLLM via OpenRouter | forced JSON object (schema validated locally) | 8000 | temperature 1.0 | provider default |
| Kimi K2.6 | LiteLLM via OpenRouter | forced JSON object (schema validated locally) | 8000 | temperature 1.0 | provider default |
| Kimi K3 | LiteLLM via OpenRouter | forced JSON object (schema validated locally) | 8000 | temperature 1.0 | provider default |
| GLM-5.2 | LiteLLM via OpenRouter | forced JSON object (schema validated locally) | 16000 | temperature 1.0 | provider default |
| MiniMax M3 | LiteLLM via OpenRouter | forced JSON object (schema validated locally) | 8000 | temperature 1.0 | provider default |
| Grok 4.1 Fast | LiteLLM | forced function call | 1200 | temperature 1.0 | non-reasoning variant |
11,310 successful runs · elicited April and July 2026 · v4 prompts · 15 runs per model-quantity cell. Code · Raw responses · Paper (PDF)