Skip to main content

metaculus-bot-review

Review how a Metaculus forecasting bot performed on the questions it forecast.

bot-review builds a table of how your bot's forecasts turned out and attaches the reports it posted, so you can see what it was thinking on the questions it got wrong. Everything is read-only: it makes no forecasts, spends nothing on LLMs, and publishes nothing. All it needs is METACULUS_TOKEN.

It reads the reports your bot published as Metaculus comments, so it works whether or not the bot saved anything locally. It parses only the format forecasting-tools itself writes, so it works on any bot built on the framework.

Install

pip install metaculus-bot-review

Or with poetry:

poetry add metaculus-bot-review

Set METACULUS_TOKEN in your environment or in a .env file in the directory you run from. That token is what decides which bot gets reviewed.

Scoring your questions

bot-review review --tournament <slug-or-id> --output review.json --summary review.md
bot-review review --resolved-since 30              # anything that resolved recently
bot-review review --post 44328 44326               # specific questions
bot-review review --from-json review.json --top 3  # re-render without refetching

The markdown summary gives your leaderboard standing, how many questions were forecast and scored, and the best and worst questions ranked on whichever score the leaderboard uses — spot peer for the AI benchmark tournaments, time-averaged peer for the Metaculus Cup.

The JSON adds per-question detail: the official scores, the bot's forecast, and one RunTrace per run taken from the comment that run posted — each forecaster's prediction, the run time, cost and minutes where the bot leaves that metadata in. QuestionOutcome.trace picks the run that was standing when the question was spot scored, which is the one that earned the score.

Reading the reasoning

Reasoning text is not stored in the table. Pull it a piece at a time:

bot-review show 44328 --section research
bot-review show 44328 --forecaster R1:F3 --comment 921582  # a specific run

Sections are summary, research and forecasts. A research section runs to tens of thousands of characters, so on a question whose resolution you already know it is usually cheaper to search it than to read it:

bot-review show 44328 --section research | grep -niE "death toll" | head

From Python

from metaculus_bot_review.outcomes import get_tournament_outcomes
from metaculus_bot_review.summary import build_summary
from metaculus_bot_review.traces import attach_traces, get_trace

table = get_tournament_outcomes("minibench-2026-06-29")
attach_traces(table)
print(build_summary(table))
print(get_trace(44328, section="research"))

Rate limits

Metaculus rate-limits at roughly 5 requests per second. The CLI spaces requests by 0.7s; change it with --seconds-between-requests.

License

MIT

Metadata

Release files for metaculus-bot-review 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for metaculus-bot-review 0.1.0
File Size Uploaded
metaculus_bot_review-0.1.0.tar.gz 13.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for metaculus-bot-review 0.1.0
File Interpreter ABI Platform
metaculus_bot_review-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.6 kB

Release files / metaculus_bot_review-0.1.0.tar.gz

Download URL metaculus_bot_review-0.1.0.tar.gz
Size 13.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0f6c497bb6e689520dd5d9d0af3df0f0285ceecda5d40115b8842d8dbd409168
BLAKE2b-256 checksum
How to use checksums
9b4c978287d096e5fb401555f268721fe6645778ad72120540de0fea0733fe4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / metaculus_bot_review-0.1.0-py3-none-any.whl

Download URL metaculus_bot_review-0.1.0-py3-none-any.whl
Size 16.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f2685677b86b2e9d0d93ccfc641377fd209d0e7600854b6777a016d3abca6b6c
BLAKE2b-256 checksum
How to use checksums
6b696c28012de233fdc364b9199f1d1a99e2e2350d889bac3cc8a98739a59328
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Pop!_OS","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page