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

feat: Add Fares v2 page #89

Merged
merged 9 commits into from
Feb 10, 2023
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/assets/stylesheets/extra.css
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,12 @@ c {
min-width: 12em;
}

@media only screen and (min-width: 1219px) {
a:first-child {
margin-left: 0;
}
}

.usage-buttons > .button {
background-color: #172f50 !important;
}
Expand Down
71 changes: 71 additions & 0 deletions docs/extensions/fares-v2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<a class="pencil-link" href="https://github.com/MobilityData/gtfs.org/edit/main/docs/extensions/fare-extension.md" title="Edit this page" target="_blank">
<svg class="pencil" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4v-2m10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1 2.1 2.1Z"></path></svg>
</a>

# GTFS-Fares v2

Fares v2 is a GTFS Schedule extension project that aims to address the limitations of <a href="/schedule/examples/fares-v1">Fares v1</a>.

The main concepts that Fares v2 plans to represent are

- Fare products (e.g tickets and passes)
- Rider categories (e.g seniors and children)
- Fare payment options (e.g bank card and credit card)
- Fare capping

These concepts will allow data producers to model zone-based, time-dependent, and inter-agency fares. This extension project is being adopted in iterations.

Currently, the adopted base implementation of Fares v2 works for the following use cases:

- Defining a transit fare
- Describing service locations in the same fare zone
- Creating rules for single leg journeys
- Creating rules for transfers

You can see <a href="/schedule/examples/fares-v2" target="_blank">examples here</a> that show what can be modelled using the adopted Fares v2 base implementation.

Producers may implement Fares v2 in the same dataset with Fares v1, since there is no technical conflict between the two. Consumers can choose which version to use independent of the other. With adoption and sufficient endorsement of Fares v2, Fares v1 may be deprecated in the future.

<a class="button no-icon" href="https://share.mobilitydata.org/gtfs-fares-v2" target="_blank">See the full proposal</a>

## In Progress Fares v2 Work

The GTFS community is currently working on finalizing the <a href="https://share.mobilitydata.org/fare-containers-to-fare-payment-types-proposal" target="_blank">fare_payment_options.txt (formerly fare_containers.txt)</a> proposal.
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this info is a little duplicative of the table below. From a maintainability standpoint, having only one place to update what we are currently working on might be easier?

Copy link
Contributor

Choose a reason for hiding this comment

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

Hoping the "what we are currently working on" will get updated more often in 2023 🙈

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The main value of this section to me is having a few sentences that someone can skim for a general update of

  • what feature is being prepared for a vote
  • which proposal they can look at to get up to speed

(and not having to scrounge through GitHub to find that update in a specific PR or issue).

It serves a different purpose than a list of proposals people have to read through on ProductBoard, since that's more for people who really want to get into the details. I imagine us updating this section every month or two. @isabelle-dr does that make sense to you or is there an alternative approach you'd prefer?

Copy link
Contributor

Choose a reason for hiding this comment

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

Okay I understand better. Sounds good then.
Can you change the name to "fare container updated proposal"?
The name is back on the table 🙈


Items currently in discussion include:

- Creating a fare_payment_options_groups.txt file
- Aligning on what types should be included in the enumeration for `fare_payment_option_type`

<a class="button no-icon" href=https://share.mobilitydata.org/slack>Join #gtfs-fares on Slack</a><a class="button no-icon" href=https://www.eventbrite.ca/e/specifications-discussions-gtfs-fares-v2-monthly-meetings-tickets-522966225057>See the meeting schedule</a><a class="button no-icon" href=https://docs.google.com/document/d/1d3g5bMXupdElCKrdv6rhFNN11mrQgEk-ibA7wdqVLTU/edit>See meeting notes</a>


## First Adopters

🎉 Shoutout to Fares v2 first adopters! At least 1 data producer and 1 consumer must commit to implementing an experimental feature before a public vote is opened to add it to the official specification. These organizations invest a large amount of time and energy into experimental changes to make sure that GTFS continues to evolve.

For the adopted base implementation, first adopters were

- Producers: <a href="https://www.interline.io/" target="_blank">Interline</a>, <a href="https://www.mta.maryland.gov/developer-resources" target="_blank">Maryland Department of Transportation</a>, <a href="https://dot.ca.gov/cal-itp/cal-itp-gtfs" target="_blank">Cal-ITP</a>
- Consumer: <a href="https://transitapp.com/" target="_blank">Transit</a>

