fintraffic — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-08-01T11:02:49Z,
for the dataset file:///shared/fintraffic_5dd8abc7.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Fintraffic
Feed Email:
koontipalvelu.support@weaselsoftware.fi
Feed Language:
Finnish
Feed Start Date:
N/A
Feed End Date:
N/A

Files included


  1. agency.txt
  2. areas.txt
  3. calendar.txt
  4. calendar_dates.txt
  5. fare_attributes.txt
  6. fare_rules.txt
  7. feed_info.txt
  8. rider_categories.txt
  9. routes.txt
  10. shapes.txt
  11. stop_areas.txt
  12. stop_times.txt
  13. stops.txt
  14. transfers.txt
  15. translations.txt
  16. trips.txt

Counts


  • Agencies: 287
  • Blocks: 0
  • Routes: 4305
  • Shapes: 6977
  • Stops: 82534
  • Trips: 0

Specification Compliance report

1112920 notices reported (300 errors, 1111540 warnings, 1080 infos)

Notice Code Severity Total
decreasing_or_equal_stop_time_distance ERROR 265

decreasing_or_equal_stop_time_distance

Decreasing or equal shape_dist_traveled in stop_times.txt.

When sorted by stop_times.stop_sequence, two consecutive entries in stop_times.txt should have increasing distance, based on the field shape_dist_traveled. If the values are equal, this is considered as an error.

You can see more about this notice here.

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

tripId (?) The id of the faulty trip. stopId (?) The id of the faulty stop. csvRowNumber (?) The row number from `stop_times.txt`. shapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the faulty record. stopSequence (?) The faulty record's `stop_times.stop_sequence`. prevCsvRowNumber (?) The row number from `stop_times.txt` of the previous stop time. prevShapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the previous stop time. prevStopSequence (?) The previous record's `stop_times.stop_sequence`.
"10156_7510" "376608" 12265256 0.0 2 12265255 0.0 1
"10137_4010107" "374752" 12258186 0.0 2 12258185 0.0 1
"10137_4010108" "374694" 12258192 21365.0 4 12258191 21365.0 3
"10137_4010109" "374752" 12258194 0.0 2 12258193 0.0 1
"10137_4010103" "374752" 12258169 0.0 2 12258168 0.0 1
"10137_4010105" "374752" 12258178 0.0 2 12258177 0.0 1
"10137_4010106" "374694" 12258184 21365.0 4 12258183 21365.0 3
"10137_4010110" "374694" 12258200 21365.0 4 12258199 21365.0 3
"10137_4010111" "374752" 12258202 0.0 2 12258201 0.0 1
"10137_4010112" "374694" 12258208 21365.0 4 12258207 21365.0 3
"10137_4010113" "374752" 12258210 0.0 2 12258209 0.0 1
"10137_4010118" "374694" 12258234 21365.0 4 12258233 21365.0 3
"10137_4010119" "374752" 12258236 0.0 2 12258235 0.0 1
"10137_4010114" "374694" 12258216 21365.0 4 12258215 21365.0 3
"10137_4010116" "374694" 12258225 21365.0 4 12258224 21365.0 3
"10137_4010121" "374752" 12258245 0.0 2 12258244 0.0 1
"10137_4010122" "374694" 12258251 21365.0 4 12258250 21365.0 3
"10137_4010129" "374752" 12258275 0.0 2 12258274 0.0 1
"10137_4010125" "374752" 12258258 0.0 2 12258257 0.0 1
"10137_4010126" "374694" 12258264 21365.0 4 12258263 21365.0 3
"10137_4010127" "374752" 12258266 0.0 2 12258265 0.0 1
"11293_79656_1197456" "315236" 13449318 27.222 43 13449317 27.222 42
"10137_550002" "445053" 12261742 0.0 2 12261741 0.0 1
"10137_550001" "445052" 12261740 0.0 2 12261739 0.0 1
"10137_540002" "445050" 12261738 0.0 2 12261737 0.0 1
"10137_540001" "445051" 12261736 0.0 2 12261735 0.0 1
"11293_79656_1213521" "346851" 13451155 29.101 27 13451154 29.101 26
"11293_79656_1213522" "346851" 13451216 29.101 27 13451215 29.101 26
"11293_79656_1213523" "346851" 13451277 29.101 27 13451276 29.101 26
"11293_79656_1213524" "346851" 13451338 29.101 27 13451337 29.101 26
"10137_530091" "400918" 12261724 0.0 2 12261723 0.0 1
"10137_530090" "400917" 12261722 0.0 2 12261721 0.0 1
"10137_530089" "400918" 12261720 0.0 2 12261719 0.0 1
"10137_530082" "400917" 12261706 0.0 2 12261705 0.0 1
"10137_530081" "400918" 12261704 0.0 2 12261703 0.0 1
"10137_530084" "400917" 12261710 0.0 2 12261709 0.0 1
"10137_530083" "400918" 12261708 0.0 2 12261707 0.0 1
"10137_530086" "400917" 12261714 0.0 2 12261713 0.0 1
"10137_530085" "400918" 12261712 0.0 2 12261711 0.0 1
"10137_530088" "400917" 12261718 0.0 2 12261717 0.0 1
"10137_530087" "400918" 12261716 0.0 2 12261715 0.0 1
"10137_530080" "400917" 12261702 0.0 2 12261701 0.0 1
"10137_530079" "400918" 12261700 0.0 2 12261699 0.0 1
"10137_530078" "400917" 12261698 0.0 2 12261697 0.0 1
"10137_530071" "400918" 12261684 0.0 2 12261683 0.0 1
"10137_530070" "400917" 12261682 0.0 2 12261681 0.0 1
"10137_530073" "400918" 12261688 0.0 2 12261687 0.0 1
"10137_530072" "400917" 12261686 0.0 2 12261685 0.0 1
"10137_530075" "400918" 12261692 0.0 2 12261691 0.0 1
"10137_530074" "400917" 12261690 0.0 2 12261689 0.0 1
equal_shape_distance_diff_coordinates ERROR 32

