← Map

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

Implausible headways (1)

Find a source for the headways before showing them.

Not checked yet

Accepted differences (4)

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.

DataGTFS feed (Namtang / OTP)OpenStreetMapOperatorOn 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

LineOn the mapIn the feed Stations per way, by directionHeadway 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.

Notes (20)

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.

Sections that differ (59)
LineDirectionSectionWhypfaedle off by Length
south 0Thung Song Junction → Cha-uat another way over 500 m 41,807 m
south 0Ban Krut → Chumphon another way over 500 m 102,934 m
south 0Wang Phong → Prachuap Khiri Khan another way over 500 m 67,894 m
north 0Udon Thani → Nong Khai another way over 500 m 51,836 m
south 0Prachuap Khiri Khan → Ban Krut another way over 500 m 57,266 m
south 0Prachuap Khiri Khan → Bang Saphan Yai another way over 500 m 73,194 m
south 0Bang Saphan Yai → Chumphon another way over 500 m 91,075 m
north 0Kaeng Khoi Junction → Pak Chong another way over 500 m 53,329 m
south 0Wang Phong → Prachuap Khiri Khan another way over 500 m 69,259 m
south 0Chumphon → Surat Thani another way over 500 m 165,545 m
north 0Nam Phong → Kumphawapi another way over 500 m 48,272 m
south 0Phetchaburi → Hua Hin another way over 500 m 62,767 m
north 0Ayutthaya → Saraburi another way over 500 m 41,815 m
north 0Rangsit → Ayutthaya another way over 500 m 40,916 m
north 0Don Muang → Rangsit another way over 500 m 7,897 m
south 0Cha-uat → Phatthalung another way over 500 m 40,086 m
north 0Thanon Chira Junction → Lam Plai Mat another way over 500 m 79,158 m
north 0Don Muang → Lak Hok another way over 500 m 5,153 m
north 0Lopburi → Nakhon Sawan another way over 500 m 113,503 m
north 0Nakhon Sawan → Taphan Hin another way over 500 m 73,560 m
north 0Nong Tom → Pichai another way over 500 m 22,500 m
north 0Chiang Mai → Lamphun another way over 500 m 21,078 m
north 0Pak Chong → STR Nakhon Ratchasima another way over 500 m 81,458 m
north 0Kumphawapi → Udon Thani another way over 500 m 34,867 m
south 0Hua Hin → Wang Phong another way over 500 m 18,506 m
south 0Hua Hin → Wang Phong another way over 500 m 18,499 m
south 0Chumphon → Surat Thani the feed has no route here (pfaedle's taken) over 500 m 167,451 m
north 0Nakhon Lampang → Khun Tan another way 407 m 40,454 m
north 0Bangkok (Krung Thep Aphiwat) → Don Muang another way 360 m 14,201 m
north 0Rangsit → Ayutthaya another way 268 m 40,987 m
north 0Nakhon Lampang → Mae Mo another way 268 m 33,512 m
north 0Den Sai → Ban Pin another way 248 m 28,791 m
north 0STR Nakhon Ratchasima → Thanon Chira Junction another way 238 m 2,526 m
north 0Ban Pin → Mae Mo another way 205 m 45,149 m
north 0Sikhoraphum → Uthumphon Phisai another way 205 m 42,118 m
north 0Rangsit → Don Muang another way 187 m 7,944 m
south 0Phetchaburi → Hua Hin another way 183 m 62,976 m
north 0Lamphun → Khun Tan another way 176 m 45,918 m
north 0Nakhon Sawan → Lopburi another way 168 m 113,630 m
south 0Bang Bamru → Taling Chan Junction another way 164 m 4,422 m
north 0Surin → Sikhoraphum another way 163 m 32,712 m
north 0Mae Mo → Nakhon Lampang another way 159 m 33,178 m
east 0Hua Takhe → Khlong Luang Phaeng another way 159 m 8,734 m
north 0Phitsanulok → Nong Tom another way 152 m 34,129 m
south 0Surat Thani → Thung Song Junction another way 151 m 122,668 m
north 0Lam Plai Mat → Buri Ram another way 150 m 30,271 m
north 0Pichai → Uttaradit another way 142 m 38,131 m
north 0Sila-at → Den Sai another way 136 m 47,337 m
north 0Buri Ram → Krasang another way 135 m 22,618 m
north 0Khun Tan → Nakhon Lampang another way 134 m 40,445 m
north 0Den Sai → Sila-at another way 129 m 47,263 m
north 0Kanthararom → Ubon Ratchathani another way 125 m 32,990 m
north 0Uttaradit → Phitsanulok another way 122 m 96,651 m
north 0Mae Mo → Ban Pin another way 119 m 45,107 m
north 0Si Sa Ket → Kanthararom another way 118 m 27,077 m
north 0Uttaradit → Sila-at another way 117 m 2,136 m
south 0Ruso → Tanyong Mat another way 115 m 28,382 m
north 0Uthumphon Phisai → Si Sa Ket another way 110 m 20,616 m
maeklong 0Talat 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.

LineIn OpenStreetMapFoundMap 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.