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 |
How this table is built
Section titled “How this table is built”The rules are dumped from the Rust registry with gapline rules list --format json:
gapline rules list --format json -o validation-rules.jsonThe 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.
Severity policy
Section titled “Severity policy”- 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.
See also
Section titled “See also”gapline rules list— enumerate rules from a specific local build.gapline validate— disable a rule via--disable-rule.- Concepts / Severities — when to promote a warning.