equal_shape_distance_diff_coordinates

Two 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.

When sorted by shape.shape_pt_sequence, the values for shape_dist_traveled must increase along a shape. Two consecutive points with equal values for shape_dist_traveled and different coordinates indicate an error.

You can see more about this notice here.

shapeId (?) The id of the faulty shape. csvRowNumber (?) The row number from `shapes.txt`. shapeDistTraveled (?) The faulty record's `shape_dist_traveled` value. shapePtSequence (?) The faulty record's `shapes.shape_pt_sequence`. prevCsvRowNumber (?) The row number from `shapes.txt` of the previous shape point. prevShapeDistTraveled (?) The previous shape point's `shape_dist_traveled` value. prevShapePtSequence (?) The previous record's `shapes.shape_pt_sequence`. actualDistanceBetweenShapePoints (?) Actual distance traveled along the shape from the first shape point to the previous shape point.
"10000_4712_20260727_2" 275754 0.0 2 275753 0.0 1 1.1235847548510234
"10000_1085N_20251103_2" 71641 12.275 314 71640 12.275 313 1.2874795666277505
"10000_1095N_20260420_2" 80971 17.507 487 80970 17.507 486 1.2874795666277505
"10000_1090N_20260423_2" 76545 17.715 428 76544 17.715 427 1.2874795666277505
"10000_2164K_20250811_1" 137267 20.37 339 137266 20.37 338 1.3395575428414397
"10000_6211U_20260101_1" 335780 17.66 470 335779 17.66 469 1.3144432868054194
"10000_2162_20260810_2" 131539 0.679 29 131538 0.679 28 1.3144432868054194
"10000_2163_20260810_2" 132608 6.643 218 132607 6.643 217 1.3395575428414397
"10000_2116_20260810_2" 109398 6.582 187 109397 6.582 186 1.315130027747361
"10000_2116_20260810_1" 109047 2.828 101 109046 2.828 100 1.315130027747361
"10000_2163K_20260810_2" 134939 7.528 230 134938 7.528 229 1.3395575428414397
"10000_2165N_20260810_2" 141932 0.679 29 141931 0.679 28 1.3144432868054194
"10000_2164K_20260810_1" 138092 20.37 339 138091 20.37 338 1.3395575428414397
"10000_1090A_20260423_2" 75627 16.057 310 75626 16.057 309 1.2874795666277505
"10000_2168_20260615_2" 144879 3.884 159 144878 3.884 158 1.3144432868054194
"10000_2168_20260615_1" 144621 10.281 322 144620 10.281 321 1.3144432868054194
"10000_2165_20260413_2" 139063 4.955 172 139062 4.955 171 1.3144432868054194
"10000_1097N_20251103_2" 83018 17.051 367 83017 17.051 366 1.2874795666277505
"10000_9841N_20251103_2" 415779 44.022 961 415778 44.022 960 1.2874795666277505
"10000_1087N_20251231_2" 74171 11.931 308 74170 11.931 307 1.2874795666277505
"10000_1092N_20251103_2" 77836 18.381 463 77835 18.381 462 1.2874795666277505
"10000_2168_20260810_2" 145799 3.884 159 145798 3.884 158 1.3144432868054194
"10000_1096N_20260423_2" 81948 17.626 393 81947 17.626 392 1.2874795666277505
"10000_2116_20260119_2" 108868 5.613 160 108867 5.613 159 1.315130027747361
"10000_2116_20260119_1" 108562 2.828 101 108561 2.828 100 1.315130027747361
"10000_1055_20260701_2" 43511 7.737 147 43510 7.737 146 1.2874795666277505
"10000_2163K_20260615_2" 133774 7.528 230 133773 7.528 229 1.3395575428414397
"10000_2213_20260706_1" 153952 26.541 557 153951 26.541 556 1.3144432868054194
"10000_2165N_20260413_1" 140646 28.109 603 140645 28.109 602 1.3144432868054194
"10000_1094N_20251103_2" 79308 14.483 349 79307 14.483 348 1.2874795666277505
"10000_1086N_20260601_2" 73200 11.507 294 73199 11.507 293 1.2874795666277505
"10000_2242_20260709_1" 181121 6.675 210 181120 6.675 209 1.3144432868054194
invalid_character ERROR 3

