GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-01-23T17:00:57Z,
for the dataset file:///shared/salo.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Salo
Publisher URL:
https://www.salo.fi
Feed Email:
N/A
Feed Language:
Finnish
Feed Start Date:
2026-01-01
Feed End Date:
2026-05-30

Files included


  1. agency.txt
  2. calendar.txt
  3. calendar_dates.txt
  4. contracts.txt
  5. emissions.txt
  6. extended_contracts.txt
  7. extended_contracts_calendar_settings.txt
  8. extended_contracts_costs.txt
  9. feed_info.txt
  10. routes.txt
  11. shapes.txt
  12. stop_times.txt
  13. stops.txt
  14. tdm-blocks.txt
  15. tdm-settings.txt
  16. transfers.txt
  17. translations.txt
  18. trips.txt
  19. vehicle_groups.txt

Counts


  • Agencies: 3
  • Blocks: 24
  • Routes: 27
  • Shapes: 71
  • Stops: 863
  • Trips: 410

Specification Compliance report

13557 notices reported (0 errors, 13534 warnings, 23 infos)

Notice Code Severity Total
fast_travel_between_consecutive_stops WARNING 55

fast_travel_between_consecutive_stops

A transit vehicle moves too fast between two consecutive stops.

The speed threshold depends on route type:

Route type Description Threshold, km/h
0 Light rail 100
1 Subway 150
2 Rail 500
3 Bus 150
4 Ferry 80
5 Cable tram 30
6 Aerial lift 50
7 Funicular 50
11 Trolleybus 150
12 Monorail 150
- Unknown 200

You can see more about this notice here.

Only the first 50 of 55 affected records are displayed below.

