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 Outcomes for a List of Entities

Predict an outcome for every row in a dataset. Numeric forecasting produces a full p10 through p90 distribution per entity, so you can compare across the list and see where the uncertainty lies. The same pattern works for binary "will it happen" questions and date "when will it happen" questions.

The pattern: build a DataFrame with one row per entity, give every row a question (and optionally background to feed the research agents), then call forecast once.

Add FutureSearch to Claude Code if you haven't already:

claude mcp add futuresearch --scope project --transport http https://mcp.futuresearch.ai/mcp

Tell Claude what you want forecast across the list:

For each of these five product launches, forecast Q4 2027 revenue in
millions USD. Treat each as a hypothetical: assume the product ships
this quarter at the announced price, and forecast the standalone Q4
top-line.

Claude calls futuresearch_forecast in numeric mode:

Tool: futuresearch_forecast
├─ data: [{"question": "What will Product A's Q4 2027 revenue be?", ...},
│         {"question": "What will Product B's Q4 2027 revenue be?", ...},
│         ... ]
├─ forecast_type: "numeric"
├─ output_field: "q4_revenue"
├─ units: "millions USD"
└─ context: "Assume each product ships this quarter at the announced price."

→ Submitted: 5 rows for numeric percentile forecasting.

Tool: futuresearch_progress
→ Completed: 5/5 (0 failed) in 240s.

Tool: futuresearch_results
→ Saved 5 rows with q4_revenue_p10 through q4_revenue_p90 columns.

The same shape works for any entity-outcome pair. Replace the list and the question:

Here's a CSV of 50 consumer products. Forecast the year-over-year
revenue growth for each one, in percent.

Add the FutureSearch connector if you haven't already. Then ask Claude:

For each of these five product launches, forecast Q4 2027 revenue in millions USD.

The same pattern works for any entity-outcome pair:

Here are 30 countries. Forecast the GDP growth rate for each one in 2027, in percent.

Go to futuresearch.ai/app, upload your list, and enter:

For each of these five product launches, forecast Q4 2027 revenue in millions USD.

pip install futuresearch
export FUTURESEARCH_API_KEY=your_key_here  # Get one at futuresearch.ai/app/api-key

The pattern is always the same: build a DataFrame with one row per entity (each row has a question column and any background), then call forecast once.

import asyncio
import pandas as pd
from futuresearch.ops import forecast

products = pd.DataFrame([
    {"question": "What will Product A's Q4 2027 revenue be, in millions USD?"},
    {"question": "What will Product B's Q4 2027 revenue be, in millions USD?"},
    {"question": "What will Product C's Q4 2027 revenue be, in millions USD?"},
    {"question": "What will Product D's Q4 2027 revenue be, in millions USD?"},
    {"question": "What will Product E's Q4 2027 revenue be, in millions USD?"},
])

async def main():
    result = await forecast(
        input=products,
        forecast_type="numeric",
        output_field="q4_revenue",
        units="millions USD",
        context="Assume each product ships this quarter at the announced price.",
    )
    print(result.data[[
        "question", "q4_revenue_p10", "q4_revenue_p50", "q4_revenue_p90",
    ]].sort_values("q4_revenue_p50", ascending=False))

asyncio.run(main())

The output adds {output_field}_p10 through {output_field}_p90 (float, monotonically non-decreasing), units (string), and rationale (string).

Effort. forecast defaults to HIGH effort, and batch size does not change that. At roughly $1.20 per row, a 200-row sweep on the default is a real bill. Pass effort_level="LOW" to drop to $0.09 to $0.20 per row when you are scanning a long list rather than committing to it.

result = await forecast(
    input=products,
    forecast_type="numeric",
    output_field="q4_revenue",
    units="millions USD",
    effort_level="LOW",  # scanning a long list; drop the default HIGH
)

The same shape extends to binary and date forecasts:

# Binary: "Will each candidate win?"
result = await forecast(
    input=candidates,
    forecast_type="binary",
)

# Date: "When will each lab IPO?"
result = await forecast(
    input=labs,
    forecast_type="date",
    output_field="ipo_date",
)

The wider the entity-outcome variation, the more interesting the result. When every row's distribution looks identical, you've probably under-specified the question. Add background columns to give each entity its own context.

For a worked end-to-end example with 116 rows, see Forecast AI Researcher Seed Valuations and the long-form analysis at Which AI Researchers Have the Most Valuable Skills?.


Built with FutureSearch. See the forecast documentation for all parameters and output formats. Related guides: Turn Claude into an Accurate Forecaster, Find Profitable Prediction Market Trades, Forecast Conditional Scenarios.