invalid_character

This field contains invalid characters, such as the replacement character ("�").

Check that text was properly encoded in UTF-8 as required by GTFS.

You can see more about this notice here.

filename (?) The name of the file containing the invalid characters. csvRowNumber (?) The row number in the CSV file where the invalid characters were found. fieldName (?) The name of the field containing the invalid characters. fieldValue (?) The value of the field containing the invalid characters.
"trips.txt" 115740 "block_id" "10009_V�KIV5"
"trips.txt" 115742 "block_id" "10009_V�KIV5"
"trips.txt" 390108 "block_id" "10009_V�KIV3"
duplicate_route_name WARNING 29

duplicate_route_name

Two 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.

All routes of the same route_type with the same agency_id should have unique combinations of route_short_name and route_long_name.

Note that there may be valid cases where routes have the same short and long name, e.g., if they serve different areas. However, different directions must be modeled as the same route.

Example of bad data:

route_id route_short_name route_long_name
route1 U1 Southern
route2 U1 Southern

You can see more about this notice here.

csvRowNumber1 (?) The row number of the first occurrence. routeId1 (?) The id of the the first occurrence. csvRowNumber2 (?) The row number of the other occurrence. routeId2 (?) The id of the the other occurrence. routeShortName (?) Common `routes.route_short_name`. routeLongName (?) Common `routes.route_long_name`. routeTypeValue (?) Common `routes.route_type`. agencyId (?) Common `routes.agency_id`.
856 "21891" 857 "21892" "Matka Mäkelä" "Keuruu-Jyväskylä" 3 "1063"
856 "21891" 858 "21893" "Matka Mäkelä" "Keuruu-Jyväskylä" 3 "1063"
401 "20835" 1853 "103571" "720" "Sauvo-Turku" 3 "1037"
1822 "97888" 2187 "147797" "" "Kuopio - Outokumpu - Joensuu" 3 "1062"
856 "21891" 2485 "216299" "Matka Mäkelä" "Keuruu-Jyväskylä" 3 "1063"
2575 "255348" 2959 "332616" "OB4" "Rovaniemi - Jyväskylä - Helsinki" 3 "1205"
1919 "106029" 2987 "341023" "440" "Joensuu - Juuka - Nurmes" 3 "1061"
3466 "349165" 3467 "349166" "8" "Sahanmäen teollisuusalue - Onnela - rautatieasema" 3 "1163"
2247 "162340" 3576 "349594" "VAU" "Urjala - Viiala - Toijala" 3 "2386"
2248 "162341" 3577 "349595" "VAU" "Toijala - Viiala - Urjala" 3 "2386"
2243 "162336" 3578 "349596" "69U" "Urjala - Viiala - Toijala - Valkeakoski" 3 "2386"
2244 "162337" 3579 "349597" "69U" "Valkeakoski - Toijala - Viiala - Urjala" 3 "2386"
2245 "162338" 3580 "349598" "69U" "Toijala - Valkeakoski" 3 "2386"
2246 "162339" 3581 "349599" "69U" "Valkeakoski - Toijala" 3 "2386"
3227 "348682" 3627 "349737" "" "Helsinki - Hyvinkää" 3 "1101"
2154 "138516" 3642 "349758" "" "Varkaus - Kuopio" 3 "1083"
2150 "138504" 3644 "349760" "" "Kuopio - Varkaus" 3 "1083"
2903 "326076" 3715 "349868" "" "Lappeenranta - Joensuu" 3 "1062"
2436 "209176" 3937 "350364" "" "Joensuu - Varkaus - Pieksämäki - Jyväskylä" 3 "1062"
2435 "209175" 3938 "350365" "" "Jyväskylä - Pieksämäki - Varkaus - Joensuu" 3 "1062"
4258 "350793" 4269 "350829" "OB11" "Helsinki - Turku - Pori" 3 "1205"
4259 "350794" 4270 "350831" "OB11" "Turku - Rauma" 3 "1205"
4260 "350795" 4271 "350832" "OB11" "Turku - Pori - Vaasa" 3 "1205"
4261 "350796" 4272 "350833" "OB11" "Turku - Rauma - Pori" 3 "1205"
4262 "350797" 4273 "350834" "OB11" "Helsinki - Turku - Säkylä - Pori" 3 "1205"
4263 "350798" 4274 "350835" "OB11" "Helsinki - Turku - Pori - Vaasa" 3 "1205"
4264 "350799" 4275 "350836" "OB11" "Rauma - Turku - Helsinki" 3 "1205"
2733 "311119" 4290 "350851" "" "Kerimäki - Louhi - Savonlinna" 3 "3310"
2739 "311129" 4291 "350852" "" "Savonlinna - Louhi - Kerimäki" 3 "3310"
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 1905

