u/ClassicTraffic

I made a website to track CTA service quality
▲ 8 r/cta

I made a website to track CTA service quality

Hi everyone! I wanted to share a personal project of mine around CTA service quality that I've been working on for a few months. I figured people here might be interested: https://chicagotransitalerts.app

The short version: it's a public archive of CTA service disruptions, combining both major service alerts the CTA officially issues and disruptions an automated system I built detects from live train and bus position data. You can browse the history, filter and search it, and dig into how individual train lines, bus routes, and stations are performing.

The idea came after some bad red line trips a few months ago, where my train would sit for 10–15 minutes and make me late. During one of these, the holding got so bad that trains started running express to make up time, which inconvenienced me even more because I had to get off and wait for one that wouldn't skip my stop. What frustrated me was that the CTA never issued an alert for any of it, and even when they do issue alerts, there's no way to look back at past ones. So I wanted to build something that (a) catches the disruptions the CTA doesn't acknowledge, and (b) keeps a permanent, searchable record of the ones they do.

I started by building a system that ingests live train and bus location data from the CTA's public APIs, plus two Bluesky bots that post when the system detects bunching, ghost vehicles, abnormally long headways, trains held in place, or route stretches with no service. Then I built the website on top of all that to track and visualize it.

A few highlights of what's on the site:

  • Official CTA alerts and automatically detected incidents, side-by-side. When an official alert and an automated detection describe the same event, they get merged into one entry instead of double-counted
  • Per-train line, per-bus route, and per-station pages with reliability stats and per-station heatmaps (trains get a stylized line map)
  • Timelines and heatmaps so you can see when incidents occur
  • Compare up to 3 lines or routes side-by-side
  • calendar view and a stats page with worst-day / worst-station leaderboards
  • Every captured incident gets its own permalink with surrounding context
  • Filter and full-text search across the whole incident history. Every view is a shareable URL
  • An Atom feed for RSS readers, plus the raw data as JSON and CSV if you want to do your own analysis. More info here
  • Works on mobile
  • All open source

One caveat: the website only has data for the last 2ish weeks so far, since that's when I started collecting it and there's no easy way to backfill historical data from the CTA. The dataset will grow over time.

In the interest of transparency in the age of AI: I'm a professional software developer and I used AI to help me build parts of this, but this is by no means a vibe-coded project. I spent months on it and used AI mostly to speed up parts of the detection logic and help me debug false positives. Anytime I used it I combed through the changes and stayed in the driver's seat.

Happy to answer questions and take feature requests! Let me know if you see any bugs or anything weird.

u/ClassicTraffic — 4 days ago