BTS 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).
Implausible headways (1)
Find a source for the headways before showing them.
- Sukhumvit (Light green Line): headway 1–450 min
headwaysukhumvit
Stations only OpenStreetMap has (2)
A station the feed lacks? Check whether it is in service.
- Bus Rapid Transit: Thanon Chan Nuea: in OSM, not in the feed · feed position · OSM
osm-onlynode/12848306166 - Bus Rapid Transit: Thanon Chan Tai: in OSM, not in the feed · feed position · OSM
osm-onlynode/12848306164
Not checked yet
- Fares: the feed is the only source so far (only fares it gives twice are listed).
- Fares of Sukhumvit (Light green Line), Silom (Dark green Line), Gold Line: not in the feed, not shown; no other source yet.
- Headways of Sukhumvit (Light green Line), Silom (Dark green Line), Gold Line, Bus Rapid Transit: not shown on the pages, no official source yet (the feed's are partly implausible).
Accepted differences (5)
- Sukhumvit (Light green Line): Ha Yeak Lat Phrao (stop 13612), name in the feed / in OSM: “Ha Yeak Lat Phrao” / “Ha Yaek Lat Phrao” — Spelling variant of แยก (2026-10-25)
- Bus Rapid Transit: Wat Pariwat (stop 204), name in the feed / in OSM: “Wat Pariwat” / “Wat Priwat” — Spelling variant of ปริวาส (2026-10-25)
- Bus Rapid Transit: Rama IX Bridge (stop 202), name in the feed / in OSM: “สะพานพระราม9” / “สะพานพระรามเก้า” — The number written out in Thai; both are in use (2026-10-25)
- Bus Rapid Transit: Rama III Bridge (stop 200), name in the feed / in OSM: “สะพานพระราม3” / “สะพานพระรามสาม” — The number written out in Thai; both are in use (2026-10-25)
- Bus Rapid Transit: Ratchapruek (stop 199), name in the feed / in OSM: “Ratchapruek” / “Ratchaphruek” — Spelling variant of ราชพฤกษ์ (2026-10-25)
Sources
What each source has, how good it is, and what the map takes from it. Found by comparing the GTFS feed with OpenStreetMap line by line (below) and looking for the operators' own information.
| Data | GTFS feed (Namtang / OTP) | OpenStreetMap | Operator | On the map |
|---|---|---|---|---|
| Lines, stations, order | Complete: Sukhumvit 47, Silom 14, Gold 3, BRT 12 stations; two short Sukhumvit trips filed under the wrong direction | The same stations in the same order (one Sukhumvit relation lacks Mo Chit); two more BRT stops, Thanon Chan Nuea and Tai, which the city planned to add | – | Feed, checked against OpenStreetMap |
| Route | Within 100 m of the tracks everywhere | The tracks (the BRT's lanes), accurate to a few metres | – | OpenStreetMap where it agrees with the feed (table below), else the feed |
| Station positions | Within 64 m of OpenStreetMap's | Stations, platforms and stops | – | OpenStreetMap (the middle of a station's stops and platforms on the line) |
| Names | Five errors (“Bang Bau”, “Khrung Thon Buri”, two Thai typos, a note in a Thai name), otherwise in use, with some spelling variants (“Yeak”, “Ratchapruek”) | Complete, Thai and English, some other spellings | – | Feed, with the errors corrected (see corrections) |
| Fares | Only the BRT's flat fare (15 ฿); none for Sukhumvit, Silom and Gold | – | Not compared yet | Feed for the BRT; the others not shown |
| Headways | Partly implausible (Sukhumvit 1–450 min) | – | None found from BTSC; only third-party and guide figures | 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.
Stations per line
| Line | On the map | In the feed | Stations per way, by direction | Headway in the feed |
|---|---|---|---|---|
| Sukhumvit (Light green Line) | 47 | 47 | 0: 47 · 1: 47 | 1–450 min (implausible) |
| Silom (Dark green Line) | 14 | 14 | 0: 14 · 1: 14 | 3–8 min |
| Gold Line | 3 | 3 | 0: 3 · 1: 3 | 4–12 min |
| Bus Rapid Transit | 12 | 12 | 0: 12 · 1: 12 | 5–20 min |
75 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 (4)
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.
- Stop 13829: English name “Bang Bau” → “Bang Bua”. Typing error; Thai name บางบัว. Source: OpenStreetMap node 12885878000; BTS Sukhumvit Line station N15.
- Stop 15: Thai name “เเบริ่ง” → “แบริ่ง”. Typing error: two เ in place of แ (they look alike). Source: OpenStreetMap node 12888242301.
- Stop 13834: English name “Khrung Thon Buri” → “Krung Thon Buri”. Typing error; Thai name กรุงธนบุรี. Source: OpenStreetMap node 7781133227; BTS Gold Line station G1.
- Stop 201: Thai name “เจริญราฎร์” → “เจริญราษฎร์”. Typing error: ราฎร์ for ราษฎร์. Source: OpenStreetMap node 2090403724; the road, Charoen Rat Road, is ถนนเจริญราษฎร์.
Notes (2)
- Sukhumvit (Light green Line): trip 5274 is filed as direction 1 but runs like direction 0; left out
- Sukhumvit (Light green Line): trip 5275 is filed as direction 0 but runs like direction 1; left out
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.
| Line | In OpenStreetMap | Found | Map drawn from | Stations moved |
|---|---|---|---|---|
| Sukhumvit (Light green Line) | BTS Sukhumvit Line | 47 of 47 | OpenStreetMap | up to 64 m |
| Silom (Dark green Line) | BTS Silom Line | 14 of 14 | OpenStreetMap | up to 12 m |
| Gold Line | Gold Line | 3 of 3 | OpenStreetMap | up to 8 m |
| Bus Rapid Transit | รถโดยสารประจำทางด่วนพิเศษ BRT 402 | 12 of 12 | OpenStreetMap | up to 38 m |
Gaps in OpenStreetMap (the map is not affected; worth fixing there): relation/444651 lacks Mo Chit.
“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.