Skip to main content

Driver Standings

Current driver championship standings. Use sensor.f1_driver_standings 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_standings - Driver standings snapshot from Ergast.

State

  • Integer: number of drivers in the standings list.

Example

20

Attributes

AttributeTypeDescription
seasonstringSeason year
roundstringRound of the standings snapshot
driver_standingslistErgast "DriverStandings" array

Each entry in driver_standings contains:

FieldTypeDescription
positionstringChampionship position
positionTextstringPosition as display text
pointsstringTotal points
winsstringNumber of wins
DriverobjectDriver information
ConstructorslistList of constructor(s) the driver has raced for

The Driver object contains:

FieldTypeDescription
driverIdstringDriver identifier (e.g., "max_verstappen")
permanentNumberstringPermanent car number
codestringThree-letter driver code (TLA)
urlstringWikipedia URL
givenNamestringFirst name
familyNamestringLast name
dateOfBirthstringDate of birth (YYYY-MM-DD)
nationalitystringNationality

Each entry in Constructors contains:

FieldTypeDescription
constructorIdstringConstructor identifier
urlstringWikipedia URL
namestringTeam name
nationalitystringTeam nationality
JSON Structure Example
{
"season": "2025",
"round": "12",
"driver_standings": [
{
"position": "1",
"positionText": "1",
"points": "255",
"wins": "7",
"Driver": {
"driverId": "max_verstappen",
"permanentNumber": "1",
"code": "VER",
"url": "http://en.wikipedia.org/wiki/Max_Verstappen",
"givenName": "Max",
"familyName": "Verstappen",
"dateOfBirth": "1997-09-30",
"nationality": "Dutch"
},
"Constructors": [
{
"constructorId": "red_bull",
"url": "http://en.wikipedia.org/wiki/Red_Bull_Racing",
"name": "Red Bull",
"nationality": "Austrian"
}
]
},
{
"position": "2",
"positionText": "2",
"points": "180",
"wins": "2",
"Driver": {
"driverId": "lewis_hamilton",
"permanentNumber": "44",
"code": "HAM",
"url": "http://en.wikipedia.org/wiki/Lewis_Hamilton",
"givenName": "Lewis",
"familyName": "Hamilton",
"dateOfBirth": "1985-01-07",
"nationality": "British"
},
"Constructors": [
{
"constructorId": "ferrari",
"url": "http://en.wikipedia.org/wiki/Scuderia_Ferrari",
"name": "Ferrari",
"nationality": "Italian"
}
]
}
]
}
Jinja2 Template Examples

Get championship leader:

{% set standings = state_attr('sensor.f1_driver_standings', 'driver_standings') %}
{% if standings and standings | length > 0 %}
{% set leader = standings[0] %}
Leader: {{ leader.Driver.givenName }} {{ leader.Driver.familyName }} ({{ leader.points }} pts)
{% endif %}

Get a specific driver's position:

{% set standings = state_attr('sensor.f1_driver_standings', 'driver_standings') %}
{% set ver = standings | selectattr('Driver.code', 'eq', 'VER') | first %}
{% if ver %}
VER is P{{ ver.position }} with {{ ver.points }} points and {{ ver.wins }} wins
{% endif %}

Calculate points gap to leader:

{% set standings = state_attr('sensor.f1_driver_standings', 'driver_standings') %}
{% if standings and standings | length > 1 %}
{% set leader_pts = standings[0].points | int %}
{% set second_pts = standings[1].points | int %}
Gap: {{ leader_pts - second_pts }} points
{% endif %}

List top 5 drivers:

{% set standings = state_attr('sensor.f1_driver_standings', 'driver_standings') %}
{% for d in standings[:5] %}
P{{ d.position }}: {{ d.Driver.code }} - {{ d.points }} pts
{% endfor %}

Get driver by car number:

{% set standings = state_attr('sensor.f1_driver_standings', 'driver_standings') %}
{% set driver = standings | selectattr('Driver.permanentNumber', 'eq', '44') | first %}
{% if driver %}
#44 {{ driver.Driver.familyName }} is P{{ driver.position }}
{% endif %}

Next steps