{"title":"Enjoy Thai Land observation ledger","description":"Live Thailand observation layer for the signal graph, covering AQI, weather, water, noise, road safety, and regional context.","generated_at":"2026-08-22T17:51:59.642Z","entity_count":62,"observation_count":1058,"context_count":3,"active_feed_count":35,"queued_feed_count":0,"feeds":{"active":[{"feed_id":"air4thai-aqi","name":"Air4Thai AQI and PM2.5","source_name":"Air4Thai / Pollution Control Department","status":"connected","cadence":"Hourly","observation_count":70,"entity_count":35,"last_observed_at":"2026-08-22T17:00:00.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 173 public Air4Thai stations into 35 entity anchors."},{"feed_id":"gdacs-disaster-context","name":"GDACS disaster context","source_name":"GDACS","status":"connected","cadence":"Frequent / feed-driven","observation_count":0,"entity_count":23,"last_observed_at":"2026-08-22T17:21:14.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"32 GDACS items scanned with 4 active hazard groups."},{"feed_id":"usgs-thailand-earthquakes","name":"USGS Thailand-region earthquakes","source_name":"USGS Earthquake API","status":"connected","cadence":"Frequent / event-driven","observation_count":0,"entity_count":23,"last_observed_at":null,"checked_at":"2026-08-22T17:51:47.642Z","detail":"0 Thailand-region USGS earthquake events scanned."},{"feed_id":"tmd-weather-surface","name":"TMD weather and warning surface","source_name":"Thai Meteorological Department","status":"connected","cadence":"Hourly / warning-driven","observation_count":350,"entity_count":35,"last_observed_at":"2026-08-22T15:00:00.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 6 regional forecast feeds, 9 station reports, and 16 warning items into entity weather observations."},{"feed_id":"tmd-shipping-forecast","name":"TMD shipping weather forecast","source_name":"TMD Shipping Forecast","status":"connected","cadence":"Operational / on marine-forecast update","observation_count":80,"entity_count":16,"last_observed_at":"2026-08-22T17:00:00.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 4 public TMD shipping section(s) into 16 coastal destination and pier anchors."},{"feed_id":"aviationweather-airport-status","name":"Aviation Weather airport status context","source_name":"NOAA Aviation Weather API","status":"connected","cadence":"Minute to hourly depending airport weather updates","observation_count":56,"entity_count":14,"last_observed_at":"2026-08-22T17:30:00.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 7 Thai airport METAR and TAF feeds into 14 airport and destination anchors."},{"feed_id":"aot-airport-ground-services","name":"AOT airport ground-service support","source_name":"AOT airport ground transport pages","status":"connected","cadence":"On change / operational page","observation_count":4,"entity_count":4,"last_observed_at":"2026-05-15T11:11:26.060Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Served from the AOT ground-service snapshot at 2026-05-15T11:11:26.060Z after scanning 7 airport page(s) during build time."},{"feed_id":"aot-airport-flight-board-surface","name":"AOT airport flight-board surface","source_name":"AOT airport flight status","status":"connected","cadence":"On change / operational page","observation_count":4,"entity_count":4,"last_observed_at":"2026-05-15T11:11:26.678Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Served from the AOT flight-board snapshot at 2026-05-15T11:11:26.678Z after scanning 4 flight page(s) and 4 bundle(s) during build time."},{"feed_id":"aot-airport-traffic-stats","name":"AOT airport traffic statistics","source_name":"AOT air transport statistics","status":"connected","cadence":"Monthly / fiscal-year workbook update","observation_count":12,"entity_count":4,"last_observed_at":"2025-10-16T17:00:00.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Served from the AOT traffic snapshot at 2026-05-15T11:11:28.750Z using 20251017-aot-traffic-fiscal-2025.xlsx instead of a runtime workbook download."},{"feed_id":"aot-airport-environment-support","name":"AOT airport environmental support","source_name":"AOT annual report / SET filing","status":"connected","cadence":"Annual report publication with periodic factsheet refresh","observation_count":4,"entity_count":4,"last_observed_at":"2026-05-15T11:11:25.296Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Served from the SET-hosted AOT annual-report disclosure snapshot at 2026-05-15T11:11:25.296Z and mapped 4 airport environmental-support observation row(s)."},{"feed_id":"thaiwater-water-quality","name":"Thaiwater water-quality observations","source_name":"Thaiwater WaterQuality API","status":"connected","cadence":"10 to 30 minutes depending on station","observation_count":75,"entity_count":25,"last_observed_at":"2026-08-22T17:40:00.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped Thaiwater water-quality rows into 25 entity anchors."},{"feed_id":"namtang-transit-structure","name":"Namtang transit structure","source_name":"Namtang GTFS","status":"connected","cadence":"Daily / static feed refresh","observation_count":55,"entity_count":55,"last_observed_at":"2026-08-21T19:35:45.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 9027 Namtang stop rows into 55 entity anchors."},{"feed_id":"bangkok-rapid-transit-official-pages","name":"Bangkok rapid-transit official pages","source_name":"BTS SkyTrain system maps and service pages","status":"connected","cadence":"Daily / on official route-map or service-page change","observation_count":7,"entity_count":7,"last_observed_at":"2026-05-15T11:11:29.575Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 2 official rapid-transit page(s) into 7 Bangkok support anchors."},{"feed_id":"srt-official-station-presence","name":"SRT official station presence","source_name":"SRT timetable data","status":"failed","cadence":"Daily / on public timetable-site change","observation_count":0,"entity_count":0,"last_observed_at":null,"checked_at":"2026-08-22T17:51:59.642Z","detail":"The operation was aborted"},{"feed_id":"mot-bus-terminal-support","name":"MOT official passenger bus terminals","source_name":"MOT passenger bus terminals dataset","status":"connected","cadence":"Weekly / monthly catalog update","observation_count":20,"entity_count":20,"last_observed_at":"2026-08-22T17:51:47.642Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 126 official MOT bus-terminal rows into 20 overland entity anchors."},{"feed_id":"bks-station-ticket-support","name":"BKS station and ticket-point support","source_name":"Transport Co. / BKS station and ticket-point locations","status":"connected","cadence":"Monthly / quarterly static dataset validation","observation_count":22,"entity_count":22,"last_observed_at":"2026-05-15T11:11:43.824Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 156 official BKS station and ticket-point row(s) into 22 overland entity anchors."},{"feed_id":"bks-timetable-search-surface","name":"BKS timetable search surface","source_name":"Transport Co. / BKS timetable resources","status":"connected","cadence":"Daily / search-surface validation","observation_count":16,"entity_count":16,"last_observed_at":"2026-05-15T11:11:48Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 617 official BKS destination option row(s) from 2 Bangkok-origin search surface(s) into 16 overland entity anchors."},{"feed_id":"dlt-1584-complaint-stats","name":"DLT 1584 complaint-support stats","source_name":"DLT 1584 public-transport complaints","status":"connected","cadence":"Monthly / fiscal-year workbook refresh","observation_count":29,"entity_count":29,"last_observed_at":"2026-05-15T11:11:30.831Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped DLT 1584 fiscal-year 2569 complaint workbook coverage into 29 transport-support anchors."},{"feed_id":"dlt-gps-taxi-support","name":"DLT GPS and Taxi OK taxi-oversight support","source_name":"DLT GPS passenger and complaint app","status":"connected","cadence":"On regulatory or project-page change","observation_count":29,"entity_count":29,"last_observed_at":"2026-05-15T11:11:32.530Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped DLT GPS passenger support and Taxi OK / VIP oversight pages into 29 taxi-relevant traveler anchors."},{"feed_id":"bangkok-motorcycle-taxi-support","name":"Bangkok motorcycle-taxi support","source_name":"Bangkok motorcycle taxi stands and drivers","status":"connected","cadence":"Historical / static dataset with periodic validation","observation_count":9,"entity_count":9,"last_observed_at":"2020-07-23T04:25:48.450Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 56 official Bangkok motorcycle-taxi datastore row(s) into 9 Bangkok last-mile entity anchors from dataset year unknown using the current build snapshot."},{"feed_id":"otp-taxi-demand-analytics","name":"OTP taxi demand and pickup/dropoff analytics","source_name":"OTP taxi GPS trip analytics","status":"connected","cadence":"Monthly","observation_count":8,"entity_count":8,"last_observed_at":"2026-05-15T11:11:35.449Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 475 OTP pickup/dropoff hotspot row(s) and latest trip month มีนาคม 2569 into 8 Bangkok taxi-demand anchors from the current build snapshot."},{"feed_id":"marine-department-pier-registry","name":"Marine Department passenger-pier registry","source_name":"Marine Department piers","status":"connected","cadence":"Weekly / monthly berth-registry update","observation_count":20,"entity_count":20,"last_observed_at":"2026-05-15T11:11:30.342Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 187 official Marine Department passenger-berth row(s) into 20 coastal entity anchors from the current build snapshot."},{"feed_id":"marine-department-berth-status","name":"Marine Department berth-status surface","source_name":"Marine Department Berth Status","status":"failed","cadence":"Operational / event-driven","observation_count":0,"entity_count":0,"last_observed_at":null,"checked_at":"2026-08-22T17:51:59.642Z","detail":"The operation was aborted"},{"feed_id":"thai-smile-group-branch-locator","name":"Thai Smile Group branch and depot locator","source_name":"Thai Smile Group branch and depot locator","status":"connected","cadence":"Daily / site-locator update","observation_count":5,"entity_count":5,"last_observed_at":"2026-08-22T17:51:47.642Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 24 Thai Smile Group branch/depot rows into 5 Bangkok urban-support anchors."},{"feed_id":"bangkok-flood-monitoring-system","name":"Bangkok flood-monitoring current-event surface","source_name":"Bangkok Flood Monitoring System","status":"failed","cadence":"Operational / event-driven","observation_count":0,"entity_count":0,"last_observed_at":null,"checked_at":"2026-08-22T17:51:59.642Z","detail":"The operation was aborted"},{"feed_id":"doh-highway-traffic-support","name":"DOH highway traffic support","source_name":"DOH Highway Traffic","status":"failed","cadence":"Operational / support-surface refresh","observation_count":0,"entity_count":0,"last_observed_at":null,"checked_at":"2026-08-22T17:51:47.642Z","detail":"DOH highway-traffic support snapshot is not available."},{"feed_id":"exat-expressway-support","name":"EXAT expressway support","source_name":"EXAT Traffic Surface","status":"connected","cadence":"Operational / support-surface refresh","observation_count":13,"entity_count":13,"last_observed_at":"2026-05-15T11:11:30.132Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 5 official EXAT support page(s) into 13 Bangkok-linked road anchors from the current build snapshot."},{"feed_id":"hss-spa-license-support","name":"HSS spa-license support","source_name":"HSS Health Establishment Directory","status":"connected","cadence":"Weekly / monthly public support-surface refresh","observation_count":17,"entity_count":17,"last_observed_at":"2026-05-15T11:11:35.580Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 2 public HSS wellness-license support page(s) into 17 traveler anchors from the current build snapshot."},{"feed_id":"moph-health-facility-support","name":"MOPH health-facility support","source_name":"MOPH Health Facility Datasets","status":"connected","cadence":"Weekly / monthly public support-surface refresh","observation_count":18,"entity_count":18,"last_observed_at":"2026-05-15T11:11:37.864Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 2 public MOPH / HS4 medical-facility support page(s) into 18 traveler anchors from the current build snapshot."},{"feed_id":"dnp-park-tourism-support","name":"DNP park tourism support","source_name":"DNP Tourism Datasets","status":"connected","cadence":"Scheduled / catalog refresh","observation_count":9,"entity_count":9,"last_observed_at":"2026-05-15T11:11:43.688Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 1 public DNP park-tourism support page(s) into 9 nature-heavy traveler anchors from the current build snapshot."},{"feed_id":"gta-gold-reference-price","name":"GTA Thai gold reference price","source_name":"Gold Traders Association Thailand gold prices","status":"failed","cadence":"Intraday / market-hours publication","observation_count":0,"entity_count":0,"last_observed_at":null,"checked_at":"2026-08-22T17:51:50.566Z","detail":"403: Your request was blocked."},{"feed_id":"bot-usd-thb-reference","name":"BOT USD/THB daily average","source_name":"Bank of Thailand API","status":"queued","cadence":"Business day / daily average publication","observation_count":0,"entity_count":0,"last_observed_at":null,"checked_at":"2026-08-22T17:51:47.642Z","detail":"BOT API token not configured, so gold FX context is currently falling back to the GTA embedded USD/THB reference."},{"feed_id":"bangkok-civic-complaint-stats","name":"Bangkok civic complaint stats","source_name":"Bangkok Open Data","status":"failed","cadence":"Monthly / district statistical update","observation_count":0,"entity_count":0,"last_observed_at":null,"checked_at":"2026-08-22T17:51:56.642Z","detail":"The operation was aborted"},{"feed_id":"noise4thai-ambient-noise","name":"Noise4Thai ambient noise","source_name":"PCD Noise4Thai","status":"connected","cadence":"Hourly / daily","observation_count":21,"entity_count":21,"last_observed_at":"2026-08-22T17:00:00.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Mapped 26 Noise4Thai cards into 21 entity anchors."},{"feed_id":"thairsc-road-safety","name":"ThaiRSC road-safety observations","source_name":"ThaiRSC Road Accident Center","status":"connected","cadence":"Near real time / daily snapshot","observation_count":105,"entity_count":35,"last_observed_at":"2026-05-15T11:00:00.000Z","checked_at":"2026-08-22T17:51:47.642Z","detail":"Served from the latest ThaiRSC build snapshot at 2026-05-15T11:11:17.870Z because the upstream API requires TLS bypass in local refresh tooling."}],"queued":[],"all":[{"id":"air4thai-aqi","name":"Air4Thai AQI and PM2.5","status":"active","sourceName":"Air4Thai / Pollution Control Department","kind":"entity-observation","cadence":"Hourly","coverage":"Destination, hotel-area, airport, pier-proxy, and monitoring-cluster AQI hooks where public station coverage exists.","parameters":["aqi_average","pm25_average"],"note":"Primary live entity observation feed for public station averages and proxy matching by destination or city cluster."},{"id":"gdacs-disaster-context","name":"GDACS disaster context","status":"active","sourceName":"GDACS","kind":"context-observation","cadence":"Frequent / feed-driven","coverage":"Global and regional hazard context that affects route and confidence checks across all destination entities.","parameters":["active_hazard_groups","active_hazard_items"],"note":"Context only. Useful for alerting and contradiction notes, not a local place-level safety verdict."},{"id":"usgs-thailand-earthquakes","name":"USGS Thailand-region earthquakes","status":"active","sourceName":"USGS Earthquake API","kind":"context-observation","cadence":"Frequent / event-driven","coverage":"Thailand-region earthquake context within the bounded public query used by the signal graph.","parameters":["regional_earthquake_events","regional_max_magnitude"],"note":"Context feed for rare but important event checks. It does not replace local disaster or route advisories."},{"id":"tmd-weather-surface","name":"TMD weather and warning surface","status":"active","sourceName":"Thai Meteorological Department","kind":"entity-observation","cadence":"Hourly / warning-driven","coverage":"Destination weather risk, storm warnings, heat risk, marine warnings, and route weather context.","parameters":["rain_risk_input","heat_risk_input","storm_warning_input","marine_warning_input"],"note":"Live connector using public TMD RSS/XML forecast, warning, and station-weather feeds for destination and route weather context."},{"id":"tmd-shipping-forecast","name":"TMD shipping weather forecast","status":"active","sourceName":"TMD Shipping Forecast","kind":"entity-observation","cadence":"Operational / on marine-forecast update","coverage":"Coastal destination and pier-anchor shipping forecast context for the Gulf of Thailand and Andaman / Malacca marine sections.","parameters":["marine_wind_speed_average","marine_wave_height_average","marine_wave_height_thunder","marine_thunderstorm_flag"],"note":"Live connector using the public TMD shipping forecast page for marine section wind, wave, thunder, and heavy-rain context. This is shipping-weather burden, not operator closure, ticket, or seat truth."},{"id":"aviationweather-airport-status","name":"Aviation Weather airport status context","status":"active","sourceName":"NOAA Aviation Weather API","kind":"entity-observation","cadence":"Minute to hourly depending airport weather updates","coverage":"Destination and airport weather-operability context for Bangkok, Chiang Mai, Phuket, Krabi, and Samui route decisions.","parameters":["airport_flight_rules_score","airport_visibility_score","airport_forecast_disruption_score","airport_convective_forecast_flag"],"note":"Live connector using public METAR and TAF data as airport weather and operability context. This is not airline delay or cancellation truth."},{"id":"aot-airport-ground-services","name":"AOT airport ground-service support","status":"active","sourceName":"AOT airport ground transport pages","sourceNames":["AOT airport ground transport pages","AOT Suvarnabhumi public taxi","AOT Suvarnabhumi Grab pickup points","AOT Suvarnabhumi car rental services","AOT Don Mueang Grab pickup points","AOT Don Mueang car rental services","AOT Phuket car rental services","AOT Chiang Mai car rental services"],"kind":"entity-observation","cadence":"On change / operational page","coverage":"Airport-anchor observations for official taxi, Grab, rental-counter, and pickup-rule support at AOT airports where public transport pages are reachable.","parameters":["official_airport_ground_service_score"],"note":"Live connector using public AOT airport transport pages for official airport-ground-service and pickup-rule context. This is not live taxi queue, ETA, or rental inventory truth."},{"id":"aot-airport-flight-board-surface","name":"AOT airport flight-board surface","status":"active","sourceName":"AOT airport flight status","kind":"entity-observation","cadence":"On change / operational page","coverage":"Airport-anchor observations for official public passenger flight-board self-check surfaces at AOT airports with public flight-status pages.","parameters":["official_airport_board_surface_score"],"note":"Live connector using public AOT flight-status pages to score official passenger board-surface support. This is self-serve board visibility, not live airline delay, gate, baggage, or cancellation truth because the row query is protected by a browser turnstile token."},{"id":"aot-airport-traffic-stats","name":"AOT airport traffic statistics","status":"active","sourceName":"AOT air transport statistics","kind":"entity-observation","cadence":"Monthly / fiscal-year workbook update","coverage":"Airport-anchor observations for official passenger and aircraft-movement scale context at AOT airports with public traffic workbooks.","parameters":["official_airport_total_movements","official_airport_total_passengers","official_airport_scale_score"],"note":"Live connector using the public AOT traffic archive workbook for airport-scale context. This is official passenger and movement scale, not live on-time, queue, gate, or inventory truth."},{"id":"aot-airport-environment-support","name":"AOT airport environmental support","status":"active","sourceName":"AOT annual report / SET filing","kind":"entity-observation","cadence":"Annual report publication with periodic factsheet refresh","coverage":"Airport-anchor observations for operator-level environmental-governance, community, and airport-noise disclosure support at AOT airports covered by the reachable SET-hosted annual report surface.","parameters":["official_airport_environmental_support_score"],"note":"Live snapshot and connector using the public SET-hosted AOT factsheet and annual report ZIP to score airport environmental-governance and community-support disclosure. This is official disclosure context, not live measured sound-level truth."},{"id":"thaiwater-water-quality","name":"Thaiwater water-quality observations","status":"active","sourceName":"Thaiwater WaterQuality API","kind":"entity-observation","cadence":"10 to 30 minutes depending on station","coverage":"River, canal, and water-station observations for flood and water-quality decisions.","parameters":["water_quality_index","water_quality_station_state"],"note":"Live connector using the public Thaiwater water-quality load endpoint, mapped into destination and water-anchor observations where current station coverage exists."},{"id":"namtang-transit-structure","name":"Namtang transit structure","status":"active","sourceName":"Namtang GTFS","kind":"entity-observation","cadence":"Daily / static feed refresh","coverage":"Destination, hotel-area, station, airport, terminal, and pier transport-structure observations from the public OTP/Namtang stop spine.","parameters":["transport_structure_score"],"note":"Live connector using the public Namtang compressed stop export to measure stop density, mode diversity, and transit-structure support around key traveler entities."},{"id":"bangkok-rapid-transit-official-pages","name":"Bangkok rapid-transit official pages","status":"active","sourceName":"BTS SkyTrain system maps and service pages","sourceNames":["MRT / MRTA metro maps and service pages"],"kind":"entity-observation","cadence":"Daily / on official route-map or service-page change","coverage":"Bangkok destination, Bangkok hotel-area, interchange, and terminal support observations from official BTS and MRTA public route-map and service pages.","parameters":["official_rapid_transit_support_score"],"note":"Build snapshot using the public BTS route-map page and the public MRTA MRT route page to prove official rapid-transit support around Bangkok city-base decisions. This is route-map and service-page support, not live headway, crowding, or outage truth."},{"id":"srt-official-station-presence","name":"SRT official station presence","status":"active","sourceName":"SRT timetable data","kind":"entity-observation","cadence":"Daily / on public timetable-site change","coverage":"Destination and selected hotel-area official rail presence from the public SRT station list.","parameters":["official_rail_presence_score"],"note":"Live connector using the public SRT station-list surface to confirm official station presence around rail-relevant destinations. This is operator-backed rail presence, not live train timing, seat, or disruption truth."},{"id":"mot-bus-terminal-support","name":"MOT official passenger bus terminals","status":"active","sourceName":"MOT passenger bus terminals dataset","kind":"entity-observation","cadence":"Weekly / monthly catalog update","coverage":"Destination, hotel-area, and bus-terminal observations from the official MOT passenger-terminal master where public CSV rows are available.","parameters":["official_bus_terminal_support_score"],"note":"Live connector using the public MOT passenger-bus-terminal master CSV to confirm official terminal presence and overland-support anchors. This is terminal-master support, not live departure, seat, or booking truth."},{"id":"bks-station-ticket-support","name":"BKS station and ticket-point support","status":"active","sourceName":"Transport Co. / BKS station and ticket-point locations","kind":"entity-observation","cadence":"Monthly / quarterly static dataset validation","coverage":"Destination, hotel-area, and terminal observations from the official BKS station, office, stop, and ticket-point location CSV.","parameters":["official_intercity_bus_support_score"],"note":"Build snapshot using the public BKS station and ticket-point CSV to prove official intercity-bus support around overland traveler entities. This is official station and ticket-point presence, not live departure, seat, or booking truth."},{"id":"bks-timetable-search-surface","name":"BKS timetable search surface","status":"active","sourceName":"Transport Co. / BKS timetable resources","kind":"entity-observation","cadence":"Daily / search-surface validation","coverage":"Destination and overland-anchor observations from the public BKS booking/search destination selector surface for Bangkok-origin intercity bus planning.","parameters":["official_intercity_bus_search_support_score"],"note":"Build snapshot using the public BKS booking/search destination selector to prove official route-search support around tracked intercity destinations. This is official search-surface presence, not live departure, seat, or booking inventory truth."},{"id":"dlt-1584-complaint-stats","name":"DLT 1584 complaint-support stats","status":"active","sourceName":"DLT 1584 public-transport complaints","kind":"entity-observation","cadence":"Monthly / fiscal-year workbook refresh","coverage":"Bangkok city-base, regional destination, hotel-area, and bus-terminal complaint recourse and burden context from the public DLT 1584 fiscal-year workbooks.","parameters":["official_transport_complaint_support_score"],"note":"Build snapshot using the public DLT 1584 complaint statistics workbooks to score official complaint recourse and transport-burden context. This is not local realtime service quality, dispatch, or incident truth."},{"id":"dlt-gps-taxi-support","name":"DLT GPS and Taxi OK taxi-oversight support","status":"active","sourceName":"DLT GPS passenger and complaint app","sourceNames":["DLT Taxi OK / Taxi VIP project"],"kind":"entity-observation","cadence":"On regulatory or project-page change","coverage":"Bangkok city-base, airport-linked, and taxi-heavy regional destination or hotel-area support observations from the public DLT GPS app pages and Taxi OK / Taxi VIP notices.","parameters":["official_taxi_oversight_support_score"],"note":"Build snapshot using the public DLT GPS passenger pages and Taxi OK / Taxi VIP project notices to score official registered-taxi oversight, complaint, and station-search support. This is not live vehicle location, dispatch, ETA, or raw taxi GPS truth."},{"id":"bangkok-motorcycle-taxi-support","name":"Bangkok motorcycle-taxi support","status":"active","sourceName":"Bangkok motorcycle taxi stands and drivers","kind":"entity-observation","cadence":"Historical / static dataset with periodic validation","coverage":"Bangkok destination, Bangkok hotel-area, transfer-node, and airport last-mile support observations from the official DLT/data.go.th motorcycle-taxi stand and driver dataset.","parameters":["official_motorcycle_taxi_support_score"],"note":"Live connector using the public data.go.th datastore for Bangkok motorcycle-taxi stands and drivers to score official last-mile support coverage. This is stand and driver supply context, not exact live availability, queue, or dispatch truth."},{"id":"otp-taxi-demand-analytics","name":"OTP taxi demand and pickup/dropoff analytics","status":"active","sourceName":"OTP taxi GPS trip analytics","sourceNames":["OTP top taxi pickup and dropoff areas"],"kind":"entity-observation","cadence":"Monthly","coverage":"Bangkok destination, hotel-area, interchange, terminal, and airport-linked demand context from public OTP monthly taxi GPS analytics and top pickup/dropoff area rankings.","parameters":["taxi_pickup_dropoff_support_score"],"note":"Build snapshot using the public OTP monthly taxi GPS analytics and top pickup/dropoff area CSVs to score aggregate taxi-demand and hotspot support around Bangkok traveler entities. This is monthly aggregate demand context, not live dispatch, ETA, queue, or raw trip truth."},{"id":"marine-department-pier-registry","name":"Marine Department passenger-pier registry","status":"active","sourceName":"Marine Department piers","kind":"entity-observation","cadence":"Weekly / monthly berth-registry update","coverage":"Coastal destination, hotel-area, and pier-anchor observations from the official Marine Department berth registry where public passenger-use rows are available.","parameters":["official_pier_support_score"],"note":"Live connector using the public Marine Department berth registry to confirm official passenger-pier support, berth depth, and berth length context around coastal traveler entities. This is pier-infrastructure support, not live ferry schedule, closure, queue, or seat truth."},{"id":"marine-department-berth-status","name":"Marine Department berth-status surface","status":"active","sourceName":"Marine Department Berth Status","kind":"entity-observation","cadence":"Operational / event-driven","coverage":"Coastal destination, hotel-area, and pier-anchor berth-status surface support for Phuket, Krabi, Samui, Phangan, Pattaya, and selected public port clusters visible on the official page.","parameters":["official_berth_status_surface_score"],"note":"Live connector using the public Marine Department berth-status page to confirm named public port selectors and current visible ship-visit rows around coastal traveler entities. This is berth and ship-movement evidence, not ferry schedule, ticket, or seat truth."},{"id":"thai-smile-group-branch-locator","name":"Thai Smile Group branch and depot locator","status":"active","sourceName":"Thai Smile Group branch and depot locator","kind":"entity-observation","cadence":"Daily / site-locator update","coverage":"Bangkok destination, Bangkok hotel-area, and selected transfer-anchor observations from the public Thai Smile Group branch and depot locator.","parameters":["urban_bus_operator_support_score"],"note":"Live connector using the public Thai Smile Group site locator to confirm urban bus operator footprint around Bangkok traveler entities. This is operator support and depot presence, not realtime vehicle, ETA, crowding, or outage truth."},{"id":"bangkok-flood-monitoring-system","name":"Bangkok flood-monitoring current-event surface","status":"active","sourceName":"Bangkok Flood Monitoring System","kind":"entity-observation","cadence":"Operational / event-driven","coverage":"Bangkok destination, hotel-area, and transfer-node flood-friction context from the public city flood-monitoring current-event endpoint.","parameters":["bangkok_flood_current_event_count","bangkok_flood_max_level_cm"],"note":"Live connector using the public Bangkok flood-monitoring current-event endpoint for citywide flood-friction context. This is Bangkok-only public surface evidence, not a nationwide flood service."},{"id":"doh-highway-traffic-support","name":"DOH highway traffic support","status":"active","sourceName":"DOH Highway Traffic","kind":"entity-observation","cadence":"Operational / support-surface refresh","coverage":"Destination, airport, bus-terminal, and interchange road-friction support observations using the public DOH CCTV region and corridor surfaces.","parameters":["doh_highway_support_score"],"note":"Build snapshot using the public DOH highway-traffic CCTV region pages to score camera-backed corridor support and visible staleness by major traveler region. This is public observability and support context, not live travel-time, speed, queue, or incident truth."},{"id":"exat-expressway-support","name":"EXAT expressway support","status":"active","sourceName":"EXAT Traffic Surface","sourceNames":["EXAT Data Catalog"],"kind":"entity-observation","cadence":"Operational / support-surface refresh","coverage":"Bangkok-linked destination, airport, and overland-anchor expressway support observations using official EXAT map, toll, maintenance, and motorist service pages.","parameters":["exat_expressway_support_score"],"note":"Build snapshot using the public EXAT support surfaces to score whether Bangkok-linked road moves have official expressway, toll, maintenance, and motorist-support context behind them. This is expressway support context, not live congestion, lane, queue, or travel-time truth."},{"id":"hss-spa-license-support","name":"HSS spa-license support","status":"active","sourceName":"HSS Health Establishment Directory","sourceNames":["HSS Spa Premium"],"kind":"entity-observation","cadence":"Weekly / monthly public support-surface refresh","coverage":"Destination and hotel-base wellness-license support observations using public HSS health-establishment directory and spa-premium surfaces.","parameters":["spa_license_support_score"],"note":"Build snapshot using the public HSS health-establishment directory and spa-premium surfaces to score whether official spa and massage license lookup context exists behind wellness-heavy traveler anchors. This is licensing-support context, not live treatment availability, quality, or booking truth."},{"id":"moph-health-facility-support","name":"MOPH health-facility support","status":"active","sourceName":"MOPH Health Facility Datasets","kind":"entity-observation","cadence":"Weekly / monthly public support-surface refresh","coverage":"Destination and stay-fallback medical support observations using public MOPH/HS4 facility surfaces.","parameters":["medical_fallback_support_score"],"note":"Build snapshot using public MOPH health-facility dataset and HS4 facility surfaces to score whether official hospital and facility-lookup context exists behind traveler fallback planning. This is medical fallback context, not live bed, wait-time, dispatch, or specialist availability truth."},{"id":"dnp-park-tourism-support","name":"DNP park tourism support","status":"active","sourceName":"DNP Tourism Datasets","kind":"entity-observation","cadence":"Scheduled / catalog refresh","coverage":"Nature-heavy destination park-access support observations using public DNP tourism dataset surfaces and national-park dataset visibility.","parameters":["park_access_context_score"],"note":"Build snapshot using the public DNP tourism dataset surfaces to score whether national-park and protected-area planning has official dataset support behind it. This is park-planning context, not live closure, ticket, ranger, or capacity truth."},{"id":"gta-gold-reference-price","name":"GTA Thai gold reference price","status":"active","sourceName":"Gold Traders Association Thailand gold prices","kind":"entity-observation","cadence":"Intraday / market-hours publication","coverage":"Destination-level city buying-context anchors using the national Thai 96.5% gold reference quote instead of pretending there are province-specific official prices.","parameters":["gold_bar_965_buy_baht_weight","gold_bar_965_sell_baht_weight","gold_ornament_965_base_baht_weight","gold_ornament_965_sell_baht_weight","gold_spot_reference","usd_thb_reference","gold_price_change_intraday","gold_price_change_prev_day"],"note":"Live connector using the published Gold Traders Association latest-price JSON surface for the national Thai domestic 96.5% retail reference. This is published THB-per-baht-weight context, not a trading feed or province-by-province local shop quote."},{"id":"bot-usd-thb-reference","name":"BOT USD/THB daily average","status":"active","sourceName":"Bank of Thailand API","kind":"entity-observation","cadence":"Business day / daily average publication","coverage":"Gold-buying destination and market-anchor FX context when a Bank of Thailand API token is configured.","parameters":["usd_thb_reference"],"note":"Optional live connector using the Bank of Thailand daily-average USD/THB exchange-rate API when credentials are configured. Preferred FX context for Thai gold pages and signals when reachable; otherwise the stack falls back to the GTA-published embedded USD/THB reference."},{"id":"bangkok-civic-complaint-stats","name":"Bangkok civic complaint stats","status":"active","sourceName":"Bangkok Open Data","kind":"entity-observation","cadence":"Monthly / district statistical update","coverage":"Bangkok destination and Bangkok hotel-area complaint, resolution, and star-rating context from the public district complaint statistics file.","parameters":["civic_monthly_complaint_count","civic_monthly_resolution_rate","civic_star_average"],"note":"Public Bangkok Open Data complaint statistics. This is a slower-moving civic-friction layer for nuisance and service burden, not a live dispatch or complaint-intake feed."},{"id":"noise4thai-ambient-noise","name":"Noise4Thai ambient noise","status":"active","sourceName":"PCD Noise4Thai","kind":"entity-observation","cadence":"Hourly / daily","coverage":"Destination, hotel-area, and monitoring-cluster noise observations.","parameters":["leq_1h","leq_24h"],"note":"Live connector using public Noise4Thai monitoring cards to compute current destination and hotel-area ambient-noise observations."},{"id":"thairsc-road-safety","name":"ThaiRSC road-safety observations","status":"active","sourceName":"ThaiRSC Road Accident Center","kind":"entity-observation","cadence":"Near real time / daily snapshot","coverage":"Route and province road-safety observations for route fragility and holiday driving decisions.","parameters":["road_deaths_today","road_injuries_today","major_accident_context"],"note":"Live connector served from a fresh build snapshot because the upstream API requires TLS bypass in refresh tooling, but the road-safety observations are now attached to the graph."}]},"observations":[{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_bangkok_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_bangkok_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"chiang-mai","entity_name":"Chiang Mai","entity_type":"destination","entity_path":"/entities/chiang-mai/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Chiang Mai public station coverage.","station_count":2,"supporting_station_ids":["35t","36t"],"supporting_station_names":["City Hall, Chiangmai","Yupparaj Wittayalai School"],"observation_id":"air4thai-aqi_chiang-mai_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":20.5,"unit":"AQI","bucket":"very good","max_value":22,"comparison_hint":"City Hall, Chiangmai reached AQI 22","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"chiang-mai","entity_name":"Chiang Mai","entity_type":"destination","entity_path":"/entities/chiang-mai/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Chiang Mai public station coverage.","station_count":2,"supporting_station_ids":["35t","36t"],"supporting_station_names":["City Hall, Chiangmai","Yupparaj Wittayalai School"],"observation_id":"air4thai-aqi_chiang-mai_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":12.4,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"phuket","entity_name":"Phuket","entity_type":"destination","entity_path":"/entities/phuket/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_phuket_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":37,"unit":"AQI","bucket":"good","max_value":37,"comparison_hint":"Municipal Health Center reached AQI 37","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"phuket","entity_name":"Phuket","entity_type":"destination","entity_path":"/entities/phuket/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_phuket_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.8,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"krabi","entity_name":"Krabi","entity_type":"destination","entity_path":"/entities/krabi/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Krabi public station coverage.","station_count":1,"supporting_station_ids":["119t"],"supporting_station_names":["Thara Public Park"],"observation_id":"air4thai-aqi_krabi_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":24,"unit":"AQI","bucket":"very good","max_value":24,"comparison_hint":"Thara Public Park reached AQI 24","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"krabi","entity_name":"Krabi","entity_type":"destination","entity_path":"/entities/krabi/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Krabi public station coverage.","station_count":1,"supporting_station_ids":["119t"],"supporting_station_names":["Thara Public Park"],"observation_id":"air4thai-aqi_krabi_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":14.5,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"koh-samui","entity_name":"Koh Samui","entity_type":"destination","entity_path":"/entities/koh-samui/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_koh-samui_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":36,"unit":"AQI","bucket":"good","max_value":36,"comparison_hint":"Environment Agency Section 14, Surat Thani reached AQI 36","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"koh-samui","entity_name":"Koh Samui","entity_type":"destination","entity_path":"/entities/koh-samui/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_koh-samui_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.4,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"koh-phangan","entity_name":"Koh Phangan","entity_type":"destination","entity_path":"/entities/koh-phangan/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_koh-phangan_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":36,"unit":"AQI","bucket":"good","max_value":36,"comparison_hint":"Environment Agency Section 14, Surat Thani reached AQI 36","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"koh-phangan","entity_name":"Koh Phangan","entity_type":"destination","entity_path":"/entities/koh-phangan/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_koh-phangan_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.4,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"pai","entity_name":"Pai","entity_type":"destination","entity_path":"/entities/pai/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"district_or_province_proxy","confidence":"medium","note":"Prefers Pai coverage when present, then falls back to Mae Hong Son province.","station_count":1,"supporting_station_ids":["58t"],"supporting_station_names":["Natural Resources and Environment Office, Mae Hongson"],"observation_id":"air4thai-aqi_pai_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":10,"unit":"AQI","bucket":"very good","max_value":10,"comparison_hint":"Natural Resources and Environment Office, Mae Hongson reached AQI 10","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"pai","entity_name":"Pai","entity_type":"destination","entity_path":"/entities/pai/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"district_or_province_proxy","confidence":"medium","note":"Prefers Pai coverage when present, then falls back to Mae Hong Son province.","station_count":1,"supporting_station_ids":["58t"],"supporting_station_names":["Natural Resources and Environment Office, Mae Hongson"],"observation_id":"air4thai-aqi_pai_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":5.8,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"ayutthaya","entity_name":"Ayutthaya","entity_type":"destination","entity_path":"/entities/ayutthaya/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from public provincial station coverage.","station_count":1,"supporting_station_ids":["21t"],"supporting_station_names":["Ayutthaya Witthayalai School"],"observation_id":"air4thai-aqi_ayutthaya_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":8,"unit":"AQI","bucket":"very good","max_value":8,"comparison_hint":"Ayutthaya Witthayalai School reached AQI 8","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"ayutthaya","entity_name":"Ayutthaya","entity_type":"destination","entity_path":"/entities/ayutthaya/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from public provincial station coverage.","station_count":1,"supporting_station_ids":["21t"],"supporting_station_names":["Ayutthaya Witthayalai School"],"observation_id":"air4thai-aqi_ayutthaya_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":4.9,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"kanchanaburi","entity_name":"Kanchanaburi","entity_type":"destination","entity_path":"/entities/kanchanaburi/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from public provincial station coverage.","station_count":1,"supporting_station_ids":["79t"],"supporting_station_names":["Kanchanaburi Meteorological Station"],"observation_id":"air4thai-aqi_kanchanaburi_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":28,"unit":"AQI","bucket":"good","max_value":28,"comparison_hint":"Kanchanaburi Meteorological Station reached AQI 28","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"kanchanaburi","entity_name":"Kanchanaburi","entity_type":"destination","entity_path":"/entities/kanchanaburi/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from public provincial station coverage.","station_count":1,"supporting_station_ids":["79t"],"supporting_station_names":["Kanchanaburi Meteorological Station"],"observation_id":"air4thai-aqi_kanchanaburi_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":15.8,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"isaan","entity_name":"Isaan","entity_type":"destination","entity_path":"/entities/isaan/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"regional_proxy_average","confidence":"medium","note":"Uses a regional set of northeastern stations as a proxy.","station_count":9,"supporting_station_ids":["46t","47t","101t","113t","90t","111t","82t","91t"],"supporting_station_names":["Hydrogeological Group Water Resources Regional Office4 khonkaen","Municipal Waste Water Pumping Station","Buriram City Hall","Bueng Planchai","Meteorological stations, Sakon Nakhon","Surin Meteorological Center","Nong Thin Public Park, Nong Khai","Nong Prajak Public Park, Udon Thani"],"observation_id":"air4thai-aqi_isaan_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.4,"unit":"AQI","bucket":"very good","max_value":33,"comparison_hint":"Bueng Planchai reached AQI 33","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"isaan","entity_name":"Isaan","entity_type":"destination","entity_path":"/entities/isaan/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"regional_proxy_average","confidence":"medium","note":"Uses a regional set of northeastern stations as a proxy.","station_count":9,"supporting_station_ids":["46t","47t","101t","113t","90t","111t","82t","91t"],"supporting_station_names":["Hydrogeological Group Water Resources Regional Office4 khonkaen","Municipal Waste Water Pumping Station","Buriram City Hall","Bueng Planchai","Meteorological stations, Sakon Nakhon","Surin Meteorological Center","Nong Thin Public Park, Nong Khai","Nong Prajak Public Park, Udon Thani"],"observation_id":"air4thai-aqi_isaan_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":8.9,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"sukhumvit","entity_name":"Sukhumvit","entity_type":"hotel_area","entity_path":"/entities/sukhumvit/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_sukhumvit_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"sukhumvit","entity_name":"Sukhumvit","entity_type":"hotel_area","entity_path":"/entities/sukhumvit/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_sukhumvit_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"silom-sathorn","entity_name":"Silom / Sathorn","entity_type":"hotel_area","entity_path":"/entities/silom-sathorn/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_silom-sathorn_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"silom-sathorn","entity_name":"Silom / Sathorn","entity_type":"hotel_area","entity_path":"/entities/silom-sathorn/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_silom-sathorn_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"riverside-old-town","entity_name":"Riverside / Old Town","entity_type":"hotel_area","entity_path":"/entities/riverside-old-town/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_riverside-old-town_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"riverside-old-town","entity_name":"Riverside / Old Town","entity_type":"hotel_area","entity_path":"/entities/riverside-old-town/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_riverside-old-town_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"nimman","entity_name":"Nimman","entity_type":"hotel_area","entity_path":"/entities/nimman/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Chiang Mai public station coverage.","station_count":2,"supporting_station_ids":["35t","36t"],"supporting_station_names":["City Hall, Chiangmai","Yupparaj Wittayalai School"],"observation_id":"air4thai-aqi_nimman_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":20.5,"unit":"AQI","bucket":"very good","max_value":22,"comparison_hint":"City Hall, Chiangmai reached AQI 22","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"nimman","entity_name":"Nimman","entity_type":"hotel_area","entity_path":"/entities/nimman/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Chiang Mai public station coverage.","station_count":2,"supporting_station_ids":["35t","36t"],"supporting_station_names":["City Hall, Chiangmai","Yupparaj Wittayalai School"],"observation_id":"air4thai-aqi_nimman_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":12.4,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"ari","entity_name":"Ari","entity_type":"hotel_area","entity_path":"/entities/ari/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_ari_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"ari","entity_name":"Ari","entity_type":"hotel_area","entity_path":"/entities/ari/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_ari_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"old-city-chiang-mai","entity_name":"Old City Chiang Mai","entity_type":"hotel_area","entity_path":"/entities/old-city-chiang-mai/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Chiang Mai public station coverage.","station_count":2,"supporting_station_ids":["35t","36t"],"supporting_station_names":["City Hall, Chiangmai","Yupparaj Wittayalai School"],"observation_id":"air4thai-aqi_old-city-chiang-mai_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":20.5,"unit":"AQI","bucket":"very good","max_value":22,"comparison_hint":"City Hall, Chiangmai reached AQI 22","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"old-city-chiang-mai","entity_name":"Old City Chiang Mai","entity_type":"hotel_area","entity_path":"/entities/old-city-chiang-mai/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Chiang Mai public station coverage.","station_count":2,"supporting_station_ids":["35t","36t"],"supporting_station_names":["City Hall, Chiangmai","Yupparaj Wittayalai School"],"observation_id":"air4thai-aqi_old-city-chiang-mai_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":12.4,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"kata-karon","entity_name":"Kata / Karon","entity_type":"hotel_area","entity_path":"/entities/kata-karon/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_kata-karon_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":37,"unit":"AQI","bucket":"good","max_value":37,"comparison_hint":"Municipal Health Center reached AQI 37","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"kata-karon","entity_name":"Kata / Karon","entity_type":"hotel_area","entity_path":"/entities/kata-karon/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_kata-karon_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.8,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"patong","entity_name":"Patong","entity_type":"hotel_area","entity_path":"/entities/patong/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_patong_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":37,"unit":"AQI","bucket":"good","max_value":37,"comparison_hint":"Municipal Health Center reached AQI 37","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"patong","entity_name":"Patong","entity_type":"hotel_area","entity_path":"/entities/patong/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_patong_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.8,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"rawai-nai-harn","entity_name":"Rawai / Nai Harn","entity_type":"hotel_area","entity_path":"/entities/rawai-nai-harn/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_rawai-nai-harn_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":37,"unit":"AQI","bucket":"good","max_value":37,"comparison_hint":"Municipal Health Center reached AQI 37","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"rawai-nai-harn","entity_name":"Rawai / Nai Harn","entity_type":"hotel_area","entity_path":"/entities/rawai-nai-harn/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_rawai-nai-harn_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.8,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"phuket-old-town","entity_name":"Phuket Old Town","entity_type":"hotel_area","entity_path":"/entities/phuket-old-town/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_phuket-old-town_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":37,"unit":"AQI","bucket":"good","max_value":37,"comparison_hint":"Municipal Health Center reached AQI 37","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"phuket-old-town","entity_name":"Phuket Old Town","entity_type":"hotel_area","entity_path":"/entities/phuket-old-town/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_phuket-old-town_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.8,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"bophut-fishermans-village","entity_name":"Bophut / Fisherman's Village","entity_type":"hotel_area","entity_path":"/entities/bophut-fishermans-village/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_bophut-fishermans-village_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":36,"unit":"AQI","bucket":"good","max_value":36,"comparison_hint":"Environment Agency Section 14, Surat Thani reached AQI 36","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"bophut-fishermans-village","entity_name":"Bophut / Fisherman's Village","entity_type":"hotel_area","entity_path":"/entities/bophut-fishermans-village/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_bophut-fishermans-village_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.4,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"chaweng","entity_name":"Chaweng","entity_type":"hotel_area","entity_path":"/entities/chaweng/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_chaweng_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":36,"unit":"AQI","bucket":"good","max_value":36,"comparison_hint":"Environment Agency Section 14, Surat Thani reached AQI 36","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"chaweng","entity_name":"Chaweng","entity_type":"hotel_area","entity_path":"/entities/chaweng/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_chaweng_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.4,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"lamai","entity_name":"Lamai","entity_type":"hotel_area","entity_path":"/entities/lamai/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_lamai_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":36,"unit":"AQI","bucket":"good","max_value":36,"comparison_hint":"Environment Agency Section 14, Surat Thani reached AQI 36","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"lamai","entity_name":"Lamai","entity_type":"hotel_area","entity_path":"/entities/lamai/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_lamai_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.4,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"ao-nang","entity_name":"Ao Nang","entity_type":"hotel_area","entity_path":"/entities/ao-nang/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Krabi public station coverage.","station_count":1,"supporting_station_ids":["119t"],"supporting_station_names":["Thara Public Park"],"observation_id":"air4thai-aqi_ao-nang_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":24,"unit":"AQI","bucket":"very good","max_value":24,"comparison_hint":"Thara Public Park reached AQI 24","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"ao-nang","entity_name":"Ao Nang","entity_type":"hotel_area","entity_path":"/entities/ao-nang/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Krabi public station coverage.","station_count":1,"supporting_station_ids":["119t"],"supporting_station_names":["Thara Public Park"],"observation_id":"air4thai-aqi_ao-nang_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":14.5,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"railay","entity_name":"Railay","entity_type":"hotel_area","entity_path":"/entities/railay/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Krabi public station coverage.","station_count":1,"supporting_station_ids":["119t"],"supporting_station_names":["Thara Public Park"],"observation_id":"air4thai-aqi_railay_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":24,"unit":"AQI","bucket":"very good","max_value":24,"comparison_hint":"Thara Public Park reached AQI 24","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"railay","entity_name":"Railay","entity_type":"hotel_area","entity_path":"/entities/railay/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Krabi public station coverage.","station_count":1,"supporting_station_ids":["119t"],"supporting_station_names":["Thara Public Park"],"observation_id":"air4thai-aqi_railay_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":14.5,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"bts-asok","entity_name":"BTS Asok / MRT Sukhumvit","entity_type":"station","entity_path":"/entities/bts-asok/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_bts-asok_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"bts-asok","entity_name":"BTS Asok / MRT Sukhumvit","entity_type":"station","entity_path":"/entities/bts-asok/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_bts-asok_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"bangkok-mochit-2","entity_name":"Bangkok Mochit 2 Bus Terminal","entity_type":"bus_terminal","entity_path":"/entities/bangkok-mochit-2/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_bangkok-mochit-2_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"bangkok-mochit-2","entity_name":"Bangkok Mochit 2 Bus Terminal","entity_type":"bus_terminal","entity_path":"/entities/bangkok-mochit-2/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_bangkok-mochit-2_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"suvarnabhumi-airport","entity_name":"Suvarnabhumi Airport","entity_type":"airport","entity_path":"/entities/suvarnabhumi-airport/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_suvarnabhumi-airport_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"suvarnabhumi-airport","entity_name":"Suvarnabhumi Airport","entity_type":"airport","entity_path":"/entities/suvarnabhumi-airport/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_suvarnabhumi-airport_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"don-mueang-airport","entity_name":"Don Mueang Airport","entity_type":"airport","entity_path":"/entities/don-mueang-airport/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_don-mueang-airport_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"don-mueang-airport","entity_name":"Don Mueang Airport","entity_type":"airport","entity_path":"/entities/don-mueang-airport/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_don-mueang-airport_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"rassada-pier","entity_name":"Rassada Pier","entity_type":"pier","entity_path":"/entities/rassada-pier/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_rassada-pier_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":37,"unit":"AQI","bucket":"good","max_value":37,"comparison_hint":"Municipal Health Center reached AQI 37","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"rassada-pier","entity_name":"Rassada Pier","entity_type":"pier","entity_path":"/entities/rassada-pier/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"province_station_average","confidence":"high","note":"Derived from Phuket public station coverage.","station_count":1,"supporting_station_ids":["43t"],"supporting_station_names":["Municipal Health Center"],"observation_id":"air4thai-aqi_rassada-pier_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.8,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"na-thon-pier","entity_name":"Na Thon Pier","entity_type":"pier","entity_path":"/entities/na-thon-pier/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_na-thon-pier_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":36,"unit":"AQI","bucket":"good","max_value":36,"comparison_hint":"Environment Agency Section 14, Surat Thani reached AQI 36","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"na-thon-pier","entity_name":"Na Thon Pier","entity_type":"pier","entity_path":"/entities/na-thon-pier/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_na-thon-pier_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.4,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"donsak-pier","entity_name":"Donsak Pier","entity_type":"pier","entity_path":"/entities/donsak-pier/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_donsak-pier_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":36,"unit":"AQI","bucket":"good","max_value":36,"comparison_hint":"Environment Agency Section 14, Surat Thani reached AQI 36","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"donsak-pier","entity_name":"Donsak Pier","entity_type":"pier","entity_path":"/entities/donsak-pier/","observed_at":"2026-08-22T16:00:00.000Z","freshness_class":"stale","quality_flag":"proxy-derived","method":"province_proxy_average","confidence":"medium","note":"Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.","station_count":1,"supporting_station_ids":["42t"],"supporting_station_names":["Environment Agency Section 14, Surat Thani"],"observation_id":"air4thai-aqi_donsak-pier_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":19.4,"unit":"µg/m3","bucket":"good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"air4thai-bangkok-urban-cluster","entity_name":"Air4Thai Bangkok urban cluster","entity_type":"monitoring_cluster","entity_path":"/entities/air4thai-bangkok-urban-cluster/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_air4thai-bangkok-urban-cluster_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"air4thai-bangkok-urban-cluster","entity_name":"Air4Thai Bangkok urban cluster","entity_type":"monitoring_cluster","entity_path":"/entities/air4thai-bangkok-urban-cluster/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_air4thai-bangkok-urban-cluster_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"noise4thai-bangkok-roadside-cluster","entity_name":"Noise4Thai Bangkok roadside cluster","entity_type":"monitoring_cluster","entity_path":"/entities/noise4thai-bangkok-roadside-cluster/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_noise4thai-bangkok-roadside-cluster_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"noise4thai-bangkok-roadside-cluster","entity_name":"Noise4Thai Bangkok roadside cluster","entity_type":"monitoring_cluster","entity_path":"/entities/noise4thai-bangkok-roadside-cluster/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_noise4thai-bangkok-roadside-cluster_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"thaiwater-chao-phraya-bangkok","entity_name":"Thaiwater Chao Phraya Bangkok corridor","entity_type":"monitoring_cluster","entity_path":"/entities/thaiwater-chao-phraya-bangkok/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_thaiwater-chao-phraya-bangkok_aqi_average","parameter":"aqi_average","metric_label":"Average AQI","value":18.2,"unit":"AQI","bucket":"very good","max_value":46,"comparison_hint":"Sai Mai District Office, Bangkok reached AQI 46","freshness":"stale","data_current":false,"expired":false},{"feed_id":"air4thai-aqi","source_name":"Air4Thai / Pollution Control Department","entity_id":"thaiwater-chao-phraya-bangkok","entity_name":"Thaiwater Chao Phraya Bangkok corridor","entity_type":"monitoring_cluster","entity_path":"/entities/thaiwater-chao-phraya-bangkok/","observed_at":"2026-08-22T17:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"city_cluster_average","confidence":"high","note":"Derived from Bangkok public station coverage.","station_count":81,"supporting_station_ids":["02t","03t","05t","12t","50t","52t","53t","54t"],"supporting_station_names":["Bansomdejchaopraya Rajabhat University","Highway NO.3902 km.13 +600","Thai Meteorological Department ","Nonsi Witthaya School","Chulalongkorn Hospital","Thonburi Power Sub-Station","Chokchai Police Station","National Housing Authority Dindaeng"],"observation_id":"air4thai-aqi_thaiwater-chao-phraya-bangkok_pm25_average","parameter":"pm25_average","metric_label":"Average PM2.5","value":10.7,"unit":"µg/m3","bucket":"very good","max_value":null,"comparison_hint":"Use with AQI to understand whether PM2.5 is the main comfort breaker.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_forecast_rain_probability","parameter":"forecast_rain_probability","metric_label":"Forecast rain probability","value":0,"unit":"%","source_hint":"Bangkok and vicinity","comparison_hint":"Heavy rain wording is present in the regional forecast.","freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_forecast_temp_min","parameter":"forecast_temp_min","metric_label":"Forecast minimum temperature","value":14,"unit":"°C","source_hint":"Bangkok and vicinity","freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_forecast_temp_max","parameter":"forecast_temp_max","metric_label":"Forecast maximum temperature","value":17.5,"unit":"°C","source_hint":"Bangkok and vicinity","freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_forecast_heavy_rain_flag","parameter":"forecast_heavy_rain_flag","metric_label":"Heavy-rain forecast flag","value":1,"unit":"flag","source_hint":"Bangkok and vicinity","freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_warning_match_count","parameter":"warning_match_count","metric_label":"Matched warning items","value":10,"unit":"alerts","source_hint":"TMD warning news","supporting_titles":["อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)","พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)","Storm NALGAE"],"freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_marine_thunderstorm_flag","parameter":"marine_thunderstorm_flag","metric_label":"Marine thunderstorm flag","value":1,"unit":"flag","source_hint":"Bangkok and vicinity","freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_station_temperature","parameter":"station_temperature","metric_label":"Station temperature","value":28,"unit":"°C","source_hint":"Bangkok","freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_station_humidity","parameter":"station_humidity","metric_label":"Station humidity","value":83,"unit":"%","source_hint":"Bangkok","freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_station_wind_speed","parameter":"station_wind_speed","metric_label":"Station wind speed","value":0,"unit":"km/h","source_hint":"Bangkok","freshness":"stale","data_current":false,"expired":false},{"feed_id":"tmd-weather-surface","source_name":"Thai Meteorological Department","entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","observed_at":"2026-08-22T15:00:00.000Z","freshness_class":"stale","quality_flag":"direct-source-match","method":"tmd_rss_station_and_region","confidence":"high","note":"Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.","observation_id":"tmd-weather-surface_bangkok_station_rainfall_today","parameter":"station_rainfall_today","metric_label":"Station rainfall today","value":4.5,"unit":"mm","source_hint":"Bangkok","comparison_hint":"มีเมฆเป็นส่วนมาก","freshness":"stale","data_current":false,"expired":false}],"contexts":[{"context_id":"gdacs-global-context","feed_id":"gdacs-disaster-context","source_name":"GDACS","observed_at":"2026-08-22T17:21:14.000Z","parameter":"active_hazard_groups","metric_label":"Active GDACS hazard groups","value":4,"unit":"groups","freshness_class":"stale","confidence":"medium","affects_entity_types":["destination","hotel_area","airport","pier","station","bus_terminal","monitoring_cluster"],"affects_entities":["bangkok","chiang-mai","phuket","krabi","koh-samui","koh-phangan","pattaya-chonburi","hua-hin","pai","ayutthaya","kanchanaburi","isaan","chiang-rai","hat-yai","trang","surat-thani","sukhothai","nakhon-ratchasima","chanthaburi","khon-kaen","ubon-ratchathani","buriram","nong-khai"],"event_count":32,"details":[{"label":"Fire","value":13},{"label":"Earthquake","value":12},{"label":"Cyclone","value":4},{"label":"Flood","value":3}],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"stale","data_current":false,"expired":false},{"context_id":"thairsc-national-context","feed_id":"thairsc-road-safety","source_name":"ThaiRSC Road Accident Center","observed_at":"2026-05-15T11:00:00.000Z","parameter":"national_road_deaths_today","metric_label":"National road deaths today","value":16,"unit":"deaths","freshness_class":"stale","confidence":"medium","affects_entity_types":["destination","hotel_area","airport","pier","station","bus_terminal","monitoring_cluster"],"affects_entities":["bangkok","chiang-mai","phuket","krabi","koh-samui","koh-phangan","pattaya-chonburi","hua-hin","pai","ayutthaya","kanchanaburi","isaan","chiang-rai","hat-yai","trang","surat-thani","sukhothai","nakhon-ratchasima","chanthaburi","khon-kaen","ubon-ratchathani","buriram","nong-khai"],"event_count":1834,"details":{"today_injuries":1834,"source":"ที่มา : ศูนย์รับแจ้งเหตุ บริษัท กลางคุ้มครองผู้ประสบภัยจากรถ จำกัด และเครือข่ายรับแจ้ง"},"note":"National road-casualty context from the latest ThaiRSC snapshot.","freshness":"stale","data_current":false,"expired":false},{"context_id":"usgs-thailand-earthquake-context","feed_id":"usgs-thailand-earthquakes","source_name":"USGS Earthquake API","observed_at":null,"parameter":"regional_earthquake_events","metric_label":"Thailand-region earthquake events","value":0,"unit":"events","freshness_class":"stale","confidence":"medium","affects_entity_types":["destination","hotel_area","airport","pier","station","bus_terminal","monitoring_cluster"],"affects_entities":["bangkok","chiang-mai","phuket","krabi","koh-samui","koh-phangan","pattaya-chonburi","hua-hin","pai","ayutthaya","kanchanaburi","isaan","chiang-rai","hat-yai","trang","surat-thani","sukhothai","nakhon-ratchasima","chanthaburi","khon-kaen","ubon-ratchathani","buriram","nong-khai"],"max_magnitude":null,"details":[],"note":"A quiet query is still a useful context observation because it reduces one class of route-breaking surprise.","freshness":"stale","data_current":false,"expired":false}],"entity_summaries":[{"entity_id":"bangkok","entity_name":"Bangkok","entity_path":"/entities/bangkok/","observation_count":36,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,airport_flight_rules_score,airport_visibility_score,airport_forecast_disruption_score,airport_convective_forecast_flag,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_rapid_transit_support_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_motorcycle_taxi_support_score,taxi_pickup_dropoff_support_score,urban_bus_operator_support_score,exat_expressway_support_score,spa_license_support_score,medical_fallback_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/bangkok/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"koh-samui","entity_name":"Koh Samui","entity_path":"/entities/koh-samui/","observation_count":35,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,airport_flight_rules_score,airport_visibility_score,airport_forecast_disruption_score,airport_convective_forecast_flag,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_transport_complaint_support_score,official_pier_support_score,spa_license_support_score,medical_fallback_support_score,park_access_context_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/koh-samui/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"phuket","entity_name":"Phuket","entity_path":"/entities/phuket/","observation_count":35,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,airport_flight_rules_score,airport_visibility_score,airport_forecast_disruption_score,airport_convective_forecast_flag,transport_structure_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,spa_license_support_score,medical_fallback_support_score,park_access_context_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/phuket/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"don-mueang-airport","entity_name":"Don Mueang Airport","entity_path":"/entities/don-mueang-airport/","observation_count":35,"last_observed_at":"2026-08-22T17:40:00.000Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,airport_flight_rules_score,airport_visibility_score,airport_forecast_disruption_score,airport_convective_forecast_flag,official_airport_ground_service_score,official_airport_board_surface_score,official_airport_total_movements,official_airport_total_passengers,official_airport_scale_score,official_airport_environmental_support_score,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_taxi_oversight_support_score,official_motorcycle_taxi_support_score,taxi_pickup_dropoff_support_score,exat_expressway_support_score,medical_fallback_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/don-mueang-airport/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"krabi","entity_name":"Krabi","entity_path":"/entities/krabi/","observation_count":34,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,airport_flight_rules_score,airport_visibility_score,airport_forecast_disruption_score,airport_convective_forecast_flag,transport_structure_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,spa_license_support_score,medical_fallback_support_score,park_access_context_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/krabi/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"suvarnabhumi-airport","entity_name":"Suvarnabhumi Airport","entity_path":"/entities/suvarnabhumi-airport/","observation_count":34,"last_observed_at":"2026-08-22T17:40:00.000Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,airport_flight_rules_score,airport_visibility_score,airport_forecast_disruption_score,airport_convective_forecast_flag,official_airport_ground_service_score,official_airport_board_surface_score,official_airport_total_movements,official_airport_total_passengers,official_airport_scale_score,official_airport_environmental_support_score,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_taxi_oversight_support_score,official_motorcycle_taxi_support_score,exat_expressway_support_score,medical_fallback_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/suvarnabhumi-airport/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"chiang-mai","entity_name":"Chiang Mai","entity_path":"/entities/chiang-mai/","observation_count":32,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,airport_flight_rules_score,airport_visibility_score,airport_forecast_disruption_score,airport_convective_forecast_flag,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,spa_license_support_score,medical_fallback_support_score,park_access_context_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/chiang-mai/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"koh-phangan","entity_name":"Koh Phangan","entity_path":"/entities/koh-phangan/","observation_count":32,"last_observed_at":"2026-08-22T17:00:00.000Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,airport_flight_rules_score,airport_visibility_score,airport_forecast_disruption_score,airport_convective_forecast_flag,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_transport_complaint_support_score,official_pier_support_score,medical_fallback_support_score,park_access_context_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/koh-phangan/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"bangkok-mochit-2","entity_name":"Bangkok Mochit 2 Bus Terminal","entity_path":"/entities/bangkok-mochit-2/","observation_count":30,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_rapid_transit_support_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_motorcycle_taxi_support_score,taxi_pickup_dropoff_support_score,urban_bus_operator_support_score,exat_expressway_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/bangkok-mochit-2/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"sukhumvit","entity_name":"Sukhumvit","entity_path":"/entities/sukhumvit/","observation_count":30,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_rapid_transit_support_score,official_intercity_bus_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_motorcycle_taxi_support_score,taxi_pickup_dropoff_support_score,urban_bus_operator_support_score,exat_expressway_support_score,spa_license_support_score,medical_fallback_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/sukhumvit/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"chaweng","entity_name":"Chaweng","entity_path":"/entities/chaweng/","observation_count":29,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,official_bus_terminal_support_score,official_intercity_bus_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,spa_license_support_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/chaweng/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"lamai","entity_name":"Lamai","entity_path":"/entities/lamai/","observation_count":29,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,official_bus_terminal_support_score,official_intercity_bus_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,spa_license_support_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/lamai/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"patong","entity_name":"Patong","entity_path":"/entities/patong/","observation_count":29,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,transport_structure_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,spa_license_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/patong/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"rawai-nai-harn","entity_name":"Rawai / Nai Harn","entity_path":"/entities/rawai-nai-harn/","observation_count":29,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,transport_structure_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,spa_license_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/rawai-nai-harn/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"silom-sathorn","entity_name":"Silom / Sathorn","entity_path":"/entities/silom-sathorn/","observation_count":29,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_rapid_transit_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_motorcycle_taxi_support_score,taxi_pickup_dropoff_support_score,urban_bus_operator_support_score,exat_expressway_support_score,spa_license_support_score,medical_fallback_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/silom-sathorn/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"ao-nang","entity_name":"Ao Nang","entity_path":"/entities/ao-nang/","observation_count":28,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,transport_structure_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,spa_license_support_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/ao-nang/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"riverside-old-town","entity_name":"Riverside / Old Town","entity_path":"/entities/riverside-old-town/","observation_count":28,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_rapid_transit_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_motorcycle_taxi_support_score,taxi_pickup_dropoff_support_score,urban_bus_operator_support_score,exat_expressway_support_score,medical_fallback_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/riverside-old-town/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"railay","entity_name":"Railay","entity_path":"/entities/railay/","observation_count":27,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,transport_structure_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/railay/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"ari","entity_name":"Ari","entity_path":"/entities/ari/","observation_count":27,"last_observed_at":"2026-08-22T17:40:00.000Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_rapid_transit_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_motorcycle_taxi_support_score,taxi_pickup_dropoff_support_score,exat_expressway_support_score,medical_fallback_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/ari/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"bophut-fishermans-village","entity_name":"Bophut / Fisherman's Village","entity_path":"/entities/bophut-fishermans-village/","observation_count":27,"last_observed_at":"2026-08-22T17:00:00.000Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,spa_license_support_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/bophut-fishermans-village/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"kanchanaburi","entity_name":"Kanchanaburi","entity_path":"/entities/kanchanaburi/","observation_count":26,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_bus_terminal_support_score,official_intercity_bus_support_score,official_intercity_bus_search_support_score,official_transport_complaint_support_score,exat_expressway_support_score,medical_fallback_support_score,park_access_context_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/kanchanaburi/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"bts-asok","entity_name":"BTS Asok / MRT Sukhumvit","entity_path":"/entities/bts-asok/","observation_count":26,"last_observed_at":"2026-08-22T17:40:00.000Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_rapid_transit_support_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_motorcycle_taxi_support_score,taxi_pickup_dropoff_support_score,exat_expressway_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/bts-asok/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"kata-karon","entity_name":"Kata / Karon","entity_path":"/entities/kata-karon/","observation_count":26,"last_observed_at":"2026-08-22T17:00:00.000Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,transport_structure_score,official_transport_complaint_support_score,official_taxi_oversight_support_score,official_pier_support_score,spa_license_support_score,noise_leq_24h_average,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/kata-karon/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]},{"entity_id":"donsak-pier","entity_name":"Donsak Pier","entity_path":"/entities/donsak-pier/","observation_count":25,"last_observed_at":"2026-08-22T17:00:00.000Z","values_csv":"aqi_average,pm25_average,forecast_rain_probability,forecast_temp_min,forecast_temp_max,forecast_heavy_rain_flag,warning_match_count,marine_thunderstorm_flag,station_temperature,station_humidity,station_wind_speed,station_rainfall_today,marine_wind_speed_average,marine_wave_height_average,marine_wave_height_thunder,water_quality_status_score,water_dissolved_oxygen_average,water_quality_index_average,transport_structure_score,official_pier_support_score,road_deaths_ytd,road_injuries_ytd,road_casualty_total_ytd","path":"/entities/donsak-pier/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_average","pm25_average","forecast_rain_probability","forecast_temp_min","forecast_temp_max","forecast_heavy_rain_flag","warning_match_count","marine_thunderstorm_flag","station_temperature","station_humidity","station_wind_speed","station_rainfall_today"]}],"filters":{"entity":"all","parameter":"all","feed":"all","limit":80},"storage":{"mode":"versioned-snapshot","snapshot_generated_at":"2026-08-22T17:51:59.642Z"},"data_status":{"generated_at":"2026-08-22T17:51:59.642Z","freshness":"stale","is_current":false,"row_count":83,"current_row_count":0,"expired_row_count":0,"row_freshness_counts":{"fresh":0,"aging":0,"stale":83,"expired":0,"unknown":0}}}