For the fare payment options feature currently under discussion, first adopters are

- Producer: <a href="https://www.interline.io/" target="_blank">Interline</a>
- Consumer: <a href="https://www.apple.com/">Apple</a>, <a href="https://transitapp.com/" target="_blank">Transit</a>

<a class="button no-icon" href="https://share.mobilitydata.org/gtfs-fares-v2" target="_blank">See who’s using Fares v2 files and fields</a>

## Proposals Currently Under Discussion

<iframe src="https://portal.productboard.com/rhk8dbtic1iqakfznucry448" frameborder="0" width="100%", style="min-height:600px;"></iframe>
Copy link
Contributor

Choose a reason for hiding this comment

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

This is great!
Just to make sure I understand the purpose here: this is quick access to all the proposals related to GTFS-fares v2, right?

If so, where is the best place to see the prioritized backlog? The next item we will be working on is the Variable pricing feature.
It's almost like we need a "triage" column to put all the proposals we receive, and then we put them in the backlog based on when we want to work on it.

Copy link
Contributor Author

@emmambd emmambd Feb 7, 2023

Choose a reason for hiding this comment

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

@isabelle-dr Right now that information is in our roadmap on the website. We could merge all this info into the main portal and just add a "spec proposal triage" column so everything is in 1 place.


## History
emmambd marked this conversation as resolved.
Show resolved Hide resolved

- **2017**: Industry research and data modelling
- **October 2021**: <a href="https://github.com/google/transit/pull/286#issue-1026848880" target="_blank">Base implementation drafted and shared</a>
- **December 2021**: <a href="https://github.com/google/transit/pull/286#issuecomment-990258396" target="_blank">Open vote #1 → did not pass</a>
- **March 2022**: <a href="https://github.com/google/transit/pull/286#issuecomment-1080716109" target="_blank">Open vote #2 → did not pass</a>
- **May 2022**: <a href="https://github.com/google/transit/pull/286#issuecomment-1121392932" target="_blank">Open vote #3 → passed</a>
- **August 2022**: <a href="https://github.com/google/transit/issues/341" target="_blank">Community discussion on next phase of Fares v2 begins</a>
- **December 2022**: <a href="https://github.com/google/transit/issues/341#issuecomment-1339947915" target="_blank">Community identifies stack ranked order of features to prioritize iterations</a>
2 changes: 1 addition & 1 deletion docs/extensions.md → docs/extensions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ For more information, contact [specifications@mobilitydata.org](mailto:specifica

<div class="row">
<div class="leftcontainer">
<h3 class="title"><a href="http://bit.ly/gtfs-fares" class="no-icon" target="_blank">GTFS-Fares v2</a></h3>
<a href="fares-v2" class="no-icon" target="_blank"><h3 class="title">GTFS-Fares v2</h3></a>
<p class="maintainer">Maintained by <a href="https://mobilitydata.org/" class="no-icon" target="_blank">MobilityData</a></p>
</div>
<div class="featurelist">
Expand Down
2 changes: 1 addition & 1 deletion docs/schedule/examples/fares-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<hr>

Fares v2 is a GTFS extension project that aims to address the limitations of Fares v1. This extension project is being adopted in iterations, and the examples below show what can be modeled using the portion of Fares v2 that has been adopted in the official specification. See more information about the Fares v2 extension project in the [Extensions](../../../extensions) section.
Fares v2 is a GTFS extension project that aims to address the limitations of Fares v1. This extension project is being adopted in iterations, and the examples below show what can be modeled using the portion of Fares v2 that has been adopted in the official specification. See more information about [the Fares v2 extension project here](/extensions/fares-v2/).

In the interim, producers may implement Fares v2 alongside implementation of Fares v1 in the same dataset as there exists no technical conflict between the two. Consumers will have the choice on which implementation to consume independently from the other.
With adoption and sufficient endorsement of Fares v2, Fares v1 may be deprecated in the future.
Expand Down
4 changes: 3 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -487,5 +487,7 @@ nav:
- SIRI: resources/siri.md
- Multimodal: resources/multimodal.md
- Other: resources/other.md
- Extensions: extensions.md
- Extensions:
- extensions/index.md
- Fares v2: extensions/fares-v2.md
- About: about.md