Skip to content

Validation rules

The catalogue below lists every validation rule compiled into gapline. Filter by severity, by stage, or search a rule ID to find what you are looking for. Use the matching rule_id as the argument to --disable-rule when you want to silence a rule for a specific run.

92 rules
54 errors
33 warnings
5 infos
Severity
Stage
Rule ID Severity Stage
block_id_trip_overlap Error Semantic
calendar_dates_coherence Warning Semantic
calendar_dates_service_not_in_calendar Warning Semantic
calendar_ranges Error Semantic
case_sensitive_name Error Structural
conveyal_trip_without_shape Warning Semantic
coordinates_near_origin Warning Semantic
coordinates_near_pole Warning Semantic
csv_parsing_failed Error Structural
duplicate_coordinates Warning Semantic
duplicate_key Error Semantic
duplicated_column Error Structural
empty_column_name Error Structural
empty_file Error Structural
empty_row Warning Structural
etalab_missing_contact Warning Semantic
feed_coverage Warning Semantic
field_definition_agency Error Semantic
field_definition_attributions Error Semantic
field_definition_feed_info Warning Semantic
field_definition_pathways Error Semantic
field_definition_routes Error Semantic
field_definition_stop_times Error Semantic
field_definition_stops Error Semantic
field_definition_transfers Error Semantic
field_definition_translations Error Semantic
field_definition_trips Error Semantic
field_type_validator Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
foreign_key_violation Error Semantic
frequencies_coherence Error Semantic
google_coordinates_in_stop_name Warning Semantic
google_identical_route_colors Warning Semantic
invalid_input_files_in_subfolder Error Structural
invalid_parent_type Error Semantic
invalid_row_length Error Structural
low_trip_activity Warning Semantic
missing_agency_email Info Semantic
missing_bikes_info Info Semantic
missing_calendar_and_calendar_date_files Error Structural
missing_direction_id Warning Semantic
missing_header Error Structural
missing_recommended_file Warning Structural
missing_required_column Error Structural
missing_required_file Error Structural
missing_route_colors Info Semantic
missing_wheelchair_info Warning Semantic
missing_wheelchair_info Warning Semantic
number_out_of_range Error Semantic
otp_missing_feed_version Warning Semantic
otp_trip_too_few_stops Error Semantic
pathway_validation Error Semantic
redundant_route_name Warning Semantic
route_short_name_too_long Warning Semantic
route_type_semantics Warning Semantic
shape_geometry Warning Semantic
speed_validation Warning Semantic
stop_name_all_caps Warning Semantic
stop_too_far_from_shape Warning Semantic
text_validator Warning Semantic
time_sequence Error Semantic
too_many_rows Error Structural
transfer_validation Error Semantic
unknown_column Info Structural
unknown_file Info Structural
unused_agency Warning Semantic
unused_fare Warning Semantic
unused_route Warning Semantic
unused_service Warning Semantic
unused_shape Warning Semantic
unused_station Warning Semantic
unused_stop Warning Semantic

The rules are dumped from the Rust registry with gapline rules list --format json:

Terminal window
gapline rules list --format json -o validation-rules.json

The JSON is committed to the documentation repository. A new release refreshes the file, and the table above picks up the update on the next build — no manual sync needed.

  • Error — the feed is not compliant. Downstream consumers will reject the offending rows.
  • Warning — the feed is compliant but likely broken. Investigate.
  • Info — a best-practice suggestion.

See concepts / severities for the full policy and how --min-severity promotes warnings to gate failures.

  • Structural — the feed’s shape: required files, CSV parseability, header presence, column validity. Run first; nothing meaningful runs downstream if these fail.
  • Semantic — everything that requires the parsed data model: field values, foreign keys, schedule coherence, best practices.