{"title":"Enjoy Thai Land signal layer","description":"Explainable Thailand signals computed from the entity registry, normalized observations, and explicit trust rules.","generated_at":"2026-08-22T17:51:47.363Z","entity_count":62,"signal_count":741,"active_family_count":41,"queued_family_count":0,"families":{"active":[{"id":"aqi_risk","name":"AQI risk","status":"active","kind":"live_observation","note":"Turns normalized Air4Thai AQI observations into a place-level outdoor risk signal.","dependsOn":["air4thai-aqi"],"output":"Destination and hotel-area comfort risk."},{"id":"outdoor_comfort","name":"Outdoor comfort","status":"active","kind":"live_observation","note":"Combines AQI and PM2.5 into an explainable outdoor-comfort signal for day planning.","dependsOn":["air4thai-aqi"],"output":"Walkability and outdoor-heavy plan fit."},{"id":"source_confidence","name":"Source confidence","status":"active","kind":"seed_plus_live","note":"Blends entity source confidence, source count, and live observation freshness into a trust signal.","dependsOn":["entity-registry","air4thai-aqi","gdacs-disaster-context","usgs-thailand-earthquakes"],"output":"Why the graph answer is or is not trustworthy today."},{"id":"regional_disaster_context","name":"Regional disaster context","status":"active","kind":"context","note":"Uses GDACS hazard groups as a route-confidence context layer without pretending it is a local place verdict.","dependsOn":["gdacs-disaster-context"],"output":"Graph-wide route and confidence caution."},{"id":"regional_earthquake_context","name":"Regional earthquake context","status":"active","kind":"context","note":"Uses the bounded USGS query as a light route-breaking context signal for Thailand-region events.","dependsOn":["usgs-thailand-earthquakes"],"output":"Graph-wide disruption context."},{"id":"rain_risk","name":"Rain risk","status":"active","kind":"live_observation","note":"Uses live TMD forecast, warning, and station-weather observations to compute destination and route rain fit.","dependsOn":["tmd-weather-surface"],"output":"Destination fit and route breakage."},{"id":"flight_delay_risk","name":"Flight weather and airport delay risk","status":"active","kind":"live_observation","note":"Uses public METAR and TAF weather-operability context for Thai airports. This is airport weather burden, not airline on-time performance truth.","dependsOn":["aviationweather-airport-status"],"output":"Airport weather burden and flight-operability context for route planning."},{"id":"marine_warning_risk","name":"Marine warning and sea-state risk","status":"active","kind":"live_observation","note":"Uses public TMD marine text, wind, and wave context for coastal destinations and ferry-related anchors. This is sea-state caution, not operator closure or seat inventory truth.","dependsOn":["tmd-weather-surface","tmd-shipping-forecast"],"output":"Coastal boat-day caution and ferry-fragility context."},{"id":"berth_operability_context","name":"Berth operability context","status":"active","kind":"live_observation","note":"Uses the public Marine Department berth-status surface to show whether tracked coastal anchors have named public port selectors and visible ship-visit evidence on the official page. This is berth and movement context, not ferry schedule, ticket, or seat truth.","dependsOn":["marine-department-berth-status"],"output":"Coastal port and public berth-status support for ferry-sensitive planning."},{"id":"pier_transfer_support","name":"Pier transfer support","status":"active","kind":"derived_live","note":"Uses public Namtang stop and mode structure around piers and coastal anchors to show whether ferry moves have real transfer support behind them. This is transfer-structure support, not operator schedule or queue-length truth.","dependsOn":["namtang-transit-structure"],"output":"Public-water-transport access strength for ferry and coastal planning."},{"id":"airport_transfer_support","name":"Airport transfer support","status":"active","kind":"derived_live","note":"Uses public Namtang stop and mode structure around airport anchors to show whether flight-based plans have real ground-access support behind them. This is airport transfer support, not live airline board, gate, or queue-length truth.","dependsOn":["namtang-transit-structure"],"output":"Airport-ground-access strength for route and stay planning."},{"id":"airport_ground_service_support","name":"Airport ground-service support","status":"active","kind":"live_observation","note":"Uses public AOT airport transport pages to score official taxi, Grab, rental-counter, pickup-rule, and ground-service guidance where those pages are publicly available. This is airport ground-service context, not live queue, ETA, or rental inventory truth.","dependsOn":["aot-airport-ground-services"],"output":"Official airport pickup-rule and ground-service support for route and stay planning."},{"id":"airport_board_surface_support","name":"Airport board-surface support","status":"active","kind":"live_observation","note":"Uses public AOT flight-status pages to score whether a traveler can self-check an official passenger board surface. 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.","dependsOn":["aot-airport-flight-board-surface"],"output":"Official passenger self-serve board visibility for airport, stay, and route planning."},{"id":"airport_scale_context","name":"Airport scale context","status":"active","kind":"live_observation","note":"Uses the public AOT fiscal traffic workbook to score official airport passenger and aircraft-movement scale context. This is airport scale and resilience context, not live on-time, queue, gate, or inventory truth.","dependsOn":["aot-airport-traffic-stats"],"output":"Official airport scale and major-airport context for destination, stay, and route planning."},{"id":"airport_environmental_support","name":"Airport environmental support","status":"active","kind":"live_observation","note":"Uses the SET-hosted AOT factsheet and annual report disclosure snapshot to score airport environmental-governance, community-contact, and airport-noise support context. This is institutional disclosure support, not live measured sound-level truth.","dependsOn":["aot-airport-environment-support"],"output":"Official airport environmental-governance and community-support context for airport-linked stay and route planning."},{"id":"rail_feasibility","name":"Rail feasibility","status":"active","kind":"derived_live","note":"Uses public Namtang stop and mode structure around destinations, hotel areas, and station anchors to show whether a rail-linked plan is structurally real. This is rail-support context, not live seat, delay, or operator-disruption truth.","dependsOn":["namtang-transit-structure"],"output":"Rail-linked destination and stay support for route and base planning."},{"id":"official_rail_presence","name":"Official rail presence","status":"active","kind":"live_observation","note":"Uses the public SRT station-list surface to confirm official rail presence around destinations and selected hotel areas. This is operator-backed station presence, not live train timing or seat truth.","dependsOn":["srt-official-station-presence"],"output":"Official operator-backed rail presence for destination and route confidence."},{"id":"official_bus_terminal_support","name":"Official bus-terminal support","status":"active","kind":"live_observation","note":"Uses the public MOT passenger-terminal master CSV to confirm official overland bus-terminal presence around destinations, hotel areas, and bus-terminal anchors. This is terminal-master support, not live departure, seat, or booking truth.","dependsOn":["mot-bus-terminal-support"],"output":"Official overland bus-terminal support for destination, stay, and route confidence."},{"id":"official_intercity_bus_support","name":"Official intercity bus support","status":"active","kind":"live_observation","note":"Uses the public BKS station, office, stop, and ticket-point CSV to confirm official intercity-bus support around destinations, hotel areas, and overland anchors. This is official station and ticket-point presence, not live departure, seat, or booking truth.","dependsOn":["bks-station-ticket-support"],"output":"Official BKS intercity-bus support for destination, stay, and route confidence."},{"id":"official_intercity_bus_search_support","name":"Official intercity-bus search support","status":"active","kind":"live_observation","note":"Uses the public BKS booking/search destination-selector surface to confirm whether tracked destinations are actually present in the official intercity-bus route-search flow from Bangkok origins. This is search-surface support, not live departure, seat, or booking truth.","dependsOn":["bks-timetable-search-surface"],"output":"Official BKS public route-search support for destination, stay, and route confidence."},{"id":"official_transport_complaint_support","name":"Official transport complaint support","status":"active","kind":"live_observation","note":"Uses the public DLT 1584 fiscal-year complaint workbooks to score official complaint recourse and transport-burden context around Bangkok, regional, and overland traveler entities. This is passenger-protection and burden context, not local realtime service quality or dispatch truth.","dependsOn":["dlt-1584-complaint-stats"],"output":"Official complaint recourse and transport-burden context for destination, stay, and route confidence."},{"id":"official_taxi_oversight_support","name":"Official taxi-oversight support","status":"active","kind":"live_observation","note":"Uses the public DLT GPS passenger pages and Taxi OK / Taxi VIP project notices to score official regulated-taxi oversight, complaint, and station-search support. This is oversight and passenger-protection context, not live vehicle location, dispatch, ETA, or raw taxi GPS truth.","dependsOn":["dlt-gps-taxi-support"],"output":"Official regulated-taxi oversight support for city-base, airport-linked, stay, and route confidence."},{"id":"official_motorcycle_taxi_support","name":"Official motorcycle-taxi support","status":"active","kind":"live_observation","note":"Uses the public DLT/data.go.th Bangkok motorcycle-taxi dataset to score official stand and driver support around Bangkok city-base, hotel-area, terminal, and airport-linked entities. This is supply and stand coverage context, not live availability, dispatch, or queue truth.","dependsOn":["bangkok-motorcycle-taxi-support"],"output":"Official Bangkok last-mile motorcycle-taxi support for destination, stay, and route confidence."},{"id":"taxi_pickup_dropoff_support","name":"Taxi pickup and dropoff support","status":"active","kind":"live_observation","note":"Uses the public OTP monthly taxi GPS analytics and top pickup/dropoff area rankings to score aggregate Bangkok taxi-demand and hotspot support around city-base, hotel-area, terminal, and airport-linked entities. This is monthly aggregate demand context, not live dispatch, ETA, queue, or raw trip truth.","dependsOn":["otp-taxi-demand-analytics"],"output":"Bangkok taxi-demand and hotspot support for destination, stay, and route confidence."},{"id":"official_pier_support","name":"Official pier support","status":"active","kind":"live_observation","note":"Uses the public Marine Department berth registry to confirm official passenger-pier support around coastal destinations, hotel areas, and pier anchors. This is berth-registry and infrastructure support, not live ferry schedule, closure, queue, or seat truth.","dependsOn":["marine-department-pier-registry"],"output":"Official coastal and passenger-pier support for destination, stay, route, and ferry confidence."},{"id":"urban_rapid_transit_support","name":"Urban rapid-transit support","status":"active","kind":"live_observation","note":"Uses public BTS and MRTA route-map and service pages to confirm official Bangkok rapid-transit support for core city-base entities. This is route-map and service-page support, not live headway, crowding, or outage truth.","dependsOn":["bangkok-rapid-transit-official-pages"],"output":"Official Bangkok rapid-transit support for city-base, stay, and route planning."},{"id":"urban_bus_operator_support","name":"Urban bus-operator support","status":"active","kind":"live_observation","note":"Uses the public Thai Smile Group branch and depot locator to confirm Bangkok urban bus operator footprint around selected traveler entities. This is operator footprint and support context, not realtime vehicle, ETA, crowding, or outage truth.","dependsOn":["thai-smile-group-branch-locator"],"output":"Bangkok urban bus operator support for city-base, stay, and route planning."},{"id":"thai_gold_reference_price","name":"Thai gold reference price","status":"active","kind":"live_observation","note":"Uses the published Gold Traders Association latest-price JSON surface to expose the national Thai domestic 96.5% gold quote in THB per 1 baht-weight. This is a published retail-reference layer, not a live trading feed or local shop-inventory surface.","dependsOn":["gta-gold-reference-price"],"output":"National Thai gold reference availability, freshness, and spread context."},{"id":"thai_gold_fx_pressure","name":"Thai gold FX pressure","status":"active","kind":"derived_live","note":"Uses the Bank of Thailand daily-average USD/THB API when configured, and otherwise falls back to the Gold Traders Association embedded FX field, alongside recent GTA quote movement, to explain whether the Thai domestic gold quote feels calmer or more pressured. This is context, not investment advice.","dependsOn":["gta-gold-reference-price","bot-usd-thb-reference"],"output":"Exchange-rate and recent-quote pressure behind the Thai retail reference price."},{"id":"thai_gold_buying_friction","name":"Thai gold buying friction","status":"active","kind":"seed_plus_live","note":"Combines the national Gold Traders Association quote with city buying-context rules so Bangkok, Chiang Mai, Phuket, Pattaya, and Hat Yai are explained as comparison-shopping or tourist-friction contexts instead of fake province-specific price feeds.","dependsOn":["gta-gold-reference-price"],"output":"City-by-city gold buying context and friction around the national Thai reference quote."},{"id":"flood_water_risk","name":"Flood and water risk","status":"active","kind":"live_observation","note":"Uses live Thaiwater water-quality observations as a river and canal caution layer where current station coverage exists.","dependsOn":["thaiwater-water-quality"],"output":"Flood, water quality, and marine caution."},{"id":"noise_risk","name":"Noise risk","status":"active","kind":"live_observation","note":"Uses live Noise4Thai ambient-noise observations for hotel-base comfort and neighborhood nuisance signals.","dependsOn":["noise4thai-ambient-noise"],"output":"Hotel base and neighborhood comfort."},{"id":"road_safety_risk","name":"Road safety risk","status":"active","kind":"live_observation","note":"Uses ThaiRSC road-casualty observations to compute province and route road-safety caution.","dependsOn":["thairsc-road-safety"],"output":"Route burden and accident caution."},{"id":"civic_friction","name":"Civic friction","status":"active","kind":"live_observation","note":"Uses Bangkok Open Data district complaint, resolution, and star-rating stats as a slower-moving nuisance and service-friction layer for Bangkok and its main hotel areas.","dependsOn":["bangkok-civic-complaint-stats"],"output":"Bangkok nuisance, complaint burden, and service-friction context."},{"id":"bangkok_flood_friction","name":"Bangkok flood friction","status":"active","kind":"live_observation","note":"Uses the public Bangkok flood-monitoring current-event surface as a citywide flood-friction layer for Bangkok destination, stay, and route planning. This is Bangkok-only public flood-event context, not a province-by-province Thailand flood service.","dependsOn":["bangkok-flood-monitoring-system"],"output":"Bangkok-only route, stay, and transfer burden during current flood events."},{"id":"highway_transfer_friction","name":"Highway transfer friction","status":"active","kind":"derived_live","note":"Combines DOH public CCTV region support with official EXAT expressway support surfaces to explain whether major overland moves have official observability and motorway-support context behind them. This is support and friction context, not live speed, queue, lane, or incident truth.","dependsOn":["doh-highway-traffic-support","exat-expressway-support"],"output":"Bangkok-linked and regional overland friction support for route and stay planning."},{"id":"spa_license_support","name":"Spa license support","status":"active","kind":"live_observation","note":"Uses the public HSS health-establishment directory and spa-premium surfaces to expose whether official spa and massage license-lookup context exists behind wellness-heavy traveler anchors. This is licensing-support context, not live booking, treatment quality, or venue popularity truth.","dependsOn":["hss-spa-license-support"],"output":"Wellness-license confidence for destination and stay planning."},{"id":"medical_fallback_support","name":"Medical fallback support","status":"active","kind":"live_observation","note":"Uses public MOPH and HS4 facility surfaces to expose whether official hospital and facility-lookup context exists behind traveler fallback planning. This is medical-support context, not live bed, wait-time, dispatch, or specialist-availability truth.","dependsOn":["moph-health-facility-support"],"output":"Destination and stay fallback-support strength when travelers need formal healthcare context."},{"id":"park_access_context","name":"Park access context","status":"active","kind":"live_observation","note":"Uses public DNP tourism dataset surfaces to expose whether national-park and protected-area planning has official dataset support behind it. This is park-planning context, not live closure, capacity, or ranger-availability truth.","dependsOn":["dnp-park-tourism-support"],"output":"Protected-area and nature-trip planning confidence for destination and route decisions."},{"id":"ferry_fragility","name":"Ferry fragility","status":"active","kind":"derived_live","note":"Blends live TMD weather context with pier confidence to score island-chain fragility honestly.","dependsOn":["tmd-weather-surface","source_confidence"],"output":"Island transfer reliability."},{"id":"transport_friction","name":"Transport friction","status":"active","kind":"derived_live","note":"Blends current weather, road burden, official highway support, source confidence, and Namtang transit-structure support into a live movement-friction family.","dependsOn":["rain_risk","road_safety_risk","highway_transfer_friction","source_confidence","namtang-transit-structure"],"output":"Movement difficulty and backup strength."}],"queued":[],"all":[{"id":"aqi_risk","name":"AQI risk","status":"active","kind":"live_observation","note":"Turns normalized Air4Thai AQI observations into a place-level outdoor risk signal.","dependsOn":["air4thai-aqi"],"output":"Destination and hotel-area comfort risk."},{"id":"outdoor_comfort","name":"Outdoor comfort","status":"active","kind":"live_observation","note":"Combines AQI and PM2.5 into an explainable outdoor-comfort signal for day planning.","dependsOn":["air4thai-aqi"],"output":"Walkability and outdoor-heavy plan fit."},{"id":"source_confidence","name":"Source confidence","status":"active","kind":"seed_plus_live","note":"Blends entity source confidence, source count, and live observation freshness into a trust signal.","dependsOn":["entity-registry","air4thai-aqi","gdacs-disaster-context","usgs-thailand-earthquakes"],"output":"Why the graph answer is or is not trustworthy today."},{"id":"regional_disaster_context","name":"Regional disaster context","status":"active","kind":"context","note":"Uses GDACS hazard groups as a route-confidence context layer without pretending it is a local place verdict.","dependsOn":["gdacs-disaster-context"],"output":"Graph-wide route and confidence caution."},{"id":"regional_earthquake_context","name":"Regional earthquake context","status":"active","kind":"context","note":"Uses the bounded USGS query as a light route-breaking context signal for Thailand-region events.","dependsOn":["usgs-thailand-earthquakes"],"output":"Graph-wide disruption context."},{"id":"rain_risk","name":"Rain risk","status":"active","kind":"live_observation","note":"Uses live TMD forecast, warning, and station-weather observations to compute destination and route rain fit.","dependsOn":["tmd-weather-surface"],"output":"Destination fit and route breakage."},{"id":"flight_delay_risk","name":"Flight weather and airport delay risk","status":"active","kind":"live_observation","note":"Uses public METAR and TAF weather-operability context for Thai airports. This is airport weather burden, not airline on-time performance truth.","dependsOn":["aviationweather-airport-status"],"output":"Airport weather burden and flight-operability context for route planning."},{"id":"marine_warning_risk","name":"Marine warning and sea-state risk","status":"active","kind":"live_observation","note":"Uses public TMD marine text, wind, and wave context for coastal destinations and ferry-related anchors. This is sea-state caution, not operator closure or seat inventory truth.","dependsOn":["tmd-weather-surface","tmd-shipping-forecast"],"output":"Coastal boat-day caution and ferry-fragility context."},{"id":"berth_operability_context","name":"Berth operability context","status":"active","kind":"live_observation","note":"Uses the public Marine Department berth-status surface to show whether tracked coastal anchors have named public port selectors and visible ship-visit evidence on the official page. This is berth and movement context, not ferry schedule, ticket, or seat truth.","dependsOn":["marine-department-berth-status"],"output":"Coastal port and public berth-status support for ferry-sensitive planning."},{"id":"pier_transfer_support","name":"Pier transfer support","status":"active","kind":"derived_live","note":"Uses public Namtang stop and mode structure around piers and coastal anchors to show whether ferry moves have real transfer support behind them. This is transfer-structure support, not operator schedule or queue-length truth.","dependsOn":["namtang-transit-structure"],"output":"Public-water-transport access strength for ferry and coastal planning."},{"id":"airport_transfer_support","name":"Airport transfer support","status":"active","kind":"derived_live","note":"Uses public Namtang stop and mode structure around airport anchors to show whether flight-based plans have real ground-access support behind them. This is airport transfer support, not live airline board, gate, or queue-length truth.","dependsOn":["namtang-transit-structure"],"output":"Airport-ground-access strength for route and stay planning."},{"id":"airport_ground_service_support","name":"Airport ground-service support","status":"active","kind":"live_observation","note":"Uses public AOT airport transport pages to score official taxi, Grab, rental-counter, pickup-rule, and ground-service guidance where those pages are publicly available. This is airport ground-service context, not live queue, ETA, or rental inventory truth.","dependsOn":["aot-airport-ground-services"],"output":"Official airport pickup-rule and ground-service support for route and stay planning."},{"id":"airport_board_surface_support","name":"Airport board-surface support","status":"active","kind":"live_observation","note":"Uses public AOT flight-status pages to score whether a traveler can self-check an official passenger board surface. 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.","dependsOn":["aot-airport-flight-board-surface"],"output":"Official passenger self-serve board visibility for airport, stay, and route planning."},{"id":"airport_scale_context","name":"Airport scale context","status":"active","kind":"live_observation","note":"Uses the public AOT fiscal traffic workbook to score official airport passenger and aircraft-movement scale context. This is airport scale and resilience context, not live on-time, queue, gate, or inventory truth.","dependsOn":["aot-airport-traffic-stats"],"output":"Official airport scale and major-airport context for destination, stay, and route planning."},{"id":"airport_environmental_support","name":"Airport environmental support","status":"active","kind":"live_observation","note":"Uses the SET-hosted AOT factsheet and annual report disclosure snapshot to score airport environmental-governance, community-contact, and airport-noise support context. This is institutional disclosure support, not live measured sound-level truth.","dependsOn":["aot-airport-environment-support"],"output":"Official airport environmental-governance and community-support context for airport-linked stay and route planning."},{"id":"rail_feasibility","name":"Rail feasibility","status":"active","kind":"derived_live","note":"Uses public Namtang stop and mode structure around destinations, hotel areas, and station anchors to show whether a rail-linked plan is structurally real. This is rail-support context, not live seat, delay, or operator-disruption truth.","dependsOn":["namtang-transit-structure"],"output":"Rail-linked destination and stay support for route and base planning."},{"id":"official_rail_presence","name":"Official rail presence","status":"active","kind":"live_observation","note":"Uses the public SRT station-list surface to confirm official rail presence around destinations and selected hotel areas. This is operator-backed station presence, not live train timing or seat truth.","dependsOn":["srt-official-station-presence"],"output":"Official operator-backed rail presence for destination and route confidence."},{"id":"official_bus_terminal_support","name":"Official bus-terminal support","status":"active","kind":"live_observation","note":"Uses the public MOT passenger-terminal master CSV to confirm official overland bus-terminal presence around destinations, hotel areas, and bus-terminal anchors. This is terminal-master support, not live departure, seat, or booking truth.","dependsOn":["mot-bus-terminal-support"],"output":"Official overland bus-terminal support for destination, stay, and route confidence."},{"id":"official_intercity_bus_support","name":"Official intercity bus support","status":"active","kind":"live_observation","note":"Uses the public BKS station, office, stop, and ticket-point CSV to confirm official intercity-bus support around destinations, hotel areas, and overland anchors. This is official station and ticket-point presence, not live departure, seat, or booking truth.","dependsOn":["bks-station-ticket-support"],"output":"Official BKS intercity-bus support for destination, stay, and route confidence."},{"id":"official_intercity_bus_search_support","name":"Official intercity-bus search support","status":"active","kind":"live_observation","note":"Uses the public BKS booking/search destination-selector surface to confirm whether tracked destinations are actually present in the official intercity-bus route-search flow from Bangkok origins. This is search-surface support, not live departure, seat, or booking truth.","dependsOn":["bks-timetable-search-surface"],"output":"Official BKS public route-search support for destination, stay, and route confidence."},{"id":"official_transport_complaint_support","name":"Official transport complaint support","status":"active","kind":"live_observation","note":"Uses the public DLT 1584 fiscal-year complaint workbooks to score official complaint recourse and transport-burden context around Bangkok, regional, and overland traveler entities. This is passenger-protection and burden context, not local realtime service quality or dispatch truth.","dependsOn":["dlt-1584-complaint-stats"],"output":"Official complaint recourse and transport-burden context for destination, stay, and route confidence."},{"id":"official_taxi_oversight_support","name":"Official taxi-oversight support","status":"active","kind":"live_observation","note":"Uses the public DLT GPS passenger pages and Taxi OK / Taxi VIP project notices to score official regulated-taxi oversight, complaint, and station-search support. This is oversight and passenger-protection context, not live vehicle location, dispatch, ETA, or raw taxi GPS truth.","dependsOn":["dlt-gps-taxi-support"],"output":"Official regulated-taxi oversight support for city-base, airport-linked, stay, and route confidence."},{"id":"official_motorcycle_taxi_support","name":"Official motorcycle-taxi support","status":"active","kind":"live_observation","note":"Uses the public DLT/data.go.th Bangkok motorcycle-taxi dataset to score official stand and driver support around Bangkok city-base, hotel-area, terminal, and airport-linked entities. This is supply and stand coverage context, not live availability, dispatch, or queue truth.","dependsOn":["bangkok-motorcycle-taxi-support"],"output":"Official Bangkok last-mile motorcycle-taxi support for destination, stay, and route confidence."},{"id":"taxi_pickup_dropoff_support","name":"Taxi pickup and dropoff support","status":"active","kind":"live_observation","note":"Uses the public OTP monthly taxi GPS analytics and top pickup/dropoff area rankings to score aggregate Bangkok taxi-demand and hotspot support around city-base, hotel-area, terminal, and airport-linked entities. This is monthly aggregate demand context, not live dispatch, ETA, queue, or raw trip truth.","dependsOn":["otp-taxi-demand-analytics"],"output":"Bangkok taxi-demand and hotspot support for destination, stay, and route confidence."},{"id":"official_pier_support","name":"Official pier support","status":"active","kind":"live_observation","note":"Uses the public Marine Department berth registry to confirm official passenger-pier support around coastal destinations, hotel areas, and pier anchors. This is berth-registry and infrastructure support, not live ferry schedule, closure, queue, or seat truth.","dependsOn":["marine-department-pier-registry"],"output":"Official coastal and passenger-pier support for destination, stay, route, and ferry confidence."},{"id":"urban_rapid_transit_support","name":"Urban rapid-transit support","status":"active","kind":"live_observation","note":"Uses public BTS and MRTA route-map and service pages to confirm official Bangkok rapid-transit support for core city-base entities. This is route-map and service-page support, not live headway, crowding, or outage truth.","dependsOn":["bangkok-rapid-transit-official-pages"],"output":"Official Bangkok rapid-transit support for city-base, stay, and route planning."},{"id":"urban_bus_operator_support","name":"Urban bus-operator support","status":"active","kind":"live_observation","note":"Uses the public Thai Smile Group branch and depot locator to confirm Bangkok urban bus operator footprint around selected traveler entities. This is operator footprint and support context, not realtime vehicle, ETA, crowding, or outage truth.","dependsOn":["thai-smile-group-branch-locator"],"output":"Bangkok urban bus operator support for city-base, stay, and route planning."},{"id":"thai_gold_reference_price","name":"Thai gold reference price","status":"active","kind":"live_observation","note":"Uses the published Gold Traders Association latest-price JSON surface to expose the national Thai domestic 96.5% gold quote in THB per 1 baht-weight. This is a published retail-reference layer, not a live trading feed or local shop-inventory surface.","dependsOn":["gta-gold-reference-price"],"output":"National Thai gold reference availability, freshness, and spread context."},{"id":"thai_gold_fx_pressure","name":"Thai gold FX pressure","status":"active","kind":"derived_live","note":"Uses the Bank of Thailand daily-average USD/THB API when configured, and otherwise falls back to the Gold Traders Association embedded FX field, alongside recent GTA quote movement, to explain whether the Thai domestic gold quote feels calmer or more pressured. This is context, not investment advice.","dependsOn":["gta-gold-reference-price","bot-usd-thb-reference"],"output":"Exchange-rate and recent-quote pressure behind the Thai retail reference price."},{"id":"thai_gold_buying_friction","name":"Thai gold buying friction","status":"active","kind":"seed_plus_live","note":"Combines the national Gold Traders Association quote with city buying-context rules so Bangkok, Chiang Mai, Phuket, Pattaya, and Hat Yai are explained as comparison-shopping or tourist-friction contexts instead of fake province-specific price feeds.","dependsOn":["gta-gold-reference-price"],"output":"City-by-city gold buying context and friction around the national Thai reference quote."},{"id":"flood_water_risk","name":"Flood and water risk","status":"active","kind":"live_observation","note":"Uses live Thaiwater water-quality observations as a river and canal caution layer where current station coverage exists.","dependsOn":["thaiwater-water-quality"],"output":"Flood, water quality, and marine caution."},{"id":"noise_risk","name":"Noise risk","status":"active","kind":"live_observation","note":"Uses live Noise4Thai ambient-noise observations for hotel-base comfort and neighborhood nuisance signals.","dependsOn":["noise4thai-ambient-noise"],"output":"Hotel base and neighborhood comfort."},{"id":"road_safety_risk","name":"Road safety risk","status":"active","kind":"live_observation","note":"Uses ThaiRSC road-casualty observations to compute province and route road-safety caution.","dependsOn":["thairsc-road-safety"],"output":"Route burden and accident caution."},{"id":"civic_friction","name":"Civic friction","status":"active","kind":"live_observation","note":"Uses Bangkok Open Data district complaint, resolution, and star-rating stats as a slower-moving nuisance and service-friction layer for Bangkok and its main hotel areas.","dependsOn":["bangkok-civic-complaint-stats"],"output":"Bangkok nuisance, complaint burden, and service-friction context."},{"id":"bangkok_flood_friction","name":"Bangkok flood friction","status":"active","kind":"live_observation","note":"Uses the public Bangkok flood-monitoring current-event surface as a citywide flood-friction layer for Bangkok destination, stay, and route planning. This is Bangkok-only public flood-event context, not a province-by-province Thailand flood service.","dependsOn":["bangkok-flood-monitoring-system"],"output":"Bangkok-only route, stay, and transfer burden during current flood events."},{"id":"highway_transfer_friction","name":"Highway transfer friction","status":"active","kind":"derived_live","note":"Combines DOH public CCTV region support with official EXAT expressway support surfaces to explain whether major overland moves have official observability and motorway-support context behind them. This is support and friction context, not live speed, queue, lane, or incident truth.","dependsOn":["doh-highway-traffic-support","exat-expressway-support"],"output":"Bangkok-linked and regional overland friction support for route and stay planning."},{"id":"spa_license_support","name":"Spa license support","status":"active","kind":"live_observation","note":"Uses the public HSS health-establishment directory and spa-premium surfaces to expose whether official spa and massage license-lookup context exists behind wellness-heavy traveler anchors. This is licensing-support context, not live booking, treatment quality, or venue popularity truth.","dependsOn":["hss-spa-license-support"],"output":"Wellness-license confidence for destination and stay planning."},{"id":"medical_fallback_support","name":"Medical fallback support","status":"active","kind":"live_observation","note":"Uses public MOPH and HS4 facility surfaces to expose whether official hospital and facility-lookup context exists behind traveler fallback planning. This is medical-support context, not live bed, wait-time, dispatch, or specialist-availability truth.","dependsOn":["moph-health-facility-support"],"output":"Destination and stay fallback-support strength when travelers need formal healthcare context."},{"id":"park_access_context","name":"Park access context","status":"active","kind":"live_observation","note":"Uses public DNP tourism dataset surfaces to expose whether national-park and protected-area planning has official dataset support behind it. This is park-planning context, not live closure, capacity, or ranger-availability truth.","dependsOn":["dnp-park-tourism-support"],"output":"Protected-area and nature-trip planning confidence for destination and route decisions."},{"id":"ferry_fragility","name":"Ferry fragility","status":"active","kind":"derived_live","note":"Blends live TMD weather context with pier confidence to score island-chain fragility honestly.","dependsOn":["tmd-weather-surface","source_confidence"],"output":"Island transfer reliability."},{"id":"transport_friction","name":"Transport friction","status":"active","kind":"derived_live","note":"Blends current weather, road burden, official highway support, source confidence, and Namtang transit-structure support into a live movement-friction family.","dependsOn":["rain_risk","road_safety_risk","highway_transfer_friction","source_confidence","namtang-transit-structure"],"output":"Movement difficulty and backup strength."}]},"signals":[{"entity_id":"ao-nang","entity_name":"Ao Nang","entity_type":"hotel_area","entity_path":"/entities/ao-nang/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"ao-nang_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":16,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.5 m, thunderstorm wave height 3.0 m, and wind around 30.0 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_ao-nang_marine_wave_height_average","tmd-shipping-forecast_ao-nang_marine_wave_height_thunder","tmd-shipping-forecast_ao-nang_marine_wind_speed_average","tmd-shipping-forecast_ao-nang_marine_thunderstorm_flag","tmd-shipping-forecast_ao-nang_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"ao-nang-pier","entity_name":"Ao Nang Pier","entity_type":"pier","entity_path":"/entities/ao-nang-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"ao-nang-pier_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":16,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.5 m, thunderstorm wave height 3.0 m, and wind around 30.0 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_ao-nang-pier_marine_wave_height_average","tmd-shipping-forecast_ao-nang-pier_marine_wave_height_thunder","tmd-shipping-forecast_ao-nang-pier_marine_wind_speed_average","tmd-shipping-forecast_ao-nang-pier_marine_thunderstorm_flag","tmd-shipping-forecast_ao-nang-pier_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"kata-karon","entity_name":"Kata / Karon","entity_type":"hotel_area","entity_path":"/entities/kata-karon/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"kata-karon_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":16,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.5 m, thunderstorm wave height 3.0 m, and wind around 30.0 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_kata-karon_marine_wave_height_average","tmd-shipping-forecast_kata-karon_marine_wave_height_thunder","tmd-shipping-forecast_kata-karon_marine_wind_speed_average","tmd-shipping-forecast_kata-karon_marine_thunderstorm_flag","tmd-shipping-forecast_kata-karon_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"krabi","entity_name":"Krabi","entity_type":"destination","entity_path":"/entities/krabi/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"krabi_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":16,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.5 m, thunderstorm wave height 3.0 m, and wind around 30.0 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_krabi_marine_wave_height_average","tmd-shipping-forecast_krabi_marine_wave_height_thunder","tmd-shipping-forecast_krabi_marine_wind_speed_average","tmd-shipping-forecast_krabi_marine_thunderstorm_flag","tmd-shipping-forecast_krabi_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"patong","entity_name":"Patong","entity_type":"hotel_area","entity_path":"/entities/patong/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"patong_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":16,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.5 m, thunderstorm wave height 3.0 m, and wind around 30.0 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_patong_marine_wave_height_average","tmd-shipping-forecast_patong_marine_wave_height_thunder","tmd-shipping-forecast_patong_marine_wind_speed_average","tmd-shipping-forecast_patong_marine_thunderstorm_flag","tmd-shipping-forecast_patong_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"phuket","entity_name":"Phuket","entity_type":"destination","entity_path":"/entities/phuket/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"phuket_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":16,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.5 m, thunderstorm wave height 3.0 m, and wind around 30.0 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_phuket_marine_wave_height_average","tmd-shipping-forecast_phuket_marine_wave_height_thunder","tmd-shipping-forecast_phuket_marine_wind_speed_average","tmd-shipping-forecast_phuket_marine_thunderstorm_flag","tmd-shipping-forecast_phuket_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"railay","entity_name":"Railay","entity_type":"hotel_area","entity_path":"/entities/railay/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"railay_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":16,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.5 m, thunderstorm wave height 3.0 m, and wind around 30.0 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_railay_marine_wave_height_average","tmd-shipping-forecast_railay_marine_wave_height_thunder","tmd-shipping-forecast_railay_marine_wind_speed_average","tmd-shipping-forecast_railay_marine_thunderstorm_flag","tmd-shipping-forecast_railay_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"rassada-pier","entity_name":"Rassada Pier","entity_type":"pier","entity_path":"/entities/rassada-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"rassada-pier_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":16,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.5 m, thunderstorm wave height 3.0 m, and wind around 30.0 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_rassada-pier_marine_wave_height_average","tmd-shipping-forecast_rassada-pier_marine_wave_height_thunder","tmd-shipping-forecast_rassada-pier_marine_wind_speed_average","tmd-shipping-forecast_rassada-pier_marine_thunderstorm_flag","tmd-shipping-forecast_rassada-pier_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"rawai-nai-harn","entity_name":"Rawai / Nai Harn","entity_type":"hotel_area","entity_path":"/entities/rawai-nai-harn/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"rawai-nai-harn_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":16,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.5 m, thunderstorm wave height 3.0 m, and wind around 30.0 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_rawai-nai-harn_marine_wave_height_average","tmd-shipping-forecast_rawai-nai-harn_marine_wave_height_thunder","tmd-shipping-forecast_rawai-nai-harn_marine_wind_speed_average","tmd-shipping-forecast_rawai-nai-harn_marine_thunderstorm_flag","tmd-shipping-forecast_rawai-nai-harn_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"donsak-pier","entity_name":"Donsak Pier","entity_type":"pier","entity_path":"/entities/donsak-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"donsak-pier_pier_transfer_support","signal_type":"pier_transfer_support","family_name":"Pier transfer support","basis":"derived_live","score":22,"severity":"critical","tone":"risk","label":"Pier transfer support is weak","reason":"Public transport structure around this coastal anchor shows 2 mapped stop(s), 1 mode group(s), 0 boat-linked stop(s), and 2 bus-linked stop(s). This is public transfer support, not operator schedule or queue-length truth.","source_count":2,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_donsak-pier_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a ferry day has enough public transfer structure behind it before you assume the pier move is easy.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"na-thon-pier","entity_name":"Na Thon Pier","entity_type":"pier","entity_path":"/entities/na-thon-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"na-thon-pier_pier_transfer_support","signal_type":"pier_transfer_support","family_name":"Pier transfer support","basis":"derived_live","score":22,"severity":"critical","tone":"risk","label":"Pier transfer support is weak","reason":"Public transport structure around this coastal anchor shows 2 mapped stop(s), 1 mode group(s), 0 boat-linked stop(s), and 2 bus-linked stop(s). This is public transfer support, not operator schedule or queue-length truth.","source_count":2,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_na-thon-pier_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a ferry day has enough public transfer structure behind it before you assume the pier move is easy.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"bophut-fishermans-village","entity_name":"Bophut / Fisherman's Village","entity_type":"hotel_area","entity_path":"/entities/bophut-fishermans-village/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"bophut-fishermans-village_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":24,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.0 m, thunderstorm wave height 2.0 m, and wind around 27.5 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_bophut-fishermans-village_marine_wave_height_average","tmd-shipping-forecast_bophut-fishermans-village_marine_wave_height_thunder","tmd-shipping-forecast_bophut-fishermans-village_marine_wind_speed_average","tmd-shipping-forecast_bophut-fishermans-village_marine_thunderstorm_flag","tmd-shipping-forecast_bophut-fishermans-village_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"chaweng","entity_name":"Chaweng","entity_type":"hotel_area","entity_path":"/entities/chaweng/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"chaweng_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":24,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.0 m, thunderstorm wave height 2.0 m, and wind around 27.5 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_chaweng_marine_wave_height_average","tmd-shipping-forecast_chaweng_marine_wave_height_thunder","tmd-shipping-forecast_chaweng_marine_wind_speed_average","tmd-shipping-forecast_chaweng_marine_thunderstorm_flag","tmd-shipping-forecast_chaweng_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"donsak-pier","entity_name":"Donsak Pier","entity_type":"pier","entity_path":"/entities/donsak-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"donsak-pier_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":24,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.0 m, thunderstorm wave height 2.0 m, and wind around 27.5 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_donsak-pier_marine_wave_height_average","tmd-shipping-forecast_donsak-pier_marine_wave_height_thunder","tmd-shipping-forecast_donsak-pier_marine_wind_speed_average","tmd-shipping-forecast_donsak-pier_marine_thunderstorm_flag","tmd-shipping-forecast_donsak-pier_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"koh-phangan","entity_name":"Koh Phangan","entity_type":"destination","entity_path":"/entities/koh-phangan/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"koh-phangan_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":24,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.0 m, thunderstorm wave height 2.0 m, and wind around 27.5 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_koh-phangan_marine_wave_height_average","tmd-shipping-forecast_koh-phangan_marine_wave_height_thunder","tmd-shipping-forecast_koh-phangan_marine_wind_speed_average","tmd-shipping-forecast_koh-phangan_marine_thunderstorm_flag","tmd-shipping-forecast_koh-phangan_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"koh-samui","entity_name":"Koh Samui","entity_type":"destination","entity_path":"/entities/koh-samui/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"koh-samui_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":24,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.0 m, thunderstorm wave height 2.0 m, and wind around 27.5 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_koh-samui_marine_wave_height_average","tmd-shipping-forecast_koh-samui_marine_wave_height_thunder","tmd-shipping-forecast_koh-samui_marine_wind_speed_average","tmd-shipping-forecast_koh-samui_marine_thunderstorm_flag","tmd-shipping-forecast_koh-samui_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"lamai","entity_name":"Lamai","entity_type":"hotel_area","entity_path":"/entities/lamai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"lamai_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":24,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.0 m, thunderstorm wave height 2.0 m, and wind around 27.5 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_lamai_marine_wave_height_average","tmd-shipping-forecast_lamai_marine_wave_height_thunder","tmd-shipping-forecast_lamai_marine_wind_speed_average","tmd-shipping-forecast_lamai_marine_thunderstorm_flag","tmd-shipping-forecast_lamai_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"na-thon-pier","entity_name":"Na Thon Pier","entity_type":"pier","entity_path":"/entities/na-thon-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"na-thon-pier_marine_warning_risk","signal_type":"marine_warning_risk","family_name":"Marine warning and sea-state risk","basis":"live_observation","score":24,"severity":"critical","tone":"risk","label":"Marine warning risk is high","reason":"Regional marine context shows wave height 2.0 m, thunderstorm wave height 2.0 m, and wind around 27.5 km/h, with thunderstorm wording present. This is sea-state caution, not live operator closure truth.","source_count":5,"source_names":["Thai Meteorological Department"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T01:00:00.000Z","observation_ids":["tmd-shipping-forecast_na-thon-pier_marine_wave_height_average","tmd-shipping-forecast_na-thon-pier_marine_wave_height_thunder","tmd-shipping-forecast_na-thon-pier_marine_wind_speed_average","tmd-shipping-forecast_na-thon-pier_marine_thunderstorm_flag","tmd-shipping-forecast_na-thon-pier_forecast_heavy_rain_flag"],"context_ids":[],"note":"Use this to judge coastal and pier fragility before assuming a ferry day is clean.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"koh-phangan","entity_name":"Koh Phangan","entity_type":"destination","entity_path":"/entities/koh-phangan/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"koh-phangan_pier_transfer_support","signal_type":"pier_transfer_support","family_name":"Pier transfer support","basis":"derived_live","score":25,"severity":"critical","tone":"risk","label":"Pier transfer support is weak","reason":"Public transport structure around this coastal anchor shows 2 mapped stop(s), 1 mode group(s), 0 boat-linked stop(s), and 2 bus-linked stop(s). This is public transfer support, not operator schedule or queue-length truth.","source_count":2,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_koh-phangan_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a ferry day has enough public transfer structure behind it before you assume the pier move is easy.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"koh-samui","entity_name":"Koh Samui","entity_type":"destination","entity_path":"/entities/koh-samui/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"koh-samui_pier_transfer_support","signal_type":"pier_transfer_support","family_name":"Pier transfer support","basis":"derived_live","score":25,"severity":"critical","tone":"risk","label":"Pier transfer support is weak","reason":"Public transport structure around this coastal anchor shows 2 mapped stop(s), 1 mode group(s), 0 boat-linked stop(s), and 2 bus-linked stop(s). This is public transfer support, not operator schedule or queue-length truth.","source_count":2,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_koh-samui_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a ferry day has enough public transfer structure behind it before you assume the pier move is easy.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"phuket-airport","entity_name":"Phuket Airport","entity_type":"airport","entity_path":"/entities/phuket-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"phuket-airport_airport_transfer_support","signal_type":"airport_transfer_support","family_name":"Airport transfer support","basis":"derived_live","score":32,"severity":"critical","tone":"risk","label":"Airport transfer support is weak","reason":"Public transport structure around this airport shows 1 mapped stop(s), 1 mode group(s), 0 rail-linked stop(s), 0 airport-link stop(s), and 1 bus-linked stop(s). This is airport-ground-access support, not live airline board or queue truth.","source_count":1,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_phuket-airport_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether the airport side of a route is structurally easy before assuming a cheap flight is low-friction.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"u-tapao-airport","entity_name":"U-Tapao Airport","entity_type":"airport","entity_path":"/entities/u-tapao-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"u-tapao-airport_airport_transfer_support","signal_type":"airport_transfer_support","family_name":"Airport transfer support","basis":"derived_live","score":32,"severity":"critical","tone":"risk","label":"Airport transfer support is weak","reason":"Public transport structure around this airport shows 1 mapped stop(s), 1 mode group(s), 0 rail-linked stop(s), 0 airport-link stop(s), and 1 bus-linked stop(s). This is airport-ground-access support, not live airline board or queue truth.","source_count":1,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_u-tapao-airport_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether the airport side of a route is structurally easy before assuming a cheap flight is low-friction.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"noise4thai-bangkok-roadside-cluster","entity_name":"Noise4Thai Bangkok roadside cluster","entity_type":"monitoring_cluster","entity_path":"/entities/noise4thai-bangkok-roadside-cluster/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"noise4thai-bangkok-roadside-cluster_noise_risk","signal_type":"noise_risk","family_name":"Noise risk","basis":"live_observation","score":34,"severity":"critical","tone":"risk","label":"Noise risk is high","reason":"Average Leq 24h is 71.6 dBA across 3 live Noise4Thai stations, peaking at 72.1 dBA.","source_count":3,"source_names":["PCD Noise4Thai"],"freshness_class":"expired","observed_at":"2026-08-22T17:00:00.000Z","expires_at":"2026-08-23T05:00:00.000Z","observation_ids":["noise4thai-ambient-noise_noise4thai-bangkok-roadside-cluster_noise_leq_24h_average"],"context_ids":[],"note":"Bangkok roadside-only Noise4Thai cluster.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"nimman","entity_name":"Nimman","entity_type":"hotel_area","entity_path":"/entities/nimman/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"nimman_rail_feasibility","signal_type":"rail_feasibility","family_name":"Rail feasibility","basis":"derived_live","score":37,"severity":"high","tone":"caution","label":"Rail feasibility is weak","reason":"Public transport structure around this hotel area shows 2 mapped stop(s), 1 rail-linked stop(s), 0 airport-link stop(s), and 1 bus-linked stop(s). This is rail-support context, not live seat, delay, or operator-disruption truth.","source_count":2,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_nimman_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a rail-linked base or route is structurally real before treating train logic as free convenience.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"pai","entity_name":"Pai","entity_type":"destination","entity_path":"/entities/pai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"pai_road_safety_risk","signal_type":"road_safety_risk","family_name":"Road safety risk","basis":"live_observation","score":37,"severity":"high","tone":"caution","label":"Road safety burden is high","reason":"28 deaths and 990 injuries are attached to this province proxy year to date. Province burden percentile 92","source_count":1,"source_names":["ThaiRSC Road Accident Center"],"freshness_class":"expired","observed_at":"2026-05-15T11:00:00.000Z","expires_at":"2026-05-16T11:00:00.000Z","observation_ids":["thairsc-road-safety_pai_road_casualty_total_ytd","thairsc-road-safety_pai_road_deaths_ytd","thairsc-road-safety_pai_road_injuries_ytd"],"context_ids":["thairsc-national-context"],"note":"This is a province-burden signal, not a per-road or per-kilometer crash model.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"central-hua-hin-khao-takiab","entity_name":"Central Hua Hin / Khao Takiab","entity_type":"hotel_area","entity_path":"/entities/central-hua-hin-khao-takiab/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"central-hua-hin-khao-takiab_rail_feasibility","signal_type":"rail_feasibility","family_name":"Rail feasibility","basis":"derived_live","score":39,"severity":"high","tone":"caution","label":"Rail feasibility is weak","reason":"Public transport structure around this hotel area shows 3 mapped stop(s), 1 rail-linked stop(s), 0 airport-link stop(s), and 2 bus-linked stop(s). This is rail-support context, not live seat, delay, or operator-disruption truth.","source_count":3,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_central-hua-hin-khao-takiab_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a rail-linked base or route is structurally real before treating train logic as free convenience.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"don-mueang-airport","entity_name":"Don Mueang Airport","entity_type":"airport","entity_path":"/entities/don-mueang-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"don-mueang-airport_official_motorcycle_taxi_support","signal_type":"official_motorcycle_taxi_support","family_name":"Official motorcycle-taxi support","basis":"live_observation","score":40,"severity":"high","tone":"caution","label":"Official motorcycle-taxi support is weak","reason":"The public DLT/data.go.th Bangkok motorcycle-taxi dataset currently shows 179 registered stand(s) and 1984 driver(s) for this support scope, across districts such as ดอนเมือง. This is official last-mile support coverage, not live motorcycle-taxi availability, queue, or dispatch truth.","source_count":1,"source_names":["Bangkok motorcycle taxi stands and drivers"],"freshness_class":"expired","observed_at":"2020-07-23T04:25:48.450Z","expires_at":"2020-08-22T04:25:48.450Z","observation_ids":["bangkok-motorcycle-taxi-support_don-mueang-airport_official_motorcycle_taxi_support_score"],"context_ids":[],"note":"Use this to distinguish Bangkok hotel areas, terminals, and airport-linked anchors with stronger official motorcycle-taxi last-mile coverage from places that rely only on rail, taxi, or generic city map logic.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"chiang-mai-airport","entity_name":"Chiang Mai Airport","entity_type":"airport","entity_path":"/entities/chiang-mai-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"chiang-mai-airport_airport_transfer_support","signal_type":"airport_transfer_support","family_name":"Airport transfer support","basis":"derived_live","score":41,"severity":"high","tone":"caution","label":"Airport transfer support is weak","reason":"Public transport structure around this airport shows 1 mapped stop(s), 1 mode group(s), 1 rail-linked stop(s), 0 airport-link stop(s), and 0 bus-linked stop(s). This is airport-ground-access support, not live airline board or queue truth.","source_count":1,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_chiang-mai-airport_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether the airport side of a route is structurally easy before assuming a cheap flight is low-friction.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"suvarnabhumi-airport","entity_name":"Suvarnabhumi Airport","entity_type":"airport","entity_path":"/entities/suvarnabhumi-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"suvarnabhumi-airport_official_motorcycle_taxi_support","signal_type":"official_motorcycle_taxi_support","family_name":"Official motorcycle-taxi support","basis":"live_observation","score":41,"severity":"high","tone":"caution","label":"Official motorcycle-taxi support is weak","reason":"The public DLT/data.go.th Bangkok motorcycle-taxi dataset currently shows 194 registered stand(s) and 2354 driver(s) for this support scope, across districts such as ลาดกระบัง. This is official last-mile support coverage, not live motorcycle-taxi availability, queue, or dispatch truth.","source_count":1,"source_names":["Bangkok motorcycle taxi stands and drivers"],"freshness_class":"expired","observed_at":"2020-07-23T04:25:48.450Z","expires_at":"2020-08-22T04:25:48.450Z","observation_ids":["bangkok-motorcycle-taxi-support_suvarnabhumi-airport_official_motorcycle_taxi_support_score"],"context_ids":[],"note":"Use this to distinguish Bangkok hotel areas, terminals, and airport-linked anchors with stronger official motorcycle-taxi last-mile coverage from places that rely only on rail, taxi, or generic city map logic.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"chiang-mai-airport","entity_name":"Chiang Mai Airport","entity_type":"airport","entity_path":"/entities/chiang-mai-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"chiang-mai-airport_airport_ground_service_support","signal_type":"airport_ground_service_support","family_name":"Airport ground-service support","basis":"live_observation","score":42,"severity":"high","tone":"caution","label":"Airport ground-service support is thin","reason":"Official AOT ground-service pages currently show rental across 1 supporting page(s). This is operator-backed airport pickup-rule and ground-service context, not live queue, ETA, or rental inventory truth.","source_count":1,"source_names":["AOT airport ground transport pages","AOT Chiang Mai car rental services"],"freshness_class":"expired","observed_at":"2026-05-15T11:11:26.060Z","expires_at":"2026-05-16T11:11:26.060Z","observation_ids":["aot-airport-ground-services_chiang-mai-airport_official_airport_ground_service_score"],"context_ids":[],"note":"Use this to judge whether an airport anchor has official taxi, Grab, rental, and pickup-rule support behind it before assuming the ground side of a flight day will be easy.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"phuket-airport","entity_name":"Phuket Airport","entity_type":"airport","entity_path":"/entities/phuket-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"phuket-airport_airport_ground_service_support","signal_type":"airport_ground_service_support","family_name":"Airport ground-service support","basis":"live_observation","score":42,"severity":"high","tone":"caution","label":"Airport ground-service support is thin","reason":"Official AOT ground-service pages currently show rental across 1 supporting page(s). This is operator-backed airport pickup-rule and ground-service context, not live queue, ETA, or rental inventory truth.","source_count":1,"source_names":["AOT airport ground transport pages","AOT Phuket car rental services"],"freshness_class":"expired","observed_at":"2026-05-15T11:11:26.060Z","expires_at":"2026-05-16T11:11:26.060Z","observation_ids":["aot-airport-ground-services_phuket-airport_official_airport_ground_service_score"],"context_ids":[],"note":"Use this to judge whether an airport anchor has official taxi, Grab, rental, and pickup-rule support behind it before assuming the ground side of a flight day will be easy.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"buriram","entity_name":"Buriram","entity_type":"destination","entity_path":"/entities/buriram/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"buriram_rail_feasibility","signal_type":"rail_feasibility","family_name":"Rail feasibility","basis":"derived_live","score":43,"severity":"high","tone":"caution","label":"Rail feasibility is thin","reason":"Public transport structure around this destination shows 2 mapped stop(s), 1 rail-linked stop(s), 0 airport-link stop(s), and 1 bus-linked stop(s). This is rail-support context, not live seat, delay, or operator-disruption truth.","source_count":2,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_buriram_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a rail-linked base or route is structurally real before treating train logic as free convenience.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"chiang-mai","entity_name":"Chiang Mai","entity_type":"destination","entity_path":"/entities/chiang-mai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"chiang-mai_rail_feasibility","signal_type":"rail_feasibility","family_name":"Rail feasibility","basis":"derived_live","score":43,"severity":"high","tone":"caution","label":"Rail feasibility is thin","reason":"Public transport structure around this destination shows 2 mapped stop(s), 1 rail-linked stop(s), 0 airport-link stop(s), and 1 bus-linked stop(s). This is rail-support context, not live seat, delay, or operator-disruption truth.","source_count":2,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_chiang-mai_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a rail-linked base or route is structurally real before treating train logic as free convenience.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"hat-yai","entity_name":"Hat Yai","entity_type":"destination","entity_path":"/entities/hat-yai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"hat-yai_rail_feasibility","signal_type":"rail_feasibility","family_name":"Rail feasibility","basis":"derived_live","score":43,"severity":"high","tone":"caution","label":"Rail feasibility is thin","reason":"Public transport structure around this destination shows 2 mapped stop(s), 1 rail-linked stop(s), 0 airport-link stop(s), and 1 bus-linked stop(s). This is rail-support context, not live seat, delay, or operator-disruption truth.","source_count":2,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_hat-yai_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a rail-linked base or route is structurally real before treating train logic as free convenience.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"air4thai-bangkok-urban-cluster","entity_name":"Air4Thai Bangkok urban cluster","entity_type":"monitoring_cluster","entity_path":"/entities/air4thai-bangkok-urban-cluster/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"air4thai-bangkok-urban-cluster_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_air4thai-bangkok-urban-cluster_water_quality_status_score","thaiwater-water-quality_air4thai-bangkok-urban-cluster_water_dissolved_oxygen_average","thaiwater-water-quality_air4thai-bangkok-urban-cluster_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"ari","entity_name":"Ari","entity_type":"hotel_area","entity_path":"/entities/ari/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"ari_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_ari_water_quality_status_score","thaiwater-water-quality_ari_water_dissolved_oxygen_average","thaiwater-water-quality_ari_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"bangkok_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_bangkok_water_quality_status_score","thaiwater-water-quality_bangkok_water_dissolved_oxygen_average","thaiwater-water-quality_bangkok_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"bangkok-mochit-2","entity_name":"Bangkok Mochit 2 Bus Terminal","entity_type":"bus_terminal","entity_path":"/entities/bangkok-mochit-2/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"bangkok-mochit-2_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_bangkok-mochit-2_water_quality_status_score","thaiwater-water-quality_bangkok-mochit-2_water_dissolved_oxygen_average","thaiwater-water-quality_bangkok-mochit-2_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"bts-asok","entity_name":"BTS Asok / MRT Sukhumvit","entity_type":"station","entity_path":"/entities/bts-asok/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"bts-asok_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_bts-asok_water_quality_status_score","thaiwater-water-quality_bts-asok_water_dissolved_oxygen_average","thaiwater-water-quality_bts-asok_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"don-mueang-airport","entity_name":"Don Mueang Airport","entity_type":"airport","entity_path":"/entities/don-mueang-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"don-mueang-airport_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_don-mueang-airport_water_quality_status_score","thaiwater-water-quality_don-mueang-airport_water_dissolved_oxygen_average","thaiwater-water-quality_don-mueang-airport_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"noise4thai-bangkok-roadside-cluster","entity_name":"Noise4Thai Bangkok roadside cluster","entity_type":"monitoring_cluster","entity_path":"/entities/noise4thai-bangkok-roadside-cluster/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"noise4thai-bangkok-roadside-cluster_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_noise4thai-bangkok-roadside-cluster_water_quality_status_score","thaiwater-water-quality_noise4thai-bangkok-roadside-cluster_water_dissolved_oxygen_average","thaiwater-water-quality_noise4thai-bangkok-roadside-cluster_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"riverside-old-town","entity_name":"Riverside / Old Town","entity_type":"hotel_area","entity_path":"/entities/riverside-old-town/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"riverside-old-town_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_riverside-old-town_water_quality_status_score","thaiwater-water-quality_riverside-old-town_water_dissolved_oxygen_average","thaiwater-water-quality_riverside-old-town_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"silom-sathorn","entity_name":"Silom / Sathorn","entity_type":"hotel_area","entity_path":"/entities/silom-sathorn/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"silom-sathorn_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_silom-sathorn_water_quality_status_score","thaiwater-water-quality_silom-sathorn_water_dissolved_oxygen_average","thaiwater-water-quality_silom-sathorn_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"sukhumvit","entity_name":"Sukhumvit","entity_type":"hotel_area","entity_path":"/entities/sukhumvit/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"sukhumvit_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_sukhumvit_water_quality_status_score","thaiwater-water-quality_sukhumvit_water_dissolved_oxygen_average","thaiwater-water-quality_sukhumvit_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"suvarnabhumi-airport","entity_name":"Suvarnabhumi Airport","entity_type":"airport","entity_path":"/entities/suvarnabhumi-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"suvarnabhumi-airport_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_suvarnabhumi-airport_water_quality_status_score","thaiwater-water-quality_suvarnabhumi-airport_water_dissolved_oxygen_average","thaiwater-water-quality_suvarnabhumi-airport_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"thaiwater-chao-phraya-bangkok","entity_name":"Thaiwater Chao Phraya Bangkok corridor","entity_type":"monitoring_cluster","entity_path":"/entities/thaiwater-chao-phraya-bangkok/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"thaiwater-chao-phraya-bangkok_flood_water_risk","signal_type":"flood_water_risk","family_name":"Flood and water risk","basis":"live_observation","score":44,"severity":"high","tone":"caution","label":"Water and flood-adjacent risk is elevated","reason":"Thaiwater status proxy scores 33 with dissolved oxygen 0.38 mg/L. This is a river and canal caution layer, not a full flood-stage model.","source_count":2,"source_names":["Thaiwater WaterQuality API"],"freshness_class":"expired","observed_at":"2026-08-22T17:40:00.000Z","expires_at":"2026-08-23T05:40:00.000Z","observation_ids":["thaiwater-water-quality_thaiwater-chao-phraya-bangkok_water_quality_status_score","thaiwater-water-quality_thaiwater-chao-phraya-bangkok_water_dissolved_oxygen_average","thaiwater-water-quality_thaiwater-chao-phraya-bangkok_water_quality_index_average"],"context_ids":[],"note":"Water risk is only emitted where current Thaiwater station coverage exists.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"air4thai-bangkok-urban-cluster","entity_name":"Air4Thai Bangkok urban cluster","entity_type":"monitoring_cluster","entity_path":"/entities/air4thai-bangkok-urban-cluster/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"air4thai-bangkok-urban-cluster_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"ao-nang","entity_name":"Ao Nang","entity_type":"hotel_area","entity_path":"/entities/ao-nang/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"ao-nang_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"ao-nang-pier","entity_name":"Ao Nang Pier","entity_type":"pier","entity_path":"/entities/ao-nang-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"ao-nang-pier_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"ari","entity_name":"Ari","entity_type":"hotel_area","entity_path":"/entities/ari/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"ari_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"ayutthaya","entity_name":"Ayutthaya","entity_type":"destination","entity_path":"/entities/ayutthaya/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"ayutthaya_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"bangkok","entity_name":"Bangkok","entity_type":"destination","entity_path":"/entities/bangkok/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"bangkok_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"bangkok-mochit-2","entity_name":"Bangkok Mochit 2 Bus Terminal","entity_type":"bus_terminal","entity_path":"/entities/bangkok-mochit-2/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"bangkok-mochit-2_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"bophut-fishermans-village","entity_name":"Bophut / Fisherman's Village","entity_type":"hotel_area","entity_path":"/entities/bophut-fishermans-village/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"bophut-fishermans-village_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"bts-asok","entity_name":"BTS Asok / MRT Sukhumvit","entity_type":"station","entity_path":"/entities/bts-asok/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"bts-asok_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"buriram","entity_name":"Buriram","entity_type":"destination","entity_path":"/entities/buriram/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"buriram_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"central-hua-hin-khao-takiab","entity_name":"Central Hua Hin / Khao Takiab","entity_type":"hotel_area","entity_path":"/entities/central-hua-hin-khao-takiab/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"central-hua-hin-khao-takiab_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"central-pattaya-jomtien","entity_name":"Central Pattaya / Jomtien","entity_type":"hotel_area","entity_path":"/entities/central-pattaya-jomtien/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"central-pattaya-jomtien_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"chanthaburi","entity_name":"Chanthaburi","entity_type":"destination","entity_path":"/entities/chanthaburi/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"chanthaburi_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"chaweng","entity_name":"Chaweng","entity_type":"hotel_area","entity_path":"/entities/chaweng/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"chaweng_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"chiang-mai","entity_name":"Chiang Mai","entity_type":"destination","entity_path":"/entities/chiang-mai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"chiang-mai_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"chiang-mai-airport","entity_name":"Chiang Mai Airport","entity_type":"airport","entity_path":"/entities/chiang-mai-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"chiang-mai-airport_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"chiang-rai","entity_name":"Chiang Rai","entity_type":"destination","entity_path":"/entities/chiang-rai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"chiang-rai_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"don-mueang-airport","entity_name":"Don Mueang Airport","entity_type":"airport","entity_path":"/entities/don-mueang-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"don-mueang-airport_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"donsak-pier","entity_name":"Donsak Pier","entity_type":"pier","entity_path":"/entities/donsak-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"donsak-pier_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"hat-yai","entity_name":"Hat Yai","entity_type":"destination","entity_path":"/entities/hat-yai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"hat-yai_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"hua-hin","entity_name":"Hua Hin / Cha-am","entity_type":"destination","entity_path":"/entities/hua-hin/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"hua-hin_rail_feasibility","signal_type":"rail_feasibility","family_name":"Rail feasibility","basis":"derived_live","score":46,"severity":"high","tone":"caution","label":"Rail feasibility is thin","reason":"Public transport structure around this destination shows 3 mapped stop(s), 1 rail-linked stop(s), 0 airport-link stop(s), and 2 bus-linked stop(s). This is rail-support context, not live seat, delay, or operator-disruption truth.","source_count":3,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_hua-hin_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a rail-linked base or route is structurally real before treating train logic as free convenience.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"hua-hin","entity_name":"Hua Hin / Cha-am","entity_type":"destination","entity_path":"/entities/hua-hin/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"hua-hin_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"hua-hin-station","entity_name":"Hua Hin Railway Station","entity_type":"station","entity_path":"/entities/hua-hin-station/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"hua-hin-station_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"isaan","entity_name":"Isaan","entity_type":"destination","entity_path":"/entities/isaan/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"isaan_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"kanchanaburi","entity_name":"Kanchanaburi","entity_type":"destination","entity_path":"/entities/kanchanaburi/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"kanchanaburi_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"kata-karon","entity_name":"Kata / Karon","entity_type":"hotel_area","entity_path":"/entities/kata-karon/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"kata-karon_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"khon-kaen","entity_name":"Khon Kaen","entity_type":"destination","entity_path":"/entities/khon-kaen/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"khon-kaen_rail_feasibility","signal_type":"rail_feasibility","family_name":"Rail feasibility","basis":"derived_live","score":46,"severity":"high","tone":"caution","label":"Rail feasibility is thin","reason":"Public transport structure around this destination shows 3 mapped stop(s), 1 rail-linked stop(s), 0 airport-link stop(s), and 2 bus-linked stop(s). This is rail-support context, not live seat, delay, or operator-disruption truth.","source_count":3,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_khon-kaen_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a rail-linked base or route is structurally real before treating train logic as free convenience.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"khon-kaen","entity_name":"Khon Kaen","entity_type":"destination","entity_path":"/entities/khon-kaen/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"khon-kaen_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"koh-phangan","entity_name":"Koh Phangan","entity_type":"destination","entity_path":"/entities/koh-phangan/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"koh-phangan_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"koh-samui","entity_name":"Koh Samui","entity_type":"destination","entity_path":"/entities/koh-samui/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"koh-samui_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"krabi","entity_name":"Krabi","entity_type":"destination","entity_path":"/entities/krabi/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"krabi_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"krabi-airport","entity_name":"Krabi Airport","entity_type":"airport","entity_path":"/entities/krabi-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"krabi-airport_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"lamai","entity_name":"Lamai","entity_type":"hotel_area","entity_path":"/entities/lamai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"lamai_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"na-thon-pier","entity_name":"Na Thon Pier","entity_type":"pier","entity_path":"/entities/na-thon-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"na-thon-pier_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"nakhon-ratchasima","entity_name":"Nakhon Ratchasima","entity_type":"destination","entity_path":"/entities/nakhon-ratchasima/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"nakhon-ratchasima_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"nimman","entity_name":"Nimman","entity_type":"hotel_area","entity_path":"/entities/nimman/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"nimman_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"noise4thai-bangkok-roadside-cluster","entity_name":"Noise4Thai Bangkok roadside cluster","entity_type":"monitoring_cluster","entity_path":"/entities/noise4thai-bangkok-roadside-cluster/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"noise4thai-bangkok-roadside-cluster_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"nong-khai","entity_name":"Nong Khai","entity_type":"destination","entity_path":"/entities/nong-khai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"nong-khai_rail_feasibility","signal_type":"rail_feasibility","family_name":"Rail feasibility","basis":"derived_live","score":46,"severity":"high","tone":"caution","label":"Rail feasibility is thin","reason":"Public transport structure around this destination shows 3 mapped stop(s), 1 rail-linked stop(s), 0 airport-link stop(s), and 2 bus-linked stop(s). This is rail-support context, not live seat, delay, or operator-disruption truth.","source_count":3,"source_names":["Namtang GTFS"],"freshness_class":"expired","observed_at":"2026-08-21T19:35:45.000Z","expires_at":"2026-08-22T19:35:45.000Z","observation_ids":["namtang-transit-structure_nong-khai_transport_structure_score"],"context_ids":[],"note":"Use this to judge whether a rail-linked base or route is structurally real before treating train logic as free convenience.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"nong-khai","entity_name":"Nong Khai","entity_type":"destination","entity_path":"/entities/nong-khai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"nong-khai_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"old-city-chiang-mai","entity_name":"Old City Chiang Mai","entity_type":"hotel_area","entity_path":"/entities/old-city-chiang-mai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"old-city-chiang-mai_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"pai","entity_name":"Pai","entity_type":"destination","entity_path":"/entities/pai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"pai_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"patong","entity_name":"Patong","entity_type":"hotel_area","entity_path":"/entities/patong/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"patong_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"pattaya-chonburi","entity_name":"Pattaya / Chonburi","entity_type":"destination","entity_path":"/entities/pattaya-chonburi/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"pattaya-chonburi_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"phuket","entity_name":"Phuket","entity_type":"destination","entity_path":"/entities/phuket/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"phuket_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"phuket-airport","entity_name":"Phuket Airport","entity_type":"airport","entity_path":"/entities/phuket-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"phuket-airport_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"phuket-old-town","entity_name":"Phuket Old Town","entity_type":"hotel_area","entity_path":"/entities/phuket-old-town/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"phuket-old-town_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"railay","entity_name":"Railay","entity_type":"hotel_area","entity_path":"/entities/railay/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"railay_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"rassada-pier","entity_name":"Rassada Pier","entity_type":"pier","entity_path":"/entities/rassada-pier/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"rassada-pier_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"rawai-nai-harn","entity_name":"Rawai / Nai Harn","entity_type":"hotel_area","entity_path":"/entities/rawai-nai-harn/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"rawai-nai-harn_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"riverside-old-town","entity_name":"Riverside / Old Town","entity_type":"hotel_area","entity_path":"/entities/riverside-old-town/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"riverside-old-town_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"samui-airport","entity_name":"Samui Airport","entity_type":"airport","entity_path":"/entities/samui-airport/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"samui-airport_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"silom-sathorn","entity_name":"Silom / Sathorn","entity_type":"hotel_area","entity_path":"/entities/silom-sathorn/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"silom-sathorn_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"sukhothai","entity_name":"Sukhothai","entity_type":"destination","entity_path":"/entities/sukhothai/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"sukhothai_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true},{"entity_id":"sukhumvit","entity_name":"Sukhumvit","entity_type":"hotel_area","entity_path":"/entities/sukhumvit/","computed_at":"2026-08-22T17:51:47.363Z","signal_id":"sukhumvit_regional_disaster_context","signal_type":"regional_disaster_context","family_name":"Regional disaster context","basis":"context","score":46,"severity":"high","tone":"caution","label":"Regional disaster context is busy","reason":"GDACS currently shows 4 active hazard groups across 32 tracked events. This is a route-confidence layer, not a local place safety verdict.","source_count":1,"source_names":["GDACS"],"freshness_class":"expired","observed_at":"2026-08-22T17:21:14.000Z","expires_at":"2026-08-23T05:21:14.000Z","observation_ids":[],"context_ids":["gdacs-global-context"],"note":"Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict.","freshness":"expired","data_current":false,"expired":true}],"entity_summaries":[{"entity_id":"bangkok","entity_name":"Bangkok","entity_path":"/entities/bangkok/","signal_count":24,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,flight_delay_risk,rail_feasibility,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,official_motorcycle_taxi_support,taxi_pickup_dropoff_support,urban_rapid_transit_support,urban_bus_operator_support,flood_water_risk,noise_risk,road_safety_risk,highway_transfer_friction,spa_license_support,medical_fallback_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/bangkok/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","flight_delay_risk","rail_feasibility","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","official_motorcycle_taxi_support","taxi_pickup_dropoff_support"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"phuket","entity_name":"Phuket","entity_path":"/entities/phuket/","signal_count":22,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,flight_delay_risk,marine_warning_risk,pier_transfer_support,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,noise_risk,road_safety_risk,spa_license_support,medical_fallback_support,park_access_context,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction,ferry_fragility","severities_csv":"low,medium,high,critical","path":"/entities/phuket/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","flight_delay_risk","marine_warning_risk","pier_transfer_support","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"bangkok-mochit-2","entity_name":"Bangkok Mochit 2 Bus Terminal","entity_path":"/entities/bangkok-mochit-2/","signal_count":21,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,rail_feasibility,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,official_motorcycle_taxi_support,taxi_pickup_dropoff_support,urban_rapid_transit_support,urban_bus_operator_support,flood_water_risk,noise_risk,road_safety_risk,highway_transfer_friction,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/bangkok-mochit-2/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","rail_feasibility","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","official_motorcycle_taxi_support","taxi_pickup_dropoff_support","urban_rapid_transit_support"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"krabi","entity_name":"Krabi","entity_path":"/entities/krabi/","signal_count":21,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,flight_delay_risk,marine_warning_risk,pier_transfer_support,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,road_safety_risk,spa_license_support,medical_fallback_support,park_access_context,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction,ferry_fragility","severities_csv":"low,high,critical,medium","path":"/entities/krabi/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","flight_delay_risk","marine_warning_risk","pier_transfer_support","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"sukhumvit","entity_name":"Sukhumvit","entity_path":"/entities/sukhumvit/","signal_count":21,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,rail_feasibility,official_intercity_bus_support,official_transport_complaint_support,official_taxi_oversight_support,official_motorcycle_taxi_support,taxi_pickup_dropoff_support,urban_rapid_transit_support,urban_bus_operator_support,flood_water_risk,noise_risk,road_safety_risk,highway_transfer_friction,spa_license_support,medical_fallback_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/sukhumvit/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","rail_feasibility","official_intercity_bus_support","official_transport_complaint_support","official_taxi_oversight_support","official_motorcycle_taxi_support","taxi_pickup_dropoff_support","urban_rapid_transit_support","urban_bus_operator_support","flood_water_risk"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"don-mueang-airport","entity_name":"Don Mueang Airport","entity_path":"/entities/don-mueang-airport/","signal_count":21,"last_observed_at":"2026-08-22T17:40:00.000Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,flight_delay_risk,airport_transfer_support,airport_ground_service_support,airport_board_surface_support,airport_scale_context,airport_environmental_support,official_taxi_oversight_support,official_motorcycle_taxi_support,taxi_pickup_dropoff_support,flood_water_risk,noise_risk,road_safety_risk,highway_transfer_friction,medical_fallback_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/don-mueang-airport/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","flight_delay_risk","airport_transfer_support","airport_ground_service_support","airport_board_surface_support","airport_scale_context","airport_environmental_support","official_taxi_oversight_support","official_motorcycle_taxi_support","taxi_pickup_dropoff_support"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"chiang-mai","entity_name":"Chiang Mai","entity_path":"/entities/chiang-mai/","signal_count":20,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,flight_delay_risk,rail_feasibility,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,flood_water_risk,noise_risk,road_safety_risk,spa_license_support,medical_fallback_support,park_access_context,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/chiang-mai/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","flight_delay_risk","rail_feasibility","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","flood_water_risk","noise_risk"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"koh-samui","entity_name":"Koh Samui","entity_path":"/entities/koh-samui/","signal_count":20,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,flight_delay_risk,marine_warning_risk,pier_transfer_support,official_bus_terminal_support,official_intercity_bus_support,official_transport_complaint_support,official_pier_support,flood_water_risk,road_safety_risk,spa_license_support,medical_fallback_support,park_access_context,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction,ferry_fragility","severities_csv":"low,medium,critical,high","path":"/entities/koh-samui/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","flight_delay_risk","marine_warning_risk","pier_transfer_support","official_bus_terminal_support","official_intercity_bus_support","official_transport_complaint_support","official_pier_support","flood_water_risk","road_safety_risk"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"silom-sathorn","entity_name":"Silom / Sathorn","entity_path":"/entities/silom-sathorn/","signal_count":20,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,rail_feasibility,official_transport_complaint_support,official_taxi_oversight_support,official_motorcycle_taxi_support,taxi_pickup_dropoff_support,urban_rapid_transit_support,urban_bus_operator_support,flood_water_risk,noise_risk,road_safety_risk,highway_transfer_friction,spa_license_support,medical_fallback_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/silom-sathorn/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","rail_feasibility","official_transport_complaint_support","official_taxi_oversight_support","official_motorcycle_taxi_support","taxi_pickup_dropoff_support","urban_rapid_transit_support","urban_bus_operator_support","flood_water_risk","noise_risk"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"suvarnabhumi-airport","entity_name":"Suvarnabhumi Airport","entity_path":"/entities/suvarnabhumi-airport/","signal_count":20,"last_observed_at":"2026-08-22T17:40:00.000Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,flight_delay_risk,airport_transfer_support,airport_ground_service_support,airport_board_surface_support,airport_scale_context,airport_environmental_support,official_taxi_oversight_support,official_motorcycle_taxi_support,flood_water_risk,noise_risk,road_safety_risk,highway_transfer_friction,medical_fallback_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/suvarnabhumi-airport/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","flight_delay_risk","airport_transfer_support","airport_ground_service_support","airport_board_surface_support","airport_scale_context","airport_environmental_support","official_taxi_oversight_support","official_motorcycle_taxi_support","flood_water_risk"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"riverside-old-town","entity_name":"Riverside / Old Town","entity_path":"/entities/riverside-old-town/","signal_count":19,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,rail_feasibility,official_transport_complaint_support,official_taxi_oversight_support,official_motorcycle_taxi_support,taxi_pickup_dropoff_support,urban_rapid_transit_support,urban_bus_operator_support,flood_water_risk,noise_risk,road_safety_risk,highway_transfer_friction,medical_fallback_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/riverside-old-town/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","rail_feasibility","official_transport_complaint_support","official_taxi_oversight_support","official_motorcycle_taxi_support","taxi_pickup_dropoff_support","urban_rapid_transit_support","urban_bus_operator_support","flood_water_risk","noise_risk"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"patong","entity_name":"Patong","entity_path":"/entities/patong/","signal_count":18,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,marine_warning_risk,pier_transfer_support,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,noise_risk,road_safety_risk,spa_license_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,medium,high,critical","path":"/entities/patong/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","marine_warning_risk","pier_transfer_support","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support","noise_risk"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"rawai-nai-harn","entity_name":"Rawai / Nai Harn","entity_path":"/entities/rawai-nai-harn/","signal_count":18,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,marine_warning_risk,pier_transfer_support,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,noise_risk,road_safety_risk,spa_license_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,medium,high,critical","path":"/entities/rawai-nai-harn/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","marine_warning_risk","pier_transfer_support","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support","noise_risk"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"ari","entity_name":"Ari","entity_path":"/entities/ari/","signal_count":18,"last_observed_at":"2026-08-22T17:40:00.000Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,rail_feasibility,official_transport_complaint_support,official_taxi_oversight_support,official_motorcycle_taxi_support,taxi_pickup_dropoff_support,urban_rapid_transit_support,flood_water_risk,noise_risk,road_safety_risk,highway_transfer_friction,medical_fallback_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high","path":"/entities/ari/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","rail_feasibility","official_transport_complaint_support","official_taxi_oversight_support","official_motorcycle_taxi_support","taxi_pickup_dropoff_support","urban_rapid_transit_support","flood_water_risk","noise_risk","road_safety_risk"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"ao-nang","entity_name":"Ao Nang","entity_path":"/entities/ao-nang/","signal_count":17,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,marine_warning_risk,pier_transfer_support,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,road_safety_risk,spa_license_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,critical,medium","path":"/entities/ao-nang/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","marine_warning_risk","pier_transfer_support","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support","road_safety_risk"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"bts-asok","entity_name":"BTS Asok / MRT Sukhumvit","entity_path":"/entities/bts-asok/","signal_count":17,"last_observed_at":"2026-08-22T17:40:00.000Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,rail_feasibility,official_transport_complaint_support,official_taxi_oversight_support,official_motorcycle_taxi_support,taxi_pickup_dropoff_support,urban_rapid_transit_support,flood_water_risk,noise_risk,road_safety_risk,highway_transfer_friction,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/bts-asok/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","rail_feasibility","official_transport_complaint_support","official_taxi_oversight_support","official_motorcycle_taxi_support","taxi_pickup_dropoff_support","urban_rapid_transit_support","flood_water_risk","noise_risk","road_safety_risk"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"koh-phangan","entity_name":"Koh Phangan","entity_path":"/entities/koh-phangan/","signal_count":17,"last_observed_at":"2026-08-22T17:21:14.000Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,flight_delay_risk,marine_warning_risk,pier_transfer_support,official_transport_complaint_support,official_pier_support,flood_water_risk,road_safety_risk,medical_fallback_support,park_access_context,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction,ferry_fragility","severities_csv":"low,medium,critical,high","path":"/entities/koh-phangan/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","flight_delay_risk","marine_warning_risk","pier_transfer_support","official_transport_complaint_support","official_pier_support","flood_water_risk","road_safety_risk","medical_fallback_support","park_access_context"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"chaweng","entity_name":"Chaweng","entity_path":"/entities/chaweng/","signal_count":16,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,marine_warning_risk,official_bus_terminal_support,official_intercity_bus_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,flood_water_risk,road_safety_risk,spa_license_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,medium,critical,high","path":"/entities/chaweng/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","marine_warning_risk","official_bus_terminal_support","official_intercity_bus_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support","flood_water_risk","road_safety_risk","spa_license_support"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"kanchanaburi","entity_name":"Kanchanaburi","entity_path":"/entities/kanchanaburi/","signal_count":16,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,flood_water_risk,road_safety_risk,highway_transfer_friction,medical_fallback_support,park_access_context,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,medium,high","path":"/entities/kanchanaburi/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","flood_water_risk","road_safety_risk","highway_transfer_friction","medical_fallback_support","park_access_context"],"strongest_severity":"high","strongest_label":"aqi_risk"},{"entity_id":"lamai","entity_name":"Lamai","entity_path":"/entities/lamai/","signal_count":16,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,marine_warning_risk,official_bus_terminal_support,official_intercity_bus_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,flood_water_risk,road_safety_risk,spa_license_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,medium,critical,high","path":"/entities/lamai/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","marine_warning_risk","official_bus_terminal_support","official_intercity_bus_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support","flood_water_risk","road_safety_risk","spa_license_support"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"railay","entity_name":"Railay","entity_path":"/entities/railay/","signal_count":16,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,marine_warning_risk,pier_transfer_support,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,road_safety_risk,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,critical,medium","path":"/entities/railay/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","marine_warning_risk","pier_transfer_support","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support","road_safety_risk"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"kata-karon","entity_name":"Kata / Karon","entity_path":"/entities/kata-karon/","signal_count":16,"last_observed_at":"2026-08-22T17:21:14.000Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,marine_warning_risk,pier_transfer_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,noise_risk,road_safety_risk,spa_license_support,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction,ferry_fragility","severities_csv":"low,medium,high,critical","path":"/entities/kata-karon/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","marine_warning_risk","pier_transfer_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support","noise_risk","road_safety_risk","spa_license_support","source_confidence"],"strongest_severity":"critical","strongest_label":"aqi_risk"},{"entity_id":"hua-hin","entity_name":"Hua Hin / Cha-am","entity_path":"/entities/hua-hin/","signal_count":15,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"rail_feasibility,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,official_taxi_oversight_support,official_pier_support,highway_transfer_friction,spa_license_support,medical_fallback_support,park_access_context,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"high,medium,low","path":"/entities/hua-hin/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["rail_feasibility","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","official_taxi_oversight_support","official_pier_support","highway_transfer_friction","spa_license_support","medical_fallback_support","park_access_context","source_confidence"],"strongest_severity":"high","strongest_label":"rail_feasibility"},{"entity_id":"isaan","entity_name":"Isaan","entity_path":"/entities/isaan/","signal_count":15,"last_observed_at":"2026-08-22T17:51:47.642Z","values_csv":"aqi_risk,outdoor_comfort,rain_risk,official_bus_terminal_support,official_intercity_bus_support,official_intercity_bus_search_support,official_transport_complaint_support,flood_water_risk,road_safety_risk,medical_fallback_support,park_access_context,source_confidence,regional_disaster_context,regional_earthquake_context,transport_friction","severities_csv":"low,high,medium","path":"/entities/isaan/","freshness_class":"stale","freshness":"stale","data_current":false,"expired":false,"parameters":["aqi_risk","outdoor_comfort","rain_risk","official_bus_terminal_support","official_intercity_bus_support","official_intercity_bus_search_support","official_transport_complaint_support","flood_water_risk","road_safety_risk","medical_fallback_support","park_access_context","source_confidence"],"strongest_severity":"high","strongest_label":"aqi_risk"}],"filters":{"entity":"all","type":"all","severity":"all","limit":100},"storage":{"mode":"versioned-snapshot","snapshot_generated_at":"2026-08-22T17:51:47.363Z"},"data_status":{"generated_at":"2026-08-22T17:51:47.363Z","freshness":"expired","is_current":false,"row_count":100,"current_row_count":0,"expired_row_count":100,"row_freshness_counts":{"fresh":0,"aging":0,"stale":0,"expired":100,"unknown":0}}}