EPSBench: Benchmarking LLM Agents for Earnings Forecasting
Organizations: Georgia Institute of Technology
Abstract
Quarterly earnings forecasting requires an agent to connect financial evidence to the income-statement line items that produce a company's reported earnings. We introduce EPSBench, a benchmark for studying this ability across 149 firm-quarters from 86 US companies. Agents read a fixed collection of filings, earnings-call transcripts, and news, then estimate company-specific income-statement drivers with cited evidence. A shared accounting calculator converts these estimates into GAAP diluted earnings per share (EPS), providing a common basis for comparing forecast assumptions. We evaluate six models under a common harness, assessing point forecast error relative to date-matched analyst consensus and checking whether their prediction intervals achieve the stated coverage. Three models show no detectable paired difference in point forecast error from consensus, and three have higher error. Across all six models, nominal 80% intervals contain reported EPS in only 37--70% of runs that return an interval, and most misses fall above the upper bound because the forecasts run low. The driver records trace most of the error gap between models to operating-income estimates.
Figures & tables
| Point forecast | 80% interval forecast | |||||
| Forecaster | PDE (%) | Win (%) | Surprise (%) | Coverage (%) | Median Width (pp) | Mean interval Score (pp) |
| Analyst consensus | 0.111 | – | – | – | – | – |
| Year-ago EPS | 0.238 | 21 | 36 | – | – | – |
| Last-quarter EPS | 0.226 | 27 | 51 | – | – | – |
| Opus 4.6 | 0.113 | 50 | 62 | 70 | 0.41 | 2.87 |
| GPT-5.5 | 0.131 | 50 | 63 | 61 | 0.33 | 3.08 |
| Median PDE (%) | Far instances only ( ) | ||||
| Forecaster | Near ( ) | Far ( ) | Numeric evidence (%) | Error halved ( ) | Wrong direction ( ) |
| Year-ago EPS | 0.080 | 0.975 | – | – | – |
| Analyst consensus | 0.036 | 0.409 | – | – | – |
| Opus 4.6 | 0.048 | 0.396 | 95 | 30 | 5 |
| GPT-5.5 | 0.053 | 0.392 | 96 | 30 | 6 |
| GPT-5.4 | 0.050 | 0.398 | 95 | 29 | 5 |
| Information | PDE (%) | Win (%) | Paired PDE, pp vs. full (90% CI) | Tools | Input (K) |
|---|---|---|---|---|---|
| Full | 0.131 | 50 | – | 47 | 837 |
| News only | 0.141 | 40 | 28 | 196 | |
| Filings + transcripts | 0.138 | 42 | 25 | 376 | |
| Neither | 0.210 | 31 | 1 | 8 |
| Model | Harness | Effort | PDE (%) | Paired PDE, pp (90% CI) | Coverage (%) | Tools | Input (K) | Output (K) |
|---|---|---|---|---|---|---|---|---|
| Opus 4.6 | OpenCode | default | 0.113 | – | 70 | 35 | 1056 | 9.7 |
| Claude Code | default | 0.117 | 65 | 34 | 1029 | 36.4 | ||
| OpenCode | max | 0.106 | 65 | 34 | 1011 | 40.5 | ||
| Claude Code | max | 0.114 | 65 | 34 | 1032 | 40.4 | ||
| GPT-5.5 | OpenCode | default | 0.131 | – | 61 | 47 | 837 | 6.2 |
| Vanilla | default | 0.110 | 54 | 38 | 561 | 8.6 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Sector | Tickers | |
|---|---|---|
| Technology | 20 | ADBE, AMAT, AMD, AVGO, CRM, CRWD, CSCO, DELL, IBM, INTC, INTU, MSFT, MU, NVDA, ORCL, PANW, PLTR, QCOM, SMCI, UBER |
| Consumer Cyclical | 15 | AMZN, BBY, CCL, CMG, CVNA, GM, HD, LOW, LULU, M, MCD, MELI, NKE, SBUX, TSLA |
| Financial Services | 14 | AXP, BAC, BLK, C, COIN, GS, HOOD, JPM, MA, MS, PYPL, SPGI, V, WFC |
| Industrials | 11 | BA, CAT, DAL, GE, HON, LMT, PLUG, RTX, UAL, UNP, UPS |
| Healthcare | 9 | ABBV, AMGN, ISRG, JNJ, LLY, MRK, PFE, TMO, UNH |
| Consumer Defensive | 7 | COST, KHC, KO, PEP, PG, TGT, WMT |
| Model identifier | Parameters total / active | Released | Knowledge cutoff |
|---|---|---|---|
| claude-opus-4.6 | undisclosed | 2026-02-05 | 2025-08 |
| gpt-5.5 | undisclosed | 2026-04-23 | 2025-12-01 |
| gpt-5.4 | undisclosed | 2026-03-05 | 2025-08-31 |
| gpt-5-mini | undisclosed | 2025-08-07 | 2024-05-31 |
| qwen3.5-122b-a10b | 122B / 10B | 2026-02-24 | undisclosed |
| glm-4.5-air | 106B / 12B | 2025-07-28 | undisclosed |
| Harness | Version | Models | Configuration |
|---|---|---|---|
| OpenCode | SDK 1.17.9 | all six | Driven through the SDK; built-in shell, file, and web tools disabled by the agent definition. Primary harness. |
| Claude Code | 2.1.269 | Opus 4.6 | Driven through the SDK; built-in shell, file, and web tools disabled. |
| Vanilla harness | ours | GPT-5.5 | Plain tool-calling loop over the OpenAI SDK; resends the full conversation every turn; no system prompt beyond Listing 2 , no context management, no tool orchestration. |
| Strategy | 0.02% | 0.05% | 0.10% |
|---|---|---|---|
| Copy analyst consensus | 9% | 22% | 37% |
| Copy previous quarter ( ) | 4% | 14% | 27% |
| Copy same quarter last year ( ) | 4% | 8% | 22% |
| Guess zero | 1% | 2% | 5% |
| Announcement dates | Firm-quarters | Hits | Hit rate |
|---|---|---|---|
| June 2024 | 7 | 1 | 14% |
| 11 July to 9 September 2024 | 29 | 10 | 34% |
| 1 October to 19 December 2024 | 31 | 6 | 19% |
| 10 January 2025 to June 2026 (six buckets) | 180 | 0 | 0% |
| Benchmark instances (December 2025 to June 2026) | 149 | 0 | 0% |
| Outcome location (%) | |||||||
| Model | Intervals returned | Below | Inside | Above | Width (pp) | Score (pp) | Signed error, pp (90% CI) |
| Opus 4.6 | 447 / 447 | 10 | 70 | 20 | 0.41 | 2.87 | |
| GPT-5.5 | 447 / 447 | 10 | 61 | 29 | 0.33 | 3.08 | |
| GPT-5.4 | 447 / 447 | 16 | 52 | 32 | 0.25 | 4.29 | |
| GPT-5-mini | 439 / 447 | 18 | 50 | 32 | 0.39 | 19.61 | |
| Qwen 3.5 | 446 / 447 | 25 | 37 | 38 | 0.26 | 4.87 | |
| (a) Resource use per run | ||||||
| Model | Requests | Tools | Input (K) | Output (K) | Reasoning (K) | Peak context (K) |
| Opus 4.6 | 15 | 35 | 1056 | 9.7 | n/a | 112 |
| GPT-5.5 | 12 | 47 | 837 | 3.6 | 2.6 | 119 |
| GPT-5.4 | 13 | 49 | 949 | 3.7 | 7.2 | 125 |
| GPT-5-mini | 28 | 27 | 1354 | 2.7 | 3.6 | 90 |
| Qwen 3.5 | 14 | 23 | 542 | 3.0 | 5.1 | 61 |
| Group | Instances | Share (%) |
|---|---|---|
| No removal is harmful | 67 | 45 |
| Only removing both is harmful | 32 | 21 |
| A single removal is harmful | 50 | 34 |
| only removing filings and transcripts | 17 | 11 |
| only removing news | 24 | 16 |
| either removal | 9 | 6 |
| Model A | Model B | PDE (A B), pp | 90% CI | A wins / B wins |
|---|---|---|---|---|
| Opus 4.6 | GPT-5.5 | 81 / 68 | ||
| Opus 4.6 | GPT-5.4 | 79 / 70 | ||
| Opus 4.6 | GPT-5-mini | 105 / 44 | ||
| Opus 4.6 | Qwen 3.5 | 110 / 39 | ||
| Opus 4.6 | GLM 4.5 Air | 107 / 42 | ||
| GPT-5.5 | GPT-5.4 | 67 / 82 |
| Model | Operating (pp) | Non-operating (pp) | Tax and shares (pp) | Largest component O / N / T |
|---|---|---|---|---|
| Opus 4.6 | 0.092 | 0.007 | 80 / 26 / 19 | |
| GPT-5.5 | 0.089 | 0.013 | 83 / 20 / 22 | |
| GPT-5.4 | 0.098 | 0.013 | 88 / 22 / 15 | |
| GPT-5-mini | 0.149 | 0.020 | 84 / 27 / 14 | |
| Qwen 3.5 | 0.166 | 0.012 | 91 / 23 / 11 | |
| GLM 4.5 Air | 0.166 | 0.012 | 86 / 26 / 13 |
Financial Forecasting
Financial forecasting uses market, company, and economic data to predict prices, returns, volatility, and business outcomes for decisions and risk management.
See all 91 papers