FutureSearch Logofuturesearch
  • Pricing
  • Research
  • Docs
  • Evals
  • Markets
  • Blog
  • Company
  • Try it for free
FutureSearch Logo

General inquiry? You can reach us at hello@futuresearch.ai.

Company

TeamCareersPressPrivacy PolicyTerms of Service

Developers

SDK DocsAPI ReferenceCase StudiesGitHubSupport

Integrations

Claude CodeCursorChatGPT CodexClaude.ai

Track Record

Trading ResultsAccuracy EvalsTournament Standings

Follow Us

X (Twitter)@dschwarz26LinkedIn
FutureSearchdocs
Frontier forecasting
Installation
  • All install methods
  • Claude.ai
  • Claude Code
  • Web App
  • Python SDK
  • Skill
Reference
  • API Key
  • forecast
  • decision
  • multi_agent
  • agent_map
  • World Modeling
  • Published Forecasts
  • MCP Server
  • Progress Monitoring
Guides
  • Turn Claude into an Accurate Forecaster
  • Forecast Outcomes for a List of Entities
  • Forecast Conditional Scenarios
  • Forecast Categorical and Threshold Questions
  • Find Profitable Prediction Market Trades
  • Research a Question with a Team of Agents
  • Add a Column via Web Research
  • Error Handling in FutureSearch: Failed Rows and Partial Results
Case Studies
  • Forecast a Decision: Grant Funding at Three Levels
  • Forecast a Decision: Which CEO Replacement Maximizes Share Price
  • Forecast a Binary Question End to End
  • Forecast a Date, Then Grade It
  • Forecast Categorical Outcomes for Two Stealth Labs
  • Forecast Conditional Scenarios for OpenAI's IPO
  • Forecast Anthropic and OpenAI IPOs: Dates and Valuations
  • Forecast a Sum-of-the-Parts SpaceX IPO Valuation
  • Forecast Founder Seed Valuations for AI Researchers
  • Find Startups Selling to Frontier AI Labs
  • Run 10,000 LLM Web Research Agents
FutureSearchby futuresearch
by futuresearch

Forecast a Decision: Grant Funding at Three Levels

decision forecasts one outcome under each alternative of a choice you control. The choice here is how much to donate to an open funding proposal, and the alternatives are $0, an intermediate amount, and the full remaining ask. All alternatives are researched jointly, so the gaps between them price the money rather than reading as three unrelated forecasts.

Use decision whenever the "if" clause is a choice you control. Use a conditional forecast when the "if" is something you merely observe.

The question

Every row asks the same outcome question about a different organization:

By December 31, 2028, will a named outside actor take a costly action, documented in public records, that stakes something on this project's work produced after August 1, 2026?

The alternatives column holds that organization's three funding levels: $0, an intermediate amount, and the amount remaining to meet its full goal as of July 31, 2026. The $0 branch is the unconditional baseline.

Run it

import asyncio
import json

from pandas import DataFrame
from futuresearch.ops import decision

OUTCOME = (
    "By December 31, 2028, will a named outside actor take a costly action, "
    "documented in public records, that stakes something on this project's "
    "work produced after August 1, 2026?"
)

proposals = DataFrame([
    {
        "organization": "ControlAI",
        "question": OUTCOME,
        "grant_size": json.dumps(["$0 (no grant)", "$250k", "$1M"]),
        "resolution_criteria": (
            "250 individually listed sitting parliamentarians from non-US G7 "
            "legislatures or the European Parliament on ControlAI's public "
            "campaign statements by end of 2028."
        ),
    },
    {
        "organization": "Transluce",
        "question": OUTCOME,
        "grant_size": json.dumps(["$0 (no grant)", "$500k", "$1.96M"]),
        "resolution_criteria": (
            "Two distinct frontier labs or government AI safety institutes "
            "document use of Transluce tooling in official model evaluations, "
            "with the use occurring after August 1, 2026."
        ),
    },
])


async def main():
    result = await decision(
        input=proposals,
        alternatives_field="grant_size",
        intervention=(
            "Assume the grant is announced publicly at the time it is made, that "
            "no other funder backfills a declined application, and that the "
            "decision is made within the next quarter."
        ),
    )
    print(result.data[["organization", "probabilities", "rationale"]])


asyncio.run(main())

intervention replaces the default assumptions wholesale, so state the full set rather than only the one you want to change.

Results

Five of the eighteen proposals, with the probability of the 2028 outcome under each funding level:

OrganizationPartialFull askp($0)p(partial)p(full)
Tarbell Center for AI Journalism$50k$171k787981
ControlAI$250k$1M395470
Transluce$500k$1.96M212531
GPAI Policy Lab$250k$2.47M111627
PauseAI US$100k$450k71015

Tarbell's outcome is close to settled before any money moves, so the full ask buys 3 points. ControlAI's buys 31.

Going deeper

  • Long-form analysis: Forecasting the outcomes of philanthropic grants
  • Published output: all 18 proposals at three funding levels
  • Reference: decision

Ready to try it yourself? Run it in the app →