Version 1.0.0

What GTFS Guru
supports today.

This release validates against one specific revision of the GTFS reference and one specific release of the canonical MobilityData validator. Both are named below, and every difference from them is listed rather than left implicit.

GTFS specification revision

google/transit@3215f98f

Reference committed 2026-08-17

Canonical validator baseline

MobilityData/gtfs-validator@v8.0.1

Released 2026-05-12

Validation surface

32 files · 224 fields

41 enum domains · 191 notice codes

What “baseline” means

The specification revision is the exact commit of gtfs/spec/en/reference.md whose files, fields, and enum values this build was checked against. The canonical baseline is the MobilityData validator release whose published rule set this build's notice codes were compared against.

Together they are what GTFS Guru answers for: any difference from them is either implemented, or listed on this page as an accepted difference. A weekly job compares both upstreams against this build and reports anything new, so this page going stale is a build failure rather than an oversight. Every JSON report carries the same two identifiers in its summary, so a stored report says which upstream state produced it.

What’s new since 1.0.0

Upstream additions dated after GTFS Guru 1.0.0 (2026-07-28), with the support status of each. Differences that are not fully supported are listed further down regardless of age, so an open gap never ages off this page.

transfers.txt/min_transfer_time

SupportedNeeds --thoroughSince 1.0.0

min_transfer_time became Conditionally Required

The reference changed min_transfer_time from Optional to Conditionally Required: it is now Required when transfer_type is 2. gtfs.guru already enforced exactly that condition, so no behaviour changed.

Reported as missing_required_field

Upstream: google/transit#640, 2026-08-17

The canonical validator has published no release since v8.0.1 on 2026-05-12, so its rule set is unchanged in this window.

Notice codes and canonical rules

All 191 codes this build can emit. Codes the canonical validator also publishes link to its rule; the rest are GTFS Guru additions or codes the canonical validator has since deprecated. Search matches the code, its summary, and its correspondence.

