← Map

SRT data check

Feed version 20261025 (1 Jan 2026 to 31 Dec 2026) · imported 26 Oct 2026

To check (3)

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 (2)

The feed's position of the station, or the route there: correct the position, or accept.

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 at the edge of the region or inside it (the feed's last station is shown) The tracks; in the snapshot no route relations for the trains 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
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); up to the edge of the map, drawn on along the tracks where the feed's trips end before it though the trains run on (the Eastern Line, 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 26 26 0: 16 + 16 + 12 + 3 + 12 60 trains, by timetable
Southern Line 33 33 0: 26 + 18 + 7 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

113 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 (1)

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 (16)

Routes on OpenStreetMap's tracks

pfaedle lays each trip onto OpenStreetMap's tracks, stop by stop (2026-10-24). 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 (8)
LineDirectionSectionWhypfaedle off by Length
north 0Don Muang → Rangsit another way over 500 m 7,893 m
south 0Pak Tho → SRT Phetchaburi another way over 500 m 32,045 m
north 0Don Muang → Lak Hok another way over 500 m 5,153 m
north 0SRT Ayutthaya → Rangsit another way over 500 m 41,078 m
north 0Rangsit → Don Muang another way 187 m 7,944 m
south 0Bang Bamru → Taling Chan Junction another way 164 m 4,422 m
east 0Hua Takhe → Khlong Luang Phaeng another way 159 m 8,734 m
maeklong 0Talat Phlu → Wongwian Yai misses a stop 3 m 1,565 m

OpenStreetMap

OpenStreetMap data of 2026-10-25, fetched 2026-10-25

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.