fintraffic — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-07-24T18:25:46Z,
for the dataset file:///shared/fintraffic_cc021f40.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: 4343
  • Shapes: 7046
  • Stops: 82534
  • Trips: 0

Specification Compliance report

1120799 notices reported (303 errors, 1119416 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" 13067415 0.0 2 13067414 0.0 1
"10137_4010107" "374752" 13060345 0.0 2 13060344 0.0 1
"10137_4010108" "374694" 13060351 21365.0 4 13060350 21365.0 3
"10137_4010109" "374752" 13060353 0.0 2 13060352 0.0 1
"10137_4010103" "374752" 13060328 0.0 2 13060327 0.0 1
"10137_4010105" "374752" 13060337 0.0 2 13060336 0.0 1
"10137_4010106" "374694" 13060343 21365.0 4 13060342 21365.0 3
"10137_4010110" "374694" 13060359 21365.0 4 13060358 21365.0 3
"10137_4010111" "374752" 13060361 0.0 2 13060360 0.0 1
"10137_4010112" "374694" 13060367 21365.0 4 13060366 21365.0 3
"10137_4010113" "374752" 13060369 0.0 2 13060368 0.0 1
"10137_4010118" "374694" 13060393 21365.0 4 13060392 21365.0 3
"10137_4010119" "374752" 13060395 0.0 2 13060394 0.0 1
"10137_4010114" "374694" 13060375 21365.0 4 13060374 21365.0 3
"10137_4010116" "374694" 13060384 21365.0 4 13060383 21365.0 3
"10137_4010121" "374752" 13060404 0.0 2 13060403 0.0 1
"10137_4010122" "374694" 13060410 21365.0 4 13060409 21365.0 3
"10137_4010129" "374752" 13060434 0.0 2 13060433 0.0 1
"10137_4010125" "374752" 13060417 0.0 2 13060416 0.0 1
"10137_4010126" "374694" 13060423 21365.0 4 13060422 21365.0 3
"10137_4010127" "374752" 13060425 0.0 2 13060424 0.0 1
"11293_79656_1197456" "315236" 14251174 27.222 43 14251173 27.222 42
"10137_550002" "445053" 13063901 0.0 2 13063900 0.0 1
"10137_550001" "445052" 13063899 0.0 2 13063898 0.0 1
"10137_540002" "445050" 13063897 0.0 2 13063896 0.0 1
"10137_540001" "445051" 13063895 0.0 2 13063894 0.0 1
"11293_79656_1213521" "346851" 14253011 29.101 27 14253010 29.101 26
"11293_79656_1213522" "346851" 14253072 29.101 27 14253071 29.101 26
"11293_79656_1213523" "346851" 14253133 29.101 27 14253132 29.101 26
"11293_79656_1213524" "346851" 14253194 29.101 27 14253193 29.101 26
"10137_530091" "400918" 13063883 0.0 2 13063882 0.0 1
"10137_530090" "400917" 13063881 0.0 2 13063880 0.0 1
"10137_530089" "400918" 13063879 0.0 2 13063878 0.0 1
"10137_530082" "400917" 13063865 0.0 2 13063864 0.0 1
"10137_530081" "400918" 13063863 0.0 2 13063862 0.0 1
"10137_530084" "400917" 13063869 0.0 2 13063868 0.0 1
"10137_530083" "400918" 13063867 0.0 2 13063866 0.0 1
"10137_530086" "400917" 13063873 0.0 2 13063872 0.0 1
"10137_530085" "400918" 13063871 0.0 2 13063870 0.0 1
"10137_530088" "400917" 13063877 0.0 2 13063876 0.0 1
"10137_530087" "400918" 13063875 0.0 2 13063874 0.0 1
"10137_530080" "400917" 13063861 0.0 2 13063860 0.0 1
"10137_530079" "400918" 13063859 0.0 2 13063858 0.0 1
"10137_530078" "400917" 13063857 0.0 2 13063856 0.0 1
"10137_530071" "400918" 13063843 0.0 2 13063842 0.0 1
"10137_530070" "400917" 13063841 0.0 2 13063840 0.0 1
"10137_530073" "400918" 13063847 0.0 2 13063846 0.0 1
"10137_530072" "400917" 13063845 0.0 2 13063844 0.0 1
"10137_530075" "400918" 13063851 0.0 2 13063850 0.0 1
"10137_530074" "400917" 13063849 0.0 2 13063848 0.0 1
equal_shape_distance_diff_coordinates ERROR 35

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" 288420 0.0 2 288419 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_4712_20260525_2" 288055 0.0 2 288054 0.0 1 1.1235847548510234
"10000_1090N_20260423_2" 76545 17.715 428 76544 17.715 427 1.2874795666277505
"10000_2164K_20250811_1" 139783 20.37 339 139782 20.37 338 1.3395575428414397
"10000_6211U_20260101_1" 352026 17.66 470 352025 17.66 469 1.3144432868054194
"10000_2162_20260810_2" 134055 0.679 29 134054 0.679 28 1.3144432868054194
"10000_2163_20260810_2" 135124 6.643 218 135123 6.643 217 1.3395575428414397
"10000_2116_20260810_2" 111914 6.582 187 111913 6.582 186 1.315130027747361
"10000_2116_20260810_1" 111563 2.828 101 111562 2.828 100 1.315130027747361
"10000_2163K_20260810_2" 137455 7.528 230 137454 7.528 229 1.3395575428414397
"10000_2165N_20260810_2" 144448 0.679 29 144447 0.679 28 1.3144432868054194
"10000_2164K_20260810_1" 140608 20.37 339 140607 20.37 338 1.3395575428414397
"10000_1090A_20260423_2" 75627 16.057 310 75626 16.057 309 1.2874795666277505
"10000_2168_20260615_2" 147395 3.884 159 147394 3.884 158 1.3144432868054194
"10000_2168_20260615_1" 147137 10.281 322 147136 10.281 321 1.3144432868054194
"10000_2165_20260413_2" 141579 4.955 172 141578 4.955 171 1.3144432868054194
"10000_1097N_20251103_2" 83018 17.051 367 83017 17.051 366 1.2874795666277505
"10000_9841N_20251103_2" 433667 44.022 961 433666 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" 148315 3.884 159 148314 3.884 158 1.3144432868054194
"10000_2248X_20260101_1" 196603 17.252 310 196602 17.252 309 1.3144432868054194
"10000_1096N_20260423_2" 81948 17.626 393 81947 17.626 392 1.2874795666277505
"10000_2116_20260119_2" 111384 5.613 160 111383 5.613 159 1.315130027747361
"10000_2116_20260119_1" 111078 2.828 101 111077 2.828 100 1.315130027747361
"10000_1055_20260701_2" 43511 7.737 147 43510 7.737 146 1.2874795666277505
"10000_2163K_20260615_2" 136290 7.528 230 136289 7.528 229 1.3395575428414397
"10000_2213_20260706_1" 157387 26.541 557 157386 26.541 556 1.3144432868054194
"10000_2211E_20260615_1" 155362 17.661 470 155361 17.661 469 1.3144432868054194
"10000_2165N_20260413_1" 143162 28.109 603 143161 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" 186372 6.675 210 186371 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" 125347 "block_id" "10009_V�KIV5"
"trips.txt" 125349 "block_id" "10009_V�KIV5"
"trips.txt" 412944 "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`.
858 "21891" 859 "21892" "Matka Mäkelä" "Keuruu-Jyväskylä" 3 "1063"
858 "21891" 860 "21893" "Matka Mäkelä" "Keuruu-Jyväskylä" 3 "1063"
401 "20835" 1870 "103571" "720" "Sauvo-Turku" 3 "1037"
1839 "97888" 2204 "147797" "" "Kuopio - Outokumpu - Joensuu" 3 "1062"
858 "21891" 2502 "216299" "Matka Mäkelä" "Keuruu-Jyväskylä" 3 "1063"
2592 "255348" 2981 "332616" "OB4" "Rovaniemi - Jyväskylä - Helsinki" 3 "1205"
1936 "106029" 3011 "341023" "440" "Joensuu - Juuka - Nurmes" 3 "1061"
3504 "349165" 3505 "349166" "8" "Sahanmäen teollisuusalue - Onnela - rautatieasema" 3 "1163"
2264 "162340" 3614 "349594" "VAU" "Urjala - Viiala - Toijala" 3 "2386"
2265 "162341" 3615 "349595" "VAU" "Toijala - Viiala - Urjala" 3 "2386"
2260 "162336" 3616 "349596" "69U" "Urjala - Viiala - Toijala - Valkeakoski" 3 "2386"
2261 "162337" 3617 "349597" "69U" "Valkeakoski - Toijala - Viiala - Urjala" 3 "2386"
2262 "162338" 3618 "349598" "69U" "Toijala - Valkeakoski" 3 "2386"
2263 "162339" 3619 "349599" "69U" "Valkeakoski - Toijala" 3 "2386"
3260 "348682" 3665 "349737" "" "Helsinki - Hyvinkää" 3 "1101"
2171 "138516" 3680 "349758" "" "Varkaus - Kuopio" 3 "1083"
2167 "138504" 3682 "349760" "" "Kuopio - Varkaus" 3 "1083"
2925 "326076" 3753 "349868" "" "Lappeenranta - Joensuu" 3 "1062"
2453 "209176" 3975 "350364" "" "Joensuu - Varkaus - Pieksämäki - Jyväskylä" 3 "1062"
2452 "209175" 3976 "350365" "" "Jyväskylä - Pieksämäki - Varkaus - Joensuu" 3 "1062"
4296 "350793" 4307 "350829" "OB11" "Helsinki - Turku - Pori" 3 "1205"
4297 "350794" 4308 "350831" "OB11" "Turku - Rauma" 3 "1205"
4298 "350795" 4309 "350832" "OB11" "Turku - Pori - Vaasa" 3 "1205"
4299 "350796" 4310 "350833" "OB11" "Turku - Rauma - Pori" 3 "1205"
4300 "350797" 4311 "350834" "OB11" "Helsinki - Turku - Säkylä - Pori" 3 "1205"
4301 "350798" 4312 "350835" "OB11" "Helsinki - Turku - Pori - Vaasa" 3 "1205"
4302 "350799" 4313 "350836" "OB11" "Rauma - Turku - Helsinki" 3 "1205"
2755 "311119" 4328 "350851" "" "Kerimäki - Louhi - Savonlinna" 3 "3310"
2761 "311129" 4329 "350852" "" "Savonlinna - Louhi - Kerimäki" 3 "3310"
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 1907

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 1907 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" 331183 31.787 637 331182 31.787 636 1.0412212024940952
"10000_1040_20241220_1" 35995 2.126 43 35994 2.126 42 0.5559755052564519
"10000_2321_20260703_1" 196970 2.0 35 196969 2.0 34 0.5559755052564519
"10000_4300_20260831_1" 231401 1.993 35 231400 1.993 34 0.5559755052564519
"10000_4431B_20240531_1" 242067 1.972 35 242066 1.972 34 0.5559755052564519
"10003_a-559" 1051451 1476.0 232331 1051450 1476.0 232330 0.05480930627795861
"10003_a-559" 1051526 2710.0 232406 1051525 2710.0 232405 0.054804557920746295
"10003_a-559" 1051528 2719.0 232408 1051527 2719.0 232407 0.05480466971880653
"10003_a-558" 1051324 1761.0 238822 1051323 1761.0 238821 0.10962007183587807
"10003_a-557" 1051145 507.0 228464 1051144 507.0 228463 0.05481003591793904
"10003_a-555" 1049842 623.0 225832 1049841 623.0 225831 0.7432415253609407
"10000_1069_20251101_2" 54974 9.043 238 54973 9.043 237 0.8440075903528271
"10003_a-510" 1049003 14233.0 210447 1049002 14233.0 210446 0.16422840147618673
"10003_a-510" 1049128 16096.0 210572 1049127 16096.0 210571 0.5872062128663513
"10003_a-510" 1049347 20547.0 210791 1049346 20547.0 210790 0.39705245607449
"10003_a-509" 1046105 623.0 204808 1046104 623.0 204807 0.7432415253609407
"10003_a-501" 1045446 20612.0 197464 1045445 20612.0 197463 0.39705245607449
"10003_a-500" 1043552 5682.0 195570 1043551 5682.0 195569 0.4525112405367409
"10003_a-500" 1044079 17417.0 196097 1044078 17417.0 196096 0.39705245607449
"10003_a-500" 1044543 30949.0 196561 1044542 30949.0 196560 0.12405102932754393
"10003_a-500" 1044575 31645.0 196593 1044574 31645.0 196592 0.3979515050188473
"11258_60a-01" 2619436 14.759 101 2619435 14.759 100 0.3901270575748281
"10000_1071_20260203_1" 57169 12.579 335 57168 12.579 334 0.8440075903528271
"10000_2235N_20260831_1" 179085 2.011 35 179084 2.011 34 0.5559755052564519
"10000_2235N_20260831_1" 179271 11.881 221 179270 11.881 220 0.6469272760928166
"10000_2133_20260810_2" 125662 3.02 93 125661 3.02 92 1.097765446077062
"10000_2200_20260831_1" 151029 2.011 35 151028 2.011 34 0.5559755052564519
"10000_2200_20260831_1" 151216 11.874 222 151215 11.874 221 0.6469272760928166
"10003_a-580" 1055942 5704.0 31917 1055941 5704.0 31916 0.32866937161156995
"10003_a-579" 1054136 8274.0 27912 1054135 8274.0 27911 0.24582270191396702
"10003_a-576" 1053066 4222.0 26153 1053065 4222.0 26152 0.32866944289334243
"10003_630" 864187 5677.0 208879 864186 5677.0 208878 0.2743591832167754
"10003_630" 864321 9843.0 209013 864320 9843.0 209012 0.522485497902412
"10003_630" 864353 10790.0 209045 864352 10790.0 209044 0.05482968303808636
"10003_630" 864384 11209.0 209076 864383 11209.0 209075 0.16449115096864264
"10003_632" 864799 1044.0 209185 864798 1044.0 209184 0.16449115096864264
"10003_632" 865000 5801.0 209386 864999 5801.0 209385 0.2743591832167754
"10003_632" 865242 13039.0 209628 865241 13039.0 209627 0.3995853129142859
"10003_633" 866082 9942.0 212821 866081 9942.0 212820 0.19865243332126728
"10003_633" 866122 10668.0 212861 866121 10668.0 212860 0.19865243332126728
"10003_633" 866344 18423.0 213083 866343 18423.0 213082 0.522485497902412
"10003_633" 866376 19370.0 213115 866375 19370.0 213114 0.05482968303808636
"10003_633" 866407 19789.0 213146 866406 19789.0 213145 0.16449115096864264
"10003_634" 866524 1044.0 211584 866523 1044.0 211583 0.16449115096864264
"10003_634" 866744 6383.0 211804 866743 6383.0 211803 0.3995853129142859
"10003_634" 866915 10567.0 211975 866914 10567.0 211974 0.2741868501209072
"10003_634" 867053 14021.0 212113 867052 14021.0 212112 0.2743591832167754
"10003_634" 867191 18613.0 212251 867190 18613.0 212250 0.05482968303808636
"10003_634" 867222 19032.0 212282 867221 19032.0 212281 0.16449115096864264
"10003_635" 867498 5929.0 216307 867497 5929.0 216306 0.2743591832167754
equal_shape_distance_same_coordinates WARNING 28546

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 28546 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_2224_20260622_2" 164165 5.284 176 164164 5.284 175
"10000_6173N_20260601_1" 330830 18.085 284 330829 18.085 283
"10000_6173N_20260601_1" 331210 32.209 664 331209 32.209 663
"10000_6173N_20260601_1" 331658 50.71 1112 331657 50.71 1111
"10000_2113N_20221107_2" 104594 2.451 64 104593 2.451 63
"10000_4572_20260727_1" 266017 0.833 24 266016 0.833 23
"10000_6916K_20250602_2" 388087 13.013 266 388086 13.013 265
"10000_6916K_20250602_2" 388088 13.013 267 388087 13.013 266
"10000_6916K_20250602_1" 387558 5.326 145 387557 5.326 144
"10000_6916K_20250602_1" 387559 5.326 146 387558 5.326 145
"10000_2321_20260703_1" 197060 6.578 125 197059 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" 197648 13.125 280 197647 13.125 279
"10000_2321_20260703_2" 197685 15.887 317 197684 15.887 316
"10000_4300_20260831_1" 231492 6.563 126 231491 6.563 125
"10000_4300_20260831_2" 231789 8.497 138 231788 8.497 137
"10000_4300_20260831_2" 231826 11.259 175 231825 11.259 174
"10000_4731N_20251103_1" 301823 20.387 364 301822 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" 105317 2.451 64 105316 2.451 63
"10003_a-559" 1051384 189.0 232264 1051383 189.0 232263
"10003_a-558" 1051242 126.0 238740 1051241 126.0 238739
"10003_a-557" 1051228 2125.0 228547 1051227 2125.0 228546
"10003_a-556" 1050483 3336.0 231660 1050482 3336.0 231659
"10003_a-556" 1050495 3621.0 231672 1050494 3621.0 231671
"10003_a-556" 1050534 4338.0 231711 1050533 4338.0 231710
"10003_a-556" 1050554 4795.0 231731 1050553 4795.0 231730
"10003_a-556" 1050586 5643.0 231763 1050585 5643.0 231762
"10003_a-556" 1050605 6057.0 231782 1050604 6057.0 231781
"10003_a-556" 1050613 6273.0 231790 1050612 6273.0 231789
"10003_a-556" 1050625 6633.0 231802 1050624 6633.0 231801
"10003_a-556" 1050634 7189.0 231811 1050633 7189.0 231810
"10003_a-556" 1050651 7896.0 231828 1050650 7896.0 231827
"10003_a-556" 1050666 8334.0 231843 1050665 8334.0 231842
"10003_a-556" 1050687 9210.0 231864 1050686 9210.0 231863
"10003_a-556" 1050694 9596.0 231871 1050693 9596.0 231870
"10003_a-556" 1050712 10606.0 231889 1050711 10606.0 231888
"10003_a-556" 1050736 11669.0 231913 1050735 11669.0 231912
"10003_a-556" 1050760 12820.0 231937 1050759 12820.0 231936
"10003_a-556" 1050768 13558.0 231945 1050767 13558.0 231944
"10003_a-556" 1050779 14071.0 231956 1050778 14071.0 231955
"10003_a-556" 1050804 15595.0 231981 1050803 15595.0 231980
"10003_a-556" 1050857 17299.0 232034 1050856 17299.0 232033
"10003_a-556" 1050923 18665.0 232100 1050922 18665.0 232099
"10003_a-556" 1050972 19575.0 232149 1050971 19575.0 232148
expired_calendar WARNING 811

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 811 affected records are displayed below.

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
103 "10003_1001011207"
104 "10003_1001011225"
109 "10003_1001021207"
114 "10003_1001031207"
118 "10003_1001041225"
123 "10003_1001051206"
124 "10003_1001051207"
129 "10003_1001061206"
136 "10003_1001071207"
140 "10003_1001081206"
141 "10003_1001081207"
146 "10003_1001091206"
147 "10003_1001091207"
148 "10003_1001091225"
152 "10003_1001101225"
158 "10003_1002011207"
162 "10003_1002021207"
181 "10003_1002071207"
192 "10003_1003010207"
197 "10003_1003020207"
206 "10003_1003050207"
211 "10003_1003060207"
234 "10003_1004011207"
252 "10003_1004061207"
257 "10003_1004071207"
261 "10003_1004081207"
272 "10003_1005011207"
283 "10003_1005041207"
287 "10003_1005051207"
300 "10003_1006011206"
307 "10003_1006030207"
314 "10003_1006050207"
319 "10003_1006060207"
324 "10003_1006070207"
336 "10003_1006110207"
341 "10003_1006122205"
351 "10003_1006161205"
353 "10003_1006170206"
373 "10003_1008041207"
377 "10003_1008051207"
382 "10003_1008061207"
386 "10003_1008071207"
406 "10003_1009031207"
410 "10003_1009041207"
414 "10003_1009051207"
418 "10003_1009061207"
454 "10003_101A011206"
455 "10003_101A021206"
456 "10003_101A031206"
466 "10003_1021011207"
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`.
12975635 "10070_19601126201" 1
12975636 "10070_19601126201" 2
12975637 "10070_19601126201" 3
12975638 "10070_19601126201" 4
12975639 "10070_19601126201" 5
12975640 "10070_19601126201" 6
12975641 "10070_19601126201" 7
12975642 "10070_19601126201" 8
12975643 "10070_19601126201" 9
12975644 "10070_19601126201" 10
12975645 "10070_19601126201" 11
12975646 "10070_19601126201" 12
12975647 "10070_19601126201" 13
12975648 "10070_19601126201" 14
12975649 "10070_19601126201" 15
12975650 "10070_19601126201" 16
12975651 "10070_19601126201" 17
12975652 "10070_19601126201" 18
12975653 "10070_19601126201" 19
12975654 "10070_19601126201" 20
12975655 "10070_19601126201" 21
12975656 "10070_19601126201" 22
12975657 "10070_19601126201" 23
12975658 "10070_19601126201" 24
12975659 "10070_19601126201" 25
12975660 "10070_19601126201" 26
12975661 "10070_19601126201" 27
12975662 "10070_19601126201" 28
12975663 "10070_19601126201" 29
12975664 "10070_19601126201" 30
12975665 "10070_19601126201" 31
12975666 "10070_19601126201" 32
12975667 "10070_19601126201" 33
12975668 "10070_19601126201" 34
12975669 "10070_19601126202" 1
12975670 "10070_19601126202" 2
12975671 "10070_19601126202" 3
12975672 "10070_19601126202" 4
12975673 "10070_19601126202" 5
12975674 "10070_19601126202" 6
12975675 "10070_19601126202" 7
12975676 "10070_19601126202" 8
12975677 "10070_19601126202" 9
12975678 "10070_19601126202" 10
12975679 "10070_19601126202" 11
12975680 "10070_19601126202" 12
12975681 "10070_19601126202" 13
12975682 "10070_19601126202" 14
12975683 "10070_19601126202" 15
12975684 "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" 997
"routes.txt" "route_short_name" "35BK" 1019
"routes.txt" "route_short_name" "56BK" 1045
"routes.txt" "route_short_name" "9BK" 1061
"routes.txt" "route_short_name" "454AX" 1303
"routes.txt" "route_short_name" "2AP" 1628
"routes.txt" "route_short_name" "2IP" 1629
"routes.txt" "route_short_name" "10ME" 1686
"routes.txt" "route_short_name" "22BC" 1751
"routes.txt" "route_short_name" "35AV" 2940
"routes.txt" "route_short_name" "4TL" 3035
"routes.txt" "route_short_name" "31AK" 3310
"routes.txt" "route_short_name" "587BK" 3687
"routes.txt" "route_short_name" "38AM" 3990
"routes.txt" "route_short_name" "38JL" 3994
"routes.txt" "route_short_name" "38JL+" 3995
"routes.txt" "route_short_name" "38BJL" 3996
"routes.txt" "route_short_name" "454AX" 4024
"routes.txt" "route_short_name" "454AX" 4049
"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 965569

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