SeverityNoticeCanonical rule
WARNING agency_phone_invalidAn agency phone number appears to be invalid. GTFS Guru only WARNING attribution_without_roleAttribution with no role. Canonical rule ERROR bidirectional_exit_gatePathway is bidirectional and has mode 7 (exit gate). Canonical rule INFO big_gap_in_serviceA service has a gap of more than 13 days between active service dates. Canonical rule ERROR block_trips_with_overlapping_stop_timesTrips with the same block id have overlapping stop times. Canonical rule ERROR csv_parsing_failedParsing of a CSV file failed. Canonical rule ERROR decreasing_or_equal_stop_time_distanceDecreasing or equal shape_dist_traveled in stop_times.txt. Canonical rule ERROR decreasing_shape_distanceDecreasing shape_dist_traveled in shapes.txt. Canonical rule WARNING duplicate_fare_mediaTwo distinct fare media have the same fare media name and type. Canonical rule ERROR duplicate_geo_json_keyA key in locations.geojson is duplicated. Canonical rule ERROR duplicate_geography_idGeography id is duplicated across multiple files. Canonical rule ERROR duplicate_keyDuplicated entity. Canonical rule WARNING duplicate_route_nameTwo distinct routes have either the same route_short_name, the same route_long_name, or the same combination of route_short_name and route_long_name. Canonical rule WARNING duplicate_tripTwo or more trips have the same route, service, and stop times. GTFS Guru only ERROR duplicated_columnDuplicated column in CSV. Canonical rule ERROR empty_column_nameA column name is empty. Canonical rule ERROR empty_fileA CSV file is empty. Canonical rule WARNING empty_rowA row in the input file has only spaces. Canonical rule ERROR equal_shape_distance_diff_coordinatesTwo consecutive points have equal shape_dist_traveled and different lat/lon coordinates in shapes.txt and the distance between the two points is greater than the 1.11m. Canonical rule WARNING equal_shape_distance_diff_coordinates_distance_below_thresholdTwo consecutive points have equal shape_dist_traveled and different lat/lon coordinates in shapes.txt and the distance between the two points is greater than 0 but less than 1.11m. Canonical rule WARNING equal_shape_distance_same_coordinatesTwo consecutive points have equal shape_dist_traveled and the same lat/lon coordinates in shapes.txt. Canonical rule WARNING expired_calendarDataset should not contain date ranges for services that have already expired. Canonical rule ERROR fare_product_with_multiple_default_rider_categoriesThis notice is generated when a fare product is associated with multiple rider categories that are marked as default. Canonical rule ERROR fare_transfer_rule_duration_limit_type_without_duration_limitA row from GTFS file fare_transfer_rules.txt has a defined duration_limit_type field but no duration_limit specified. Canonical rule ERROR fare_transfer_rule_duration_limit_without_typeA row from GTFS file fare_transfer_rules.txt has a defined duration_limit field but no duration_limit_type specified. Canonical rule ERROR fare_transfer_rule_invalid_transfer_countA row from GTFS file fare_transfer_rules.txt has a defined transfer_count with an invalid value. Canonical rule ERROR fare_transfer_rule_with_forbidden_transfer_countA row from fare_transfer_rules.txt has from_leg_group_id not equal to to_leg_group_id, but has transfer_count specified. Canonical rule ERROR fare_transfer_rule_without_transfer_countA row from fare_transfer_rules.txt has from_leg_group_id equal to to_leg_group_id, but has no transfer_count specified. Canonical rule WARNING fast_travel_between_consecutive_stopsA transit vehicle moves too fast between two consecutive stops. Canonical rule WARNING fast_travel_between_far_stopsA transit vehicle moves too fast between two far stops. Canonical rule WARNING feed_expiration_date30_daysDataset should cover at least the next 30 days of service. Canonical rule WARNING feed_expiration_date7_daysDataset should be valid for at least the next 7 days. Canonical rule WARNING feed_info_lang_and_agency_lang_mismatchMismatching feed and agency language fields. Canonical rule INFO feed_valid_beyond_total_service_windowThe feed is valid 14 days beyond its total service window. Canonical rule ERROR forbidden_arrival_or_departure_timeThe arrival or departure times are provided alongside pickup or drop-off windows in stop_times.txt. Canonical rule ERROR forbidden_continuous_pickup_drop_offContinuous pickup or drop-off are forbidden when routes.continuous_pickup or routes.continuous_drop_off are 0, 2 or 3 and stop_times.start_pickup_drop_off_window or stop_times.end_pickup_drop_off_window are defined for any trip of this route. Canonical rule ERROR forbidden_drop_off_typepickup_drop_off_window fields are forbidden when the drop_off_type is regularly scheduled (0). Canonical rule ERROR forbidden_geography_idA stop_time entry has more than one geographical id defined. Canonical rule ERROR forbidden_pickup_typepickup_drop_off_window fields are forbidden when the pickup_type is regularly scheduled (0) or must be coordinated with the driver (3). Canonical rule ERROR forbidden_prior_day_booking_field_valueA forbidden field value is present for a prior-day booking rule in booking_rules.txt Canonical rule ERROR forbidden_prior_notice_start_dayprior_notice_start_day value is forbidden when prior_notice_duration_max is set. Canonical rule ERROR forbidden_prior_notice_start_timeprior_notice_start_time value is forbidden when prior_notice_start_day value is not set in booking_rules.txt. Canonical rule ERROR forbidden_real_time_booking_field_valueA forbidden field value is present for a real-time booking rule in booking_rules.txt. Canonical rule ERROR forbidden_same_day_booking_field_valueA forbidden field value is present for a same-day booking rule in booking_rules.txt. Canonical rule ERROR forbidden_shape_dist_traveledA stop_time entry has a shape_dist_traveled without a stop_id value. Canonical rule ERROR foreign_key_violationWrong foreign key. Canonical rule INFO future_calendarAll services in the feed start in the future; no service covers today's date. Canonical rule INFO future_feedThe feed covers the future only. Canonical rule ERROR geo_json_duplicated_elementDuplicated elements in locations.geojson file. Canonical rule INFO geo_json_unknown_elementUnknown elements in locations.geojson file. Canonical rule ERROR google_ic_price_checkThe Google Transit ic_price extension has an invalid value. GTFS Guru only WARNING google_transfer_type_checkGoogle Transit ignores this transfer type. GTFS Guru only WARNING headway_too_largeA frequency headway is longer than one hour. GTFS Guru only ERROR i_o_errorError in IO operation. Canonical rule WARNING inconsistent_agency_langInconsistent language among agencies. Canonical rule ERROR inconsistent_agency_timezoneInconsistent Timezone among agencies. Canonical rule WARNING inconsistent_route_type_for_block_idA block should have the same route mode. Canonical rule WARNING inconsistent_route_type_for_in_seat_transferAn in-seat transfer should occur in the same route mode. Canonical rule ERROR invalid_characterThis field contains invalid characters, such as the replacement character ("�"). Canonical rule ERROR invalid_colorA field contains an invalid color value. Canonical rule ERROR invalid_currencyA field contains a wrong currency code. Canonical rule ERROR invalid_currency_amountA currency amount field has a value that does not match the format of its corresponding currency code field. Canonical rule ERROR invalid_dateA field cannot be parsed as date. Canonical rule ERROR invalid_emailA field contains a malformed email address. Canonical rule ERROR invalid_floatA field cannot be parsed as a floating point number. Canonical rule ERROR invalid_geometryA polygon in locations.geojson is unparsable or invalid. Canonical rule ERROR invalid_input_files_in_subfolderAt least 1 GTFS file is in a subfolder. Canonical rule ERROR invalid_integerA field cannot be parsed as an integer. Canonical rule ERROR invalid_language_codeA field contains a wrong language code. Canonical rule ERROR invalid_phone_numberA field contains a malformed phone number. Canonical rule ERROR invalid_pickup_drop_off_windowThe pickup/drop-off window in stop_times.txt is invalid. Canonical rule ERROR invalid_prior_notice_duration_minAn invalid prior_notice_duration_min value is present in a booking rule. Canonical rule ERROR invalid_row_lengthInvalid csv row length. Canonical rule ERROR invalid_timeA field cannot be parsed as time. Canonical rule ERROR invalid_timezoneA field cannot be parsed as a timezone. Canonical rule ERROR invalid_urlA field contains a malformed URL. Canonical rule WARNING leading_or_trailing_whitespacesThe value in CSV file has leading or trailing whitespaces. Canonical rule ERROR location_with_unexpected_stop_timeA location in stops.txt that is not a stop is referenced by some stop_times.stop_id. Canonical rule ERROR location_without_parent_stationA location that must have parent_station field does not have it. Canonical rule ERROR malformed_jsonA JSON file is malformed. Canonical rule WARNING missing_bike_allowanceFerry trips should include bike allowance information. Canonical rule ERROR missing_calendar_and_calendar_date_filesMissing GTFS files calendar.txt and calendar_dates.txt. Canonical rule WARNING missing_feed_contact_email_and_urlBest Practices for feed_info.txt suggest providing at least one of feed_contact_email and feed_contact_url. Canonical rule WARNING missing_feed_info_dateOne of feed_start_date or feed_end_date is specified, but not both. Canonical rule ERROR missing_level_idstops.level_id is conditionally required. Canonical rule WARNING missing_pickup_drop_off_booking_rule_idpickup_booking_rule_id is recommended when pickup_type=2 and drop_off_booking_rule_id is recommended when drop_off_type=2. Canonical rule ERROR missing_pickup_or_drop_off_windowEither the start or end pickup/drop-off window is missing in stop_times.txt. Canonical rule ERROR missing_prior_day_booking_field_valueThe prior_notice_last_day and the prior_notice_last_time values are required for prior day booking_type in booking_rules.txt. Deprecated in 7.0.0 ERROR missing_prior_notice_duration_minprior_notice_duration_min value is required for same day booking_type in booking_rules.txt. Canonical rule ERROR missing_prior_notice_last_dayThe prior_notice_last_day is required when booking_type=2 (prior day booking) is specified in booking_rules.txt. Canonical rule ERROR missing_prior_notice_last_timeThe prior_notice_last_time is required when booking_type=2 (prior day booking) is specified in booking_rules.txt. Canonical rule ERROR missing_prior_notice_start_timeprior_notice_start_time value is required when prior_notice_start_day value is set in booking_rules.txt. Canonical rule WARNING missing_recommended_columnA recommended column is missing in the input file. Deprecated in 7.0.0 WARNING missing_recommended_fieldA recommended field is missing. Canonical rule WARNING missing_recommended_fileA recommended file is missing. Canonical rule ERROR missing_required_agency_idAgency id is required when there are multiple agencies. Canonical rule ERROR missing_required_columnA required column is missing in the input file. Canonical rule ERROR missing_required_elementA required element is missing in locations.geojson. Canonical rule ERROR missing_required_fieldA required field is missing. Canonical rule ERROR missing_required_fileA required file is missing. Canonical rule ERROR missing_stop_namestops.stop_name is required for location_type equal to 0, 1, or 2. Canonical rule ERROR missing_stop_times_recordOnly one stop_times record is found where two are required. Canonical rule WARNING missing_timepoint_valuestop_times.timepoint value is missing for a record. Canonical rule ERROR missing_trip_edgeMissing trip edge arrival_time or departure_time. Canonical rule WARNING mixed_case_recommended_fieldThis field has customer-facing text and should use Mixed Case (should contain upper and lower case letters). Canonical rule WARNING more_than_one_entityMore than one row in CSV. Canonical rule ERROR new_line_in_valueNew line or carriage return in a value in CSV file. Canonical rule WARNING non_ascii_or_non_printable_charNon ascii or non printable char in ID field. Canonical rule ERROR number_out_of_rangeOut of range value. Canonical rule ERROR overlapping_frequencyTrip frequencies overlap. Canonical rule ERROR overlapping_zone_and_pickup_drop_off_windowTwo entities have overlapping pickup/drop-off windows and zones. Canonical rule WARNING pathway_dangling_generic_nodeA generic node has only one incident location in a pathway graph. Canonical rule WARNING pathway_loopA pathway starts and ends at the same location. Canonical rule ERROR pathway_to_platform_with_boarding_areasA pathway has an endpoint that is a platform which has boarding areas. Canonical rule ERROR pathway_to_stop_with_access_outside_of_station_pathwaysA pathway has an endpoint that is a stop with stop_access=1, which should be accessible outside of the station’s pathways. Canonical rule ERROR pathway_to_wrong_location_typeA pathway has an endpoint that is a station. Canonical rule ERROR pathway_unreachable_locationA location is not reachable at least in one direction: from the entrances or to the exits. Canonical rule INFO platform_without_parent_stationA platform has no parent_station field set. Canonical rule ERROR point_near_originA point is too close to origin (0, 0). Canonical rule ERROR point_near_poleA point is too close to the North or South Pole. Canonical rule ERROR prior_notice_last_day_after_start_dayPrior notice last day should not be greater than the prior notice start day in booking_rules.txt. Canonical rule ERROR route_both_short_and_long_name_missingBoth route_short_name and route_long_name are missing for a route. Canonical rule WARNING route_color_contrastInsufficient route color contrast. Canonical rule WARNING route_long_name_contains_short_nameLong name should not contain short name for a single route. Canonical rule ERROR route_networks_specified_in_more_than_one_fileIndicates that route network identifiers are specified across multiple files. Canonical rule WARNING route_short_name_too_longShort name of a route is too long (more than 12 characters). Canonical rule ERROR runtime_exception_in_loader_errorRuntimeException while loading GTFS dataset in memory. Canonical rule ERROR runtime_exception_in_validator_errorRuntimeException while validating GTFS archive. Canonical rule WARNING same_name_and_description_for_routeSame name and description for route. Canonical rule WARNING same_name_and_description_for_stopSame name and description for stop. Canonical rule WARNING same_route_and_agency_urlSame routes.route_url and agency.agency_url. Canonical rule WARNING same_stop_and_agency_urlSame stops.stop_url and agency.agency_url. Canonical rule WARNING same_stop_and_route_urlSame stops.stop_url and routes.route_url. Canonical rule INFO service_extends_far_in_the_futureA service end date is more than 2 years in the future. Canonical rule WARNING service_has_no_active_day_of_the_weekA service is not valid for any day of the week. Canonical rule WARNING service_never_activeA calendar service is never active. GTFS Guru only INFO service_window_outside_feed_periodA service window is not covered by the feed's validity period. Canonical rule WARNING single_shape_pointThe shape within shapes.txt contains a single shape point. Canonical rule ERROR start_and_end_range_equalTwo date or time fields are equal. Canonical rule ERROR start_and_end_range_out_of_orderTwo date or time fields are out of order. Canonical rule ERROR station_with_parent_stationA station has parent_station field set. Canonical rule ERROR stop_access_specified_for_incorrect_locationA location that is not a stop has stop_access specified. Canonical rule ERROR stop_access_specified_for_stop_with_no_parent_stationA stop without a value for parent station has stop_access specified. Canonical rule WARNING stop_has_too_many_matches_for_shapeStop entry that has many potential matches to the trip's path of travel, as defined by the shape entry in shapes.txt. Canonical rule WARNING stop_headsign_invalid_charA stop headsign contains a consumer-incompatible character. GTFS Guru only ERROR stop_time_timepoint_without_timesarrival_time or departure_time not specified for timepoint. Canonical rule ERROR stop_time_with_arrival_before_previous_departure_timeBackwards time travel between stops in stop_times.txt Canonical rule ERROR stop_time_with_only_arrival_or_departure_timeMissing stop_times.arrival_time or stop_times.departure_time. Canonical rule WARNING stop_too_far_from_shapeStop too far from trip shape. Canonical rule WARNING stop_too_far_from_shape_using_user_distanceStop time too far from shape. Canonical rule ERROR stop_without_locationstop_lat and/or stop_lon is missing for stop with location_type equal to0, 1, or 2 Canonical rule WARNING stop_without_stop_timeA stop in stops.txt is not referenced by any stop_times.stop_id. Canonical rule INFO stop_without_zone_idStop without value for stops.zone_id contained in a route with a zone-dependent fare rule. Canonical rule WARNING stops_match_shape_out_of_orderTwo stop entries are different than their arrival-departure order defined by shapes.txt. Canonical rule ERROR thread_execution_errorExecutionException during multithreaded validation Canonical rule ERROR timeframe_only_start_or_end_time_specifiedA row from timeframes.txt was found with only one of start_time and end_time specified. Canonical rule ERROR timeframe_overlapTwo entries in timeframes.txt with the same timeframe_group_id and service_id have overlapping time intervals. Canonical rule ERROR timeframe_start_or_end_time_greater_than_twenty_four_hoursA time in timeframes.txt is greater than 24:00:00. Canonical rule WARNING too_many_days_without_serviceThe feed has a gap of at least 14 days without service. GTFS Guru only ERROR too_many_rowsA CSV file has too many rows. Canonical rule INFO transfer_distance_above_2_kmThe transfer distance from stop to stop in transfers.txt is larger than 2 km. Canonical rule WARNING transfer_distance_too_largeThe transfer distance from stop to stop in transfers.txt is larger than 10 km. Canonical rule ERROR transfer_with_invalid_stop_location_typeA stop id field from GTFS file transfers.txt references a stop that has a location_type other than 0 or 1 (aka Stop/Platform or Station). Canonical rule ERROR transfer_with_invalid_trip_and_routeA trip id field from GTFS file transfers.txt references a route that does not match its trips.txt route_id. Canonical rule ERROR transfer_with_invalid_trip_and_stopA trip id field from GTFS file transfers.txt references a stop that is not included in the referenced trip's stop-times. Canonical rule WARNING transfer_with_suspicious_mid_trip_in_seatA trip id field from GTFS file transfers.txt with an in-seat transfer type references a stop that is not in the expected position in the trip's stop-times. Canonical rule ERROR translation_foreign_key_violationAn entity with the given record_id and record_sub_id cannot be found in the referenced table. Canonical rule ERROR translation_unexpected_valueA field in a translations row has value but must be empty. Canonical rule WARNING translation_unknown_table_nameA translation references an unknown or missing GTFS table. Canonical rule WARNING trip_coverage_not_active_for_next7_daysTrips data should be valid for at least the next seven days. Canonical rule ERROR trip_distance_exceeds_shape_distanceThe distance between the last shape point and last stop point is greater than or equal to the 11.1m threshold. Canonical rule WARNING trip_distance_exceeds_shape_distance_below_thresholdThe distance between the last shape point and last stop point is greater than 0 but less than the 11.1m threshold. Canonical rule INFO trip_headsign_matches_intermediate_stopTrip headsign matches the name of an intermediate stop, not the last stop. Canonical rule INFO trip_with_shape_dist_traveled_but_no_shape_distancesA trip has shape_dist_traveled values in stop_times.txt but the shape referenced by the trip's shape_id does not have shape_dist_traveled values on all of its points in shapes.txt. Canonical rule ERROR u_r_i_syntax_errorA string could not be parsed as a URI reference. Canonical rule WARNING unexpected_enum_valueAn enum has an unexpected value. Canonical rule INFO unknown_columnA column name is unknown. Canonical rule INFO unknown_fileA file is unknown. Canonical rule INFO unsorted_stop_timesStop times are not sorted by trip_id and stop_sequence. Canonical rule ERROR unsupported_feature_typeAn unsupported feature type is used in the locations.geojson file. Canonical rule ERROR unsupported_geo_json_typeAn unsupported GeoJSON type is used in the locations.geojson file. Canonical rule ERROR unsupported_geometry_typeA GeoJSON feature has an unsupported geometry type in locations.geojson. Canonical rule WARNING unusable_tripTrips must have more than one stop to be usable. Canonical rule WARNING unused_agencyAn agency is not referenced by any route. GTFS Guru only INFO unused_parent_stationUnused parent station. Deprecated in 7.0.0 WARNING unused_routeA route has no trips. GTFS Guru only WARNING unused_shapeShape is not used in GTFS file trips.txt. Canonical rule INFO unused_stationUnused station. Canonical rule WARNING unused_stopA stop is not used by any trip. GTFS Guru only WARNING unused_tripTrip is not be used in stop_times.txt Canonical rule ERROR wrong_parent_location_typeIncorrect type of the parent location. Canonical rule

