Overview
Questions are the core forecasting objects on Metaculus. Each question asks forecasters to predict the outcome of a future event. Metaculus supports multiple question types to accommodate different kinds of predictions.Question Types
Metaculus supports five distinct question types, each optimized for different forecasting scenarios:Binary
Yes/No questions with probability forecasts between 0% and 100%
Numeric
Continuous range predictions with customizable scales (linear or logarithmic)
Date
Predictions about when an event will occur
Multiple Choice
Select from predefined options with probability distributions
Discrete
Continuous predictions over a discrete set of outcomes
Binary Questions
Binary questions are the simplest type, asking for a yes/no prediction. Data Model (fromquestions/models.py:80-85):
Multiple Choice Questions
Multiple choice questions allow forecasters to distribute probabilities across multiple options. Key Features:- Options can be modified before forecasting begins
- Options history is tracked (from
questions/models.py:222-231) - Support for dynamic ordering (by community prediction or default)
- “Other” category for unlisted outcomes
questions/models.py:233-244):
DEFAULT: Display views sorted by CP, forecast maker preserves creation orderCP_DESC: All views sort options by descending community prediction
Numeric Questions
Numeric questions ask for predictions over a continuous range of numbers. Configuration Options (fromquestions/models.py:177-217):
range_min/range_max: Minimum and maximum valueszero_point: For logarithmic scales, the value of the zero pointopen_upper_bound/open_lower_bound: Whether resolutions outside the range are possibleunit: Display unit (e.g., “meters”, “dollars”)
Date Questions
Date questions are specialized numeric questions for temporal predictions. Features:- Same configuration options as numeric questions
- Internally represented as timestamps
- Displayed with calendar interfaces
Discrete Questions
Discrete questions provide predictions over a fixed number of discrete outcomes. Configuration (fromquestions/models.py:210-215):
inbound_outcome_count: Number of possible outcomes (default: 200)- Range bounds similar to numeric questions
- Does NOT use
zero_point(continuous scale only)
Question Lifecycle
Questions progress through several states during their lifecycle:Open
Question is actively accepting forecasts. Current time is between
open_time and scheduled_close_time.Status Determination
The question status is computed dynamically (fromquestions/models.py:355-375):
Time Fields
Questions have several important timestamps that control their lifecycle:open_time
open_time
Time when forecasting begins. Defines the start of the scoring period. Should not be changed after forecasts are made.
scheduled_close_time
scheduled_close_time
Planned time when forecasting ends. Defines the end of the scoring period. Should not be changed after forecasts are made.
scheduled_resolve_time
scheduled_resolve_time
Predicted time when the resolution will become known.
actual_resolve_time
actual_resolve_time
Actual time when the resolution became known.
actual_close_time
actual_close_time
Actual time when the question closed (minimum of
scheduled_close_time and actual_resolve_time).cp_reveal_time
cp_reveal_time
Time when the community prediction becomes visible to forecasters.
spot_scoring_time
spot_scoring_time
Time when spot scores are evaluated. Defaults to
cp_reveal_time if not set.Resolution
Resolution is the process of determining the final outcome of a question.Resolution Values
Theresolution field stores the outcome as a string (from questions/models.py:88):
- Binary:
"yes"or"no"(or probability for ambiguous resolutions) - Multiple Choice: The selected option text or index
- Numeric/Date/Discrete: The numeric value as a string
- Unsuccessful resolutions:
"ambiguous"or"annulled"(fromquestions/constants.py:4-6)
Resolution Criteria
Each question includes three key description fields (fromquestions/models.py:116-119):
- Description: Background and context for the question
- Resolution Criteria: Precise conditions that determine the outcome
- Fine Print: Additional clarifications and edge cases
Question Weights
Questions can have different weights for scoring purposes (fromquestions/models.py:90):
0 excludes the question from scoring entirely, while higher weights increase its contribution to leaderboards.
Community Prediction (CP)
The community prediction aggregates all forecaster predictions into a single consensus forecast.Hidden Community Predictions
Questions can hide the CP until a specified time (fromquestions/models.py:377-383):
Aggregation Methods
Metaculus supports multiple aggregation methods (fromquestions/types.py:18-22):
recency_weighted: Recent forecasts weighted more heavily (default)unweighted: All forecasts weighted equally (better for short-term questions)single_aggregation: Single point-in-time aggregationmetaculus_prediction: Proprietary Metaculus algorithm
Advanced Features
Group of Questions
Multiple related questions can be grouped together (fromquestions/models.py:508-536):
- Shared description and resolution criteria
- Fan graphs or multiple choice visualizations
- Subquestions can be manually ordered or sorted by CP
Conditional Questions
Conditional questions split into two variants based on a condition (fromquestions/models.py:486-505):
condition: The binary question that determines the pathquestion_yes: Question resolved if condition is YESquestion_no: Question resolved if condition is NO
API Reference
Questions API
Explore the full Questions API documentation
Related Topics
Forecasting
Learn how to make and update predictions
Scoring
Understand how forecasts are evaluated
Projects
Organize questions into collections
Tournaments
Compete in forecasting competitions
