Skip to content
Statistics and streaks

Statistics and streaks

Team form: season aggregates, home/away splits, Last 5 and Last 10 windows, plus simple streaks.

Fields

FieldTypeDescription
statistics.home / .awayobjectPer team: season, venue (home/away split), last_5 and last_10 blocks.
statistics.*.seasonobjectmatches, wins, draws, losses, goals_for, goals_against, clean_sheets, failed_to_score, btts, over_1_5, over_2_5, over_3_5, win_rate, draw_rate, loss_rate.
statistics.*.venueobjectSame fields, restricted to the team's home matches (home team) or away matches (away team).
statistics.*.last_5 / .last_10objectSame fields over the last 5 and last 10 matches.
streaks.home / .awayobjectwinning, losing, unbeaten, winless counters.
standings.home / .awayobjectposition, source, as_of, reliable.
standings.position_differencenumberHome position minus away position. Negative means the home team ranks higher.
standings.freshness_secondsnumberAge of the standings snapshot, in seconds.

Example

Real values, taken from the same published payload the API returns (GET /v1/matches/{match_id}):

{
  "statistics": {
    "home": {
      "season": {
        "matches": 18,
        "wins": 11,
        "draws": 4,
        "losses": 3,
        "goals_for": 34,
        "goals_against": 18,
        "clean_sheets": 7,
        "failed_to_score": 2,
        "btts": 9,
        "over_1_5": 14,
        "over_2_5": 10,
        "over_3_5": 5,
        "win_rate": 0.611111,
        "draw_rate": 0.222222,
        "loss_rate": 0.166667
      },
      "venue": {
        "matches": 9,
        "wins": 7,
        "draws": 1,
        "losses": 1,
        "goals_for": 20,
        "goals_against": 7,
        "clean_sheets": 5,
        "failed_to_score": 1,
        "btts": 4,
        "over_1_5": 7,
        "over_2_5": 5,
        "over_3_5": 2,
        "win_rate": 0.777778,
        "draw_rate": 0.111111,
        "loss_rate": 0.111111
      },
      "last_5": {
        "matches": 5,
        "wins": 3,
        "draws": 1,
        "losses": 1,
        "goals_for": 9,
        "goals_against": 5,
        "clean_sheets": 2,
        "failed_to_score": 0,
        "btts": 3,
        "over_1_5": 4,
        "over_2_5": 3,
        "over_3_5": 1,
        "win_rate": 0.6,
        "draw_rate": 0.2,
        "loss_rate": 0.2
      },
      "last_10": {
        "matches": 10,
        "wins": 6,
        "draws": 2,
        "losses": 2,
        "goals_for": 17,
        "goals_against": 10,
        "clean_sheets": 4,
        "failed_to_score": 1,
        "btts": 5,
        "over_1_5": 8,
        "over_2_5": 5,
        "over_3_5": 2,
        "win_rate": 0.6,
        "draw_rate": 0.2,
        "loss_rate": 0.2
      }
    },
    "away": {
      "season": {
        "matches": 18,
        "wins": 6,
        "draws": 5,
        "losses": 7,
        "goals_for": 22,
        "goals_against": 25,
        "clean_sheets": 4,
        "failed_to_score": 5,
        "btts": 10,
        "over_1_5": 13,
        "over_2_5": 8,
        "over_3_5": 3,
        "win_rate": 0.333333,
        "draw_rate": 0.277778,
        "loss_rate": 0.388889
      },
      "venue": {
        "matches": 9,
        "wins": 2,
        "draws": 3,
        "losses": 4,
        "goals_for": 9,
        "goals_against": 14,
        "clean_sheets": 1,
        "failed_to_score": 3,
        "btts": 5,
        "over_1_5": 7,
        "over_2_5": 4,
        "over_3_5": 1,
        "win_rate": 0.222222,
        "draw_rate": 0.333333,
        "loss_rate": 0.444445
      },
      "last_5": {
        "matches": 5,
        "wins": 1,
        "draws": 2,
        "losses": 2,
        "goals_for": 5,
        "goals_against": 7,
        "clean_sheets": 1,
        "failed_to_score": 2,
        "btts": 3,
        "over_1_5": 4,
        "over_2_5": 2,
        "over_3_5": 1,
        "win_rate": 0.2,
        "draw_rate": 0.4,
        "loss_rate": 0.4
      },
      "last_10": {
        "matches": 10,
        "wins": 3,
        "draws": 3,
        "losses": 4,
        "goals_for": 11,
        "goals_against": 14,
        "clean_sheets": 2,
        "failed_to_score": 3,
        "btts": 6,
        "over_1_5": 8,
        "over_2_5": 5,
        "over_3_5": 2,
        "win_rate": 0.3,
        "draw_rate": 0.3,
        "loss_rate": 0.4
      }
    }
  },
  "streaks": {
    "home": {
      "winning": 2,
      "losing": 0,
      "unbeaten": 5,
      "winless": 0
    },
    "away": {
      "winning": 0,
      "losing": 1,
      "unbeaten": 0,
      "winless": 2
    }
  },
  "standings": {
    "home": {
      "position": 2,
      "source": "example-table",
      "as_of": "2026-10-16T11:00:00Z",
      "reliable": true
    },
    "away": {
      "position": 9,
      "source": "example-table",
      "as_of": "2026-10-16T11:00:00Z",
      "reliable": true
    },
    "position_difference": -7,
    "freshness_seconds": 3600
  }
}

How to read it. The home team is 2nd and unbeaten in 5; the away team is 9th and winless in 2. position_difference (-7) and the rate fields (win_rate, over_2_5) are already normalised, so they make better model features than the raw counters.

Related

Returned by GET /v1/matches/{match_id} and POST /v1/matches/bulk. Optional values can be missing — see Data quality.