How to Rank Electric Vehicle Makes and Models by Place

On this page

Problem statement

Which electric cars do people in each place drive? A statewide ranking is easy, and in Washington it is mostly Tesla. The interesting answers are local: where Tesla's dominance is weakest, which counties lean to Rivian or Chevrolet, and which places have the most varied mix of brands. This page ranks makes and models across Washington's registered EVs, then compares counties with shares, location quotients and a concentration index, and looks at the newest model years.

Quick answer

Count vehicles by Make and Model with groupby().size(). For places, use a cross-tabulation of county by make normalised by row, and compare each county's share with the statewide share (a location quotient). Restrict to counties with enough vehicles that a share means something.

wa_ev = ev[ev.state == "WA"]
top = wa_ev.groupby(["make", "model"]).size().sort_values(ascending=False)
print(top.head(8).to_string())
print(f"Tesla share of all EVs: {(wa_ev.make == 'TESLA').mean():.1%}")
make       model         
TESLA      MODEL Y           66379
           MODEL 3           38735
NISSAN     LEAF              13357
HYUNDAI    IONIQ 5            7734
TESLA      MODEL S            7730
CHEVROLET  BOLT EV            7585
TESLA      MODEL X            7018
FORD       MUSTANG MACH-E     6827
Tesla share of all EVs: 40.7%

The Tesla Model Y is the most registered EV in Washington with 66,379, followed by the Model 3 (38,735) and the Nissan Leaf (13,357). The Hyundai Ioniq 5, Tesla Model S, Chevrolet Bolt EV, Tesla Model X and Ford Mustang Mach-E complete the eight. Tesla makes 40.7% of all EVs.

Horizontal bar chart of the fifteen most registered EV models, Tesla Model Y and Model 3 in red far ahead, then the Nissan Leaf, Hyundai Ioniq 5 and others. Horizontal bar chart of the fifteen most registered EV models, Tesla Model Y and Model 3 in red far ahead, then the Nissan Leaf, Hyundai Ioniq 5 and others.
The 15 most registered EV models in Washington: the Model Y leads with 66,379.

Shares, leaders and location quotients by county

1. Make share by county

mk = pd.crosstab(wa_ev.county, wa_ev.make, normalize="index")
n = wa_ev.county.value_counts()
tes = mk.TESLA[n[n >= 300].index].sort_values()
print("Tesla share, lowest:", tes.head(3).round(3).to_dict(), "| highest:", tes.tail(3).round(3).to_dict())
Tesla share, lowest: {'San Juan': 0.192, 'Jefferson': 0.204, 'Clallam': 0.244} | highest: {'Grant': 0.463, 'Snohomish': 0.47, 'Franklin': 0.555}

Among counties with at least a few hundred EVs, Tesla's share ranges from 19.2% in San Juan County and 20.4% in Jefferson to 47.0% in Snohomish and 55.5% in Franklin (the Tri-Cities). The island and Olympic Peninsula counties, with older and more varied fleets, are the least Tesla-dominated.

2. The leading model in each county

lead = wa_ev.groupby(["county", "make", "model"]).size().reset_index(name="n").sort_values(["county", "n"], ascending=[True, False]).drop_duplicates("county")
print(lead.assign(model=lead.make + " " + lead.model).model.value_counts().head(5).to_dict())
print(lead[~lead.model.isin(["MODEL Y", "MODEL 3"])][["county", "make", "model", "n"]].to_string(index=False))
{'TESLA MODEL Y': 32, 'TESLA MODEL 3': 3, 'FORD F-150': 1, 'NISSAN ARIYA HATCHBACK': 1, 'NISSAN LEAF': 1}
   county      make           model   n
 Columbia      FORD           F-150   4
 Garfield    NISSAN ARIYA HATCHBACK   2
 San Juan    NISSAN            LEAF 201
Wahkiakum CHEVROLET         BOLT EV  11

The Model Y leads in 32 of 39 counties and the Model 3 in 3. The exceptions say something about each place: a Ford F-150 Lightning pickup in Columbia County (4 vehicles), a Nissan Ariya in Garfield (2), the Leaf in San Juan County (201, early adopters with short island drives) and the Chevrolet Bolt in Wahkiakum.

Map of Washington counties shaded by Tesla's share of their EVs, palest in San Juan, Jefferson and Clallam, darkest in Franklin, Snohomish and Grant. Map of Washington counties shaded by Tesla's share of their EVs, palest in San Juan, Jefferson and Clallam, darkest in Franklin, Snohomish and Grant.
Tesla's share of EVs by county, from 19.2% in San Juan to 55.5% in Franklin.

3. Location quotients

def lq(make):
    local = mk[make]
    return (local / (wa_ev.make == make).mean())[n[n >= 300].index].sort_values(ascending=False)


print("Rivian, most over-represented:", lq("RIVIAN").head(3).round(2).to_dict())
print("Chevrolet, most over-represented:", lq("CHEVROLET").head(3).round(2).to_dict())
Rivian, most over-represented: {'Kittitas': 1.93, 'Skagit': 1.84, 'Chelan': 1.66}
Chevrolet, most over-represented: {'Okanogan': 2.29, 'Jefferson': 2.14, 'Stevens': 2.13}

A location quotient compares a make's local share with its statewide share. Rivian is most over-represented in Kittitas (1.93 times its statewide share), Skagit and Chelan, counties with mountain recreation where an electric adventure truck fits. Chevrolet is over-represented in Okanogan, Jefferson and Stevens, rural counties where the cheaper Bolt sold well.

New model years and brand diversity

The data used on this page

