Falcon: The Collective Pricing Engine
Can you outsmart the falcons and predict where the dove will go next?
Overview
Enter a real-time forecasting game where players use probabilistic models to forecast the dove’s future location, based on the movement of the dove and the chasing falcons.
Submit forward density predictions to maximize accuracy and earn rewards!
It’s a blend of strategy, live data, and statistical forecasting.
Data
Your model must process a sequence of records that will be received in real time.
Each record provides:
time
: The current time;falcon_location
: A location of one falcon;dove_location
: The current dove location;falcon_id
: The falcon identity;falcon_wingspan
: A figurative measure of dexterity, precision and aggression whose utility or lack thereof is up to you to decide;

The falcon locations are shown as colored dots on the figure above. Some falcons may provide useful information as to (track) the future location of the dove, or the uncertainty of the same, whereas others may not. Their utility, or otherwise, is for you to determine.
The game runs on live data, the feed will be available from Sunday 22:00 UTC to Friday 22:00 UTC.
Expected Interruptions of the Data Feeds
Each day, around 21:00 UTC, there is a window lasting 5–30 minutes during which data may be delayed, unavailable or the market might behave different than during other times in the day. This is caused by the underlying data streams going into a rollover/maintenance period. Your model should be prepared to handle this change in the underlying data gracefully to not loose wealth!
Unexpected interruptions of the Data Feeds
As the game relies on real-time data occasional outages may occur. During these periods, models will not receive new inputs. Once the feed resumes, there will be a burn-in period where fresh data is collected before model performance is evaluated again. This ensures fairness and allows models to recalibrate to current market conditions.
Game Rules
Start
Each player begins with a starting wealth of 1000.
The game opens with a warmup phase where predictions are scored, but wealth is reset at the beginning of each week—this is for players to calibrate their models. This phase will last for 2 weeks, until end of October.
Players can enter and exit the game at any time.
Players have a single active model they can update at any time.
Prediction Phase
For each prediction round, players automatically invest a fraction of their active wealth into the pot.
This amount is subtracted from their active wealth.
The total pot is inflated slightly by a game-defined inflation rate.
The model must generate predictions in under one second.
Scoring & Distribution
Once the true dove location is revealed, each prediction is scored using a likelihood function.
The pot is then distributed proportionally based on these likelihood scores.
More accurate predictions earn a larger share of the pot.
Player wealth will never go below 0.
Players can skip predictions. Doing so means they cannot lose or gain wealth, as they are not participating in prize distribution. However, skipping has consequences: their likelihood vintage resets to 0 and their likelihood is reset.
Payouts
When a player’s wealth exceeds a defined wealth threshold of 2000, they receive a prize payout equal to 10% of their wealth.
This payout is treated like a withdrawal: it’s subtracted from their active wealth and moved to Realized Wealth.
Realized Wealth is distributed weekly. A fixed pool of rewards is allocated, and each participant receives a share proportional to their earned wealth relative to the total earned by all players that week:
Game Duration
After the 2-week warmup, the initial season runs for 3 months of live play. At the end, the winner is announced and a new season begins. Rules and mechanics may evolve with player feedback, especially after the first season.
Winning
The player with the most Total Wealth (The sum of Active Wealth and Realized Wealth) wins the game.
Game State
Explanation of the game state parameters displayed on the leaderboard for each player:
Total Wealth: The sum of a player’s Realized and Active Wealth.
Active Wealth: The in-game capital currently at stake and used to generate returns.
Realized Wealth: The portion of wealth that has been or will be paid out; no longer at risk or being used to generate returns.
Likelihood EWA: The exponentially weighted average of ex-post log-likelihood scores over time.
Recent Likelihood: The most recent ex-post log-likelihood of the player’s active model.
Longevity: The total number of observations since the player joined the game.
Predicting: Indicates whether the player’s model submitted predictions in the current round, can be Live / Idle.
Probabilistic forecast
Probabilistic forecasting provides a distribution of possible future values rather than a single point estimate, allowing for uncertainty quantification. Instead of predicting only the most likely outcome, it estimates a range of potential outcomes along with their probabilities by outputting a probability distribution.
A probabilistic forecast models the conditional probability distribution of a future value given past observations . This can be expressed as:
where represents the historical data up to time . Instead of a single prediction , the model estimates a full probability distribution , which can take different parametric forms, such as a Gaussian:
where is the predicted mean and represents the uncertainty in the forecast.
Probabilistic forecasting can be handled through various approaches, including variance forecasters, quantile forecasters, interval forecasters or distribution forecasters, each capturing uncertainty differently.
For example, you can try to forecast the target location by a gaussian density function (or a mixture), thus the model output follows the form:
{
"density": {
"name": "normal",
"params": {
"loc": y_mean,
"scale": y_var
}
},
"weight": weight
}
A mixture density, such as the gaussian mixture allows for capturing multi-modal distributions and approximate more complex distributions.

Mathematical Definition
The informal meaning of probabilistic forecast is a mixture of parametric univariate density functions where each is taken from a standard family (such as exponential, or gaussian).

Engineering Definition
The meaning of probabilistic forecast is made more precise by means of the Python density package which provides a dict specification of continuous univariate density function mixtures using the pydantic Python package. The function validatedensitydict will tell you whether or not your specification is valid.
Create your Tracker
A tracker is a framework that processes real-time data to track the dove’s movement and predict its future location. It considers inputs like the dove’s position and falcon locations to generate a probabilistic forecast.
To create your tracker, you need to define a class that implements the TrackerBase
interface. Specifically, your class must implement the following methods:
tick(self, payload: dict, performance_metrics: dict) -> None
This method is called at every time step to process new payloads. Use this method to update your internal state or logic as needed.predict(self) -> dict
This method should return your prediction of the dove's location at a future time step. Ensure that the return format complies with the density_pdf specification.
Challenge your Tracker against the benchmark
To compare your Tracker's performance against the benchmark Tracker, use the test_run
method provided in the TrackerBase
class. This method evaluates your Tracker's efficiency over a series of time steps using density_pdf scoring. A higher score reflects more accurate predictions.
Additional Resources
Useful Python packages
Last updated