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 LOW effort for batches and HIGH effort for a single row. Override with effort_level="HIGH" for more accuracy on every row, about $1.20 per row instead of $0.09 to $0.20.
result = await forecast(
input=products,
forecast_type="numeric",
output_field="q4_revenue",
units="millions USD",
effort_level="HIGH", # one row at high effort, or a batch you really care about
)
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, Value a Private Company.