tripCsvRowNumber (?) The row number of the problematic trip. tripId (?) `trip_id` of the problematic trip. routeId (?) `route_id` of the problematic trip. speedKph (?) Travel speed (km/h). distanceKm (?) Distance between stops (km). csvRowNumber1 (?) The row number of the first stop time. stopSequence1 (?) `stop_sequence` of the first stop. stopId1 (?) `stop_id` of the first stop. stopName1 (?) `stop_name` of the first stop. departureTime1 (?) `departure_time` of the first stop. csvRowNumber2 (?) The row number of the second stop time. stopSequence2 (?) `stop_sequence` of the second stop. stopId2 (?) `stop_id` of the second stop. stopName2 (?) `stop_name` of the second stop. arrivalTime2 (?) `arrival_time` of the second stop.
17 "Kevät_2026_1_0_143000_143000_0" "1" 174.3387082315141 0.48427418953198353 560 34 "207974" "Halikon lukio E" "14:55:48" 561 35 "207976" "Armfeltin koulu L" "14:55:58"
190 "Kevät_2026_180_1_134000_134000_0" "180" 156.17358618758925 0.43381551718774797 5651 8 "79122" "Lehtiranta P" "13:49:08" 5652 9 "79120" "Luostarinmäki P" "13:49:18"
21 "Kevät_2026_1_0_163000_163000_0" "1" 174.3387082315141 0.48427418953198353 700 34 "207974" "Halikon lukio E" "16:55:48" 701 35 "207976" "Armfeltin koulu L" "16:55:58"
2 "Kevät_2026_1_0_070000_070000_0" "1" 174.3387082315141 0.48427418953198353 35 34 "207974" "Halikon lukio E" "07:25:48" 36 35 "207976" "Armfeltin koulu L" "07:25:58"
24 "Kevät_2026_1_0_180000_180000_0" "1" 174.3387082315141 0.48427418953198353 805 34 "207974" "Halikon lukio E" "18:25:48" 806 35 "207976" "Armfeltin koulu L" "18:25:58"
204 "Talviloma_2026_180_1_091500_091500_0" "180" 156.17358618758925 0.43381551718774797 12781 8 "79122" "Lehtiranta P" "09:24:08" 12782 9 "79120" "Luostarinmäki P" "09:24:18"
236 "Kevät_2026_220_0_181500_181500_0" "220" 175.56337037278107 0.29260561728796847 6107 23 "79888" "Viljakka saha P" "18:38:52" 6108 24 "79890" "Viljakka P" "18:38:58"
14 "Kevät_2026_1_0_130000_130000_0" "1" 174.3387082315141 0.48427418953198353 455 34 "207974" "Halikon lukio E" "13:25:48" 456 35 "207976" "Armfeltin koulu L" "13:25:58"
363 "Koulup_Kevät_2026_522_0_132500_132500_0" "522" 216.58062715760303 1.2032257064311278 12334 5 "132125" "Lampolantie P" "13:26:50" 12335 6 "78473" "Metsänoja th P" "13:27:10"
8 "Kevät_2026_1_0_100000_100000_0" "1" 174.3387082315141 0.48427418953198353 245 34 "207974" "Halikon lukio E" "10:25:48" 246 35 "207976" "Armfeltin koulu L" "10:25:58"
7 "Kevät_2026_1_0_093000_093000_0" "1" 174.3387082315141 0.48427418953198353 210 34 "207974" "Halikon lukio E" "09:55:48" 211 35 "207976" "Armfeltin koulu L" "09:55:58"
198 "Koulup_Kevät_2026_180_1_081500_081500_0" "180" 156.17358618758925 0.43381551718774797 11581 4 "79122" "Lehtiranta P" "08:18:12" 11582 5 "79120" "Luostarinmäki P" "08:18:22"
197 "Koulup_Kevät_2026_180_1_071500_071500_0" "180" 156.17358618758925 0.43381551718774797 11551 4 "79122" "Lehtiranta P" "07:18:12" 11552 5 "79120" "Luostarinmäki P" "07:18:22"
5 "Kevät_2026_1_0_083000_083000_0" "1" 174.3387082315141 0.48427418953198353 140 34 "207974" "Halikon lukio E" "08:55:48" 141 35 "207976" "Armfeltin koulu L" "08:55:58"
191 "Kevät_2026_180_1_144000_144000_0" "180" 156.17358618758925 0.43381551718774797 5685 8 "79122" "Lehtiranta P" "14:49:08" 5686 9 "79120" "Luostarinmäki P" "14:49:18"
9 "Kevät_2026_1_0_103000_103000_0" "1" 174.3387082315141 0.48427418953198353 280 34 "207974" "Halikon lukio E" "10:55:48" 281 35 "207976" "Armfeltin koulu L" "10:55:58"
199 "Koulup_Kevät_2026_180_1_091500_091500_0" "180" 156.17358618758925 0.43381551718774797 11611 4 "79122" "Lehtiranta P" "09:18:12" 11612 5 "79120" "Luostarinmäki P" "09:18:22"
10 "Kevät_2026_1_0_110000_110000_0" "1" 174.3387082315141 0.48427418953198353 315 34 "207974" "Halikon lukio E" "11:25:48" 316 35 "207976" "Armfeltin koulu L" "11:25:58"
192 "Kevät_2026_180_1_154000_154000_0" "180" 156.17358618758925 0.43381551718774797 5719 8 "79122" "Lehtiranta P" "15:49:08" 5720 9 "79120" "Luostarinmäki P" "15:49:18"
25 "Kevät_2026_1_0_183000_183000_0" "1" 174.3387082315141 0.48427418953198353 840 34 "207974" "Halikon lukio E" "18:55:48" 841 35 "207976" "Armfeltin koulu L" "18:55:58"
230 "Kevät_2026_220_0_121500_121500_0" "220" 175.56337037278107 0.29260561728796847 5939 23 "79888" "Viljakka saha P" "12:38:52" 5940 24 "79890" "Viljakka P" "12:38:58"
366 "Koulup_Kevät_2026_522_1_072500_072500_0" "522" 218.61285497360208 1.214515860964456 12427 20 "78474" "Metsänoja th E" "07:58:53" 12428 21 "230231" "Lampolantie E" "07:59:13"
232 "Kevät_2026_220_0_141500_141500_0" "220" 175.56337037278107 0.29260561728796847 5995 23 "79888" "Viljakka saha P" "14:38:52" 5996 24 "79890" "Viljakka P" "14:38:58"
234 "Kevät_2026_220_0_161500_161500_0" "220" 175.56337037278107 0.29260561728796847 6051 23 "79888" "Viljakka saha P" "16:38:52" 6052 24 "79890" "Viljakka P" "16:38:58"
22 "Kevät_2026_1_0_170000_170000_0" "1" 174.3387082315141 0.48427418953198353 735 34 "207974" "Halikon lukio E" "17:25:48" 736 35 "207976" "Armfeltin koulu L" "17:25:58"
11 "Kevät_2026_1_0_113000_113000_0" "1" 174.3387082315141 0.48427418953198353 350 34 "207974" "Halikon lukio E" "11:55:48" 351 35 "207976" "Armfeltin koulu L" "11:55:58"
233 "Kevät_2026_220_0_151500_151500_0" "220" 175.56337037278107 0.29260561728796847 6023 23 "79888" "Viljakka saha P" "15:38:52" 6024 24 "79890" "Viljakka P" "15:38:58"
226 "Kevät_2026_220_0_064500_064500_0" "220" 175.56337037278107 0.29260561728796847 5836 23 "79888" "Viljakka saha P" "07:08:52" 5837 24 "79890" "Viljakka P" "07:08:58"
203 "Talviloma_2026_180_1_081500_081500_0" "180" 156.17358618758925 0.43381551718774797 12747 8 "79122" "Lehtiranta P" "08:24:08" 12748 9 "79120" "Luostarinmäki P" "08:24:18"
364 "Koulup_Kevät_2026_522_0_142500_142500_0" "522" 216.58062715760303 1.2032257064311278 12360 5 "132125" "Lampolantie P" "14:26:50" 12361 6 "78473" "Metsänoja th P" "14:27:10"
149 "Kevät_2026_110_0_182000_182000_0" "110" 192.8854353792894 2.3039093670304007 4223 51 "76890" "Suomusjärvi kk th I" "18:59:23" 4224 52 "76888" "Lahnajärvi th I" "19:00:06"
15 "Kevät_2026_1_0_133000_133000_0" "1" 174.3387082315141 0.48427418953198353 490 34 "207974" "Halikon lukio E" "13:55:48" 491 35 "207976" "Armfeltin koulu L" "13:55:58"
368 "Koulup_Kevät_2026_522_1_092500_092500_0" "522" 218.61285497360208 1.214515860964456 12475 20 "78474" "Metsänoja th E" "09:58:53" 12476 21 "230231" "Lampolantie E" "09:59:13"
189 "Kevät_2026_180_1_124000_124000_0" "180" 156.17358618758925 0.43381551718774797 5617 8 "79122" "Lehtiranta P" "12:49:08" 5618 9 "79120" "Luostarinmäki P" "12:49:18"
13 "Kevät_2026_1_0_123000_123000_0" "1" 174.3387082315141 0.48427418953198353 420 34 "207974" "Halikon lukio E" "12:55:48" 421 35 "207976" "Armfeltin koulu L" "12:55:58"
365 "Koulup_Kevät_2026_522_0_152500_152500_0" "522" 216.58062715760303 1.2032257064311278 12386 5 "132125" "Lampolantie P" "15:26:50" 12387 6 "78473" "Metsänoja th P" "15:27:10"
367 "Koulup_Kevät_2026_522_1_082500_082500_0" "522" 218.61285497360208 1.214515860964456 12451 20 "78474" "Metsänoja th E" "08:58:53" 12452 21 "230231" "Lampolantie E" "08:59:13"
148 "Kevät_2026_110_0_172000_172000_0" "110" 192.8854353792894 2.3039093670304007 4169 51 "76890" "Suomusjärvi kk th I" "17:59:23" 4170 52 "76888" "Lahnajärvi th I" "18:00:06"
231 "Kevät_2026_220_0_131500_131500_0" "220" 175.56337037278107 0.29260561728796847 5967 23 "79888" "Viljakka saha P" "13:38:52" 5968 24 "79890" "Viljakka P" "13:38:58"
235 "Kevät_2026_220_0_171500_171500_0" "220" 175.56337037278107 0.29260561728796847 6079 23 "79888" "Viljakka saha P" "17:38:52" 6080 24 "79890" "Viljakka P" "17:38:58"
12 "Kevät_2026_1_0_120000_120000_0" "1" 174.3387082315141 0.48427418953198353 385 34 "207974" "Halikon lukio E" "12:25:48" 386 35 "207976" "Armfeltin koulu L" "12:25:58"
193 "Kevät_2026_180_1_164000_164000_0" "180" 156.17358618758925 0.43381551718774797 5753 8 "79122" "Lehtiranta P" "16:49:08" 5754 9 "79120" "Luostarinmäki P" "16:49:18"
18 "Kevät_2026_1_0_150000_150000_0" "1" 174.3387082315141 0.48427418953198353 595 34 "207974" "Halikon lukio E" "15:25:48" 596 35 "207976" "Armfeltin koulu L" "15:25:58"
227 "Kevät_2026_220_0_074500_074500_0" "220" 175.56337037278107 0.29260561728796847 5864 23 "79888" "Viljakka saha P" "08:08:52" 5865 24 "79890" "Viljakka P" "08:08:58"
6 "Kevät_2026_1_0_090000_090000_0" "1" 174.3387082315141 0.48427418953198353 175 34 "207974" "Halikon lukio E" "09:25:48" 176 35 "207976" "Armfeltin koulu L" "09:25:58"
3 "Kevät_2026_1_0_073000_073000_0" "1" 174.3387082315141 0.48427418953198353 70 34 "207974" "Halikon lukio E" "07:55:48" 71 35 "207976" "Armfeltin koulu L" "07:55:58"
228 "Kevät_2026_220_0_084500_084500_0" "220" 175.56337037278107 0.29260561728796847 5892 23 "79888" "Viljakka saha P" "09:08:52" 5893 24 "79890" "Viljakka P" "09:08:58"
16 "Kevät_2026_1_0_140000_140000_0" "1" 174.3387082315141 0.48427418953198353 525 34 "207974" "Halikon lukio E" "14:25:48" 526 35 "207976" "Armfeltin koulu L" "14:25:58"
20 "Kevät_2026_1_0_160000_160000_0" "1" 174.3387082315141 0.48427418953198353 665 34 "207974" "Halikon lukio E" "16:25:48" 666 35 "207976" "Armfeltin koulu L" "16:25:58"
23 "Kevät_2026_1_0_173000_173000_0" "1" 174.3387082315141 0.48427418953198353 770 34 "207974" "Halikon lukio E" "17:55:48" 771 35 "207976" "Armfeltin koulu L" "17:55:58"
missing_feed_contact_email_and_url WARNING 1

