FinanceGym

Point-in-time financial deep research benchmark

FinanceGym gives an agent a finance research question and a cutoff date. The agent may only retrieve documents published on or before that date, then writes a cited report. Reports are graded against expert rubrics that separate what was knowable at the cutoff from what actually happened afterwards. How the questions and rubrics are generated and validated is explained in the paper.

400public questions
2,464expert rubric items
1.2avg. financial-expert hours per question and its rubrics
0–4rubric scale, normalized to %

Overview

1. Retrieve, point-in-time

Every retrieval call is bounded by the task's cutoff date, so no document published after it can enter the evidence set. Enforcing that at the source is the benchmark's one hard rule.

2. Write a cited report

Any agent architecture is allowed β€” any loop, any planner, any backbone model. The single hard rule is point-in-time compliance on retrieval.

3. Graded on two axes

Pre-cutoff scores antecedent items against evidence available at the cutoff. Post-cutoff scores consequent items against what happened after. Rubrics stay withheld to prevent rubric hacking.

Leaderboard

Normalized rubric means (%) over the 400-question set. Pre-cutoff = grounding in evidence available at the cutoff, Post-cutoff = reasoning about what followed, Β±SE = standard error of the Overall mean. System link points at the paper or repository for the agent framework the row runs on. Rank always reflects the overall standing, whatever column you sort by.

#

Post-cutoff scores sit far below pre-cutoff for every system β€” anticipating consequences from pre-cutoff evidence alone is the open problem this benchmark exists to measure.

Cost–quality frontier

Overall rubric score against estimated cost per query. The x-axis runs high β†’ low left to right, so up and to the right is better, and the staircase marks the efficient set β€” nothing cheaper scores higher. Hover or focus any point for its numbers.

FinanceHarness ReAct Other agentic systems Finetuned DR agent
20 25 30 35 40 45 $0.03 $0.05 $0.1 $0.2 $0.3 $0.5 $1 $2 $3 FinanceHarness (Qwen3.6-27B) FinanceHarness Β· gemini-3-flash FinanceHarness Β· gemini-3.1-pro FinanceHarness Β· claude-opus-4.8 FinanceHarness Β· claude-opus-4.7 FinanceHarness Β· claude-opus-5 Tongyi-DR GPT-Researcher TTD-DR Gemini-3.1-Pro Claude-Opus-4.7 GPT-5.5 efficient zone estimated cost per query (log scale) β€” cheaper to the right overall rubric score (%)

Data

benchmark_400_public.jsonl holds 400 tasks, one JSON object per line. Cutoffs span 2024-12-31 to 2025-11-10 across 31 distinct dates.

Fields in each line of benchmark_400_public.jsonl.
FieldTypeMeaning
task_idstring Stable unique id for the question. Handy for your own bookkeeping; not used for matching.
questionstring The research question. Used verbatim to match your submission to its withheld rubric β€” copy it exactly, with no truncation, re-wording, or added point-in-time framing.
cutoffstring YYYY-MM-DD The point-in-time date. Only information available on or before this date may inform the report.

Rubrics are not part of the public file β€” this prevents score hacking. The tab shows an example rubric. Grading runs against a private full-rubric set.

Submission

Five steps to run the benchmark and submit to us for grading.

  1. Download the questions

    Download benchmark_400_public.jsonl β†—

  2. Bring a point-in-time retrieval setup

    The retrieval environment used for the published results is not distributed due to FinanceGym's CC BY-NC 4.0 license.

    How you replicate the PIT search environment is up to you. Two examples:

    1. Build it from our open-source code. FinanceGym/scripts β†— takes a web corpus you supply and runs the whole pipeline β€” extract, embed, build the index, serve.
    2. Use a public search tool β€” such as Serper.dev or DuckDuckGo β€” and add your own post-check that drops any result published after the cutoff. We have implemented both backends for reference in financeharness/tools/research β†—.

    Whichever route you take, one hard rule applies: retrieval must return only documents published on or before the task's cutoff.

  3. Run your agent β€” point-in-time, no leakage

    Any agent architecture is allowed: any loop, any planner, any backbone model. There is exactly one hard rule, and it is about retrieval.

    The hard rule: max_date is mandatory

    Every single /search call must carry max_date = that task's cutoff. The server then never returns a document published after the cutoff. Omitting it β€” even on one exploratory query β€” voids point-in-time compliance for the whole run.

    A note on the model's own memory

    A backbone model trained after the cutoff may simply know what happened next, and we cannot audit that. It is good practice to require, in your system instruction, that the report should stand on retrieved, cited evidence β€” so the agent asserts only what its point-in-time sources support, and cites each claim.

  4. Format your answers.jsonl

    A single JSONL file: one object per line, one line per benchmark question β€” the exact shape our grader reads. 400 lines for a full run; partial runs are accepted but are marked as such on the leaderboard.

    Fields our grader reads from each line of answers.jsonl.
    FieldType RequiredDescription
    questionstringrequired The benchmark question verbatim. This is the key that matches your answer to its withheld rubric β€” any edit, truncation, or added framing breaks the match and the line is dropped.
    cutoffstring YYYY-MM-DDrequired The task's cutoff, copied from the question file.
    reportstringrequired Your agent's full research report, with citations. Markdown is fine; it is graded as text. Do not wrap it in extra JSON.
    num_docs_retrievedintoptional Number of documents your agent fetched.
    elapsed_sfloatoptional Wall-clock seconds for the task.

    Example line

    {"question": "How does Air France-KLM's accelerated transition ...",
     "cutoff": "2025-08-05",
     "report": "**Equity Research Note**\n\n...",
     "num_docs_retrieved": 16,
     "elapsed_s": 62.2}
  5. Send it to us

    Email your answers.jsonl plus the metadata block to rujunh@google.com with the subject line:

    FinanceGym submission: <agent-name>

    Metadata to include with your submission

    repo is what we publish as your System link on the leaderboard β€” a public repository or a paper URL.

    agent: my-research-agent
    org: Example Lab
    repo: https://github.com/your-org/your-agent   # public repo or paper URL
    base_model: your-model        # the backbone your agent used
    date: 2026-08-05
    contact: you@example.com
    notes: agent loop, 8 workers, PIT-compliant (max_date enforced on every search).

What happens after you submit

We validate the file shape, run the judge over your reports, and add your row to the leaderboard, linked to your system's paper or repository. If anything about the submission is malformed or looks non-compliant, we come back to you before publishing a score.

License

Both FinanceGym and FinanceHarness β€” the benchmark, its datasets, the retrieval tooling, and the harness code β€” are released under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) β†—.

Non-commercial use only

Everything here is provided strictly for academic and non-commercial research and evaluation. Commercial use β€” including integration into commercial financial advisory services, or using generated outputs to provide commercial investment advice β€” is prohibited.