
Over two series of articles in 2011 and 2024-2026, Seattle Transit Blog has shared detailed breakdowns of the ridership patterns for dozens of routes across King County Metro, Sound Transit, and Community Transit. Puget Sound is fortunate to have an extensive transit network but Seattle Transit Blog cannot cover every route. Instead, we have built a dashboard to share the ridership data for every route.
Initially, the Seattle Transit Ridership dashboard only includes data for King County Metro routes and Sound Transit Express routes operated by King County Metro. All routes have data from 2024. Data from 2025 will be added after the March 28 service change. Over the next few months, we will add data for routes from other Puget Sound transit agencies.
The dashboard is available below and at seattletransitridership.com. Use the dropdown menus to pick the agency, route, and time period for the data you would like to view. By default, the static plots will be displayed. We are also working on interactive plots, which you can see by checking the checkbox. The interactive plots are formatted better on larger displays.
In addition to adding support for more transit agencies, we plan on adding route maps and older data for some routes. Let us know if you have ideas for additional features, or if you find any issues with the dashboard.

Like the idea. However, the chart really needs the ability to resize it by dragging. The fixed-sized window is just not big enough to really see the chart without lots of either squinting or scrolling.
Note: I am viewing this in a desktop browser, with a big screen, so my suggestion probably wouldn’t work that well on a tiny phone screen.
This is version 1, so the user interface can be refined later. It just gets into how much volunteers are willing to put time into it.
To be clear, I am still very glad to see these charts. I’m also hopeful that the AI era will allow more of these types of UX improvements to take place without overburdening volunteers; there are already many AI’s out there which can do these sorts of software changes in a matter of minutes, which would have previously taken a human several days.
Based on my first observations, for the vertical lines that define the values on the graphs, I would like to see the values displayed at the top of the chart, too. The current version only displays the values at the bottom of the chart.
Nevertheless, this is a fantastic resource. Thanks to everyone who has contributed to the effort.
Thanks for the feedback! Adjustable chart sizes is a great idea. I’ve added it to the to do list.
Are you viewing it inline or at the full size page (https://seattletransitridership.com/)? I’m doing the latter and it resizes as I adjust the window size. If you click on the chart itself it generates a high-resolution png which you can toggle back and forth (full size, full resolution). This is on Firefox and a big monitor.
Ah, I was viewing it inline. That explains it.
This is great. Thanks for sharing it. For months, I’ve been planning to email Metro asking for some stop consolidation in my neighborhood. This makes it easy to get the ridership data to back up my request.
This is cool, I look forward to exploring it. I’m curious what the sources are – do the agencies publish this data as a lookup or a feed? Can you provide the internet address?
The data are from public records requests. The agencies do not publish this data.
OH! Ok. Good for you. But that means either that it’s static or new public records requests will need to be prepared each shakeup I guess. They should just make it all public and get it over with.
This is great! Any thoughts on if Community Transit data will be added at some point?
We have requested data but haven’t heard back from them. In the past the data was in a different format so it would need to be adjusted. That might take a while although Micheal has been quite fast with his programming — it mostly just depends on availability.
Are you able to request public records for light rail ridership? Those would be the most interesting data to see. Thank you for this.
For light rail ridership**
We covered the 1 Line last year. This data will be added to the dashboard within the next few months.
Also, Sound Transit has ridership per station by month on their dashboard: https://www.soundtransit.org/ride-with-us/system-performance-tracker/ridership. The chart Micheal referenced was generated using directional data (which is not on the dashboard).
Interestingly this dashboard proves all the P&R hating people on here wrong.
A lot of the routes I looked up clearly generate most of its ridership from the P&Rs alone, not from the local stops. 255 for example. Almost all the ridership is from S Kirkland P&R.
If you look closely at the data, I would not say that most of the ridership comes from the P&R.
For starters, the route carries an average of 3,092 weekday passengers, but the P&R only has capacity for 833 vehicles, according to Google. Normally, at P&R lots, cars enter in the morning, carrying one person, and leave in the evening, with very little carpooling or parking space turnover in the middle of the day. These numbers alone means that the P&R cannot be responsible for more than about 1/3 the route’s ridership.
And, even if you look at the stop-by-stop numbers, South Kirkland P&R may be the biggest stop on the eastside, but it doesn’t look bigger than all other stops put together, especially outside of rush hour. And not all of the ridership at the South Kirkland P&R bus stop can even be attributed to the P&R, anyway. There’s walk-up ridership to/from apartments and office buildings in the area, plus bus transfers. And, some riders are almost certainly dropped off there in private cars, who could have just as easily been dropped off at any nearby bus stop.
Anecdotally, South Kirkland P&R is a very big stop during rush hour, but gets very little use on evenings and weekends, which when most of my trips on the 255 are. At 9 PM, it is not uncommon for the bus to even go in and out of the P&R without picking up or dropping off a single passenger. (And, yes, there are people on the bus, they’re just getting off later).
As another frequent rider on the 255 (outbound early AM/inbound PM peak), the data show that the bus fills at Montlake (no free parking) and empties at South Kirkland P&R (833 free parking spaces). The graphs for those 2 timepoints are virtually a mirror image of each other. But most of those riders seem to be transferring to another bus or walking to their workplace. The idea that people are garaging their personal vehicles at South Kirkland overnight and then driving the final mile to work seems unlikely.
The next major ridership point on the route is the Kirkland Transit Center (no free parking), where there’s an equal amount of gain and spill. That balance between gain and spill is a positive indicator of a healthy transit node, especially when there is no free parking available at the node.
Still shows that transit centers and P&Rs generate the most ridership, even if not from people who park.
271 also. Mostly from Bellevue TC and Eastgate P&R, as well as any major stops like UW.
People don’t board at huge numbers from every 1/4 mile stop. Weekend ridership is practically dead on most of these routes. But apparently commuting is bad and nobody does it anymore, and everyone is using buses to “get around”
“Still shows that transit centers and P&Rs generate the most ridership, even if not from people who park.”
asdf2 said people are transferring between bus routes there. If the transfer point were moved away from the P&R. those riders would move with it. And the riders would have a more pleasant wait, rather than being in the middle of a parking lot with cars all around.
Still shows that transit centers and P&Rs generate the most ridership, even if not from people who park.
Not for the 255. Again, look at the numbers. I listed them in the comment below. The stops with parking lots generated less than half the ridership.
271 also. Mostly from Bellevue TC and Eastgate P&R, as well as any major stops like UW.
Again, you are wrong. Bellevue TC is not a park and ride. Maybe you are thinking of Issaquah Transit Center. Fair enough. Those two park and rides account for less than 200 riders. The stops on NE 8th (in Downtown Bellevue) carry a lot more riders, let alone the other combination of stops. Only a tiny portion of the ridership of the 271 comes from park and ride lots. Put it another way — if it was getting most of its ridership from park and ride lots then it probably wouldn’t be carrying that many riders.
This is true in general. There are areas (like Issaquah) where much if not most of the ridership comes from stops near park and rides. It is just that they don’t generate much ridership.
Let’s not overlook the fact that a “Transit Center” and a “Park & Ride” can be very different entities. South Kirkland P&R has very little walkable retail, but it does offer some office and residential space within its 10-minute walkshed along with lots of automobile traffic. The Kirkland Transit Center has no free parking, but it does provide plenty of retail, residential and office space within its 10-minute walkshed. Adding an 800-space parking garage next to the Kirkland Transit Center might boost ridership on the 255, but it would be disastrous to downtown Kirkland.
I’m not convinced this is the case.
• e.g. if you had the rest of the stops add up to 300 passengers, but had 50 get on and off at South Kirkland, it would still be the busiest stop but not make a majority of the riders.
• in all cases, that stop doesn’t serve as a one way stop. E.g.: on morning inbound trips, you don’t see a bunch of people only get on, as if they’ve driven there. Instead, you see petty much the same number of people get off as get on.
I doubt very much people in the morning am commute are going from Totem Lake to South Kirkland P&R to get in their cars and drive the rest of the way after parking there overnight.
I think what it shows is a lot of people are transferring between the 255 and the other buses at SK P&R.
Every time I visit the S Kirkland P&R, a majority of the people who board are students or Seattle workers who transfer to Link. They head to the garage, or get picked up by a car. Very few people stay for transferring to another bus.
Every time I visit the S Kirkland P&R, a majority of the people who board are students or Seattle workers who transfer to Link. They head to the garage, or get picked up by a car. Very few people stay for transferring to another bus.
It doesn’t matter. Your basic assertion was incorrect. South Kirkland Park & Ride does not account for most of the ridership. It is like arguing that Lincoln died because he had a cold. Maybe he did, maybe he didn’t — that isn’t why he died.
“Every time I visit the S Kirkland P&R, a majority of the people who board are students or Seattle workers who transfer to Link”
That makes sense for those getting on at SK P&R on westbound trips. But what about the people that show up in the data from Totem Lake that get off at SK P&R westbound trips in the mornings? The data you point to that shows it as a busy stop show just as many getting off there as getting on,
Nobody commutes between two parking lots, but that’s what you’re saying the half of the riders from north of SK P&R are doing.
255 for example. Almost all the ridership is from S Kirkland P&R.
That is simply not true. The park and ride is the biggest stop in Kirkland but it accounts for about a quarter of the total riders. There are other stops that have parking but from what I can tell they still account for less than half the ridership. Here are the ones that I think contain parking lots (and their ridership headed to the UW):
Totem Lake Transit Center — 87
NE 124th & 100th — 45
South Kirkland Park and Ride — 322
Evergreen Point Freeway Station — 40
That is still less than half the ridership. Some of these places are not “pure” park and ride lots. They get their ridership from transfers or other uses as well as parking. In general the 255 is a typical bus in that it gets its ridership from various places. Ridership can be summarized in sections:
Totem Lake (including the freeway stop) — 185
Juanita to the Transit Center — 308
Transit Center to South Kirkland Park and Ride — 307
South Kirkland Park and Ride — 322
Freeway Stations and stops in Montlake/UW — 153
The 255 is also oriented towards commuters. Show up at 7:00 at a weekday and the bus will be running every ten minutes if not better. On the weekends it isn’t nearly as frequent. This tends to favor park and ride users (instead of people just trying to get around).
Park and rides are useful and generally work fairly well, it’s mostly a question of priorities. The three parking garages in Kent, Auburn, and Sumner cost a total of $360 million. Wouldn’t that be better spent on additional Sounder service? If those funds were fully transferrable (they’re obviously not), each city could build a full RapidRide line (which cost apx $100-150 million)
https://www.theurbanist.org/2023/02/09/sounder-needs-more-service-not-more-parking-garages/
Sounder and Link garages are necessary as nobody lives near those stations. And most of you are for defunding local bus routes in S King County anyways like the 111.
Sounder and Link garages are necessary as nobody lives near those stations.
The point jd is making is that maybe that not all of these garages are worth it when each one is so expensive. That few people live in walking distance these stations is huge failure in planning and clear evidence of how deeply backwards most of the Link’s suburban expansions are.
[M]ost of you are for defunding local bus routes in S King County anyways like the 111.
What? I think most people here would love to see S King County fund more bus service.
Anyway, the 111 is not exactly a “local route”―it’s a weird hybrid of a downtown express bus and a suburban coverage route (of which that segment is local, I guess.) Renton Highlands doesn’t seem easy to serve given the density, but deleting the 111 would certainly be a step backwards―there is no other coverage of that area.
Should other parts of the county help fund these routes even more? Probably not, since that money can often be spent locally on more productive routes in places where there is more density, and where the ridership is so much higher in absolute terms that moving service hours to suburban routes would ultimately leave more people cost-burdened. The point is that all of the county should fund transit as much as Seattle does, not that Seattle should fund all of the county more.
I don’t think it’s wise to conflate Sounder garages with Link garages. The transit service offered is fundamentally different.
At most, Sounder garages are for those meeting only 10 trains in the mornings. They need to fill by 11 am to be useful. There is some afternoon service but not practical enough to offer a sane-day trip. A space is effectively used once a day for transit. Replacing a garage with a feeder bus run seems relatively inexpensive. Of course, ST committed to new garages in South King.
Link garages are for something like meeting 100 trains each day, until early morning hours. Spaces there can be much more managed for different times a day and a space can be used more than once a weekday for transit. Offering replacement feeder bus service for a garage is much more expensive too.
“The point is that all of the county should fund transit as much as Seattle does, not that Seattle should fund all of the county more.”
Seattle is mostly certainly not funding transit outside of Seattle. The rest of us are funding your transit. The ST tax area and car tabs are absurd. We should at least get something out of it.
ST taxes are grouped by subarea, in order to make sure such things as Issaquah Link waste money in the area where they were requested.
You’re paying $1,600 per hour for Sounder, among other things.
https://www.transit.dot.gov/sites/fta.dot.gov/files/transit_agency_profile_doc/2024/00040.pdf
Seattle is mostly certainly not funding transit outside of Seattle. The rest of us are funding your transit.
Wrong and wrong.
For Sound Transit service, the subarea equity rules should mean nobody is funding anyone else. If you really want to be pedantic and include the “systemwide” improvements that everyone pays for, remember that these are usually funded proportional to local tax revenue (see page 70 of this report), and North King contributes more than any other subarea, so we pay disproportionately for benefits that are supposed to benefit everyone equally, like ORCA upgrades and LRV fleet expansions.
For King County Metro service, based on adding the platform hour columns in Appendix G of the 2025 Metro System Evaluation, Seattle routes have 5132 platform hours allocated and the rest of the county has 8820 platform hours allocated, so including Seattle Transit Measure-funded hours (i.e., this is an over-estimate), Seattle received 36.6% of the platform hours in 2024. On the other hand, Seattle contributes 39% (see page 7) of the county sales tax revenue on average. Clearly, Seattle is subsidizing the rest of the county’s Metro service, not the other way around. Maybe it has something to do with urban routes being more efficient to operate or something like that…
Oops, I forgot to close my bold tag.
@June — I can fix it. Where do you want the bold to end?
Park & ride lots should be small and leased (typically from churches) or an empty lot that would have no other purpose (like space under a freeway). When agencies big large ones, it usually means they are spending money in the wrong place. Rather than building an effective network, they are focused on a selective few riders (those willing to park and ride to a particular destination). At best you could say the emphasis on park and rides is temporary — eventually it will represent a tiny portion of the ridership. But that is why leasing lots is the way to go.
For example, consider the old 41. It used to run from Lake City to Northgate and then express to downtown. Thus it was a classic commuter bus (although it ran frequently during the day). There were plenty of people that used to park and ride the bus. So much so that they had 4-hour parking signs in the various neighborhoods (and still do). They also had parking lots to serve transit riders (and still do). One of those was here, in what is now a public park. If you go back far enough, you can see when it was a parking lot. Obviously it is much better as a park. It makes the neighborhood more attractive and leads to more development around it. This in turn ultimately leads to more transit ridership. Here is another lot that served the same bus route and was leased from a church. (You can see a little Metro “Park and Ride” sign in the background). A more recent photo no longer has the sign nor does this show up in the list of park and ride lots. It would still provide value as a park and ride (there is still a bit of a coverage hole to the northeast of there) but it just isn’t worth the money.
Thus the basic rule of thumb when it comes to park and ride lots is lease, don’t buy. And don’t build multi-layer parking lots unless you are confident it will be the terminus (of a rail line) for decades.
Seattle is mostly certainly not funding transit outside of Seattle. The rest of us are funding your transit.
That is absurd. Sound Transit has subarea equity, which is designed to prevent that. Metro is a bit more complicated but I see no evidence to support your assertion. Every agency balances ridership and coverage. Both are easier to provide in the city. Most of the high ridership routes are in Seattle itself. Covering the city is also easier and cheaper. There are areas in Seattle that are not dense but they are close to areas that are. Then there is peak service. This is often geared towards benefiting those in the suburbs. We have a lot less of it but it hasn’t gone away.
It is also worth considering value for each area. Folks from the suburbs are free to ride the city buses and vice versa. But people from the suburbs are way more likely to use city buses than the other way around. Link extensions are similar. Lynnwood Link without service in Seattle is practically useless. Only a handful use it between Shoreline, Mountlake Terrace and Lynnwood. But Northgate Link actually benefited plenty of riders from the northern suburbs. They would take the bus (or drive) to Northgate and then quickly get to various places in Seattle. In contrast, even with Lynnwood Link extension there aren’t a lot of people in Seattle trying to get to those suburbs.
Transit is just one of those things that cities do much better than suburbs. The destinations are closer together and more dense. Transit is a better value — you can get a lot more for your money. In contrast big, the suburbs make sense for airports (since they require a lot of land) or golf courses.
The ST North King subarea includes Seattle, Shoreline, and Lake Forest Park. Thank you Shoreline and LFP for funding more service in Seattle than in your areas. But not many people live in Shoreline or LFP (because of their lower density), so the vast majority of North King taxpayers are Seattle residents.
Metro started by inheriting Seattle Transit and some private suburban agencies and doubtless bring in county areas that didn’t have transit. At the time it was agreed that Seattle would keep its existing funding/subsidy level (basically, half-hourly transit), and the suburbs would get a lower level (basically, hourly service and peak expresses in fewer neighborhoods).
I was only an elementary school kid then so I didn’t know it was happening. So I don’t know if Metro’s subarea equity started then or later. But Metro’s policy was different than ST’s: there was something like a 40/40/20 rule saying Seattle would get 20% of any expansion hours, and a converse rule that Seattle would lose a higher percent of any contraction hours. That was to gradually equalize the service level between the suburbs and Seattle. In revenue-neutral restructures, Metro aimed to keep the hours in the subarea.
In 2012 the recession hit Metro. It had just adopted a set of performance metrics to identify which corridors were underserved and which were overserved, to guide future network adjustments. The county council agreed to a grand bargain to supplement Metro’s funding in the recession: a 2-year tax surcharge, ending the Ride Free Area downtown, and ditching the 40/40/20 rule and instead telling Metro to adhere its new performance metrics. Again, revenue-neutral restructures aimed to keep the subarea’s hours in the subarea.
In the 2020 pandemic, equity became a larger political issue, so the county started talking about violating the subarea-preservation policy and instead taking hours from a Link restructure (the 41 in Northgate) to increase frequency in equity-priority areas (southeast Seattle and south King County). It’s unclear whether that happened or whether Metro is doing it now with other routes.
The Northgate Link restructure was going to replace the 41 with a new route 61 and routes on both the 5th Ave NE and LCW/Northgate Way paths between Lake City and Northgate. But then the 61 and LCW route was removed from the proposal. Some said that was Metro shifting the hours to southeast Seattle/south King County. But I think it was just the driver shortage: Metro couldn’t operate as many hours as it had intended for the retructure. Later a LCW/Northgate Way route was restored by creating the 20 and attaching it to the Latona corridor. And after that in another restructure, the 61 finally appeared.
Metro’s equity map has priority areas not only in southeast Seattle, eastern West Seattle and South Park, and south King County, but also in the Eastside (156th Crossroads corridor, and in Issaquah and Snoqualmie), and in far north Seattle (in Lake City, Broadview, and somewhere between Aurora and I-5). So north Seattle and Lake City (!) should be getting some equity priority because of that. But politicians don’t seem to always remember that far north Seattle has equity areas.
Just because a rider boards at a park and ride stop doesn’t mean that they’ve parked a car.
Riders get dropped off. Riders bicycle to secure bicycle parking at a stop. Riders may walk nearby. Riders transfer from other buses that may also serve a stop as many lots double as transfer locations.
Conversely, riders may do “hide and ride” and park cars away from park and ride lots. They may find side streets or have permission from a private property owner.
The best way to get at proportion of riders driving to a stop is to ask them. Metro should be surveying riders on every route about how they get to and from stops.
The “major” transit system changes (except Stride) will be completed by fall 2026. 2027 seems like a good time to do a rider survey about access as the findings can help devise strategies and issues that exist with the new system reality.
Yes. The only major route that I can think of that could possibly have most of the ridership at stops next to park and ride lots is the A Line. I am too lazy to look up all the park and ride lots (it is a surprisingly tedious process). But it does seem possible. That is in part due to the fact that Tukwila Station has parking. But consider that for a second. Why would someone drive to Tukwila and then take the A Line? To get to the airport? I guess, but why not take Link? None of the other locations on the A Line have parking issues so it really doesn’t make sense to park there. I could see it for Federal Way (before Link served the station) but it also seems plausible that most of the riders there are transferring. We should know more when we get recent data.
That is what is silly with the assertion. Not only was it factually incorrect (the 255 and 271 does not get most of their ridership from stops close to park and ride lots) but in many cases it is just a coincidence. Roosevelt Station gets over 4,000 riders a day. Do you think that is because of the park and ride lot? It only holds about 400 spaces (or about 10% of the ridership). So it likely contributes some, but not a lot.
Not sure it counts as a “major route” or not, but
The 574 probably has most riders at park and ride stops because that’s where it stops. Even if all the riders were only transferring at Federal Way and Tacoma Dome with 0 actual park and ride users, the data would still show all stops of any significance are people riding between park and ride lots.
There is probably some seasonal variation, so it would be better to compare fall-to-fall or spring-to-spring and not fall-to-spring.
This is great, thanks Michael!
is the code on github? I could contribute
This is a good start, and hopefully they’ll get all KCM and ST routes in there someday. I like that they’re tracking the ridership by time period. The route-level information is important to see, as the agencies prefer to report total ridership, but not to drill down, as then people would see trips that routinely run empty or nearly so and would complain. It’s a PR game. Simple example: 1000 riders a day sounds great, but if 500 of those are on 20 of 80 trips, or 25 riders for those trips, that’s not so great for the other 60 trips, which *average* 8.3 riders per trip. Another aspect is the fares collected per trip, which was more possible before agencies eliminated some of the ways to arrive at educated guesses, e.g. “dummy” fareboxes that don’t register how much money is put into it. This was once a great way to detect fare evasion and fare underpayment, but that’s not of interest to these agencies, only total fares collected, which can vary from 4-10% of allocated costs for local routes to 30% for commuter routes, the latter if they don’t involve transfers to another transit agency, as then the fare is shared, to 70%+ for vanpool. Lump them all together, and the number looks higher. BRT routes don’t have route-specific costs assigned to them, e.g., ticket vending machine purchase and servicing, armored car service, assembling bank deposits, etc. A valid question given that their farebox recovery is quite low is whether the cost to collect is worth having a fare for these services.
“Interesting insights about transit ridership and how transportation data can help improve service planning. Digital tools and tracking systems clearly play a big role in modern mobility solutions.
I also came across a related resource about Shuttle Service Booking System solutions here:
https://mobisoftinfotech.com/products/shuttle-service-app-development
It shows how technology can improve transportation efficiency and passenger experience.”
On these days, you can probably just vibe coding some html format dashboard that is as interactive as what Power BI or Tableau can offer given you have pretty neat real data and they are all in same structure across different routes.