The Washington State Department of Licensing's Electric Vehicle Population Data, saved on this site on 15 October 2026, and Census Bureau 2023 county boundaries.

from pathlib import Path

import geopandas as gpd
import numpy as np
import pandas as pd
import requests

Path("data").mkdir(exist_ok=True)
# Washington State Department of Licensing, via data.wa.gov: Electric Vehicle Population Data (f6w7-q2d2), one row per
# registered battery-electric or plug-in hybrid vehicle, and Electric Vehicle Population Size History By County (3d5d-sdqb),
# monthly counts since 2017. Both are replaced monthly, so they are read from copies saved on this site on 15 October 2026.
FILES = ["wa-ev-population-2026-10-15.zip", "wa-ev-population-history-2026-10-15.zip"]
for name in FILES:
    if not Path(f"data/{name}").exists():
        Path(f"data/{name}").write_bytes(requests.get(f"https://data.spatialworkflow.io/{name}", timeout=600).content)
NAMES = {"VIN (1-10)": "vin10", "County": "county", "City": "city", "State": "state", "Postal Code": "zip", "Model Year": "model_year",
         "Make": "make", "Model": "model", "Electric Vehicle Type": "ev_type", "Clean Alternative Fuel Vehicle (CAFV) Eligibility": "cafv",
         "Electric Range": "range_mi", "Legislative District": "district", "DOL Vehicle ID": "dol_id", "Vehicle Location": "location",
         "Electric Utility": "utility", "2020 GEOID": "tract"}
ev = pd.read_csv("data/wa-ev-population-2026-10-15.zip", dtype={"Postal Code": str, "2020 GEOID": str}).rename(columns=NAMES)
ev["kind"] = ev.ev_type.str.extract(r"\((BEV|PHEV)\)")[0]
hist = pd.read_csv("data/wa-ev-population-history-2026-10-15.zip")
hist["date"] = pd.to_datetime(hist.Date, format="%B %d %Y")
if not Path("data/cb_2023_us_county_20m.zip").exists():
    Path("data/cb_2023_us_county_20m.zip").write_bytes(requests.get("https://www2.census.gov/geo/tiger/GENZ2023/shp/cb_2023_us_county_20m.zip", timeout=300).content)
wa = gpd.read_file("data/cb_2023_us_county_20m.zip").query("STATEFP == '53'").to_crs(5070)
print(f"{len(ev):,} electric vehicles registered with Washington DOL; history: {hist.date.min():%b %Y} to {hist.date.max():%b %Y}")
300,142 electric vehicles registered with Washington DOL; history: Jan 2017 to Sep 2026

Example 1: newer model years

recent = wa_ev[wa_ev.model_year >= 2025]
print(f"model year 2025 and later: {len(recent):,}; Tesla share {(recent.make == 'TESLA').mean():.1%}")
print(recent.make.value_counts(normalize=True).head(6).round(3).to_dict())
model year 2025 and later: 75,960; Tesla share 40.6%
{'TESLA': 0.406, 'TOYOTA': 0.061, 'HYUNDAI': 0.061, 'KIA': 0.06, 'RIVIAN': 0.055, 'BMW': 0.046}

Among the 75,960 EVs of model year 2025 and later, Tesla's share is still 40.6%, but the rest is spread across more brands: Toyota, Hyundai and Kia at about 6% each, Rivian 5.5% and BMW 4.6%. The market behind Tesla is getting more crowded.

Paired horizontal bars of make shares for all registered EVs and for model year 2025 and later: Tesla about 41% in both, Chevrolet and Nissan lower for new models, Kia, Toyota, Hyundai and Rivian higher. Paired horizontal bars of make shares for all registered EVs and for model year 2025 and later: Tesla about 41% in both, Chevrolet and Nissan lower for new models, Kia, Toyota, Hyundai and Rivian higher.
Make shares for all EVs and the newest model years.

Example 2: brand diversity by county

big = n[n >= 300].index
hhi = (mk.loc[big] ** 2).sum(axis=1).sort_values()
print("most diverse (lowest concentration):", hhi.head(3).round(3).to_dict(), "| least:", hhi.tail(3).round(3).to_dict())
most diverse (lowest concentration): {'San Juan': 0.096, 'Jefferson': 0.102, 'Clallam': 0.112} | least: {'Snohomish': 0.24, 'Grant': 0.24, 'Franklin': 0.325}

A Herfindahl index (the sum of squared make shares) measures concentration. San Juan (0.096), Jefferson and Clallam have the most varied fleets, and Snohomish, Grant (both 0.24) and Franklin (0.325) the most concentrated. High concentration here almost always means Tesla.

What a registration ranking reflects

Registrations count the vehicles on the road today, including cars bought used and cars ten years old. A ranking therefore reflects the history of the market as much as current sales: the Leaf and Volt rank high because they were early and long-lived, and newer models rank lower than their current sales would suggest. Local differences combine income (Tesla and Rivian cost more), driving needs (trucks and plug-in hybrids in rural counties), dealer and service-centre locations, and early-adopter communities.

Ranking pitfalls

  • Small counties have shares from a handful of vehicles; set a minimum count before ranking.
  • Model names change (BOLT EV against BOLT EUV, trims in some years); decide which to merge.
  • Count DOL Vehicle ID, never distinct VIN prefixes.
  • PHEVs add brands that sell few BEVs; say whether a ranking includes them.

FAQ

The Tesla Model Y, with 66,379 registered in October 2026, ahead of the Model 3 (38,735) and the Nissan Leaf.

What share of Washington's EVs are Teslas?

40.7% of registered EVs, and 40.6% of model year 2025 and later.