equal_shape_distance_diff_coordinates_distance_below_threshold

Two 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.

When sorted by shape.shape_pt_sequence, the values for shape_dist_traveled must increase along a shape. Two consecutive points with equal values for shape_dist_traveled and small difference of coordinates (greater than 0 but less than 1.11 m distance) result in a warning.

You can see more about this notice here.

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

shapeId (?) The id of the faulty shape. csvRowNumber (?) The row number from `shapes.txt`. shapeDistTraveled (?) The faulty record's `shape_dist_traveled` value. shapePtSequence (?) The faulty record's `shapes.shape_pt_sequence`. prevCsvRowNumber (?) The row number from `shapes.txt` of the previous shape point. prevShapeDistTraveled (?) The previous shape point's `shape_dist_traveled` value. prevShapePtSequence (?) The previous record's `shapes.shape_pt_sequence`. actualDistanceBetweenShapePoints (?) Actual distance traveled along the shape from the first shape point to the previous shape point.
"10000_6173N_20260601_1" 316204 31.787 637 316203 31.787 636 1.0412212024940952
"10000_1040_20241220_1" 35995 2.126 43 35994 2.126 42 0.5559755052564519
"10000_2321_20260703_1" 191077 2.0 35 191076 2.0 34 0.5559755052564519
"10000_4300_20260831_1" 222232 1.993 35 222231 1.993 34 0.5559755052564519
"10000_4431B_20240531_1" 232898 1.972 35 232897 1.972 34 0.5559755052564519
"10003_a-559" 1033563 1476.0 232331 1033562 1476.0 232330 0.05480930627795861
"10003_a-559" 1033638 2710.0 232406 1033637 2710.0 232405 0.054804557920746295
"10003_a-559" 1033640 2719.0 232408 1033639 2719.0 232407 0.05480466971880653
"10003_a-558" 1033436 1761.0 238822 1033435 1761.0 238821 0.10962007183587807
"10003_a-557" 1033257 507.0 228464 1033256 507.0 228463 0.05481003591793904
"10003_a-555" 1031954 623.0 225832 1031953 623.0 225831 0.7432415253609407
"10000_1069_20251101_2" 54974 9.043 238 54973 9.043 237 0.8440075903528271
"10003_a-510" 1031115 14233.0 210447 1031114 14233.0 210446 0.16422840147618673
"10003_a-510" 1031240 16096.0 210572 1031239 16096.0 210571 0.5872062128663513
"10003_a-510" 1031459 20547.0 210791 1031458 20547.0 210790 0.39705245607449
"10003_a-509" 1028217 623.0 204808 1028216 623.0 204807 0.7432415253609407
"10003_a-501" 1027558 20612.0 197464 1027557 20612.0 197463 0.39705245607449
"10003_a-500" 1025664 5682.0 195570 1025663 5682.0 195569 0.4525112405367409
"10003_a-500" 1026191 17417.0 196097 1026190 17417.0 196096 0.39705245607449
"10003_a-500" 1026655 30949.0 196561 1026654 30949.0 196560 0.12405102932754393
"10003_a-500" 1026687 31645.0 196593 1026686 31645.0 196592 0.3979515050188473
"11258_60a-01" 2593424 14.759 101 2593423 14.759 100 0.3901270575748281
"10000_1071_20260203_1" 57169 12.579 335 57168 12.579 334 0.8440075903528271
"10000_2235N_20260831_1" 173834 2.011 35 173833 2.011 34 0.5559755052564519
"10000_2235N_20260831_1" 174020 11.881 221 174019 11.881 220 0.6469272760928166
"10000_2133_20260810_2" 123146 3.02 93 123145 3.02 92 1.097765446077062
"10000_2200_20260831_1" 148513 2.011 35 148512 2.011 34 0.5559755052564519
"10000_2200_20260831_1" 148700 11.874 222 148699 11.874 221 0.6469272760928166
"10003_a-580" 1038054 5704.0 31917 1038053 5704.0 31916 0.32866937161156995
"10003_a-579" 1036248 8274.0 27912 1036247 8274.0 27911 0.24582270191396702
"10003_a-576" 1035178 4222.0 26153 1035177 4222.0 26152 0.32866944289334243
"10003_630" 846299 5677.0 208879 846298 5677.0 208878 0.2743591832167754
"10003_630" 846433 9843.0 209013 846432 9843.0 209012 0.522485497902412
"10003_630" 846465 10790.0 209045 846464 10790.0 209044 0.05482968303808636
"10003_630" 846496 11209.0 209076 846495 11209.0 209075 0.16449115096864264
"10003_632" 846911 1044.0 209185 846910 1044.0 209184 0.16449115096864264
"10003_632" 847112 5801.0 209386 847111 5801.0 209385 0.2743591832167754
"10003_632" 847354 13039.0 209628 847353 13039.0 209627 0.3995853129142859
"10003_633" 848194 9942.0 212821 848193 9942.0 212820 0.19865243332126728
"10003_633" 848234 10668.0 212861 848233 10668.0 212860 0.19865243332126728
"10003_633" 848456 18423.0 213083 848455 18423.0 213082 0.522485497902412
"10003_633" 848488 19370.0 213115 848487 19370.0 213114 0.05482968303808636
"10003_633" 848519 19789.0 213146 848518 19789.0 213145 0.16449115096864264
"10003_634" 848636 1044.0 211584 848635 1044.0 211583 0.16449115096864264
"10003_634" 848856 6383.0 211804 848855 6383.0 211803 0.3995853129142859
"10003_634" 849027 10567.0 211975 849026 10567.0 211974 0.2741868501209072
"10003_634" 849165 14021.0 212113 849164 14021.0 212112 0.2743591832167754
"10003_634" 849303 18613.0 212251 849302 18613.0 212250 0.05482968303808636
"10003_634" 849334 19032.0 212282 849333 19032.0 212281 0.16449115096864264
"10003_635" 849610 5929.0 216307 849609 5929.0 216306 0.2743591832167754
equal_shape_distance_same_coordinates WARNING 28530

