# Static validation errors and warnings

This page provides a list of validation errors and warnings for the Static Transit feed, as well
as tips on how to troubleshoot these issues.

## Static validation errors

Validation errors are critical blocking issues that you must fix before Google can correctly
process your feed.

To debug these errors, use the information in the following table.

- The "Error message" column provides the message that displays in the validation report in the Transit Partner Dashboard. It summarizes the error.
- The "Relevant file" column provides the files that you need to open and troubleshoot.
- The "Troubleshooting tips" column provides the major steps you need to take to resolve the error.

| Error message | Relevant file | Troubleshooting tips |
|---|---|---|
| Agencies With Different Languages | `agency.txt` | In the `agency_lang` column, verify that all agencies use the same `agency_lang` value. |
| Agencies With Different Timezones | `agency.txt` | In the `agency_timezone` column, verify that all agencies use the same `agency_timezone` value. |
| Agency Language And Feed Language Mismatch | `agency.txt`, `feed_info.txt` | Verify that the languages codes in the following columns of both files are the same: - `agency_lang` column in the `agency.txt` file - `feed_lang` column in the `feed_info.txt` file |
| Feed Has No Language Specified | `agency.txt`, `feed_info.txt` | Verify that the following columns provide a language code in one of the files: - `agency_lang` column in the `agency.txt` file - `feed_lang` column in the `feed_info.txt` file |
| Missing Required Column | Any | Add the missing column into the corresponding text (`.txt`) file. |
| Deprecated Column In `attributions.txt` | `attributions.txt` | Delete the deprecated `attribution_text` column. |
| Expired Feed Has Very Short Service | `calendar.txt` | Verify that the `start_date` and `end_date` columns in the feed are up to date and have meaningful start dates and end dates. |
| Fare Rule With Both Route Id References | `fare_rules.txt` | Examine the `route_id` and `contains_id` columns. You can define the fare rules using either `route_id` or `contains_id`. Therefore, it's not necessary to fill values into both the columns. |
| More Than One Feed Info Entry | `feed_info.txt` | Ensure that there's only one entry in the `feed_info.txt` file. |
| Overlapping Frequency-Based Trips | `frequencies.txt` | Examine the `trip_id`, `start_time`, and `end_time` columns. Ensure that the rows with the same `trip_id` value don't have any overlapping `start_time` and `end_time` intervals. |
| Frequency-Based Trip Transfer | `frequencies.txt`, `transfers.txt` | Verify that the `from_stop_id` and `to_stop_id` columns in the `transfers.txt` file don't reference any trips with an entry of `exact_times=0` in the `frequencies.txt` file. |
| Missing Required Column For Pathways | `pathways.txt` | Verify that the `pathways.txt` file includes both the `pathway_mode` and `is_bidirectional` columns. |
| Missing Required Value For Pathways | `pathways.txt` | Verify that both the `pathway_mode` and `is_bidirectional` columns have valid values. |
| Route Short Name Or Long Name Required | `routes.txt` | Examine the `route_short_name` and `route_long_name` columns. Ensure that each route includes a value in at least one of these columns. |
| Too Many Entries | `routes.txt`, `stops.txt` | Verify that the entries in `routes.txt` and `stops.txt` contain accurate information that reflects a real-world transit system. |
| Shape With Partial Shape-Distance-Traveled Values | `shapes.txt` | Examine the `shape_dist_traveled` column. If there's any `shape_dist_traveled` values defined, you must define this value for all shape points. Otherwise, leave these values empty. |
| Point Location Too Close To Origin (0,0) | `shapes.txt`, `stops.txt` | Verify that the following columns have accurate values for the latitude and longitude instead of (`0`,`0`): - `shape_pt_lat` and `shape_pt_lon` columns in the `shapes.txt` file - `stop_lat` and `stop_lon` columns in the `stops.txt` file |
| Point Location Too Close To North/South Pole | `shapes.txt`, `stops.txt` | Verify that the following columns have accurate values for the latitude and longitude instead of (`90`,`0`) or (`-90`,`0`): - `shape_pt_lat` and `shape_pt_lon` columns in the `shapes.txt` file - `stop_lat` and `stop_lon` columns in the `stops.txt` file |
| Stop Times with Arrival Before Previous Departure Time | `stop_times.txt` | Examine the `stop_sequence`, `arrival_time`, and `departure_time` columns. Ensure that each `departure_time` value for an earlier entry isn't later than the `arrival_time` value of a subsequent entry. |
| Stop Times with Only Arrival or Departure Time Specified | `stop_times.txt` | Specify the values for both the `arrival_time` and `departure_time` columns. |
| Trip Departure Time Is Too Long | `stop_times.txt` | Sort the `stop_sequence` column in ascending order. To verify the trip, use the `trip_id` column in the first entry. Verify that its associated `departure_time` column has a reasonable value. |
| Trip Is Too Long | `stop_times.txt` | Verify that the `departure_time` and `arrival_time` columns have reasonable values that reflect real-world conditions. |
| Trip With Out-of-Order Arrival Time | `stop_times.txt` | Examine the `arrival_time` and `stop_sequence` columns. There might be one or more values out of order with the previous entry. The `arrival_time` and `stop_sequence` values always need to be greater than the value in the previous trip's entry. |
| Trip With Out-of-Order Departure Time | `stop_times.txt` | Examine the `departure_time` and `stop_sequence` columns. There might be one or more values out of order with the previous entry. The `departure_time` and `stop_sequence` values always need to be greater than the value in the previous trip's entry. |
| Trip With Out-of-Order Shape-Distance-Traveled | `stop_times.txt` | Examine the `shape_dist_traveled` column. There might be one or more values out of order with the previous entry of a particular `trip_id` value. The `shape_dist_traveled` values always need to be greater than the value in the previous trip's entry. |
| Location Without Parent Station | `stops.txt` | Examine the `location_type` column with values `2` (entrance), `3` (generic node), or `4` (boarding area). Ensure that each of these values has an associated value in the `parent_station` column. |
| Parent Station with Wrong Location Type | `stops.txt` | Examine the `parent_station` and `location_type` columns. Verify that the stations have a `location_type` value of `1`. |
| Station With Parent Station | `stops.txt` | Examine the `location_type` and `parent_station` columns. Verify that each station (`location_type=1`) doesn't have a `parent_station` value. |
| Stop With Parent Station And Timezone | `stops.txt` | Examine the `parent_station` and `stop_timezone` columns. If a stop has a parent station, it inherits the parent station's timezone. Therefore, if there's a value for `parent_station`, leave the `stop_timezone` value empty. |
| Unable to Find Any Stops | `stops.txt` | Verify that the `stops.txt` file is present and has one or more rows with valid values. |
| Location With Stop Time Overrides | `stops.txt`, `stop_times.txt` | Verify that the following columns all reference locations that must be stops (`location_type=0`): - `location_type` column in the `stops.txt` file - `stop_id` column in the `stop_times.txt` file |
| Location With Stop Times | `stops.txt`, `stop_times.txt` | Verify that the following columns all reference locations that must be stops (`location_type=0`): - `location_type` column in the `stops.txt` file - `stop_id` column in the `stop_times.txt` file |
| Transfer With Invalid Route and Trip | `transfers.txt` | Examine the `from_route_id`, `to_route_id`, `from_trip_id`, and `to_trip_id` columns. Verify that each entry that references a route and a trip has the trip belong to the specified route. |
| Duplicate Transfers | `transfers.txt` | Verify that each column in the `transfers.txt` file has no duplicate entries. |
| Min Transfer Time With Invalid Transfer Type | `transfers.txt` | Verify that the values in the `min_transfer_time` column match with a `transfer_type` value of `2`. That's because only this transfer type requires a minimum amount of time between the trip's arrival and departure. |
| Transfer Between Stop And Station | `transfers.txt` | Examine the `from_stop_id` and `to_stop_id` columns. Ensure that the `transfers.txt` file doesn't have any ambiguous stop-to-station and station-to-stop transfers. Specifically, if a transfer is found from a first station to a stop contained in a second station, and a different transfer is found from a stop contained in the first station to the second station. |
| Translation Unexpected Value | `translations.txt` | Verify in all columns that the fields that must be empty don't have any values. |
| Block Trips With Overlapping Stop Times | `trips.txt` | Examine the `block_id` column to see if any stop times overlap each other. Two trips in the same block can't have overlapping stop times if both trips are active on the same service date. Specifically, the last departure time of a trip in a block needs to be less than or equal to the first arrival time of the next trip in the block. |
| Duplicate GTFS File | The zip file that contains all of the text (`.txt`) files | Avoid uploading duplicate zip files to your Transit Partner Dashboard. Only upload a zip file when it contains new data. |
| Unable to Open GTFS | The zip file that contains all of the text (`.txt`) files | Compress all of the text files directly into a zip file and upload it to your Transit Partner Dashboard again. |