Every rule the canonical validator publishes in v8.0.1 is implemented here: the list of canonical rules with no GTFS Guru equivalent is empty.

Deprecated by the canonical validator

Codes the canonical validator has retired. GTFS Guru still reports the ones marked as emitted, so a report may carry both a deprecated code and its replacement.

NoticeDeprecated inReasonReplaced byIn GTFS Guru
missing_prior_day_booking_field_value 7.0.0 Separated into missing_prior_notice_last_day and missing_prior_notice_last_time notices missing_prior_notice_last_day, missing_prior_notice_last_time Still reported
missing_recommended_column 7.0.0 Unused validation notice — Still reported
unused_parent_station 7.0.0 Renamed to unused_station unused_station Still reported

Accepted differences

Deliberate, reviewed departures from the two upstreams above. Each one is recorded in version control; the build fails if this list and the recorded set disagree.

Columns accepted beyond the reference 6

These columns are read rather than reported as unknown, so a producer carrying them is not told the column is a mistake.

fare_leg_join_rules.txt/from_area_id

Accepted difference

from_area_id

GTFS Fares v2 area column. The reference lists only the network and stop pairs for this file, so gtfs.guru reads the column instead of reporting unknown_column.

Upstream: google/transit@3215f98f

fare_leg_join_rules.txt/to_area_id