equal_shape_distance_same_coordinates

Two consecutive points have equal shape_dist_traveled and the same lat/lon coordinates in shapes.txt.

When sorted by shape.shape_pt_sequence, the values for shape_dist_traveled must increase along a shape. Two consecutive points with equal values for shape_dist_traveled and the same coordinates indicate a duplicative shape point.

You can see more about this notice here.

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

shapeId (?) The id of the faulty shape. csvRowNumber (?) The row number from `shapes.txt`. shapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the faulty record. shapePtSequence (?) The faulty record's `shapes.shape_pt_sequence`. prevCsvRowNumber (?) The row number from `shapes.txt` of the previous shape point. prevShapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the previous shape point. prevShapePtSequence (?) The previous record's `shapes.shape_pt_sequence`.
"10000_1035_20210816_2" 34130 0.489 24 34129 0.489 23
"10000_1032_20250709_2" 32787 0.776 29 32786 0.776 28
"10000_6173N_20260601_1" 315851 18.085 284 315850 18.085 283
"10000_6173N_20260601_1" 316231 32.209 664 316230 32.209 663
"10000_6173N_20260601_1" 316679 50.71 1112 316678 50.71 1111
"10000_2113N_20221107_2" 103859 2.451 64 103858 2.451 63
"10000_4572_20260727_1" 253724 0.833 24 253723 0.833 23
"10000_6916K_20250602_2" 370199 13.013 266 370198 13.013 265
"10000_6916K_20250602_2" 370200 13.013 267 370199 13.013 266
"10000_6916K_20250602_1" 369670 5.326 145 369669 5.326 144
"10000_6916K_20250602_1" 369671 5.326 146 369670 5.326 145
"10000_2321_20260703_1" 191167 6.578 125 191166 6.578 124
"10000_1037_20230814_2" 35765 8.301 166 35764 8.301 165
"10000_1037_20230814_2" 35802 11.063 203 35801 11.063 202
"10000_1037_20230814_1" 35413 6.572 145 35412 6.572 144
"10000_2321_20260703_2" 191755 13.125 280 191754 13.125 279
"10000_2321_20260703_2" 191792 15.887 317 191791 15.887 316
"10000_4300_20260831_1" 222323 6.563 126 222322 6.563 125
"10000_4300_20260831_2" 222620 8.497 138 222619 8.497 137
"10000_4300_20260831_2" 222657 11.259 175 222656 11.259 174
"10000_4731N_20251103_1" 289157 20.387 364 289156 20.387 363
"10000_1052_20260601_2" 39138 7.218 200 39137 7.218 199
"10000_1052_20260601_1" 38732 12.912 353 38731 12.912 352
"10000_2113N_20260810_2" 104582 2.451 64 104581 2.451 63
"10003_a-559" 1033496 189.0 232264 1033495 189.0 232263
"10003_a-558" 1033354 126.0 238740 1033353 126.0 238739
"10003_a-557" 1033340 2125.0 228547 1033339 2125.0 228546
"10003_a-556" 1032595 3336.0 231660 1032594 3336.0 231659
"10003_a-556" 1032607 3621.0 231672 1032606 3621.0 231671
"10003_a-556" 1032646 4338.0 231711 1032645 4338.0 231710
"10003_a-556" 1032666 4795.0 231731 1032665 4795.0 231730
"10003_a-556" 1032698 5643.0 231763 1032697 5643.0 231762
"10003_a-556" 1032717 6057.0 231782 1032716 6057.0 231781
"10003_a-556" 1032725 6273.0 231790 1032724 6273.0 231789
"10003_a-556" 1032737 6633.0 231802 1032736 6633.0 231801
"10003_a-556" 1032746 7189.0 231811 1032745 7189.0 231810
"10003_a-556" 1032763 7896.0 231828 1032762 7896.0 231827
"10003_a-556" 1032778 8334.0 231843 1032777 8334.0 231842
"10003_a-556" 1032799 9210.0 231864 1032798 9210.0 231863
"10003_a-556" 1032806 9596.0 231871 1032805 9596.0 231870
"10003_a-556" 1032824 10606.0 231889 1032823 10606.0 231888
"10003_a-556" 1032848 11669.0 231913 1032847 11669.0 231912
"10003_a-556" 1032872 12820.0 231937 1032871 12820.0 231936
"10003_a-556" 1032880 13558.0 231945 1032879 13558.0 231944
"10003_a-556" 1032891 14071.0 231956 1032890 14071.0 231955
"10003_a-556" 1032916 15595.0 231981 1032915 15595.0 231980
"10003_a-556" 1032969 17299.0 232034 1032968 17299.0 232033
"10003_a-556" 1033035 18665.0 232100 1033034 18665.0 232099
"10003_a-556" 1033084 19575.0 232149 1033083 19575.0 232148
"10003_a-556" 1033103 19672.0 232168 1033102 19672.0 232167
expired_calendar WARNING 646

