Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NYC: Sometimes suggest out of station / cross-system transfers that are not realistic #3

Open
lstevens18 opened this issue Jul 25, 2023 · 2 comments

Comments

@lstevens18
Copy link

lstevens18 commented Jul 25, 2023

This is amazing, and super fun to use! Thanks for creating it and awesome work.

When playing around with it, I noticed a potential bug in New York City. Certain routes will suggest transferring between Subways which would be "out of station" transfers, meaning the passenger would need to pay twice, and I don't think any transit app (Google Maps, Apple Maps, etc) would ever suggest such a route.

Here is one example, starting point in Williamsburg, ending point in West Village around Christopher Street/Greenwich Street with only subways enabled, it suggests transferring from the L train to the PATH train; however, I don't think one would pay separately for the PATH train for that last leg of the journey.
image
vs Google maps:
image
https://www.google.com/maps/dir/Metropolitan,+Lorimer+Street,+Brooklyn,+NY/Christopher+Street,+Christopher+Street,+Manhattan,+New+York,+NY/@40.7180546,-73.9767394,14.22z/data=!4m16!4m15!1m5!1m1!1s0x89c25959b6f23de1:0xe81fa72b34bb9bdb!2m2!1d-73.949439!2d40.7136504!1m5!1m1!1s0x89c259ecb0e015a9:0x436946d7003cbaf6!2m2!1d-74.0070619!2d40.7330329!2m1!5e1!3e3?entry=ttu

Another example here from Greenpoint, Brooklyn to more south eastern parts of FiDi, Manhattan, we get suggestions to transfer from the G Train to the 2/3 Train; however, that would require exiting a station and paying again and is not a realistic route:
image
vs google maps:
image
https://www.google.com/maps/dir/Greenpoint+Av,+Greenpoint+Avenue,+Brooklyn,+NY/Wall+St,+New+York,+NY/@40.7190834,-73.982611,13.98z/data=!4m16!4m15!1m5!1m1!1s0x89c2593f586a9795:0xfae8ddb7150b8c9b!2m2!1d-73.9540458!2d40.7301618!1m5!1m1!1s0x89c25a165bedccab:0x2cb2ddf003b5ae01!2m2!1d-74.0088256!2d40.7060361!2m1!5e1!3e3?entry=ttu

Totally understand if this is intentional and you want to illustrate "fastest possible" route even if it isn't economically feasible, but just pointing it out in case you're trying to illustrate more realistic routes that would be suggested by transit apps. Also not sure what data source you are using here, if it flags out of station transfers or not. Regardless, this is awesome to visualize the impact of apartment locations on transit times, thanks again!

@tjoab
Copy link

tjoab commented Jul 25, 2023

This is likely due to Toronto's entire public transport fare system being run on "proof of payment".

Essentially all fares are electronic and a 2 hour free transfer window is applied to your fare payment. This transfer can be used for any other form of public transport. Fares are rarely checked, but if they are you must present the proof of payment. Majority of people use electronic cards, so a simple tap verifies the fare. Physical fares work in the same way, but you have to remember to retrieve the free transfer before leaving the station, otherwise you've forfeited the right. Most people use the electronic system, so that's probably why the logic was designed that way.

In the case of an "out of station transfer", a second fare is not paid (in Toronto).

@econaxis
Copy link
Owner

@lstevens18 Yes I think that the existing apps have some sort of transfer penalty. We do too, but poorly implemented via TRANSIT_EXIT_PENALTY and at formatter.rs L172

// Penalize time for every transfer performed
 *time + obs.data.transfers as f64 * 120.0

It does not take fares into account, because I'm used to the Vancouver/Toronto model where you're allowed unlimited transfers within a set time. But I know that in NY, exiting a station costs money.

Maybe this is a future project, but fares is not interesting enough to me to implement it :).

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

No branches or pull requests

3 participants