Accepted difference

to_area_id

GTFS Fares v2 area column. The reference lists only the network and stop pairs for this file, so gtfs.guru reads the column instead of reporting unknown_column.

Upstream: google/transit@3215f98f

location_groups.txt/location_group_desc

Accepted difference

location_group_desc

Read alongside location_group_name. The reference lists no description column for this file, so gtfs.guru reads the column instead of reporting unknown_column.

Upstream: google/transit@3215f98f

routes.txt/route_branding_url

Accepted difference

route_branding_url

Google Transit extension the reference does not list.

Upstream: google/transit@3215f98f

trips.txt/continuous_drop_off

Accepted difference

continuous_drop_off

Google Transit extension the reference does not list on trips.txt; the reference specifies the equivalent columns on routes.txt and stop_times.txt.

Upstream: google/transit@3215f98f

trips.txt/continuous_pickup

Accepted difference

continuous_pickup

Google Transit extension the reference does not list on trips.txt; the reference specifies the equivalent columns on routes.txt and stop_times.txt.

Upstream: google/transit@3215f98f

Notice codes with no canonical rule 14

Checks GTFS Guru adds, and codes the canonical validator has retired but this build still reports.

agency_phone_invalid

Accepted differenceNeeds --google-rules

agency_phone_invalid

Consumer-compatibility check for Google Transit, off by default and enabled with --google-rules. The canonical validator publishes no equivalent rule.

