A faster, smoother launch and more honest offline times, plus a clearer map and tidier widgets: the app opens quicker and drops you straight into Favorites instead of hanging, hours-old arrival times give way to the regular schedule when you can’t refresh, part-time lines no longer flash a red “No Service” during hours they aren’t scheduled to run, you can shrink a station’s card to open up the map, the map’s stops and station names read more clearly and stay sharp in High Contrast, neighboring stations no longer look merged, entrances with ramps read as step-free, widgets read more clearly and keep your next trains pinned to the top, and the up/down direction switch flips cleanly instead of flashing.
Improved
- Faster, smoother launch. The app opens quicker and the loading animation got a polish pass—it now fills in one smooth motion instead of catching partway, and when you reopen after it’s been closed a while it drops you straight to your Favorites instead of hanging on the loading screen.
- Real schedule when your times go stale. If your saved arrival times are hours old and you’re on weak signal, the app now shows the regular schedule—clearly marked, with a heads-up at the top—instead of leaving frozen, out-of-date countdowns on screen.
- Less clutter at big stations. When you tap a station in a large complex and zoom in, the names and badges around it now ease back so the entrance markers stand out and stay easy to read.
- Clearer messages on your widgets. When a home-screen widget has nothing to show—no trains running, no favorites added yet, or all your lines running clean—its message is now shorter, reads in full instead of getting cut off on the smallest widget, and is easier to read at a glance.
- Tuck a station’s card away. Drag a station’s card down to a slim bar and the map opens up behind it—pan and zoom to scout its entrances and the blocks around it while the station stays selected. Drag it back up for the full arrivals and details.
- A cleaner map. The map’s stop markers and express-station marks got a refresh, and station names now stay crisp and easy to read over any part of the map. In dark mode, the lines and shaded areas that show free transfers between nearby stations switch to a brighter purple so they’re easier to pick out.
- A sharper map in High Contrast. With the system’s Increase Contrast setting turned on, the map’s stops, station names, and line badges now carry bolder outlines so they separate cleanly from everything behind them.
Fixed
- No false “No Service” on part-time lines. Lines that only run certain hours—like the Z at rush hour, or trains that don’t run overnight—were showing a red “No Service” alert, and could even send a notification, during the hours they’re simply not scheduled to run. Those normal schedule gaps no longer show as disruptions or notify you, so a quiet line reads as quiet—not broken.
- Neighboring stations no longer look merged. On the map, the shaded entrance areas for two separate stations sitting close together—like Fulton St and the World Trade Center stations next door—could overlap and read as one big station. Each now keeps to its own footprint.
- Ramps marked as step-free. Entrances with ramps are now marked as step-free access on the map alongside elevators, instead of showing the stairs marker.
- Widget arrivals stay pinned to the top. When a home-screen widget hadn’t refreshed in a while and was down to its last upcoming train, that train could drift toward the middle of the widget. Arrivals now stay anchored at the top, right under the station name, however many are showing.
- Calmer direction switch. The up/down button that flips a station between its two directions—like uptown and downtown—used to flash for a moment when you tapped it. Now it switches cleanly and instantly, anywhere it appears.
A steadier Alerts tab and a cleaner map: the Favorites row now always shows what’s planned on the lines you follow (or quietly notes when nothing is), long-running planned closures sit under Long-Term instead of crowding Disruptions, subway stops sit in their correct spots at every zoom level, and station entrances got a cleaner look that groups up at busy complexes.
Improved
- Your Favorites row, always there. On the Alerts tab, the Favorites row under Planned Work no longer appears and disappears. When there’s upcoming work on the lines you follow it shows how many; when there isn’t, it quietly says so—so there’s always one place to look.
- Cleaner station entrances on the map. Station entrances now show as tidy chips that match the stop dots, and at busy complexes they group into a single marker with a count instead of burying the map—zoom in and they fan out to the individual doors.
Fixed
- Long-term closures, off the Disruptions list. A stop closed for weeks of planned work—like a 7 train station shut for improvements—could show up under Disruptions as if it were a live problem. Those longer planned closures now sit under Long-Term instead, keeping Disruptions focused on what’s happening right now.
- Map stops back where they belong. At some zoom levels a handful of stations—like Bergen St on the 2/3—were drawn stacked on top of a different nearby stop, and their line badges could flash the wrong lines for a moment. Each station now sits at its own entrances, cleanly, at every zoom level—and at the big multi-line complexes, dots use hand-tuned positions so a few that sat a block off, like Broadway Junction, land right where you’d expect.
A batch of accuracy fixes: your saved stops show their specific direction the moment Favorites load, Right Now reflects an overnight closure for its full window, a cleared alert disappears right away—across the stop, the Alerts tab, Home, and the widget—and station notices stay on the Alerts tab instead of tagging your Favorites—plus a cleaner header on the station and map screens, clearer stop dots on the map, and no false “no service” flash while a station is still loading.
Improved
- Cleaner station headers. The station page and the map’s station sheet have a tidier header: saving a stop and other quick actions now live in the ••• menu, and the line filters sit right below the name so they’re easy to reach.
- Clearer stops on the map. Express stops now read as a distinct ringed dot, the stop you’ve tapped stands out in purple, and the dots, line badges, and station names sit a little more crisply above the map.
Fixed
- Saved-stop directions, right away. The direction labels on your saved stops used to flash a plain “Uptown”/“Downtown” when you first opened the app, and sometimes forgot the detailed version on the next open. They now show the station-specific direction the moment your Favorites load, and remember it from one visit to the next.
- Overnight closures read as disrupted all night. Near the start and end of a late-night closure, the Right Now view could briefly show a suspended line as “Good Service.” It now reflects the closure for its full window—and reads the schedule in New York time, so it’s right even when your phone’s clock is set to another zone.
- Cleared alerts disappear right away. When the last alert affecting a stop was resolved, the stop could keep showing it until you left the screen or relaunched. A resolved alert now clears from the stop, the Alerts tab, and Home as soon as it’s gone.
- The Alerts widget keeps up on refresh. Tapping the Alerts widget’s refresh button could leave an old delay badged after it had already cleared. The widget now drops stale and expired alerts the same way the app does, so a refresh shows the current state.
- Notices stay on the Alerts tab. Station and boarding notices could show up as a grey “Notices” tag on your Favorites screen. They now live only in the Alerts tab’s Notices section, so the tags on Favorites stay focused on disruptions and delays.
- Back from directions returns to the station. Getting directions to a station from the map and then tapping back used to drop you on a different screen. It now brings you right back to that station’s times.
- No false “no service” on a stale open. Opening a station after the app had been closed a while could blink “No service at this stop” for a moment before the times loaded. It now shows the loading placeholder until a refresh actually confirms the times—so a brief gap never reads as a dead station.
Planned work that spans several nights or weekends now stays visible for every window it covers, and quietly-rescheduled work shows its new dates.
Fixed
- Multi-night work stays put. Planned work that runs across several nights or weekends used to disappear from the Alerts tab once its first window passed—even while a later window was still live. Every window counts now: the alert stays visible, timed to whichever window is happening or coming up next.
- Rescheduled work updates. When the MTA quietly reschedules planned work without rewording the alert, the new dates now flow through instead of the old schedule sticking around.
The app now understands the schedule the way you do—trains that don't run at your station right now stop being suggested, dim on the map, and explain themselves—and map search digs a lot deeper.
Added
- Load more results. A new button at the bottom of place suggestions pulls in a fuller set of matches—and when suggestions come up empty, the deeper search runs automatically. Tricky searches like a business name plus a street actually find the spot.
- “Routes not scheduled.” When a line you'd normally take isn't running at your travel time, route results tell you—a note lists the lines the schedule ruled out, alongside the existing note for disruptions.
Improved
- Time-aware trip suggestions. Trips factor in the time of day—you won't be routed onto a train that doesn't serve your station then. The D, for example, runs express past 4th Av–9th St during the day and only stops there late at night, so it's no longer suggested midday.
- Line markers that know the schedule. A station's line markers lead with the trains that run there all day; lines that only stop part of the time appear dimmed while they're not running—and light back up during the hours they actually serve the station.
- Not Running vs. Not Scheduled. Station pages split missing lines into Not Running (a disruption is keeping a scheduled train away) and Not Scheduled (it simply doesn't run here right now—with a note for when it does, like “Runs late nights”).
- Express stations, marked right. Map dots follow the subway map convention you already know: an open circle marks an express station, a solid dot marks a local stop—so when your train goes express, a glance shows exactly where it stops.
- Calmer entrance markers. Selecting a big station no longer buries the map in entrance markers—large complexes reveal their entrances as you zoom in, while smaller stations still show theirs right away.
- Station search. “Court Square”, “union square”, “atlantic barclays”, “west 4th”—spelled-out names, different word orders, and street-style abbreviations all find the right station now.
A big polish day: Tunnel Rat's new icon and mascot land everywhere, the whole app scales with your text size, and answers about how everything works are built right in.
Added
- A searchable FAQ. Settings → Support → FAQ has plain-language answers to the most common questions—arrival times, favorites, alerts, accessibility, privacy, and more—grouped by topic, with a search box to jump straight to what you need.
Improved
- A fresh new look. Tunnel Rat has a brand-new app icon and mascot—you'll spot the new rat on your home screen, on the launch and loading screens, and all around the app.
- Larger Text support. The whole app now scales with your iOS text-size setting, from arrival times to line badges, so it stays readable at any size.
- Assistive tech support. Better VoiceOver, Reduce Motion, and Reduce Transparency support, plus bigger tap targets on buttons—the app is more usable however you get around it.
- A clearer About page. Everything's sorted into Developer, Data, and Licenses sections—full credit for the MTA, New York State, and GTFS data behind Tunnel Rat, the open-source libraries it's built on, and a note on how AI rewrites service alerts into short summaries (only the MTA's original alert text is ever sent).
Home-screen widgets got a thorough tune-up, and first-time setup feels warmer.
Added
- A widgets guide. Settings now walks you through adding a Tunnel Rat widget to your home screen—and editing one you've already placed to change its stop, direction, or layout.
- A Layout section in Settings. Choose how arrival cards look—Classic, Robust, or Compact—and whether to group similar lines, with a live preview that updates as you tap.
- Share Tunnel Rat. The Share action in the top-right ⋯ menu is live—tap it to send anyone a link from Messages, Mail, or wherever you like.
Improved
- A warmer welcome. First-time setup opens with a brief welcome screen, and every setup step got a cleaner, refreshed look.
- The Alerts widget fills its space. When only a few of your favorite lines have alerts, line chips size up to fill the widget—and scale back down as more lines are affected, so a busy widget stays readable.
- Clearer widget names. The arrivals widget now appears as “Arrivals” in the widget gallery (it was “Favorites”), and both widgets have clearer descriptions.
- Widget wording. Tidied up what widgets say while loading, when you haven't picked any favorites yet, or when there's no service to display.
Fixed
- Widgets stick to your lines. Arrivals widgets only show the lines you've selected for a stop—hidden lines no longer slip back in after the widget sits idle or you tap refresh.
Trip planning gets more honest about the future—route options reflect the time you're actually traveling, and estimates match how trains actually run.
Improved
- Alerts that match your travel time. Set a future time with “Arrive by” or “Leave at” and your route options flag planned work scheduled for that time—not whatever's happening right now. Live issues that'll be long resolved by then no longer clutter the results.
- Truer trip times. Estimates now factor in how trains actually run—from the MTA's measured running times by line and time of day—instead of the published schedule alone. Busier lines at rush hour read a touch longer, matching reality.
Fixed
- Place search finds the Met. Places whose names contain transit-sounding words—like the Metropolitan Museum of Art—were being mistaken for subway stops and hidden. They show up as expected now.
Fixes and tidy-ups across widgets, line pages, and the moments before you've added your first favorite.
Improved
- Line page descriptions. Each line's description is now tidy and collapsible—tap to expand the full write-up of where the line goes and what it's like to ride—and a new “Learn More” link opens the line's Wikipedia article.
- Planned work counts. The grey “Next 7 days” tag on line and stop pages is now labeled “Planned Work” and shows how many items are coming up—one weekend change or several, at a glance.
Fixed
- Widget empty states. If you haven't added any favorites yet, your widgets now prompt you to add one—instead of showing a state that assumes you already have some.
- Stuck widgets. Removing a favorite stop that a widget was tracking now shows a clear “Stop removed” message—touch and hold to pick another—instead of getting stuck on “Loading…”.
- A tidier empty Favorites screen. Before you've added any favorites, the Favorites tab no longer shows a “No Alerts” tag with nothing to report—just a clean prompt to add your first stop.
The biggest update yet: a new Alerts widget, clearer alerts everywhere, schedule fallback when live data drops out, hand-written line guides, and a pile of map and trip polish.
Added
- Alerts widget. A new widget (Small or Medium) shows at a glance which of your favorite lines have service changes or delays—a red “change” row and a yellow “delay” row with the affected line chips. When everything's running normally it simply says “All favorites look good.” Tap the refresh button for the latest, or tap the widget to jump to the Alerts tab.
- A “Notices” section in Alerts. Station and boarding notices—like a temporary platform change or an entrance closure—group into their own quiet grey card instead of mixing in with disruptions and delays. Added or extra service shows here too, so good news isn't flagged like a problem.
- Line guides. Each line's detail page opens with a short, hand-written description—where it runs, who rides it, and what it's actually like—written from a New Yorker's point of view, not the MTA's.
- Schedule fallback. When the MTA's live arrival feed goes down—which can happen even with a strong connection—the app falls back to the regular schedule (marked with “~”) instead of showing “no trains.” A “Live Times Unavailable · Showing Schedule” banner makes it clear when that's happening.
- Haptic feedback. A subtle tap when you favorite a stop, pull to refresh, switch tabs, flip a direction, open an alert, or start a trip—small confirmations that make the app feel more responsive.
Improved
- Alert voices, labeled. Alert cards label our summary “Updated…” and the MTA's original wording “Published…” (tap a card to flip to it), so it's clear which voice you're reading.
- Not-running lines. Lines that aren't running show a badge for why, and you can tap any not-running line to open its line page or view its alerts—just like a normal arrival row.
- Direction labels. Headers across the app read as a plain place—“Manhattan,” “Court Sq,” “Brooklyn & Queens”—instead of the wordier “To”/“Into” phrasing.
- Borough grouping on line pages. Stops group into one clean section per borough in the correct order—the 4 train reads Bronx, then Manhattan, then Brooklyn. Some lines previously split a borough in two, making the line look discontinuous.
- Instant arrivals on reopen. Reopening the app shows your last-known arrival times right away—dimmed until they refresh—instead of briefly flashing an empty screen.
- Faster weak-signal detection. When signal drops in a tunnel, the “Weak Signal” banner appears within seconds instead of leaving you on a long spinner, so it's always clear when times may be out of date.
- Clearer map at big stations. Station names no longer stack up illegibly at large complexes—when labels would overlap, the Map shows just the busiest station's name, and every stop stays tappable.
- Location off? Easy fix. If location is turned off, the Map's location button shows it and gives you a one-tap shortcut to turn it back on in Settings.
- Snappier nearby stops. The “nearby stop” banner on Favorites appears as soon as you resurface from a tunnel, and nearby stops on the Map stay put while you pan or zoom instead of blinking away.
- Smoother trip directions. The first walking step stays anchored to where you began instead of drifting to follow you; entrance markers fade in as you zoom toward street level; and previewing a route through a station with direction-specific entrances highlights the correct one for your way.
- Settings additions. A way to rate the app, a list of the open-source software Tunnel Rat is built on, and a short note on how alert summaries are written.
Fixed
- Alert badges in Compact. Badges now appear in the Compact layout too—before, a line with an active change or delay showed no badge there, so whether you saw it depended on your layout choice.
- Quieter digests. The weekend and work-week digests stay hidden when there's no upcoming planned work on the lines you follow, instead of showing a banner that opened to an empty page.
- G and M direction labels. Confusing labels that could read the wrong destination at some stops now read correctly.
Your trip is easier to follow on the map, the planner can surface a fourth route, and the Robust widgets line up neatly.
Added
- Route stops on the map. During a trip, the map shows every stop along your route as a dot, so you can see what's between you and where you get off. Stop names appear as you zoom in.
Improved
- Step-tap zoom. Tapping a step that opens a station zooms the map straight to that stop—and back to you when you close it.
- Up to four route options. The planner can show a fourth genuinely-different route—but only when a meaningfully distinct one actually exists.
- Truer station markers. Each station's dot sits at its street entrances instead of drifting toward the platform's center—so the marker lines up with where you'd actually walk in, and tapping a station centers there too.
- Active-trip polish. Cleaner blurred header on the active-trip screen, and the route step badges on the map read consistently in Dark Mode.
- Steadier Robust widgets. Minute chips are a consistent width, so the time columns stay lined up instead of shifting as countdowns change.
Fixed
- Stuck stop card. A stop card could get stuck over the Favorites tab after switching away from the app and back. Not anymore.
- Small Robust destinations. The Small Robust widget shows each line's destination again—trimmed to fit when space is tight.
- Stray “MIN” label. A lone “MIN” could float by itself in the Large Robust widget when a line had no upcoming trains.
Step-by-step directions tell it straighter, “not running” finally explains itself, and alerts wear color-coded tags.
Added
- Color-coded alert tags. Alerts carry a tag so you can read severity at a glance—red for major disruptions, amber for delays, grey for minor notices—and planned work is marked with a calendar icon, so scheduled changes are easy to tell apart from sudden ones.
Improved
- Plainer “toward” wording. Boarding steps read “toward” a borough instead of “into,” which stays accurate even on a short hop.
- Better route variety. When you plan a trip, we're better at surfacing genuinely different options—including faster routes with fewer transfers that could slip through before.
- “Not Running,” explained. The list of lines with no upcoming trains is now called “Not Running” and—when we know it—tells you why (e.g. “Track maintenance”). It shows on the map too, not just the stop page.
- Plainer no-service wording. “No service at this stop” when nothing's running, “No service in this direction” when only one way is affected, “No arrivals in the next 30 minutes” when trains run but not soon—and your widget says “No service” instead of always nudging you to refresh.
- Active planned work, placed right. Planned work that's underway appears alongside the disruptions and delays it affects, with the same urgency colors, instead of in a separate Maintenance list.
- Cleaner Notifications settings. More consistent icons and spacing, a clearer on/off label, a compact borough picker that fits on one row, and clearer wording on the Times & Days and Boroughs filters.
Fixed
- Express stop lists. Express trains list only the stops they actually make, instead of mixing in the local stops they skip past.
- Silent transfers. Changing trains at a shared station always shows a “Transfer” step now, so a train change is never silently skipped.
A reliability day for the underground reality of riding: schedule-based estimates when you're offline, honest staleness everywhere, and the Privacy Policy right in the app.
Added
- Estimated arrivals offline. When there's no live or recent data for a stop—underground, dead signal—arrivals fall back to schedule-based estimates marked with a “~”, across the app and your widget, so you're not staring at a blank stop.
- Privacy Policy and Terms in the app. Read both in full inside Settings → Info. The short version: no ads, no tracking, and your data stays on your phone unless you choose to share it.
Improved
- Honest staleness. Arrival countdowns freeze and dim as soon as your data is stale on a weak signal—an out-of-date time can't masquerade as live—and the widget shows how old its times are once they're stale.
- Offline address search. Searching for an address with no signal explains you're offline and points you to station search, instead of a misleading “No matches.”
- Offline equipment and digests. Elevator and escalator status and your digest stay available after the app has been closed underground.
- Pinned Settings headers. Headers on Settings pages stay pinned as you scroll, so the back button is always within reach—and it no longer slips behind the offline banner.
Fixed
- Offline banner overlap. The banner was covering content on the Feedback form and on alert pages like Disruptions, Delays, and Planned Work—those screens now sit neatly below it.
Trip results now chase your priorities, the whole app feels faster, and a couple of alert filters got straightened out.
Improved
- Routes tuned to your priorities. Trip results include the genuinely best route for each priority—fastest, fewest transfers, least walking—tagged with what it's best at, and the list reorders to match the priority you set in Preferences.
- Alerts on every route. Service alerts show on every suggested route—not just the one you've selected—so you can spot a disrupted line at a glance. When a line you'd normally take is suspended, the planner calls it out.
- Wider route variety. You'll see a broader range of options—including routes with noticeably less walking, even when they take a little longer.
- Speed and smoothness. The app opens noticeably faster, the map pans and zooms more smoothly, and stops, lines, alerts, and trip results fill in with less waiting and fewer blank moments.
- Consistent platform-switch animation. Switching platforms on a station screen animates consistently—arrival rows ease in every time instead of occasionally snapping into place.
Fixed
- Routing around service changes. When a line is skipping your stop or suspended through it for weekend work, the planner no longer routes you to board there—it sends you to a station that's actually being served.
- Laggy route previews. Previews on the map update instantly when you tap between options, instead of occasionally lagging on the previous route.
- Borough filter. Filtering alerts by borough works correctly now—selecting one narrows the list instead of leaving everything showing.
- “Weekend work” mislabels. One-off events (like a parade) and unplanned problems (like a signal issue) are no longer labeled “Weekend work” just because they fall on a weekend.
- Outer-borough place labels. Place search shows the correct borough for addresses across all five boroughs—outer-borough spots are no longer mislabeled as Manhattan.
Active track work gets its own category, and big stations point you to the right door.
Added
- “Maintenance” category. Planned work that's happening right now—like weekend track maintenance—groups under its own category, easy to tell apart from full disruptions and delays. Affected lines show a small wrench badge and status chip across Favorites, stations, and the map, and it surfaces in the trip planner and widgets too.
Improved
- Better entrance picks. At big multi-line complexes (like 14 St–Union Sq), trip directions point you to the entrance that's actually closest, instead of occasionally sending you across the street to a farther one.
Entrances get direction labels on the map, trips get step markers, and split-platform guidance reaches ~70 more stations.
Added
- Entrance direction labels. At stations where each entrance only reaches one direction's platform (like 18th St on the 1, or Bergen St on the F/G), zooming in labels entrances “Uptown,” “Downtown,” or by borough—so you head for the right stairs before going underground. Labels stay uncluttered: one per direction at first, every entrance up close.
- Step markers on trip routes. Planned trips show small markers right on the map where you board, transfer, and exit—read the whole route at a glance without opening the step list. Entrance dots are trimmed to the ones your route uses; zoom in close to reveal the rest.
Improved
- Correct-side entrances, system-wide. At ~70 more split-platform stations, the planner guides you to the entrance on the correct side for your direction—entering the wrong side at these stations can mean walking around the block and paying a second fare. (Previously this worked at 5 stations.)
Fixed
- Double-listed alerts. A service alert affecting more than one line could occasionally appear twice in the Alerts list. It shows once now.
- “Arrive by” times. Setting a trip to “arrive by” a time now shows the correct departure and arrival—when to leave to make your deadline—instead of mistakenly using your deadline as the departure time.
- Norwood–205 St warning. A false “separate entrances per direction” warning at Norwood–205 St (D), which actually has a single shared platform. Any entrance works there.
Transfers on the trip map are easier to read at a glance.
Improved
- Dotted transfer connectors. Transfers between lines show a dotted connector on the map so you can see the connection at a glance—no more mystery gaps between ride segments.
Fixed
- Short route lines. Route lines on planned trips extend all the way to the station marker instead of stopping short.
Trips now think in real station entrances—where they are, which one to use, and which side of the street to enter from.
Added
- Entrance dots. Every entrance at the stations on your route shows up on the map, so if the suggested one isn't ideal or is closed, you can spot alternatives at a glance. The specific entrance your route uses is highlighted in purple.
- Direction cone. Your location dot on the Map tab shows a directional cone so you can tell which way you're facing.
- Wrong-side warnings. At stations with separate entrances per direction (Bergen St, Carroll St, 23rd St on the F, Nassau Av on the G, 18th St on the 1), the Enter Station step warns you which side to enter—picking wrong means walking around the block and paying again.
Improved
- Walks end at real entrances. Walking lines end at the closest real station entrance, not the middle of the station footprint—and at split stations they land on the correct side of the street for your direction of travel.
The headline feature lands: plan a trip end to end, right from the map.
Added
- Trip planning. Tap the new “Where to?” pill on the Map tab to search for a destination—addresses, places, or stations—and pick from suggested routes with walking estimates and live arrival times. Filter by leave-at / arrive-by, rank what you care about (least transfers, shortest walk), or require elevator-accessible stations.
- Step-by-step trips. Start a trip for live directions: walk to the station, board the train, ride, transfer, exit—with live arrivals updating on the board card as you go. Tap any “Take the train” card to peek at that station's arrivals, alerts, and routes without losing your trip.
The app now knows a holiday schedule when it sees one.
Added
- Holiday schedule detection. When the MTA runs a Sunday/holiday schedule (like Memorial Day), a banner appears on the Alerts tab and a chip on the Home tab—tap for all holiday-related alerts in one sheet. Per-line alerts caused by the holiday (B, W, Z not running) group with the banner instead of cluttering the Disruptions grid.
Two small fixes from the field.
Fixed
- Alert menu taps. Tapping an arrival with an alert badge on the Faves tab wouldn't open the alert menu. It does now.
- Stray map lines. Cleaned up some leftover connector lines on the map from the recent station-grouping rework.
Tunnel Rat gets a proper High Contrast mode.
Added
- High Contrast mode. A new toggle in Settings → Appearance sharpens text, strengthens borders, and increases contrast across every surface. It also respects iOS's system Increase Contrast setting.
Stations untangle into their own dots on the map, boroughs become a filter, and free underground connections surface.
Added
- Connecting stations. A new Connections section in the stop sheet lists stations you can reach without paying again via underground passage—in NYC that surfaces the long 14 St 7th↔6th tunnel. Tap to walk through to the connecting station's arrivals.
- Borough filters on alerts. Every alert subpage has a Borough pill alongside Line, Date, and Time—pick one or more boroughs to narrow the list to alerts that touch where you care. System-wide alerts always come through.
- Borough filters on notifications. Settings → Notifications has a Boroughs card too—toggle it on and pick which boroughs you want pushes from. Off by default, and system-wide alerts always come through.
Improved
- Each station as its own dot. Stations appear as distinct dots—Times Sq's 8th-Ave entrance reads separately from its 7th-Ave entrances, and the 14 St complex shows dots at 7th, 6th, and 8th Ave. Tap any dot for the stop sheet with that platform pre-selected—the sheet header tracks the platform you're filtered to, and the map recenters when you switch platforms. Stop names and line chips make same-named siblings easy to tell apart.
- A tidier filter row. The alert filter row reads more naturally (Line / Borough / Date / Time) and scrolls horizontally instead of stretching the page. Equipment is left unfiltered—most equipment alerts don't carry borough info.
Fixed
- 14 St and Jamaica groupings. 14 St (1/2/3) at 7th Ave and 14 St at 6th Ave are now separate stations in search and favorites, as are Jamaica-179th St and Jamaica Center (E/J/Z). Bonus: faving Times Sq from different platforms no longer creates duplicate entries on Home.
- Swallowed taps. Buttons, toggles, and rows near the top of Favorites, Stop detail, Alerts, Line detail, the Daily Digest, and the Report form weren't responding—the blur under the sticky header was silently absorbing them. Taps pass through cleanly now.
Alerts now show you who's talking, and the app has a proper About page.
Added
- Source chips on alerts. Each alert card shows a small chip identifying who wrote what you're reading—the Tunnel Rat icon on our summary, the MTA logo on the original.
- About page. Settings → Info covers data attribution (MTA), what Tunnel Rat is, and who makes it—with links to mta.info, tunnelrat.app, and tktk.studio.
Improved
- Clearer card flipping. Flipping a card to the raw MTA text swaps it to a softer grey surface with a thin border—easier to tell at a glance which face you're on. The raw face hides the MTA's headline so the description carries the message.
The map's lines and stops got a full visual rethink, and loading states match your layout.
Improved
- Cleaner route lines. Routes that share a brand color (A/C/E, 4/5/6, B/D/F/M) collapse into a single thick stroke instead of stacking parallel lines—same Apple Maps treatment—and line thickness adapts as you zoom.
- Smarter stop rendering. Stops render three ways by zoom: tiny dots far out, dots with names at neighborhood level, full route-chip pins up close. Junctions and express stops are filled dots, locals are hollow rings, transfer hubs are neutral—and the selected stop stands out with a larger size and bold white border.
- Loading skeletons match your layout. Classic and Compact layouts have their own loading skeletons that match the real arrival rows—no more brief shape-shift when arrivals land.
Fixed
- Empty map sheets. Tapping a pin for a stop with no trains running (like a weekend suspension) shows “No upcoming arrivals” instead of an empty sheet—and if cached arrivals expire mid-view, a clear “No arrivals within 30 minutes” replaces the blank space.
A third layout style for arrivals, and the feedback form moves into a proper page.
Added
- Compact layout. Pick from three layout styles in the overflow menu: Classic (one arrival per row), Robust (grouped with a big countdown), or the new Compact—up to three upcoming arrivals per route as a tight row of chips, with the next one pulsing green when a train is arriving now.
Improved
- Clearer layout names. “Condensed” is now called Robust, and the route-grouping toggle is now “Group similar lines.”
- Feedback page. Feedback lives on its own page instead of a sliding sheet—Settings → Share Feedback, or any overflow ⋯ → Feedback. On Bug Report, Lines and Stops affected collapse into single rows that open dedicated pickers, you can flag multiple stops in one report, and the S (42 St shuttle) joined the lines list.
Home-screen widgets arrive—in three sizes and two styles—plus a refreshed first-time setup and a cleaner feedback flow.
Added
- Home-screen widgets. Widgets show the next trains at one of your favorite stops—pick the stop and direction when you add one. Tap the time chip to refresh on demand; tap the widget to jump to that stop. Lines with service changes show a red alert icon; significant delays show a yellow clock.
- Three sizes, two styles. Small, Medium, and Large each support Classic (one train per row with a countdown) and Robust (grouped by line with minute pills). You'll find them as “Favorites” in the widget gallery.
- Edit Favorites shortcut. A button at the bottom of the Home tab—Add Favorites if you haven't picked any yet—for quick access to the stops and lines editor.
Improved
- Refreshed first-time setup. All four setup steps got a fresh visual pass—bigger headers, friendlier illustrations, tighter spacing. Stop picks stay pinned at the top as you keep searching, line picking gets All / None quick actions (and warns if you deselect everything), and the notifications step previews three real example pushes for your lines.
- Refreshed overflow menu. The top-right ⋯ menu's quick actions are Settings, Feedback, and Share. Arrival grouping renamed: None → Classic, Route → Condensed. The Favorites editor drops a redundant subtitle, and the “Remove stop” trash icon is red to match.
- One feedback screen. Share Feedback and Report a Bug are one screen with a Suggestion / Bug Report toggle—and Get Help opens your email app addressed to hi@tktk.studio (or copies the address if you don't have one set up).
VoiceOver gets real support across the app, and the refresh button earns its name.
Improved
- VoiceOver reads full sentences. Arrival rows, alert cards, stop cards, and line chips read aloud as complete thoughts (“F train to Coney Island, 3 minutes”) instead of disjointed pieces—and section headers are findable via the heading rotor.
- VoiceOver on the Map. Map pins announce the stop and its lines (“14 St – 8 Av, serves A, C, E”) and read as buttons; nearby cards and the Refresh button announce themselves with full context.
- VoiceOver in setup. Line and stop pickers announce as toggles with selected state, so you can tell what you've added. The equipment detail sheet reads each elevator and escalator as one coherent description; back buttons, the overflow menu, and the accessibility indicator all announce themselves; and decorative animations like the loading mascot are skipped.
Fixed
- Refresh that refreshes. Opening the app after backgrounding sometimes showed only a couple of arrivals (or none) for a favorite stop, and refresh wouldn't fix it—only force-quitting would. The button now properly pulls fresh data.
Two map touches: nearby cards highlight the right station, minus the clutter.
Improved
- Cleaner nearby cards. Removed the walking-time badge—the line chips and station name read more cleanly without it.
Fixed
- Chip highlights. Tapping a nearby card now correctly highlights its station's chip on the map, including stations that span multiple platforms (like Fulton St or Times Sq).
Line chips show up sooner as you zoom the map.
Improved
- Chips at lower zoom. The colored line chips on each stop appear at a more zoomed-out level—see which routes serve which stops without zooming all the way in. Panning and zooming got smoother too.
Push notifications lead with your line and stop repeating themselves.
Improved
- Your line first. When an alert affects multiple lines, the title leads with yours. Subscribe to F and a B/D incident reroutes onto F? You'll see “F/B · Route Change”—instantly clear why it's relevant to you.
Fixed
- Duplicate pushes. When the MTA issues two near-identical alerts for the same incident with subtly different text (“57 St” vs “57th St”), they collapse into a single notification.
Direction labels now describe where the train actually goes, and alerts reach your phone about twice as fast.
Improved
- Direction labels that mean something. Headers across Home, Stop Detail, and the Map reflect the real route at every stop. Brooklyn F/G stops read “To Manhattan & Queens”; outer-borough locals read “Into Brooklyn”; Manhattan stops flag a borough when one is salient (“Downtown & Brooklyn” at Fulton St). The Bronx keeps its “The” everywhere.
- Alerts, twice as fast. Cut the typical delay from the MTA publishing an alert to a push hitting your phone from around 3 minutes to about 75 seconds.
- Accessibility pill, easier to find. Each station's accessibility indicator leads the alerts row instead of being tucked at the end—blue when accessible (full or partial), grey when not. Tap for the full breakdown, including current elevator or escalator outages.
Fixed
- Duplicate “All Clear”s. Lines like A/C/E could send duplicate All Clear notifications for the same resolved alert—and near-identical republished updates within 15 minutes no longer pile up your lock screen.
The map opens like it knows where it lives, and digests tighten their copy.
Improved
- Map opens to NYC. First tap on the Map tab opens straight to a NYC view instead of flashing the globe while data loads. Panning is bounded to the city, there's a max zoom-out, and if your location isn't available it centers on Union Sq – 14 St.
- Tighter digest copy. Each route's card body is a one-line summary framing the change at a glance, with bold day-and-time prefixes (“Mon 11:15 PM–5 AM”) on the bullets so you can spot when the work hits. Saturday work lives only in the Weekend Digest now, where it belongs.
- Canonical chip order. Line chips on stop rows sort in MTA order everywhere—numbered lines by color group (1/2/3 → 4/5/6 → 7), then lettered (A/C/E → B/D/F/M → G → J/Z → L → N/Q/R/W → shuttles). No more feed-order jumbles like 14 St-Union Sq's.
Digests grow into a real page that's more reliable behind the scenes, and night work stops looking like a week-long outage.
Improved
- Digests get a real page. The Weekend and Work Week Digests open as a dedicated subpage of the Alerts tab—with a line filter grouped by color—reachable from a persistent row in Planned Work. Pushes, the Home banner, and the row all land in the same place, and routes that already started move to Active Now automatically.
- Digests that always arrive. The Friday and Sunday 5 PM digests keep retrying for up to ~3 hours if anything goes wrong on our side. If one ships with less-polished copy than usual, a small “Some details may be incomplete.” note says so.
- Night and weekend labels. Late-night planned work reads “Mon · Night” or “Mon–Tue · Nights” instead of the old “Mon → Tue” that made nightly windows look like multi-day outages. Full weekends read “All Weekend,” active alerts read “Until 9 PM” / “Until Mon,” and card copy is prefixed “Night Work” or “Weekend Work.”
- Map tab manners. Tapping a stop pin highlights it in purple, tapping a nearby card pans the stop clearly above the sheet, and map rotation is off—north stays up while you pinch.
The “Weak signal” banner learns to let go.
Fixed
- Stuck “Weak signal” banner. Opening the app after a long stretch on a previously-flaky connection could leave it stuck on “Weak signal · No recent arrival data” until you force-quit. Coming back from background now counts as a fresh reconnect—and mid-session, a few failed fetches in a tunnel no longer lock the app out of retrying.
Two tap-target fixes.
Fixed
- Tap targets. Settings → Appearance theme rows now select from a tap anywhere on the row, and the Faves tab lost an invisible band that was swallowing taps near the top of the stop list.
Filter polish on the Alerts tab, and shuttles get called by their names.
Improved
- Native filters. Lines, Dates, and Time filters on Planned Work are native iOS menus, with four quick date presets (Today, This weekend, Next 7 days, Next 30 days). Active filter pills read in brand purple so it's clear what's on. The Overnight card is back to “Tonight,” matching the rest of the app.
- Shuttles by name. Pushes for the Rockaway, Franklin Av, and 42 St shuttles use the shuttle's full name instead of internal route codes—no more “no H shuttle service.”
Fixed
- Dark mode legibility. Timing pills and severity cards use hue-appropriate colors in dark mode—the pink-on-red and muted-yellow readability issues are gone.
Notifications get friendlier, setup keeps its promises, the map traces real tracks, and Favorites settings go inline.
Improved
- “All Good.” “Resolved” notifications are now called All Good—the push reads “🟢 A Train · All Good” / “Service is back to normal.” Warmer, and it puts the line front-and-center.
- Chunkier time controls. Start and end times in Time & Days sit in easier-to-see containers, and day-of-week chips are bigger, switching to brand purple when selected.
- Route lines follow the tracks. Map route lines trace the real geometry of each line—every curve, bend, and bridge—instead of cutting straight chords between stations. Shared-track stretches keep their parallel spacing through the curves.
- Inline Favorites editing. The Favorites settings page shows each stop's line picker inline—no more bottom sheet—matching first-time setup. Reordering is a focused mode in the ⋯ menu (drag, ✓ saves), and Remove stop lives there too.
- Swipe back from Alerts. Swipe from the left edge to go back from any Alerts subpage. The “Long-Term” chip also stopped crowding stop and line screens—those changes are always a tap away in the Alerts tab.
Fixed
- Setup notifications that actually enable. Allowing notifications during first-time setup now actually turns them on—with sensible defaults and your lines auto-populated from the stops you picked, so you're fully set up by the home screen.
- Setup search hang. The “Set your stops” search field no longer hangs for several seconds when you start typing.
- Overnight overreach. The Overnight list only shows alerts that actually start inside tonight's 9 PM – 5 AM window, instead of catching daytime alerts that start later today.
The Alerts tab reorganizes around what's happening now vs. what's coming, long-term work becomes its own category, and sheets across the app get standard iOS chrome.
Added
- Long-Term Changes. Multi-month capital projects (a 3-month escalator replacement, 143-day station improvements) are a distinct category on every surface—no longer dressed up as acute red disruptions. Stop Detail gets a separate Long-Term chip instead of lumping them into Next 7 Days.
Improved
- Active Now vs. Planned Work. The Alerts tab groups into two clear sections: Active Now (Disruptions, Delays, Long-Term Changes, Equipment Outages) and Planned Work (Overnight + Scheduled). “Future Work” is renamed “Scheduled,” every category page gets a one-line subhead, and card radii are unified.
- Redesigned digest sheets. Tapping a digest push, banner, or chip opens a redesigned sheet—centered title, date-range subhead, a card per affected line, each leading with a headline like “Skips stops all weekend.” And the Workweek Digest is now the Work Week Digest.
- Standard sheet chrome. Bottom sheets use standard iOS chrome—one “Done” button, no custom close buttons or redundant CTAs. Map stop sheets get a native nav bar with the favorite star on the right; alert sheets get a centered title and corner X. Cleaner, more familiar, better with VoiceOver.
- Borough context on alerts. Station names in cards and pushes are tagged with their borough on first mention (Manhattan is assumed). Long “take Y and transfer at Z” reroute blocks are trimmed—the short “Use nearby Station X” lines stay, and the full instructions are a tap away on the raw MTA alert.
- Subtler shadows, refined background. A near-white page background in light mode, a deeper indigo-leaning near-black in dark, and softer, more precise shadows on cards, chips, and sheets.
- Better filter empty states. When a filter hides every alert on a page, a clearer empty state appears with a one-tap “Reset filters” button. Tapping a push for an already-cleared alert shows the original card with a green RESOLVED tag.
Fixed
- Honest tab badge. The Next 7 Days chip actually filters to the next 7 days (it surfaced all planned work indefinitely), and the tab badge no longer fires for long-term alerts—those are ongoing, not acute.
- “No arrivals” flash. Reopening the app after a while no longer flashes “No arrivals” / “Offline” on Home, Stop Detail, or the map sheet—the loading skeleton holds until fresh data lands.
- All Clear pushes. All Clear notifications had been silently broken for 10 days—the behind-the-scenes step that hands a resolved alert to the notification sender wasn't firing. Clears arrive on schedule again.
- Sheet title placement. The line-tap bottom sheet's title sits at the top next to the close button, not floating midway down—and a crash when two digest fetches ran at once is gone.
Weekend work stops slipping through the digest cracks, and Tonight gets honest.
Improved
- Tighter severity rows. Tighter chip spacing fits 4 affected lines on one row, and Starts Tonight / Future Work cards keep their half-width when only one is visible.
Fixed
- Friday-night weekend work. The Weekend Digest now catches weekend work that starts Friday evening—multi-day shutdowns beginning at 9:45 PM Friday were missed by a window that started Saturday at midnight.
- Already-active “Tonight” alerts. Starts Tonight no longer lists alerts that are already active—all-day reduced-service patterns mislabeled as nightly-only now route to Disruptions or Delays.
- Double-listed future work. The Future Work list no longer double-shows alerts already surfaced in Starts Tonight—and filtering by line brings them back so the filtered view stays complete.
Alerts reorganize into Line Issues and More Info, planned work gets its own page, and new users get a calmer default.
Added
- Planned Work page. A dedicated page with filters and the full list, replacing the Right Now / Future Work switcher. The Tonight pill previews upcoming overnight work—including weekend runs starting at 9 or 10 PM—and hides itself once the overnight window opens.
Improved
- Line Issues + More Info. The tab reorganizes into two groups: Line Issues (Disruptions / Delays / All Lines Look Good) and More Info (Long-term Changes, Equipment Outages, Starts Tonight, Future Work). Pills with zero count hide—a silent count is a signal.
- Tappable severity rows. Tap a Disruptions or Delays card for a full page of that category; tap the red or yellow severity icon for a sheet of every active alert in it. Long-term multi-week work gets its own pill so it doesn't crowd the red row.
- A calmer arrival default. New users start with each train on its own row—every route equally visible at a glance. Existing users keep their preferred grouping. Alert icons on arrival rows are hidden for now; the new Alerts tab carries that info better.
- Consistent shapes. Cleaner card shapes and corner rounding tidied app-wide, so chips, rows, and cards sit together more harmoniously—and every category surface pushes a dedicated page instead of mixing sheets and pushes.
The Alerts tab leads with a line-by-line status grid, and good news gets a hero moment.
Added
- Tonight & Elevators pills. A Tonight pill gathers late-night-only alerts so they don't clutter the Disruptions row at 2 PM (they move back when the clock hits late night), and an Elevators pill opens a clean list of outages, each card headed by the station name.
Improved
- Right Now status grid. “Now” is “Right Now,” leading with a line-by-line grid—Disruptions, Delays, Good Service, Equipment—so you can read the whole system without scrolling cards. Tap any line for a sheet of everything affecting it.
- “Everything's Good.” When every line runs normally, Right Now leads with a single all-clear card instead of a long Good Service list.
- Future Work, decluttered. A clean vertical list—no more “Next 7 days” / “All others” split—with line and date filters on the page itself, quick presets, a custom range picker, and one shared “S” chip for the three shuttles.
Alert cards become genuinely readable—paragraphs, real bold, colored badges—and arrivals get smoother counting and grouping.
Improved
- Readable alert summaries. Longer summaries break into paragraphs when they cover multiple topics, so you can scan them—and each alert type has its own colored timing badge with a matching icon: Disruptions red, Delays yellow, Equipment blue, Planned Work neutral. The Active list also leads with the most recently updated alerts, so the freshest content is on top.
- Continuous countdowns. Arrival countdowns on Favorites, Stop Detail, and the map sheet update continuously instead of only on data refresh—numbers drop every minute as expected.
- Per-group cards. Arrivals grouped by Destination or Line get their own cards, with the stop name and direction toggle above so the stop still reads as a unit. “Route” grouping is renamed “Destination,” and long-press is scoped to the stop header.
- Brand gradient on pop-ups. The digest banner, nearby-station banner, tooltips, and offline banner share a consistent purple gradient—and the status bar flips to white icons while the offline banner shows, so the clock stays legible. Tooltips were also refreshed—previously-dismissed ones re-appear with the new version.
- Shuttle push names. Single-line shuttle pushes use the full route name (“42 St Shuttle”) instead of just “S.” Digests renamed too: “Weekend Ahead” → “Weekend Digest,” “Week Ahead” → “Workweek Digest.”
Fixed
- Bold that's actually bold. Bold phrases inside alert rows and sheets render bold now—they were silently flattened before. “All Clear” resolution alerts also stopped showing as cards; they're push-only, as intended.
- Alerts that survive blips. Cards no longer go blank when the raw MTA feed hiccups—as long as our summary came through, you'll still see your alerts. Brief server blips retry quietly in the background.
- Equipment issues are back. The Equipment Issues section returned after the MTA moved elevator and escalator notices to a separate data feed—outages show the specific equipment, station, reason, and estimated return. The duplicate “EQUIPMENT” chips elsewhere were removed; the blue accessibility badges already carry that.
- No backlog for new subscribers. First-time subscribers no longer receive a backlog of pushes for alerts that fired before they subscribed.
One consistent feel for motion across the whole app.
Improved
- Smoother motion. Animations follow a single consistent feel—quicker, calmer, without the little overshoots that crept into toggles, menus, and transitions. Arrival rows fade in with a gentle stagger, and countdowns crossfade numerically instead of popping.
- A faster-exiting banner. The offline banner exits faster than it enters, so dismissing it never feels like it's in your way.
Digest notifications arrive, and quiet hours put you in charge of when pushes land.
Added
- Digest notifications. Weekend Digest (Friday @ 5 PM) and Workweek Digest (Sunday @ 5 PM) give you a heads-up about planned service changes before they happen.
- Quiet hours. A new Timing section lets you choose which hours and days you want notifications. Digests always deliver regardless.
Improved
- Notification settings polish. Refreshed icons and labels throughout the screen.
Notifications grow up: pick exactly what you want, get told when it's over, and land on the right alert when you tap.
Added
- All Clear notifications. When the last alert on one of your lines resolves, a quick “🟢 All Clear” tells you service is back to normal. Tap it to jump to your Home tab.
- Per-type toggles. Settings → Notifications lets you subscribe to Disruptions without Delays, turn off All Clear pushes, or any other combination. All three are on by default when you first enable notifications.
Improved
- Pushes that lead with the line. Titles lead with the affected routes—“A/C/E · Skipping Stops 🔴”—and multi-line alerts read naturally: “2 & 5 · Delayed,” “2/5/6 · Delayed,” “2/5/7 & More · Delayed.” The Staten Island Railway shows as “SIR.”
- Smarter notification taps. Tapping a push scrolls the Alerts tab to the exact alert and flashes a highlight—if a line filter was hiding it, the filter clears. Already resolved? A friendly “All clear” sheet quotes the original notification.
- Favorites polish. Next-up arrival chips are square with a lighter background and slightly larger numbers, all three upcoming times share the same pill style (the big countdown calls out the next train), and stop cards get more breathing room. “Changes” is renamed “Disruptions” everywhere, and the Delays icon is a clock-with-exclamation.
Fixed
- False “All clear” sheets. Tapping a push no longer shows “All clear” for alerts that are still active—the app waits for fresh data before deciding anything's resolved. And All Clear pushes don't fire when scheduled work is still pending on the line.
- Stripped alert details. Alert cards show the full station list and routing details that were getting stripped out—and highlighted cards from push taps scroll into full view instead of hiding behind the header.
- Cold-start taps. Tapping a push from a cold start reliably opens the Alerts tab instead of occasionally landing on the wrong one.
- Mis-grouped delay alerts. Delay alerts caused by track maintenance were showing as “Future work” on Favorites—they show under “Delays” now, with the delay icon on affected rows.
Push notifications arrive—get told about delays and disruptions on your lines even when the app is closed.
Added
- Push notifications. Get notified about delays, suspensions, or planned work on your lines. Choose which lines in Settings → Notifications—if you already have favorite stops, you're automatically subscribed to those lines. Tap a notification to jump straight to the alert.
Improved
- Notifications that read naturally. The title shows the alert type and lines (“Delays: 2 Train”), and the body is a short sentence about what's going on (“Signal issue at West 4 St, affects uptown trains.”).
- Real timing ranges. Alert badges show actual ranges—“Now → 9:50 PM” for active alerts, “9 PM → Tue” for scheduled ones, “Starts @ 9 PM” when there's no known end. Scheduled cards get a subtle border so they read as distinct.
Fixed
- Stale alert copy. Older alert text could briefly show on launch before the latest version loaded. The MTA label also moved to the bottom-right, next to “Updated X ago.”
Countdowns tick live—and they're honest about it when you're offline.
Improved
- Live ticking countdowns. Arrival countdowns tick down live between refresh cycles instead of updating every 30 seconds. Offline, they keep ticking from cached data for up to 5 minutes, then cards show an offline state so you're not misled by stale times.
- A smarter offline banner. The banner shows how long you've been disconnected and whether it's estimating—and the refresh button shows a paused state when offline instead of spinning forever.
A performance and honesty pass: faster tabs, smoother scrolling, and offline states that tell you the truth.
Improved
- Faster everywhere. Faster tab switching (Home and Search no longer reload when you flip back and forth), smoother Favorites scrolling, smoother map panning, and less background work when you're off the Home tab.
- Honest offline states. Offline with no saved data, favorite stops show a clear offline indicator instead of misleading messages, alert chips say “No alerts data,” and the map stop sheet shows an offline state too. A header timestamp appears when arrival data is older than expected.
- Alert card credibility. Cards show an “MTA” label so you can tell where data comes from, “Updated X ago” tracks when the MTA actually changed the alert, alerts not yet summarized say so, and dark mode cards get clearer hierarchy. A faster refresh cycle cuts data usage without sacrificing freshness.
- Patience for weak signal. Better timeout handling—the app won't hang waiting on slow responses.
Nearby stops ride along the bottom of the map, and alerts speak in the right tense.
Added
- Nearby stop cards. A scrollable row at the bottom of the Map updates as you pan—and tapping a pin pre-loads arrivals so data is ready when the sheet opens. Re-tap the Map tab to recenter on your location.
Improved
- Future-tense alerts. Scheduled service changes read in future tense—no more confusion about whether it's happening now or later. Tap any rewritten card to flip to the original MTA language, and a new tooltip explains how we summarize alerts.
- Location touches. The nearby-station banner on Favorites shows a “Near you now” label, and walking times on the Map measure from your location, not the map center.
The app starts meeting you where you're standing.
Added
- Nearby stops on the map. A persistent bottom sheet shows nearby stops with walking times—tap one to see live arrivals without leaving the map.
- Near-station banner. When you're very close to a station, a floating banner appears on the Favorites tab for a quick arrivals check. Swipe it away if you don't need it.
Fresh data without the wait.
Added
- Background refresh. The app refreshes your arrival times and alerts in the background, so data is ready when you reopen—no more waiting for a fresh load after switching apps.
Sticky headers arrive, platform stations get filters, and launches stop flashing empty screens.
Added
- Platform filter chips. Complex stations (Fulton St, Times Sq, Atlantic Av) show platform chips—tap “A C” to see only that platform's arrivals and alerts. Alert chips filter to match.
Improved
- Sticky headers. Favorites, stop detail, and line detail get sticky headers with a frosted blur that fades in as you scroll. The Favorites header collapses smoothly, and re-tapping the tab icon scrolls back to top.
- Stoplight accessibility colors. Accessibility status reads green (fully accessible), yellow (limited or service issue), red (not accessible)—and alert chips with many lines show a +X overflow count instead of cramming.
- Smoother launches. The loading screen stays until your data is fully ready—no flash of empty content—and the app gives up on stuck requests sooner on bad signal. Behind the scenes, arrival data loads more efficiently with an automatic fallback if the primary source is unavailable, and we added monitoring on our side to catch issues early.
- Alerts filter popover. Redesigned with a cleaner layout and Now/Future toggle labels—and platform alert sheets filter to the selected platform's lines.
Fixed
- Banner overlap. The offline banner no longer overlaps headers across the app.
Report a bug from anywhere, and Settings gets its first real shape.
Added
- Report bugs from anywhere. Tap the ladybug icon in the overflow menu on any screen—bug reports, feedback, and support requests submit directly from the app with automatic diagnostics attached.
Improved
- Settings reorganized. Clearer sections—Customization, Support, Info, and Developer—plus a new Appearance page, and “Share Feedback,” “Report a Bug,” and “Get Help” open real submission forms. Overflow quick actions updated: “Edit Faves” and “Report.”
Arrange arrivals your way, and complex stations finally read as one place.
Added
- Arrival display settings. Sort by time (soonest first) or fixed MTA color-group order, and group by route or not at all—ungrouped shows up to 5 arrivals on Home and 20 on Stop Detail. Find them in the overflow ⋯ menu.
Improved
- Fresher station data. Station data updates are picked up automatically on app launch instead of waiting up to 24 hours, and the inactive routes section got a cleaner design with line chip and “None scheduled” label.
Fixed
- Station complex groupings. Multi-platform stations like Fulton St and Union Square correctly show all lines and arrivals together.
Direction labels get smarter, and setup learns to ask which lines you actually ride.
Added
- Line picker in setup. Choose which lines you care about at each favorite stop. Returning users see the new steps with existing favorites pre-loaded—no re-picking everything.
- “Tap on nearly anything.” A tooltip after setup helps new users discover how much of the app is tappable.
Improved
- Smarter direction headers. Direction labels are driven by official station data instead of fragile name matching—more accurate borough labels on every line, with concrete destination names for east-west lines (J/Z, L) and the M at Manhattan and Queens stops.
- Borough-grouped arrivals. Routes sharing the same uptown terminus borough appear together, with their own toggle and line chips.
Settings gets a full rebuild—including the page you're reading right now—and the M train gets the nuance it deserves.
Added
- A rebuilt Settings screen. Four focused sections—Customization, Support, Info, Developer—with a new Theme page (System/Light/Dark with live preview), a Content page to compare Tunnel Rat summaries vs raw MTA text, a Location page with permission status, and this very changelog.
Improved
- M line intelligence. The M gets bespoke direction labels per borough—Manhattan, Brooklyn, Queens North (Forest Hills side), and Queens South (Middle Village side)—and Line Detail groups its two Queens segments separately. J/Z trains read “Brooklyn & Queens” at Brooklyn stops, with direction arrows flipped to match their east-west travel.
- Settings polish. Tightened row padding, section headers, and chevron styling throughout.
Fixed
- Map header color. The map header appeared white instead of transparent in both light and dark mode—and the App Version row now confirms with a brief “Copied” when tapped.