SRT data check
Feed version 20261025 (1 Jan 2026 to 31 Dec 2026) · imported 26 Oct 2026
To check (7)
Each of these needs a decision. If the feed is wrong and a second source confirms it, add a correction
(NAME_FIXES, POSITION_FIXES); if it is fine as it is, add it to ACCEPTED
with the reason, the key and the text as shown (both in app/services/importer/corrections.py).
Stations off their main line's route (4)
The feed's position of the station, or the route there: correct the position, or accept.
- main lines: Pak Chong (stop 16950): 289 m from the route of its main line
station-off-route16950 - main lines: Rangsit (stop 222): 185 m from the route of its main line
station-off-route222 - main lines: Bangkok (Krung Thep Aphiwat) (stop 266): 170 m from the route of its main line
station-off-route266 - main lines: Lam Plai Mat (stop 16953): 128 m from the route of its main line
station-off-route16953
Main lines not drawn on to where their trains run (2)
Find the station in OpenStreetMap: the line is drawn on to a destination whose Thai name matches one OSM station exactly; fix the name in OSM, or add the stations from another source.
- Southern Line: the feed's trips end at Nakhon Pathom, its trains run on to Surat Thani: no OpenStreetMap station of that Thai name; not drawn on
open-endsouth:256:Surat Thani - Southern Line: the feed's trips end at Nakhon Pathom, its trains run on to Padang Besar (ปาดังเบซาร์): no OpenStreetMap station of that Thai name; not drawn on
open-endsouth:256:ปาดังเบซาร์
Implausible headways (1)
Find a source for the headways before showing them.
- Dark Red Line: headway 10–45 min
headwaydark-red
Not checked yet
- Fares: the feed is the only source so far (only fares it gives twice are listed).
- Fares of the trains on the main lines: the feed has base fares only (no class or express supplements), not shown.
- Headways of Dark Red Line, Light Red Line: not shown on the pages, no official source yet (the feed's are partly implausible).
Accepted differences (4)
- Dark Red Line: Krung Thep Aphiwat Central Terminal Station (stop 13846), name in the feed / in OSM: “Krung Thep Aphiwat Central Terminal Station” / “Krung Thep Aphiwat” · “สถานีกลางกรุงเทพอภิวัฒน์” / “กรุงเทพอภิวัฒน์” — The station's full name; OSM has the short form (2026-10-26)
- Dark Red Line: Don Mueang (stop 5415), name in the feed / in OSM: “Don Mueang” / “Don Muang” — Spelling variant of ดอนเมือง (2026-10-26)
- Light Red Line: Krung Thep Aphiwat Central Terminal Station (stop 13846), name in the feed / in OSM: “Krung Thep Aphiwat Central Terminal Station” / “Krung Thep Aphiwat” · “สถานีกลางกรุงเทพอภิวัฒน์” / “กรุงเทพอภิวัฒน์” — The station's full name; OSM has the short form (2026-10-26)
- Light Red Line: Taling Chan (stop 13847), name in the feed / in OSM: “Taling Chan” / “Taling Chan Junction” · “ตลิ่งชัน” / “ชุมทางตลิ่งชัน” — The Red Line's station; OSM has the name of the junction station of the main line (2026-10-26)
Sources
What each source has, how good it is, and what the map takes from it. Found by comparing the GTFS feed with OpenStreetMap (below) and looking for the operator's own information.
| Data | GTFS feed (Namtang / OTP) | OpenStreetMap | Operator | On the map |
|---|---|---|---|---|
| Lines, stations, order | Complete: Dark Red 10 stations, Light Red 4, both from Krung Thep Aphiwat; both lines named “Red”, each station with a note on its line in brackets (left out) | The same stations in the same order | – | Feed, checked against OpenStreetMap |
| Route | Close to the tracks | The tracks, accurate to a few metres | – | OpenStreetMap where it agrees with the feed (table below) |
| Station positions | Within 90 m of OpenStreetMap's | Stations, platforms and stops | – | OpenStreetMap (the middle of a station's stops and platforms on the line) |
| Names | Complete, Thai and English, some full names (“Krung Thep Aphiwat Central Terminal Station”) | Complete, short forms, some other spellings (“Don Muang”) | – | Feed |
| Fares | Station to station: Dark Red 14–42 ฿, Light Red 18–35 ฿ | – | Not compared yet | Feed (not checked yet) |
| Headways | Dark Red 10–45 min (implausible), Light Red 10–30 min | – | Not found | Not shown |
| Main lines and their trains | 188 numbered trains, 14 of them twice (an old entry with fewer stations, left out); no line for a train; many trips end partway along the line (the feed's last station is shown) | The tracks and stations; route relations for 24 trains in all Thailand, none of them on the lines where the feed's trips end early | The lines out of Bangkok: Northern, Northeastern, Southern, Eastern, Maeklong (Wikipedia, “Rail transport in Thailand”); no line colours | Trains on the line they stop on (feed), the lines as the SRT names them (the Northern and Northeastern on one line in the map, where they share the track); colours the site's. Where the feed's trips end before the place a train is named after, the stations beyond come from OpenStreetMap (marked OSM); the trains' stops there are not in the feed and not shown |
| Main lines' routes | Coarse in parts (Rangsit – Ayutthaya up to 1.5 km from the track) | The tracks, which pfaedle lays the trains onto | – | OpenStreetMap section by section where it is within 100 m of the feed, else the feed (table below); where the feed's trips end before the place a train is named after, drawn on along the OSM tracks to the OSM station of that exact Thai name (see corrections) |
| Train fares | Base fares only, without class or express supplements | – | Not compared yet | Not shown |
| License | CC BY 4.0 | ODbL: routes and station positions on the map and in the API are © OpenStreetMap contributors |
Import
The lines come from the GTFS feed. A line's trips are grouped into ways per direction: the main route, and a branch or the two sides of a loop where the feed has them as separate trips. Every station of the feed has to be on one of the ways. The State Railway's numbered trains are put on the main lines they stop on in the map (stations of one line only); a main line's ways are as few of its trains' trips as take in all their stations.
Stations per line
| Line | On the map | In the feed | Stations per way, by direction | Headway in the feed |
|---|---|---|---|---|
| Dark Red Line | 10 | 10 | 0: 10 · 1: 10 | 10–45 min (implausible) |
| Light Red Line | 4 | 4 | 0: 4 · 1: 4 | 10–30 min |
| Northern and Northeastern Lines | 87 | 87 | 0: 25 + 25 + 20 + 19 + 18 + 18 + 16 + 15 + 12 | 60 trains, by timetable |
| Southern Line | 53 | 53 | 0: 26 + 26 + 18 + 13 | 44 trains, by timetable |
| Eastern Line | 16 | 16 | 0: 15 + 14 | 29 trains, by timetable |
| Maeklong Line | 32 | 32 | 0: 18 + 14 | 42 trains, by timetable |
301 distinct stations. Headways are not shown on the public pages until they are checked: the feed's values are partly implausible.
Corrections to the feed (6)
Names, stations, fares and headways are the feed's, except for these clear errors, each confirmed by a
second source (app/services/importer/corrections.py); routes and station positions come from
OpenStreetMap where it agrees with the feed (below). A correction is applied only while the
feed still has the value it corrects.
- Eastern Line: drawn on from Khlong Luang Phaeng to Ban Klong Luk Border (ด่านพรมแดนบ้านคลองลึก) along the OpenStreetMap tracks (about 221 km), with 39 stations, 38 of them new from OpenStreetMap. The feed's trips end at Khlong Luang Phaeng; by their names its trains run on to Ban Klong Luek Border, found in OpenStreetMap by its Thai name ด่านพรมแดนบ้านคลองลึก. Source: OpenStreetMap tracks and stations, data of 2026-10-25.
- Eastern Line: drawn on from Chachoengsao Junction to Ban Phlu Ta Luang (บ้านพลูตาหลวง) along the OpenStreetMap tracks (about 124 km), with 18 stations, 17 of them new from OpenStreetMap. The feed's trips end at Khlong Luang Phaeng; by their names its trains run on to Ban Plu Ta Luang, found in OpenStreetMap by its Thai name บ้านพลูตาหลวง. Source: OpenStreetMap tracks and stations, data of 2026-10-25.
- Southern Line: drawn on from Thung Song Junction to Kantang (กันตัง) along the OpenStreetMap tracks (about 94 km), with 6 stations, 5 of them new from OpenStreetMap. The feed's trips end at Nakhon Pathom; by their names its trains run on to Kantang, found in OpenStreetMap by its Thai name กันตัง. Source: OpenStreetMap tracks and stations, data of 2026-10-25.
- Southern Line: drawn on from Thung Song Junction to Nakhon Si Thammarat (นครศรีธรรมราช) along the OpenStreetMap tracks (about 59 km), with 13 stations, 12 of them new from OpenStreetMap. The feed's trips end at Nakhon Pathom; by their names its trains run on to Nakhon Si Thammarat, found in OpenStreetMap by its Thai name นครศรีธรรมราช. Source: OpenStreetMap tracks and stations, data of 2026-10-25.
- Southern Line: drawn on from Nong Pla Duk Junction to Namtok (น้ำตก) along the OpenStreetMap tracks (about 130 km), with 31 stations, 30 of them new from OpenStreetMap. The feed's trips end at Phrong Madua; by their names its trains run on to Nam Tok, found in OpenStreetMap by its Thai name น้ำตก. Source: OpenStreetMap tracks and stations, data of 2026-10-25.
- Southern Line: drawn on from Nong Pla Duk Junction to Suphan Buri (สุพรรณบุรี) along the OpenStreetMap tracks (about 78 km), with 6 stations, 5 of them new from OpenStreetMap. The feed's trips end at Phrong Madua; by their names its trains run on to Suphan Buri, found in OpenStreetMap by its Thai name สุพรรณบุรี. Source: OpenStreetMap tracks and stations, data of 2026-10-25.
Notes (20)
- Train 339: route 79 is train 339 again, with 12 stations (route 2732: 25); left out
- Train 7: route 2143 is train 7 again, with 4 stations (route 2731: 17); left out
- Train 7: route 2730 is train 7 again, with 0 stations (route 2731: 17); left out
- Train 9: route 2145 is train 9 again, with 3 stations (route 2734: 13); left out
- Train 13: route 2146 is train 13 again, with 3 stations (route 2738: 16); left out
- Train 51: route 2147 is train 51 again, with 3 stations (route 2739: 20); left out
- Train 52: route 2159 is train 52 again, with 3 stations (route 2743: 19); left out
- Train 14: route 2160 is train 14 again, with 3 stations (route 2742: 16); left out
- Train 10: route 2161 is train 10 again, with 3 stations (route 2741: 13); left out
- Train 8: route 2163 is train 8 again, with 3 stations (route 2740: 18); left out
- Train 21: route 2733 is train 21 again, with 18 stations (route 2164: 18); left out
- Train 25: route 2168 is train 25 again, with 3 stations (route 2736: 15); left out
- Train 22: route 2173 is train 22 again, with 3 stations (route 2735: 18); left out
- Train 26: route 2175 is train 26 again, with 3 stations (route 2737: 15); left out
- Southern Line: the feed's trips end at Nakhon Pathom, its trains run on to Surat Thani: no OpenStreetMap station of that Thai name; not drawn on
- Southern Line: the feed's trips end at Nakhon Pathom, its trains run on to Padang Besar (ปาดังเบซาร์): no OpenStreetMap station of that Thai name; not drawn on
- main lines: Pak Chong (stop 16950): 289 m from the route of its main line
- main lines: Rangsit (stop 222): 185 m from the route of its main line
- main lines: Bangkok (Krung Thep Aphiwat) (stop 266): 170 m from the route of its main line
- main lines: Lam Plai Mat (stop 16953): 128 m from the route of its main line
Routes on OpenStreetMap's tracks
pfaedle lays each trip onto OpenStreetMap's tracks, stop by stop (2026-10-25). Between two stops its route is taken where it stays within 100 m of the feed's and passes the stops about as close; elsewhere the feed's route (cleaned) stays, except where the feed has no route between two stops. Routes run from the first stop to the last.
- 237 of 295 sections from OpenStreetMap (80.3 %), 17 of 17 trips matched
- 58 sections stay with the feed: to check which route is right
- 1 section where the feed has no route: pfaedle's is taken
Sections that differ (59)
| Line | Direction | Section | Why | pfaedle off by | Length |
|---|---|---|---|---|---|
| south | 0 | Thung Song Junction → Cha-uat | another way | over 500 m | 41,807 m |
| south | 0 | Ban Krut → Chumphon | another way | over 500 m | 102,934 m |
| south | 0 | Wang Phong → Prachuap Khiri Khan | another way | over 500 m | 67,894 m |
| north | 0 | Udon Thani → Nong Khai | another way | over 500 m | 51,836 m |
| south | 0 | Prachuap Khiri Khan → Ban Krut | another way | over 500 m | 57,266 m |
| south | 0 | Prachuap Khiri Khan → Bang Saphan Yai | another way | over 500 m | 73,194 m |
| south | 0 | Bang Saphan Yai → Chumphon | another way | over 500 m | 91,075 m |
| north | 0 | Kaeng Khoi Junction → Pak Chong | another way | over 500 m | 53,329 m |
| south | 0 | Wang Phong → Prachuap Khiri Khan | another way | over 500 m | 69,259 m |
| south | 0 | Chumphon → Surat Thani | another way | over 500 m | 165,545 m |
| north | 0 | Nam Phong → Kumphawapi | another way | over 500 m | 48,272 m |
| south | 0 | Phetchaburi → Hua Hin | another way | over 500 m | 62,767 m |
| north | 0 | Ayutthaya → Saraburi | another way | over 500 m | 41,815 m |
| north | 0 | Rangsit → Ayutthaya | another way | over 500 m | 40,916 m |
| north | 0 | Don Muang → Rangsit | another way | over 500 m | 7,897 m |
| south | 0 | Cha-uat → Phatthalung | another way | over 500 m | 40,086 m |
| north | 0 | Thanon Chira Junction → Lam Plai Mat | another way | over 500 m | 79,158 m |
| north | 0 | Don Muang → Lak Hok | another way | over 500 m | 5,153 m |
| north | 0 | Lopburi → Nakhon Sawan | another way | over 500 m | 113,503 m |
| north | 0 | Nakhon Sawan → Taphan Hin | another way | over 500 m | 73,560 m |
| north | 0 | Nong Tom → Pichai | another way | over 500 m | 22,500 m |
| north | 0 | Chiang Mai → Lamphun | another way | over 500 m | 21,078 m |
| north | 0 | Pak Chong → STR Nakhon Ratchasima | another way | over 500 m | 81,458 m |
| north | 0 | Kumphawapi → Udon Thani | another way | over 500 m | 34,867 m |
| south | 0 | Hua Hin → Wang Phong | another way | over 500 m | 18,506 m |
| south | 0 | Hua Hin → Wang Phong | another way | over 500 m | 18,499 m |
| south | 0 | Chumphon → Surat Thani | the feed has no route here (pfaedle's taken) | over 500 m | 167,451 m |
| north | 0 | Nakhon Lampang → Khun Tan | another way | 407 m | 40,454 m |
| north | 0 | Bangkok (Krung Thep Aphiwat) → Don Muang | another way | 360 m | 14,201 m |
| north | 0 | Rangsit → Ayutthaya | another way | 268 m | 40,987 m |
| north | 0 | Nakhon Lampang → Mae Mo | another way | 268 m | 33,512 m |
| north | 0 | Den Sai → Ban Pin | another way | 248 m | 28,791 m |
| north | 0 | STR Nakhon Ratchasima → Thanon Chira Junction | another way | 238 m | 2,526 m |
| north | 0 | Ban Pin → Mae Mo | another way | 205 m | 45,149 m |
| north | 0 | Sikhoraphum → Uthumphon Phisai | another way | 205 m | 42,118 m |
| north | 0 | Rangsit → Don Muang | another way | 187 m | 7,944 m |
| south | 0 | Phetchaburi → Hua Hin | another way | 183 m | 62,976 m |
| north | 0 | Lamphun → Khun Tan | another way | 176 m | 45,918 m |
| north | 0 | Nakhon Sawan → Lopburi | another way | 168 m | 113,630 m |
| south | 0 | Bang Bamru → Taling Chan Junction | another way | 164 m | 4,422 m |
| north | 0 | Surin → Sikhoraphum | another way | 163 m | 32,712 m |
| north | 0 | Mae Mo → Nakhon Lampang | another way | 159 m | 33,178 m |
| east | 0 | Hua Takhe → Khlong Luang Phaeng | another way | 159 m | 8,734 m |
| north | 0 | Phitsanulok → Nong Tom | another way | 152 m | 34,129 m |
| south | 0 | Surat Thani → Thung Song Junction | another way | 151 m | 122,668 m |
| north | 0 | Lam Plai Mat → Buri Ram | another way | 150 m | 30,271 m |
| north | 0 | Pichai → Uttaradit | another way | 142 m | 38,131 m |
| north | 0 | Sila-at → Den Sai | another way | 136 m | 47,337 m |
| north | 0 | Buri Ram → Krasang | another way | 135 m | 22,618 m |
| north | 0 | Khun Tan → Nakhon Lampang | another way | 134 m | 40,445 m |
| north | 0 | Den Sai → Sila-at | another way | 129 m | 47,263 m |
| north | 0 | Kanthararom → Ubon Ratchathani | another way | 125 m | 32,990 m |
| north | 0 | Uttaradit → Phitsanulok | another way | 122 m | 96,651 m |
| north | 0 | Mae Mo → Ban Pin | another way | 119 m | 45,107 m |
| north | 0 | Si Sa Ket → Kanthararom | another way | 118 m | 27,077 m |
| north | 0 | Uttaradit → Sila-at | another way | 117 m | 2,136 m |
| south | 0 | Ruso → Tanyong Mat | another way | 115 m | 28,382 m |
| north | 0 | Uthumphon Phisai → Si Sa Ket | another way | 110 m | 20,616 m |
| maeklong | 0 | Talat Phlu → Wongwian Yai | misses a stop | 3 m | 1,565 m |
OpenStreetMap
OpenStreetMap data of 2026-10-26, fetched 2026-10-26
Each line compared with OpenStreetMap's route relations of the same line: a station counts as found when an OSM stop or platform of the line is within 300 m; each way's stations have to follow each other as on an OSM route. Where all stations are found, the order is the same and the OSM tracks lead from station to station (no longer or shorter than the feed's route by more than 30 %), the line's route and station positions come from OpenStreetMap (a station at the middle of its stops and platforms on the line); otherwise from the feed.
| Line | In OpenStreetMap | Found | Map drawn from | Stations moved |
|---|---|---|---|---|
| Dark Red Line | SRT Dark Red Line | 10 of 10 | OpenStreetMap | up to 88 m |
| Light Red Line | SRT Light Red Line | 4 of 4 | OpenStreetMap | up to 88 m |
“Stations moved”: how far the station positions moved from the feed's to OpenStreetMap's. The findings are under To check, or among the accepted differences.