missing_feed_contact_email_and_url

Best Practices for feed_info.txt suggest providing at least one of feed_contact_email and feed_contact_url.

You can see more about this notice here.

csvRowNumber (?) The row number of the validated record.
2
non_ascii_or_non_printable_char WARNING 13477

non_ascii_or_non_printable_char

Non ascii or non printable char in ID field.

A value of a field with type ID contains non ASCII or non printable characters. This is not recommended.

You can see more about this notice here.

Only the first 50 of 13477 affected records are displayed below.

filename (?) Name of the faulty file. csvRowNumber (?) Row number of the faulty record. columnName (?) Name of the column where the error occurred. fieldValue (?) Faulty value.
"calendar.txt" 2 "service_id" "Kevät_2026"
"calendar.txt" 3 "service_id" "Kevät_2026_ELY"
"calendar.txt" 4 "service_id" "Kevät_2026_ELY_koulup"
"calendar.txt" 5 "service_id" "Koulup_2026_lisävuorot_kevät"
"calendar.txt" 6 "service_id" "Koulup_Kevät_2026"
"calendar_dates.txt" 2 "service_id" "Kevät_2026"
"calendar_dates.txt" 3 "service_id" "Kevät_2026"
"calendar_dates.txt" 4 "service_id" "Kevät_2026"
"calendar_dates.txt" 5 "service_id" "Kevät_2026"
"calendar_dates.txt" 6 "service_id" "Kevät_2026"
"calendar_dates.txt" 7 "service_id" "Kevät_2026_ELY"
"calendar_dates.txt" 8 "service_id" "Kevät_2026_ELY"
"calendar_dates.txt" 9 "service_id" "Kevät_2026_ELY"
"calendar_dates.txt" 10 "service_id" "Kevät_2026_ELY"
"calendar_dates.txt" 11 "service_id" "Kevät_2026_ELY"
"calendar_dates.txt" 12 "service_id" "Kevät_2026_ELY"
"calendar_dates.txt" 13 "service_id" "Kevät_2026_ELY_koulup"
"calendar_dates.txt" 14 "service_id" "Kevät_2026_ELY_koulup"
"calendar_dates.txt" 15 "service_id" "Kevät_2026_ELY_koulup"
"calendar_dates.txt" 16 "service_id" "Kevät_2026_ELY_koulup"
"calendar_dates.txt" 17 "service_id" "Kevät_2026_ELY_koulup"
"calendar_dates.txt" 18 "service_id" "Kevät_2026_ELY_koulup"
"calendar_dates.txt" 19 "service_id" "Kevät_2026_ELY_koulup"
"calendar_dates.txt" 20 "service_id" "Kevät_2026_ELY_koulup"
"calendar_dates.txt" 21 "service_id" "Kevät_2026_ELY_koulup"
"calendar_dates.txt" 22 "service_id" "Koulup_2026_lisävuorot_kevät"
"calendar_dates.txt" 23 "service_id" "Koulup_Kevät_2026"
"calendar_dates.txt" 24 "service_id" "Koulup_Kevät_2026"
"calendar_dates.txt" 25 "service_id" "Koulup_Kevät_2026"
"calendar_dates.txt" 26 "service_id" "Koulup_Kevät_2026"
"calendar_dates.txt" 27 "service_id" "Koulup_Kevät_2026"
"calendar_dates.txt" 28 "service_id" "Koulup_Kevät_2026"
"calendar_dates.txt" 29 "service_id" "Koulup_Kevät_2026"
"calendar_dates.txt" 30 "service_id" "Koulup_Kevät_2026"
"calendar_dates.txt" 31 "service_id" "Koulup_Kevät_2026"
"trips.txt" 2 "trip_id" "Kevät_2026_1_0_070000_070000_0"
"trips.txt" 2 "service_id" "Kevät_2026"
"trips.txt" 3 "trip_id" "Kevät_2026_1_0_073000_073000_0"
"trips.txt" 3 "service_id" "Kevät_2026"
"trips.txt" 4 "trip_id" "Kevät_2026_1_0_080000_080000_0"
"trips.txt" 4 "service_id" "Kevät_2026"
"trips.txt" 5 "trip_id" "Kevät_2026_1_0_083000_083000_0"
"trips.txt" 5 "service_id" "Kevät_2026"
"trips.txt" 6 "trip_id" "Kevät_2026_1_0_090000_090000_0"
"trips.txt" 6 "service_id" "Kevät_2026"
"trips.txt" 7 "trip_id" "Kevät_2026_1_0_093000_093000_0"
"trips.txt" 7 "service_id" "Kevät_2026"
"trips.txt" 8 "trip_id" "Kevät_2026_1_0_100000_100000_0"
"trips.txt" 8 "service_id" "Kevät_2026"
"trips.txt" 9 "trip_id" "Kevät_2026_1_0_103000_103000_0"
same_name_and_description_for_stop WARNING 1