## Static validation warnings

Validation warnings are messages that indicate potential problems with your feed. It's important
to troubleshoot these warnings. If you leave them unresolved, the data in your feed might display
incorrectly on Google Maps.

To debug the warning, use the information from the following table.

- The "Warning message" column provides the message that displays in the validation report in the Transit Partner Dashboard. It summarizes the warning.
- The "Relevant file" column provides the file that you need to open and troubleshoot.
- The "Troubleshooting tips" column provides the major steps you need to take to resolve the warning.

| Warning message | Relevant file | Troubleshooting tips |
|---|---|---|
| Feed Has No Language Specified | `agency.txt` | Add an `agency_lang` column in the `agency.txt` file. Alternatively, add a `feed_info.txt` file. |
| Invalid Phone Number | `agency.txt` and `attributions.txt` | Verify that the values in the following columns are compliant with phone number naming conventions: - `agency_phone` column in `agency.txt` - `attribution_phone` column in `attributions.txt` |
| Unknown Column | Any | Open the file mentioned in the warning, examine it for typos in the column name, or delete the column if it's redundant. |
| Unknown File | Any | Open the file mentioned in the warning, examine it for typos in the filename, or delete the redundant file. |
| Leading Or Trailing Whitespaces | Any | Examine the affected columns and delete all leading or trailing whitespaces from the values. |
| Empty Column Name | Any | Examine the affected file. Ensure that there are no empty column names. |
| Empty Row | Any | Examine the affected file and ensure that each row contains valid values. |
| Translation Unexpected Value | Any | Examine the affected file. Ensure that any columns that must be empty in fact have no value. |
| Invalid URL | Any of the following files: - `agency.txt` - `attributions.txt` - `feed_info.txt` - `routes.txt` - `stops.txt` | Look for any invalid URL values in the following columns: - `stop_url` column in `stops.txt` - `route_url` column in `routes.txt` - `feed_publisher_url` column in `feed_info.txt` - `agency_fare_url` column in `agency.txt` - `agency_url` column in `agency.txt` > [!NOTE] > **Note:** An example URL is `https://examplepetstore.com`. An example of a common error is missing the `https://`. |
| Deprecated Column In `attributions.txt` | `attributions.txt` | Find the deprecated column and remove it. |
| Feed Has No Calendar Date Exceptions | `calendar_dates.txt` | If the service is inactive on any days such as holidays, be sure to provide the date information. |
| Calendar Has No Active Days Of Week | `calendar.txt` | Examine the `monday` to `sunday` columns to ensure that each calendar entry has at least one active day of the week. |
| Feed Expiration | `calendar.txt` | Verify in the feeds that the `end_date` column includes the current date along with dates in the near future. |
| Feed Has Very Short Service | `calendar.txt` | Verify that the feed's `start_date` and `end_date` columns have at least 14 days of service. |
| Calendar Service Id Has No Active Days | `calendar.txt` and `calendar_dates.txt` | Verify that the `service_id` values for each service have at least some active service dates. |
| Feed Has No Service Dates | `calendar.txt` and `calendar_dates.txt` | Verify that the following columns have active service dates: - The `start_date` and `end_date` columns in the `calendar.txt` file - The `date` and `exception_type` columns in the `calendar_dates.txt` file |
| Service Date Gap | `calendar.txt` and `calendar_dates.txt` | Verify that there are no major gaps in the services dates in the following columns. Large gaps indicates a break in transit service: - The `start_date` and `end_date` columns in the `calendar.txt` file - The `date` and `exception_type` columns in the `calendar_dates.txt` file |
| Fares With and Without Rules | `fare_attributes.txt` and `fare_rules.txt` | Examine the `fare_id` column to verify that all of the fares in the `fare_attributes.txt` file are associated with rules in the `fare_rules.txt` file. |
| Multiple Fares Without Rules | `fare_attributes.txt` and `fare_rules.txt` | Examine the `fare_id` column to verify that all fares in the `fare_attributes.txt` file are associated with rules in the `fare_rules.txt` file. |
| Feed Info Early Start | `feed_info.txt` | Examine the `feed_start_date` column to verify that the services in this feed start at an appropriate time. |
| Future Service | `feed_info.txt` | Examine the `feed_start_date` column to verify that the services in this feed start at a reasonable time. > [!NOTE] > **Note:** Until the `feed_start_date` begins (if stated; otherwise the `start_date` of most services), the schedules from the previous feed will continue to be available on Google Maps. |
| Missing Feed Info Date | `feed_info.txt` | Examine the `feed_start_date` and `feed_start_end` columns. If one column contains a value, be sure to enter a value into the other column. |
| Frequency Headway Longer Than Interval | `frequencies.txt` | Examine each entry in the `frequencies.txt` file to verify that the `headway_secs` value isn't greater than the difference between the `end_time` value and the `start_time` value. |
| Inconsistent exact times frequency | `frequencies.txt` | Verify that the values of the `exact_times` column are the same for all the rows with the same `trip_id`. |
| Low Frequency | `frequencies.txt` | Examine the `headway_secs` column to make sure the value is no greater than 1800 seconds. To increase the frequency, shorten this time interval based on real-world conditions. You could model the trip with exact times (using `exact_times=1` in `frequencies.txt`) or model the individual trips in `trips.txt`. |
| Overlapping Frequency-Based Trips | `frequencies.txt` | Examine all of the rows with the same `trip_id` value to verify that there's no overlapping in the `start_time` and `end_time` interval. |
| Too Frequent | `frequencies.txt` | Verify that the recommended headway in the `headway_secs` column is longer than one minute, which means the value must be higher than `60`. |
| Missing Reciprocal Pathways | `pathways.txt` | Verify that the `is_bidirectional` column is present and has values that are valid. Verify that no entry has reversed values in the `from_stop_id` and `to_stop_id` columns. |
| Missing required value for pathways | `pathways.txt` | Verify that these columns aren't empty and have values: - `pathway_mode` - `is_bidirectional` |
| Pathway Is A Loop | `pathways.txt` | Examine the `from_stop` and `to_stop` columns and verify that in each entry, these columns contain different values. This defines useful pathways for the passengers. |
| Route Color Contrast | `routes.txt` | Verify that the `route_text_color` and `route_color` columns use contrasting colors, as they're often used as text and background colors to display route names. Learn more about [accessible color contrast ratios](https://webaim.org/resources/contrastchecker/) (4.5:1 for text). |
| Route name has special characters | `routes.txt` | Examine the `route_long_name` and the `route_short_name` columns. Remove or replace any special characters, such as `! $ % \ * = _`. |
| Route Name Reused | `routes.txt` | Examine the `route_short_name` and `route_long_name` columns. We recommended that they have unique values. > [!NOTE] > **Note:** Route short names are optional. If a route only has a long name, specify a unique value in the `route_long_name` column. |
| Route Short Name Equals Long Name | `routes.txt` | Examine the `route_short_name` and `route_long_name` columns. Route short names need to be different from the route long names. > [!NOTE] > **Note:** Route short names are optional. If a route only has a long name, specify it in the `route_long_name` column. |
| Route Short Name Is Contained In Long Name | `routes.txt` | Verify that there are no overlapping values in the `route_short_name` or `route_long_name` columns. |
| Route Short Name Is Too Long | `routes.txt` | Verify that the short route names in the `route_short_name` column have no more than six characters. > [!NOTE] > **Note:** Route short names are optional. If a route only has a long name, specify it in the `route_long_name` column. |
| Route Long Name Is Short | `routes.txt` | Verify that the `route_long_name` column contains meaningful values instead of short names. |
| Route Name Equals Description | `routes.txt` | Verify that the `route_short_name` and `route_long_name` columns don't contain any overlapping values from the `route_desc` column. |
| Block Trips with Inconsistent Route Types | `routes.txt` and `trips.txt` | Trips with the same `block_id` values in the `trips.txt` file need to have consistent `route_type` values in the `routes.txt` file. |
| Non-Increasing `shape_dist_traveled` Along A Shape | `shapes.txt` | Verify that each pair of consequent points in the `shape_dist_traveled` column has increasing values. |
| Stop does not match `shape_dist_traveled` value | `shapes.txt` and `stop_times.txt` | Verify that the stop entries in the `stop_times.txt` file aren't away from the stop location as defined by `shape_dist_traveled` values in `shapes.txt`. |
| Stop Too Far From Shape | `shapes.txt` and `stop_times.txt` | Examine the stop entries in the `stop_times.txt` file and the shape entries in the `shapes.txt` file. Each stop must not be more than approximately 100 meters away from the trip's path of travel. |
| Stops Match Shape In Wrong Order | `shapes.txt` and `stop_times.txt` | Verify that the stop entries in the `stop_times.txt` file are consistent with the arrival-departure order as defined by the shape in the `shapes.txt` file. |
| Stop Has Too Many Matches For Shape | `shapes.txt` and `stop_times.txt` | Examine the stop entry in `stop_times.txt` and reduce the potential matches to the trip's path of travel, as defined by the shape entry in `shapes.txt`. |
| Trip With Shape-Distance-Traveled Values But None For Shape | `shapes.txt` and `stop_times.txt` | Examine the `shape_dist_traveled` column in the `stop_times.txt` file. Be sure to specify the `shape_dist_traveled` values in the `shapes.txt` file for the shape associated with the trip. |
| Trip With Shape-Distance-Traveled Values But No Shape | `shapes.txt` and `stop_times.txt` | Examine the `shape_dist_traveled` column in `stop_times.txt` and `shape_id` column in `trips.txt`. Verify that the trip has `shape_dist_traveled` values and corresponding `shape_id` values. |
| Unused Shape | `shapes.txt` and `trips.txt` | Examine the `shape_id` column in both `shapes.txt` and `trips.txt`. Verify that the `trips.txt` file references each `shape_id` value from `shapes.txt`. |
| Fast Travel Between Far Stops | `stop_times.txt` | Examine the `arrival_time` and `departure_time` columns in the `stop_times.txt` file. Verify that the average speed of the transit vehicle is within the appropriate range, and calculate the time to reach the far stops accordingly. |
| Fast Travel Between Stops | `stop_times.txt` | Examine the `arrival_time` and `departure_time` columns in the `stop_times.txt` file. Verify that the average speed of the transit vehicle is within the appropriate range, and calculate the time accordingly. |
| Stop headsign has special characters | `stop_times.txt` | Examine the `stop_headsign` column. Remove or replace any special characters, such as `! $ % \ * = _`. |
| Stop Times with Long Arrival Interval | `stop_times.txt` | Examine the `arrival_time` column. Verify that any two consecutive stops that belong to the same trip have arrival times separated by no more than 24 hours. |
| Stop Times with Long Departure-Arrival Interval | `stop_times.txt` | Examine the `departure_time` and `arrival_time` columns. Verify that the time between departure and the next possible arrival is no more than 24 hours. |
| Suspicious trip first departure time | `stop_times.txt` | Verify that the trip's first departure time in the `departure_time` column is no more than 36 hours. |
| Too Many Consecutive Stop Times With Same Time | `stop_times.txt` | Examine the `departure_time` and `arrival_time` columns. Verify that consecutive stops that are far from each other don't have the same arrival and departure times. |
| Trip With Partial Shape-Distance-Traveled Values | `stop_times.txt` | Examine the `shape_dist_traveled` column. Include distance values for either all stops or none. |
| Stop Time Timepoint Without Time Specified | `stop_times.txt` | Verify that the `arrival_time` and `departure_time` columns contain valid timepoints. |
| Trip With No Pickup Or Dropoff | `stop_times.txt` | Verify that the `pickup_type` and `drop_off_type` columns have valid values, or remove the columns if they don't contain any values. |
| Unusable Trip | `stop_times.txt` and `trips.txt` | Examine the `trip_id` column in both `trips.txt` and `stop_times.txt`. Verify that each `trip_id` value has at least two entries in `stop_times.txt`. |
| Unused Trip | `stop_times.txt` and `trips.txt` | Examine the `trip_id` column in both `trips.txt` and `stop_times.txt`. Verify that the `stop_times.txt` file references each `trip_id` value from the `trips.txt` file. |
| Location Too Far From Its Parent | `stops.txt` | Examine the `parent_station` column: - Verify whether the stop is part of the parent station. - Verify that the stop (platform, entrance, generic node, or boarding area) isn't too far from its parent location. |
| Platform code is missing | `stops.txt` | Examine the `stop_name` and `platform_code` columns. Verify that any `stop_name` column that contains a platform code has a corresponding value in the `platform_code` column. |
| Station Unused | `stops.txt` | Examine the `parent_station` column. A station (`location_type=1`) needs to have a group of child stops linked to the station. |
| Stations Too Close | `stops.txt` | Examine the `stop_id`, `stop_lat`, and `stop_lon` columns of the stations: - Verify whether they're actually the same station. - Verify that the locations are accurate. |
| Stop name has special characters | `stops.txt` | Examine the `stop_name` column. Remove or replace any special characters, such as `! $ % \ * = _`. |
| Stop name has stop code or id | `stops.txt` | Verify that the `stop_name` column doesn't contain any `stop_code` or `stop_id` values. |
| Stop Too Close To Station | `stops.txt` | Verify whether the stop belongs to the station. If that's the case, link the stop to the station in the `parent_station` column. |
| Stops Too Close | `stops.txt` | Examine the `stop_id`, `stop_lat`, and `stop_lon` columns of the stops: - Verify whether they're actually the same stop. - Verify that the locations are accurate. |
| Stops With Same Name And Description | `stops.txt` | Verify that the `stop_name` and `stop_desc` columns contain different values for each stop. |
| Platform Without Parent Station | `stops.txt` | Verify that the `parent_station` field contains valid values for platforms that contain the `platform_code` column. |
| Unreachable Location In A Station | `stops.txt` | Examine the `location_type` column. Verify that all platforms (`location_type=1`) and generic nodes (`location_type=3`) are reachable in at least one direction: from the entrance or to the exit. |
| Dangling Generic Node | `stops.txt` | Examine the `location_type` column. A generic node (`location_type=3`) links pathways together, so it must have two or more incident locations (defined in `from_stop_id` and `to_stop_id` in `pathways.txt`). |
| Stop Unused | `stops.txt` and `stop_times.txt` | Examine the `stop_id` column in `stops.txt` and `stop_times.txt`. Each stop needs to be referenced by a number of stop times, describing the schedule of transit vehicles that are serving that stop. |
| Min Transfer Time Is Very Large | `transfers.txt` | Verify that the values in the `min_transfer_time` column are reasonable; that is, not much longer than the actual transfer time that a passenger takes by walking. |
| Transfer Distance Is Very Large | `transfers.txt` | Examine the `from_stop_id` and `to_stop_id` columns. Verify that the distance between two transfer stops is reasonable; that is, not much larger than the distance that a passenger walks |
| Transfer Walking Speed Is Too Fast | `transfers.txt` | Verify that the values in the `min_transfer_time` column are reasonable; that is, not much shorter than the actual transfer time that a passenger takes by walking. |
| Unofficial Translation Format Detected | `translations.txt` | Verify that the `table_name` column is present and contains valid values. |
| Trip Headsign Contains Route Long Name | `trips.txt` | Examine the `trip_headsign` and `route_long_name` columns. Because they both display on Google Maps, ensure that the `trip_headsign` column doesn't contain the `route_long_name` values. |
| Trip Headsign Contains Route Short Name | `trips.txt` | Examine the `trip_headsign` and `route_short_name` columns. Because they both display on Google Maps, ensure that the `trip_headsign` column doesn't contain the `route_short_name` values. |
| Trip headsign has special characters | `trips.txt` | Examine the `trip_headsign` column. Remove or replace any special characters, such as `! $ % \ * = _`. |
| Trip Duplicates | `trips.txt`, and possibly `calendar.txt`, `calendar_dates.txt`, `stop_times.txt` | Verify in the following files that there are no duplicate trips at the same stop times, on the same active service dates: - In the `trips.txt` file, examine the `block_id`, `trip_id`, and `service_id` columns. - In the `stop_times.txt` file, examine the `trip_id`, `arrival_time`, and `departure_time` columns. - In the `calendar.txt` and `calendar_dates.txt` files, examine the active service dates. |
| Block Trips with Overlapping Stop Times | `trips.txt`, and possibly `calendar.txt`, `calendar_dates.txt`, `stop_times.txt` | Verify in the following files that there are no overlapping stop times on the same active service dates for the trip: - In the `trips.txt` file, examine the `block_id`, `trip_id`, and `service_id` columns. - In the `stop_times.txt` file, examine the `trip_id`, `arrival_time`, and `departure_time` columns. - In the `calendar.txt` and `calendar_dates.txt` files, examine the active service dates. |