tcdd — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-09-02T16:27:55Z,
for the dataset file:///shared/tcdd_a56a94e6.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
vekejsn
Feed Email:
N/A
Feed Language:
Turkish
Feed Start Date:
2025-12-14
Feed End Date:
2026-02-12

Files included


  1. agency.txt
  2. calendar_dates.txt
  3. feed_info.txt
  4. routes.txt
  5. stop_times.txt
  6. stops.txt
  7. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 275
  • Shapes: 0
  • Stops: 488
  • Trips: 275

Specification Compliance report

1086 notices reported (0 errors, 1072 warnings, 14 infos)

Notice Code Severity Total
duplicate_route_name WARNING 32

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`.
16 "939" 20 "1017" "AH 12002" "ANKARA EKSPRESİ" 2 "TCDD"
10 "664" 87 "1090" "AH 72008" "KONYA MAVİ" 2 "TCDD"
11 "694" 88 "1091" "AH 22010" "DOĞU EKSPRESİ" 2 "TCDD"
12 "709" 89 "1092" "AH 92009" "DOĞU EKSPRESİ" 2 "TCDD"
6 "618" 90 "1093" "AH 22014" "GÜNEY EKSPRESİ" 2 "TCDD"
13 "739" 91 "1094" "AH 52013" "GÜNEY EKSPRESİ" 2 "TCDD"
3 "491" 94 "1099" "AH 32005" "İZMİR MAVİ" 2 "TCDD"
2 "384" 95 "1101" "AH 22001" "ANKARA EKSPRESİ" 2 "TCDD"
7 "620" 101 "1113" "AH 22018" "4 EYLÜL MAVİ" 2 "TCDD"
222 "1280" 223 "1281" "ULUSLARARASI_SET 12504" "SOFIA - İSTANBUL(HALKALI)" 2 "TCDD"
8 "629" 247 "1325" "AH 32015" "GÖLLER EKSPRESİ" 2 "TCDD"
9 "630" 248 "1326" "AH 72016" "GÖLLER EKSPRESİ" 2 "TCDD"
3 "491" 249 "1327" "AH 32005" "İZMİR MAVİ" 2 "TCDD"
5 "615" 250 "1328" "AH 22006" "İZMİR MAVİ" 2 "TCDD"
4 "492" 251 "1329" "AH 32007" "KONYA MAVİ" 2 "TCDD"
5 "615" 258 "1336" "AH 22006" "İZMİR MAVİ" 2 "TCDD"
252 "1330" 259 "1337" "AH 32004" "17 EYLÜL EKSPRESİ" 2 "TCDD"
254 "1332" 260 "1339" "BOLGESEL 32703" "BASMANE - DENİZLİ" 2 "TCDD"
255 "1333" 261 "1340" "BOLGESEL 32706" "DENİZLİ - BASMANE" 2 "TCDD"
253 "1331" 262 "1341" "BOLGESEL 32702" "DENİZLİ BASMANE" 2 "TCDD"
256 "1334" 263 "1342" "BOLGESEL 32744" "DENİZLİ-SÖKE" 2 "TCDD"
257 "1335" 264 "1343" "BOLGESEL 32601" "BASMANE-UŞAK" 2 "TCDD"
4 "492" 265 "1344" "AH 32007" "KONYA MAVİ" 2 "TCDD"
206 "1253" 268 "1350" "BOLGESEL 22641" "KARABÜK-ZONGULDAK" 2 "TCDD"
206 "1253" 269 "1353" "BOLGESEL 22641" "KARABÜK-ZONGULDAK" 2 "TCDD"
206 "1253" 270 "1354" "BOLGESEL 22641" "KARABÜK-ZONGULDAK" 2 "TCDD"
184 "1203" 271 "1357" "BOLGESEL 22642" "ZONGULDAK-KARABÜK" 2 "TCDD"
206 "1253" 272 "1358" "BOLGESEL 22641" "KARABÜK-ZONGULDAK" 2 "TCDD"
191 "1210" 273 "1373" "BOLGESEL 22651" "GÖKÇEBEY-ZONGULDAK" 2 "TCDD"
192 "1211" 274 "1374" "BOLGESEL 22653" "GÖKÇEBEY-ZONGULDAK" 2 "TCDD"
193 "1212" 275 "1375" "BOLGESEL 22655" "GÖKÇEBEY-ZONGULDAK" 2 "TCDD"
194 "1213" 276 "1376" "BOLGESEL 22657" "GÖKÇEBEY-ZONGULDAK" 2 "TCDD"
expired_calendar WARNING 275

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

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
2 "618"
3 "1094"
4 "1093"
5 "1278"
6 "1285"
7 "1297"
8 "1300"
9 "1282"
10 "1180"
11 "1181"
12 "1182"
13 "1183"
14 "1253"
15 "1350"
16 "1204"
17 "1207"
18 "1205"
19 "1354"
20 "1208"
21 "1353"
22 "1206"
23 "1357"
24 "1209"
25 "1214"
26 "1215"
27 "1203"
28 "1216"
29 "1210"
30 "1217"
31 "1373"
32 "1374"
33 "1376"
34 "1375"
35 "1211"
36 "1212"
37 "1358"
38 "1213"
39 "739"
40 "1091"
41 "1092"
42 "1096"
43 "1114"
44 "1113"
45 "1095"
46 "709"
47 "615"
48 "1099"
49 "1336"
50 "1102"
51 "1103"
feed_expiration_date7_days WARNING 1

feed_expiration_date7_days

Dataset should be valid for at least the next 7 days.

The dataset expiration date defined in feed_info.txt is in seven days or less. At any time, the published GTFS dataset should be valid for at least the next 7 days.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. currentDate (?) Current date (YYYYMMDD format). feedEndDate (?) Feed end date (YYYYMMDD format). suggestedExpirationDate (?) Suggested expiration date (YYYYMMDD format).
2 "20260902" "20260212" "20260909"
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
mixed_case_recommended_field WARNING 605

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 605 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.
"stops.txt" "stop_name" "İSTANBUL(PENDİK)" 8
"stops.txt" "stop_name" "ANKARA GAR" 16
"stops.txt" "stop_name" "ZONGULDAK (KİREMİTHANE)" 69
"stops.txt" "stop_name" "POLATLI YHT" 71
"stops.txt" "stop_name" "PINARLI DURAĞI" 72
"stops.txt" "stop_name" "AKKEÇİLİ DURAĞI" 73
"stops.txt" "stop_name" "GÜMÜŞÇAY DURAĞI" 74
"stops.txt" "stop_name" "BAYINDIR MYO" 75
"stops.txt" "stop_name" "BANDIRMA GAR" 85
"stops.txt" "stop_name" "BANDIRMA ŞEHİR" 86
"stops.txt" "stop_name" "CEBER KAMARA" 87
"stops.txt" "stop_name" "ADNANMENDERES HAVAALANI" 89
"stops.txt" "stop_name" "İZMİR (BASMANE)" 100
"stops.txt" "stop_name" "TOKI DURAĞI" 153
"stops.txt" "stop_name" "ARMUTLU DURAĞI" 160
"stops.txt" "stop_name" "BAHÇELİ (KM.755+290 S)" 167
"stops.txt" "stop_name" "AŞAĞI GÜNEŞ" 168
"stops.txt" "stop_name" "KEMALİYE ÇALTI" 183
"stops.txt" "stop_name" "KÖMÜR İŞLETMELERİ" 184
"stops.txt" "stop_name" "TOKAT(YEŞİLYURT)" 217
"stops.txt" "stop_name" "ÖZEL İDARE" 218
"stops.txt" "stop_name" "TATVAN GAR" 290
"stops.txt" "stop_name" "BÜYÜKDERBENT YHT" 301
"stops.txt" "stop_name" "AFYON A.ÇETİNKAYA" 306
"stops.txt" "stop_name" "FEN LİSESİ DURAĞI" 308
"stops.txt" "stop_name" "ALAYUNT MÜSELLES" 316
"stops.txt" "stop_name" "İSTANBUL(HALKALI)" 357
"stops.txt" "stop_name" "ÖDEMİŞ GAR" 376
"stops.txt" "stop_name" "YENİ KARASAR" 390
"stops.txt" "stop_name" "HEREKE YHT" 408
"stops.txt" "stop_name" "YARIMCA YHT" 409
"stops.txt" "stop_name" "DERİNCE YHT" 410
"stops.txt" "stop_name" "İZMİT YHT" 411
"stops.txt" "stop_name" "PAMUKOVA YHT" 412
"stops.txt" "stop_name" "BİLECİK YHT" 413
"stops.txt" "stop_name" "BOZÜYÜK YHT" 414
"stops.txt" "stop_name" "ÖDEMİŞ ŞEHİR" 416
"stops.txt" "stop_name" "BALIKESİR (GÖKKÖY)" 431
"stops.txt" "stop_name" "DAVUTLAR KÖYÜ" 432
"stops.txt" "stop_name" "YILDIRIM SAYDİNGİ" 433
"stops.txt" "stop_name" "HAVALİMANI DURAĞI" 434
"stops.txt" "stop_name" "BURMAHAN (KM.801+150)" 443
"stops.txt" "stop_name" "ERYAMAN YHT" 444
"stops.txt" "stop_name" "İSTANBUL(BOSTANCI)" 451
"stops.txt" "stop_name" "İSTANBUL(SÖĞÜTLÜÇEŞME)" 452
"stops.txt" "stop_name" "İSTANBUL(BAKIRKÖY)" 453
"stops.txt" "stop_name" "YENİDOĞAN DURAĞI" 457
"stops.txt" "stop_name" "SELÇUKLU YHT (KONYA)" 458
"stops.txt" "stop_name" "DİLİSKELESİ YHT" 460
"stops.txt" "stop_name" "KM 331+985 ŞEFKAT BAŞ MAKAS" 463
route_short_name_too_long WARNING 157

route_short_name_too_long

Short name of a route is too long (more than 12 characters).

You can see more about this notice here.

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

routeId (?) The id of the faulty record. csvRowNumber (?) The row number of the faulty record. routeShortName (?) The faulty record's `route_short_name`.
"856" 14 "ULUSLARARASI_CMO 52501"
"857" 15 "ULUSLARARASI_CMO 52502"
"999" 17 "TURISTIK_TREN 22016"
"1000" 18 "TURISTIK_TREN 92015"
"1013" 19 "ULUSLARARASI_SET 12503"
"1120" 103 "BOLGESEL 12733"
"1121" 104 "BOLGESEL 12734"
"1122" 105 "BOLGESEL 12710"
"1123" 106 "BOLGESEL 12711"
"1124" 107 "BOLGESEL 12712"
"1125" 108 "BOLGESEL 12713"
"1126" 109 "BOLGESEL 12601"
"1127" 110 "BOLGESEL 12602"
"1128" 111 "BOLGESEL 12603"
"1129" 112 "BOLGESEL 12604"
"1130" 113 "BOLGESEL 12605"
"1131" 114 "BOLGESEL 12606"
"1132" 115 "BOLGESEL 12607"
"1133" 116 "BOLGESEL 12608"
"1134" 117 "BOLGESEL 12609"
"1135" 118 "BOLGESEL 12610"
"1136" 119 "BOLGESEL 12611"
"1137" 120 "BOLGESEL 12612"
"1138" 121 "BOLGESEL 22601"
"1139" 122 "BOLGESEL 22602"
"1140" 123 "BOLGESEL 22603"
"1141" 124 "BOLGESEL 22604"
"1142" 125 "BOLGESEL 22605"
"1143" 126 "BOLGESEL 22606"
"1144" 127 "BOLGESEL 22607"
"1145" 128 "BOLGESEL 22608"
"1146" 129 "BOLGESEL 22609"
"1147" 130 "BOLGESEL 22610"
"1148" 131 "BOLGESEL 22611"
"1149" 132 "BOLGESEL 22612"
"1151" 133 "BOLGESEL 32606"
"1152" 134 "BOLGESEL 32607"
"1153" 135 "BOLGESEL 32610"
"1154" 136 "BOLGESEL 32603"
"1155" 137 "BOLGESEL 32602"
"1156" 138 "BOLGESEL 32605"
"1157" 139 "BOLGESEL 32604"
"1158" 140 "BOLGESEL 32609"
"1159" 141 "BOLGESEL 32608"
"1160" 142 "BOLGESEL 32611"
"1161" 143 "BOLGESEL 32612"
"1162" 144 "BOLGESEL 42601"
"1163" 145 "BOLGESEL 42602"
"1164" 146 "BOLGESEL 42603"
"1165" 147 "BOLGESEL 42604"
trip_coverage_not_active_for_next7_days WARNING 1

trip_coverage_not_active_for_next7_days

Trips data should be valid for at least the next seven days.

This notice is triggered if the date range where a significant number of trips are running ends in less than 7 days.

You can see more about this notice here.

currentDate (?) Current date (YYYYMMDD format). serviceWindowStartDate (?) The start date of the majority service window. serviceWindowEndDate (?) The end date of the majority service window.
"20260902" "20251214" "20251216"
service_window_outside_feed_period INFO 14

service_window_outside_feed_period

A service window is not covered by the feed's validity period.

You can see more about this notice here.

serviceId (?) The service_id whose active window extends outside the feed validity period. serviceWindowStartDate (?) The first active date of the service window. serviceWindowEndDate (?) The last active date of the service window. daysBeforeFeedStart (?) Number of days the service window extends before feed_start_date (0 if none). daysAfterFeedEnd (?) Number of days the service window extends after feed_end_date (0 if none).
"491" "2025-12-13" "2025-12-13" 1 0
"492" "2025-12-13" "2025-12-13" 1 0
"939" "2025-12-13" "2025-12-13" 1 0
"384" "2025-12-13" "2025-12-13" 1 0
"709" "2025-12-13" "2025-12-13" 1 0
"1280" "2025-12-13" "2025-12-13" 1 0
"615" "2025-12-13" "2025-12-13" 1 0
"618" "2025-12-13" "2025-12-13" 1 0
"739" "2025-12-13" "2025-12-13" 1 0
"620" "2025-12-13" "2025-12-13" 1 0
"629" "2025-12-13" "2025-12-13" 1 0
"630" "2025-12-13" "2025-12-13" 1 0
"664" "2025-12-13" "2025-12-13" 1 0
"694" "2025-12-13" "2025-12-13" 1 0