expired_calendar

Dataset should not contain date ranges for services that have already expired.

This warning takes into account the calendar_dates.txt file as well as the calendar.txt file.

You can see more about this notice here.

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

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
89 "10012_ELY_M-P_KESÄ_2026_50"
91 "10019_Lifti_kesäkausi_Ma-Pe"
93 "11258_M-P++"
94 "11486_TRAFI KESÄ M-P 2026"
102 "10003_1001011207"
103 "10003_1001011225"
104 "10003_1001012225"
108 "10003_1001021207"
113 "10003_1001031207"
117 "10003_1001041225"
118 "10003_1001042225"
122 "10003_1001051206"
123 "10003_1001051207"
128 "10003_1001061206"
135 "10003_1001071207"
139 "10003_1001081206"
140 "10003_1001081207"
145 "10003_1001091206"
146 "10003_1001091207"
147 "10003_1001091225"
149 "10003_1001092225"
151 "10003_1001101225"
152 "10003_1001102225"
157 "10003_1002011207"
161 "10003_1002021207"
180 "10003_1002071207"
191 "10003_1003010207"
196 "10003_1003020207"
205 "10003_1003050207"
210 "10003_1003060207"
233 "10003_1004011207"
251 "10003_1004061207"
256 "10003_1004071207"
260 "10003_1004081207"
271 "10003_1005011207"
282 "10003_1005041207"
286 "10003_1005051207"
299 "10003_1006011206"
306 "10003_1006030207"
313 "10003_1006050207"
318 "10003_1006060207"
323 "10003_1006070207"
335 "10003_1006110207"
340 "10003_1006122205"
350 "10003_1006161205"
352 "10003_1006170206"
372 "10003_1008041207"
376 "10003_1008051207"
381 "10003_1008061207"
385 "10003_1008071207"
leading_or_trailing_whitespaces WARNING 1

leading_or_trailing_whitespaces

The value in CSV file has leading or trailing whitespaces.

This notice is emitted for values protected with double quotes since whitespaces for non-protected values are trimmed automatically by CSV parser.

The validator strips whitespaces from protected values. We do not see any use case when such a whitespace may be needed. On the other hand, some real-world feeds use trailing whitespaces for some values and omit them for the others. This is causing the largest problem when a primary key and a foreign key differ just by a whitespace: it is clear that they are intended to be the same, that is why we always strip whitespaces.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) Faulty record's field name. fieldValue (?) Faulty value.
"translations.txt" 1265 "translation" " Drumsövägen 33"
missing_recommended_field WARNING 2

missing_recommended_field

A recommended field is missing.

The given field has no value in some input row, even though values are recommended.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) The name of the missing field.
"feed_info.txt" 2 "feed_start_date"
"feed_info.txt" 2 "feed_end_date"
missing_timepoint_value WARNING 100000

missing_timepoint_value

stop_times.timepoint value is missing for a record.

