Download data

Get the data behind the dashboard as a file: market prices from Kalshi, expert picks, and results, one row per saved snapshot. Choose the dates, narrow it down if you like, and pick a format.

1Which dates?

2Narrow it down (optional)

3Pick a format

What’s in the file?

Every column, explained in plain language.

The game
event_id
Marla's own ID for the game. It joins the Kalshi, Forebet, PredictZ and FootyStats records of the same game.
external_event_key
A standard code built from sport, competition, date and team names, used to spot the same game across sources.
event
The game in words, e.g. "Arsenal vs Chelsea".
home_team / away_team
The two sides, with names standardised across sources.
sport / competition
The sport and the league or tournament.
event_start_utc
Kick-off time in UTC. Used to avoid stale or already-started data.
event_date_local
Date of the game in the desk's local timezone. This drives Today, Yesterday, This week and so on.
The market (what is being priced)
kalshi_event_ticker / kalshi_market_ticker
Kalshi's codes. One game (event) can have many markets, so they are stored separately.
market_type
Kind of market: moneyline (who wins), spread, total, both teams to score, correct score, and so on.
market_scope
What part of the game it covers: full game, first half, season, player, and so on.
market_line
The number involved, such as 2.5 goals or a +1.5 spread.
selection / selection_entity / selection_value
The pick in words, what it measures, and its number. Example: "Over 2.5 Goals", total_goals, 2.5.
market_status
Whether the market is open, closed or settled.
Kalshi prices (the crowd)
kalshi_yes_bid / kalshi_yes_ask
Best price to sell and to buy a "yes", in cents. 62 means about a 62% chance.
kalshi_last_price
Price of the most recent trade.
kalshi_mid_price
Halfway between bid and ask.
kalshi_volume / kalshi_open_interest / kalshi_liquidity
How much has been traded, how many contracts are open, and how easy it is to trade. Liquidity is not supplied by Kalshi, so it is empty.
Expert tips (Forebet, PredictZ, FootyStats)
<source>_prediction
What that source picks, such as "Home win" or a score.
<source>_probability
How sure the source says it is, when it publishes a number.
<source>_odds_decimal
Bookmaker-style odds for that pick, when published.
<source>_source_url
The web page the pick was read from.
<source>_collected_at_utc
When Marla collected that pick.
<source>_fetch_status
Whether the source was fetched, unavailable, unmatched, entered by hand, or failed.
Extra providers (only filled when switched on)
oddsapi_*
Bookmaker odds from The Odds API. The prediction is the outcome with the highest average implied chance (bookmaker margin removed). oddsapi_odds_home / _draw / _away are the average decimal odds.
apifootball_*
API-Football's own football predictions: its pick and the percentage it gives that outcome.
polymarket_*
Polymarket's market price, read as a chance. The pick is the outcome priced highest; odds are the decimal equivalent of that price.
Football-data.org, CricketData.org, API-Sports
Results providers: they fill final scores (actual_home_score, actual_away_score, actual_result) for games other sources have not scored. They add no columns of their own.
Results
actual_home_score / actual_away_score
Final score. Blank until the game is finished.
actual_result
Who won (home, draw or away). Blank until finished.
settled_at_utc
When the result was recorded.
Quality and bookkeeping
event_match_confidence
How sure Marla is that the sources are talking about the same game: high, medium, low or manual_review_required.
source_availability
Which sources filled the row, e.g. kalshi_only, kalshi_forebet or kalshi_all_sources.
data_quality_grade
A = complete and current, B = minor gaps, C = tips only, D = unreliable, F = do not use.
data_quality_flags
The reasons behind the grade, e.g. started game, stale price, wide spread, source failed.
fetch_batch_id
Which sync run created or updated the row.
fetch_error_message
Any error from fetching, scraping, parsing or matching that touched this row.
collected_at_utc
When this snapshot was taken. Every row is a timestamped snapshot.
created_at_utc / updated_at_utc
When the database row was first created and last changed.