-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Split ticketing is the practice of buying 2 (or more) tickets for the same train between your intended origin and destination to get a lower price compared to the "non-stop" fare.
For example, Northeast Regional trains between New York and Boston make multiple intermediate stops. Due to Amtrak's complex pricing, it can be cheaper to buy a ticket between New York NYP and New Haven NHV, and then a second ticket on the same train between New Haven NHV and Boston BOS compared to the fare for NYP-BOS.
I've included Screenshots for an example where Split-Ticketing is cheaper: Train 94 from NYP-BOS is cheaper if you split at New Haven. $103 direct vs $57 + $35 = $92, savings of $11 without having to leave your seat
stations.json already includes all the necessary route information, and the code can already perform multiple API requests to Amtrak.
This feature would iteratively check city pairs for cheaper prices, for example:
NYP-BOS (original pair)
NYP-STM + STM-BOS
NYP-NHV + NHV-BOS
Then simply add up the fares for each train in each set, and compare to the original.
This would be similar conceptually to the code in Fares.json for the Bedrooms.
Of course an indication that this is "separate tickets" would be required in the UI.
Like Bedrooms, this should be an optional feature as it would be slower than the regular search due to additional API calls required. And perhaps should be limited to "Specific Dates", again due to API calls.
To reduce both code & end-user complexity, the following limitations seem like good ideas for a first pass:
- Same train number only, no layovers
- Only one split per segment
Future development could include these features, though they add significant complexity, both to code and to actually doing them in real life:
- Layovers (ex. Train 1 to NYP-NHV, then a following train to NHV-BOS), with UI/UX ability to select/filter 1. Layover duration max, 2. Connecting station
- Include local commuter/regional rail when it parallels Amtrak. Ex. Metro-North GCP-NHV can be much cheaper than Amtrak NYP-NHV, and the schedule allows for reasonable layovers to connecting Amtrak. This requires the Layovers feature to be implemented, as well as importing a dataset of various regional fares and, ideally, time-tables.
Perhaps a simpler feature would be to indicate in the UI that regional rail is available as an alternative between the selected stations (if that's true) without actually providing fares and schedules, as a reminder for users to check for themselves with the appropriate transit agencies.
