The free key reads yesterday again: our one-month trial of today on the free key has finished. Read the changelog

Scores and results

What each score means: 90 minutes, extra time, the shootout, awarded and unplayed matches.

Every played match carries its final score and, on its own, the score of each part: normal time, extra time and the shootout. Which one you read depends on the job. Scoring a 90-minute prediction, settling an exchange price and drawing a league table each want a different one, and on a cup tie that went to extra time they disagree.

The score fields

home_goals, away_goals
The final score: normal time and extra time where it was played. Shootout kicks are never in it.
full_time_result
home, draw or away from that final score. After a shootout it reads draw.
regular_time_home_goals, regular_time_away_goals
The score at the end of normal time, the time added on included.
regular_time_result
home, draw or away at the end of normal time.
extra_time_home_goals, extra_time_away_goals
Goals scored in extra time only. null when no extra time was played.
shootout_home_goals, shootout_away_goals
Kicks scored in the shootout. null when there was none.
half_time_home_goals, half_time_away_goals
The score at half-time, with half_time_result beside it.

Wherever the parts are known, the final score is normal time plus extra time: home_goals = regular_time_home_goals + extra_time_home_goals, with extra time as 0 when none was played.

Each status

finished
Played to the end of normal time. The final score is the 90-minute score, and both result fields agree.
finished_after_extra_time
Level at the end of normal time (or level on aggregate in a second leg), then decided in extra time. The final score includes the extra-time goals.
finished_after_penalties
Still undecided after extra time, then settled by a shootout. The final score is after extra time, and the shootout is in its own fields.
awarded
Decided by the competition rather than on the pitch, usually 3-0. The score is the one awarded. There are no part scores and no regular_time_result, because it was not played.
walkover
One side did not turn up. No score.
abandoned, postponed, cancelled
Not completed. No score, never 0-0.

Which to use

  • Scoring a match prediction (1X2, correct score, over and under): regular_time_result and the regular-time goals. Almost every market and model is about 90 minutes.
  • Settling exchange prices: regular_time_result. Betfair's Match Odds market, at kickoff and at half-time, settles on normal time. The odds endpoints and /v1/backtest settle this way, and leave out awarded matches and walkovers.
  • Who went through in a cup: full_time_result, then the shootout fields when it reads draw after penalties. In a two-legged tie, the aggregate decides.
  • League tables and season figures: the final score, awarded matches included, as a competition counts them. The standings work this way.
  • Leaving out matches that were not played: filter on match_status finished, finished_after_extra_time and finished_after_penalties.

Exceptions

  • Youth and shortened matches. Some youth competitions play shorter halves. Their score is the score when the match ended under its own rules, and nothing marks the shorter length; filter by competition if it matters.
  • Normal-time score not known. A small number of matches that went past 90 minutes have no normal-time score at the source; for those the part fields are null. National-team results from before 2012 come from a history that adds extra-time goals into the score with no breakdown: their friendlies have a normal-time score, and their other matches have it only where known.
  • Goal lists. The goals in a match's events are match goals only. Shootout kicks are not listed as goals.