same_name_and_description_for_stop

Same name and description for stop.

The GTFS spec defines stops.txt stop_description as:

Description of the location that provides useful, quality information. Do not simply duplicate the name of the location.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty record. stopDesc (?) The faulty record's `stop_desc`.
860 "999011" "Kivilinnantie P"
unknown_column INFO 15

unknown_column

A column name is unknown.

You can see more about this notice here.

filename (?) The name of the faulty file. fieldName (?) The name of the unknown column. index (?) The index of the faulty column.
"stops.txt" "municipality_id" 10
"stops.txt" "vehicle_type" 15
"agency.txt" "agency_branding_url" 6
"routes.txt" "bikes_allowed" 10
"routes.txt" "include_public_feed" 11
"routes.txt" "extended_contract_id" 12
"calendar.txt" "parent_service_id" 11
"calendar.txt" "extended_contract_calendar_setting_id" 12
"trips.txt" "block_id_authority" 11
"trips.txt" "block_id_agency" 12
"stop_times.txt" "service_id" 11
"stop_times.txt" "trip_pattern_id" 12
"stop_times.txt" "trip_pattern_variant_id" 13
"stop_times.txt" "trip_pattern_variant_order_index" 14
"shapes.txt" "shape_speed_limit" 6
unknown_file INFO 8

unknown_file

A file is unknown.

You can see more about this notice here.

filename (?) The name of the unknown file.
"contracts.txt"
"extended_contracts.txt"
"extended_contracts_costs.txt"
"extended_contracts_calendar_settings.txt"
"emissions.txt"
"tdm-blocks.txt"
"vehicle_groups.txt"
"tdm-settings.txt"