FM-Bench: A Benchmark for Long-Horizon Management with Competing Agents
Organizations: AnalogyAI
Abstract
Language model agents now execute bounded tasks reliably. Whether they can sustain effective decision-making over long horizons, where actions have cumulative consequences and the environment responds to their choices, remains largely unmeasured. FM-Bench (Football Management Benchmark) measures this. An LLM agent runs a football club for 20 in-game years through 26 tools and roughly 340 to 400 decision stops. It drafts a squad on the same budget as every rival, trades players, negotiates contracts, invests in facilities and youth, sets lineups, and answers to a board that can fire it, while a deterministic engine accumulates every year into one final score with no LLM judge or human rater. The solo track plays each of 15 frontier models against a frozen scripted world, and the Arena places the same models plus a scripted anchor in one shared 20-year world; to our knowledge, the first head-to-head evaluation at this scale. We measure six behavioral capabilities behind the score. Across three seeds, all 15 models complete every horizon while the blind scripted baselines die out in most of theirs, and claude-fable-5 tops the solo board on mean score and the Arena, where the title nonetheless rotates among ten models. Neither scale, price, nor vendor predicts the order; the order settles only late in the horizon, and the best first-play human lands only at the bottom of the model board. What separates the models is managerial behavior rather than computation. Higher-scoring models reduce slow-payoff investment near the end, keep cash invested rather than idle, and open renewals well before the deadline, while token spend predicts nothing. No model learns the market's hidden prices from hundreds of rejected bids, and self-managed memory fails in two opposite modes: an archive that only grows or a plan rewritten every season. Code is available at https://github.com/Analogy-AI/fm-bench.
Figures & tables
| demand | mechanism | targeted ability | calibration lever |
|---|---|---|---|
| Hidden information | scout bands with a permanent per-scout bias; hidden player traits (injury proneness, development rate, aging onset); hidden asks in negotiation | valuation calibration under noise | bandwidth, bias sigma |
| Cumulative consequences | Upside: youth development and facility investment pay off over years. Downside: insolvency ends in administration (points penalty, forced sales), confidence collapse ends in firing; both compound yet remain recoverable. Honors accrue into the final score season by season | long-range credit assignment; trend recognition, loss-cutting | growth and aging curves; spiral thresholds, warning cadence; honors weights |
| Counter-adaptive market | rejected bids raise the hidden ask; repeat-pair markups (bargains included); anti-inversion counters; negotiation cooldowns; per-seed mispricing | strategy adaptation | markup and decay rates |
| Multi-objective pressure | the board judges results and financial discipline jointly; season targets scale with squad strength | multi-constraint balancing | target cushion, board patience |
| seat | tokens | |
|---|---|---|
| oracle (privileged) | — | |
| claude-fable-5 | 24M | |
| kimi-k2.6 | 87M | |
| gpt-5.6-terra | 28M | |
| gpt-5.6-sol | 62M | |
| muse-spark-1.1 | 73M |
| player | settle | deaths | stops | time | |
|---|---|---|---|---|---|
| H1 | 74.64 | completed | 0 | 394 | 10 h |
| H2 | 59.95 | completed | 0 | 398 | 4 h |
| H3 | 5.39 | fired, | 4 | 202 | 4 h |
| H4 | 2.47 | fired, | 4 | 198 | 5 h |
| H5 | 0.41 | fired, | 4 | 165 | 1.5 h |
| H6 | fired, | 4 | 237 | 2 h |
| # | seat | deaths | settle | tokens | |
|---|---|---|---|---|---|
| 1 | claude-fable-5 | 76.26 | 0 | completed | 34M |
| 2 | muse-spark-1.1 | 62.47 | 0 | completed | 80M |
| 3 | deepseek-v4-pro | 52.09 | 0 | completed | 111M |
| 4 | glm-5.2 | 51.44 | 0 | completed | 86M |
| 5 | grok-4.5 | 50.89 | 0 | completed | 138M |
| 6 | gpt-5.6-sol | 47.94 | 0 | completed | 78M |
| # | seat | provider | role |
|---|---|---|---|
| 1 | claude-fable-5 ( Anthropic, 2026a ) | Anthropic | new flagship |
| 2 | claude-opus-4.8 ( Anthropic, 2026b ) | Anthropic | previous flagship |
| 3 | claude-haiku-4.5 ( Anthropic, 2025 ) | Anthropic | small tier |
| 4 | gpt-5.6-sol ( OpenAI, 2026 ) | OpenAI | new flagship |
| 5 | gpt-5.6-terra ( OpenAI, 2026 ) | OpenAI | balanced tier |
| 6 | claude-sonnet-5 ( Anthropic, 2026c ) | Anthropic | workhorse mid (4-point family curve) |
| lever | easy | medium | hard |
|---|---|---|---|
| scouting noise, multiplier on the belief sigma | 1.3 | 1.0 | 0.35 |
| lineup rotates for fatigue | no | yes | yes |
| market days acted on | every 2nd | every | every |
| gap required before buying an upgrade | 1.5 | 1.0 | 0.25 |
| wage budget, multiplier on the board target | 0.92 | 1.0 | 1.10 |
| seat | score | sd | profile |
|---|---|---|---|
| claude-fable-5 | 90.9 | 5.2 | generalist, no axis below 0.79; best bidder in the field at 9 offers per signing and the sharpest endgame reduction |
| kimi-k2.6 | 88.5 | 0.1 | the steadiest model in the campaign, scoring within a third of a point on three different worlds |
| gpt-5.6-terra | 86.7 | 1.2 | minimalist: lowest token spend in the field (28M) after the winner and an early endgame reduction, but the shortest renewal leads among the top models |
| gpt-5.6-sol | 86.4 | 2.5 | archivist memory (similarity 0.91, append-only) and the weakest bidding of the top group (45 offers per signing) |
| muse-spark-1.1 | 83.2 | 12.0 | strong on two worlds and 20 points weaker on the third; one of two models that raise long-horizon spending at the end |
| glm-5.2 | 83.2 | 0.9 | stable across seeds but loose with cash (135% idle ratio) |
| seat | Y5 | Y10 | Y15 | Y20 |
|---|---|---|---|---|
| claude-fable-5 | 4th 140H 293M 130M 33.3 | 1st 480H 470M 218M 50.3 | 1st 900H 1048M 443M 65.9 | 1st 1400H 1742M 634M 94.6 |
| muse-spark-1.1 | 3rd 120H 302M 158M 31.1 | 1st 460H 468M 196M 48.7 | 1st 960H 1037M 457M 66.5 | 1st 1460H 1298M 315M 91.2 |
| grok-4.5 | 4th 60H 289M 169M 23.9 | 1st 460H 318M 107M 46.6 | 1st 880H 618M 225M 58.1 | 1st 1380H 1106M 634M 89.7 |
| kimi-k2.6 | 3rd 120H 344M 116M 31.9 | 1st 440H 430M 99M 46.7 | 1st 940H 668M 276M 61.4 | 1st 1440H 733M 400M 88.5 |
| gemini-3-flash | 3rd 160H 247M 165M 32.8 | 1st 500H 339M 111M 42.1 | 1st 1000H 675M 400M 61.5 | 1st 1420H 812M 618M 86.6 |
| qwen3.7-max | 3rd 120H 404M 127M 34.0 | 1st 360H 582M 140M 48.0 | 1st 780H 917M 256M 62.3 | 1st 1200H 1305M 248M 86.1 |
| seat | Y5 | Y10 | Y15 | Y20 |
|---|---|---|---|---|
| claude-fable-5 | 2nd 180H 326M 105M 47.4 | 5th 240H 394M 196M 56.4 | 5th 440H 568M 250M 71.3 | 3rd 620H 507M 298M 76.3 |
| muse-spark-1.1 | 8th 0H 260M 84M 18.5 | 7th 40H 197M 117M 24.0 | 2nd 160H 272M 222M 46.2 | 1st 420H 306M 246M 62.5 |
| deepseek-v4-pro | 9th 0H 279M 91M 20.0 | 10th 140H 342M 91M 44.5 | 4th 200H 397M 122M 52.2 | 5th 200H 363M 160M 52.1 |
| glm-5.2 | 4th 40H 275M 107M 30.3 | 1st 160H 335M 78M 46.1 | 8th 200H 346M 71M 49.3 | 6th 200H 356M 125M 51.4 |
| grok-4.5 | 7th 20H 197M 134M 21.1 | 6th 260H 145M 145M 40.0 | 7th 320H 108M 185M 36.4 | 8th 520H 139M 199M 50.9 |
| gpt-5.6-sol | 6th 100H 258M 115M 36.9 | 4th 120H 239M 86M 36.8 | 1st 240H 281M 229M 52.3 | 2nd 280H 182M 294M 47.9 |
| tool | what it does |
|---|---|
| Query (12), charged to the 30-query budget: | |
| get_club_overview | the agent’s club at a glance: division, cash, board, facilities, tactics |
| get_squad | the senior squad with ability bands, form, contracts, wages |
| get_player | detailed view of any player by id |
| get_league_table | league standings |
| get_fixtures | the club’s season fixtures and results |
| stop (day of the 360-day year) | what the world wants decided |
|---|---|
| Scheduled, 13 per season: | |
| Preseason board (2) | the board sets the season target; plan the year |
| Summer window plan (5) | the transfer window opens; build the squad |
| Summer deadline (59) | last actions before the window closes |
| Lineup lock (63) | commit lineup and tactics before round 1 |
| Monthly report (90, 120, 150, 240) | finances and form check-in |
| layer | who writes it | contents | delivery |
|---|---|---|---|
| Packet auto-context | engine | dashboard digest, inbox (all events since last stop), agent’s last 10 engine-mutating actions, pending offers | pushed free into every stop packet |
| Archive | engine | honors / season / transfer history of the whole run | get_history query tool, on demand |
| Notebook | the agent | intentions, reasoning, plans (“why I bought him”, “sell Y in winter”) | injected into every packet; written via append_note / rewrite_notes |
| Audit log | runner | every successful action | never fed back : replay/anti-cheat/resume only |
| quantity | median | range |
|---|---|---|
| decision stops | 374 | 341–390 |
| of which scheduled | (13/season) | rest event-triggered (Table 11 ) |
| matches simulated in the world | 4,800 | (30 rounds 8 matches 20 seasons) |
| model turns (API calls) | 1,184–6,969 | |
| state-changing actions | — | 849–2,198 |
| tokens (manifest accounting) | 61M | 24M–274M |
Long-Horizon Agent Evaluation
Long-Horizon Agent Evaluation measures whether AI agents can plan, act, remember, and stay reliable across extended tasks and changing environments.
See all 357 papers