Reported as agency_phone_invalid

Upstream: MobilityData/gtfs-validator@v8.0.1

duplicate_trip

Accepted differenceNeeds --google-rules

duplicate_trip

Consumer-compatibility check for Google Transit, off by default and enabled with --google-rules. The canonical validator publishes no equivalent rule.

Reported as duplicate_trip

Upstream: MobilityData/gtfs-validator@v8.0.1

google_ic_price_check

Accepted differenceNeeds --google-rules

google_ic_price_check

Consumer-compatibility check for Google Transit, off by default and enabled with --google-rules. The canonical validator publishes no equivalent rule.

Reported as google_ic_price_check

Upstream: MobilityData/gtfs-validator@v8.0.1

google_transfer_type_check

Accepted differenceNeeds --google-rules

google_transfer_type_check

Consumer-compatibility check for Google Transit, off by default and enabled with --google-rules. The canonical validator publishes no equivalent rule.

Reported as google_transfer_type_check

Upstream: MobilityData/gtfs-validator@v8.0.1

headway_too_large

Accepted differenceNeeds --google-rules

headway_too_large

Consumer-compatibility check for Google Transit, off by default and enabled with --google-rules. The canonical validator publishes no equivalent rule.

Reported as headway_too_large

Upstream: MobilityData/gtfs-validator@v8.0.1

