Comments (3)
Yes I'd be happy to create a PR for this clarification. Thanks for the wording assistance–I'll pull something together with these in mind.
from transit.
I just wanted to call out some additional complexity with the spec here. Fares v1 was always underspecified in the spec so I'm not surprised there are holes here. I wanted to call out another.
Namely, I don't think there is anything in the spec that requires a feed to exhaustively define fares for all service in the feed. I think that's true for a single-agency feed, but I think it's especially true for multi-agency feeds where a single agency might have Fares v1 information, but another agency in the feed does not, for whatever reason.
Under these circumstances, there very well might be stops that do not have zone_id
specified and also aren't used by a route that matches a fare rule. For these reasons, we (Google) don't actually enable the StopZoneIdValidator
when validating feeds.
Ignoring validation for a moment and focusing only on the spec, I'd argue that the field is not actually required under any circumstances. I can think of many should statements that might trigger warnings, but fewer musts.
from transit.
Thanks for flagging this @westontrillium! There are two things that might need to be addressed here: primarily a spec clarification (as you pointed out) and secondly an adjustment to the validator rules to avoid this notice when zone-based fares are not being used.
On our end we tried to put together two spec clarification alternatives for stops.zone_id, but we didn't ended up having a significant improvement from your proposal, perhaps they can serve as inspiration to make some adjustments (if any) to your proposal.
-
"Required if providing fare information using
fare_rules.txt
, except when the stop is only assigned to atrip_id
instop_times.txt
whoseroute_id
is present in afare_rules.txt
record and provides fare information only forfare_id
androute_id
. -
"Required if providing fare information using fare_rules.txt, except if only
fare_rules.fare_id
andfare_rules.route_id
are provided for the correspondingtrip_id
that is assigned to the stop instoptimes.txt
”
Regarding the second step, we’re already included this in our backlog of validator changes.
Would you be interested in carrying this over to a PR?
from transit.
Related Issues (20)
- Why is it recommeded that short term service modifications are excluded from GTFS? HOT 4
- [GTFS-Fares v2] Non-sequential Legs Transfer HOT 2
- Integration of carpooling lines HOT 5
- Clarification on language code data standards used in translations.txt HOT 2
- [Governance] Phase 2: Enhancing Voting and Reviews HOT 16
- Clarifying constraints on pathways.stair_count HOT 3
- Missing functionality to define "conceptual grouping of stops/stations" in existing GTFS HOT 14
- Refinement of GTFS Terminology: Transitioning from "Schedule" to "Static" HOT 20
- Make UTF-8 the mandatory GTFS encoding HOT 6
- GTFS Fares 2.0: Manage fare change HOT 2
- Moving Realtime Best Practices into the Spec: Phasing Plan
- [DRT] After the adoption of GTFS-Flex, stops.txt should no longer be a required file. HOT 1
- Using StopTimeEvent.uncertainty for non-timepoints HOT 4
- Addition of vehicles.txt to GTFS static HOT 4
- Make Shapes a recommended file in GTFS HOT 10
- Make bikes_allowed a recommended field in GTFS HOT 6
- Global trip id HOT 4
- The recommended discussion
- Proposed Best Practice: always including trip_id in TripDescriptor for SCHEDULED trips HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from transit.