When at least one of stop_times.arrival_time or stop_times.departure_time are provided, stop_times.timepoint should be defined

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. tripId (?) The faulty record's `stop_times.trip_id`. stopSequence (?) The faulty record's `stop_times.stop_sequence`.
12173476 "10070_19601126201" 1
12173477 "10070_19601126201" 2
12173478 "10070_19601126201" 3
12173479 "10070_19601126201" 4
12173480 "10070_19601126201" 5
12173481 "10070_19601126201" 6
12173482 "10070_19601126201" 7
12173483 "10070_19601126201" 8
12173484 "10070_19601126201" 9
12173485 "10070_19601126201" 10
12173486 "10070_19601126201" 11
12173487 "10070_19601126201" 12
12173488 "10070_19601126201" 13
12173489 "10070_19601126201" 14
12173490 "10070_19601126201" 15
12173491 "10070_19601126201" 16
12173492 "10070_19601126201" 17
12173493 "10070_19601126201" 18
12173494 "10070_19601126201" 19
12173495 "10070_19601126201" 20
12173496 "10070_19601126201" 21
12173497 "10070_19601126201" 22
12173498 "10070_19601126201" 23
12173499 "10070_19601126201" 24
12173500 "10070_19601126201" 25
12173501 "10070_19601126201" 26
12173502 "10070_19601126201" 27
12173503 "10070_19601126201" 28
12173504 "10070_19601126201" 29
12173505 "10070_19601126201" 30
12173506 "10070_19601126201" 31
12173507 "10070_19601126201" 32
12173508 "10070_19601126201" 33
12173509 "10070_19601126201" 34
12173510 "10070_19601126202" 1
12173511 "10070_19601126202" 2
12173512 "10070_19601126202" 3
12173513 "10070_19601126202" 4
12173514 "10070_19601126202" 5
12173515 "10070_19601126202" 6
12173516 "10070_19601126202" 7
12173517 "10070_19601126202" 8
12173518 "10070_19601126202" 9
12173519 "10070_19601126202" 10
12173520 "10070_19601126202" 11
12173521 "10070_19601126202" 12
12173522 "10070_19601126202" 13
12173523 "10070_19601126202" 14
12173524 "10070_19601126202" 15
12173525 "10070_19601126202" 16
mixed_case_recommended_field WARNING 660

mixed_case_recommended_field

This field has customer-facing text and should use Mixed Case (should contain upper and lower case letters).

This field contains customer-facing text and should use Mixed Case (upper and lower case letters) to ensure good readability when displayed to riders. Avoid the use of abbreviations throughout the feed (e.g. St. for Street) unless a location is called by its abbreviated name (e.g. “JFK Airport”). Abbreviations may be problematic for accessibility by screen reader software and voice user interfaces.

Good examples:
Field Text Dataset
"Schwerin, Hauptbahnhof" Verkehrsverbund Berlin-Brandenburg
"Red Hook/Atlantic Basin" NYC Ferry
"Campo Grande Norte" Carris
Bad examples:
Field Text
"GALLERIA MALL"
"3427 GG 17"
"21 Clark Rd Est"

You can see more about this notice here.

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