missing_prior_day_booking_field_value

Accepted difference

missing_prior_day_booking_field_value

Deprecated by the canonical validator in 7.0.0, which separated it into missing_prior_notice_last_day and missing_prior_notice_last_time. gtfs.guru emits all three, so a feed validated here reports the deprecated code alongside its replacements.

Reported as missing_prior_day_booking_field_value

Upstream: MobilityData/gtfs-validator@v8.0.1

service_never_active

Accepted difference

service_never_active

A gtfs.guru rule with no canonical equivalent: every weekday flag is 0 and calendar_dates.txt adds no service date, so trips using the service never run.

Reported as service_never_active

Upstream: MobilityData/gtfs-validator@v8.0.1

stop_headsign_invalid_char

Accepted differenceNeeds --google-rules

stop_headsign_invalid_char

Consumer-compatibility check for Google Transit, off by default and enabled with --google-rules. The canonical validator publishes no equivalent rule.

Reported as stop_headsign_invalid_char

Upstream: MobilityData/gtfs-validator@v8.0.1

too_many_days_without_service

Accepted differenceNeeds --google-rules

too_many_days_without_service

Consumer-compatibility check for Google Transit, off by default and enabled with --google-rules. The canonical validator publishes no equivalent rule.

Reported as too_many_days_without_service

