Skip to main content

Championship Prediction (Teams)

Constructors championship prediction (P1 and list) (Replay Mode or F1TV Auth live timing). Use sensor.f1_championship_prediction_teams in dashboards, templates, and automations.

See live data availability for session and data-source requirements. The details below describe any additional conditions for this entity.

Find your entity

These are standard entity IDs. If Home Assistant assigned a different ID, or you renamed an entity, use your existing ID in the examples.

State and attributes

Replay Mode or F1TV Auth live timing

This entity stays registered in Home Assistant. It updates in Replay Mode and can update during live sessions when F1TV Auth is paired with a valid token and live prediction data is available.

Predicted Constructors Championship winner and points table.

State

  • Predicted P1 team name, or unknown when not available.

Example

Red Bull Racing

Attributes

AttributeTypeDescription
predicted_team_p1objectThe team currently predicted to lead the constructors' championship
teamsobjectMap of all teams keyed by team key
last_updatestringISO-8601 timestamp of the last prediction update

The predicted_team_p1 object contains:

FieldTypeDescription
team_keystringTeam identifier
team_namestringTeam display name
pointsnumberPredicted final points
entryobjectFull entry data from the feed

Each entry in teams (keyed by team key) contains:

FieldTypeDescription
TeamKeystringTeam identifier
TeamNamestringTeam display name
CurrentPositionnumberCurrent championship position
PredictedPositionnumberPredicted final position
CurrentPointsnumberCurrent points total
PredictedPointsnumberPredicted final points
JSON Structure Example
{
"predicted_team_p1": {
"team_key": "red_bull",
"team_name": "Red Bull Racing",
"points": 850,
"entry": {
"TeamKey": "red_bull",
"TeamName": "Red Bull Racing",
"CurrentPosition": 1,
"PredictedPosition": 1,
"CurrentPoints": 650,
"PredictedPoints": 850
}
},
"teams": {
"red_bull": {
"TeamKey": "red_bull",
"TeamName": "Red Bull Racing",
"CurrentPosition": 1,
"PredictedPosition": 1,
"CurrentPoints": 650,
"PredictedPoints": 850
},
"ferrari": {
"TeamKey": "ferrari",
"TeamName": "Ferrari",
"CurrentPosition": 2,
"PredictedPosition": 2,
"CurrentPoints": 520,
"PredictedPoints": 700
},
"mclaren": {
"TeamKey": "mclaren",
"TeamName": "McLaren",
"CurrentPosition": 3,
"PredictedPosition": 3,
"CurrentPoints": 480,
"PredictedPoints": 650
}
},
"last_update": "2025-06-15T14:32:45Z"
}
Jinja2 Template Examples

Get predicted constructors champion:

{% set p1 = state_attr('sensor.f1_championship_prediction_teams', 'predicted_team_p1') %}
{% if p1 %}
Predicted constructors champion: {{ p1.team_name }}
{% endif %}

Compare two teams:

{% set teams = state_attr('sensor.f1_championship_prediction_teams', 'teams') %}
{% set rb = teams.get('red_bull') %}
{% set ferrari = teams.get('ferrari') %}
{% if rb and ferrari %}
Gap: {{ rb.PredictedPoints - ferrari.PredictedPoints }} points
{% endif %}

List teams by predicted finish:

{% set teams = state_attr('sensor.f1_championship_prediction_teams', 'teams') %}
{% for key, t in teams.items() | sort(attribute='1.PredictedPosition') %}
P{{ t.PredictedPosition }}: {{ t.TeamName }} ({{ t.PredictedPoints }} pts)
{% endfor %}

Show teams predicted to change position:

{% set teams = state_attr('sensor.f1_championship_prediction_teams', 'teams') %}
{% for key, t in teams.items() if t.PredictedPosition != t.CurrentPosition %}
{{ t.TeamName }}: P{{ t.CurrentPosition }} -> P{{ t.PredictedPosition }}
{% endfor %}

Next steps