Skip to main content

Driver Points Progression

Follow driver championship points across race rounds. Use sensor.f1_driver_points_progression in dashboards, templates, and automations.

This reference covers the state and attributes. For setup, see Configuration.

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

sensor.f1_driver_points_progression - Per‑round driver points (including sprint) with cumulative series, suitable for charts.

State

  • Integer: number of rounds covered.

Example

12

Attributes

AttributeTypeDescription
seasonstringSeason year
roundslistList of rounds with metadata
driversobjectMap of driver codes to their progression data
seriesobjectProgression series data for charts

Each entry in rounds contains:

FieldTypeDescription
roundstringRound number
race_namestringGrand Prix name
datestringRace date (YYYY-MM-DD)

Each entry in drivers (keyed by driver code) contains:

FieldTypeDescription
namestringDriver's full name
codestringThree-letter driver code
driverIdstringDriver identifier
points_by_roundlistPoints scored in each round
cumulative_pointslistRunning total of points after each round
wins_by_roundlistWins per round (1 or 0)
totalsobject{ points, wins } - season totals

The series object contains:

FieldTypeDescription
labelslistRound labels for chart X-axis (e.g., ["R1", "R2", ...])
serieslistArray of series objects for charting

Each entry in series.series contains:

FieldTypeDescription
keystringDriver code
namestringDriver's full name
datalistPoints per round
cumulativelistCumulative points per round
JSON Structure Example
{
"season": "2025",
"rounds": [
{ "round": "1", "race_name": "Bahrain Grand Prix", "date": "2025-03-02" },
{ "round": "2", "race_name": "Saudi Arabian Grand Prix", "date": "2025-03-09" },
{ "round": "3", "race_name": "Australian Grand Prix", "date": "2025-03-23" }
],
"drivers": {
"VER": {
"name": "Max Verstappen",
"code": "VER",
"driverId": "max_verstappen",
"points_by_round": [25, 18, 25],
"cumulative_points": [25, 43, 68],
"wins_by_round": [1, 0, 1],
"totals": {
"points": 68,
"wins": 2
}
},
"HAM": {
"name": "Lewis Hamilton",
"code": "HAM",
"driverId": "lewis_hamilton",
"points_by_round": [18, 25, 15],
"cumulative_points": [18, 43, 58],
"wins_by_round": [0, 1, 0],
"totals": {
"points": 58,
"wins": 1
}
}
},
"series": {
"labels": ["R1", "R2", "R3"],
"series": [
{
"key": "VER",
"name": "Max Verstappen",
"data": [25, 18, 25],
"cumulative": [25, 43, 68]
},
{
"key": "HAM",
"name": "Lewis Hamilton",
"data": [18, 25, 15],
"cumulative": [18, 43, 58]
}
]
}
}
Jinja2 Template Examples

Get a driver's total points:

{% set drivers = state_attr('sensor.f1_driver_points_progression', 'drivers') %}
{% if drivers and drivers.VER %}
VER total: {{ drivers.VER.totals.points }} points, {{ drivers.VER.totals.wins }} wins
{% endif %}

Get points scored in the last round:

{% set drivers = state_attr('sensor.f1_driver_points_progression', 'drivers') %}
{% if drivers and drivers.VER %}
{% set pts = drivers.VER.points_by_round %}
Last round: {{ pts[-1] if pts else 0 }} points
{% endif %}

List rounds with names:

{% set rounds = state_attr('sensor.f1_driver_points_progression', 'rounds') %}
{% for r in rounds %}
R{{ r.round }}: {{ r.race_name }} ({{ r.date }})
{% endfor %}

Calculate points gained in last 3 rounds:

{% set drivers = state_attr('sensor.f1_driver_points_progression', 'drivers') %}
{% set ver = drivers.VER %}
{% if ver %}
{% set last_3 = ver.points_by_round[-3:] | sum %}
VER last 3 rounds: {{ last_3 }} points
{% endif %}

Get driver with most wins:

{% set drivers = state_attr('sensor.f1_driver_points_progression', 'drivers') %}
{% set winner = drivers.values() | sort(attribute='totals.wins', reverse=true) | first %}
{% if winner %}
Most wins: {{ winner.code }} with {{ winner.totals.wins }}
{% endif %}
Season progression card

Use this entity with the bundled F1 Season Progression Card to show driver championship point progression without installing another chart card.

Next steps