Upstream: MobilityData/gtfs-validator@v8.0.1

Columns the reference requires and this build does not 3

The reference marks these columns Required. This build does not fail a feed that leaves them empty, for the reason given on each.

fare_attributes.txt/transfers

Accepted difference

transfers

The reference marks it Required, but an empty value is defined as unlimited transfers and occurs in published feeds, so gtfs.guru does not require a value.

Upstream: google/transit@3215f98f

timeframes.txt/timeframe_group_id

Accepted difference

timeframe_group_id

The reference marks it Required; gtfs.guru requires only service_id here. A missing group id surfaces as a foreign-key violation on fare_leg_rules.from_timeframe_group_id/to_timeframe_group_id rather than as a missing-column error.

Upstream: google/transit@3215f98f

transfers.txt/transfer_type

Accepted difference

transfer_type

The reference marks it Required, but an empty value is defined as 0 (recommended transfer point), so gtfs.guru does not require a value.

Upstream: google/transit@3215f98f

Coverage by file

Every file this build models, with the number of columns it reads, the columns it requires, and the columns whose values are checked against an enumerated domain.

FileColumnsRequiredEnum domains
agency.txt931
areas.txt210
attributions.txt1113
booking_rules.txt1521
calendar.txt10107
calendar_dates.txt331
fare_attributes.txt742
fare_leg_join_rules.txt620
fare_leg_rules.txt810
fare_media.txt321
fare_products.txt630
fare_rules.txt510
fare_transfer_rules.txt712
feed_info.txt930
frequencies.txt541
levels.txt320
location_group_stops.txt220
location_groups.txt310
locations.geojsonnot tabular——
networks.txt210
pathways.txt1252
rider_categories.txt431
route_networks.txt220
routes.txt1524
shapes.txt540
stop_areas.txt220
stop_times.txt1825
stops.txt1613
timeframes.txt410
transfers.txt801
translations.txt740
trips.txt1536

How this page is generated

Nothing here is written by hand twice. The revisions come from the baseline document in the repository, the counts and the notice list come from the same tables the validator uses, and the support statuses come from a reviewed change log next to them. Reproduce the machine-readable form yourself:

gtfs-guru spec-surface

The baseline was last moved on 2026-08-18. Sources: the GTFS reference at this revision, the canonical validator release, and its published rule list.