Skip to main content

Championship Prediction (Drivers)

Drivers championship prediction (P1 and list) (Replay Mode or F1TV Auth live timing). Use sensor.f1_championship_prediction_drivers 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 Drivers Championship winner and points table.

State

  • Predicted P1 driver TLA, or unknown when not available.

Example

VER

Attributes

AttributeTypeDescription
predicted_driver_p1objectThe driver currently predicted to lead the championship
driversobjectMap of all drivers keyed by racing number
last_updatestringISO-8601 timestamp of the last prediction update

The predicted_driver_p1 object contains:

FieldTypeDescription
racing_numberstringCar number
tlastringThree-letter abbreviation
pointsnumberPredicted final points
entryobjectFull entry data from the feed

Each entry in drivers (keyed by racing number) contains:

FieldTypeDescription
RacingNumberstringCar number
CurrentPositionnumberCurrent championship position
PredictedPositionnumberPredicted final position
CurrentPointsnumberCurrent points total
PredictedPointsnumberPredicted final points
JSON Structure Example
{
"predicted_driver_p1": {
"racing_number": "1",
"tla": "VER",
"points": 450,
"entry": {
"RacingNumber": "1",
"CurrentPosition": 1,
"PredictedPosition": 1,
"CurrentPoints": 350,
"PredictedPoints": 450
}
},
"drivers": {
"1": {
"RacingNumber": "1",
"CurrentPosition": 1,
"PredictedPosition": 1,
"CurrentPoints": 350,
"PredictedPoints": 450
},
"44": {
"RacingNumber": "44",
"CurrentPosition": 2,
"PredictedPosition": 2,
"CurrentPoints": 280,
"PredictedPoints": 380
},
"4": {
"RacingNumber": "4",
"CurrentPosition": 3,
"PredictedPosition": 3,
"CurrentPoints": 260,
"PredictedPoints": 350
}
},
"last_update": "2025-06-15T14:32:45Z"
}
Jinja2 Template Examples

Get predicted champion:

{% set p1 = state_attr('sensor.f1_championship_prediction_drivers', 'predicted_driver_p1') %}
{% if p1 %}
Predicted champion: {{ p1.tla }} with {{ p1.points }} points
{% endif %}

Show points gain prediction for a driver:

{% set drivers = state_attr('sensor.f1_championship_prediction_drivers', 'drivers') %}
{% set ver = drivers.get('1') %}
{% if ver %}
{% set gain = ver.PredictedPoints - ver.CurrentPoints %}
VER: {{ ver.CurrentPoints }} -> {{ ver.PredictedPoints }} (+{{ gain }})
{% endif %}

List drivers predicted to gain positions:

{% set drivers = state_attr('sensor.f1_championship_prediction_drivers', 'drivers') %}
{% for num, d in drivers.items() if d.PredictedPosition < d.CurrentPosition %}
#{{ num }}: P{{ d.CurrentPosition }} -> P{{ d.PredictedPosition }}
{% endfor %}

Calculate predicted gap to leader:

{% set p1 = state_attr('sensor.f1_championship_prediction_drivers', 'predicted_driver_p1') %}
{% set drivers = state_attr('sensor.f1_championship_prediction_drivers', 'drivers') %}
{% set ham = drivers.get('44') %}
{% if p1 and ham %}
Gap to leader: {{ p1.points - ham.PredictedPoints }} points
{% endif %}

Next steps