filename (?) Name of the faulty file. fieldName (?) Name of the faulty field. fieldValue (?) Faulty value. csvRowNumber (?) The row number of the faulty record.
"routes.txt" "route_short_name" "246KT" 93
"routes.txt" "route_short_name" "349BK" 113
"routes.txt" "route_short_name" "20BH" 995
"routes.txt" "route_short_name" "35BK" 1017
"routes.txt" "route_short_name" "56BK" 1043
"routes.txt" "route_short_name" "9BK" 1059
"routes.txt" "route_short_name" "454AX" 1301
"routes.txt" "route_short_name" "2AP" 1626
"routes.txt" "route_short_name" "2IP" 1627
"routes.txt" "route_short_name" "10ME" 1670
"routes.txt" "route_short_name" "22BC" 1735
"routes.txt" "route_short_name" "35AV" 2918
"routes.txt" "route_short_name" "4TL" 3011
"routes.txt" "route_short_name" "31AK" 3275
"routes.txt" "route_short_name" "587BK" 3649
"routes.txt" "route_short_name" "38AM" 3952
"routes.txt" "route_short_name" "38JL" 3956
"routes.txt" "route_short_name" "38JL+" 3957
"routes.txt" "route_short_name" "38BJL" 3958
"routes.txt" "route_short_name" "454AX" 3986
"routes.txt" "route_short_name" "454AX" 4011
"stops.txt" "stop_name" "DHL etelä" 4682
"stops.txt" "stop_name" "DHL pohjoinen" 4683
"stops.txt" "stop_name" "DHL etelä" 4822
"stops.txt" "stop_name" "DHL pohjoinen" 4823
"stops.txt" "stop_name" "TYKS T-sairaala" 11142
"stops.txt" "stop_name" "TYKS T-sairaala" 13387
"stops.txt" "stop_name" "Y-tien vaihtopysäkki I" 16436
"stops.txt" "stop_name" "Y-tien risteys I" 17474
"stops.txt" "stop_name" "Y-tien risteys L" 17475
"stops.txt" "stop_name" "TV-masto I" 21088
"stops.txt" "stop_name" "TV-masto L" 21089
"stops.txt" "stop_name" "kurjentien th L" 23087
"stops.txt" "stop_name" "KAKS vanha sairaala S1" 23473
"stops.txt" "stop_name" "KAKS talouskeskus" 23497
"stops.txt" "stop_name" "III hautausmaa I" 30151
"stops.txt" "stop_name" "III hautausmaa L" 30152
"stops.txt" "stop_name" "K-market posio" 33689
"stops.txt" "stop_name" "E-P:n opisto th L" 35147
"stops.txt" "stop_name" "E-P:n opisto th I" 35148
"stops.txt" "stop_name" "KAKS kappeli" 38111
"stops.txt" "stop_name" "nimetön" 38303
"stops.txt" "stop_name" "KAKS pääovi" 38363
"stops.txt" "stop_name" "nimetön" 38373
"stops.txt" "stop_name" "ABC piha" 43768
"stops.txt" "stop_name" "S-market 8-tie P" 45046
"stops.txt" "stop_name" "S-market 8-tie E" 45047
"stops.txt" "stop_name" "linja-autoasema" 45723
"stops.txt" "stop_name" "linja-autoasema" 46489
"stops.txt" "stop_name" "asema-aukio" 46843
non_ascii_or_non_printable_char WARNING 957878

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 957878 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" 27 "service_id" "10408_Kesälinja La-Su"
"calendar.txt" 46 "service_id" "10011_2026 KESÄ Linja 18"
"calendar.txt" 85 "service_id" "11486_La kesä26"
"calendar.txt" 86 "service_id" "11486_M-P kesä26"
"calendar.txt" 87 "service_id" "11486_Su kesä26"
"calendar.txt" 89 "service_id" "10012_ELY_M-P_KESÄ_2026_50"
"calendar.txt" 90 "service_id" "10019_Lifti_kesäkausi_La"
"calendar.txt" 91 "service_id" "10019_Lifti_kesäkausi_Ma-Pe"
"calendar.txt" 92 "service_id" "10019_Lifti_kesäkausi_Su"
"calendar.txt" 94 "service_id" "11486_TRAFI KESÄ M-P 2026"
"calendar.txt" 95 "service_id" "10007_2026 kesä_0_ma-pe_loppuu_2026-08-04"
"calendar.txt" 96 "service_id" "10011_2026 KESÄ Linja 1 (Ma-Pe) 4.8 asti"
"calendar.txt" 98 "service_id" "10010_SOTKATTI Kesäarki 2026"
"calendar.txt" 740 "service_id" "10602_Kesä2026_ELY"
"calendar.txt" 741 "service_id" "11914_Kesä 2026 la"
"calendar.txt" 742 "service_id" "11914_Kesä 2026 ma-pe"
"calendar.txt" 743 "service_id" "11914_Kesä 2026 poikkeus"
"calendar.txt" 744 "service_id" "10016_kesä arki 2026"
"calendar.txt" 745 "service_id" "10016_kesä viikonloppu 2026"
"calendar.txt" 755 "service_id" "10007_2026 kesä_0_ma-pe"
"calendar.txt" 756 "service_id" "10007_2026 kesä_0_ma-to"
"calendar.txt" 757 "service_id" "10007_2026 kesä_1_ma"
"calendar.txt" 758 "service_id" "10007_2026 kesä_2_ti"
"calendar.txt" 759 "service_id" "10007_2026 kesä_3_ke"
"calendar.txt" 760 "service_id" "10007_2026 kesä_4_to"
"calendar.txt" 761 "service_id" "10007_2026 kesä_5_pe"
"calendar.txt" 762 "service_id" "10007_2026 kesä_6_la"
"calendar.txt" 763 "service_id" "10007_2026 kesä_7_su"
"calendar.txt" 764 "service_id" "10009_L - kesä"
"calendar.txt" 765 "service_id" "10009_M-P kesä"
"calendar.txt" 766 "service_id" "10009_Pe kesä"
"calendar.txt" 767 "service_id" "10009_SEUTU L kesä"
"calendar.txt" 768 "service_id" "10009_SEUTU M-P kesä"
"calendar.txt" 769 "service_id" "10009_SEUTU pe kesä"
"calendar.txt" 770 "service_id" "10009_SEUTU S kesä"
"calendar.txt" 771 "service_id" "10009_S - kesä"
"calendar.txt" 772 "service_id" "10011_2026 KESÄ Hamina Arki"
"calendar.txt" 773 "service_id" "10011_2026 KESÄ Hamina Keskiviikko"
"calendar.txt" 774 "service_id" "10011_2026 KESÄ Hamina Maanantai"
"calendar.txt" 775 "service_id" "10011_2026 KESÄ Hamina Ma ja Ke"
"calendar.txt" 776 "service_id" "10011_2026 KESÄ Hamina Ma ja TO"
"calendar.txt" 777 "service_id" "10011_2026 KESÄ Hamina Perjantai"
"calendar.txt" 778 "service_id" "10011_2026 KESÄ Hamina Ti"
"calendar.txt" 779 "service_id" "10011_2026 KESÄ Hamina Ti ja Pe"
"calendar.txt" 780 "service_id" "10011_2026 KESÄ Hamina Ti ja To"
"calendar.txt" 781 "service_id" "10011_2026 KESÄ Hamina Torstai"
"calendar.txt" 782 "service_id" "10011_2026 KESÄ Kotka Arki"
"calendar.txt" 783 "service_id" "10011_2026 KESÄ Kotka Lauantai"
"calendar.txt" 784 "service_id" "10011_2026 KESÄ Kotka MA,KE&PE"
"calendar.txt" 785 "service_id" "10011_2026 KESÄ Kotka MA&PE"