Skip to content

feat: Fairmount Line free transfers - #3672

Open
derikk wants to merge 3 commits into
mbta:mainfrom
derikk:claude/eager-bell-ts389y
Open

derikk wants to merge 3 commits into
mbta:mainfrom
derikk:claude/eager-bell-ts389y

Conversation

@derikk

@derikk derikk commented Nov 5, 2026

Copy link
Copy Markdown

Fairmount Line riders travelling within Zone 1A who pay with a CharlieCard can transfer for free, within 2 hours of their first tap, to subway, bus, or Silver Line. Previously the trip planner charged these Commuter Rail legs separately (e.g. Red Line + Fairmount Zone 1A was $4.80 instead of $2.40).

Scope

Currently, the trip planner doesn't reflect the free transfers between Fairmount Line Zone 1A and the rest of the subway/bus/ferry. This PR fixes that.

Implementation

fairmount_zone_1a trips are now treated like route types [0, 1, 3, 4] for transfer purposes.

🤖 This PR's code was generated by Claude, though I read over the changes.

Screenshots

Before After
image image

Fairmount Line riders travelling within Zone 1A who pay with a
CharlieCard can transfer for free, within 2 hours of their first tap,
to subway, bus, or Silver Line. Previously the trip planner charged
these Commuter Rail legs separately (e.g. Red Line + Fairmount Zone 1A
was $4.80 instead of $2.40).

Fairmount Line legs that start and end in Zone 1A now participate in
the 2-hour transfer window; all other Commuter Rail legs are still
charged separately.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WWCAcgKBaiwFgiFBHjr48c
Keeps the original add_fare_from_leg/2 clause structure, widening the
transfer-eligible clause's guard instead of introducing a separate
predicate function.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WWCAcgKBaiwFgiFBHjr48c
Unavailable trips come from the `mbta-ma-us-initial` feed and still
display a fare, so the Fairmount Zone 1A check should match route IDs
from either feed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WWCAcgKBaiwFgiFBHjr48c
@derikk
derikk requested a review from a team as a code owner November 5, 2026 09:11
@derikk
derikk requested a review from thecristen November 5, 2026 09:11
@thecristen

Copy link
Copy Markdown
Collaborator

Thanks for contributing! Our team's a bit backlogged at the moment, but I'll aim to review before end of week.

@joshlarson joshlarson left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! Thanks for fixing this!

@joshlarson
joshlarson enabled auto-merge (squash) November 13, 2026 22:15
@joshlarson joshlarson added Not Ready for Translation Remove this when the PR is approved to trigger a Smartling translation job and removed Not Ready for Translation Remove this when the PR is approved to trigger a Smartling translation job labels Nov 13, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants