{
  "title": "Enjoy Thai Land observation ledger",
  "description": "Live Thailand observation layer for the signal graph, covering AQI, weather, water, noise, road safety, and regional context.",
  "generated_at": "2026-06-24T02:15:35.482Z",
  "entity_count": 62,
  "observation_count": 1231,
  "context_count": 3,
  "active_feed_count": 35,
  "queued_feed_count": 0,
  "feeds": {
    "active": [
      {
        "feed_id": "air4thai-aqi",
        "name": "Air4Thai AQI and PM2.5",
        "source_name": "Air4Thai / Pollution Control Department",
        "status": "connected",
        "cadence": "Hourly",
        "observation_count": 70,
        "entity_count": 35,
        "last_observed_at": "2026-06-24T02:00:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 175 public Air4Thai stations into 35 entity anchors."
      },
      {
        "feed_id": "gdacs-disaster-context",
        "name": "GDACS disaster context",
        "source_name": "GDACS",
        "status": "connected",
        "cadence": "Frequent / feed-driven",
        "observation_count": 0,
        "entity_count": 23,
        "last_observed_at": "2026-06-02T05:45:56.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "32 GDACS items scanned with 4 active hazard groups."
      },
      {
        "feed_id": "usgs-thailand-earthquakes",
        "name": "USGS Thailand-region earthquakes",
        "source_name": "USGS Earthquake API",
        "status": "connected",
        "cadence": "Frequent / event-driven",
        "observation_count": 0,
        "entity_count": 23,
        "last_observed_at": "2026-06-14T20:07:57.209Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "1 Thailand-region USGS earthquake events scanned."
      },
      {
        "feed_id": "tmd-weather-surface",
        "name": "TMD weather and warning surface",
        "source_name": "Thai Meteorological Department",
        "status": "connected",
        "cadence": "Hourly / warning-driven",
        "observation_count": 417,
        "entity_count": 35,
        "last_observed_at": "2026-06-24T00:00:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 6 regional forecast feeds, 9 station reports, and 16 warning items into entity weather observations."
      },
      {
        "feed_id": "tmd-shipping-forecast",
        "name": "TMD shipping weather forecast",
        "source_name": "TMD Shipping Forecast",
        "status": "connected",
        "cadence": "Operational / on marine-forecast update",
        "observation_count": 80,
        "entity_count": 16,
        "last_observed_at": "2026-06-24T06:00:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 4 public TMD shipping section(s) into 16 coastal destination and pier anchors."
      },
      {
        "feed_id": "aviationweather-airport-status",
        "name": "Aviation Weather airport status context",
        "source_name": "NOAA Aviation Weather API",
        "status": "connected",
        "cadence": "Minute to hourly depending airport weather updates",
        "observation_count": 56,
        "entity_count": 14,
        "last_observed_at": "2026-06-24T02:00:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 7 Thai airport METAR and TAF feeds into 14 airport and destination anchors."
      },
      {
        "feed_id": "aot-airport-ground-services",
        "name": "AOT airport ground-service support",
        "source_name": "AOT airport ground transport pages",
        "status": "connected",
        "cadence": "On change / operational page",
        "observation_count": 4,
        "entity_count": 4,
        "last_observed_at": "2026-05-15T11:11:26.060Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Served from the AOT ground-service snapshot at 2026-05-15T11:11:26.060Z after scanning 7 airport page(s) during build time."
      },
      {
        "feed_id": "aot-airport-flight-board-surface",
        "name": "AOT airport flight-board surface",
        "source_name": "AOT airport flight status",
        "status": "connected",
        "cadence": "On change / operational page",
        "observation_count": 4,
        "entity_count": 4,
        "last_observed_at": "2026-05-15T11:11:26.678Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Served from the AOT flight-board snapshot at 2026-05-15T11:11:26.678Z after scanning 4 flight page(s) and 4 bundle(s) during build time."
      },
      {
        "feed_id": "aot-airport-traffic-stats",
        "name": "AOT airport traffic statistics",
        "source_name": "AOT air transport statistics",
        "status": "connected",
        "cadence": "Monthly / fiscal-year workbook update",
        "observation_count": 12,
        "entity_count": 4,
        "last_observed_at": "2025-10-16T17:00:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Served from the AOT traffic snapshot at 2026-05-15T11:11:28.750Z using 20251017-aot-traffic-fiscal-2025.xlsx instead of a runtime workbook download."
      },
      {
        "feed_id": "aot-airport-environment-support",
        "name": "AOT airport environmental support",
        "source_name": "AOT annual report / SET filing",
        "status": "connected",
        "cadence": "Annual report publication with periodic factsheet refresh",
        "observation_count": 4,
        "entity_count": 4,
        "last_observed_at": "2026-05-15T11:11:25.296Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Served from the SET-hosted AOT annual-report disclosure snapshot at 2026-05-15T11:11:25.296Z and mapped 4 airport environmental-support observation row(s)."
      },
      {
        "feed_id": "thaiwater-water-quality",
        "name": "Thaiwater water-quality observations",
        "source_name": "Thaiwater WaterQuality API",
        "status": "connected",
        "cadence": "10 to 30 minutes depending on station",
        "observation_count": 75,
        "entity_count": 25,
        "last_observed_at": "2026-06-24T02:00:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped Thaiwater water-quality rows into 25 entity anchors."
      },
      {
        "feed_id": "namtang-transit-structure",
        "name": "Namtang transit structure",
        "source_name": "Namtang GTFS",
        "status": "connected",
        "cadence": "Daily / static feed refresh",
        "observation_count": 55,
        "entity_count": 55,
        "last_observed_at": "2026-06-23T19:00:28.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 8660 Namtang stop rows into 55 entity anchors."
      },
      {
        "feed_id": "bangkok-rapid-transit-official-pages",
        "name": "Bangkok rapid-transit official pages",
        "source_name": "BTS SkyTrain system maps and service pages",
        "status": "connected",
        "cadence": "Daily / on official route-map or service-page change",
        "observation_count": 7,
        "entity_count": 7,
        "last_observed_at": "2026-05-15T11:11:29.575Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 2 official rapid-transit page(s) into 7 Bangkok support anchors."
      },
      {
        "feed_id": "srt-official-station-presence",
        "name": "SRT official station presence",
        "source_name": "SRT timetable data",
        "status": "failed",
        "cadence": "Daily / on public timetable-site change",
        "observation_count": 0,
        "entity_count": 0,
        "last_observed_at": null,
        "checked_at": "2026-06-24T02:15:35.482Z",
        "detail": "The operation was aborted"
      },
      {
        "feed_id": "mot-bus-terminal-support",
        "name": "MOT official passenger bus terminals",
        "source_name": "MOT passenger bus terminals dataset",
        "status": "connected",
        "cadence": "Weekly / monthly catalog update",
        "observation_count": 20,
        "entity_count": 20,
        "last_observed_at": "2026-06-24T02:15:23.481Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 126 official MOT bus-terminal rows into 20 overland entity anchors."
      },
      {
        "feed_id": "bks-station-ticket-support",
        "name": "BKS station and ticket-point support",
        "source_name": "Transport Co. / BKS station and ticket-point locations",
        "status": "connected",
        "cadence": "Monthly / quarterly static dataset validation",
        "observation_count": 22,
        "entity_count": 22,
        "last_observed_at": "2026-05-15T11:11:43.824Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 156 official BKS station and ticket-point row(s) into 22 overland entity anchors."
      },
      {
        "feed_id": "bks-timetable-search-surface",
        "name": "BKS timetable search surface",
        "source_name": "Transport Co. / BKS timetable resources",
        "status": "connected",
        "cadence": "Daily / search-surface validation",
        "observation_count": 16,
        "entity_count": 16,
        "last_observed_at": "2026-05-15T11:11:48Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 617 official BKS destination option row(s) from 2 Bangkok-origin search surface(s) into 16 overland entity anchors."
      },
      {
        "feed_id": "dlt-1584-complaint-stats",
        "name": "DLT 1584 complaint-support stats",
        "source_name": "DLT 1584 public-transport complaints",
        "status": "connected",
        "cadence": "Monthly / fiscal-year workbook refresh",
        "observation_count": 29,
        "entity_count": 29,
        "last_observed_at": "2026-05-15T11:11:30.831Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped DLT 1584 fiscal-year 2569 complaint workbook coverage into 29 transport-support anchors."
      },
      {
        "feed_id": "dlt-gps-taxi-support",
        "name": "DLT GPS and Taxi OK taxi-oversight support",
        "source_name": "DLT GPS passenger and complaint app",
        "status": "connected",
        "cadence": "On regulatory or project-page change",
        "observation_count": 29,
        "entity_count": 29,
        "last_observed_at": "2026-05-15T11:11:32.530Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped DLT GPS passenger support and Taxi OK / VIP oversight pages into 29 taxi-relevant traveler anchors."
      },
      {
        "feed_id": "bangkok-motorcycle-taxi-support",
        "name": "Bangkok motorcycle-taxi support",
        "source_name": "Bangkok motorcycle taxi stands and drivers",
        "status": "connected",
        "cadence": "Historical / static dataset with periodic validation",
        "observation_count": 9,
        "entity_count": 9,
        "last_observed_at": "2020-07-23T04:25:48.450Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 56 official Bangkok motorcycle-taxi datastore row(s) into 9 Bangkok last-mile entity anchors from dataset year unknown using the current build snapshot."
      },
      {
        "feed_id": "otp-taxi-demand-analytics",
        "name": "OTP taxi demand and pickup/dropoff analytics",
        "source_name": "OTP taxi GPS trip analytics",
        "status": "connected",
        "cadence": "Monthly",
        "observation_count": 8,
        "entity_count": 8,
        "last_observed_at": "2026-05-15T11:11:35.449Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 475 OTP pickup/dropoff hotspot row(s) and latest trip month มีนาคม 2569 into 8 Bangkok taxi-demand anchors from the current build snapshot."
      },
      {
        "feed_id": "marine-department-pier-registry",
        "name": "Marine Department passenger-pier registry",
        "source_name": "Marine Department piers",
        "status": "connected",
        "cadence": "Weekly / monthly berth-registry update",
        "observation_count": 20,
        "entity_count": 20,
        "last_observed_at": "2026-05-15T11:11:30.342Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 187 official Marine Department passenger-berth row(s) into 20 coastal entity anchors from the current build snapshot."
      },
      {
        "feed_id": "marine-department-berth-status",
        "name": "Marine Department berth-status surface",
        "source_name": "Marine Department Berth Status",
        "status": "connected",
        "cadence": "Operational / event-driven",
        "observation_count": 16,
        "entity_count": 16,
        "last_observed_at": "2026-06-24T02:15:23.481Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Matched 11 public tracked port option(s) and 350 visible ship-visit row(s) into 16 coastal entity anchors."
      },
      {
        "feed_id": "thai-smile-group-branch-locator",
        "name": "Thai Smile Group branch and depot locator",
        "source_name": "Thai Smile Group branch and depot locator",
        "status": "connected",
        "cadence": "Daily / site-locator update",
        "observation_count": 5,
        "entity_count": 5,
        "last_observed_at": "2026-06-24T02:15:23.481Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 24 Thai Smile Group branch/depot rows into 5 Bangkok urban-support anchors."
      },
      {
        "feed_id": "bangkok-flood-monitoring-system",
        "name": "Bangkok flood-monitoring current-event surface",
        "source_name": "Bangkok Flood Monitoring System",
        "status": "failed",
        "cadence": "Operational / event-driven",
        "observation_count": 0,
        "entity_count": 0,
        "last_observed_at": null,
        "checked_at": "2026-06-24T02:15:32.095Z",
        "detail": "520: error code: 520\n"
      },
      {
        "feed_id": "doh-highway-traffic-support",
        "name": "DOH highway traffic support",
        "source_name": "DOH Highway Traffic",
        "status": "failed",
        "cadence": "Operational / support-surface refresh",
        "observation_count": 0,
        "entity_count": 0,
        "last_observed_at": null,
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "DOH highway-traffic support snapshot is not available."
      },
      {
        "feed_id": "exat-expressway-support",
        "name": "EXAT expressway support",
        "source_name": "EXAT Traffic Surface",
        "status": "connected",
        "cadence": "Operational / support-surface refresh",
        "observation_count": 13,
        "entity_count": 13,
        "last_observed_at": "2026-05-15T11:11:30.132Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 5 official EXAT support page(s) into 13 Bangkok-linked road anchors from the current build snapshot."
      },
      {
        "feed_id": "hss-spa-license-support",
        "name": "HSS spa-license support",
        "source_name": "HSS Health Establishment Directory",
        "status": "connected",
        "cadence": "Weekly / monthly public support-surface refresh",
        "observation_count": 17,
        "entity_count": 17,
        "last_observed_at": "2026-05-15T11:11:35.580Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 2 public HSS wellness-license support page(s) into 17 traveler anchors from the current build snapshot."
      },
      {
        "feed_id": "moph-health-facility-support",
        "name": "MOPH health-facility support",
        "source_name": "MOPH Health Facility Datasets",
        "status": "connected",
        "cadence": "Weekly / monthly public support-surface refresh",
        "observation_count": 18,
        "entity_count": 18,
        "last_observed_at": "2026-05-15T11:11:37.864Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 2 public MOPH / HS4 medical-facility support page(s) into 18 traveler anchors from the current build snapshot."
      },
      {
        "feed_id": "dnp-park-tourism-support",
        "name": "DNP park tourism support",
        "source_name": "DNP Tourism Datasets",
        "status": "connected",
        "cadence": "Scheduled / catalog refresh",
        "observation_count": 9,
        "entity_count": 9,
        "last_observed_at": "2026-05-15T11:11:43.688Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 1 public DNP park-tourism support page(s) into 9 nature-heavy traveler anchors from the current build snapshot."
      },
      {
        "feed_id": "gta-gold-reference-price",
        "name": "GTA Thai gold reference price",
        "source_name": "Gold Traders Association Thailand gold prices",
        "status": "connected",
        "cadence": "Intraday / market-hours publication",
        "observation_count": 72,
        "entity_count": 9,
        "last_observed_at": "2026-06-24T02:05:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped the national GTA 96.5% quote into 9 city buying-context anchors without inventing province-specific official prices."
      },
      {
        "feed_id": "bot-usd-thb-reference",
        "name": "BOT USD/THB daily average",
        "source_name": "Bank of Thailand API",
        "status": "queued",
        "cadence": "Business day / daily average publication",
        "observation_count": 0,
        "entity_count": 0,
        "last_observed_at": null,
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "BOT API token not configured, so gold FX context is currently falling back to the GTA embedded USD/THB reference."
      },
      {
        "feed_id": "bangkok-civic-complaint-stats",
        "name": "Bangkok civic complaint stats",
        "source_name": "Bangkok Open Data",
        "status": "connected",
        "cadence": "Monthly / district statistical update",
        "observation_count": 18,
        "entity_count": 6,
        "last_observed_at": "2025-07-31T17:00:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped Bangkok district complaint summary period สิงหาคม 2568 into 6 entity anchors."
      },
      {
        "feed_id": "noise4thai-ambient-noise",
        "name": "Noise4Thai ambient noise",
        "source_name": "PCD Noise4Thai",
        "status": "connected",
        "cadence": "Hourly / daily",
        "observation_count": 21,
        "entity_count": 21,
        "last_observed_at": "2026-06-24T02:00:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Mapped 26 Noise4Thai cards into 21 entity anchors."
      },
      {
        "feed_id": "thairsc-road-safety",
        "name": "ThaiRSC road-safety observations",
        "source_name": "ThaiRSC Road Accident Center",
        "status": "connected",
        "cadence": "Near real time / daily snapshot",
        "observation_count": 105,
        "entity_count": 35,
        "last_observed_at": "2026-05-15T11:00:00.000Z",
        "checked_at": "2026-06-24T02:15:23.481Z",
        "detail": "Served from the latest ThaiRSC build snapshot at 2026-05-15T11:11:17.870Z because the upstream API requires TLS bypass in local refresh tooling."
      }
    ],
    "queued": [],
    "all": [
      {
        "id": "air4thai-aqi",
        "name": "Air4Thai AQI and PM2.5",
        "status": "active",
        "sourceName": "Air4Thai / Pollution Control Department",
        "kind": "entity-observation",
        "cadence": "Hourly",
        "coverage": "Destination, hotel-area, airport, pier-proxy, and monitoring-cluster AQI hooks where public station coverage exists.",
        "parameters": [
          "aqi_average",
          "pm25_average"
        ],
        "note": "Primary live entity observation feed for public station averages and proxy matching by destination or city cluster."
      },
      {
        "id": "gdacs-disaster-context",
        "name": "GDACS disaster context",
        "status": "active",
        "sourceName": "GDACS",
        "kind": "context-observation",
        "cadence": "Frequent / feed-driven",
        "coverage": "Global and regional hazard context that affects route and confidence checks across all destination entities.",
        "parameters": [
          "active_hazard_groups",
          "active_hazard_items"
        ],
        "note": "Context only. Useful for alerting and contradiction notes, not a local place-level safety verdict."
      },
      {
        "id": "usgs-thailand-earthquakes",
        "name": "USGS Thailand-region earthquakes",
        "status": "active",
        "sourceName": "USGS Earthquake API",
        "kind": "context-observation",
        "cadence": "Frequent / event-driven",
        "coverage": "Thailand-region earthquake context within the bounded public query used by the signal graph.",
        "parameters": [
          "regional_earthquake_events",
          "regional_max_magnitude"
        ],
        "note": "Context feed for rare but important event checks. It does not replace local disaster or route advisories."
      },
      {
        "id": "tmd-weather-surface",
        "name": "TMD weather and warning surface",
        "status": "active",
        "sourceName": "Thai Meteorological Department",
        "kind": "entity-observation",
        "cadence": "Hourly / warning-driven",
        "coverage": "Destination weather risk, storm warnings, heat risk, marine warnings, and route weather context.",
        "parameters": [
          "rain_risk_input",
          "heat_risk_input",
          "storm_warning_input",
          "marine_warning_input"
        ],
        "note": "Live connector using public TMD RSS/XML forecast, warning, and station-weather feeds for destination and route weather context."
      },
      {
        "id": "tmd-shipping-forecast",
        "name": "TMD shipping weather forecast",
        "status": "active",
        "sourceName": "TMD Shipping Forecast",
        "kind": "entity-observation",
        "cadence": "Operational / on marine-forecast update",
        "coverage": "Coastal destination and pier-anchor shipping forecast context for the Gulf of Thailand and Andaman / Malacca marine sections.",
        "parameters": [
          "marine_wind_speed_average",
          "marine_wave_height_average",
          "marine_wave_height_thunder",
          "marine_thunderstorm_flag"
        ],
        "note": "Live connector using the public TMD shipping forecast page for marine section wind, wave, thunder, and heavy-rain context. This is shipping-weather burden, not operator closure, ticket, or seat truth."
      },
      {
        "id": "aviationweather-airport-status",
        "name": "Aviation Weather airport status context",
        "status": "active",
        "sourceName": "NOAA Aviation Weather API",
        "kind": "entity-observation",
        "cadence": "Minute to hourly depending airport weather updates",
        "coverage": "Destination and airport weather-operability context for Bangkok, Chiang Mai, Phuket, Krabi, and Samui route decisions.",
        "parameters": [
          "airport_flight_rules_score",
          "airport_visibility_score",
          "airport_forecast_disruption_score",
          "airport_convective_forecast_flag"
        ],
        "note": "Live connector using public METAR and TAF data as airport weather and operability context. This is not airline delay or cancellation truth."
      },
      {
        "id": "aot-airport-ground-services",
        "name": "AOT airport ground-service support",
        "status": "active",
        "sourceName": "AOT airport ground transport pages",
        "sourceNames": [
          "AOT airport ground transport pages",
          "AOT Suvarnabhumi public taxi",
          "AOT Suvarnabhumi Grab pickup points",
          "AOT Suvarnabhumi car rental services",
          "AOT Don Mueang Grab pickup points",
          "AOT Don Mueang car rental services",
          "AOT Phuket car rental services",
          "AOT Chiang Mai car rental services"
        ],
        "kind": "entity-observation",
        "cadence": "On change / operational page",
        "coverage": "Airport-anchor observations for official taxi, Grab, rental-counter, and pickup-rule support at AOT airports where public transport pages are reachable.",
        "parameters": [
          "official_airport_ground_service_score"
        ],
        "note": "Live connector using public AOT airport transport pages for official airport-ground-service and pickup-rule context. This is not live taxi queue, ETA, or rental inventory truth."
      },
      {
        "id": "aot-airport-flight-board-surface",
        "name": "AOT airport flight-board surface",
        "status": "active",
        "sourceName": "AOT airport flight status",
        "kind": "entity-observation",
        "cadence": "On change / operational page",
        "coverage": "Airport-anchor observations for official public passenger flight-board self-check surfaces at AOT airports with public flight-status pages.",
        "parameters": [
          "official_airport_board_surface_score"
        ],
        "note": "Live connector using public AOT flight-status pages to score official passenger board-surface support. This is self-serve board visibility, not live airline delay, gate, baggage, or cancellation truth because the row query is protected by a browser turnstile token."
      },
      {
        "id": "aot-airport-traffic-stats",
        "name": "AOT airport traffic statistics",
        "status": "active",
        "sourceName": "AOT air transport statistics",
        "kind": "entity-observation",
        "cadence": "Monthly / fiscal-year workbook update",
        "coverage": "Airport-anchor observations for official passenger and aircraft-movement scale context at AOT airports with public traffic workbooks.",
        "parameters": [
          "official_airport_total_movements",
          "official_airport_total_passengers",
          "official_airport_scale_score"
        ],
        "note": "Live connector using the public AOT traffic archive workbook for airport-scale context. This is official passenger and movement scale, not live on-time, queue, gate, or inventory truth."
      },
      {
        "id": "aot-airport-environment-support",
        "name": "AOT airport environmental support",
        "status": "active",
        "sourceName": "AOT annual report / SET filing",
        "kind": "entity-observation",
        "cadence": "Annual report publication with periodic factsheet refresh",
        "coverage": "Airport-anchor observations for operator-level environmental-governance, community, and airport-noise disclosure support at AOT airports covered by the reachable SET-hosted annual report surface.",
        "parameters": [
          "official_airport_environmental_support_score"
        ],
        "note": "Live snapshot and connector using the public SET-hosted AOT factsheet and annual report ZIP to score airport environmental-governance and community-support disclosure. This is official disclosure context, not live measured sound-level truth."
      },
      {
        "id": "thaiwater-water-quality",
        "name": "Thaiwater water-quality observations",
        "status": "active",
        "sourceName": "Thaiwater WaterQuality API",
        "kind": "entity-observation",
        "cadence": "10 to 30 minutes depending on station",
        "coverage": "River, canal, and water-station observations for flood and water-quality decisions.",
        "parameters": [
          "water_quality_index",
          "water_quality_station_state"
        ],
        "note": "Live connector using the public Thaiwater water-quality load endpoint, mapped into destination and water-anchor observations where current station coverage exists."
      },
      {
        "id": "namtang-transit-structure",
        "name": "Namtang transit structure",
        "status": "active",
        "sourceName": "Namtang GTFS",
        "kind": "entity-observation",
        "cadence": "Daily / static feed refresh",
        "coverage": "Destination, hotel-area, station, airport, terminal, and pier transport-structure observations from the public OTP/Namtang stop spine.",
        "parameters": [
          "transport_structure_score"
        ],
        "note": "Live connector using the public Namtang compressed stop export to measure stop density, mode diversity, and transit-structure support around key traveler entities."
      },
      {
        "id": "bangkok-rapid-transit-official-pages",
        "name": "Bangkok rapid-transit official pages",
        "status": "active",
        "sourceName": "BTS SkyTrain system maps and service pages",
        "sourceNames": [
          "MRT / MRTA metro maps and service pages"
        ],
        "kind": "entity-observation",
        "cadence": "Daily / on official route-map or service-page change",
        "coverage": "Bangkok destination, Bangkok hotel-area, interchange, and terminal support observations from official BTS and MRTA public route-map and service pages.",
        "parameters": [
          "official_rapid_transit_support_score"
        ],
        "note": "Build snapshot using the public BTS route-map page and the public MRTA MRT route page to prove official rapid-transit support around Bangkok city-base decisions. This is route-map and service-page support, not live headway, crowding, or outage truth."
      },
      {
        "id": "srt-official-station-presence",
        "name": "SRT official station presence",
        "status": "active",
        "sourceName": "SRT timetable data",
        "kind": "entity-observation",
        "cadence": "Daily / on public timetable-site change",
        "coverage": "Destination and selected hotel-area official rail presence from the public SRT station list.",
        "parameters": [
          "official_rail_presence_score"
        ],
        "note": "Live connector using the public SRT station-list surface to confirm official station presence around rail-relevant destinations. This is operator-backed rail presence, not live train timing, seat, or disruption truth."
      },
      {
        "id": "mot-bus-terminal-support",
        "name": "MOT official passenger bus terminals",
        "status": "active",
        "sourceName": "MOT passenger bus terminals dataset",
        "kind": "entity-observation",
        "cadence": "Weekly / monthly catalog update",
        "coverage": "Destination, hotel-area, and bus-terminal observations from the official MOT passenger-terminal master where public CSV rows are available.",
        "parameters": [
          "official_bus_terminal_support_score"
        ],
        "note": "Live connector using the public MOT passenger-bus-terminal master CSV to confirm official terminal presence and overland-support anchors. This is terminal-master support, not live departure, seat, or booking truth."
      },
      {
        "id": "bks-station-ticket-support",
        "name": "BKS station and ticket-point support",
        "status": "active",
        "sourceName": "Transport Co. / BKS station and ticket-point locations",
        "kind": "entity-observation",
        "cadence": "Monthly / quarterly static dataset validation",
        "coverage": "Destination, hotel-area, and terminal observations from the official BKS station, office, stop, and ticket-point location CSV.",
        "parameters": [
          "official_intercity_bus_support_score"
        ],
        "note": "Build snapshot using the public BKS station and ticket-point CSV to prove official intercity-bus support around overland traveler entities. This is official station and ticket-point presence, not live departure, seat, or booking truth."
      },
      {
        "id": "bks-timetable-search-surface",
        "name": "BKS timetable search surface",
        "status": "active",
        "sourceName": "Transport Co. / BKS timetable resources",
        "kind": "entity-observation",
        "cadence": "Daily / search-surface validation",
        "coverage": "Destination and overland-anchor observations from the public BKS booking/search destination selector surface for Bangkok-origin intercity bus planning.",
        "parameters": [
          "official_intercity_bus_search_support_score"
        ],
        "note": "Build snapshot using the public BKS booking/search destination selector to prove official route-search support around tracked intercity destinations. This is official search-surface presence, not live departure, seat, or booking inventory truth."
      },
      {
        "id": "dlt-1584-complaint-stats",
        "name": "DLT 1584 complaint-support stats",
        "status": "active",
        "sourceName": "DLT 1584 public-transport complaints",
        "kind": "entity-observation",
        "cadence": "Monthly / fiscal-year workbook refresh",
        "coverage": "Bangkok city-base, regional destination, hotel-area, and bus-terminal complaint recourse and burden context from the public DLT 1584 fiscal-year workbooks.",
        "parameters": [
          "official_transport_complaint_support_score"
        ],
        "note": "Build snapshot using the public DLT 1584 complaint statistics workbooks to score official complaint recourse and transport-burden context. This is not local realtime service quality, dispatch, or incident truth."
      },
      {
        "id": "dlt-gps-taxi-support",
        "name": "DLT GPS and Taxi OK taxi-oversight support",
        "status": "active",
        "sourceName": "DLT GPS passenger and complaint app",
        "sourceNames": [
          "DLT Taxi OK / Taxi VIP project"
        ],
        "kind": "entity-observation",
        "cadence": "On regulatory or project-page change",
        "coverage": "Bangkok city-base, airport-linked, and taxi-heavy regional destination or hotel-area support observations from the public DLT GPS app pages and Taxi OK / Taxi VIP notices.",
        "parameters": [
          "official_taxi_oversight_support_score"
        ],
        "note": "Build snapshot using the public DLT GPS passenger pages and Taxi OK / Taxi VIP project notices to score official registered-taxi oversight, complaint, and station-search support. This is not live vehicle location, dispatch, ETA, or raw taxi GPS truth."
      },
      {
        "id": "bangkok-motorcycle-taxi-support",
        "name": "Bangkok motorcycle-taxi support",
        "status": "active",
        "sourceName": "Bangkok motorcycle taxi stands and drivers",
        "kind": "entity-observation",
        "cadence": "Historical / static dataset with periodic validation",
        "coverage": "Bangkok destination, Bangkok hotel-area, transfer-node, and airport last-mile support observations from the official DLT/data.go.th motorcycle-taxi stand and driver dataset.",
        "parameters": [
          "official_motorcycle_taxi_support_score"
        ],
        "note": "Live connector using the public data.go.th datastore for Bangkok motorcycle-taxi stands and drivers to score official last-mile support coverage. This is stand and driver supply context, not exact live availability, queue, or dispatch truth."
      },
      {
        "id": "otp-taxi-demand-analytics",
        "name": "OTP taxi demand and pickup/dropoff analytics",
        "status": "active",
        "sourceName": "OTP taxi GPS trip analytics",
        "sourceNames": [
          "OTP top taxi pickup and dropoff areas"
        ],
        "kind": "entity-observation",
        "cadence": "Monthly",
        "coverage": "Bangkok destination, hotel-area, interchange, terminal, and airport-linked demand context from public OTP monthly taxi GPS analytics and top pickup/dropoff area rankings.",
        "parameters": [
          "taxi_pickup_dropoff_support_score"
        ],
        "note": "Build snapshot using the public OTP monthly taxi GPS analytics and top pickup/dropoff area CSVs to score aggregate taxi-demand and hotspot support around Bangkok traveler entities. This is monthly aggregate demand context, not live dispatch, ETA, queue, or raw trip truth."
      },
      {
        "id": "marine-department-pier-registry",
        "name": "Marine Department passenger-pier registry",
        "status": "active",
        "sourceName": "Marine Department piers",
        "kind": "entity-observation",
        "cadence": "Weekly / monthly berth-registry update",
        "coverage": "Coastal destination, hotel-area, and pier-anchor observations from the official Marine Department berth registry where public passenger-use rows are available.",
        "parameters": [
          "official_pier_support_score"
        ],
        "note": "Live connector using the public Marine Department berth registry to confirm official passenger-pier support, berth depth, and berth length context around coastal traveler entities. This is pier-infrastructure support, not live ferry schedule, closure, queue, or seat truth."
      },
      {
        "id": "marine-department-berth-status",
        "name": "Marine Department berth-status surface",
        "status": "active",
        "sourceName": "Marine Department Berth Status",
        "kind": "entity-observation",
        "cadence": "Operational / event-driven",
        "coverage": "Coastal destination, hotel-area, and pier-anchor berth-status surface support for Phuket, Krabi, Samui, Phangan, Pattaya, and selected public port clusters visible on the official page.",
        "parameters": [
          "official_berth_status_surface_score"
        ],
        "note": "Live connector using the public Marine Department berth-status page to confirm named public port selectors and current visible ship-visit rows around coastal traveler entities. This is berth and ship-movement evidence, not ferry schedule, ticket, or seat truth."
      },
      {
        "id": "thai-smile-group-branch-locator",
        "name": "Thai Smile Group branch and depot locator",
        "status": "active",
        "sourceName": "Thai Smile Group branch and depot locator",
        "kind": "entity-observation",
        "cadence": "Daily / site-locator update",
        "coverage": "Bangkok destination, Bangkok hotel-area, and selected transfer-anchor observations from the public Thai Smile Group branch and depot locator.",
        "parameters": [
          "urban_bus_operator_support_score"
        ],
        "note": "Live connector using the public Thai Smile Group site locator to confirm urban bus operator footprint around Bangkok traveler entities. This is operator support and depot presence, not realtime vehicle, ETA, crowding, or outage truth."
      },
      {
        "id": "bangkok-flood-monitoring-system",
        "name": "Bangkok flood-monitoring current-event surface",
        "status": "active",
        "sourceName": "Bangkok Flood Monitoring System",
        "kind": "entity-observation",
        "cadence": "Operational / event-driven",
        "coverage": "Bangkok destination, hotel-area, and transfer-node flood-friction context from the public city flood-monitoring current-event endpoint.",
        "parameters": [
          "bangkok_flood_current_event_count",
          "bangkok_flood_max_level_cm"
        ],
        "note": "Live connector using the public Bangkok flood-monitoring current-event endpoint for citywide flood-friction context. This is Bangkok-only public surface evidence, not a nationwide flood service."
      },
      {
        "id": "doh-highway-traffic-support",
        "name": "DOH highway traffic support",
        "status": "active",
        "sourceName": "DOH Highway Traffic",
        "kind": "entity-observation",
        "cadence": "Operational / support-surface refresh",
        "coverage": "Destination, airport, bus-terminal, and interchange road-friction support observations using the public DOH CCTV region and corridor surfaces.",
        "parameters": [
          "doh_highway_support_score"
        ],
        "note": "Build snapshot using the public DOH highway-traffic CCTV region pages to score camera-backed corridor support and visible staleness by major traveler region. This is public observability and support context, not live travel-time, speed, queue, or incident truth."
      },
      {
        "id": "exat-expressway-support",
        "name": "EXAT expressway support",
        "status": "active",
        "sourceName": "EXAT Traffic Surface",
        "sourceNames": [
          "EXAT Data Catalog"
        ],
        "kind": "entity-observation",
        "cadence": "Operational / support-surface refresh",
        "coverage": "Bangkok-linked destination, airport, and overland-anchor expressway support observations using official EXAT map, toll, maintenance, and motorist service pages.",
        "parameters": [
          "exat_expressway_support_score"
        ],
        "note": "Build snapshot using the public EXAT support surfaces to score whether Bangkok-linked road moves have official expressway, toll, maintenance, and motorist-support context behind them. This is expressway support context, not live congestion, lane, queue, or travel-time truth."
      },
      {
        "id": "hss-spa-license-support",
        "name": "HSS spa-license support",
        "status": "active",
        "sourceName": "HSS Health Establishment Directory",
        "sourceNames": [
          "HSS Spa Premium"
        ],
        "kind": "entity-observation",
        "cadence": "Weekly / monthly public support-surface refresh",
        "coverage": "Destination and hotel-base wellness-license support observations using public HSS health-establishment directory and spa-premium surfaces.",
        "parameters": [
          "spa_license_support_score"
        ],
        "note": "Build snapshot using the public HSS health-establishment directory and spa-premium surfaces to score whether official spa and massage license lookup context exists behind wellness-heavy traveler anchors. This is licensing-support context, not live treatment availability, quality, or booking truth."
      },
      {
        "id": "moph-health-facility-support",
        "name": "MOPH health-facility support",
        "status": "active",
        "sourceName": "MOPH Health Facility Datasets",
        "kind": "entity-observation",
        "cadence": "Weekly / monthly public support-surface refresh",
        "coverage": "Destination and stay-fallback medical support observations using public MOPH/HS4 facility surfaces.",
        "parameters": [
          "medical_fallback_support_score"
        ],
        "note": "Build snapshot using public MOPH health-facility dataset and HS4 facility surfaces to score whether official hospital and facility-lookup context exists behind traveler fallback planning. This is medical fallback context, not live bed, wait-time, dispatch, or specialist availability truth."
      },
      {
        "id": "dnp-park-tourism-support",
        "name": "DNP park tourism support",
        "status": "active",
        "sourceName": "DNP Tourism Datasets",
        "kind": "entity-observation",
        "cadence": "Scheduled / catalog refresh",
        "coverage": "Nature-heavy destination park-access support observations using public DNP tourism dataset surfaces and national-park dataset visibility.",
        "parameters": [
          "park_access_context_score"
        ],
        "note": "Build snapshot using the public DNP tourism dataset surfaces to score whether national-park and protected-area planning has official dataset support behind it. This is park-planning context, not live closure, ticket, ranger, or capacity truth."
      },
      {
        "id": "gta-gold-reference-price",
        "name": "GTA Thai gold reference price",
        "status": "active",
        "sourceName": "Gold Traders Association Thailand gold prices",
        "kind": "entity-observation",
        "cadence": "Intraday / market-hours publication",
        "coverage": "Destination-level city buying-context anchors using the national Thai 96.5% gold reference quote instead of pretending there are province-specific official prices.",
        "parameters": [
          "gold_bar_965_buy_baht_weight",
          "gold_bar_965_sell_baht_weight",
          "gold_ornament_965_base_baht_weight",
          "gold_ornament_965_sell_baht_weight",
          "gold_spot_reference",
          "usd_thb_reference",
          "gold_price_change_intraday",
          "gold_price_change_prev_day"
        ],
        "note": "Live connector using the published Gold Traders Association latest-price JSON surface for the national Thai domestic 96.5% retail reference. This is published THB-per-baht-weight context, not a trading feed or province-by-province local shop quote."
      },
      {
        "id": "bot-usd-thb-reference",
        "name": "BOT USD/THB daily average",
        "status": "active",
        "sourceName": "Bank of Thailand API",
        "kind": "entity-observation",
        "cadence": "Business day / daily average publication",
        "coverage": "Gold-buying destination and market-anchor FX context when a Bank of Thailand API token is configured.",
        "parameters": [
          "usd_thb_reference"
        ],
        "note": "Optional live connector using the Bank of Thailand daily-average USD/THB exchange-rate API when credentials are configured. Preferred FX context for Thai gold pages and signals when reachable; otherwise the stack falls back to the GTA-published embedded USD/THB reference."
      },
      {
        "id": "bangkok-civic-complaint-stats",
        "name": "Bangkok civic complaint stats",
        "status": "active",
        "sourceName": "Bangkok Open Data",
        "kind": "entity-observation",
        "cadence": "Monthly / district statistical update",
        "coverage": "Bangkok destination and Bangkok hotel-area complaint, resolution, and star-rating context from the public district complaint statistics file.",
        "parameters": [
          "civic_monthly_complaint_count",
          "civic_monthly_resolution_rate",
          "civic_star_average"
        ],
        "note": "Public Bangkok Open Data complaint statistics. This is a slower-moving civic-friction layer for nuisance and service burden, not a live dispatch or complaint-intake feed."
      },
      {
        "id": "noise4thai-ambient-noise",
        "name": "Noise4Thai ambient noise",
        "status": "active",
        "sourceName": "PCD Noise4Thai",
        "kind": "entity-observation",
        "cadence": "Hourly / daily",
        "coverage": "Destination, hotel-area, and monitoring-cluster noise observations.",
        "parameters": [
          "leq_1h",
          "leq_24h"
        ],
        "note": "Live connector using public Noise4Thai monitoring cards to compute current destination and hotel-area ambient-noise observations."
      },
      {
        "id": "thairsc-road-safety",
        "name": "ThaiRSC road-safety observations",
        "status": "active",
        "sourceName": "ThaiRSC Road Accident Center",
        "kind": "entity-observation",
        "cadence": "Near real time / daily snapshot",
        "coverage": "Route and province road-safety observations for route fragility and holiday driving decisions.",
        "parameters": [
          "road_deaths_today",
          "road_injuries_today",
          "major_accident_context"
        ],
        "note": "Live connector served from a fresh build snapshot because the upstream API requires TLS bypass in refresh tooling, but the road-safety observations are now attached to the graph."
      }
    ]
  },
  "observations": [
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_bangkok_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_bangkok_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Chiang Mai public station coverage.",
      "station_count": 2,
      "supporting_station_ids": [
        "35t",
        "36t"
      ],
      "supporting_station_names": [
        "City Hall, Chiangmai",
        "Yupparaj Wittayalai School"
      ],
      "observation_id": "air4thai-aqi_chiang-mai_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 18,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 21,
      "comparison_hint": "City Hall, Chiangmai reached AQI 21"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Chiang Mai public station coverage.",
      "station_count": 2,
      "supporting_station_ids": [
        "35t",
        "36t"
      ],
      "supporting_station_names": [
        "City Hall, Chiangmai",
        "Yupparaj Wittayalai School"
      ],
      "observation_id": "air4thai-aqi_chiang-mai_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 10.8,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_phuket_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Municipal Health Center reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_phuket_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.3,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Krabi public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "119t"
      ],
      "supporting_station_names": [
        "Thara Public Park"
      ],
      "observation_id": "air4thai-aqi_krabi_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Thara Public Park reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Krabi public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "119t"
      ],
      "supporting_station_names": [
        "Thara Public Park"
      ],
      "observation_id": "air4thai-aqi_krabi_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 6.9,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_koh-samui_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Environment Agency Section 14, Surat Thani reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_koh-samui_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.1,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_koh-phangan_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Environment Agency Section 14, Surat Thani reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_koh-phangan_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.1,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "district_or_province_proxy",
      "confidence": "medium",
      "note": "Prefers Pai coverage when present, then falls back to Mae Hong Son province.",
      "station_count": 1,
      "supporting_station_ids": [
        "58t"
      ],
      "supporting_station_names": [
        "Natural Resources and Environment Office, Mae Hongson"
      ],
      "observation_id": "air4thai-aqi_pai_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 13,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 13,
      "comparison_hint": "Natural Resources and Environment Office, Mae Hongson reached AQI 13"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "district_or_province_proxy",
      "confidence": "medium",
      "note": "Prefers Pai coverage when present, then falls back to Mae Hong Son province.",
      "station_count": 1,
      "supporting_station_ids": [
        "58t"
      ],
      "supporting_station_names": [
        "Natural Resources and Environment Office, Mae Hongson"
      ],
      "observation_id": "air4thai-aqi_pai_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.7,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from public provincial station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "21t"
      ],
      "supporting_station_names": [
        "Ayutthaya Witthayalai School"
      ],
      "observation_id": "air4thai-aqi_ayutthaya_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 16,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 16,
      "comparison_hint": "Ayutthaya Witthayalai School reached AQI 16"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from public provincial station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "21t"
      ],
      "supporting_station_names": [
        "Ayutthaya Witthayalai School"
      ],
      "observation_id": "air4thai-aqi_ayutthaya_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 9.7,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from public provincial station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "79t"
      ],
      "supporting_station_names": [
        "Kanchanaburi Meteorological Station"
      ],
      "observation_id": "air4thai-aqi_kanchanaburi_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 30,
      "unit": "AQI",
      "bucket": "good",
      "max_value": 30,
      "comparison_hint": "Kanchanaburi Meteorological Station reached AQI 30"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from public provincial station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "79t"
      ],
      "supporting_station_names": [
        "Kanchanaburi Meteorological Station"
      ],
      "observation_id": "air4thai-aqi_kanchanaburi_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 16.9,
      "unit": "µg/m3",
      "bucket": "good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "regional_proxy_average",
      "confidence": "medium",
      "note": "Uses a regional set of northeastern stations as a proxy.",
      "station_count": 9,
      "supporting_station_ids": [
        "46t",
        "47t",
        "101t",
        "113t",
        "90t",
        "111t",
        "82t",
        "91t"
      ],
      "supporting_station_names": [
        "Hydrogeological Group Water Resources Regional Office4 khonkaen",
        "Municipal Waste Water Pumping Station",
        "Buriram City Hall",
        "Bueng Planchai",
        "Meteorological stations, Sakon Nakhon",
        "Surin Meteorological Center",
        "Nong Thin Public Park, Nong Khai",
        "Nong Prajak Public Park, Udon Thani"
      ],
      "observation_id": "air4thai-aqi_isaan_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 29.3,
      "unit": "AQI",
      "bucket": "good",
      "max_value": 45,
      "comparison_hint": "Hydrogeological Group Water Resources Regional Office4 khonkaen reached AQI 45"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "regional_proxy_average",
      "confidence": "medium",
      "note": "Uses a regional set of northeastern stations as a proxy.",
      "station_count": 9,
      "supporting_station_ids": [
        "46t",
        "47t",
        "101t",
        "113t",
        "90t",
        "111t",
        "82t",
        "91t"
      ],
      "supporting_station_names": [
        "Hydrogeological Group Water Resources Regional Office4 khonkaen",
        "Municipal Waste Water Pumping Station",
        "Buriram City Hall",
        "Bueng Planchai",
        "Meteorological stations, Sakon Nakhon",
        "Surin Meteorological Center",
        "Nong Thin Public Park, Nong Khai",
        "Nong Prajak Public Park, Udon Thani"
      ],
      "observation_id": "air4thai-aqi_isaan_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 16.1,
      "unit": "µg/m3",
      "bucket": "good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_sukhumvit_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_sukhumvit_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_silom-sathorn_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_silom-sathorn_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_riverside-old-town_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_riverside-old-town_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Chiang Mai public station coverage.",
      "station_count": 2,
      "supporting_station_ids": [
        "35t",
        "36t"
      ],
      "supporting_station_names": [
        "City Hall, Chiangmai",
        "Yupparaj Wittayalai School"
      ],
      "observation_id": "air4thai-aqi_nimman_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 18,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 21,
      "comparison_hint": "City Hall, Chiangmai reached AQI 21"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Chiang Mai public station coverage.",
      "station_count": 2,
      "supporting_station_ids": [
        "35t",
        "36t"
      ],
      "supporting_station_names": [
        "City Hall, Chiangmai",
        "Yupparaj Wittayalai School"
      ],
      "observation_id": "air4thai-aqi_nimman_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 10.8,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_ari_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_ari_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Chiang Mai public station coverage.",
      "station_count": 2,
      "supporting_station_ids": [
        "35t",
        "36t"
      ],
      "supporting_station_names": [
        "City Hall, Chiangmai",
        "Yupparaj Wittayalai School"
      ],
      "observation_id": "air4thai-aqi_old-city-chiang-mai_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 18,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 21,
      "comparison_hint": "City Hall, Chiangmai reached AQI 21"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Chiang Mai public station coverage.",
      "station_count": 2,
      "supporting_station_ids": [
        "35t",
        "36t"
      ],
      "supporting_station_names": [
        "City Hall, Chiangmai",
        "Yupparaj Wittayalai School"
      ],
      "observation_id": "air4thai-aqi_old-city-chiang-mai_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 10.8,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_kata-karon_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Municipal Health Center reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_kata-karon_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.3,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_patong_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Municipal Health Center reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_patong_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.3,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_rawai-nai-harn_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Municipal Health Center reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_rawai-nai-harn_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.3,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_phuket-old-town_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Municipal Health Center reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_phuket-old-town_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.3,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_bophut-fishermans-village_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Environment Agency Section 14, Surat Thani reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_bophut-fishermans-village_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.1,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_chaweng_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Environment Agency Section 14, Surat Thani reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_chaweng_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.1,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_lamai_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Environment Agency Section 14, Surat Thani reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_lamai_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.1,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Krabi public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "119t"
      ],
      "supporting_station_names": [
        "Thara Public Park"
      ],
      "observation_id": "air4thai-aqi_ao-nang_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Thara Public Park reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Krabi public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "119t"
      ],
      "supporting_station_names": [
        "Thara Public Park"
      ],
      "observation_id": "air4thai-aqi_ao-nang_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 6.9,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Krabi public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "119t"
      ],
      "supporting_station_names": [
        "Thara Public Park"
      ],
      "observation_id": "air4thai-aqi_railay_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Thara Public Park reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Krabi public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "119t"
      ],
      "supporting_station_names": [
        "Thara Public Park"
      ],
      "observation_id": "air4thai-aqi_railay_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 6.9,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_bts-asok_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_bts-asok_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_bangkok-mochit-2_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_bangkok-mochit-2_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_suvarnabhumi-airport_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_suvarnabhumi-airport_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_don-mueang-airport_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_don-mueang-airport_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_rassada-pier_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Municipal Health Center reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T01:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "province_station_average",
      "confidence": "high",
      "note": "Derived from Phuket public station coverage.",
      "station_count": 1,
      "supporting_station_ids": [
        "43t"
      ],
      "supporting_station_names": [
        "Municipal Health Center"
      ],
      "observation_id": "air4thai-aqi_rassada-pier_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.3,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_na-thon-pier_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Environment Agency Section 14, Surat Thani reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_na-thon-pier_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.1,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_donsak-pier_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 12,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 12,
      "comparison_hint": "Environment Agency Section 14, Surat Thani reached AQI 12"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "province_proxy_average",
      "confidence": "medium",
      "note": "Uses Surat Thani province stations as a Gulf-island proxy until direct island AQI coverage is integrated.",
      "station_count": 1,
      "supporting_station_ids": [
        "42t"
      ],
      "supporting_station_names": [
        "Environment Agency Section 14, Surat Thani"
      ],
      "observation_id": "air4thai-aqi_donsak-pier_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 7.1,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_air4thai-bangkok-urban-cluster_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_air4thai-bangkok-urban-cluster_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_noise4thai-bangkok-roadside-cluster_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_noise4thai-bangkok-roadside-cluster_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_thaiwater-chao-phraya-bangkok_aqi_average",
      "parameter": "aqi_average",
      "metric_label": "Average AQI",
      "value": 19.9,
      "unit": "AQI",
      "bucket": "very good",
      "max_value": 33,
      "comparison_hint": "Odeon Circus reached AQI 33"
    },
    {
      "feed_id": "air4thai-aqi",
      "source_name": "Air4Thai / Pollution Control Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "city_cluster_average",
      "confidence": "high",
      "note": "Derived from Bangkok public station coverage.",
      "station_count": 81,
      "supporting_station_ids": [
        "02t",
        "03t",
        "05t",
        "12t",
        "50t",
        "52t",
        "53t",
        "54t"
      ],
      "supporting_station_names": [
        "Bansomdejchaopraya Rajabhat University",
        "Highway NO.3902 km.13 +600",
        "Thai Meteorological Department ",
        "Nonsi Witthaya School",
        "Chulalongkorn Hospital",
        "Thonburi Power Sub-Station",
        "Chokchai Police Station",
        "National Housing Authority Dindaeng"
      ],
      "observation_id": "air4thai-aqi_thaiwater-chao-phraya-bangkok_pm25_average",
      "parameter": "pm25_average",
      "metric_label": "Average PM2.5",
      "value": 11.6,
      "unit": "µg/m3",
      "bucket": "very good",
      "max_value": null,
      "comparison_hint": "Use with AQI to understand whether PM2.5 is the main comfort breaker."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Northern",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35,
      "unit": "°C",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 2",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 1"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Northern",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 26.1,
      "unit": "°C",
      "source_hint": "Chiang Mai"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 82,
      "unit": "%",
      "source_hint": "Chiang Mai"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 1.9,
      "unit": "km/h",
      "source_hint": "Chiang Mai"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_chiang-mai_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Chiang Mai",
      "comparison_hint": "มีเมฆมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 60,
      "unit": "%",
      "source_hint": "Southern west coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 24.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 33.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "Southern west coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "Southern west coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 27.3,
      "unit": "°C",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 86,
      "unit": "%",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Phuket",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 60,
      "unit": "%",
      "source_hint": "Southern west coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 24.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 33.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "Southern west coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "Southern west coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 25.1,
      "unit": "°C",
      "source_hint": "Krabi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 99,
      "unit": "%",
      "source_hint": "Krabi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Krabi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_krabi_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Krabi",
      "comparison_hint": "มีเมฆบางส่วน"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Southern east coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 7,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 22.5,
      "unit": "km/h",
      "source_hint": "Southern east coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1,
      "unit": "m",
      "source_hint": "Southern east coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 28.5,
      "unit": "°C",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 91,
      "unit": "%",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-samui_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Koh Samui",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Southern east coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 7,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 22.5,
      "unit": "km/h",
      "source_hint": "Southern east coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1,
      "unit": "m",
      "source_hint": "Southern east coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 28.5,
      "unit": "°C",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 91,
      "unit": "%",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_koh-phangan_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Koh Samui",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Northern",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35,
      "unit": "°C",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 2",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 1"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Northern",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 24.8,
      "unit": "°C",
      "source_hint": "Mae Hong Son"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 92,
      "unit": "%",
      "source_hint": "Mae Hong Son"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Mae Hong Son"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Mae Hong Son proxy station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_pai_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 8.3,
      "unit": "mm",
      "source_hint": "Mae Hong Son",
      "comparison_hint": "มีหมอกน้ำค้าง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Central",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Central"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 36,
      "unit": "°C",
      "source_hint": "Central"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Central"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 11,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Central",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Central"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 27.2,
      "unit": "°C",
      "source_hint": "Ayutthaya"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 96,
      "unit": "%",
      "source_hint": "Ayutthaya"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Ayutthaya"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Ayutthaya station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_ayutthaya_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Ayutthaya",
      "comparison_hint": "มีหมอกน้ำค้าง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Central",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Central"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 36,
      "unit": "°C",
      "source_hint": "Central"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Central"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 11,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Central",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Central"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 27.5,
      "unit": "°C",
      "source_hint": "Kanchanaburi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 81,
      "unit": "%",
      "source_hint": "Kanchanaburi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Kanchanaburi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Kanchanaburi station plus central regional forecast.",
      "observation_id": "tmd-weather-surface_kanchanaburi_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Kanchanaburi",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 30,
      "unit": "%",
      "source_hint": "Northeastern",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Northeastern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 36,
      "unit": "°C",
      "source_hint": "Northeastern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Northeastern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 9,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Storm NALGAE",
        "พายุ “นัลแก”",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Northeastern",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Northeastern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 27.1,
      "unit": "°C",
      "source_hint": "Khon Kaen"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 87,
      "unit": "%",
      "source_hint": "Khon Kaen"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Khon Kaen"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Khon Kaen proxy station plus northeastern regional forecast.",
      "observation_id": "tmd-weather-surface_isaan_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Khon Kaen",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_sukhumvit_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_silom-sathorn_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_riverside-old-town_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Northern",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35,
      "unit": "°C",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 2",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 1"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Northern",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 26.1,
      "unit": "°C",
      "source_hint": "Chiang Mai"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 82,
      "unit": "%",
      "source_hint": "Chiang Mai"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 1.9,
      "unit": "km/h",
      "source_hint": "Chiang Mai"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_nimman_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Chiang Mai",
      "comparison_hint": "มีเมฆมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_ari_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Northern",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35,
      "unit": "°C",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 2",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 1"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Northern",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Northern"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 26.1,
      "unit": "°C",
      "source_hint": "Chiang Mai"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 82,
      "unit": "%",
      "source_hint": "Chiang Mai"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 1.9,
      "unit": "km/h",
      "source_hint": "Chiang Mai"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Chiang Mai station plus northern regional forecast.",
      "observation_id": "tmd-weather-surface_old-city-chiang-mai_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Chiang Mai",
      "comparison_hint": "มีเมฆมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 60,
      "unit": "%",
      "source_hint": "Southern west coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 24.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 33.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "Southern west coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "Southern west coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 27.3,
      "unit": "°C",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 86,
      "unit": "%",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_kata-karon_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Phuket",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 60,
      "unit": "%",
      "source_hint": "Southern west coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 24.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 33.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "Southern west coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "Southern west coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 27.3,
      "unit": "°C",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 86,
      "unit": "%",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_patong_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Phuket",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 60,
      "unit": "%",
      "source_hint": "Southern west coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 24.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 33.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "Southern west coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "Southern west coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 27.3,
      "unit": "°C",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 86,
      "unit": "%",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rawai-nai-harn_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Phuket",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 60,
      "unit": "%",
      "source_hint": "Southern west coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 24.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 33.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "Southern west coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "Southern west coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 27.3,
      "unit": "°C",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 86,
      "unit": "%",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_phuket-old-town_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Phuket",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Southern east coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 7,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 22.5,
      "unit": "km/h",
      "source_hint": "Southern east coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1,
      "unit": "m",
      "source_hint": "Southern east coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 28.5,
      "unit": "°C",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 91,
      "unit": "%",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_bophut-fishermans-village_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Koh Samui",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Southern east coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 7,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 22.5,
      "unit": "km/h",
      "source_hint": "Southern east coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1,
      "unit": "m",
      "source_hint": "Southern east coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 28.5,
      "unit": "°C",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 91,
      "unit": "%",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_chaweng_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Koh Samui",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Southern east coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 7,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 22.5,
      "unit": "km/h",
      "source_hint": "Southern east coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1,
      "unit": "m",
      "source_hint": "Southern east coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 28.5,
      "unit": "°C",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 91,
      "unit": "%",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_lamai_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Koh Samui",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 60,
      "unit": "%",
      "source_hint": "Southern west coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 24.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 33.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "Southern west coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "Southern west coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 25.1,
      "unit": "°C",
      "source_hint": "Krabi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 99,
      "unit": "%",
      "source_hint": "Krabi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Krabi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_ao-nang_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Krabi",
      "comparison_hint": "มีเมฆบางส่วน"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 60,
      "unit": "%",
      "source_hint": "Southern west coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 24.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 33.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "Southern west coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "Southern west coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 25.1,
      "unit": "°C",
      "source_hint": "Krabi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 99,
      "unit": "%",
      "source_hint": "Krabi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Krabi"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Krabi station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_railay_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Krabi",
      "comparison_hint": "มีเมฆบางส่วน"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bts-asok_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_bangkok-mochit-2_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_suvarnabhumi-airport_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_don-mueang-airport_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 60,
      "unit": "%",
      "source_hint": "Southern west coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 24.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 33.5,
      "unit": "°C",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 5,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "Southern west coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "Southern west coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern west coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 27.3,
      "unit": "°C",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 86,
      "unit": "%",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Phuket"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct Phuket station plus southern west-coast regional forecast.",
      "observation_id": "tmd-weather-surface_rassada-pier_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Phuket",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Southern east coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 7,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 22.5,
      "unit": "km/h",
      "source_hint": "Southern east coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1,
      "unit": "m",
      "source_hint": "Southern east coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 28.5,
      "unit": "°C",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 91,
      "unit": "%",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_na-thon-pier_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Koh Samui",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Southern east coast",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 25,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 7,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "Cool to Cold in Upper Thailand and Strong Wind-Waves in Gulf No. 11 (357/2022)",
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "ประกาศกรมอุตุนิยมวิทยา \"อากาศแปรปรวนบริเวณประเทศไทยตอนบนและฝนตกหนักบริเวณภาคใต้\" 3"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 22.5,
      "unit": "km/h",
      "source_hint": "Southern east coast",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1,
      "unit": "m",
      "source_hint": "Southern east coast",
      "comparison_hint": "Thunderstorm wave height can reach about 2.3 m."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2.3,
      "unit": "m",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Southern east coast"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 28.5,
      "unit": "°C",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 91,
      "unit": "%",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Koh Samui"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_rss_station_and_region",
      "confidence": "medium",
      "note": "Samui station plus southern east-coast regional forecast, reused for Samui-chain ferry proxies.",
      "observation_id": "tmd-weather-surface_donsak-pier_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Koh Samui",
      "comparison_hint": "มีเมฆเป็นส่วนมาก"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_air4thai-bangkok-urban-cluster_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_noise4thai-bangkok-roadside-cluster_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_forecast_rain_probability",
      "parameter": "forecast_rain_probability",
      "metric_label": "Forecast rain probability",
      "value": 40,
      "unit": "%",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "No heavy-rain wording is present in the regional forecast."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_forecast_temp_min",
      "parameter": "forecast_temp_min",
      "metric_label": "Forecast minimum temperature",
      "value": 26.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_forecast_temp_max",
      "parameter": "forecast_temp_max",
      "metric_label": "Forecast maximum temperature",
      "value": 35.5,
      "unit": "°C",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 0,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_warning_match_count",
      "parameter": "warning_match_count",
      "metric_label": "Matched warning items",
      "value": 10,
      "unit": "alerts",
      "source_hint": "TMD warning news",
      "supporting_titles": [
        "อากาศหนาวเย็นบริเวณประเทศไทยตอนบนและคลื่นลมแรงบริเวณอ่าวไทย ฉบับที่ 11 (357/2565) (มีผลกระทบตั้งแต่วันที่ 19-20 ธันวาคม 2565)",
        "พยากรณ์อากาศสำหรับช่วงการประชุม APEC 2022 บริเวณกรุงเทพมหานคร นนทบุรี และสมุทรปราการ (ระหว่างวันที่ ๑๖ - ๑๘ พฤศจิกายน ๒๕๖๕)",
        "Storm NALGAE"
      ]
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 15,
      "unit": "km/h",
      "source_hint": "Bangkok and vicinity",
      "comparison_hint": "Parsed from the regional TMD marine-weather text where current sea conditions are published."
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "Bangkok and vicinity"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_station_temperature",
      "parameter": "station_temperature",
      "metric_label": "Station temperature",
      "value": 29.9,
      "unit": "°C",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_station_humidity",
      "parameter": "station_humidity",
      "metric_label": "Station humidity",
      "value": 70,
      "unit": "%",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_station_wind_speed",
      "parameter": "station_wind_speed",
      "metric_label": "Station wind speed",
      "value": 0,
      "unit": "km/h",
      "source_hint": "Bangkok"
    },
    {
      "feed_id": "tmd-weather-surface",
      "source_name": "Thai Meteorological Department",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T00:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_rss_station_and_region",
      "confidence": "high",
      "note": "Direct TMD Bangkok station plus Bangkok and vicinity regional forecast.",
      "observation_id": "tmd-weather-surface_thaiwater-chao-phraya-bangkok_station_rainfall_today",
      "parameter": "station_rainfall_today",
      "metric_label": "Station rainfall today",
      "value": 0,
      "unit": "mm",
      "source_hint": "Bangkok",
      "comparison_hint": "ท้องฟ้าโปร่ง"
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Phuket gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, which is stronger than a generic weather proxy for boat-day burden.",
      "observation_id": "tmd-shipping-forecast_phuket_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Andaman Sea and Malacca Strait currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Phuket gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, which is stronger than a generic weather proxy for boat-day burden.",
      "observation_id": "tmd-shipping-forecast_phuket_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Phuket gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, which is stronger than a generic weather proxy for boat-day burden.",
      "observation_id": "tmd-shipping-forecast_phuket_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Phuket gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, which is stronger than a generic weather proxy for boat-day burden.",
      "observation_id": "tmd-shipping-forecast_phuket_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Phuket gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, which is stronger than a generic weather proxy for boat-day burden.",
      "observation_id": "tmd-shipping-forecast_phuket_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Krabi gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, useful for coast and boat-day burden.",
      "observation_id": "tmd-shipping-forecast_krabi_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Andaman Sea and Malacca Strait currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Krabi gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, useful for coast and boat-day burden.",
      "observation_id": "tmd-shipping-forecast_krabi_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Krabi gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, useful for coast and boat-day burden.",
      "observation_id": "tmd-shipping-forecast_krabi_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Krabi gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, useful for coast and boat-day burden.",
      "observation_id": "tmd-shipping-forecast_krabi_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Krabi gets shipping-forecast wind, wave, and thunder wording from the public TMD Andaman shipping section, useful for coast and boat-day burden.",
      "observation_id": "tmd-shipping-forecast_krabi_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Samui gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section, useful for island-transfer burden and coast-day realism.",
      "observation_id": "tmd-shipping-forecast_koh-samui_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 25,
      "unit": "km/h",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Gulf of Thailand currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Samui gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section, useful for island-transfer burden and coast-day realism.",
      "observation_id": "tmd-shipping-forecast_koh-samui_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Samui gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section, useful for island-transfer burden and coast-day realism.",
      "observation_id": "tmd-shipping-forecast_koh-samui_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Samui gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section, useful for island-transfer burden and coast-day realism.",
      "observation_id": "tmd-shipping-forecast_koh-samui_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Samui gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section, useful for island-transfer burden and coast-day realism.",
      "observation_id": "tmd-shipping-forecast_koh-samui_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Phangan gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section as a practical ferry and boat-day burden layer.",
      "observation_id": "tmd-shipping-forecast_koh-phangan_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 25,
      "unit": "km/h",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Gulf of Thailand currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Phangan gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section as a practical ferry and boat-day burden layer.",
      "observation_id": "tmd-shipping-forecast_koh-phangan_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Phangan gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section as a practical ferry and boat-day burden layer.",
      "observation_id": "tmd-shipping-forecast_koh-phangan_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Phangan gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section as a practical ferry and boat-day burden layer.",
      "observation_id": "tmd-shipping-forecast_koh-phangan_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Koh Phangan gets shipping-forecast wind, wave, and thunder wording from the public TMD Gulf shipping section as a practical ferry and boat-day burden layer.",
      "observation_id": "tmd-shipping-forecast_koh-phangan_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Kata / Karon uses the public TMD Andaman shipping section as a marine burden layer behind beach and island-day expectations.",
      "observation_id": "tmd-shipping-forecast_kata-karon_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Andaman Sea and Malacca Strait currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Kata / Karon uses the public TMD Andaman shipping section as a marine burden layer behind beach and island-day expectations.",
      "observation_id": "tmd-shipping-forecast_kata-karon_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Kata / Karon uses the public TMD Andaman shipping section as a marine burden layer behind beach and island-day expectations.",
      "observation_id": "tmd-shipping-forecast_kata-karon_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Kata / Karon uses the public TMD Andaman shipping section as a marine burden layer behind beach and island-day expectations.",
      "observation_id": "tmd-shipping-forecast_kata-karon_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Kata / Karon uses the public TMD Andaman shipping section as a marine burden layer behind beach and island-day expectations.",
      "observation_id": "tmd-shipping-forecast_kata-karon_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Patong uses the public TMD Andaman shipping section as a marine burden layer behind beach and speedboat expectations.",
      "observation_id": "tmd-shipping-forecast_patong_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Andaman Sea and Malacca Strait currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Patong uses the public TMD Andaman shipping section as a marine burden layer behind beach and speedboat expectations.",
      "observation_id": "tmd-shipping-forecast_patong_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Patong uses the public TMD Andaman shipping section as a marine burden layer behind beach and speedboat expectations.",
      "observation_id": "tmd-shipping-forecast_patong_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Patong uses the public TMD Andaman shipping section as a marine burden layer behind beach and speedboat expectations.",
      "observation_id": "tmd-shipping-forecast_patong_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Patong uses the public TMD Andaman shipping section as a marine burden layer behind beach and speedboat expectations.",
      "observation_id": "tmd-shipping-forecast_patong_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Rawai / Nai Harn uses the public TMD Andaman shipping section as a south-coast marine burden layer behind long-tail and island-day planning.",
      "observation_id": "tmd-shipping-forecast_rawai-nai-harn_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Andaman Sea and Malacca Strait currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Rawai / Nai Harn uses the public TMD Andaman shipping section as a south-coast marine burden layer behind long-tail and island-day planning.",
      "observation_id": "tmd-shipping-forecast_rawai-nai-harn_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Rawai / Nai Harn uses the public TMD Andaman shipping section as a south-coast marine burden layer behind long-tail and island-day planning.",
      "observation_id": "tmd-shipping-forecast_rawai-nai-harn_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Rawai / Nai Harn uses the public TMD Andaman shipping section as a south-coast marine burden layer behind long-tail and island-day planning.",
      "observation_id": "tmd-shipping-forecast_rawai-nai-harn_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Rawai / Nai Harn uses the public TMD Andaman shipping section as a south-coast marine burden layer behind long-tail and island-day planning.",
      "observation_id": "tmd-shipping-forecast_rawai-nai-harn_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Bophut / Fisherman's Village uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_bophut-fishermans-village_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 25,
      "unit": "km/h",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Gulf of Thailand currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Bophut / Fisherman's Village uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_bophut-fishermans-village_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Bophut / Fisherman's Village uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_bophut-fishermans-village_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Bophut / Fisherman's Village uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_bophut-fishermans-village_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Bophut / Fisherman's Village uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_bophut-fishermans-village_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Chaweng uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_chaweng_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 25,
      "unit": "km/h",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Gulf of Thailand currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Chaweng uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_chaweng_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Chaweng uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_chaweng_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Chaweng uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_chaweng_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Chaweng uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_chaweng_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Lamai uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_lamai_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 25,
      "unit": "km/h",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Gulf of Thailand currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Lamai uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_lamai_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Lamai uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_lamai_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Lamai uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_lamai_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Lamai uses the public TMD Gulf shipping section as an island-transfer and sea-state burden layer.",
      "observation_id": "tmd-shipping-forecast_lamai_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Ao Nang uses the public TMD Andaman shipping section as a marine burden layer behind boat-day and transfer expectations.",
      "observation_id": "tmd-shipping-forecast_ao-nang_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Andaman Sea and Malacca Strait currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Ao Nang uses the public TMD Andaman shipping section as a marine burden layer behind boat-day and transfer expectations.",
      "observation_id": "tmd-shipping-forecast_ao-nang_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Ao Nang uses the public TMD Andaman shipping section as a marine burden layer behind boat-day and transfer expectations.",
      "observation_id": "tmd-shipping-forecast_ao-nang_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Ao Nang uses the public TMD Andaman shipping section as a marine burden layer behind boat-day and transfer expectations.",
      "observation_id": "tmd-shipping-forecast_ao-nang_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium-high",
      "note": "Ao Nang uses the public TMD Andaman shipping section as a marine burden layer behind boat-day and transfer expectations.",
      "observation_id": "tmd-shipping-forecast_ao-nang_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium",
      "note": "Railay uses the public TMD Andaman shipping section as an honest weather and wave burden layer behind its boat dependence.",
      "observation_id": "tmd-shipping-forecast_railay_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Andaman Sea and Malacca Strait currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium",
      "note": "Railay uses the public TMD Andaman shipping section as an honest weather and wave burden layer behind its boat dependence.",
      "observation_id": "tmd-shipping-forecast_railay_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium",
      "note": "Railay uses the public TMD Andaman shipping section as an honest weather and wave burden layer behind its boat dependence.",
      "observation_id": "tmd-shipping-forecast_railay_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium",
      "note": "Railay uses the public TMD Andaman shipping section as an honest weather and wave burden layer behind its boat dependence.",
      "observation_id": "tmd-shipping-forecast_railay_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "tmd_shipping_forecast_html",
      "confidence": "medium",
      "note": "Railay uses the public TMD Andaman shipping section as an honest weather and wave burden layer behind its boat dependence.",
      "observation_id": "tmd-shipping-forecast_railay_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Rassada Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_rassada-pier_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Andaman Sea and Malacca Strait currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Rassada Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_rassada-pier_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Rassada Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_rassada-pier_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Rassada Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_rassada-pier_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Rassada Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_rassada-pier_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang-pier",
      "entity_name": "Ao Nang Pier",
      "entity_type": "pier",
      "entity_path": "/entities/ao-nang-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Ao Nang Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_ao-nang-pier_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 27.5,
      "unit": "km/h",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Andaman Sea and Malacca Strait currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang-pier",
      "entity_name": "Ao Nang Pier",
      "entity_type": "pier",
      "entity_path": "/entities/ao-nang-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Ao Nang Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_ao-nang-pier_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang-pier",
      "entity_name": "Ao Nang Pier",
      "entity_type": "pier",
      "entity_path": "/entities/ao-nang-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Ao Nang Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_ao-nang-pier_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang-pier",
      "entity_name": "Ao Nang Pier",
      "entity_type": "pier",
      "entity_path": "/entities/ao-nang-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Ao Nang Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_ao-nang-pier_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "ao-nang-pier",
      "entity_name": "Ao Nang Pier",
      "entity_type": "pier",
      "entity_path": "/entities/ao-nang-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Ao Nang Pier gets direct Andaman shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_ao-nang-pier_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Andaman Sea and Malacca Strait",
      "supporting_station_names": [
        "The Andaman Sea and Malacca Strait"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Na Thon Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_na-thon-pier_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 25,
      "unit": "km/h",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Gulf of Thailand currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Na Thon Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_na-thon-pier_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Na Thon Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_na-thon-pier_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Na Thon Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_na-thon-pier_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Na Thon Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_na-thon-pier_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Donsak Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_donsak-pier_marine_wind_speed_average",
      "parameter": "marine_wind_speed_average",
      "metric_label": "Marine wind speed average",
      "value": 25,
      "unit": "km/h",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "The Gulf of Thailand currently publishes 1 matched marine section(s) for this scope."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Donsak Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_donsak-pier_marine_wave_height_average",
      "parameter": "marine_wave_height_average",
      "metric_label": "Marine wave height",
      "value": 1.5,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ],
      "comparison_hint": "Thunderstorm wave wording reaches about 2.0 m in the matched shipping section(s)."
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Donsak Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_donsak-pier_marine_wave_height_thunder",
      "parameter": "marine_wave_height_thunder",
      "metric_label": "Thunderstorm wave height",
      "value": 2,
      "unit": "m",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Donsak Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_donsak-pier_marine_thunderstorm_flag",
      "parameter": "marine_thunderstorm_flag",
      "metric_label": "Marine thunderstorm flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "tmd-shipping-forecast",
      "source_name": "TMD Shipping Forecast",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "tmd_shipping_forecast_html",
      "confidence": "high",
      "note": "Donsak Pier gets direct Gulf shipping-forecast wave, wind, and thunder wording from the public TMD marine page.",
      "observation_id": "tmd-shipping-forecast_donsak-pier_forecast_heavy_rain_flag",
      "parameter": "forecast_heavy_rain_flag",
      "metric_label": "Heavy-rain forecast flag",
      "value": 1,
      "unit": "flag",
      "source_hint": "The Gulf of Thailand",
      "supporting_station_names": [
        "The Gulf of Thailand"
      ],
      "source_names": [
        "TMD Shipping Forecast"
      ]
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Bangkok destination proxy from Suvarnabhumi and Don Mueang METAR and TAF weather-operability context.",
      "airport_count": 2,
      "supporting_station_ids": [
        "VTBS",
        "VTBD"
      ],
      "supporting_station_names": [
        "Bangkok/Suvarnabhumi Arpt, 20, TH",
        "Bangkok Intl, 10, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_bangkok_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTBS currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Bangkok destination proxy from Suvarnabhumi and Don Mueang METAR and TAF weather-operability context.",
      "airport_count": 2,
      "supporting_station_ids": [
        "VTBS",
        "VTBD"
      ],
      "supporting_station_names": [
        "Bangkok/Suvarnabhumi Arpt, 20, TH",
        "Bangkok Intl, 10, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_bangkok_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTBS visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Bangkok destination proxy from Suvarnabhumi and Don Mueang METAR and TAF weather-operability context.",
      "airport_count": 2,
      "supporting_station_ids": [
        "VTBS",
        "VTBD"
      ],
      "supporting_station_names": [
        "Bangkok/Suvarnabhumi Arpt, 20, TH",
        "Bangkok Intl, 10, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_bangkok_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 30,
      "unit": "score",
      "comparison_hint": "VTBS forecast highlights thunderstorm wording, CB cloud type, low forecast visibility."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Bangkok destination proxy from Suvarnabhumi and Don Mueang METAR and TAF weather-operability context.",
      "airport_count": 2,
      "supporting_station_ids": [
        "VTBS",
        "VTBD"
      ],
      "supporting_station_names": [
        "Bangkok/Suvarnabhumi Arpt, 20, TH",
        "Bangkok Intl, 10, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_bangkok_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 1,
      "unit": "flag",
      "comparison_hint": "At least one mapped airport forecast includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Chiang Mai destination proxy from Chiang Mai airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTCC"
      ],
      "supporting_station_names": [
        "Chiang Mai Intl, 50, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_chiang-mai_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTCC currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Chiang Mai destination proxy from Chiang Mai airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTCC"
      ],
      "supporting_station_names": [
        "Chiang Mai Intl, 50, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_chiang-mai_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTCC visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Chiang Mai destination proxy from Chiang Mai airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTCC"
      ],
      "supporting_station_names": [
        "Chiang Mai Intl, 50, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_chiang-mai_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 30,
      "unit": "score",
      "comparison_hint": "VTCC forecast highlights thunderstorm wording, CB cloud type, low forecast visibility."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Chiang Mai destination proxy from Chiang Mai airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTCC"
      ],
      "supporting_station_names": [
        "Chiang Mai Intl, 50, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_chiang-mai_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 1,
      "unit": "flag",
      "comparison_hint": "At least one mapped airport forecast includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Phuket destination proxy from Phuket airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSP"
      ],
      "supporting_station_names": [
        "Phuket Intl, 83, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_phuket_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTSP currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Phuket destination proxy from Phuket airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSP"
      ],
      "supporting_station_names": [
        "Phuket Intl, 83, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_phuket_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTSP visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Phuket destination proxy from Phuket airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSP"
      ],
      "supporting_station_names": [
        "Phuket Intl, 83, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_phuket_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 58,
      "unit": "score",
      "comparison_hint": "VTSP forecast highlights thunderstorm wording, CB cloud type."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Phuket destination proxy from Phuket airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSP"
      ],
      "supporting_station_names": [
        "Phuket Intl, 83, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_phuket_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 1,
      "unit": "flag",
      "comparison_hint": "At least one mapped airport forecast includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Krabi destination proxy from Krabi airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSG"
      ],
      "supporting_station_names": [
        "Krabi Arpt, 81, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_krabi_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTSG currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Krabi destination proxy from Krabi airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSG"
      ],
      "supporting_station_names": [
        "Krabi Arpt, 81, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_krabi_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTSG visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Krabi destination proxy from Krabi airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSG"
      ],
      "supporting_station_names": [
        "Krabi Arpt, 81, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_krabi_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 58,
      "unit": "score",
      "comparison_hint": "VTSG forecast highlights thunderstorm wording, CB cloud type."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Krabi destination proxy from Krabi airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSG"
      ],
      "supporting_station_names": [
        "Krabi Arpt, 81, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_krabi_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 1,
      "unit": "flag",
      "comparison_hint": "At least one mapped airport forecast includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Samui destination proxy from Samui airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_koh-samui_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTSM currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Samui destination proxy from Samui airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_koh-samui_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTSM visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Samui destination proxy from Samui airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_koh-samui_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "No major forecast disruption trigger is currently present."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Samui destination proxy from Samui airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_koh-samui_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 0,
      "unit": "flag",
      "comparison_hint": "No mapped airport forecast currently includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Samui destination proxy from Samui airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_koh-phangan_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTSM currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Samui destination proxy from Samui airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_koh-phangan_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTSM visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Samui destination proxy from Samui airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_koh-phangan_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "No major forecast disruption trigger is currently present."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Samui destination proxy from Samui airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_koh-phangan_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 0,
      "unit": "flag",
      "comparison_hint": "No mapped airport forecast currently includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium",
      "note": "Pattaya / Chonburi destination proxy from U-Tapao airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBU"
      ],
      "supporting_station_names": [
        "Rayong/U-Tapao Intl, 21, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_pattaya-chonburi_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTBU currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium",
      "note": "Pattaya / Chonburi destination proxy from U-Tapao airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBU"
      ],
      "supporting_station_names": [
        "Rayong/U-Tapao Intl, 21, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_pattaya-chonburi_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTBU visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium",
      "note": "Pattaya / Chonburi destination proxy from U-Tapao airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBU"
      ],
      "supporting_station_names": [
        "Rayong/U-Tapao Intl, 21, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_pattaya-chonburi_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "No major forecast disruption trigger is currently present."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium",
      "note": "Pattaya / Chonburi destination proxy from U-Tapao airport METAR and TAF weather-operability context.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBU"
      ],
      "supporting_station_names": [
        "Rayong/U-Tapao Intl, 21, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_pattaya-chonburi_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 0,
      "unit": "flag",
      "comparison_hint": "No mapped airport forecast currently includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Suvarnabhumi METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBS"
      ],
      "supporting_station_names": [
        "Bangkok/Suvarnabhumi Arpt, 20, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_suvarnabhumi-airport_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTBS currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Suvarnabhumi METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBS"
      ],
      "supporting_station_names": [
        "Bangkok/Suvarnabhumi Arpt, 20, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_suvarnabhumi-airport_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTBS visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Suvarnabhumi METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBS"
      ],
      "supporting_station_names": [
        "Bangkok/Suvarnabhumi Arpt, 20, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_suvarnabhumi-airport_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 30,
      "unit": "score",
      "comparison_hint": "VTBS forecast highlights thunderstorm wording, CB cloud type, low forecast visibility."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Suvarnabhumi METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBS"
      ],
      "supporting_station_names": [
        "Bangkok/Suvarnabhumi Arpt, 20, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_suvarnabhumi-airport_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 1,
      "unit": "flag",
      "comparison_hint": "At least one mapped airport forecast includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Don Mueang METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBD"
      ],
      "supporting_station_names": [
        "Bangkok Intl, 10, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_don-mueang-airport_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTBD currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Don Mueang METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBD"
      ],
      "supporting_station_names": [
        "Bangkok Intl, 10, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_don-mueang-airport_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTBD visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Don Mueang METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBD"
      ],
      "supporting_station_names": [
        "Bangkok Intl, 10, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_don-mueang-airport_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 30,
      "unit": "score",
      "comparison_hint": "VTBD forecast highlights thunderstorm wording, CB cloud type, low forecast visibility."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Don Mueang METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBD"
      ],
      "supporting_station_names": [
        "Bangkok Intl, 10, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_don-mueang-airport_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 1,
      "unit": "flag",
      "comparison_hint": "At least one mapped airport forecast includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Chiang Mai airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTCC"
      ],
      "supporting_station_names": [
        "Chiang Mai Intl, 50, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_chiang-mai-airport_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTCC currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Chiang Mai airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTCC"
      ],
      "supporting_station_names": [
        "Chiang Mai Intl, 50, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_chiang-mai-airport_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTCC visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Chiang Mai airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTCC"
      ],
      "supporting_station_names": [
        "Chiang Mai Intl, 50, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_chiang-mai-airport_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 30,
      "unit": "score",
      "comparison_hint": "VTCC forecast highlights thunderstorm wording, CB cloud type, low forecast visibility."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Chiang Mai airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTCC"
      ],
      "supporting_station_names": [
        "Chiang Mai Intl, 50, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_chiang-mai-airport_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 1,
      "unit": "flag",
      "comparison_hint": "At least one mapped airport forecast includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Phuket airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSP"
      ],
      "supporting_station_names": [
        "Phuket Intl, 83, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_phuket-airport_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTSP currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Phuket airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSP"
      ],
      "supporting_station_names": [
        "Phuket Intl, 83, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_phuket-airport_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTSP visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Phuket airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSP"
      ],
      "supporting_station_names": [
        "Phuket Intl, 83, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_phuket-airport_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 58,
      "unit": "score",
      "comparison_hint": "VTSP forecast highlights thunderstorm wording, CB cloud type."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "aviationweather_metar_taf",
      "confidence": "high",
      "note": "Direct Phuket airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSP"
      ],
      "supporting_station_names": [
        "Phuket Intl, 83, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_phuket-airport_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 1,
      "unit": "flag",
      "comparison_hint": "At least one mapped airport forecast includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "krabi-airport",
      "entity_name": "Krabi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/krabi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Direct Krabi airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSG"
      ],
      "supporting_station_names": [
        "Krabi Arpt, 81, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_krabi-airport_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTSG currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "krabi-airport",
      "entity_name": "Krabi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/krabi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Direct Krabi airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSG"
      ],
      "supporting_station_names": [
        "Krabi Arpt, 81, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_krabi-airport_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTSG visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "krabi-airport",
      "entity_name": "Krabi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/krabi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Direct Krabi airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSG"
      ],
      "supporting_station_names": [
        "Krabi Arpt, 81, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_krabi-airport_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 58,
      "unit": "score",
      "comparison_hint": "VTSG forecast highlights thunderstorm wording, CB cloud type."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "krabi-airport",
      "entity_name": "Krabi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/krabi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Direct Krabi airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSG"
      ],
      "supporting_station_names": [
        "Krabi Arpt, 81, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_krabi-airport_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 1,
      "unit": "flag",
      "comparison_hint": "At least one mapped airport forecast includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "u-tapao-airport",
      "entity_name": "U-Tapao Airport",
      "entity_type": "airport",
      "entity_path": "/entities/u-tapao-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium",
      "note": "Direct U-Tapao airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBU"
      ],
      "supporting_station_names": [
        "Rayong/U-Tapao Intl, 21, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_u-tapao-airport_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTBU currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "u-tapao-airport",
      "entity_name": "U-Tapao Airport",
      "entity_type": "airport",
      "entity_path": "/entities/u-tapao-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium",
      "note": "Direct U-Tapao airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBU"
      ],
      "supporting_station_names": [
        "Rayong/U-Tapao Intl, 21, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_u-tapao-airport_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTBU visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "u-tapao-airport",
      "entity_name": "U-Tapao Airport",
      "entity_type": "airport",
      "entity_path": "/entities/u-tapao-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium",
      "note": "Direct U-Tapao airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBU"
      ],
      "supporting_station_names": [
        "Rayong/U-Tapao Intl, 21, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_u-tapao-airport_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "No major forecast disruption trigger is currently present."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "u-tapao-airport",
      "entity_name": "U-Tapao Airport",
      "entity_type": "airport",
      "entity_path": "/entities/u-tapao-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium",
      "note": "Direct U-Tapao airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTBU"
      ],
      "supporting_station_names": [
        "Rayong/U-Tapao Intl, 21, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_u-tapao-airport_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 0,
      "unit": "flag",
      "comparison_hint": "No mapped airport forecast currently includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "samui-airport",
      "entity_name": "Samui Airport",
      "entity_type": "airport",
      "entity_path": "/entities/samui-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Direct Samui airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_samui-airport_airport_flight_rules_score",
      "parameter": "airport_flight_rules_score",
      "metric_label": "Airport flight-rules score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "VTSM currently reports VFR."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "samui-airport",
      "entity_name": "Samui Airport",
      "entity_type": "airport",
      "entity_path": "/entities/samui-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Direct Samui airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_samui-airport_airport_visibility_score",
      "parameter": "airport_visibility_score",
      "metric_label": "Airport visibility score",
      "value": 92,
      "unit": "score",
      "comparison_hint": "VTSM visibility is about 6.1 SM."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "samui-airport",
      "entity_name": "Samui Airport",
      "entity_type": "airport",
      "entity_path": "/entities/samui-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Direct Samui airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_samui-airport_airport_forecast_disruption_score",
      "parameter": "airport_forecast_disruption_score",
      "metric_label": "Airport forecast disruption score",
      "value": 94,
      "unit": "score",
      "comparison_hint": "No major forecast disruption trigger is currently present."
    },
    {
      "feed_id": "aviationweather-airport-status",
      "source_name": "NOAA Aviation Weather API",
      "entity_id": "samui-airport",
      "entity_name": "Samui Airport",
      "entity_type": "airport",
      "entity_path": "/entities/samui-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "aviationweather_metar_taf",
      "confidence": "medium-high",
      "note": "Direct Samui airport METAR and TAF weather-operability context from the NOAA Aviation Weather API.",
      "airport_count": 1,
      "supporting_station_ids": [
        "VTSM"
      ],
      "supporting_station_names": [
        "Samui Intl, 80, TH"
      ],
      "source_names": [
        "NOAA Aviation Weather API"
      ],
      "observation_id": "aviationweather-airport-status_samui-airport_airport_convective_forecast_flag",
      "parameter": "airport_convective_forecast_flag",
      "metric_label": "Airport convective forecast flag",
      "value": 0,
      "unit": "flag",
      "comparison_hint": "No mapped airport forecast currently includes thunderstorm or CB wording."
    },
    {
      "feed_id": "aot-airport-ground-services",
      "source_name": "AOT airport ground transport pages",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-05-15T11:11:26.060Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_ground_service_pages",
      "confidence": "high",
      "note": "Official AOT ground-service and pickup-rule context from Suvarnabhumi public transport pages. Served from the current build snapshot to reduce runtime AOT page fanout during refreshes.",
      "observation_id": "aot-airport-ground-services_suvarnabhumi-airport_official_airport_ground_service_score",
      "parameter": "official_airport_ground_service_score",
      "metric_label": "Official airport ground-service support score",
      "value": 96,
      "unit": "score",
      "service_page_count": 3,
      "location_count": 2,
      "taxi_support_flag": 1,
      "grab_support_flag": 1,
      "rental_support_flag": 1,
      "rail_link_flag": 1,
      "shuttle_bus_flag": 1,
      "pickup_rule_flag": 1,
      "open_24h_flag": 1,
      "supporting_page_titles": [
        "Ways to transport TO - FROM Suvarnabhumi Airport",
        "Public Taxi",
        "GRAB TAXI (pick-up and drop-off points)"
      ],
      "supporting_page_urls": [
        "https://suvarnabhumi.airportthai.co.th/service/airport-guide/detail/Transportation_BKK",
        "https://suvarnabhumi.airportthai.co.th/service/transportation/detail/304",
        "https://suvarnabhumi.airportthai.co.th/service/transportation/detail/927"
      ],
      "supporting_service_features": [
        "grab",
        "guide",
        "open24h",
        "pickup",
        "rail",
        "rental",
        "shuttle",
        "taxi"
      ],
      "source_names": [
        "AOT airport ground transport pages",
        "AOT Suvarnabhumi car rental services",
        "AOT Suvarnabhumi public taxi",
        "AOT Suvarnabhumi Grab pickup points"
      ],
      "comparison_hint": "Detected taxi, Grab, rental, airport rail link, shuttle or bus, pickup rules, 24-hour wording across 3 AOT page(s)."
    },
    {
      "feed_id": "aot-airport-ground-services",
      "source_name": "AOT airport ground transport pages",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:11:26.060Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "aot_public_ground_service_pages",
      "confidence": "medium-high",
      "note": "Official AOT ground-service and pickup-rule context from Don Mueang public transport pages. Served from the current build snapshot to reduce runtime AOT page fanout during refreshes.",
      "observation_id": "aot-airport-ground-services_don-mueang-airport_official_airport_ground_service_score",
      "parameter": "official_airport_ground_service_score",
      "metric_label": "Official airport ground-service support score",
      "value": 60,
      "unit": "score",
      "service_page_count": 2,
      "location_count": 1,
      "taxi_support_flag": 0,
      "grab_support_flag": 1,
      "rental_support_flag": 1,
      "rail_link_flag": 0,
      "shuttle_bus_flag": 0,
      "pickup_rule_flag": 1,
      "open_24h_flag": 0,
      "supporting_page_titles": [
        "Grab",
        "Car Rental Services at Don Mueang Airport"
      ],
      "supporting_page_urls": [
        "https://donmueang.airportthai.co.th/service/transportation/detail/835",
        "https://donmueang.airportthai.co.th/service/way-to-airport/detail/127"
      ],
      "supporting_service_features": [
        "grab",
        "pickup",
        "rental"
      ],
      "source_names": [
        "AOT airport ground transport pages",
        "AOT Don Mueang Grab pickup points",
        "AOT Don Mueang car rental services"
      ],
      "comparison_hint": "Detected Grab, rental, pickup rules across 2 AOT page(s)."
    },
    {
      "feed_id": "aot-airport-ground-services",
      "source_name": "AOT airport ground transport pages",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2026-05-15T11:11:26.060Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "aot_public_ground_service_pages",
      "confidence": "medium",
      "note": "Official AOT Phuket airport rental-counter and airport-ground-service context from the public airport transport page. Served from the current build snapshot to reduce runtime AOT page fanout during refreshes.",
      "observation_id": "aot-airport-ground-services_phuket-airport_official_airport_ground_service_score",
      "parameter": "official_airport_ground_service_score",
      "metric_label": "Official airport ground-service support score",
      "value": 42,
      "unit": "score",
      "service_page_count": 1,
      "location_count": 0,
      "taxi_support_flag": 0,
      "grab_support_flag": 0,
      "rental_support_flag": 1,
      "rail_link_flag": 0,
      "shuttle_bus_flag": 0,
      "pickup_rule_flag": 0,
      "open_24h_flag": 0,
      "supporting_page_titles": [
        "Car Rental Services at Phuket Airport"
      ],
      "supporting_page_urls": [
        "https://phuket.airportthai.co.th/service/way-to-airport/detail/126"
      ],
      "supporting_service_features": [
        "rental"
      ],
      "source_names": [
        "AOT airport ground transport pages",
        "AOT Phuket car rental services"
      ],
      "comparison_hint": "Detected rental across 1 AOT page(s)."
    },
    {
      "feed_id": "aot-airport-ground-services",
      "source_name": "AOT airport ground transport pages",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2026-05-15T11:11:26.060Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "aot_public_ground_service_pages",
      "confidence": "medium",
      "note": "Official AOT Chiang Mai airport rental-counter and airport-ground-service context from the public airport transport page. Served from the current build snapshot to reduce runtime AOT page fanout during refreshes.",
      "observation_id": "aot-airport-ground-services_chiang-mai-airport_official_airport_ground_service_score",
      "parameter": "official_airport_ground_service_score",
      "metric_label": "Official airport ground-service support score",
      "value": 42,
      "unit": "score",
      "service_page_count": 1,
      "location_count": 0,
      "taxi_support_flag": 0,
      "grab_support_flag": 0,
      "rental_support_flag": 1,
      "rail_link_flag": 0,
      "shuttle_bus_flag": 0,
      "pickup_rule_flag": 0,
      "open_24h_flag": 0,
      "supporting_page_titles": [
        "Car Rental Services at CHIANG MAI Airport"
      ],
      "supporting_page_urls": [
        "https://chiangmai.airportthai.co.th/service/way-to-airport/detail/125"
      ],
      "supporting_service_features": [
        "rental"
      ],
      "source_names": [
        "AOT airport ground transport pages",
        "AOT Chiang Mai car rental services"
      ],
      "comparison_hint": "Detected rental across 1 AOT page(s)."
    },
    {
      "feed_id": "aot-airport-flight-board-surface",
      "source_name": "AOT airport flight status",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-05-15T11:11:26.678Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_flight_board_surface",
      "confidence": "high",
      "note": "Official public Suvarnabhumi flight-status page with passenger-facing board context. This supports self-serve board visibility, not direct live row ingestion. Served from the current build snapshot to avoid repeated AOT board-page and bundle fetches during refresh.",
      "observation_id": "aot-airport-flight-board-surface_suvarnabhumi-airport_official_airport_board_surface_score",
      "parameter": "official_airport_board_surface_score",
      "metric_label": "Official airport board-surface support score",
      "value": 96,
      "unit": "score",
      "page_title": "Flight Status",
      "page_description": "Provide passenger flight information such as operating airline, check-in counter number, check-in time, departure gate number, departure time, flight status, baggage claim number, and passenger's baggage status.",
      "page_url": "https://suvarnabhumi.airportthai.co.th/flight",
      "bundle_url": "https://suvarnabhumi.airportthai.co.th/_next/static/chunks/pages/flight-6f6058b2a14b7b7f18f8.js",
      "airport_site_count": 6,
      "arrivals_flag": 1,
      "departures_flag": 1,
      "search_flag": 1,
      "latest_update_label_flag": 1,
      "graphql_board_query_flag": 1,
      "turnstile_gate_flag": 1,
      "passenger_field_claim_flag": 1,
      "source_names": [
        "AOT airport flight status"
      ],
      "comparison_hint": "Official public board surface exists, but the live board query is protected by a browser turnstile token."
    },
    {
      "feed_id": "aot-airport-flight-board-surface",
      "source_name": "AOT airport flight status",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:11:26.678Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_flight_board_surface",
      "confidence": "high",
      "note": "Official public Don Mueang flight-status page with passenger-facing board context. This supports self-serve board visibility, not direct live row ingestion. Served from the current build snapshot to avoid repeated AOT board-page and bundle fetches during refresh.",
      "observation_id": "aot-airport-flight-board-surface_don-mueang-airport_official_airport_board_surface_score",
      "parameter": "official_airport_board_surface_score",
      "metric_label": "Official airport board-surface support score",
      "value": 96,
      "unit": "score",
      "page_title": "Flight Status",
      "page_description": "Provide passenger flight information such as operating airline, check-in counter number, check-in time, departure gate number, departure time, flight status, baggage claim number, and passenger's baggage status.",
      "page_url": "https://donmueang.airportthai.co.th/flight",
      "bundle_url": "https://donmueang.airportthai.co.th/_next/static/chunks/pages/flight-c3fc7ad641bdcc955aca.js",
      "airport_site_count": 6,
      "arrivals_flag": 1,
      "departures_flag": 1,
      "search_flag": 1,
      "latest_update_label_flag": 1,
      "graphql_board_query_flag": 1,
      "turnstile_gate_flag": 1,
      "passenger_field_claim_flag": 1,
      "source_names": [
        "AOT airport flight status"
      ],
      "comparison_hint": "Official public board surface exists, but the live board query is protected by a browser turnstile token."
    },
    {
      "feed_id": "aot-airport-flight-board-surface",
      "source_name": "AOT airport flight status",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2026-05-15T11:11:26.678Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_flight_board_surface",
      "confidence": "high",
      "note": "Official public Phuket flight-status page with passenger-facing board context. This supports self-serve board visibility, not direct live row ingestion. Served from the current build snapshot to avoid repeated AOT board-page and bundle fetches during refresh.",
      "observation_id": "aot-airport-flight-board-surface_phuket-airport_official_airport_board_surface_score",
      "parameter": "official_airport_board_surface_score",
      "metric_label": "Official airport board-surface support score",
      "value": 96,
      "unit": "score",
      "page_title": "Flight Status",
      "page_description": "Provide passenger flight information such as operating airline, check-in counter number, check-in time, departure gate number, departure time, flight status, baggage claim number, and passenger's baggage status.",
      "page_url": "https://phuket.airportthai.co.th/flight",
      "bundle_url": "https://phuket.airportthai.co.th/_next/static/chunks/pages/flight-d273a323215d7c2d059a.js",
      "airport_site_count": 6,
      "arrivals_flag": 1,
      "departures_flag": 1,
      "search_flag": 1,
      "latest_update_label_flag": 1,
      "graphql_board_query_flag": 1,
      "turnstile_gate_flag": 1,
      "passenger_field_claim_flag": 1,
      "source_names": [
        "AOT airport flight status"
      ],
      "comparison_hint": "Official public board surface exists, but the live board query is protected by a browser turnstile token."
    },
    {
      "feed_id": "aot-airport-flight-board-surface",
      "source_name": "AOT airport flight status",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2026-05-15T11:11:26.678Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_flight_board_surface",
      "confidence": "high",
      "note": "Official public Chiang Mai flight-status page with passenger-facing board context. This supports self-serve board visibility, not direct live row ingestion. Served from the current build snapshot to avoid repeated AOT board-page and bundle fetches during refresh.",
      "observation_id": "aot-airport-flight-board-surface_chiang-mai-airport_official_airport_board_surface_score",
      "parameter": "official_airport_board_surface_score",
      "metric_label": "Official airport board-surface support score",
      "value": 96,
      "unit": "score",
      "page_title": "Flight Status",
      "page_description": "Provide passenger flight information such as operating airline, check-in counter number, check-in time, departure gate number, departure time, flight status, baggage claim number, and passenger's baggage status.",
      "page_url": "https://chiangmai.airportthai.co.th/flight",
      "bundle_url": "https://chiangmai.airportthai.co.th/_next/static/chunks/pages/flight-2a1760debc0b5241bcc2.js",
      "airport_site_count": 6,
      "arrivals_flag": 1,
      "departures_flag": 1,
      "search_flag": 1,
      "latest_update_label_flag": 1,
      "graphql_board_query_flag": 1,
      "turnstile_gate_flag": 1,
      "passenger_field_claim_flag": 1,
      "source_names": [
        "AOT airport flight status"
      ],
      "comparison_hint": "Official public board surface exists, but the live board query is protected by a browser turnstile token."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Suvarnabhumi as Thailand's main long-haul and hub-scale airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_suvarnabhumi-airport_official_airport_total_movements",
      "parameter": "official_airport_total_movements",
      "metric_label": "Official airport total aircraft movements",
      "value": 28065,
      "unit": "movements",
      "airport_code": "BKK",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "comparison_hint": "FY2025 official AOT total aircraft-movement context from the latest public traffic workbook."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Suvarnabhumi as Thailand's main long-haul and hub-scale airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_suvarnabhumi-airport_official_airport_total_passengers",
      "parameter": "official_airport_total_passengers",
      "metric_label": "Official airport total passengers",
      "value": 4422078,
      "unit": "passengers",
      "airport_code": "BKK",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "comparison_hint": "FY2025 official AOT total passenger context from the latest public traffic workbook."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Suvarnabhumi as Thailand's main long-haul and hub-scale airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_suvarnabhumi-airport_official_airport_scale_score",
      "parameter": "official_airport_scale_score",
      "metric_label": "Official airport scale score",
      "value": 96,
      "unit": "score",
      "airport_code": "BKK",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "total_movements": 28065,
      "total_passengers": 4422078,
      "comparison_hint": "Derived from FY2025 official AOT passenger and aircraft-movement totals."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Don Mueang as Bangkok's main domestic and low-cost airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_don-mueang-airport_official_airport_total_movements",
      "parameter": "official_airport_total_movements",
      "metric_label": "Official airport total aircraft movements",
      "value": 15867,
      "unit": "movements",
      "airport_code": "DMK",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "comparison_hint": "FY2025 official AOT total aircraft-movement context from the latest public traffic workbook."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Don Mueang as Bangkok's main domestic and low-cost airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_don-mueang-airport_official_airport_total_passengers",
      "parameter": "official_airport_total_passengers",
      "metric_label": "Official airport total passengers",
      "value": 2293514,
      "unit": "passengers",
      "airport_code": "DMK",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "comparison_hint": "FY2025 official AOT total passenger context from the latest public traffic workbook."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Don Mueang as Bangkok's main domestic and low-cost airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_don-mueang-airport_official_airport_scale_score",
      "parameter": "official_airport_scale_score",
      "metric_label": "Official airport scale score",
      "value": 79,
      "unit": "score",
      "airport_code": "DMK",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "total_movements": 15867,
      "total_passengers": 2293514,
      "comparison_hint": "Derived from FY2025 official AOT passenger and aircraft-movement totals."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Chiang Mai Airport as the north's main public-airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_chiang-mai-airport_official_airport_total_movements",
      "parameter": "official_airport_total_movements",
      "metric_label": "Official airport total aircraft movements",
      "value": 4353,
      "unit": "movements",
      "airport_code": "CNX",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "comparison_hint": "FY2025 official AOT total aircraft-movement context from the latest public traffic workbook."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Chiang Mai Airport as the north's main public-airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_chiang-mai-airport_official_airport_total_passengers",
      "parameter": "official_airport_total_passengers",
      "metric_label": "Official airport total passengers",
      "value": 624614,
      "unit": "passengers",
      "airport_code": "CNX",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "comparison_hint": "FY2025 official AOT total passenger context from the latest public traffic workbook."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Chiang Mai Airport as the north's main public-airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_chiang-mai-airport_official_airport_scale_score",
      "parameter": "official_airport_scale_score",
      "metric_label": "Official airport scale score",
      "value": 50,
      "unit": "score",
      "airport_code": "CNX",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "total_movements": 4353,
      "total_passengers": 624614,
      "comparison_hint": "Derived from FY2025 official AOT passenger and aircraft-movement totals."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Phuket Airport as the Andaman coast's main public-airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_phuket-airport_official_airport_total_movements",
      "parameter": "official_airport_total_movements",
      "metric_label": "Official airport total aircraft movements",
      "value": 7087,
      "unit": "movements",
      "airport_code": "HKT",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "comparison_hint": "FY2025 official AOT total aircraft-movement context from the latest public traffic workbook."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Phuket Airport as the Andaman coast's main public-airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_phuket-airport_official_airport_total_passengers",
      "parameter": "official_airport_total_passengers",
      "metric_label": "Official airport total passengers",
      "value": 1016099,
      "unit": "passengers",
      "airport_code": "HKT",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "comparison_hint": "FY2025 official AOT total passenger context from the latest public traffic workbook."
    },
    {
      "feed_id": "aot-airport-traffic-stats",
      "source_name": "AOT air transport statistics",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2025-10-16T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "aot_public_air_traffic_workbook",
      "confidence": "high",
      "note": "Official AOT fiscal traffic workbook context for Phuket Airport as the Andaman coast's main public-airport anchor. Served from the current build snapshot to avoid re-downloading the public AOT traffic workbook during refreshes.",
      "observation_id": "aot-airport-traffic-stats_phuket-airport_official_airport_scale_score",
      "parameter": "official_airport_scale_score",
      "metric_label": "Official airport scale score",
      "value": 63,
      "unit": "score",
      "airport_code": "HKT",
      "fiscal_year": "2025",
      "workbook_url": "https://aot.listedcompany.com/misc/statistic/2025/20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_file_name": "20251017-aot-traffic-fiscal-2025.xlsx",
      "workbook_published_at": "2025-10-16T17:00:00.000Z",
      "total_movements": 7087,
      "total_passengers": 1016099,
      "comparison_hint": "Derived from FY2025 official AOT passenger and aircraft-movement totals."
    },
    {
      "feed_id": "aot-airport-environment-support",
      "source_name": "AOT annual report / SET filing",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-05-15T11:11:25.296Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "set_hosted_aot_annual_report",
      "confidence": "medium-high",
      "note": "SET-hosted AOT annual report disclosure support for Suvarnabhumi as part of the public AOT airport network and environmental or community reporting context. Served from the current build snapshot because the blocked upstream AOT site is not production-safe for runtime fetches.",
      "observation_id": "aot-airport-environment-support_suvarnabhumi-airport_official_airport_environmental_support_score",
      "parameter": "official_airport_environmental_support_score",
      "metric_label": "Official airport environmental-support score",
      "value": 96,
      "unit": "score",
      "page_title": "AOT annual report disclosure snapshot",
      "page_url": "https://www.set.or.th/en/market/product/stock/quote/aot/factsheet",
      "annual_report_url": "https://weblink.set.or.th/dat/f56/0765ONE291220251620450584E.zip",
      "report_year": "2025",
      "factsheet_description": "As of 14 May 2026 Airport operator and other businesses related to or affiliated with the airport business",
      "environment_policy_flag": 1,
      "noise_wording_flag": 1,
      "community_wording_flag": 1,
      "clean_energy_flag": 1,
      "airport_operator_flag": 1,
      "airports_under_management_flag": 1,
      "airport_mentioned_flag": 1,
      "source_names": [
        "AOT annual report / SET filing"
      ],
      "comparison_hint": "SET-hosted AOT annual report disclosure mentions this airport directly alongside environmental or community wording. Use as operator disclosure support, not live sound-level truth."
    },
    {
      "feed_id": "aot-airport-environment-support",
      "source_name": "AOT annual report / SET filing",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:11:25.296Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "set_hosted_aot_annual_report",
      "confidence": "medium",
      "note": "SET-hosted AOT annual report disclosure support for Don Mueang as part of the public AOT airport network and environmental or community reporting context. Served from the current build snapshot because the blocked upstream AOT site is not production-safe for runtime fetches.",
      "observation_id": "aot-airport-environment-support_don-mueang-airport_official_airport_environmental_support_score",
      "parameter": "official_airport_environmental_support_score",
      "metric_label": "Official airport environmental-support score",
      "value": 96,
      "unit": "score",
      "page_title": "AOT annual report disclosure snapshot",
      "page_url": "https://www.set.or.th/en/market/product/stock/quote/aot/factsheet",
      "annual_report_url": "https://weblink.set.or.th/dat/f56/0765ONE291220251620450584E.zip",
      "report_year": "2025",
      "factsheet_description": "As of 14 May 2026 Airport operator and other businesses related to or affiliated with the airport business",
      "environment_policy_flag": 1,
      "noise_wording_flag": 1,
      "community_wording_flag": 1,
      "clean_energy_flag": 1,
      "airport_operator_flag": 1,
      "airports_under_management_flag": 1,
      "airport_mentioned_flag": 1,
      "source_names": [
        "AOT annual report / SET filing"
      ],
      "comparison_hint": "SET-hosted AOT annual report disclosure mentions this airport directly alongside environmental or community wording. Use as operator disclosure support, not live sound-level truth."
    },
    {
      "feed_id": "aot-airport-environment-support",
      "source_name": "AOT annual report / SET filing",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2026-05-15T11:11:25.296Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "set_hosted_aot_annual_report",
      "confidence": "medium",
      "note": "SET-hosted AOT annual report disclosure support for Chiang Mai as part of the public AOT airport network and environmental or community reporting context. Served from the current build snapshot because the blocked upstream AOT site is not production-safe for runtime fetches.",
      "observation_id": "aot-airport-environment-support_chiang-mai-airport_official_airport_environmental_support_score",
      "parameter": "official_airport_environmental_support_score",
      "metric_label": "Official airport environmental-support score",
      "value": 96,
      "unit": "score",
      "page_title": "AOT annual report disclosure snapshot",
      "page_url": "https://www.set.or.th/en/market/product/stock/quote/aot/factsheet",
      "annual_report_url": "https://weblink.set.or.th/dat/f56/0765ONE291220251620450584E.zip",
      "report_year": "2025",
      "factsheet_description": "As of 14 May 2026 Airport operator and other businesses related to or affiliated with the airport business",
      "environment_policy_flag": 1,
      "noise_wording_flag": 1,
      "community_wording_flag": 1,
      "clean_energy_flag": 1,
      "airport_operator_flag": 1,
      "airports_under_management_flag": 1,
      "airport_mentioned_flag": 1,
      "source_names": [
        "AOT annual report / SET filing"
      ],
      "comparison_hint": "SET-hosted AOT annual report disclosure mentions this airport directly alongside environmental or community wording. Use as operator disclosure support, not live sound-level truth."
    },
    {
      "feed_id": "aot-airport-environment-support",
      "source_name": "AOT annual report / SET filing",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2026-05-15T11:11:25.296Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "set_hosted_aot_annual_report",
      "confidence": "medium",
      "note": "SET-hosted AOT annual report disclosure support for Phuket as part of the public AOT airport network and environmental or community reporting context. Served from the current build snapshot because the blocked upstream AOT site is not production-safe for runtime fetches.",
      "observation_id": "aot-airport-environment-support_phuket-airport_official_airport_environmental_support_score",
      "parameter": "official_airport_environmental_support_score",
      "metric_label": "Official airport environmental-support score",
      "value": 96,
      "unit": "score",
      "page_title": "AOT annual report disclosure snapshot",
      "page_url": "https://www.set.or.th/en/market/product/stock/quote/aot/factsheet",
      "annual_report_url": "https://weblink.set.or.th/dat/f56/0765ONE291220251620450584E.zip",
      "report_year": "2025",
      "factsheet_description": "As of 14 May 2026 Airport operator and other businesses related to or affiliated with the airport business",
      "environment_policy_flag": 1,
      "noise_wording_flag": 1,
      "community_wording_flag": 1,
      "clean_energy_flag": 1,
      "airport_operator_flag": 1,
      "airports_under_management_flag": 1,
      "airport_mentioned_flag": 1,
      "source_names": [
        "AOT annual report / SET filing"
      ],
      "comparison_hint": "SET-hosted AOT annual report disclosure mentions this airport directly alongside environmental or community wording. Use as operator disclosure support, not live sound-level truth."
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_bangkok_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_bangkok_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_bangkok_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Chiang Mai province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Chiang Mai"
      ],
      "supporting_provinces": [
        "Chiang Mai"
      ],
      "observation_id": "thaiwater-water-quality_chiang-mai_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Chiang Mai province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Chiang Mai"
      ],
      "supporting_provinces": [
        "Chiang Mai"
      ],
      "observation_id": "thaiwater-water-quality_chiang-mai_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 6.07,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Chiang Mai province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Chiang Mai"
      ],
      "supporting_provinces": [
        "Chiang Mai"
      ],
      "observation_id": "thaiwater-water-quality_chiang-mai_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_koh-samui_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_koh-samui_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 4.76,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_koh-samui_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_koh-phangan_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_koh-phangan_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 4.76,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_koh-phangan_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Ayutthaya province water-quality station coverage.",
      "station_count": 3,
      "supporting_station_names": [
        "Nakhon Luang",
        "Bang Sai",
        "Ayutthaya"
      ],
      "supporting_provinces": [
        "Phra Nakhon Si Ayutthaya"
      ],
      "observation_id": "thaiwater-water-quality_ayutthaya_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 76,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Ayutthaya province water-quality station coverage.",
      "station_count": 3,
      "supporting_station_names": [
        "Nakhon Luang",
        "Bang Sai",
        "Ayutthaya"
      ],
      "supporting_provinces": [
        "Phra Nakhon Si Ayutthaya"
      ],
      "observation_id": "thaiwater-water-quality_ayutthaya_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 4.93,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Ayutthaya province water-quality station coverage.",
      "station_count": 3,
      "supporting_station_names": [
        "Nakhon Luang",
        "Bang Sai",
        "Ayutthaya"
      ],
      "supporting_provinces": [
        "Phra Nakhon Si Ayutthaya"
      ],
      "observation_id": "thaiwater-water-quality_ayutthaya_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Kanchanaburi province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Tha Maka"
      ],
      "supporting_provinces": [
        "Kanchanaburi"
      ],
      "observation_id": "thaiwater-water-quality_kanchanaburi_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Kanchanaburi province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Tha Maka"
      ],
      "supporting_provinces": [
        "Kanchanaburi"
      ],
      "observation_id": "thaiwater-water-quality_kanchanaburi_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 6.21,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Kanchanaburi province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Tha Maka"
      ],
      "supporting_provinces": [
        "Kanchanaburi"
      ],
      "observation_id": "thaiwater-water-quality_kanchanaburi_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Regional northeastern water-quality proxy across the largest current Thaiwater stations.",
      "station_count": 3,
      "supporting_station_names": [
        "Nong Wai",
        "Tha Tum (Surin)",
        "Pak Bung Chod"
      ],
      "supporting_provinces": [
        "Khon Kaen",
        "Surin"
      ],
      "observation_id": "thaiwater-water-quality_isaan_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 67.3,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Regional northeastern water-quality proxy across the largest current Thaiwater stations.",
      "station_count": 3,
      "supporting_station_names": [
        "Nong Wai",
        "Tha Tum (Surin)",
        "Pak Bung Chod"
      ],
      "supporting_provinces": [
        "Khon Kaen",
        "Surin"
      ],
      "observation_id": "thaiwater-water-quality_isaan_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 4.82,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Regional northeastern water-quality proxy across the largest current Thaiwater stations.",
      "station_count": 3,
      "supporting_station_names": [
        "Nong Wai",
        "Tha Tum (Surin)",
        "Pak Bung Chod"
      ],
      "supporting_provinces": [
        "Khon Kaen",
        "Surin"
      ],
      "observation_id": "thaiwater-water-quality_isaan_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_sukhumvit_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_sukhumvit_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_sukhumvit_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_silom-sathorn_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_silom-sathorn_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_silom-sathorn_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_riverside-old-town_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_riverside-old-town_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_riverside-old-town_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Chiang Mai province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Chiang Mai"
      ],
      "supporting_provinces": [
        "Chiang Mai"
      ],
      "observation_id": "thaiwater-water-quality_nimman_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Chiang Mai province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Chiang Mai"
      ],
      "supporting_provinces": [
        "Chiang Mai"
      ],
      "observation_id": "thaiwater-water-quality_nimman_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 6.07,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Chiang Mai province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Chiang Mai"
      ],
      "supporting_provinces": [
        "Chiang Mai"
      ],
      "observation_id": "thaiwater-water-quality_nimman_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_ari_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_ari_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_ari_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Chiang Mai province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Chiang Mai"
      ],
      "supporting_provinces": [
        "Chiang Mai"
      ],
      "observation_id": "thaiwater-water-quality_old-city-chiang-mai_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Chiang Mai province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Chiang Mai"
      ],
      "supporting_provinces": [
        "Chiang Mai"
      ],
      "observation_id": "thaiwater-water-quality_old-city-chiang-mai_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 6.07,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "thaiwater_waterquality_latest",
      "confidence": "high",
      "note": "Chiang Mai province water-quality station coverage.",
      "station_count": 1,
      "supporting_station_names": [
        "Chiang Mai"
      ],
      "supporting_provinces": [
        "Chiang Mai"
      ],
      "observation_id": "thaiwater-water-quality_old-city-chiang-mai_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_bophut-fishermans-village_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_bophut-fishermans-village_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 4.76,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_bophut-fishermans-village_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_chaweng_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_chaweng_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 4.76,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_chaweng_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_lamai_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_lamai_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 4.76,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_lamai_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_bts-asok_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_bts-asok_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_bts-asok_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_bangkok-mochit-2_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_bangkok-mochit-2_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_bangkok-mochit-2_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_suvarnabhumi-airport_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_suvarnabhumi-airport_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_suvarnabhumi-airport_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_don-mueang-airport_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_don-mueang-airport_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_don-mueang-airport_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_na-thon-pier_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_na-thon-pier_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 4.76,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_na-thon-pier_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_donsak-pier_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 82,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_donsak-pier_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 4.76,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T01:30:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Surat Thani province water-quality stations as a Gulf-island proxy.",
      "station_count": 1,
      "supporting_station_names": [
        "Surat Thani"
      ],
      "supporting_provinces": [
        "Surat Thani"
      ],
      "observation_id": "thaiwater-water-quality_donsak-pier_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_air4thai-bangkok-urban-cluster_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_air4thai-bangkok-urban-cluster_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_air4thai-bangkok-urban-cluster_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_noise4thai-bangkok-roadside-cluster_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_noise4thai-bangkok-roadside-cluster_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_noise4thai-bangkok-roadside-cluster_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_thaiwater-chao-phraya-bangkok_water_quality_status_score",
      "parameter": "water_quality_status_score",
      "metric_label": "Water quality status score",
      "value": 33,
      "unit": "score",
      "comparison_hint": "ปกติ"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_thaiwater-chao-phraya-bangkok_water_dissolved_oxygen_average",
      "parameter": "water_dissolved_oxygen_average",
      "metric_label": "Average dissolved oxygen",
      "value": 0,
      "unit": "mg/L",
      "comparison_hint": "Average WQI 0.0"
    },
    {
      "feed_id": "thaiwater-water-quality",
      "source_name": "Thaiwater WaterQuality API",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thaiwater_waterquality_latest",
      "confidence": "medium",
      "note": "Bangkok river and canal proxy from Thaiwater water-quality stations.",
      "station_count": 2,
      "supporting_station_names": [
        "Siriraj Hospital",
        "Dao Khanong"
      ],
      "supporting_provinces": [
        "Bangkok"
      ],
      "observation_id": "thaiwater-water-quality_thaiwater-chao-phraya-bangkok_water_quality_index_average",
      "parameter": "water_quality_index_average",
      "metric_label": "Average water quality index",
      "value": 0,
      "unit": "WQI"
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Bangkok transport structure from the Namtang public stop and station spine.",
      "observation_id": "namtang-transit-structure_bangkok_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 4687,
      "mode_count": 7,
      "rail_stop_count": 204,
      "boat_stop_count": 138,
      "bus_stop_count": 4345,
      "airport_link_stop_count": 14,
      "supporting_station_ids": [
        "N00000001",
        "N00000002",
        "N00000003",
        "N00000004",
        "N00000005",
        "N00000006",
        "N00000007",
        "N00000008"
      ],
      "supporting_station_names": [
        "BTS Bang Wa",
        "BTS Wutthakat",
        "BTS Talat Phlu",
        "BTS Pho Nimit",
        "BTS Wongwian Yai",
        "BTS Krung Thon Buri",
        "BTS Saphan Taksin",
        "BTS Surasak"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "7 mode group(s): bts, boat, brt, train, airport_link, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Chiang Mai transport structure from the Namtang public stop and station spine.",
      "observation_id": "namtang-transit-structure_chiang-mai_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 48,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017027",
        "N00017463"
      ],
      "supporting_station_names": [
        "SRT Chiang Mai",
        "Chiang Mai Bus Terminal 2 (Arcade)"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): train, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Phuket transport structure from the Namtang public stop and station spine.",
      "observation_id": "namtang-transit-structure_phuket_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 48,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 1,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016087",
        "N00016517",
        "N00017674"
      ],
      "supporting_station_names": [
        "Rassada Pier",
        "Phuket Bus Terminal 1",
        "Phuket Provincial Passenger Terminal 2"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Krabi transport structure from the Namtang public stop and station spine.",
      "observation_id": "namtang-transit-structure_krabi_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 80,
      "unit": "score",
      "stop_count": 47,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 2,
      "bus_stop_count": 45,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016060",
        "N00016085",
        "N00016091",
        "N00016092",
        "N00016093",
        "N00016094",
        "N00016095",
        "N00016098"
      ],
      "supporting_station_names": [
        "Klong Jilad Ferry Pier",
        "Kong Ka Pier",
        "Opposite Ban Nanok School",
        "Trithip Village ()",
        "Klong Jilad Ferry Pier",
        "Krabi Hospital",
        "Ammartpanichnukul School",
        "talat kao market"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Samui-chain transport structure from Namtang stop and pier records where public coverage exists.",
      "observation_id": "namtang-transit-structure_koh-samui_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 38,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016538",
        "N00016539"
      ],
      "supporting_station_names": [
        "Lipa Noi Pier",
        "Koh Samui parking spot"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Koh Phangan transport structure from Namtang public stop and pier records.",
      "observation_id": "namtang-transit-structure_koh-phangan_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 38,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016538",
        "N00016539"
      ],
      "supporting_station_names": [
        "Lipa Noi Pier",
        "Koh Samui parking spot"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Pattaya / Chonburi transport structure from Namtang stop coverage.",
      "observation_id": "namtang-transit-structure_pattaya-chonburi_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 38,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017454",
        "N00017842"
      ],
      "supporting_station_names": [
        "Pattaya Central Parking (opposite Father Ray Foundation)",
        "South Pattaya Bus Stop"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Hua Hin transport structure from Namtang rail and bus-stop coverage.",
      "observation_id": "namtang-transit-structure_hua-hin_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 50,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016514",
        "N00016997",
        "N00017645"
      ],
      "supporting_station_names": [
        "Hua Hin bus station",
        "SRT Hua Hin",
        "Hua Hin bus stop (Bluport Shopping Mall)"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): bus, train."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Ayutthaya transport structure from Namtang stop and station coverage.",
      "observation_id": "namtang-transit-structure_ayutthaya_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 53,
      "unit": "score",
      "stop_count": 4,
      "mode_count": 2,
      "rail_stop_count": 2,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016947",
        "N00016967",
        "N00017649",
        "N00017899"
      ],
      "supporting_station_names": [
        "SRT Ayutthaya",
        "SRT Ban Ma",
        "Ayutthaya Bus Terminal (Northern Route)",
        "จุดจอดโลตัสอยุธยาซิตี้พาร์ค (ศาลาทางหลวง)"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): train, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Kanchanaburi transport structure from Namtang stop and station coverage.",
      "observation_id": "namtang-transit-structure_kanchanaburi_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 37,
      "unit": "score",
      "stop_count": 1,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017062"
      ],
      "supporting_station_names": [
        "Kanchanaburi Bus Terminal"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Sukhumvit transport structure from nearby Namtang rail, boat, and bus stops.",
      "observation_id": "namtang-transit-structure_sukhumvit_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 678,
      "mode_count": 5,
      "rail_stop_count": 21,
      "boat_stop_count": 53,
      "bus_stop_count": 604,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00000013",
        "N00000030",
        "N00000032",
        "N00000094",
        "N00000095",
        "N00000096",
        "N00000097",
        "N00000098"
      ],
      "supporting_station_names": [
        "BTS National Stadium",
        "BTS Ratchathewi",
        "BTS Phaya Thai",
        "Si Phraya Pier",
        "Marine Department Pier",
        "Rajchawongse Pier",
        "Memorial Bridge Pier",
        "YodpimanRiver Walk Pier"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "5 mode group(s): bts, boat, train, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Silom / Sathorn transport structure from nearby Namtang rail, boat, and bus stops.",
      "observation_id": "namtang-transit-structure_silom-sathorn_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 678,
      "mode_count": 5,
      "rail_stop_count": 21,
      "boat_stop_count": 53,
      "bus_stop_count": 604,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00000013",
        "N00000030",
        "N00000032",
        "N00000094",
        "N00000095",
        "N00000096",
        "N00000097",
        "N00000098"
      ],
      "supporting_station_names": [
        "BTS National Stadium",
        "BTS Ratchathewi",
        "BTS Phaya Thai",
        "Si Phraya Pier",
        "Marine Department Pier",
        "Rajchawongse Pier",
        "Memorial Bridge Pier",
        "YodpimanRiver Walk Pier"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "5 mode group(s): bts, boat, train, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Riverside / Old Town transport structure from nearby Namtang boat, rail, and bus stops.",
      "observation_id": "namtang-transit-structure_riverside-old-town_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 951,
      "mode_count": 6,
      "rail_stop_count": 37,
      "boat_stop_count": 65,
      "bus_stop_count": 849,
      "airport_link_stop_count": 2,
      "supporting_station_ids": [
        "N00000004",
        "N00000005",
        "N00000006",
        "N00000007",
        "N00000011",
        "N00000012",
        "N00000013",
        "N00000030"
      ],
      "supporting_station_names": [
        "BTS Pho Nimit",
        "BTS Wongwian Yai",
        "BTS Krung Thon Buri",
        "BTS Saphan Taksin",
        "BTS Ratchadamri",
        "BTS Siam",
        "BTS National Stadium",
        "BTS Ratchathewi"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "6 mode group(s): bts, boat, train, airport_link, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Nimman transport structure from nearby Chiang Mai stop and station coverage.",
      "observation_id": "namtang-transit-structure_nimman_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 51,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017027",
        "N00017463"
      ],
      "supporting_station_names": [
        "SRT Chiang Mai",
        "Chiang Mai Bus Terminal 2 (Arcade)"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): train, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium-high",
      "note": "Ari transport structure from nearby BTS, bus, and Bangkok stop coverage.",
      "observation_id": "namtang-transit-structure_ari_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 590,
      "mode_count": 5,
      "rail_stop_count": 16,
      "boat_stop_count": 47,
      "bus_stop_count": 527,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00000013",
        "N00000095",
        "N00000096",
        "N00000097",
        "N00000098",
        "N00000099",
        "N00000101",
        "N00000102"
      ],
      "supporting_station_names": [
        "BTS National Stadium",
        "Marine Department Pier",
        "Rajchawongse Pier",
        "Memorial Bridge Pier",
        "YodpimanRiver Walk Pier",
        "Rajinee Pier",
        "Tha Chang Pier",
        "Wang Lang Pier"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "5 mode group(s): bts, boat, train, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Kata / Karon transport structure from nearby Phuket stop coverage.",
      "observation_id": "namtang-transit-structure_kata-karon_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 51,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 1,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016087",
        "N00016517",
        "N00017674"
      ],
      "supporting_station_names": [
        "Rassada Pier",
        "Phuket Bus Terminal 1",
        "Phuket Provincial Passenger Terminal 2"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Patong transport structure from nearby Phuket stop coverage and dense hotel-base movement.",
      "observation_id": "namtang-transit-structure_patong_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 51,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 1,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016087",
        "N00016517",
        "N00017674"
      ],
      "supporting_station_names": [
        "Rassada Pier",
        "Phuket Bus Terminal 1",
        "Phuket Provincial Passenger Terminal 2"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Rawai / Nai Harn transport structure from nearby south-Phuket stop coverage.",
      "observation_id": "namtang-transit-structure_rawai-nai-harn_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 51,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 1,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016087",
        "N00016517",
        "N00017674"
      ],
      "supporting_station_names": [
        "Rassada Pier",
        "Phuket Bus Terminal 1",
        "Phuket Provincial Passenger Terminal 2"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium-high",
      "note": "Phuket Old Town transport structure from nearby town-core stop coverage.",
      "observation_id": "namtang-transit-structure_phuket-old-town_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 51,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 1,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016087",
        "N00016517",
        "N00017674"
      ],
      "supporting_station_names": [
        "Rassada Pier",
        "Phuket Bus Terminal 1",
        "Phuket Provincial Passenger Terminal 2"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "central-pattaya-jomtien",
      "entity_name": "Central Pattaya / Jomtien",
      "entity_type": "hotel_area",
      "entity_path": "/entities/central-pattaya-jomtien/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Central Pattaya / Jomtien transport structure from nearby stop coverage.",
      "observation_id": "namtang-transit-structure_central-pattaya-jomtien_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 40,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017454",
        "N00017842"
      ],
      "supporting_station_names": [
        "Pattaya Central Parking (opposite Father Ray Foundation)",
        "South Pattaya Bus Stop"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "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/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Central Hua Hin / Khao Takiab transport structure from nearby stop and rail coverage.",
      "observation_id": "namtang-transit-structure_central-hua-hin-khao-takiab_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 52,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016514",
        "N00016997",
        "N00017645"
      ],
      "supporting_station_names": [
        "Hua Hin bus station",
        "SRT Hua Hin",
        "Hua Hin bus stop (Bluport Shopping Mall)"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): bus, train."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium-high",
      "note": "Ao Nang transport structure from nearby Krabi coast stop and pier coverage.",
      "observation_id": "namtang-transit-structure_ao-nang_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 75,
      "unit": "score",
      "stop_count": 26,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 2,
      "bus_stop_count": 24,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016060",
        "N00016085",
        "N00016091",
        "N00016092",
        "N00016093",
        "N00016094",
        "N00016095",
        "N00016098"
      ],
      "supporting_station_names": [
        "Klong Jilad Ferry Pier",
        "Kong Ka Pier",
        "Opposite Ban Nanok School",
        "Trithip Village ()",
        "Klong Jilad Ferry Pier",
        "Krabi Hospital",
        "Ammartpanichnukul School",
        "talat kao market"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Railay transport structure from nearby Krabi coast stop and boat coverage, treated as a fragile transfer-support layer.",
      "observation_id": "namtang-transit-structure_railay_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 66,
      "unit": "score",
      "stop_count": 17,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 1,
      "bus_stop_count": 16,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016085",
        "N00016094",
        "N00016095",
        "N00016098",
        "N00016099",
        "N00016101",
        "N00016102",
        "N00016103"
      ],
      "supporting_station_names": [
        "Kong Ka Pier",
        "Krabi Hospital",
        "Ammartpanichnukul School",
        "talat kao market",
        "Krabi Bus Terminal",
        "Opposite Krabi Hospital",
        "Krabi Technical College",
        "Utarakij School"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "hua-hin-station",
      "entity_name": "Hua Hin Railway Station",
      "entity_type": "station",
      "entity_path": "/entities/hua-hin-station/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Hua Hin station transport structure from Namtang rail and nearby stop records.",
      "observation_id": "namtang-transit-structure_hua-hin-station_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 71,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016514",
        "N00016997",
        "N00017645"
      ],
      "supporting_station_names": [
        "Hua Hin bus station",
        "SRT Hua Hin",
        "Hua Hin bus stop (Bluport Shopping Mall)"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): bus, train."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Asok interchange structure from Namtang rail and nearby stop records.",
      "observation_id": "namtang-transit-structure_bts-asok_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 132,
      "mode_count": 5,
      "rail_stop_count": 10,
      "boat_stop_count": 4,
      "bus_stop_count": 118,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00000021",
        "N00000022",
        "N00000023",
        "N00000025",
        "N00000026",
        "N00000027",
        "N00000179",
        "N00000180"
      ],
      "supporting_station_names": [
        "BTS Phra Khanong",
        "BTS Ekkamai",
        "BTS Thong Lo",
        "BTS Asok",
        "BTS Nana",
        "BTS Phloen Chit",
        "Nana Chard Pier",
        "Asok Pier"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "5 mode group(s): bts, boat, train, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Mo Chit 2 transport structure from Namtang terminal and nearby stop records.",
      "observation_id": "namtang-transit-structure_bangkok-mochit-2_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 89,
      "unit": "score",
      "stop_count": 11,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 10,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00000037",
        "N00003813",
        "N00003817",
        "N00013908",
        "N00014578",
        "N00014656",
        "N00015332",
        "N00015469"
      ],
      "supporting_station_names": [
        "BTS Mo Chit",
        "ตรงข้ามสวนจตุจักร (จุดที่ 1)",
        "Bus Depot Mochit 2",
        "Mo Chit Bus Terminal",
        "Front Mochit 2 Intercty Van Terminal",
        "Mo Chit 2 Bus Terminal (arrival platform)",
        "Mo Chit 2 Bus Terminal (in front of Sao Thong)",
        "Mochit PTT Gas Station"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): bts, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Suvarnabhumi transport structure from Namtang airport-link and nearby stop records.",
      "observation_id": "namtang-transit-structure_suvarnabhumi-airport_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 83,
      "unit": "score",
      "stop_count": 37,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 36,
      "airport_link_stop_count": 1,
      "supporting_station_ids": [
        "N00000326",
        "N00000819",
        "N00000820",
        "N00000825",
        "N00000829",
        "N00001479",
        "N00001660",
        "N00002549"
      ],
      "supporting_station_names": [
        "ARL Suvarnabhumi Airport",
        "Opposite Happy and Healthy Bike Lane",
        "Suvarnabhumi / Rachathewa Police Station",
        "Dao King Kaeo Gas Station (Opposite)",
        "Suvarnabhumi (Tg Ground Operation Control Center)",
        "Opposite Prawet Pittayakhan School",
        "Before Suksamarn Junction",
        "Opposite Princ Hospital Suvarnabhumi"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): airport_link, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Don Mueang transport structure from Namtang rail and nearby stop records.",
      "observation_id": "namtang-transit-structure_don-mueang-airport_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 60,
      "mode_count": 4,
      "rail_stop_count": 8,
      "boat_stop_count": 0,
      "bus_stop_count": 52,
      "airport_link_stop_count": 2,
      "supporting_station_ids": [
        "N00000213",
        "N00000214",
        "N00000218",
        "N00000374",
        "N00000409",
        "N00000803",
        "N00000842",
        "N00000881"
      ],
      "supporting_station_names": [
        "SRT Talatmai Don Muang",
        "SRT Don Muang",
        "SRT Khan Keha Khomo Sipkao",
        "Royal Thai Air Force",
        "Rattanawalai Village",
        "Royal Thai Air Force",
        "Before Lamlukka Junction",
        "Prom Thai Ping"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "4 mode group(s): train, bus, airport_link, bts."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_chiang-mai-airport_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 52,
      "unit": "score",
      "stop_count": 1,
      "mode_count": 1,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 0,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017027"
      ],
      "supporting_station_names": [
        "SRT Chiang Mai"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): train."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_phuket-airport_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 41,
      "unit": "score",
      "stop_count": 1,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017675"
      ],
      "supporting_station_names": [
        "Phuket New City Bus Stop"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "krabi-airport",
      "entity_name": "Krabi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/krabi-airport/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_krabi-airport_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 50,
      "unit": "score",
      "stop_count": 9,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 9,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016121",
        "N00016146",
        "N00016147",
        "N00016340",
        "N00016341",
        "N00016344",
        "N00016345",
        "N00016353"
      ],
      "supporting_station_names": [
        "Parking point: Nuea Khlong Subdistrict (next to Saengthian Stationery Shop)",
        "Nuea Khlong District",
        "Nuea Khlong District",
        "Little Sword",
        "Little Sword",
        "Ban Rop Na",
        "Ban Rop Na",
        "Nuea Khlong District"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "u-tapao-airport",
      "entity_name": "U-Tapao Airport",
      "entity_type": "airport",
      "entity_path": "/entities/u-tapao-airport/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "U-Tapao transport structure from Namtang airport-link and east-coast stop records.",
      "observation_id": "namtang-transit-structure_u-tapao-airport_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 41,
      "unit": "score",
      "stop_count": 1,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00004855"
      ],
      "supporting_station_names": [
        "Wat U Taphao ,F.B.T. (Opposite)"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Rassada pier structure from Namtang public stop and boat records.",
      "observation_id": "namtang-transit-structure_rassada-pier_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 65,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 1,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016087",
        "N00017674"
      ],
      "supporting_station_names": [
        "Rassada Pier",
        "Phuket Provincial Passenger Terminal 2"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "ao-nang-pier",
      "entity_name": "Ao Nang Pier",
      "entity_type": "pier",
      "entity_path": "/entities/ao-nang-pier/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Ao Nang pier structure from Namtang public stop and boat records.",
      "observation_id": "namtang-transit-structure_ao-nang-pier_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 83,
      "unit": "score",
      "stop_count": 9,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 1,
      "bus_stop_count": 8,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016086",
        "N00016141",
        "N00016144",
        "N00016145",
        "N00016459",
        "N00016460",
        "N00016510",
        "N00016530"
      ],
      "supporting_station_names": [
        "Noparatthara Pier",
        "Nopparat Thara Beach",
        "Ban Chongplee",
        "Ban Aonang",
        "Ban Ao Nang",
        "หาดนพรัตน์ธารา",
        "Baan Chong Plee",
        "Hat Nappharat Thara-Mu Ko Phi Phi National Park"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Samui west-coast pier structure from Namtang public stop and pier records.",
      "observation_id": "namtang-transit-structure_na-thon-pier_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 37,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016538",
        "N00016539"
      ],
      "supporting_station_names": [
        "Lipa Noi Pier",
        "Koh Samui parking spot"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Donsak pier structure from Namtang public stop and pier records.",
      "observation_id": "namtang-transit-structure_donsak-pier_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 37,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016537",
        "N00017556"
      ],
      "supporting_station_names": [
        "Donsak (Raja Pier)",
        "Don Sak District Parking Point"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "entity_path": "/entities/yaowarat-gold-district/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_yaowarat-gold-district_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 1429,
      "mode_count": 7,
      "rail_stop_count": 69,
      "boat_stop_count": 75,
      "bus_stop_count": 1285,
      "airport_link_stop_count": 3,
      "supporting_station_ids": [
        "N00000002",
        "N00000003",
        "N00000004",
        "N00000005",
        "N00000006",
        "N00000007",
        "N00000008",
        "N00000009"
      ],
      "supporting_station_names": [
        "BTS Wutthakat",
        "BTS Talat Phlu",
        "BTS Pho Nimit",
        "BTS Wongwian Yai",
        "BTS Krung Thon Buri",
        "BTS Saphan Taksin",
        "BTS Surasak",
        "BTS Chong Nonsi"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "7 mode group(s): bts, boat, brt, train, airport_link, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/chiang-mai-gold-shopping/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_chiang-mai-gold-shopping_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 48,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017027",
        "N00017463"
      ],
      "supporting_station_names": [
        "SRT Chiang Mai",
        "Chiang Mai Bus Terminal 2 (Arcade)"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): train, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/phuket-gold-shopping/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_phuket-gold-shopping_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 48,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 0,
      "boat_stop_count": 1,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016087",
        "N00016517",
        "N00017674"
      ],
      "supporting_station_names": [
        "Rassada Pier",
        "Phuket Bus Terminal 1",
        "Phuket Provincial Passenger Terminal 2"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): boat, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/pattaya-gold-shopping/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_pattaya-gold-shopping_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 38,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017454",
        "N00017842"
      ],
      "supporting_station_names": [
        "Pattaya Central Parking (opposite Father Ray Foundation)",
        "South Pattaya Bus Stop"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/hat-yai-gold-shopping/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_hat-yai-gold-shopping_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 48,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016516",
        "N00017003"
      ],
      "supporting_station_names": [
        "Hat Yai Bus Terminal 1",
        "SRT Hat Yai Junction"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): bus, train."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Bangkok transport structure from the Namtang public stop and station spine.",
      "observation_id": "namtang-transit-structure_air4thai-bangkok-urban-cluster_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 4687,
      "mode_count": 7,
      "rail_stop_count": 204,
      "boat_stop_count": 138,
      "bus_stop_count": 4345,
      "airport_link_stop_count": 14,
      "supporting_station_ids": [
        "N00000001",
        "N00000002",
        "N00000003",
        "N00000004",
        "N00000005",
        "N00000006",
        "N00000007",
        "N00000008"
      ],
      "supporting_station_names": [
        "BTS Bang Wa",
        "BTS Wutthakat",
        "BTS Talat Phlu",
        "BTS Pho Nimit",
        "BTS Wongwian Yai",
        "BTS Krung Thon Buri",
        "BTS Saphan Taksin",
        "BTS Surasak"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "7 mode group(s): bts, boat, brt, train, airport_link, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Bangkok transport structure from the Namtang public stop and station spine.",
      "observation_id": "namtang-transit-structure_noise4thai-bangkok-roadside-cluster_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 4687,
      "mode_count": 7,
      "rail_stop_count": 204,
      "boat_stop_count": 138,
      "bus_stop_count": 4345,
      "airport_link_stop_count": 14,
      "supporting_station_ids": [
        "N00000001",
        "N00000002",
        "N00000003",
        "N00000004",
        "N00000005",
        "N00000006",
        "N00000007",
        "N00000008"
      ],
      "supporting_station_names": [
        "BTS Bang Wa",
        "BTS Wutthakat",
        "BTS Talat Phlu",
        "BTS Pho Nimit",
        "BTS Wongwian Yai",
        "BTS Krung Thon Buri",
        "BTS Saphan Taksin",
        "BTS Surasak"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "7 mode group(s): bts, boat, brt, train, airport_link, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "direct-source-match",
      "method": "namtang_stop_structure",
      "confidence": "high",
      "note": "Bangkok transport structure from the Namtang public stop and station spine.",
      "observation_id": "namtang-transit-structure_thaiwater-chao-phraya-bangkok_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 96,
      "unit": "score",
      "stop_count": 4687,
      "mode_count": 7,
      "rail_stop_count": 204,
      "boat_stop_count": 138,
      "bus_stop_count": 4345,
      "airport_link_stop_count": 14,
      "supporting_station_ids": [
        "N00000001",
        "N00000002",
        "N00000003",
        "N00000004",
        "N00000005",
        "N00000006",
        "N00000007",
        "N00000008"
      ],
      "supporting_station_names": [
        "BTS Bang Wa",
        "BTS Wutthakat",
        "BTS Talat Phlu",
        "BTS Pho Nimit",
        "BTS Wongwian Yai",
        "BTS Krung Thon Buri",
        "BTS Saphan Taksin",
        "BTS Surasak"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "7 mode group(s): bts, boat, brt, train, airport_link, mrt, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "chiang-rai",
      "entity_name": "Chiang Rai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-rai/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_chiang-rai_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 40,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 3,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017455",
        "N00017717",
        "N00017720"
      ],
      "supporting_station_names": [
        "Chiang Rai Bus Terminal 2",
        "Chiang Rai Provincial Passenger Terminal No. 1 (Old Bus Station)",
        "Chiang Rai Passenger Bus Terminal No. 3"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "hat-yai",
      "entity_name": "Hat Yai",
      "entity_type": "destination",
      "entity_path": "/entities/hat-yai/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_hat-yai_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 48,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016516",
        "N00017003"
      ],
      "supporting_station_names": [
        "Hat Yai Bus Terminal 1",
        "SRT Hat Yai Junction"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): bus, train."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "trang",
      "entity_name": "Trang",
      "entity_type": "destination",
      "entity_path": "/entities/trang/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_trang_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 37,
      "unit": "score",
      "stop_count": 1,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016133"
      ],
      "supporting_station_names": [
        "Trang Bus Terminal"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "surat-thani",
      "entity_name": "Surat Thani",
      "entity_type": "destination",
      "entity_path": "/entities/surat-thani/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_surat-thani_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 37,
      "unit": "score",
      "stop_count": 1,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016136"
      ],
      "supporting_station_names": [
        "Surat Thani Bus Terminal"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "sukhothai",
      "entity_name": "Sukhothai",
      "entity_type": "destination",
      "entity_path": "/entities/sukhothai/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_sukhothai_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 37,
      "unit": "score",
      "stop_count": 1,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017562"
      ],
      "supporting_station_names": [
        "Sukhothai Bus Terminal"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "nakhon-ratchasima",
      "entity_name": "Nakhon Ratchasima",
      "entity_type": "destination",
      "entity_path": "/entities/nakhon-ratchasima/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_nakhon-ratchasima_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 53,
      "unit": "score",
      "stop_count": 4,
      "mode_count": 2,
      "rail_stop_count": 2,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016545",
        "N00016951",
        "N00016952",
        "N00017164"
      ],
      "supporting_station_names": [
        "Nakhon Ratchasima Bus Terminal",
        "STR Nakhon Ratchasima",
        "SRT Thanon Chira Junction",
        "Nakhon Ratchasima Bus Terminal 2"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): bus, train."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "chanthaburi",
      "entity_name": "Chanthaburi",
      "entity_type": "destination",
      "entity_path": "/entities/chanthaburi/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_chanthaburi_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 41,
      "unit": "score",
      "stop_count": 4,
      "mode_count": 1,
      "rail_stop_count": 0,
      "boat_stop_count": 0,
      "bus_stop_count": 4,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017125",
        "N00017447",
        "N00017905",
        "N00017906"
      ],
      "supporting_station_names": [
        "Chanthaburi Passenger Transport Station",
        "Parking point: Phlapphla Subdistrict (in front of Wannakarn Market)",
        "Khao Rai Ya Bus Stop",
        "Noen Sung Bus Stop (Amon Pharmacy)"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "1 mode group(s): bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "khon-kaen",
      "entity_name": "Khon Kaen",
      "entity_type": "destination",
      "entity_path": "/entities/khon-kaen/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_khon-kaen_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 50,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017032",
        "N00017163",
        "N00017441"
      ],
      "supporting_station_names": [
        "SRT Khon Kaen",
        "Khon Kaen Bus Terminal",
        "Khon Kaen Bus Terminal 3"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): train, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "ubon-ratchathani",
      "entity_name": "Ubon Ratchathani",
      "entity_type": "destination",
      "entity_path": "/entities/ubon-ratchathani/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_ubon-ratchathani_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 53,
      "unit": "score",
      "stop_count": 4,
      "mode_count": 2,
      "rail_stop_count": 2,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016961",
        "N00017046",
        "N00017308",
        "N00017320"
      ],
      "supporting_station_names": [
        "SRT Ubon Ratchathani",
        "SRT Ubon Ratchathani",
        "Ubon Ratchathani Transport Office 2",
        "Ubon Ratchathani Bus Terminal"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): train, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "buriram",
      "entity_name": "Buriram",
      "entity_type": "destination",
      "entity_path": "/entities/buriram/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_buriram_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 48,
      "unit": "score",
      "stop_count": 2,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 1,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00016954",
        "N00017176"
      ],
      "supporting_station_names": [
        "SRT Buri Ram",
        "Buriram Bus Terminal"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): train, bus."
    },
    {
      "feed_id": "namtang-transit-structure",
      "source_name": "Namtang GTFS",
      "entity_id": "nong-khai",
      "entity_name": "Nong Khai",
      "entity_type": "destination",
      "entity_path": "/entities/nong-khai/",
      "observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable",
      "quality_flag": "proxy-derived",
      "method": "namtang_stop_structure",
      "confidence": "medium",
      "note": "Static Namtang stop-and-station coverage near this graph entity.",
      "observation_id": "namtang-transit-structure_nong-khai_transport_structure_score",
      "parameter": "transport_structure_score",
      "metric_label": "Transport structure score",
      "value": 50,
      "unit": "score",
      "stop_count": 3,
      "mode_count": 2,
      "rail_stop_count": 1,
      "boat_stop_count": 0,
      "bus_stop_count": 2,
      "airport_link_stop_count": 0,
      "supporting_station_ids": [
        "N00017037",
        "N00017227",
        "N00017722"
      ],
      "supporting_station_names": [
        "SRT Nong Khai",
        "Nong Khai Passenger Transport Station",
        "Nong Khai Border Checkpoint"
      ],
      "source_names": [
        "Namtang GTFS"
      ],
      "comparison_hint": "2 mode group(s): train, bus."
    },
    {
      "feed_id": "bangkok-rapid-transit-official-pages",
      "source_name": "BTS SkyTrain system maps and service pages",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:11:29.575Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bts_mrta_public_route_pages_snapshot",
      "confidence": "high",
      "note": "Official BTS and MRTA route-map and service pages confirm Bangkok's strongest rapid-transit city base at the destination level.",
      "observation_id": "bangkok-rapid-transit-official-pages_bangkok_official_rapid_transit_support_score",
      "parameter": "official_rapid_transit_support_score",
      "metric_label": "Official rapid-transit support score",
      "value": 98,
      "unit": "score",
      "official_support_source_count": 2,
      "bts_feature_count": 6,
      "mrta_feature_count": 8,
      "official_line_names": [
        "Blue Line",
        "Purple Line",
        "Yellow Line",
        "Pink Line"
      ],
      "bts_title": "Route and Fares",
      "mrta_title": "MRT Route | Mass Rapid Transit Authority of Thailand",
      "bts_url": "https://www.bts.co.th/eng/routemap-mb/index.html",
      "mrta_url": "https://www.mrta.co.th/en/mrt-route",
      "bts_route_fares_flag": 1,
      "bts_origin_destination_search_flag": 1,
      "bts_download_map_flag": 1,
      "bts_station_area_map_flag": 1,
      "bts_service_facilities_flag": 1,
      "bts_train_time_flag": 1,
      "mrta_route_flag": 1,
      "mrta_blue_line_flag": 1,
      "mrta_purple_line_flag": 1,
      "mrta_yellow_line_flag": 1,
      "mrta_pink_line_flag": 1,
      "mrta_ticket_info_flag": 1,
      "mrta_parking_services_flag": 1,
      "mrta_bangkok_project_flag": 1,
      "comparison_hint": "2 official rapid-transit page(s), 6 BTS support feature(s), 8 MRTA support feature(s), and 4 named MRT line(s) in the latest snapshot.",
      "source_names": [
        "BTS SkyTrain system maps and service pages",
        "MRT / MRTA metro maps and service pages"
      ]
    },
    {
      "feed_id": "bangkok-rapid-transit-official-pages",
      "source_name": "BTS SkyTrain system maps and service pages",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:11:29.575Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bts_mrta_public_route_pages_snapshot",
      "confidence": "high",
      "note": "Sukhumvit gets the strongest official rapid-transit support because it is the clearest first-timer hotel base that depends on BTS and MRT overlap.",
      "observation_id": "bangkok-rapid-transit-official-pages_sukhumvit_official_rapid_transit_support_score",
      "parameter": "official_rapid_transit_support_score",
      "metric_label": "Official rapid-transit support score",
      "value": 98,
      "unit": "score",
      "official_support_source_count": 2,
      "bts_feature_count": 6,
      "mrta_feature_count": 8,
      "official_line_names": [
        "Blue Line",
        "Purple Line",
        "Yellow Line",
        "Pink Line"
      ],
      "bts_title": "Route and Fares",
      "mrta_title": "MRT Route | Mass Rapid Transit Authority of Thailand",
      "bts_url": "https://www.bts.co.th/eng/routemap-mb/index.html",
      "mrta_url": "https://www.mrta.co.th/en/mrt-route",
      "bts_route_fares_flag": 1,
      "bts_origin_destination_search_flag": 1,
      "bts_download_map_flag": 1,
      "bts_station_area_map_flag": 1,
      "bts_service_facilities_flag": 1,
      "bts_train_time_flag": 1,
      "mrta_route_flag": 1,
      "mrta_blue_line_flag": 1,
      "mrta_purple_line_flag": 1,
      "mrta_yellow_line_flag": 1,
      "mrta_pink_line_flag": 1,
      "mrta_ticket_info_flag": 1,
      "mrta_parking_services_flag": 1,
      "mrta_bangkok_project_flag": 1,
      "comparison_hint": "2 official rapid-transit page(s), 6 BTS support feature(s), 8 MRTA support feature(s), and 4 named MRT line(s) in the latest snapshot.",
      "source_names": [
        "BTS SkyTrain system maps and service pages",
        "MRT / MRTA metro maps and service pages"
      ]
    },
    {
      "feed_id": "bangkok-rapid-transit-official-pages",
      "source_name": "BTS SkyTrain system maps and service pages",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:11:29.575Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bts_mrta_public_route_pages_snapshot",
      "confidence": "high",
      "note": "Silom / Sathorn keeps strong official rapid-transit support through MRT, BTS, and easy business-district interchange logic.",
      "observation_id": "bangkok-rapid-transit-official-pages_silom-sathorn_official_rapid_transit_support_score",
      "parameter": "official_rapid_transit_support_score",
      "metric_label": "Official rapid-transit support score",
      "value": 98,
      "unit": "score",
      "official_support_source_count": 2,
      "bts_feature_count": 6,
      "mrta_feature_count": 8,
      "official_line_names": [
        "Blue Line",
        "Purple Line",
        "Yellow Line",
        "Pink Line"
      ],
      "bts_title": "Route and Fares",
      "mrta_title": "MRT Route | Mass Rapid Transit Authority of Thailand",
      "bts_url": "https://www.bts.co.th/eng/routemap-mb/index.html",
      "mrta_url": "https://www.mrta.co.th/en/mrt-route",
      "bts_route_fares_flag": 1,
      "bts_origin_destination_search_flag": 1,
      "bts_download_map_flag": 1,
      "bts_station_area_map_flag": 1,
      "bts_service_facilities_flag": 1,
      "bts_train_time_flag": 1,
      "mrta_route_flag": 1,
      "mrta_blue_line_flag": 1,
      "mrta_purple_line_flag": 1,
      "mrta_yellow_line_flag": 1,
      "mrta_pink_line_flag": 1,
      "mrta_ticket_info_flag": 1,
      "mrta_parking_services_flag": 1,
      "mrta_bangkok_project_flag": 1,
      "comparison_hint": "2 official rapid-transit page(s), 6 BTS support feature(s), 8 MRTA support feature(s), and 4 named MRT line(s) in the latest snapshot.",
      "source_names": [
        "BTS SkyTrain system maps and service pages",
        "MRT / MRTA metro maps and service pages"
      ]
    },
    {
      "feed_id": "bangkok-rapid-transit-official-pages",
      "source_name": "BTS SkyTrain system maps and service pages",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-05-15T11:11:29.575Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bts_mrta_public_route_pages_snapshot",
      "confidence": "medium",
      "note": "Riverside / Old Town is usable with official rapid-transit support, but the hotel base still depends more on last-mile river or taxi logic than Sukhumvit does.",
      "observation_id": "bangkok-rapid-transit-official-pages_riverside-old-town_official_rapid_transit_support_score",
      "parameter": "official_rapid_transit_support_score",
      "metric_label": "Official rapid-transit support score",
      "value": 85,
      "unit": "score",
      "official_support_source_count": 2,
      "bts_feature_count": 6,
      "mrta_feature_count": 8,
      "official_line_names": [
        "Blue Line",
        "Purple Line",
        "Yellow Line",
        "Pink Line"
      ],
      "bts_title": "Route and Fares",
      "mrta_title": "MRT Route | Mass Rapid Transit Authority of Thailand",
      "bts_url": "https://www.bts.co.th/eng/routemap-mb/index.html",
      "mrta_url": "https://www.mrta.co.th/en/mrt-route",
      "bts_route_fares_flag": 1,
      "bts_origin_destination_search_flag": 1,
      "bts_download_map_flag": 1,
      "bts_station_area_map_flag": 1,
      "bts_service_facilities_flag": 1,
      "bts_train_time_flag": 1,
      "mrta_route_flag": 1,
      "mrta_blue_line_flag": 1,
      "mrta_purple_line_flag": 1,
      "mrta_yellow_line_flag": 1,
      "mrta_pink_line_flag": 1,
      "mrta_ticket_info_flag": 1,
      "mrta_parking_services_flag": 1,
      "mrta_bangkok_project_flag": 1,
      "comparison_hint": "2 official rapid-transit page(s), 6 BTS support feature(s), 8 MRTA support feature(s), and 4 named MRT line(s) in the latest snapshot.",
      "source_names": [
        "BTS SkyTrain system maps and service pages",
        "MRT / MRTA metro maps and service pages"
      ]
    },
    {
      "feed_id": "bangkok-rapid-transit-official-pages",
      "source_name": "BTS SkyTrain system maps and service pages",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-05-15T11:11:29.575Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bts_mrta_public_route_pages_snapshot",
      "confidence": "medium-high",
      "note": "Ari keeps strong official rapid-transit support through BTS-linked city movement, even though it is calmer and less interchange-heavy than Asok or Silom.",
      "observation_id": "bangkok-rapid-transit-official-pages_ari_official_rapid_transit_support_score",
      "parameter": "official_rapid_transit_support_score",
      "metric_label": "Official rapid-transit support score",
      "value": 97,
      "unit": "score",
      "official_support_source_count": 2,
      "bts_feature_count": 6,
      "mrta_feature_count": 8,
      "official_line_names": [
        "Blue Line",
        "Purple Line",
        "Yellow Line",
        "Pink Line"
      ],
      "bts_title": "Route and Fares",
      "mrta_title": "MRT Route | Mass Rapid Transit Authority of Thailand",
      "bts_url": "https://www.bts.co.th/eng/routemap-mb/index.html",
      "mrta_url": "https://www.mrta.co.th/en/mrt-route",
      "bts_route_fares_flag": 1,
      "bts_origin_destination_search_flag": 1,
      "bts_download_map_flag": 1,
      "bts_station_area_map_flag": 1,
      "bts_service_facilities_flag": 1,
      "bts_train_time_flag": 1,
      "mrta_route_flag": 1,
      "mrta_blue_line_flag": 1,
      "mrta_purple_line_flag": 1,
      "mrta_yellow_line_flag": 1,
      "mrta_pink_line_flag": 1,
      "mrta_ticket_info_flag": 1,
      "mrta_parking_services_flag": 1,
      "mrta_bangkok_project_flag": 1,
      "comparison_hint": "2 official rapid-transit page(s), 6 BTS support feature(s), 8 MRTA support feature(s), and 4 named MRT line(s) in the latest snapshot.",
      "source_names": [
        "BTS SkyTrain system maps and service pages",
        "MRT / MRTA metro maps and service pages"
      ]
    },
    {
      "feed_id": "bangkok-rapid-transit-official-pages",
      "source_name": "BTS SkyTrain system maps and service pages",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-05-15T11:11:29.575Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bts_mrta_public_route_pages_snapshot",
      "confidence": "high",
      "note": "Asok interchange is the strongest official rapid-transit proof-point in the graph because both BTS and MRT public pages support the route logic behind it.",
      "observation_id": "bangkok-rapid-transit-official-pages_bts-asok_official_rapid_transit_support_score",
      "parameter": "official_rapid_transit_support_score",
      "metric_label": "Official rapid-transit support score",
      "value": 98,
      "unit": "score",
      "official_support_source_count": 2,
      "bts_feature_count": 6,
      "mrta_feature_count": 8,
      "official_line_names": [
        "Blue Line",
        "Purple Line",
        "Yellow Line",
        "Pink Line"
      ],
      "bts_title": "Route and Fares",
      "mrta_title": "MRT Route | Mass Rapid Transit Authority of Thailand",
      "bts_url": "https://www.bts.co.th/eng/routemap-mb/index.html",
      "mrta_url": "https://www.mrta.co.th/en/mrt-route",
      "bts_route_fares_flag": 1,
      "bts_origin_destination_search_flag": 1,
      "bts_download_map_flag": 1,
      "bts_station_area_map_flag": 1,
      "bts_service_facilities_flag": 1,
      "bts_train_time_flag": 1,
      "mrta_route_flag": 1,
      "mrta_blue_line_flag": 1,
      "mrta_purple_line_flag": 1,
      "mrta_yellow_line_flag": 1,
      "mrta_pink_line_flag": 1,
      "mrta_ticket_info_flag": 1,
      "mrta_parking_services_flag": 1,
      "mrta_bangkok_project_flag": 1,
      "comparison_hint": "2 official rapid-transit page(s), 6 BTS support feature(s), 8 MRTA support feature(s), and 4 named MRT line(s) in the latest snapshot.",
      "source_names": [
        "BTS SkyTrain system maps and service pages",
        "MRT / MRTA metro maps and service pages"
      ]
    },
    {
      "feed_id": "bangkok-rapid-transit-official-pages",
      "source_name": "BTS SkyTrain system maps and service pages",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:11:29.575Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bts_mrta_public_route_pages_snapshot",
      "confidence": "medium-high",
      "note": "Mochit 2 benefits from Bangkok rapid-transit support mainly as a transfer-recovery layer rather than a hotel-base destination in itself.",
      "observation_id": "bangkok-rapid-transit-official-pages_bangkok-mochit-2_official_rapid_transit_support_score",
      "parameter": "official_rapid_transit_support_score",
      "metric_label": "Official rapid-transit support score",
      "value": 91,
      "unit": "score",
      "official_support_source_count": 2,
      "bts_feature_count": 6,
      "mrta_feature_count": 8,
      "official_line_names": [
        "Blue Line",
        "Purple Line",
        "Yellow Line",
        "Pink Line"
      ],
      "bts_title": "Route and Fares",
      "mrta_title": "MRT Route | Mass Rapid Transit Authority of Thailand",
      "bts_url": "https://www.bts.co.th/eng/routemap-mb/index.html",
      "mrta_url": "https://www.mrta.co.th/en/mrt-route",
      "bts_route_fares_flag": 1,
      "bts_origin_destination_search_flag": 1,
      "bts_download_map_flag": 1,
      "bts_station_area_map_flag": 1,
      "bts_service_facilities_flag": 1,
      "bts_train_time_flag": 1,
      "mrta_route_flag": 1,
      "mrta_blue_line_flag": 1,
      "mrta_purple_line_flag": 1,
      "mrta_yellow_line_flag": 1,
      "mrta_pink_line_flag": 1,
      "mrta_ticket_info_flag": 1,
      "mrta_parking_services_flag": 1,
      "mrta_bangkok_project_flag": 1,
      "comparison_hint": "2 official rapid-transit page(s), 6 BTS support feature(s), 8 MRTA support feature(s), and 4 named MRT line(s) in the latest snapshot.",
      "source_names": [
        "BTS SkyTrain system maps and service pages",
        "MRT / MRTA metro maps and service pages"
      ]
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "high",
      "note": "Official MOT terminal-master matches confirm Bangkok as Thailand's main overland bus-transfer anchor.",
      "observation_id": "mot-bus-terminal-support_bangkok_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 86,
      "unit": "score",
      "official_terminal_match_count": 3,
      "official_terminal_unique_count": 3,
      "official_terminal_names": [
        "SOUTHERN BUS TERMINAL, BOROMMARATCHACHONNANI RD.",
        "NORTHERN AND NORTHEASTERN BUS TERMINAL (MO CHIT 2 BUS TERMINAL)",
        "BANGKOK BUS TERMINAL (EKAMAI)"
      ],
      "official_owner_names": [
        "บจก.ขนส่ง"
      ],
      "official_terminal_ids": [
        "28",
        "29",
        "37"
      ],
      "supporting_station_names": [
        "SOUTHERN BUS TERMINAL, BOROMMARATCHACHONNANI RD.",
        "NORTHERN AND NORTHEASTERN BUS TERMINAL (MO CHIT 2 BUS TERMINAL)",
        "BANGKOK BUS TERMINAL (EKAMAI)"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "3 official terminal match(es): SOUTHERN BUS TERMINAL, BOROMMARATCHACHONNANI RD., NORTHERN AND NORTHEASTERN BUS TERMINAL (MO CHIT 2 BUS TERMINAL), BANGKOK BUS TERMINAL (EKAMAI)."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "high",
      "note": "Official MOT terminal-master matches confirm Chiang Mai's intercity bus-terminal presence.",
      "observation_id": "mot-bus-terminal-support_chiang-mai_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 86,
      "unit": "score",
      "official_terminal_match_count": 3,
      "official_terminal_unique_count": 3,
      "official_terminal_names": [
        "CHIANG MAI BUS TERMINAL 2 (AKHET)",
        "CHIANG MAI BUS TERMINAL 3",
        "CHIANG MAI BUS TERMINAL 1 (CHANG PHUEAK)"
      ],
      "official_owner_names": [
        "เทศบาลเมืองเชียงใหม่"
      ],
      "official_terminal_ids": [
        "60",
        "114",
        "115"
      ],
      "supporting_station_names": [
        "CHIANG MAI BUS TERMINAL 2 (AKHET)",
        "CHIANG MAI BUS TERMINAL 3",
        "CHIANG MAI BUS TERMINAL 1 (CHANG PHUEAK)"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "3 official terminal match(es): CHIANG MAI BUS TERMINAL 2 (AKHET), CHIANG MAI BUS TERMINAL 3, CHIANG MAI BUS TERMINAL 1 (CHANG PHUEAK)."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "high",
      "note": "Official MOT terminal-master matches confirm Phuket's overland bus-terminal presence as a backup to flight and pier planning.",
      "observation_id": "mot-bus-terminal-support_phuket_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 78,
      "unit": "score",
      "official_terminal_match_count": 2,
      "official_terminal_unique_count": 2,
      "official_terminal_names": [
        "PHUKET BUS TERMINAL",
        "PHUKET BUS TERMINAL 2"
      ],
      "official_owner_names": [
        "เทศบาลนครภูเก็ต",
        "เทศบาลตำบลรัษฎา"
      ],
      "official_terminal_ids": [
        "4",
        "66"
      ],
      "supporting_station_names": [
        "PHUKET BUS TERMINAL",
        "PHUKET BUS TERMINAL 2"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "2 official terminal match(es): PHUKET BUS TERMINAL, PHUKET BUS TERMINAL 2."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "high",
      "note": "Official MOT terminal-master matches confirm Krabi's intercity bus-terminal presence.",
      "observation_id": "mot-bus-terminal-support_krabi_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 68,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "KRABI BUS TERMINAL"
      ],
      "official_owner_names": [
        "บจก.กระบี่เทอร์มินอล"
      ],
      "official_terminal_ids": [
        "30"
      ],
      "supporting_station_names": [
        "KRABI BUS TERMINAL"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): KRABI BUS TERMINAL."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium-high",
      "note": "Official MOT terminal-master matches confirm Samui's public bus-terminal presence on the island, which matters for mainland-to-pier and airport backup planning.",
      "observation_id": "mot-bus-terminal-support_koh-samui_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 68,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "KO SAMUI BUS TERMINAL SURAT THANI"
      ],
      "official_owner_names": [
        "เทศบาลเมืองสมุย"
      ],
      "official_terminal_ids": [
        "68"
      ],
      "supporting_station_names": [
        "KO SAMUI BUS TERMINAL SURAT THANI"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): KO SAMUI BUS TERMINAL SURAT THANI."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium-high",
      "note": "Official MOT terminal-master matches confirm Pattaya and Chonburi overland terminal support for Bangkok-linked coast plans.",
      "observation_id": "mot-bus-terminal-support_pattaya-chonburi_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 78,
      "unit": "score",
      "official_terminal_match_count": 2,
      "official_terminal_unique_count": 2,
      "official_terminal_names": [
        "CHON BURI BUS TERMINAL",
        "PATTAYA BUS TERMINAL"
      ],
      "official_owner_names": [
        "อบจ.ชลบุรี",
        "กรมการขนส่งทางบก"
      ],
      "official_terminal_ids": [
        "19",
        "79"
      ],
      "supporting_station_names": [
        "CHON BURI BUS TERMINAL",
        "PATTAYA BUS TERMINAL"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "2 official terminal match(es): CHON BURI BUS TERMINAL, PATTAYA BUS TERMINAL."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "high",
      "note": "Official MOT terminal-master matches confirm Hua Hin's overland bus-terminal support.",
      "observation_id": "mot-bus-terminal-support_hua-hin_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 68,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "HUA HIN BUS TERMINAL"
      ],
      "official_owner_names": [
        "กรมการขนส่งทางบก"
      ],
      "official_terminal_ids": [
        "20"
      ],
      "supporting_station_names": [
        "HUA HIN BUS TERMINAL"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): HUA HIN BUS TERMINAL."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "high",
      "note": "Official MOT terminal-master matches confirm Kanchanaburi's overland bus-terminal presence.",
      "observation_id": "mot-bus-terminal-support_kanchanaburi_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 68,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "KANCHANABURI BUS TERMINAL"
      ],
      "official_owner_names": [
        "เทศบาลเมืองกาญจนบุรี"
      ],
      "official_terminal_ids": [
        "113"
      ],
      "supporting_station_names": [
        "KANCHANABURI BUS TERMINAL"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): KANCHANABURI BUS TERMINAL."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium",
      "note": "Official MOT terminal-master matches confirm that Isaan has multiple overland bus-terminal anchors, even though the region is too broad to treat as a single terminal stop.",
      "observation_id": "mot-bus-terminal-support_isaan_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 92,
      "unit": "score",
      "official_terminal_match_count": 29,
      "official_terminal_unique_count": 29,
      "official_terminal_names": [
        "KHON KAEN AIR-CONDITIONED BUS TERMINAL",
        "PHAN DON BUS TERMINAL",
        "BURI RAM BUS TERMINAL",
        "UDON THANI BUS TERMINAL 2",
        "ROI ET BUS TERMINAL",
        "NAKHON RATCHASIMA BUS TERMINAL 2",
        "BUS TERMINAL THETSABAN MUEANG MUEANG PHON",
        "KHON KAEN BUS TERMINAL 3",
        "AMPHOE SANGKHA BUS TERMINAL SURIN",
        "THETSABAN MUEANG SAKON NAKHON BUS TERMINAL"
      ],
      "official_owner_names": [
        "เทศบาลนครขอนแก่น",
        "อบจ.อุดรธานี",
        "เทศบาลเมืองบุรีรัมย์",
        "บจก.หนึ่ง",
        "หจก.ขวัญพงษ์ธวัช",
        "บจก.ไทยสงวนบริการ",
        "เทศบาลเมืองเมืองพล",
        "อบจ.ขอนแก่น",
        "อบจ.สุรินทร์",
        "เทศบาลเมืองสกลนคร"
      ],
      "official_terminal_ids": [
        "2",
        "5",
        "10",
        "14",
        "15",
        "23",
        "33",
        "34",
        "47",
        "51"
      ],
      "supporting_station_names": [
        "KHON KAEN AIR-CONDITIONED BUS TERMINAL",
        "PHAN DON BUS TERMINAL",
        "BURI RAM BUS TERMINAL",
        "UDON THANI BUS TERMINAL 2",
        "ROI ET BUS TERMINAL",
        "NAKHON RATCHASIMA BUS TERMINAL 2",
        "BUS TERMINAL THETSABAN MUEANG MUEANG PHON",
        "KHON KAEN BUS TERMINAL 3"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "29 official terminal match(es): KHON KAEN AIR-CONDITIONED BUS TERMINAL, PHAN DON BUS TERMINAL, BURI RAM BUS TERMINAL, UDON THANI BUS TERMINAL 2, ROI ET BUS TERMINAL."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium",
      "note": "Old City Chiang Mai uses the official Chiang Mai bus-terminal master as a practical overland fallback layer behind temple-first and rail-air mixed itineraries.",
      "observation_id": "mot-bus-terminal-support_old-city-chiang-mai_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 80,
      "unit": "score",
      "official_terminal_match_count": 3,
      "official_terminal_unique_count": 3,
      "official_terminal_names": [
        "CHIANG MAI BUS TERMINAL 2 (AKHET)",
        "CHIANG MAI BUS TERMINAL 3",
        "CHIANG MAI BUS TERMINAL 1 (CHANG PHUEAK)"
      ],
      "official_owner_names": [
        "เทศบาลเมืองเชียงใหม่"
      ],
      "official_terminal_ids": [
        "60",
        "114",
        "115"
      ],
      "supporting_station_names": [
        "CHIANG MAI BUS TERMINAL 2 (AKHET)",
        "CHIANG MAI BUS TERMINAL 3",
        "CHIANG MAI BUS TERMINAL 1 (CHANG PHUEAK)"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "3 official terminal match(es): CHIANG MAI BUS TERMINAL 2 (AKHET), CHIANG MAI BUS TERMINAL 3, CHIANG MAI BUS TERMINAL 1 (CHANG PHUEAK)."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium-low",
      "note": "Patong uses Phuket's official bus-terminal master as indirect overland and airport fallback context behind a nightlife-heavy beach base.",
      "observation_id": "mot-bus-terminal-support_patong_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 72,
      "unit": "score",
      "official_terminal_match_count": 2,
      "official_terminal_unique_count": 2,
      "official_terminal_names": [
        "PHUKET BUS TERMINAL",
        "PHUKET BUS TERMINAL 2"
      ],
      "official_owner_names": [
        "เทศบาลนครภูเก็ต",
        "เทศบาลตำบลรัษฎา"
      ],
      "official_terminal_ids": [
        "4",
        "66"
      ],
      "supporting_station_names": [
        "PHUKET BUS TERMINAL",
        "PHUKET BUS TERMINAL 2"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "2 official terminal match(es): PHUKET BUS TERMINAL, PHUKET BUS TERMINAL 2."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "low",
      "note": "Rawai / Nai Harn uses Phuket's official bus-terminal master only as indirect overland and airport fallback context behind a slower south-coast base.",
      "observation_id": "mot-bus-terminal-support_rawai-nai-harn_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 72,
      "unit": "score",
      "official_terminal_match_count": 2,
      "official_terminal_unique_count": 2,
      "official_terminal_names": [
        "PHUKET BUS TERMINAL",
        "PHUKET BUS TERMINAL 2"
      ],
      "official_owner_names": [
        "เทศบาลนครภูเก็ต",
        "เทศบาลตำบลรัษฎา"
      ],
      "official_terminal_ids": [
        "4",
        "66"
      ],
      "supporting_station_names": [
        "PHUKET BUS TERMINAL",
        "PHUKET BUS TERMINAL 2"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "2 official terminal match(es): PHUKET BUS TERMINAL, PHUKET BUS TERMINAL 2."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium",
      "note": "Phuket Old Town uses Phuket's official bus-terminal master as a stronger overland fallback layer behind food-first, rain-backup, and airport-linked stays.",
      "observation_id": "mot-bus-terminal-support_phuket-old-town_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 72,
      "unit": "score",
      "official_terminal_match_count": 2,
      "official_terminal_unique_count": 2,
      "official_terminal_names": [
        "PHUKET BUS TERMINAL",
        "PHUKET BUS TERMINAL 2"
      ],
      "official_owner_names": [
        "เทศบาลนครภูเก็ต",
        "เทศบาลตำบลรัษฎา"
      ],
      "official_terminal_ids": [
        "4",
        "66"
      ],
      "supporting_station_names": [
        "PHUKET BUS TERMINAL",
        "PHUKET BUS TERMINAL 2"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "2 official terminal match(es): PHUKET BUS TERMINAL, PHUKET BUS TERMINAL 2."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium-low",
      "note": "Chaweng uses Samui's official bus-terminal master as a lighter mainland-handoff and airport backup layer behind a high-service island base.",
      "observation_id": "mot-bus-terminal-support_chaweng_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 62,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "KO SAMUI BUS TERMINAL SURAT THANI"
      ],
      "official_owner_names": [
        "เทศบาลเมืองสมุย"
      ],
      "official_terminal_ids": [
        "68"
      ],
      "supporting_station_names": [
        "KO SAMUI BUS TERMINAL SURAT THANI"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): KO SAMUI BUS TERMINAL SURAT THANI."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium-low",
      "note": "Lamai uses Samui's official bus-terminal master as a lighter mainland-handoff and airport backup layer behind a calmer island base.",
      "observation_id": "mot-bus-terminal-support_lamai_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 62,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "KO SAMUI BUS TERMINAL SURAT THANI"
      ],
      "official_owner_names": [
        "เทศบาลเมืองสมุย"
      ],
      "official_terminal_ids": [
        "68"
      ],
      "supporting_station_names": [
        "KO SAMUI BUS TERMINAL SURAT THANI"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): KO SAMUI BUS TERMINAL SURAT THANI."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "central-pattaya-jomtien",
      "entity_name": "Central Pattaya / Jomtien",
      "entity_type": "hotel_area",
      "entity_path": "/entities/central-pattaya-jomtien/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium",
      "note": "Official MOT terminal-master matches confirm nearby public terminal support for Pattaya / Jomtien hotel-base planning.",
      "observation_id": "mot-bus-terminal-support_central-pattaya-jomtien_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 72,
      "unit": "score",
      "official_terminal_match_count": 2,
      "official_terminal_unique_count": 2,
      "official_terminal_names": [
        "CHON BURI BUS TERMINAL",
        "PATTAYA BUS TERMINAL"
      ],
      "official_owner_names": [
        "อบจ.ชลบุรี",
        "กรมการขนส่งทางบก"
      ],
      "official_terminal_ids": [
        "19",
        "79"
      ],
      "supporting_station_names": [
        "CHON BURI BUS TERMINAL",
        "PATTAYA BUS TERMINAL"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "2 official terminal match(es): CHON BURI BUS TERMINAL, PATTAYA BUS TERMINAL."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "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/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium",
      "note": "Official MOT terminal-master matches confirm nearby terminal support for Hua Hin / Khao Takiab hotel-base planning.",
      "observation_id": "mot-bus-terminal-support_central-hua-hin-khao-takiab_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 62,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "HUA HIN BUS TERMINAL"
      ],
      "official_owner_names": [
        "กรมการขนส่งทางบก"
      ],
      "official_terminal_ids": [
        "20"
      ],
      "supporting_station_names": [
        "HUA HIN BUS TERMINAL"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): HUA HIN BUS TERMINAL."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "medium",
      "note": "Ao Nang uses Krabi's official bus-terminal master as practical overland fallback context behind airport and pier-linked coastal planning.",
      "observation_id": "mot-bus-terminal-support_ao-nang_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 62,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "KRABI BUS TERMINAL"
      ],
      "official_owner_names": [
        "บจก.กระบี่เทอร์มินอล"
      ],
      "official_terminal_ids": [
        "30"
      ],
      "supporting_station_names": [
        "KRABI BUS TERMINAL"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): KRABI BUS TERMINAL."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "low",
      "note": "Railay uses Krabi's official bus-terminal master only as indirect mainland-side overland fallback context behind a boat-dependent base.",
      "observation_id": "mot-bus-terminal-support_railay_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 62,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "KRABI BUS TERMINAL"
      ],
      "official_owner_names": [
        "บจก.กระบี่เทอร์มินอล"
      ],
      "official_terminal_ids": [
        "30"
      ],
      "supporting_station_names": [
        "KRABI BUS TERMINAL"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): KRABI BUS TERMINAL."
    },
    {
      "feed_id": "mot-bus-terminal-support",
      "source_name": "MOT passenger bus terminals dataset",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "mot_bus_terminal_master_csv",
      "confidence": "high",
      "note": "Official MOT terminal-master matches confirm Mochit 2 as the main northern and Isaan overland terminal anchor in Bangkok.",
      "observation_id": "mot-bus-terminal-support_bangkok-mochit-2_official_bus_terminal_support_score",
      "parameter": "official_bus_terminal_support_score",
      "metric_label": "Official bus-terminal support score",
      "value": 96,
      "unit": "score",
      "official_terminal_match_count": 1,
      "official_terminal_unique_count": 1,
      "official_terminal_names": [
        "NORTHERN AND NORTHEASTERN BUS TERMINAL (MO CHIT 2 BUS TERMINAL)"
      ],
      "official_owner_names": [
        "บจก.ขนส่ง"
      ],
      "official_terminal_ids": [
        "29"
      ],
      "supporting_station_names": [
        "NORTHERN AND NORTHEASTERN BUS TERMINAL (MO CHIT 2 BUS TERMINAL)"
      ],
      "source_names": [
        "MOT passenger bus terminals dataset"
      ],
      "comparison_hint": "1 official terminal match(es): NORTHERN AND NORTHEASTERN BUS TERMINAL (MO CHIT 2 BUS TERMINAL)."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "high",
      "note": "Official BKS station and ticket-point rows confirm Bangkok as the main intercity-bus anchor, not just a generic metro node.",
      "observation_id": "bks-station-ticket-support_bangkok_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 92,
      "unit": "score",
      "official_bks_match_count": 7,
      "official_bks_unique_count": 7,
      "official_bks_station_names": [
        "สถานีขนส่งผู้โดยสารกรุงเทพ (จตุจักร)/สำนักงานใหญ่",
        "สถานีบริการขนส่งสาธารณะขนาดเล็ก",
        "สถานีขนส่งผู้โดยสารกรุงเทพ (เอกมัย)",
        "สถานีขนส่งผู้โดยสารกรุงเทพ (สายใต้บรมราชชนนี)",
        "งานบริการน้ำมัน (สายใต้ปิ่นเกล้า)",
        "จุดจำหน่ายค่าธรรมเนียม สถานีขนส่งผู้โดยสารกรุงเทพ (สายใต้ปิ่นเกล้า)",
        "สถานีเดินรถกำแพงเพชร"
      ],
      "official_bks_type_labels": [
        "สถานีเดินรถ",
        "ที่ทำการ",
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 3,
      "supporting_station_names": [
        "สถานีขนส่งผู้โดยสารกรุงเทพ (จตุจักร)/สำนักงานใหญ่",
        "สถานีบริการขนส่งสาธารณะขนาดเล็ก",
        "สถานีขนส่งผู้โดยสารกรุงเทพ (เอกมัย)",
        "สถานีขนส่งผู้โดยสารกรุงเทพ (สายใต้บรมราชชนนี)",
        "งานบริการน้ำมัน (สายใต้ปิ่นเกล้า)",
        "จุดจำหน่ายค่าธรรมเนียม สถานีขนส่งผู้โดยสารกรุงเทพ (สายใต้ปิ่นเกล้า)",
        "สถานีเดินรถกำแพงเพชร"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "7 official BKS station or ticket-point match(es): สถานีขนส่งผู้โดยสารกรุงเทพ (จตุจักร)/สำนักงานใหญ่, สถานีบริการขนส่งสาธารณะขนาดเล็ก, สถานีขนส่งผู้โดยสารกรุงเทพ (เอกมัย), สถานีขนส่งผู้โดยสารกรุงเทพ (สายใต้บรมราชชนนี), งานบริการน้ำมัน (สายใต้ปิ่นเกล้า)."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "high",
      "note": "Official BKS station and ticket-point rows confirm Chiang Mai's intercity-bus support.",
      "observation_id": "bks-station-ticket-support_chiang-mai_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 72,
      "unit": "score",
      "official_bks_match_count": 2,
      "official_bks_unique_count": 2,
      "official_bks_station_names": [
        "สถานีเดินรถเชียงใหม่",
        "- จุดรับส่งพัสดุ เชียงใหม่"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดรับ-ส่งพัสดุ"
      ],
      "official_bks_type_count": 2,
      "supporting_station_names": [
        "สถานีเดินรถเชียงใหม่",
        "- จุดรับส่งพัสดุ เชียงใหม่"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "2 official BKS station or ticket-point match(es): สถานีเดินรถเชียงใหม่, - จุดรับส่งพัสดุ เชียงใหม่."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "high",
      "note": "Official BKS rows confirm Phuket's intercity-bus support as a road/airport backup layer.",
      "observation_id": "bks-station-ticket-support_phuket_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 77,
      "unit": "score",
      "official_bks_match_count": 2,
      "official_bks_unique_count": 2,
      "official_bks_station_names": [
        "สถานีเดินรถภูเก็ต",
        "- สถานีเดินรถภูเก็ต 2"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 2,
      "supporting_station_names": [
        "สถานีเดินรถภูเก็ต",
        "- สถานีเดินรถภูเก็ต 2"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "2 official BKS station or ticket-point match(es): สถานีเดินรถภูเก็ต, - สถานีเดินรถภูเก็ต 2."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "high",
      "note": "Official BKS rows confirm Krabi's intercity-bus support.",
      "observation_id": "bks-station-ticket-support_krabi_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 58,
      "unit": "score",
      "official_bks_match_count": 1,
      "official_bks_unique_count": 1,
      "official_bks_station_names": [
        "สถานีเดินรถกระบี่"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 1,
      "supporting_station_names": [
        "สถานีเดินรถกระบี่"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "1 official BKS station or ticket-point match(es): สถานีเดินรถกระบี่."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium-high",
      "note": "Official BKS rows confirm Samui's island-side intercity-bus and ticket support, which matters for mainland handoff planning.",
      "observation_id": "bks-station-ticket-support_koh-samui_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 58,
      "unit": "score",
      "official_bks_match_count": 1,
      "official_bks_unique_count": 1,
      "official_bks_station_names": [
        "สถานีเดินรถเกาะสมุย"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 1,
      "supporting_station_names": [
        "สถานีเดินรถเกาะสมุย"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "1 official BKS station or ticket-point match(es): สถานีเดินรถเกาะสมุย."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium-high",
      "note": "Official BKS rows confirm Pattaya and Chonburi intercity-bus support across the core coast corridor.",
      "observation_id": "bks-station-ticket-support_pattaya-chonburi_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 90,
      "unit": "score",
      "official_bks_match_count": 4,
      "official_bks_unique_count": 4,
      "official_bks_station_names": [
        "สถานีเดินรถชลบุรี",
        "- จุดจอดศรีราชา",
        "สถานีเดินรถพัทยา",
        "- จุดจอดสัตหีบ"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดจอด/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 2,
      "supporting_station_names": [
        "สถานีเดินรถชลบุรี",
        "- จุดจอดศรีราชา",
        "สถานีเดินรถพัทยา",
        "- จุดจอดสัตหีบ"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "4 official BKS station or ticket-point match(es): สถานีเดินรถชลบุรี, - จุดจอดศรีราชา, สถานีเดินรถพัทยา, - จุดจอดสัตหีบ."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "high",
      "note": "Official BKS rows confirm Hua Hin's intercity-bus support.",
      "observation_id": "bks-station-ticket-support_hua-hin_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 58,
      "unit": "score",
      "official_bks_match_count": 1,
      "official_bks_unique_count": 1,
      "official_bks_station_names": [
        "สถานีเดินรถหัวหิน"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 1,
      "supporting_station_names": [
        "สถานีเดินรถหัวหิน"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "1 official BKS station or ticket-point match(es): สถานีเดินรถหัวหิน."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "high",
      "note": "Official BKS rows confirm Ayutthaya's overland support through both the main station and Vang Noi/Wang Noi corridor anchors.",
      "observation_id": "bks-station-ticket-support_ayutthaya_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 92,
      "unit": "score",
      "official_bks_match_count": 5,
      "official_bks_unique_count": 5,
      "official_bks_station_names": [
        "สถานีเดินรถอยุธยา",
        "- จุดจอดเจ้าพรหม",
        "สถานีเดินรถวังน้อย",
        "ด่านตรวจการนวนคร (ขาออก)",
        "ด่านตรวจการวังน้อย (ขาออก)"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดจำหน่ายตั๋ว",
        "ด่านตรวจ"
      ],
      "official_bks_type_count": 3,
      "supporting_station_names": [
        "สถานีเดินรถอยุธยา",
        "- จุดจอดเจ้าพรหม",
        "สถานีเดินรถวังน้อย",
        "ด่านตรวจการนวนคร (ขาออก)",
        "ด่านตรวจการวังน้อย (ขาออก)"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "5 official BKS station or ticket-point match(es): สถานีเดินรถอยุธยา, - จุดจอดเจ้าพรหม, สถานีเดินรถวังน้อย, ด่านตรวจการนวนคร (ขาออก), ด่านตรวจการวังน้อย (ขาออก)."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "high",
      "note": "Official BKS rows confirm Kanchanaburi's intercity-bus support.",
      "observation_id": "bks-station-ticket-support_kanchanaburi_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 58,
      "unit": "score",
      "official_bks_match_count": 1,
      "official_bks_unique_count": 1,
      "official_bks_station_names": [
        "สถานีเดินรถกาญจนบุรี"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 1,
      "supporting_station_names": [
        "สถานีเดินรถกาญจนบุรี"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "1 official BKS station or ticket-point match(es): สถานีเดินรถกาญจนบุรี."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium",
      "note": "Official BKS rows confirm multiple intercity-bus anchors across Isaan, even though the region is too broad to collapse into one station.",
      "observation_id": "bks-station-ticket-support_isaan_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 92,
      "unit": "score",
      "official_bks_match_count": 27,
      "official_bks_unique_count": 27,
      "official_bks_station_names": [
        "สถานีเดินรถลำปาง",
        "- สถานีเดินรถลำปาง แห่งที่ 2",
        "สถานีเดินรถบุรีรัมย์",
        "- สถานีขนส่งผู้โดยสารจังหวัดบุรีรัมย์",
        "สถานีเดินรถนางรอง",
        "- จุดจอดหนองกี่",
        "สถานีเดินรถเมืองพล",
        "- จุดจอดบ้านไผ่",
        "สถานีเดินรถร้อยเอ็ด",
        "สถานีเดินรถสกลนคร",
        "- จุดจอดพังโคน",
        "สถานีเดินรถสุรินทร์"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดจำหน่ายตั๋ว",
        "จุดจอด/จุดจำหน่ายตั๋ว",
        "ด่านตรวจ"
      ],
      "official_bks_type_count": 4,
      "supporting_station_names": [
        "สถานีเดินรถลำปาง",
        "- สถานีเดินรถลำปาง แห่งที่ 2",
        "สถานีเดินรถบุรีรัมย์",
        "- สถานีขนส่งผู้โดยสารจังหวัดบุรีรัมย์",
        "สถานีเดินรถนางรอง",
        "- จุดจอดหนองกี่",
        "สถานีเดินรถเมืองพล",
        "- จุดจอดบ้านไผ่"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "27 official BKS station or ticket-point match(es): สถานีเดินรถลำปาง, - สถานีเดินรถลำปาง แห่งที่ 2, สถานีเดินรถบุรีรัมย์, - สถานีขนส่งผู้โดยสารจังหวัดบุรีรัมย์, สถานีเดินรถนางรอง."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium",
      "note": "Sukhumvit gets direct intercity-bus support from the official Ekkamai BKS station and related Bangkok east-side ticket context.",
      "observation_id": "bks-station-ticket-support_sukhumvit_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 88,
      "unit": "score",
      "official_bks_match_count": 4,
      "official_bks_unique_count": 4,
      "official_bks_station_names": [
        "สถานีขนส่งผู้โดยสารกรุงเทพ (เอกมัย)",
        "- จุดจอดแกลง สถานีเดินรถระยอง",
        "- จุดจอดศรีราชา",
        "สถานีเดินรถตราด"
      ],
      "official_bks_type_labels": [
        "สถานีเดินรถ",
        "จุดจอด/จุดจำหน่ายตั๋ว",
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 3,
      "supporting_station_names": [
        "สถานีขนส่งผู้โดยสารกรุงเทพ (เอกมัย)",
        "- จุดจอดแกลง สถานีเดินรถระยอง",
        "- จุดจอดศรีราชา",
        "สถานีเดินรถตราด"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "4 official BKS station or ticket-point match(es): สถานีขนส่งผู้โดยสารกรุงเทพ (เอกมัย), - จุดจอดแกลง สถานีเดินรถระยอง, - จุดจอดศรีราชา, สถานีเดินรถตราด."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium",
      "note": "Old City Chiang Mai uses official BKS station and ticket-point rows as practical overland support behind temple-first and rail-air mixed stays.",
      "observation_id": "bks-station-ticket-support_old-city-chiang-mai_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 68,
      "unit": "score",
      "official_bks_match_count": 2,
      "official_bks_unique_count": 2,
      "official_bks_station_names": [
        "สถานีเดินรถเชียงใหม่",
        "- จุดรับส่งพัสดุ เชียงใหม่"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดรับ-ส่งพัสดุ"
      ],
      "official_bks_type_count": 2,
      "supporting_station_names": [
        "สถานีเดินรถเชียงใหม่",
        "- จุดรับส่งพัสดุ เชียงใหม่"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "2 official BKS station or ticket-point match(es): สถานีเดินรถเชียงใหม่, - จุดรับส่งพัสดุ เชียงใหม่."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium-low",
      "note": "Patong uses official BKS rows as indirect overland support behind airport-linked and nightlife-return-heavy Phuket stays.",
      "observation_id": "bks-station-ticket-support_patong_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 73,
      "unit": "score",
      "official_bks_match_count": 2,
      "official_bks_unique_count": 2,
      "official_bks_station_names": [
        "สถานีเดินรถภูเก็ต",
        "- สถานีเดินรถภูเก็ต 2"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 2,
      "supporting_station_names": [
        "สถานีเดินรถภูเก็ต",
        "- สถานีเดินรถภูเก็ต 2"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "2 official BKS station or ticket-point match(es): สถานีเดินรถภูเก็ต, - สถานีเดินรถภูเก็ต 2."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "low",
      "note": "Rawai / Nai Harn uses official BKS rows only as indirect overland support behind longer south-coast stays and airport-linked fallback planning.",
      "observation_id": "bks-station-ticket-support_rawai-nai-harn_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 73,
      "unit": "score",
      "official_bks_match_count": 2,
      "official_bks_unique_count": 2,
      "official_bks_station_names": [
        "สถานีเดินรถภูเก็ต",
        "- สถานีเดินรถภูเก็ต 2"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 2,
      "supporting_station_names": [
        "สถานีเดินรถภูเก็ต",
        "- สถานีเดินรถภูเก็ต 2"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "2 official BKS station or ticket-point match(es): สถานีเดินรถภูเก็ต, - สถานีเดินรถภูเก็ต 2."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium",
      "note": "Phuket Old Town uses official BKS rows as stronger overland support behind rain-backup and town-based Phuket planning.",
      "observation_id": "bks-station-ticket-support_phuket-old-town_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 73,
      "unit": "score",
      "official_bks_match_count": 2,
      "official_bks_unique_count": 2,
      "official_bks_station_names": [
        "สถานีเดินรถภูเก็ต",
        "- สถานีเดินรถภูเก็ต 2"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 2,
      "supporting_station_names": [
        "สถานีเดินรถภูเก็ต",
        "- สถานีเดินรถภูเก็ต 2"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "2 official BKS station or ticket-point match(es): สถานีเดินรถภูเก็ต, - สถานีเดินรถภูเก็ต 2."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium-low",
      "note": "Chaweng uses official BKS rows as a lighter mainland-handoff and airport fallback layer behind a high-service island stay.",
      "observation_id": "bks-station-ticket-support_chaweng_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 54,
      "unit": "score",
      "official_bks_match_count": 1,
      "official_bks_unique_count": 1,
      "official_bks_station_names": [
        "สถานีเดินรถเกาะสมุย"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 1,
      "supporting_station_names": [
        "สถานีเดินรถเกาะสมุย"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "1 official BKS station or ticket-point match(es): สถานีเดินรถเกาะสมุย."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium-low",
      "note": "Lamai uses official BKS rows as a lighter mainland-handoff and airport fallback layer behind a calmer Samui base.",
      "observation_id": "bks-station-ticket-support_lamai_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 54,
      "unit": "score",
      "official_bks_match_count": 1,
      "official_bks_unique_count": 1,
      "official_bks_station_names": [
        "สถานีเดินรถเกาะสมุย"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 1,
      "supporting_station_names": [
        "สถานีเดินรถเกาะสมุย"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "1 official BKS station or ticket-point match(es): สถานีเดินรถเกาะสมุย."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "central-pattaya-jomtien",
      "entity_name": "Central Pattaya / Jomtien",
      "entity_type": "hotel_area",
      "entity_path": "/entities/central-pattaya-jomtien/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium",
      "note": "Official BKS rows confirm nearby intercity-bus and ticket support for Pattaya / Jomtien hotel-base planning.",
      "observation_id": "bks-station-ticket-support_central-pattaya-jomtien_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 86,
      "unit": "score",
      "official_bks_match_count": 4,
      "official_bks_unique_count": 4,
      "official_bks_station_names": [
        "สถานีเดินรถชลบุรี",
        "- จุดจอดศรีราชา",
        "สถานีเดินรถพัทยา",
        "- จุดจอดสัตหีบ"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว",
        "จุดจอด/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 2,
      "supporting_station_names": [
        "สถานีเดินรถชลบุรี",
        "- จุดจอดศรีราชา",
        "สถานีเดินรถพัทยา",
        "- จุดจอดสัตหีบ"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "4 official BKS station or ticket-point match(es): สถานีเดินรถชลบุรี, - จุดจอดศรีราชา, สถานีเดินรถพัทยา, - จุดจอดสัตหีบ."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "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/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium",
      "note": "Official BKS rows confirm nearby intercity-bus and ticket support for Hua Hin / Khao Takiab hotel-base planning.",
      "observation_id": "bks-station-ticket-support_central-hua-hin-khao-takiab_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 54,
      "unit": "score",
      "official_bks_match_count": 1,
      "official_bks_unique_count": 1,
      "official_bks_station_names": [
        "สถานีเดินรถหัวหิน"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 1,
      "supporting_station_names": [
        "สถานีเดินรถหัวหิน"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "1 official BKS station or ticket-point match(es): สถานีเดินรถหัวหิน."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "medium",
      "note": "Ao Nang uses official BKS rows as practical overland fallback support behind airport, pier, and mainland-transfer planning.",
      "observation_id": "bks-station-ticket-support_ao-nang_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 54,
      "unit": "score",
      "official_bks_match_count": 1,
      "official_bks_unique_count": 1,
      "official_bks_station_names": [
        "สถานีเดินรถกระบี่"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 1,
      "supporting_station_names": [
        "สถานีเดินรถกระบี่"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "1 official BKS station or ticket-point match(es): สถานีเดินรถกระบี่."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "low",
      "note": "Railay uses official BKS rows only as indirect mainland-side overland support behind a boat-dependent Krabi base.",
      "observation_id": "bks-station-ticket-support_railay_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 54,
      "unit": "score",
      "official_bks_match_count": 1,
      "official_bks_unique_count": 1,
      "official_bks_station_names": [
        "สถานีเดินรถกระบี่"
      ],
      "official_bks_type_labels": [
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 1,
      "supporting_station_names": [
        "สถานีเดินรถกระบี่"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "1 official BKS station or ticket-point match(es): สถานีเดินรถกระบี่."
    },
    {
      "feed_id": "bks-station-ticket-support",
      "source_name": "Transport Co. / BKS station and ticket-point locations",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:11:43.824Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_station_ticket_support_snapshot",
      "confidence": "high",
      "note": "Official BKS rows confirm Mochit 2 as Bangkok's core northern and Isaan overland anchor.",
      "observation_id": "bks-station-ticket-support_bangkok-mochit-2_official_intercity_bus_support_score",
      "parameter": "official_intercity_bus_support_score",
      "metric_label": "Official intercity-bus support score",
      "value": 96,
      "unit": "score",
      "official_bks_match_count": 3,
      "official_bks_unique_count": 3,
      "official_bks_station_names": [
        "สถานีขนส่งผู้โดยสารกรุงเทพ (จตุจักร)/สำนักงานใหญ่",
        "สถานีบริการขนส่งสาธารณะขนาดเล็ก",
        "สถานีเดินรถกำแพงเพชร"
      ],
      "official_bks_type_labels": [
        "สถานีเดินรถ",
        "ที่ทำการ/จุดจำหน่ายตั๋ว"
      ],
      "official_bks_type_count": 2,
      "supporting_station_names": [
        "สถานีขนส่งผู้โดยสารกรุงเทพ (จตุจักร)/สำนักงานใหญ่",
        "สถานีบริการขนส่งสาธารณะขนาดเล็ก",
        "สถานีเดินรถกำแพงเพชร"
      ],
      "source_names": [
        "Transport Co. / BKS station and ticket-point locations"
      ],
      "comparison_hint": "3 official BKS station or ticket-point match(es): สถานีขนส่งผู้โดยสารกรุงเทพ (จตุจักร)/สำนักงานใหญ่, สถานีบริการขนส่งสาธารณะขนาดเล็ก, สถานีเดินรถกำแพงเพชร."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "high",
      "note": "Official BKS public booking/search surfaces show Bangkok as the main intercity-bus route-search origin.",
      "observation_id": "bks-timetable-search-surface_bangkok_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223",
        "1806"
      ],
      "official_search_origin_names": [
        "BKK",
        "BKK (EKKAMAI)"
      ],
      "official_search_destination_count": 617,
      "official_search_province_count": 80,
      "official_search_destination_names": [
        "Krabi",
        "Khlongthom",
        "Ko Lanta",
        "Khaophanom",
        "Nueakhlong",
        "BKK (EKKAMAI)",
        "Rangsit",
        "จุดจอดสายใต้(รถต้นทางหมอชิต)",
        "DONMUANG INTERNATIONAL AIRPORT",
        "SUVARNABHUMI AIRPORT"
      ],
      "official_search_province_names": [
        "AMNAT CHAROEN",
        "ANG THONG",
        "AYUTTHAYA",
        "BANGKOK",
        "BUENG KAN",
        "BURI RAM",
        "CHACHOENGSAO",
        "CHAI NAT",
        "CHAIYAPHUM",
        "CHANTHABURI",
        "CHIANG MAI",
        "CHIANG RAI",
        "CHON BURI",
        "CHUMPHON",
        "KALASIN",
        "KAMPHAENG PHET",
        "KANCHANABURI",
        "KHON KAEN",
        "KRABI",
        "LAMPANG"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "617 official destination option row(s) currently appear across 2 Bangkok-origin BKS search surface(s)."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "high",
      "note": "Official BKS public booking/search surface currently lists Chiang Mai from Bangkok-origin route search.",
      "observation_id": "bks-timetable-search-surface_chiang-mai_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 12,
      "official_search_destination_ids": [
        "1194",
        "246",
        "124",
        "275",
        "276",
        "1733",
        "300",
        "125",
        "6",
        "1620",
        "1621",
        "1348"
      ],
      "official_search_destination_names": [
        "กรมขนส่ง (อาเขต แห่งที่ 3)",
        "Chom Thong",
        "Doi Tao",
        "Ban Tha Ton",
        "Fang",
        "A. Hot",
        "Chiang Dao",
        "Chiang Mai",
        "แขวงหลวงน้ำทา(เชียงใหม่)",
        "แขวงอุดมชัย(เชียงใหม่)",
        "Chai Prakan"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "CHIANG MAI"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "12 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): กรมขนส่ง (อาเขต แห่งที่ 3), Chom Thong, Doi Tao, Ban Tha Ton, Fang."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "high",
      "note": "Official BKS public booking/search surface currently lists Phuket from Bangkok-origin route search.",
      "observation_id": "bks-timetable-search-surface_phuket_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 4,
      "official_search_destination_ids": [
        "749",
        "717",
        "788",
        "1537"
      ],
      "official_search_destination_names": [
        "Thalang",
        "Phuket",
        "Tha-ruea",
        "Muangmai"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "PHUKET"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "4 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): Thalang, Phuket, Tha-ruea, Muangmai."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "high",
      "note": "Official BKS public booking/search surface currently lists Krabi from Bangkok-origin route search.",
      "observation_id": "bks-timetable-search-surface_krabi_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 5,
      "official_search_destination_ids": [
        "701",
        "846",
        "1170",
        "925",
        "845"
      ],
      "official_search_destination_names": [
        "Krabi",
        "Khlongthom",
        "Ko Lanta",
        "Khaophanom",
        "Nueakhlong"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "KRABI"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "5 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): Krabi, Khlongthom, Ko Lanta, Khaophanom, Nueakhlong."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "medium-high",
      "note": "Official BKS public booking/search surface currently lists Pattaya / Chonburi coast stops from Bangkok-origin route search.",
      "observation_id": "bks-timetable-search-surface_pattaya-chonburi_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 10,
      "official_search_destination_ids": [
        "981",
        "1204",
        "603",
        "629",
        "605",
        "608",
        "645",
        "617",
        "607",
        "1177"
      ],
      "official_search_destination_names": [
        "กม.10(สนามบินอู่ตะเภา)",
        "ครัวไท",
        "Chonburi",
        "Pattaya",
        "Sattahip",
        "YAK NONG-PREU",
        "BANG SAEN",
        "Sriracha",
        "LAEM CHA-BANG"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "CHON BURI"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "10 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): กม.10(สนามบินอู่ตะเภา), ครัวไท, Chonburi, Pattaya, Sattahip."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "high",
      "note": "Official BKS public booking/search surface currently lists Hua Hin from Bangkok-origin route search.",
      "observation_id": "bks-timetable-search-surface_hua-hin_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 95,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 3,
      "official_search_destination_ids": [
        "1833",
        "1795",
        "727"
      ],
      "official_search_destination_names": [
        "Hua Hin",
        "Huahin (Blueport)",
        "Hua hin"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "PRACHUAP KHIRI KHAN"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "3 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): Hua Hin, Huahin (Blueport), Hua hin."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "high",
      "note": "Official BKS public booking/search surface currently lists Ayutthaya from Bangkok-origin route search.",
      "observation_id": "bks-timetable-search-surface_ayutthaya_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 6,
      "official_search_destination_ids": [
        "1769",
        "86",
        "28",
        "1538",
        "88",
        "1039"
      ],
      "official_search_destination_names": [
        "Wang Noi",
        "ทางแยกเข้าจ.พระนครศรอยุธยา",
        "Ayutthaya",
        "ม.กรุงเทพฯ"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "AYUTTHAYA"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "6 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): Wang Noi, ทางแยกเข้าจ.พระนครศรอยุธยา, Ayutthaya, ม.กรุงเทพฯ."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "high",
      "note": "Official BKS public booking/search surface currently lists Kanchanaburi from Bangkok-origin route search.",
      "observation_id": "bks-timetable-search-surface_kanchanaburi_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 9,
      "official_search_destination_ids": [
        "702",
        "1124",
        "1178",
        "1158",
        "1123",
        "1122",
        "820",
        "1121",
        "1314"
      ],
      "official_search_destination_names": [
        "KANCHANA BURI",
        "DAN CHADEE SAM ONG",
        "Sungkhlaburi",
        "Patandongrang",
        "SANGKHLABURI",
        "THONG PHA PHUM",
        "PHANOM THUAN",
        "SAI YOK",
        "Kanchanadit"
      ],
      "official_search_province_count": 2,
      "official_search_province_names": [
        "KANCHANABURI",
        "SURAT THANI"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "9 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): KANCHANA BURI, DAN CHADEE SAM ONG, Sungkhlaburi, Patandongrang, SANGKHLABURI."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "medium",
      "note": "Official BKS public booking/search surface currently lists multiple Isaan anchors from Bangkok-origin route search, even though the region is too broad to collapse into a single stop.",
      "observation_id": "bks-timetable-search-surface_isaan_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 147,
      "official_search_destination_ids": [
        "305",
        "1771",
        "308",
        "1391",
        "450",
        "1255",
        "692",
        "693",
        "432",
        "1392",
        "581",
        "1453",
        "1069",
        "1820",
        "1816",
        "1658",
        "457",
        "311",
        "313",
        "1188",
        "1127",
        "376",
        "1533",
        "1258",
        "455",
        "1114",
        "1057",
        "1627",
        "568",
        "1138",
        "1454",
        "1072",
        "1593",
        "1068",
        "1607",
        "411",
        "350",
        "310",
        "354",
        "397",
        "312",
        "318",
        "363",
        "1125",
        "340",
        "362",
        "412",
        "383",
        "1044",
        "1827",
        "1731",
        "1789",
        "1772",
        "1659",
        "480",
        "355",
        "315",
        "317",
        "1002",
        "322",
        "1049",
        "413",
        "369",
        "373",
        "982",
        "1389",
        "576",
        "1824",
        "323",
        "1745",
        "1594",
        "329",
        "372",
        "210",
        "1531",
        "347",
        "542",
        "1378",
        "1347",
        "1760",
        "1790",
        "567",
        "357",
        "1566",
        "1379",
        "395",
        "1060",
        "550",
        "569",
        "334",
        "1403",
        "582",
        "1645",
        "1435",
        "1257",
        "1149",
        "1013",
        "1774",
        "1826",
        "351",
        "1630",
        "356",
        "1632",
        "321",
        "1148",
        "1112",
        "367",
        "404",
        "1010",
        "337",
        "405",
        "335",
        "1014",
        "1050",
        "1492",
        "1817",
        "1066",
        "970",
        "1067",
        "1162",
        "341",
        "1377",
        "1558",
        "557",
        "963",
        "694",
        "572",
        "1052",
        "964",
        "965",
        "344",
        "1785",
        "1784",
        "435",
        "697",
        "579",
        "1141",
        "1043",
        "1142",
        "1140",
        "1635",
        "1623",
        "1544",
        "1236",
        "345",
        "309",
        "580"
      ],
      "official_search_destination_names": [
        "KHON KAEN",
        "Phon",
        "CHUM PHAE",
        "UBOL RATANA DAM (Junction)",
        "NAM PHONG",
        "BAN PHAI",
        "PHU WIANG",
        "SI BUN RUEANG",
        "NONG SONG HONG",
        "KHAO SUAN KWANG",
        "PHON",
        "BAN KLANG"
      ],
      "official_search_province_count": 10,
      "official_search_province_names": [
        "KHON KAEN",
        "NAKHON PHANOM",
        "NAKHON RATCHASIMA",
        "BURI RAM",
        "ROI ET",
        "SAKON NAKHON",
        "SURIN",
        "NONG KHAI",
        "UDON THANI",
        "UBON RATCHATHANI"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "147 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): KHON KAEN, Phon, CHUM PHAE, UBOL RATANA DAM (Junction), NAM PHONG."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "medium",
      "note": "Old City Chiang Mai uses the official BKS booking/search surface as practical Bangkok-origin overland fallback context behind temple-first stays.",
      "observation_id": "bks-timetable-search-surface_old-city-chiang-mai_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 12,
      "official_search_destination_ids": [
        "1194",
        "246",
        "124",
        "275",
        "276",
        "1733",
        "300",
        "125",
        "6",
        "1620",
        "1621",
        "1348"
      ],
      "official_search_destination_names": [
        "กรมขนส่ง (อาเขต แห่งที่ 3)",
        "Chom Thong",
        "Doi Tao",
        "Ban Tha Ton",
        "Fang",
        "A. Hot",
        "Chiang Dao",
        "Chiang Mai",
        "แขวงหลวงน้ำทา(เชียงใหม่)",
        "แขวงอุดมชัย(เชียงใหม่)",
        "Chai Prakan"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "CHIANG MAI"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "12 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): กรมขนส่ง (อาเขต แห่งที่ 3), Chom Thong, Doi Tao, Ban Tha Ton, Fang."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "medium-low",
      "note": "Patong uses the official BKS booking/search surface as indirect Bangkok-origin overland fallback context behind beach-and-nightlife-heavy Phuket planning.",
      "observation_id": "bks-timetable-search-surface_patong_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 4,
      "official_search_destination_ids": [
        "749",
        "717",
        "788",
        "1537"
      ],
      "official_search_destination_names": [
        "Thalang",
        "Phuket",
        "Tha-ruea",
        "Muangmai"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "PHUKET"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "4 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): Thalang, Phuket, Tha-ruea, Muangmai."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "low",
      "note": "Rawai / Nai Harn uses the official BKS booking/search surface only as indirect Bangkok-origin overland fallback context behind longer south-coast stays.",
      "observation_id": "bks-timetable-search-surface_rawai-nai-harn_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 4,
      "official_search_destination_ids": [
        "749",
        "717",
        "788",
        "1537"
      ],
      "official_search_destination_names": [
        "Thalang",
        "Phuket",
        "Tha-ruea",
        "Muangmai"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "PHUKET"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "4 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): Thalang, Phuket, Tha-ruea, Muangmai."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "medium",
      "note": "Phuket Old Town uses the official BKS booking/search surface as stronger Bangkok-origin overland fallback context behind town-and-rain-backup planning.",
      "observation_id": "bks-timetable-search-surface_phuket-old-town_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 4,
      "official_search_destination_ids": [
        "749",
        "717",
        "788",
        "1537"
      ],
      "official_search_destination_names": [
        "Thalang",
        "Phuket",
        "Tha-ruea",
        "Muangmai"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "PHUKET"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "4 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): Thalang, Phuket, Tha-ruea, Muangmai."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "medium",
      "note": "Ao Nang uses the official BKS booking/search surface as practical Bangkok-origin overland fallback context behind airport and pier-linked Krabi planning.",
      "observation_id": "bks-timetable-search-surface_ao-nang_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 5,
      "official_search_destination_ids": [
        "701",
        "846",
        "1170",
        "925",
        "845"
      ],
      "official_search_destination_names": [
        "Krabi",
        "Khlongthom",
        "Ko Lanta",
        "Khaophanom",
        "Nueakhlong"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "KRABI"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "5 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): Krabi, Khlongthom, Ko Lanta, Khaophanom, Nueakhlong."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "low",
      "note": "Railay uses the official BKS booking/search surface only as indirect Bangkok-origin mainland fallback context behind a boat-dependent Krabi stay.",
      "observation_id": "bks-timetable-search-surface_railay_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_match_count": 5,
      "official_search_destination_ids": [
        "701",
        "846",
        "1170",
        "925",
        "845"
      ],
      "official_search_destination_names": [
        "Krabi",
        "Khlongthom",
        "Ko Lanta",
        "Khaophanom",
        "Nueakhlong"
      ],
      "official_search_province_count": 1,
      "official_search_province_names": [
        "KRABI"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "5 official BKS destination option(s) currently match this entity across 1 Bangkok-origin search surface(s): Krabi, Khlongthom, Ko Lanta, Khaophanom, Nueakhlong."
    },
    {
      "feed_id": "bks-timetable-search-surface",
      "source_name": "Transport Co. / BKS timetable resources",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:11:48Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bks_timetable_search_surface_snapshot",
      "confidence": "high",
      "note": "Official BKS public booking/search surface shows Bangkok's main overland origin feeding northern, Isaan, and long-distance route searches.",
      "observation_id": "bks-timetable-search-surface_bangkok-mochit-2_official_intercity_bus_search_support_score",
      "parameter": "official_intercity_bus_search_support_score",
      "metric_label": "Official intercity-bus search support score",
      "value": 96,
      "unit": "score",
      "official_search_origin_ids": [
        "1223"
      ],
      "official_search_origin_names": [
        "BKK"
      ],
      "official_search_destination_count": 607,
      "official_search_province_count": 80,
      "official_search_destination_names": [
        "Krabi",
        "Khlongthom",
        "Ko Lanta",
        "Khaophanom",
        "Nueakhlong",
        "BKK (EKKAMAI)",
        "Rangsit",
        "จุดจอดสายใต้(รถต้นทางหมอชิต)",
        "DONMUANG INTERNATIONAL AIRPORT",
        "SUVARNABHUMI AIRPORT"
      ],
      "official_search_province_names": [
        "AMNAT CHAROEN",
        "ANG THONG",
        "AYUTTHAYA",
        "BANGKOK",
        "BUENG KAN",
        "BURI RAM",
        "CHACHOENGSAO",
        "CHAI NAT",
        "CHAIYAPHUM",
        "CHANTHABURI",
        "CHIANG MAI",
        "CHIANG RAI",
        "CHON BURI",
        "CHUMPHON",
        "KALASIN",
        "KAMPHAENG PHET",
        "KANCHANABURI",
        "KHON KAEN",
        "KRABI",
        "LAMPANG"
      ],
      "source_names": [
        "Transport Co. / BKS timetable resources"
      ],
      "comparison_hint": "607 official destination option row(s) currently appear across 1 Bangkok-origin BKS search surface(s)."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "high",
      "note": "Bangkok gets broad official public-transport complaint recourse from the DLT 1584 central workbook across taxi, motorcycle-taxi, BMTA, van, and joint-service layers.",
      "observation_id": "dlt-1584-complaint-stats_bangkok_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "bangkok-urban",
      "complaint_section_key": "central",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 46119,
      "complaint_monthly_average": 6588.4,
      "complaint_mode_coverage_count": 11,
      "complaint_vehicle_mode_count": 4,
      "complaint_transport_mode_count": 7,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)",
        "รถร่วมบริการ(ปรับอากาศ)",
        "รถมินิบัส"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "central FY 2569 workbook coverage shows 11 relevant mode(s), 7 active month(s), and about 6588 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-high",
      "note": "Chiang Mai uses the regional DLT 1584 complaint workbook as official public-transport recourse and burden context for overland and airport-linked travel.",
      "observation_id": "dlt-1584-complaint-stats_chiang-mai_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-overland",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 8,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3",
        "รถโดยสารประจำทาง หมวด 4 (สองแถว)"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 8 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium",
      "note": "Phuket uses the regional DLT 1584 complaint workbook as official public-transport recourse and burden context around road and airport-linked travel. It does not describe boat operations.",
      "observation_id": "dlt-1584-complaint-stats_phuket_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 89,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-coastal",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium",
      "note": "Krabi uses the regional DLT 1584 complaint workbook as official public-transport recourse and burden context for road-linked travel. It does not describe boat or pier operations.",
      "observation_id": "dlt-1584-complaint-stats_krabi_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 89,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-coastal",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-low",
      "note": "Koh Samui uses the regional DLT 1584 complaint workbook as indirect public-transport recourse context behind airport and mainland-linked planning, not as ferry or local vehicle realtime truth.",
      "observation_id": "dlt-1584-complaint-stats_koh-samui_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 81,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-island",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "low",
      "note": "Koh Phangan uses the regional DLT 1584 complaint workbook only as indirect transport recourse context behind mainland and island-chain planning.",
      "observation_id": "dlt-1584-complaint-stats_koh-phangan_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 81,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-island",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-high",
      "note": "Pattaya / Chonburi uses the regional DLT 1584 complaint workbook as official public-transport recourse and burden context for Bangkok-linked overland planning.",
      "observation_id": "dlt-1584-complaint-stats_pattaya-chonburi_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-overland",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 8,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3",
        "รถโดยสารประจำทาง หมวด 4 (สองแถว)"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 8 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-high",
      "note": "Hua Hin uses the regional DLT 1584 complaint workbook as official public-transport recourse and burden context for Bangkok-linked road and rail fallback planning.",
      "observation_id": "dlt-1584-complaint-stats_hua-hin_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-overland",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 8,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3",
        "รถโดยสารประจำทาง หมวด 4 (สองแถว)"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 8 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-high",
      "note": "Ayutthaya uses the regional DLT 1584 complaint workbook as official public-transport recourse context for rail-road fallback planning.",
      "observation_id": "dlt-1584-complaint-stats_ayutthaya_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-overland",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 8,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3",
        "รถโดยสารประจำทาง หมวด 4 (สองแถว)"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 8 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-high",
      "note": "Kanchanaburi uses the regional DLT 1584 complaint workbook as official public-transport recourse context for rail-road fallback planning.",
      "observation_id": "dlt-1584-complaint-stats_kanchanaburi_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-overland",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 8,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3",
        "รถโดยสารประจำทาง หมวด 4 (สองแถว)"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 8 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium",
      "note": "Isaan uses the regional DLT 1584 complaint workbook as broad official public-transport recourse context across provincial bus and public-vehicle categories.",
      "observation_id": "dlt-1584-complaint-stats_isaan_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-overland",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 8,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3",
        "รถโดยสารประจำทาง หมวด 4 (สองแถว)"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 8 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-high",
      "note": "Sukhumvit uses Bangkok's central DLT 1584 complaint recourse profile, which matters because taxi, ride-adjacent, and bus fallback logic are all relevant in this hotel base.",
      "observation_id": "dlt-1584-complaint-stats_sukhumvit_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "bangkok-urban",
      "complaint_section_key": "central",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 46119,
      "complaint_monthly_average": 6588.4,
      "complaint_mode_coverage_count": 11,
      "complaint_vehicle_mode_count": 4,
      "complaint_transport_mode_count": 7,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)",
        "รถร่วมบริการ(ปรับอากาศ)",
        "รถมินิบัส"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "central FY 2569 workbook coverage shows 11 relevant mode(s), 7 active month(s), and about 6588 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-high",
      "note": "Silom / Sathorn uses Bangkok's central DLT 1584 complaint recourse profile as an official fallback and burden layer for public-transport planning.",
      "observation_id": "dlt-1584-complaint-stats_silom-sathorn_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "bangkok-urban",
      "complaint_section_key": "central",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 46119,
      "complaint_monthly_average": 6588.4,
      "complaint_mode_coverage_count": 11,
      "complaint_vehicle_mode_count": 4,
      "complaint_transport_mode_count": 7,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)",
        "รถร่วมบริการ(ปรับอากาศ)",
        "รถมินิบัส"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "central FY 2569 workbook coverage shows 11 relevant mode(s), 7 active month(s), and about 6588 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium",
      "note": "Riverside / Old Town uses Bangkok's central DLT 1584 complaint recourse profile. It matters for taxi, bus, and last-mile support, even though river logic still dominates some trips.",
      "observation_id": "dlt-1584-complaint-stats_riverside-old-town_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "bangkok-urban",
      "complaint_section_key": "central",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 46119,
      "complaint_monthly_average": 6588.4,
      "complaint_mode_coverage_count": 11,
      "complaint_vehicle_mode_count": 4,
      "complaint_transport_mode_count": 7,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)",
        "รถร่วมบริการ(ปรับอากาศ)",
        "รถมินิบัส"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "central FY 2569 workbook coverage shows 11 relevant mode(s), 7 active month(s), and about 6588 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium",
      "note": "Ari uses Bangkok's central DLT 1584 complaint recourse profile as a calmer BTS-linked public-transport fallback and passenger-protection layer.",
      "observation_id": "dlt-1584-complaint-stats_ari_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "bangkok-urban",
      "complaint_section_key": "central",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 46119,
      "complaint_monthly_average": 6588.4,
      "complaint_mode_coverage_count": 11,
      "complaint_vehicle_mode_count": 4,
      "complaint_transport_mode_count": 7,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)",
        "รถร่วมบริการ(ปรับอากาศ)",
        "รถมินิบัส"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "central FY 2569 workbook coverage shows 11 relevant mode(s), 7 active month(s), and about 6588 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium",
      "note": "Old City Chiang Mai uses the regional DLT 1584 complaint workbook as a lighter overland and airport-linked fallback layer behind temple-first stays.",
      "observation_id": "dlt-1584-complaint-stats_old-city-chiang-mai_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-overland",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 8,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3",
        "รถโดยสารประจำทาง หมวด 4 (สองแถว)"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 8 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-low",
      "note": "Kata / Karon uses the regional DLT 1584 complaint workbook as indirect road-and-airport transport recourse context behind a beach-heavy stay zone.",
      "observation_id": "dlt-1584-complaint-stats_kata-karon_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 85,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-coastal",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-low",
      "note": "Patong uses the regional DLT 1584 complaint workbook as indirect road-and-airport transport recourse context behind a nightlife-heavy Phuket base.",
      "observation_id": "dlt-1584-complaint-stats_patong_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 85,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-coastal",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-low",
      "note": "Rawai / Nai Harn uses the regional DLT 1584 complaint workbook as indirect south-coast transport recourse context behind longer Phuket stays.",
      "observation_id": "dlt-1584-complaint-stats_rawai-nai-harn_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 85,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-coastal",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-low",
      "note": "Phuket Old Town uses the regional DLT 1584 complaint workbook as indirect road-and-airport transport recourse context behind a food-first, rain-backup town stay.",
      "observation_id": "dlt-1584-complaint-stats_phuket-old-town_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 85,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-coastal",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "low",
      "note": "Bophut / Fisherman's Village uses the regional DLT 1584 complaint workbook as indirect mainland-and-airport recourse context rather than direct local transport truth.",
      "observation_id": "dlt-1584-complaint-stats_bophut-fishermans-village_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 77,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-island",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "low",
      "note": "Chaweng uses the regional DLT 1584 complaint workbook as indirect mainland-and-airport recourse context behind a high-service Samui base.",
      "observation_id": "dlt-1584-complaint-stats_chaweng_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 77,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-island",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "low",
      "note": "Lamai uses the regional DLT 1584 complaint workbook as indirect mainland-and-airport recourse context behind a softer Samui beach base.",
      "observation_id": "dlt-1584-complaint-stats_lamai_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 77,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-island",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "central-pattaya-jomtien",
      "entity_name": "Central Pattaya / Jomtien",
      "entity_type": "hotel_area",
      "entity_path": "/entities/central-pattaya-jomtien/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium",
      "note": "Central Pattaya / Jomtien uses the regional DLT 1584 complaint workbook as a lighter hotel-base transport recourse layer.",
      "observation_id": "dlt-1584-complaint-stats_central-pattaya-jomtien_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-overland",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 8,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3",
        "รถโดยสารประจำทาง หมวด 4 (สองแถว)"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 8 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "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/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium",
      "note": "Central Hua Hin / Khao Takiab uses the regional DLT 1584 complaint workbook as a lighter hotel-base recourse layer behind overland travel planning.",
      "observation_id": "dlt-1584-complaint-stats_central-hua-hin-khao-takiab_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-overland",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 8,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3",
        "รถโดยสารประจำทาง หมวด 4 (สองแถว)"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 8 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-low",
      "note": "Ao Nang uses the regional DLT 1584 complaint workbook as indirect road-and-airport transport recourse context behind a logistics-first Krabi base.",
      "observation_id": "dlt-1584-complaint-stats_ao-nang_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 85,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-coastal",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "low",
      "note": "Railay uses the regional DLT 1584 complaint workbook only as indirect mainland-side transport recourse context behind a boat-dependent stay.",
      "observation_id": "dlt-1584-complaint-stats_railay_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 85,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "regional-coastal",
      "complaint_section_key": "regional",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 31675,
      "complaint_monthly_average": 4525,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 3,
      "complaint_transport_mode_count": 4,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถอื่น ๆ",
        "รถโดยสารประจำทาง หมวด 1",
        "รถโดยสารประจำทาง หมวด 2",
        "รถโดยสารประจำทาง หมวด 3"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "regional FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 4525 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "medium-high",
      "note": "Asok interchange uses Bangkok's central DLT 1584 complaint recourse profile as a public-transport fallback and passenger-protection layer around one of the city's busiest transfer nodes.",
      "observation_id": "dlt-1584-complaint-stats_bts-asok_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "bangkok-urban",
      "complaint_section_key": "central",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 46119,
      "complaint_monthly_average": 6588.4,
      "complaint_mode_coverage_count": 11,
      "complaint_vehicle_mode_count": 4,
      "complaint_transport_mode_count": 7,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)",
        "รถร่วมบริการ(ปรับอากาศ)",
        "รถมินิบัส"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถสามล้อรับจ้าง",
        "รถสี่ล้อเล็กรับจ้าง",
        "รถจักรยานยนต์รับจ้าง",
        "ขสมก.",
        "รถร่วมบริการ(ธรรมดา)"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "central FY 2569 workbook coverage shows 11 relevant mode(s), 7 active month(s), and about 6588 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-1584-complaint-stats",
      "source_name": "DLT 1584 public-transport complaints",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:11:30.831Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "dlt_1584_public_complaint_workbooks_snapshot",
      "confidence": "high",
      "note": "Mochit 2 uses the central DLT 1584 complaint workbook with extra weight on van and BKS-linked recourse because this is an overland terminal decision node, not just a city district.",
      "observation_id": "dlt-1584-complaint-stats_bangkok-mochit-2_official_transport_complaint_support_score",
      "parameter": "official_transport_complaint_support_score",
      "metric_label": "Official transport complaint support score",
      "value": 94,
      "unit": "score",
      "complaint_fiscal_year": "2569",
      "complaint_scope_profile": "bangkok-overland",
      "complaint_section_key": "central",
      "complaint_active_month_count": 7,
      "complaint_active_month_labels": [
        "ต.ค. 2568",
        "พ.ย. 2568",
        "ธ.ค. 2568",
        "ม.ค. 2569",
        "ก.พ. 2569",
        "มี.ค. 2569",
        "เม.ย. 2569"
      ],
      "complaint_total_ytd": 46119,
      "complaint_monthly_average": 6588.4,
      "complaint_mode_coverage_count": 7,
      "complaint_vehicle_mode_count": 2,
      "complaint_transport_mode_count": 5,
      "complaint_highlight_modes": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถตู้โดยสารปรับอากาศ",
        "บขส.และรถเอกชนร่วมบริการ",
        "ขสมก.",
        "รถร่วมบริการ(ปรับอากาศ)",
        "รถโดยสารสองแถว"
      ],
      "complaint_top_reason_labels": [
        "แสดงกิริยาวาจาไม่สุภาพ",
        "ขับรถประมาทน่าหวาดเสียว",
        "ปฏิเสธไม่รับผู้โดยสาร",
        "ไม่หยุดรับ-ส่งผู้โดยสารที่ป้าย",
        "พขร.,พกส. แสดงกิริยาวาจาไม่สุภาพ"
      ],
      "complaint_dataset_ids": {
        "complaint_type": "199",
        "vehicle_type": "198"
      },
      "supporting_station_names": [
        "รถแท็กซี่",
        "รถจักรยานยนต์รับจ้าง",
        "รถตู้โดยสารปรับอากาศ",
        "บขส.และรถเอกชนร่วมบริการ",
        "ขสมก.",
        "รถร่วมบริการ(ปรับอากาศ)"
      ],
      "source_names": [
        "DLT 1584 public-transport complaints"
      ],
      "comparison_hint": "central FY 2569 workbook coverage shows 7 relevant mode(s), 7 active month(s), and about 6588 complaint rows/month across the matched legal sections."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "high",
      "note": "Bangkok gets official regulated-taxi oversight support from the public DLT GPS passenger app and Taxi OK / Taxi VIP rules, which matters for street-hail, hotel-base, and airport-transfer planning.",
      "observation_id": "dlt-gps-taxi-support_bangkok_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "bangkok-core",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Chiang Mai uses the public DLT GPS and Taxi OK surfaces as a lighter regulated-taxi oversight layer behind airport, station, and hotel-base planning.",
      "observation_id": "dlt-gps-taxi-support_chiang-mai_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 92,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-urban",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Phuket uses the public DLT GPS and Taxi OK surfaces as regulated-taxi oversight context for airport and road-linked movement, not as a proxy for marine transport.",
      "observation_id": "dlt-gps-taxi-support_phuket_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 84,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Krabi uses the public DLT GPS and Taxi OK surfaces as indirect regulated-taxi oversight context around airport and road transfers.",
      "observation_id": "dlt-gps-taxi-support_krabi_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 84,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the public DLT GPS and Taxi OK surfaces as regulated-taxi oversight context for city and airport-linked transfer planning.",
      "observation_id": "dlt-gps-taxi-support_pattaya-chonburi_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 84,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Hua Hin uses DLT GPS and Taxi OK as a lighter regulated-taxi oversight layer behind station, beach-base, and Bangkok-linked transfer planning.",
      "observation_id": "dlt-gps-taxi-support_hua-hin_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 84,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium-high",
      "note": "Sukhumvit uses Bangkok's regulated-taxi oversight profile because taxi and ride-adjacent last-mile logic matters heavily in this hotel base.",
      "observation_id": "dlt-gps-taxi-support_sukhumvit_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "bangkok-core",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium-high",
      "note": "Silom / Sathorn uses Bangkok's regulated-taxi oversight profile as a practical fallback layer behind rail, river, and airport-linked movement.",
      "observation_id": "dlt-gps-taxi-support_silom-sathorn_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "bangkok-core",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Riverside / Old Town uses Bangkok's regulated-taxi oversight profile because river and last-mile taxi transfers still matter, even when rail is weaker.",
      "observation_id": "dlt-gps-taxi-support_riverside-old-town_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "bangkok-core",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Ari uses Bangkok's regulated-taxi oversight profile as a calmer BTS-linked hotel-base fallback for late returns and airport-linked movement.",
      "observation_id": "dlt-gps-taxi-support_ari_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "bangkok-core",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Old City Chiang Mai uses regional regulated-taxi oversight support as a lighter airport, station, and last-mile fallback layer behind temple-first hotel-base planning.",
      "observation_id": "dlt-gps-taxi-support_old-city-chiang-mai_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 91,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-urban",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Kata / Karon uses regulated-taxi oversight support as road and airport-linked fallback context behind coastal stay decisions.",
      "observation_id": "dlt-gps-taxi-support_kata-karon_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Patong uses regulated-taxi oversight support as nightlife-return and airport-linked fallback context behind a dense Phuket hotel base.",
      "observation_id": "dlt-gps-taxi-support_patong_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Rawai / Nai Harn uses regulated-taxi oversight support as south-coast road and airport-linked fallback context behind longer Phuket stays.",
      "observation_id": "dlt-gps-taxi-support_rawai-nai-harn_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Phuket Old Town uses regulated-taxi oversight support as food-and-rain-backup last-mile context behind a town-based Phuket stay.",
      "observation_id": "dlt-gps-taxi-support_phuket-old-town_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "low",
      "note": "Bophut / Fisherman's Village uses regulated-taxi oversight support only as indirect airport-and-mainland-linked context behind a stable Samui base.",
      "observation_id": "dlt-gps-taxi-support_bophut-fishermans-village_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "low",
      "note": "Chaweng uses regulated-taxi oversight support only as indirect airport-and-mainland-linked context behind a high-service Samui base.",
      "observation_id": "dlt-gps-taxi-support_chaweng_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "low",
      "note": "Lamai uses regulated-taxi oversight support only as indirect airport-and-mainland-linked context behind a softer Samui beach base.",
      "observation_id": "dlt-gps-taxi-support_lamai_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "central-pattaya-jomtien",
      "entity_name": "Central Pattaya / Jomtien",
      "entity_type": "hotel_area",
      "entity_path": "/entities/central-pattaya-jomtien/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Central Pattaya / Jomtien uses regulated-taxi oversight support as a last-mile comfort layer behind nightlife, beach, and airport transfer logic.",
      "observation_id": "dlt-gps-taxi-support_central-pattaya-jomtien_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "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/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Central Hua Hin / Khao Takiab uses regulated-taxi oversight support as a last-mile and return-comfort layer behind coastal hotel-base planning.",
      "observation_id": "dlt-gps-taxi-support_central-hua-hin-khao-takiab_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Ao Nang uses regulated-taxi oversight support as practical airport and road-transfer context behind a logistics-first Krabi base.",
      "observation_id": "dlt-gps-taxi-support_ao-nang_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "low",
      "note": "Railay uses regulated-taxi oversight support only as indirect mainland-side and airport-linked context behind a boat-dependent Krabi base.",
      "observation_id": "dlt-gps-taxi-support_railay_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 83,
      "unit": "score",
      "taxi_oversight_scope_profile": "regional-coastal",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium-high",
      "note": "Asok interchange uses Bangkok's regulated-taxi oversight profile because transfer-heavy movement often spills into metered-taxi and short-hop fallback logic.",
      "observation_id": "dlt-gps-taxi-support_bts-asok_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "bangkok-core",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Mochit 2 uses Bangkok's regulated-taxi oversight profile as a practical overland-terminal last-mile layer behind bus and rail planning.",
      "observation_id": "dlt-gps-taxi-support_bangkok-mochit-2_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "bangkok-core",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium-high",
      "note": "Suvarnabhumi airport uses DLT GPS and Taxi OK as national regulated-taxi oversight context behind official airport-ground-service pages.",
      "observation_id": "dlt-gps-taxi-support_suvarnabhumi-airport_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "airport-linked",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium-high",
      "note": "Don Mueang airport uses DLT GPS and Taxi OK as national regulated-taxi oversight context behind official airport-ground-service pages.",
      "observation_id": "dlt-gps-taxi-support_don-mueang-airport_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "airport-linked",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "entity_path": "/entities/chiang-mai-airport/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Chiang Mai airport uses DLT GPS and Taxi OK as a lighter regulated-taxi oversight layer behind official airport-transfer pages.",
      "observation_id": "dlt-gps-taxi-support_chiang-mai-airport_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "airport-linked",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "entity_path": "/entities/phuket-airport/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Phuket airport uses DLT GPS and Taxi OK as a lighter regulated-taxi oversight layer behind official airport-transfer pages.",
      "observation_id": "dlt-gps-taxi-support_phuket-airport_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "airport-linked",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "dlt-gps-taxi-support",
      "source_name": "DLT GPS passenger and complaint app",
      "entity_id": "krabi-airport",
      "entity_name": "Krabi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/krabi-airport/",
      "observed_at": "2026-05-15T11:11:32.530Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_gps_taxi_support_snapshot",
      "confidence": "medium",
      "note": "Krabi airport uses DLT GPS and Taxi OK as a lighter regulated-taxi oversight layer behind airport-transfer planning.",
      "observation_id": "dlt-gps-taxi-support_krabi-airport_official_taxi_oversight_support_score",
      "parameter": "official_taxi_oversight_support_score",
      "metric_label": "Official taxi-oversight support score",
      "value": 96,
      "unit": "score",
      "taxi_oversight_scope_profile": "airport-linked",
      "taxi_public_feature_count": 7,
      "taxi_public_features": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page"
      ],
      "taxi_platform_count": 2,
      "taxi_regulatory_marker_count": 9,
      "taxi_regulatory_markers": [
        "project workflow",
        "taxi communication-center rules",
        "driver-history rules",
        "trip-recorder rules",
        "safety-equipment rules",
        "licensing forms",
        "registration rules",
        "taxi-meter fare rules",
        "vehicle-marking rules"
      ],
      "taxi_ok_download_count": 13,
      "taxi_ok_download_titles": [
        "กระบวนการดำเนินงานโครงการแท็กซี่โอเค",
        "ประกาศกรมการขนส่งทางบก กำหนดหลักเกณฑ์ วิธีการและเงื่อนไขการให้ความเห็นชอบ การจัดตั้งศูนย์บริการสื่อสารรถยนต์รับจ้าง (แท๊กซี่)-2560",
        "ประกาศกรมการขนส่งทางบก เรื่อง การจัดทำประวัติผู้ขับขี่รถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน การติดตั้ง และการรับรองเครื่องบันทึกข้อมูลการเดินทางสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดคุณลักษณะ ระบบการทำงาน และการติดตั้งอุปกรณ์ เพื่อความปลอดภัยสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบคำขอรับใบอนุญาต คำขอต่ออายุใบอนุญาต แบบใบอนุญาต และเงื่อนไขอื่นสำหรับการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารแบบพิเศษ พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดแบบลักษณะ ขนาด การติดตั้งและเงื่อนไขการใช้เครื่องหมายสำหรับรถยนต์รับจ้างบรรทุกคนโดยสารไม่เกินเจ็ดคน พ.ศ. ๒๕๖๐",
        "ประกาศกรมการขนส่งทางบก เรื่อง กำหนดรายละเอียดการประกอบการรับจ้างบรรทุกคนโดยสารแบบพิเศษ",
        "ประกาศกรมการขนส่งทางบก เรื่อง หลักเกณฑ์และวิธีการวัดกำลังของเครื่องยนต์หรือมอเตอร์ไฟฟ้าสำหรับรถยนต์รับจ้าง พ.ศ. ๒๕๖๐"
      ],
      "source_names": [
        "DLT GPS passenger and complaint app",
        "DLT Taxi OK / Taxi VIP project"
      ],
      "supporting_station_names": [
        "registered vehicle locator",
        "complaint reporting",
        "passenger-station search",
        "improved search and tracking",
        "improved map display",
        "Android app page",
        "Apple app page",
        "project workflow"
      ],
      "comparison_hint": "7 public passenger-support marker(s) and 9 Taxi OK / VIP regulatory marker(s) are visible, with 13 public notice download(s)."
    },
    {
      "feed_id": "bangkok-motorcycle-taxi-support",
      "source_name": "Bangkok motorcycle taxi stands and drivers",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2020-07-23T04:25:48.450Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_bangkok_motorcycle_taxi_datastore",
      "confidence": "medium",
      "note": "Bangkok gets citywide official motorcycle-taxi stand and driver supply context from the public DLT/data.go.th dataset. This is useful as last-mile support coverage, not live availability.",
      "observation_id": "bangkok-motorcycle-taxi-support_bangkok_official_motorcycle_taxi_support_score",
      "parameter": "official_motorcycle_taxi_support_score",
      "metric_label": "Official motorcycle-taxi support score",
      "value": 88,
      "unit": "score",
      "motorcycle_taxi_scope_mode": "city-total",
      "motorcycle_taxi_district_count": 50,
      "motorcycle_taxi_district_names": [
        "บางกะปิ",
        "บางเขน",
        "บางรัก",
        "ดุสิต",
        "ห้วยขวาง",
        "ปทุมวัน",
        "พญาไท",
        "ป้อมปราบศัตรูพ่าย",
        "สัมพันธวงศ์",
        "จตุจักร",
        "ดอนเมือง",
        "ลาดพร้าว",
        "บางซื่อ",
        "ราชเทวี",
        "ดินแดง",
        "หลักสี่",
        "สายไหม",
        "วังทองหลาง",
        "บางขุนเทียน",
        "คลองสาน",
        "ราษฎร์บูรณะ",
        "ธนบุรี",
        "ยานนาวา",
        "บางคอแหลม",
        "จอมทอง",
        "สาทร",
        "ทุ่งครุ",
        "บางบอน",
        "พระนคร",
        "บางกอกน้อย",
        "บางกอกใหญ่",
        "หนองแขม",
        "ภาษีเจริญ",
        "ตลิ่งชัน",
        "บางพลัด",
        "ทวีวัฒนา",
        "บางแค",
        "พระโขนง",
        "ประเวศ",
        "คลองเตย",
        "สวนหลวง",
        "วัฒนา",
        "บางนา",
        "ลาดกระบัง",
        "มีนบุรี",
        "หนองจอก",
        "บึงกุ่ม",
        "คลองสามวา",
        "คันนายาว",
        "สะพานสูง"
      ],
      "motorcycle_taxi_win_count": 5800,
      "motorcycle_taxi_driver_count": 87179,
      "motorcycle_taxi_drivers_per_win": 15.03,
      "motorcycle_taxi_dataset_year": "",
      "motorcycle_taxi_resource_id": "01ec2de9-e2c1-485e-8078-b15211fc528c",
      "supporting_station_names": [
        "บางกะปิ",
        "บางเขน",
        "บางรัก",
        "ดุสิต",
        "ห้วยขวาง",
        "ปทุมวัน"
      ],
      "source_names": [
        "Bangkok motorcycle taxi stands and drivers"
      ],
      "comparison_hint": "Citywide official motorcycle-taxi coverage shows 5800 stand(s) and 87179 registered driver(s)."
    },
    {
      "feed_id": "bangkok-motorcycle-taxi-support",
      "source_name": "Bangkok motorcycle taxi stands and drivers",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2020-07-23T04:25:48.450Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_bangkok_motorcycle_taxi_datastore",
      "confidence": "medium",
      "note": "Sukhumvit uses Watthana, Khlong Toei, Phra Khanong, and Bang Na as an official motorcycle-taxi support proxy for hotel-base and nightlife return logic.",
      "observation_id": "bangkok-motorcycle-taxi-support_sukhumvit_official_motorcycle_taxi_support_score",
      "parameter": "official_motorcycle_taxi_support_score",
      "metric_label": "Official motorcycle-taxi support score",
      "value": 75,
      "unit": "score",
      "motorcycle_taxi_scope_mode": "district-group",
      "motorcycle_taxi_district_count": 4,
      "motorcycle_taxi_district_names": [
        "พระโขนง",
        "คลองเตย",
        "วัฒนา",
        "บางนา"
      ],
      "motorcycle_taxi_win_count": 526,
      "motorcycle_taxi_driver_count": 9588,
      "motorcycle_taxi_drivers_per_win": 18.23,
      "motorcycle_taxi_dataset_year": "",
      "motorcycle_taxi_resource_id": "01ec2de9-e2c1-485e-8078-b15211fc528c",
      "supporting_station_names": [
        "พระโขนง",
        "คลองเตย",
        "วัฒนา",
        "บางนา"
      ],
      "source_names": [
        "Bangkok motorcycle taxi stands and drivers"
      ],
      "comparison_hint": "4 district official motorcycle-taxi coverage shows 526 stand(s) and 9588 registered driver(s)."
    },
    {
      "feed_id": "bangkok-motorcycle-taxi-support",
      "source_name": "Bangkok motorcycle taxi stands and drivers",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2020-07-23T04:25:48.450Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_bangkok_motorcycle_taxi_datastore",
      "confidence": "medium",
      "note": "Silom / Sathorn uses Bang Rak, Sathon, and Yan Nawa as an official motorcycle-taxi support proxy for dense business, food, and nightlife last-mile moves.",
      "observation_id": "bangkok-motorcycle-taxi-support_silom-sathorn_official_motorcycle_taxi_support_score",
      "parameter": "official_motorcycle_taxi_support_score",
      "metric_label": "Official motorcycle-taxi support score",
      "value": 64,
      "unit": "score",
      "motorcycle_taxi_scope_mode": "district-group",
      "motorcycle_taxi_district_count": 3,
      "motorcycle_taxi_district_names": [
        "บางรัก",
        "ยานนาวา",
        "สาทร"
      ],
      "motorcycle_taxi_win_count": 485,
      "motorcycle_taxi_driver_count": 5251,
      "motorcycle_taxi_drivers_per_win": 10.83,
      "motorcycle_taxi_dataset_year": "",
      "motorcycle_taxi_resource_id": "01ec2de9-e2c1-485e-8078-b15211fc528c",
      "supporting_station_names": [
        "บางรัก",
        "ยานนาวา",
        "สาทร"
      ],
      "source_names": [
        "Bangkok motorcycle taxi stands and drivers"
      ],
      "comparison_hint": "3 district official motorcycle-taxi coverage shows 485 stand(s) and 5251 registered driver(s)."
    },
    {
      "feed_id": "bangkok-motorcycle-taxi-support",
      "source_name": "Bangkok motorcycle taxi stands and drivers",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2020-07-23T04:25:48.450Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_bangkok_motorcycle_taxi_datastore",
      "confidence": "medium-low",
      "note": "Riverside / Old Town uses Phra Nakhon, Samphanthawong, Pom Prap Sattru Phai, Khlong San, and Thon Buri as an official motorcycle-taxi support proxy around temple, market, and river-transfer last-mile logic.",
      "observation_id": "bangkok-motorcycle-taxi-support_riverside-old-town_official_motorcycle_taxi_support_score",
      "parameter": "official_motorcycle_taxi_support_score",
      "metric_label": "Official motorcycle-taxi support score",
      "value": 61,
      "unit": "score",
      "motorcycle_taxi_scope_mode": "district-group",
      "motorcycle_taxi_district_count": 5,
      "motorcycle_taxi_district_names": [
        "ป้อมปราบศัตรูพ่าย",
        "สัมพันธวงศ์",
        "คลองสาน",
        "ธนบุรี",
        "พระนคร"
      ],
      "motorcycle_taxi_win_count": 448,
      "motorcycle_taxi_driver_count": 4415,
      "motorcycle_taxi_drivers_per_win": 9.85,
      "motorcycle_taxi_dataset_year": "",
      "motorcycle_taxi_resource_id": "01ec2de9-e2c1-485e-8078-b15211fc528c",
      "supporting_station_names": [
        "ป้อมปราบศัตรูพ่าย",
        "สัมพันธวงศ์",
        "คลองสาน",
        "ธนบุรี",
        "พระนคร"
      ],
      "source_names": [
        "Bangkok motorcycle taxi stands and drivers"
      ],
      "comparison_hint": "5 district official motorcycle-taxi coverage shows 448 stand(s) and 4415 registered driver(s)."
    },
    {
      "feed_id": "bangkok-motorcycle-taxi-support",
      "source_name": "Bangkok motorcycle taxi stands and drivers",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2020-07-23T04:25:48.450Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_bangkok_motorcycle_taxi_datastore",
      "confidence": "medium",
      "note": "Ari uses Phaya Thai and Chatuchak as an official motorcycle-taxi support proxy behind calmer Bangkok hotel-base and short-hop BTS fallback logic.",
      "observation_id": "bangkok-motorcycle-taxi-support_ari_official_motorcycle_taxi_support_score",
      "parameter": "official_motorcycle_taxi_support_score",
      "metric_label": "Official motorcycle-taxi support score",
      "value": 55,
      "unit": "score",
      "motorcycle_taxi_scope_mode": "district-group",
      "motorcycle_taxi_district_count": 2,
      "motorcycle_taxi_district_names": [
        "พญาไท",
        "จตุจักร"
      ],
      "motorcycle_taxi_win_count": 380,
      "motorcycle_taxi_driver_count": 5416,
      "motorcycle_taxi_drivers_per_win": 14.25,
      "motorcycle_taxi_dataset_year": "",
      "motorcycle_taxi_resource_id": "01ec2de9-e2c1-485e-8078-b15211fc528c",
      "supporting_station_names": [
        "พญาไท",
        "จตุจักร"
      ],
      "source_names": [
        "Bangkok motorcycle taxi stands and drivers"
      ],
      "comparison_hint": "2 district official motorcycle-taxi coverage shows 380 stand(s) and 5416 registered driver(s)."
    },
    {
      "feed_id": "bangkok-motorcycle-taxi-support",
      "source_name": "Bangkok motorcycle taxi stands and drivers",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2020-07-23T04:25:48.450Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_bangkok_motorcycle_taxi_datastore",
      "confidence": "medium-high",
      "note": "Asok interchange uses Watthana and Khlong Toei as an official motorcycle-taxi support proxy behind dense interchange and short-hop fallback logic.",
      "observation_id": "bangkok-motorcycle-taxi-support_bts-asok_official_motorcycle_taxi_support_score",
      "parameter": "official_motorcycle_taxi_support_score",
      "metric_label": "Official motorcycle-taxi support score",
      "value": 57,
      "unit": "score",
      "motorcycle_taxi_scope_mode": "district-group",
      "motorcycle_taxi_district_count": 2,
      "motorcycle_taxi_district_names": [
        "คลองเตย",
        "วัฒนา"
      ],
      "motorcycle_taxi_win_count": 357,
      "motorcycle_taxi_driver_count": 5721,
      "motorcycle_taxi_drivers_per_win": 16.03,
      "motorcycle_taxi_dataset_year": "",
      "motorcycle_taxi_resource_id": "01ec2de9-e2c1-485e-8078-b15211fc528c",
      "supporting_station_names": [
        "คลองเตย",
        "วัฒนา"
      ],
      "source_names": [
        "Bangkok motorcycle taxi stands and drivers"
      ],
      "comparison_hint": "2 district official motorcycle-taxi coverage shows 357 stand(s) and 5721 registered driver(s)."
    },
    {
      "feed_id": "bangkok-motorcycle-taxi-support",
      "source_name": "Bangkok motorcycle taxi stands and drivers",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2020-07-23T04:25:48.450Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_bangkok_motorcycle_taxi_datastore",
      "confidence": "medium-high",
      "note": "Mochit 2 uses Chatuchak and Bang Sue as an official motorcycle-taxi support proxy behind terminal last-mile and overland recovery logic.",
      "observation_id": "bangkok-motorcycle-taxi-support_bangkok-mochit-2_official_motorcycle_taxi_support_score",
      "parameter": "official_motorcycle_taxi_support_score",
      "metric_label": "Official motorcycle-taxi support score",
      "value": 58,
      "unit": "score",
      "motorcycle_taxi_scope_mode": "district-group",
      "motorcycle_taxi_district_count": 2,
      "motorcycle_taxi_district_names": [
        "จตุจักร",
        "บางซื่อ"
      ],
      "motorcycle_taxi_win_count": 374,
      "motorcycle_taxi_driver_count": 5340,
      "motorcycle_taxi_drivers_per_win": 14.28,
      "motorcycle_taxi_dataset_year": "",
      "motorcycle_taxi_resource_id": "01ec2de9-e2c1-485e-8078-b15211fc528c",
      "supporting_station_names": [
        "จตุจักร",
        "บางซื่อ"
      ],
      "source_names": [
        "Bangkok motorcycle taxi stands and drivers"
      ],
      "comparison_hint": "2 district official motorcycle-taxi coverage shows 374 stand(s) and 5340 registered driver(s)."
    },
    {
      "feed_id": "bangkok-motorcycle-taxi-support",
      "source_name": "Bangkok motorcycle taxi stands and drivers",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2020-07-23T04:25:48.450Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_bangkok_motorcycle_taxi_datastore",
      "confidence": "low",
      "note": "Suvarnabhumi uses Lat Krabang as a light official motorcycle-taxi support proxy. It helps with last-mile comfort context, not airport pickup-rule truth.",
      "observation_id": "bangkok-motorcycle-taxi-support_suvarnabhumi-airport_official_motorcycle_taxi_support_score",
      "parameter": "official_motorcycle_taxi_support_score",
      "metric_label": "Official motorcycle-taxi support score",
      "value": 41,
      "unit": "score",
      "motorcycle_taxi_scope_mode": "district-group",
      "motorcycle_taxi_district_count": 1,
      "motorcycle_taxi_district_names": [
        "ลาดกระบัง"
      ],
      "motorcycle_taxi_win_count": 194,
      "motorcycle_taxi_driver_count": 2354,
      "motorcycle_taxi_drivers_per_win": 12.13,
      "motorcycle_taxi_dataset_year": "",
      "motorcycle_taxi_resource_id": "01ec2de9-e2c1-485e-8078-b15211fc528c",
      "supporting_station_names": [
        "ลาดกระบัง"
      ],
      "source_names": [
        "Bangkok motorcycle taxi stands and drivers"
      ],
      "comparison_hint": "1 district official motorcycle-taxi coverage shows 194 stand(s) and 2354 registered driver(s)."
    },
    {
      "feed_id": "bangkok-motorcycle-taxi-support",
      "source_name": "Bangkok motorcycle taxi stands and drivers",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2020-07-23T04:25:48.450Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dlt_bangkok_motorcycle_taxi_datastore",
      "confidence": "low",
      "note": "Don Mueang uses Don Mueang district as a light official motorcycle-taxi support proxy behind airport-edge last-mile movement.",
      "observation_id": "bangkok-motorcycle-taxi-support_don-mueang-airport_official_motorcycle_taxi_support_score",
      "parameter": "official_motorcycle_taxi_support_score",
      "metric_label": "Official motorcycle-taxi support score",
      "value": 40,
      "unit": "score",
      "motorcycle_taxi_scope_mode": "district-group",
      "motorcycle_taxi_district_count": 1,
      "motorcycle_taxi_district_names": [
        "ดอนเมือง"
      ],
      "motorcycle_taxi_win_count": 179,
      "motorcycle_taxi_driver_count": 1984,
      "motorcycle_taxi_drivers_per_win": 11.08,
      "motorcycle_taxi_dataset_year": "",
      "motorcycle_taxi_resource_id": "01ec2de9-e2c1-485e-8078-b15211fc528c",
      "supporting_station_names": [
        "ดอนเมือง"
      ],
      "source_names": [
        "Bangkok motorcycle taxi stands and drivers"
      ],
      "comparison_hint": "1 district official motorcycle-taxi coverage shows 179 stand(s) and 1984 registered driver(s)."
    },
    {
      "feed_id": "otp-taxi-demand-analytics",
      "source_name": "OTP taxi GPS trip analytics",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:11:35.449Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "otp_taxi_monthly_analytics_snapshot",
      "confidence": "medium-high",
      "note": "Bangkok uses the latest public OTP monthly taxi GPS analytics and hotspot rankings as aggregate citywide taxi-demand context, not live dispatch or raw trip truth.",
      "observation_id": "otp-taxi-demand-analytics_bangkok_taxi_pickup_dropoff_support_score",
      "parameter": "taxi_pickup_dropoff_support_score",
      "metric_label": "Taxi pickup and dropoff support score",
      "value": 92,
      "unit": "score",
      "taxi_scope_profile": "city-total",
      "taxi_hotspot_count": 475,
      "taxi_district_count": 47,
      "taxi_district_names": [
        "เขตจตุจักร",
        "เขตบางกอกน้อย",
        "เขตบางกะปิ",
        "เขตดอนเมือง",
        "เขตบางแค",
        "เขตราชเทวี",
        "เขตคันนายาว",
        "เขตดุสิต",
        "เขตตลิ่งชัน",
        "เขตยานนาวา",
        "เขตภาษีเจริญ",
        "เขตพระนคร",
        "เขตบางขุนเทียน",
        "เขตบางคอแหลม",
        "เขตธนบุรี",
        "เขตบางนา",
        "เขตสายไหม",
        "เขตบางพลัด",
        "เขตคลองสาน",
        "เขตมีนบุรี",
        "เขตบางเขน",
        "เขตวังทองหลาง",
        "เขตคลองเตย",
        "เขตปทุมวัน",
        "เขตประเวศ",
        "เขตสวนหลวง",
        "เขตป้อมปราบศัตรูพ่าย",
        "เขตบางซื่อ",
        "เขตห้วยขวาง",
        "เขตหลักสี่",
        "เขตดินแดง",
        "เขตจอมทอง",
        "เขตบางรัก",
        "เขตทวีวัฒนา",
        "เขตบางบอน",
        "เขตบางกอกใหญ่",
        "เขตลาดกระบัง",
        "เขตลาดพร้าว",
        "เขตคลองสามวา",
        "เขตราษฎร์บูรณะ",
        "เขตสัมพันธวงศ์",
        "เขตพญาไท",
        "เขตบึงกุ่ม",
        "เขตสาทร",
        "เขตหนองแขม",
        "เขตวัฒนา",
        "เขตหนองจอก"
      ],
      "taxi_total_activity": 9243,
      "taxi_pickup_total": 5387,
      "taxi_dropoff_total": 3856,
      "taxi_average_stop_volume": 19.5,
      "taxi_top_stop_volume": 366,
      "taxi_top_stop_names": [
        "อู่หมอชิต 2",
        "เซ็นทรัลปิ่นเกล้า",
        "เอ็นมาร์คพลาซ่า(น้อมจิตต์)",
        "อาคารผู้โดยสาร ชั้น 3",
        "อาคารผู้โดยสาร 1 ชั้น 1 ประตู 6",
        "ตรงข้ามเซ็นทรัลลาดพร้าว",
        "นครชัยแอร์",
        "แฟชั่นไอส์แลนด์"
      ],
      "taxi_top_stop_totals": [
        366,
        221,
        187,
        163,
        133,
        127,
        96,
        92
      ],
      "taxi_keyword_hit_count": 0,
      "taxi_trip_latest_year": "2569",
      "taxi_trip_latest_month": "มีนาคม",
      "taxi_trip_total_taxis_per_day": 1170,
      "taxi_trip_total_passenger_trips": 84522,
      "taxi_trip_avg_trips_per_day": 10565,
      "taxi_trip_avg_trips_per_taxi": 9,
      "taxi_trip_avg_speed": 30.5,
      "taxi_trip_recent_average": 173292.7,
      "taxi_trip_recent_ratio": 0.49,
      "supporting_station_names": [
        "อู่หมอชิต 2",
        "เซ็นทรัลปิ่นเกล้า",
        "เอ็นมาร์คพลาซ่า(น้อมจิตต์)",
        "อาคารผู้โดยสาร ชั้น 3",
        "อาคารผู้โดยสาร 1 ชั้น 1 ประตู 6",
        "ตรงข้ามเซ็นทรัลลาดพร้าว",
        "นครชัยแอร์",
        "แฟชั่นไอส์แลนด์"
      ],
      "source_names": [
        "OTP taxi GPS trip analytics",
        "OTP top taxi pickup and dropoff areas"
      ],
      "comparison_hint": "475 ranked hotspot row(s) currently match this scope in มีนาคม 2569, with top stops such as อู่หมอชิต 2, เซ็นทรัลปิ่นเกล้า, เอ็นมาร์คพลาซ่า(น้อมจิตต์) and about 84522 citywide passenger trips in the latest published OTP month."
    },
    {
      "feed_id": "otp-taxi-demand-analytics",
      "source_name": "OTP taxi GPS trip analytics",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:11:35.449Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "otp_taxi_monthly_analytics_snapshot",
      "confidence": "medium",
      "note": "Sukhumvit uses OTP monthly taxi hotspot rankings as a practical taxi-demand and pickup/dropoff support layer around the hotel base.",
      "observation_id": "otp-taxi-demand-analytics_sukhumvit_taxi_pickup_dropoff_support_score",
      "parameter": "taxi_pickup_dropoff_support_score",
      "metric_label": "Taxi pickup and dropoff support score",
      "value": 74,
      "unit": "score",
      "taxi_scope_profile": "hotel-area",
      "taxi_hotspot_count": 16,
      "taxi_district_count": 2,
      "taxi_district_names": [
        "เขตคลองเตย",
        "เขตวัฒนา"
      ],
      "taxi_total_activity": 228,
      "taxi_pickup_total": 118,
      "taxi_dropoff_total": 110,
      "taxi_average_stop_volume": 14.3,
      "taxi_top_stop_volume": 29,
      "taxi_top_stop_names": [
        "ตรงข้ามสหกรณ์กรุงเทพเอกมัย",
        "MRT ศูนย์ประชุมสิริกิติ์",
        "ตลาดคองเตย",
        "BTSอ่อนนุช,ซอยสุขุมวิท 81 (ศิริพจน์)",
        "ตลาดคลองเตย(ถนนพระราม3ขาเข้า)",
        "ศูนย์ประชุมสิริกิติ์",
        "BTS อ่อนนุช",
        "ตรงข้ามเทสโก้โลตัสพระราม 4"
      ],
      "taxi_top_stop_totals": [
        29,
        28,
        22,
        20,
        19,
        15,
        15,
        11
      ],
      "taxi_keyword_hit_count": 9,
      "taxi_trip_latest_year": "2569",
      "taxi_trip_latest_month": "มีนาคม",
      "taxi_trip_total_taxis_per_day": 1170,
      "taxi_trip_total_passenger_trips": 84522,
      "taxi_trip_avg_trips_per_day": 10565,
      "taxi_trip_avg_trips_per_taxi": 9,
      "taxi_trip_avg_speed": 30.5,
      "taxi_trip_recent_average": 173292.7,
      "taxi_trip_recent_ratio": 0.49,
      "supporting_station_names": [
        "ตรงข้ามสหกรณ์กรุงเทพเอกมัย",
        "MRT ศูนย์ประชุมสิริกิติ์",
        "ตลาดคองเตย",
        "BTSอ่อนนุช,ซอยสุขุมวิท 81 (ศิริพจน์)",
        "ตลาดคลองเตย(ถนนพระราม3ขาเข้า)",
        "ศูนย์ประชุมสิริกิติ์",
        "BTS อ่อนนุช",
        "ตรงข้ามเทสโก้โลตัสพระราม 4"
      ],
      "source_names": [
        "OTP taxi GPS trip analytics",
        "OTP top taxi pickup and dropoff areas"
      ],
      "comparison_hint": "16 ranked hotspot row(s) currently match this scope in มีนาคม 2569, with top stops such as ตรงข้ามสหกรณ์กรุงเทพเอกมัย, MRT ศูนย์ประชุมสิริกิติ์, ตลาดคองเตย and about 84522 citywide passenger trips in the latest published OTP month."
    },
    {
      "feed_id": "otp-taxi-demand-analytics",
      "source_name": "OTP taxi GPS trip analytics",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:11:35.449Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "otp_taxi_monthly_analytics_snapshot",
      "confidence": "medium",
      "note": "Silom / Sathorn uses OTP monthly taxi hotspot rankings as practical demand context for late returns, business-district friction, and pickup realism.",
      "observation_id": "otp-taxi-demand-analytics_silom-sathorn_taxi_pickup_dropoff_support_score",
      "parameter": "taxi_pickup_dropoff_support_score",
      "metric_label": "Taxi pickup and dropoff support score",
      "value": 86,
      "unit": "score",
      "taxi_scope_profile": "hotel-area",
      "taxi_hotspot_count": 32,
      "taxi_district_count": 5,
      "taxi_district_names": [
        "เขตยานนาวา",
        "เขตปทุมวัน",
        "เขตบางรัก",
        "เขตสาทร",
        "เขตภาษีเจริญ"
      ],
      "taxi_total_activity": 412,
      "taxi_pickup_total": 224,
      "taxi_dropoff_total": 188,
      "taxi_average_stop_volume": 12.9,
      "taxi_top_stop_volume": 72,
      "taxi_top_stop_names": [
        "เซ็นทรัลพระราม 3",
        "สวนลุมพินี(ฝั่งราชดำริป้าย2)",
        "โรงพยาบาลจุฬาลงกรณ์(ฝั่งราชดำริ)",
        "ตรงข้ามโรบินสันบางรัก",
        "BRT วัดด่าน",
        "สถานีรถไฟหัวลำโพง",
        "วัดโพธิ์แมนคุณาราม",
        "รพ.เลิดสิน"
      ],
      "taxi_top_stop_totals": [
        72,
        27,
        26,
        24,
        19,
        18,
        15,
        14
      ],
      "taxi_keyword_hit_count": 7,
      "taxi_trip_latest_year": "2569",
      "taxi_trip_latest_month": "มีนาคม",
      "taxi_trip_total_taxis_per_day": 1170,
      "taxi_trip_total_passenger_trips": 84522,
      "taxi_trip_avg_trips_per_day": 10565,
      "taxi_trip_avg_trips_per_taxi": 9,
      "taxi_trip_avg_speed": 30.5,
      "taxi_trip_recent_average": 173292.7,
      "taxi_trip_recent_ratio": 0.49,
      "supporting_station_names": [
        "เซ็นทรัลพระราม 3",
        "สวนลุมพินี(ฝั่งราชดำริป้าย2)",
        "โรงพยาบาลจุฬาลงกรณ์(ฝั่งราชดำริ)",
        "ตรงข้ามโรบินสันบางรัก",
        "BRT วัดด่าน",
        "สถานีรถไฟหัวลำโพง",
        "วัดโพธิ์แมนคุณาราม",
        "รพ.เลิดสิน"
      ],
      "source_names": [
        "OTP taxi GPS trip analytics",
        "OTP top taxi pickup and dropoff areas"
      ],
      "comparison_hint": "32 ranked hotspot row(s) currently match this scope in มีนาคม 2569, with top stops such as เซ็นทรัลพระราม 3, สวนลุมพินี(ฝั่งราชดำริป้าย2), โรงพยาบาลจุฬาลงกรณ์(ฝั่งราชดำริ) and about 84522 citywide passenger trips in the latest published OTP month."
    },
    {
      "feed_id": "otp-taxi-demand-analytics",
      "source_name": "OTP taxi GPS trip analytics",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-05-15T11:11:35.449Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "otp_taxi_monthly_analytics_snapshot",
      "confidence": "medium",
      "note": "Riverside / Old Town uses OTP hotspot rankings as practical taxi pickup/dropoff context for temples, markets, river crossings, and hotel-return friction.",
      "observation_id": "otp-taxi-demand-analytics_riverside-old-town_taxi_pickup_dropoff_support_score",
      "parameter": "taxi_pickup_dropoff_support_score",
      "metric_label": "Taxi pickup and dropoff support score",
      "value": 89,
      "unit": "score",
      "taxi_scope_profile": "hotel-area",
      "taxi_hotspot_count": 67,
      "taxi_district_count": 7,
      "taxi_district_names": [
        "เขตบางกอกน้อย",
        "เขตพระนคร",
        "เขตธนบุรี",
        "เขตคลองสาน",
        "เขตบางกอกใหญ่",
        "เขตยานนาวา",
        "เขตสัมพันธวงศ์"
      ],
      "taxi_total_activity": 1434,
      "taxi_pickup_total": 818,
      "taxi_dropoff_total": 616,
      "taxi_average_stop_volume": 21.4,
      "taxi_top_stop_volume": 221,
      "taxi_top_stop_names": [
        "เซ็นทรัลปิ่นเกล้า",
        "ตรงข้ามโรงพยาบาลศิริราช",
        "เดอะมอลล์ท่าพระ",
        "ปากคลองตลาด",
        "ท่าพรานนก (วังหลัง)",
        "โรงพยาบาลศิริราช",
        "โรงเรียนสทราวดี(ซอยศาลาต้นจันทร์)",
        "ไอคอนสยาม"
      ],
      "taxi_top_stop_totals": [
        221,
        73,
        63,
        60,
        54,
        49,
        46,
        45
      ],
      "taxi_keyword_hit_count": 18,
      "taxi_trip_latest_year": "2569",
      "taxi_trip_latest_month": "มีนาคม",
      "taxi_trip_total_taxis_per_day": 1170,
      "taxi_trip_total_passenger_trips": 84522,
      "taxi_trip_avg_trips_per_day": 10565,
      "taxi_trip_avg_trips_per_taxi": 9,
      "taxi_trip_avg_speed": 30.5,
      "taxi_trip_recent_average": 173292.7,
      "taxi_trip_recent_ratio": 0.49,
      "supporting_station_names": [
        "เซ็นทรัลปิ่นเกล้า",
        "ตรงข้ามโรงพยาบาลศิริราช",
        "เดอะมอลล์ท่าพระ",
        "ปากคลองตลาด",
        "ท่าพรานนก (วังหลัง)",
        "โรงพยาบาลศิริราช",
        "โรงเรียนสทราวดี(ซอยศาลาต้นจันทร์)",
        "ไอคอนสยาม"
      ],
      "source_names": [
        "OTP taxi GPS trip analytics",
        "OTP top taxi pickup and dropoff areas"
      ],
      "comparison_hint": "67 ranked hotspot row(s) currently match this scope in มีนาคม 2569, with top stops such as เซ็นทรัลปิ่นเกล้า, ตรงข้ามโรงพยาบาลศิริราช, เดอะมอลล์ท่าพระ and about 84522 citywide passenger trips in the latest published OTP month."
    },
    {
      "feed_id": "otp-taxi-demand-analytics",
      "source_name": "OTP taxi GPS trip analytics",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-05-15T11:11:35.449Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "otp_taxi_monthly_analytics_snapshot",
      "confidence": "medium",
      "note": "Ari uses OTP monthly taxi hotspot rankings as practical demand context for BTS-linked cafes, calmer nights, and cross-city return friction.",
      "observation_id": "otp-taxi-demand-analytics_ari_taxi_pickup_dropoff_support_score",
      "parameter": "taxi_pickup_dropoff_support_score",
      "metric_label": "Taxi pickup and dropoff support score",
      "value": 87,
      "unit": "score",
      "taxi_scope_profile": "hotel-area",
      "taxi_hotspot_count": 71,
      "taxi_district_count": 3,
      "taxi_district_names": [
        "เขตจตุจักร",
        "เขตพญาไท",
        "เขตราชเทวี"
      ],
      "taxi_total_activity": 1659,
      "taxi_pickup_total": 998,
      "taxi_dropoff_total": 661,
      "taxi_average_stop_volume": 23.4,
      "taxi_top_stop_volume": 366,
      "taxi_top_stop_names": [
        "อู่หมอชิต 2",
        "ตรงข้ามเซ็นทรัลลาดพร้าว",
        "นครชัยแอร์",
        "SRT ชุมทางบางซื่อ",
        "แยกลาดพร้าว(ลาดพร้าวซอย4)",
        "ท่าปล่อยรถ สวนจตุจักร (A1)",
        "MRTบางซื่อ",
        "ตรงข้ามเมเจอร์รัชโยธิน"
      ],
      "taxi_top_stop_totals": [
        366,
        127,
        96,
        55,
        55,
        50,
        47,
        42
      ],
      "taxi_keyword_hit_count": 9,
      "taxi_trip_latest_year": "2569",
      "taxi_trip_latest_month": "มีนาคม",
      "taxi_trip_total_taxis_per_day": 1170,
      "taxi_trip_total_passenger_trips": 84522,
      "taxi_trip_avg_trips_per_day": 10565,
      "taxi_trip_avg_trips_per_taxi": 9,
      "taxi_trip_avg_speed": 30.5,
      "taxi_trip_recent_average": 173292.7,
      "taxi_trip_recent_ratio": 0.49,
      "supporting_station_names": [
        "อู่หมอชิต 2",
        "ตรงข้ามเซ็นทรัลลาดพร้าว",
        "นครชัยแอร์",
        "SRT ชุมทางบางซื่อ",
        "แยกลาดพร้าว(ลาดพร้าวซอย4)",
        "ท่าปล่อยรถ สวนจตุจักร (A1)",
        "MRTบางซื่อ",
        "ตรงข้ามเมเจอร์รัชโยธิน"
      ],
      "source_names": [
        "OTP taxi GPS trip analytics",
        "OTP top taxi pickup and dropoff areas"
      ],
      "comparison_hint": "71 ranked hotspot row(s) currently match this scope in มีนาคม 2569, with top stops such as อู่หมอชิต 2, ตรงข้ามเซ็นทรัลลาดพร้าว, นครชัยแอร์ and about 84522 citywide passenger trips in the latest published OTP month."
    },
    {
      "feed_id": "otp-taxi-demand-analytics",
      "source_name": "OTP taxi GPS trip analytics",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-05-15T11:11:35.449Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "otp_taxi_monthly_analytics_snapshot",
      "confidence": "medium-high",
      "note": "Asok interchange uses OTP hotspot rankings as a taxi-demand and transfer-support layer for one of Bangkok's most pickup-heavy rail nodes.",
      "observation_id": "otp-taxi-demand-analytics_bts-asok_taxi_pickup_dropoff_support_score",
      "parameter": "taxi_pickup_dropoff_support_score",
      "metric_label": "Taxi pickup and dropoff support score",
      "value": 66,
      "unit": "score",
      "taxi_scope_profile": "interchange",
      "taxi_hotspot_count": 4,
      "taxi_district_count": 2,
      "taxi_district_names": [
        "เขตคลองเตย",
        "เขตวัฒนา"
      ],
      "taxi_total_activity": 56,
      "taxi_pickup_total": 36,
      "taxi_dropoff_total": 20,
      "taxi_average_stop_volume": 14,
      "taxi_top_stop_volume": 28,
      "taxi_top_stop_names": [
        "MRT ศูนย์ประชุมสิริกิติ์",
        "ซอยสุขุมวิท 41",
        "เอ็มควอเทียร์",
        "ซอยนานา"
      ],
      "taxi_top_stop_totals": [
        28,
        10,
        10,
        8
      ],
      "taxi_keyword_hit_count": 4,
      "taxi_trip_latest_year": "2569",
      "taxi_trip_latest_month": "มีนาคม",
      "taxi_trip_total_taxis_per_day": 1170,
      "taxi_trip_total_passenger_trips": 84522,
      "taxi_trip_avg_trips_per_day": 10565,
      "taxi_trip_avg_trips_per_taxi": 9,
      "taxi_trip_avg_speed": 30.5,
      "taxi_trip_recent_average": 173292.7,
      "taxi_trip_recent_ratio": 0.49,
      "supporting_station_names": [
        "MRT ศูนย์ประชุมสิริกิติ์",
        "ซอยสุขุมวิท 41",
        "เอ็มควอเทียร์",
        "ซอยนานา"
      ],
      "source_names": [
        "OTP taxi GPS trip analytics",
        "OTP top taxi pickup and dropoff areas"
      ],
      "comparison_hint": "4 ranked hotspot row(s) currently match this scope in มีนาคม 2569, with top stops such as MRT ศูนย์ประชุมสิริกิติ์, ซอยสุขุมวิท 41, เอ็มควอเทียร์ and about 84522 citywide passenger trips in the latest published OTP month."
    },
    {
      "feed_id": "otp-taxi-demand-analytics",
      "source_name": "OTP taxi GPS trip analytics",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:11:35.449Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "otp_taxi_monthly_analytics_snapshot",
      "confidence": "medium-high",
      "note": "Mochit 2 uses OTP hotspot rankings as a practical taxi-demand and transfer-support layer for overland departures and returns.",
      "observation_id": "otp-taxi-demand-analytics_bangkok-mochit-2_taxi_pickup_dropoff_support_score",
      "parameter": "taxi_pickup_dropoff_support_score",
      "metric_label": "Taxi pickup and dropoff support score",
      "value": 85,
      "unit": "score",
      "taxi_scope_profile": "terminal",
      "taxi_hotspot_count": 17,
      "taxi_district_count": 2,
      "taxi_district_names": [
        "เขตจตุจักร",
        "เขตบางซื่อ"
      ],
      "taxi_total_activity": 949,
      "taxi_pickup_total": 523,
      "taxi_dropoff_total": 426,
      "taxi_average_stop_volume": 55.8,
      "taxi_top_stop_volume": 366,
      "taxi_top_stop_names": [
        "อู่หมอชิต 2",
        "ตรงข้ามเซ็นทรัลลาดพร้าว",
        "นครชัยแอร์",
        "SRT ชุมทางบางซื่อ",
        "ท่าปล่อยรถ สวนจตุจักร (A1)",
        "MRTบางซื่อ",
        "ตรงข้ามสวนจตุจักร",
        "ซอยสายสิน"
      ],
      "taxi_top_stop_totals": [
        366,
        127,
        96,
        55,
        50,
        47,
        41,
        35
      ],
      "taxi_keyword_hit_count": 10,
      "taxi_trip_latest_year": "2569",
      "taxi_trip_latest_month": "มีนาคม",
      "taxi_trip_total_taxis_per_day": 1170,
      "taxi_trip_total_passenger_trips": 84522,
      "taxi_trip_avg_trips_per_day": 10565,
      "taxi_trip_avg_trips_per_taxi": 9,
      "taxi_trip_avg_speed": 30.5,
      "taxi_trip_recent_average": 173292.7,
      "taxi_trip_recent_ratio": 0.49,
      "supporting_station_names": [
        "อู่หมอชิต 2",
        "ตรงข้ามเซ็นทรัลลาดพร้าว",
        "นครชัยแอร์",
        "SRT ชุมทางบางซื่อ",
        "ท่าปล่อยรถ สวนจตุจักร (A1)",
        "MRTบางซื่อ",
        "ตรงข้ามสวนจตุจักร",
        "ซอยสายสิน"
      ],
      "source_names": [
        "OTP taxi GPS trip analytics",
        "OTP top taxi pickup and dropoff areas"
      ],
      "comparison_hint": "17 ranked hotspot row(s) currently match this scope in มีนาคม 2569, with top stops such as อู่หมอชิต 2, ตรงข้ามเซ็นทรัลลาดพร้าว, นครชัยแอร์ and about 84522 citywide passenger trips in the latest published OTP month."
    },
    {
      "feed_id": "otp-taxi-demand-analytics",
      "source_name": "OTP taxi GPS trip analytics",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:11:35.449Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "otp_taxi_monthly_analytics_snapshot",
      "confidence": "medium",
      "note": "Don Mueang uses OTP hotspot rankings as aggregate monthly taxi pickup/dropoff context around the airport corridor, not live queue or ETA truth.",
      "observation_id": "otp-taxi-demand-analytics_don-mueang-airport_taxi_pickup_dropoff_support_score",
      "parameter": "taxi_pickup_dropoff_support_score",
      "metric_label": "Taxi pickup and dropoff support score",
      "value": 70,
      "unit": "score",
      "taxi_scope_profile": "airport",
      "taxi_hotspot_count": 8,
      "taxi_district_count": 1,
      "taxi_district_names": [
        "เขตดอนเมือง"
      ],
      "taxi_total_activity": 457,
      "taxi_pickup_total": 200,
      "taxi_dropoff_total": 257,
      "taxi_average_stop_volume": 57.1,
      "taxi_top_stop_volume": 163,
      "taxi_top_stop_names": [
        "อาคารผู้โดยสาร ชั้น 3",
        "อาคารผู้โดยสาร 1 ชั้น 1 ประตู 6",
        "อาคารผู้โดยสาร 2 ชั้น 1 ประตู 12",
        "ดอนเมือง(สำนักงานท่าอากาศยาน)",
        "สนามบินดอนเมือง",
        "SRT ตลาดใหม่ดอนเมือง",
        "วัดดอนเมือง",
        "ร้านเจ้เล้ง"
      ],
      "taxi_top_stop_totals": [
        163,
        133,
        70,
        30,
        23,
        14,
        14,
        10
      ],
      "taxi_keyword_hit_count": 7,
      "taxi_trip_latest_year": "2569",
      "taxi_trip_latest_month": "มีนาคม",
      "taxi_trip_total_taxis_per_day": 1170,
      "taxi_trip_total_passenger_trips": 84522,
      "taxi_trip_avg_trips_per_day": 10565,
      "taxi_trip_avg_trips_per_taxi": 9,
      "taxi_trip_avg_speed": 30.5,
      "taxi_trip_recent_average": 173292.7,
      "taxi_trip_recent_ratio": 0.49,
      "supporting_station_names": [
        "อาคารผู้โดยสาร ชั้น 3",
        "อาคารผู้โดยสาร 1 ชั้น 1 ประตู 6",
        "อาคารผู้โดยสาร 2 ชั้น 1 ประตู 12",
        "ดอนเมือง(สำนักงานท่าอากาศยาน)",
        "สนามบินดอนเมือง",
        "SRT ตลาดใหม่ดอนเมือง",
        "วัดดอนเมือง",
        "ร้านเจ้เล้ง"
      ],
      "source_names": [
        "OTP taxi GPS trip analytics",
        "OTP top taxi pickup and dropoff areas"
      ],
      "comparison_hint": "8 ranked hotspot row(s) currently match this scope in มีนาคม 2569, with top stops such as อาคารผู้โดยสาร ชั้น 3, อาคารผู้โดยสาร 1 ชั้น 1 ประตู 6, อาคารผู้โดยสาร 2 ชั้น 1 ประตู 12 and about 84522 citywide passenger trips in the latest published OTP month."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "high",
      "note": "Phuket gets official passenger-pier support from the Marine Department berth registry, useful for island-transfer confidence beyond generic map geometry.",
      "observation_id": "marine-department-pier-registry_phuket_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 96,
      "unit": "score",
      "official_passenger_berth_count": 41,
      "official_passenger_provinces": [
        "ภูเก็ต"
      ],
      "official_passenger_berth_codes": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06",
        "HKT09",
        "HKT11",
        "HKT13",
        "HKT14"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 360,
      "official_passenger_average_length_m": 61.1,
      "official_passenger_max_depth_m": 10,
      "official_passenger_average_depth_m": 2.5,
      "supporting_station_names": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "41 official passenger berth row(s) in ภูเก็ต; longest 360 m, deepest 10 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "high",
      "note": "Krabi gets official passenger-pier support from the Marine Department berth registry, reinforcing that boat access is a real infrastructure layer, not just a map assumption.",
      "observation_id": "marine-department-pier-registry_krabi_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 78,
      "unit": "score",
      "official_passenger_berth_count": 10,
      "official_passenger_provinces": [
        "กระบี่"
      ],
      "official_passenger_berth_codes": [
        "KBV04",
        "KBV08",
        "KBV13",
        "KBV14",
        "KBV15",
        "KBV16",
        "KBV17",
        "KBV20",
        "KBV21",
        "KBV23"
      ],
      "official_passenger_capacity_bands": [
        "0-20 ตันกรอส",
        "20-500 ตันกรอส"
      ],
      "official_passenger_max_length_m": 75,
      "official_passenger_average_length_m": 39.5,
      "official_passenger_max_depth_m": 5.8,
      "official_passenger_average_depth_m": 2.7,
      "supporting_station_names": [
        "KBV04",
        "KBV08",
        "KBV13",
        "KBV14",
        "KBV15",
        "KBV16",
        "KBV17",
        "KBV20"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "10 official passenger berth row(s) in กระบี่; longest 75 m, deepest 5.8 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "high",
      "note": "Koh Samui uses Surat Thani passenger-berth support from the official Marine Department registry as a practical island-transfer and mainland-link proxy.",
      "observation_id": "marine-department-pier-registry_koh-samui_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 94,
      "unit": "score",
      "official_passenger_berth_count": 52,
      "official_passenger_provinces": [
        "สุราษฎร์ธานี"
      ],
      "official_passenger_berth_codes": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008",
        "KT009",
        "SND02",
        "SND03",
        "SNP01"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 120,
      "official_passenger_average_length_m": 34.8,
      "official_passenger_max_depth_m": 5.5,
      "official_passenger_average_depth_m": 2.9,
      "supporting_station_names": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "52 official passenger berth row(s) in สุราษฎร์ธานี; longest 120 m, deepest 5.5 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium-high",
      "note": "Koh Phangan uses Surat Thani passenger-berth support from the official Marine Department registry as an honest province-level ferry-support proxy.",
      "observation_id": "marine-department-pier-registry_koh-phangan_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 94,
      "unit": "score",
      "official_passenger_berth_count": 52,
      "official_passenger_provinces": [
        "สุราษฎร์ธานี"
      ],
      "official_passenger_berth_codes": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008",
        "KT009",
        "SND02",
        "SND03",
        "SNP01"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 120,
      "official_passenger_average_length_m": 34.8,
      "official_passenger_max_depth_m": 5.5,
      "official_passenger_average_depth_m": 2.9,
      "supporting_station_names": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "52 official passenger berth row(s) in สุราษฎร์ธานี; longest 120 m, deepest 5.5 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium-high",
      "note": "Pattaya / Chonburi gets official passenger-pier support from the Marine Department berth registry, useful for coast-transfer and harbor-confidence context.",
      "observation_id": "marine-department-pier-registry_pattaya-chonburi_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 82,
      "unit": "score",
      "official_passenger_berth_count": 12,
      "official_passenger_provinces": [
        "ชลบุรี"
      ],
      "official_passenger_berth_codes": [
        "LCBA1",
        "LCBC0",
        "PT001",
        "PTL02",
        "PTY01",
        "PT002",
        "PT003",
        "PT004",
        "PT005",
        "PTL03",
        "PTL04",
        "THSA6"
      ],
      "official_passenger_capacity_bands": [
        "500 ตันกรอส ขึ้นไป",
        "20-500 ตันกรอส"
      ],
      "official_passenger_max_length_m": 500,
      "official_passenger_average_length_m": 124.1,
      "official_passenger_max_depth_m": 13,
      "official_passenger_average_depth_m": 6.8,
      "supporting_station_names": [
        "LCBA1",
        "LCBC0",
        "PT001",
        "PTL02",
        "PTY01",
        "PT002",
        "PT003",
        "PT004"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "12 official passenger berth row(s) in ชลบุรี; longest 500 m, deepest 13 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium",
      "note": "Hua Hin / Cha-am uses Prachuap Khiri Khan passenger-berth support from the official Marine Department registry as a light coast-infrastructure signal.",
      "observation_id": "marine-department-pier-registry_hua-hin_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 60,
      "unit": "score",
      "official_passenger_berth_count": 1,
      "official_passenger_provinces": [
        "ประจวบคีรีขันธ์"
      ],
      "official_passenger_berth_codes": [
        "PPCFM"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส"
      ],
      "official_passenger_max_length_m": 82,
      "official_passenger_average_length_m": 82,
      "official_passenger_max_depth_m": 2,
      "official_passenger_average_depth_m": 2,
      "supporting_station_names": [
        "PPCFM"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "1 official passenger berth row(s) in ประจวบคีรีขันธ์; longest 82 m, deepest 2 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium",
      "note": "Kata / Karon uses Phuket passenger-berth support from the Marine Department berth registry as a coastal transfer-support proxy behind boat-day planning.",
      "observation_id": "marine-department-pier-registry_kata-karon_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 92,
      "unit": "score",
      "official_passenger_berth_count": 41,
      "official_passenger_provinces": [
        "ภูเก็ต"
      ],
      "official_passenger_berth_codes": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06",
        "HKT09",
        "HKT11",
        "HKT13",
        "HKT14"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 360,
      "official_passenger_average_length_m": 61.1,
      "official_passenger_max_depth_m": 10,
      "official_passenger_average_depth_m": 2.5,
      "supporting_station_names": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "41 official passenger berth row(s) in ภูเก็ต; longest 360 m, deepest 10 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium",
      "note": "Patong uses Phuket passenger-berth support from the Marine Department registry as a coastal transfer-support proxy behind dense beach-base planning.",
      "observation_id": "marine-department-pier-registry_patong_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 92,
      "unit": "score",
      "official_passenger_berth_count": 41,
      "official_passenger_provinces": [
        "ภูเก็ต"
      ],
      "official_passenger_berth_codes": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06",
        "HKT09",
        "HKT11",
        "HKT13",
        "HKT14"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 360,
      "official_passenger_average_length_m": 61.1,
      "official_passenger_max_depth_m": 10,
      "official_passenger_average_depth_m": 2.5,
      "supporting_station_names": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "41 official passenger berth row(s) in ภูเก็ต; longest 360 m, deepest 10 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium",
      "note": "Rawai / Nai Harn uses Phuket passenger-berth support from the Marine Department registry as south-coast harbor and transfer-support context.",
      "observation_id": "marine-department-pier-registry_rawai-nai-harn_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 92,
      "unit": "score",
      "official_passenger_berth_count": 41,
      "official_passenger_provinces": [
        "ภูเก็ต"
      ],
      "official_passenger_berth_codes": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06",
        "HKT09",
        "HKT11",
        "HKT13",
        "HKT14"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 360,
      "official_passenger_average_length_m": 61.1,
      "official_passenger_max_depth_m": 10,
      "official_passenger_average_depth_m": 2.5,
      "supporting_station_names": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "41 official passenger berth row(s) in ภูเก็ต; longest 360 m, deepest 10 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium-high",
      "note": "Bophut / Fisherman's Village uses Surat Thani passenger-berth support from the Marine Department registry as a Gulf transfer-support proxy.",
      "observation_id": "marine-department-pier-registry_bophut-fishermans-village_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 90,
      "unit": "score",
      "official_passenger_berth_count": 52,
      "official_passenger_provinces": [
        "สุราษฎร์ธานี"
      ],
      "official_passenger_berth_codes": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008",
        "KT009",
        "SND02",
        "SND03",
        "SNP01"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 120,
      "official_passenger_average_length_m": 34.8,
      "official_passenger_max_depth_m": 5.5,
      "official_passenger_average_depth_m": 2.9,
      "supporting_station_names": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "52 official passenger berth row(s) in สุราษฎร์ธานี; longest 120 m, deepest 5.5 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium",
      "note": "Chaweng uses Surat Thani passenger-berth support from the Marine Department registry as airport-and-ferry support context behind a nightlife-and-services island base.",
      "observation_id": "marine-department-pier-registry_chaweng_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 90,
      "unit": "score",
      "official_passenger_berth_count": 52,
      "official_passenger_provinces": [
        "สุราษฎร์ธานี"
      ],
      "official_passenger_berth_codes": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008",
        "KT009",
        "SND02",
        "SND03",
        "SNP01"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 120,
      "official_passenger_average_length_m": 34.8,
      "official_passenger_max_depth_m": 5.5,
      "official_passenger_average_depth_m": 2.9,
      "supporting_station_names": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "52 official passenger berth row(s) in สุราษฎร์ธานี; longest 120 m, deepest 5.5 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium",
      "note": "Lamai uses Surat Thani passenger-berth support from the Marine Department registry as a softer Gulf transfer-support proxy.",
      "observation_id": "marine-department-pier-registry_lamai_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 90,
      "unit": "score",
      "official_passenger_berth_count": 52,
      "official_passenger_provinces": [
        "สุราษฎร์ธานี"
      ],
      "official_passenger_berth_codes": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008",
        "KT009",
        "SND02",
        "SND03",
        "SNP01"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 120,
      "official_passenger_average_length_m": 34.8,
      "official_passenger_max_depth_m": 5.5,
      "official_passenger_average_depth_m": 2.9,
      "supporting_station_names": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "52 official passenger berth row(s) in สุราษฎร์ธานี; longest 120 m, deepest 5.5 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "central-pattaya-jomtien",
      "entity_name": "Central Pattaya / Jomtien",
      "entity_type": "hotel_area",
      "entity_path": "/entities/central-pattaya-jomtien/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium",
      "note": "Central Pattaya / Jomtien uses Chonburi passenger-berth support from the Marine Department registry as a harbor and coast-support proxy.",
      "observation_id": "marine-department-pier-registry_central-pattaya-jomtien_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 80,
      "unit": "score",
      "official_passenger_berth_count": 12,
      "official_passenger_provinces": [
        "ชลบุรี"
      ],
      "official_passenger_berth_codes": [
        "LCBA1",
        "LCBC0",
        "PT001",
        "PTL02",
        "PTY01",
        "PT002",
        "PT003",
        "PT004",
        "PT005",
        "PTL03",
        "PTL04",
        "THSA6"
      ],
      "official_passenger_capacity_bands": [
        "500 ตันกรอส ขึ้นไป",
        "20-500 ตันกรอส"
      ],
      "official_passenger_max_length_m": 500,
      "official_passenger_average_length_m": 124.1,
      "official_passenger_max_depth_m": 13,
      "official_passenger_average_depth_m": 6.8,
      "supporting_station_names": [
        "LCBA1",
        "LCBC0",
        "PT001",
        "PTL02",
        "PTY01",
        "PT002",
        "PT003",
        "PT004"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "12 official passenger berth row(s) in ชลบุรี; longest 500 m, deepest 13 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "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/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium",
      "note": "Central Hua Hin / Khao Takiab uses Prachuap Khiri Khan passenger-berth support from the Marine Department registry as a light coast-infrastructure proxy.",
      "observation_id": "marine-department-pier-registry_central-hua-hin-khao-takiab_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 58,
      "unit": "score",
      "official_passenger_berth_count": 1,
      "official_passenger_provinces": [
        "ประจวบคีรีขันธ์"
      ],
      "official_passenger_berth_codes": [
        "PPCFM"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส"
      ],
      "official_passenger_max_length_m": 82,
      "official_passenger_average_length_m": 82,
      "official_passenger_max_depth_m": 2,
      "official_passenger_average_depth_m": 2,
      "supporting_station_names": [
        "PPCFM"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "1 official passenger berth row(s) in ประจวบคีรีขันธ์; longest 82 m, deepest 2 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium-high",
      "note": "Ao Nang uses Krabi passenger-berth support from the Marine Department registry as practical coast-transfer context behind first-timer Krabi planning.",
      "observation_id": "marine-department-pier-registry_ao-nang_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 76,
      "unit": "score",
      "official_passenger_berth_count": 10,
      "official_passenger_provinces": [
        "กระบี่"
      ],
      "official_passenger_berth_codes": [
        "KBV04",
        "KBV08",
        "KBV13",
        "KBV14",
        "KBV15",
        "KBV16",
        "KBV17",
        "KBV20",
        "KBV21",
        "KBV23"
      ],
      "official_passenger_capacity_bands": [
        "0-20 ตันกรอส",
        "20-500 ตันกรอส"
      ],
      "official_passenger_max_length_m": 75,
      "official_passenger_average_length_m": 39.5,
      "official_passenger_max_depth_m": 5.8,
      "official_passenger_average_depth_m": 2.7,
      "supporting_station_names": [
        "KBV04",
        "KBV08",
        "KBV13",
        "KBV14",
        "KBV15",
        "KBV16",
        "KBV17",
        "KBV20"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "10 official passenger berth row(s) in กระบี่; longest 75 m, deepest 5.8 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "medium",
      "note": "Railay uses Krabi passenger-berth support from the Marine Department registry as an honest boat-dependence and transfer-support proxy.",
      "observation_id": "marine-department-pier-registry_railay_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 76,
      "unit": "score",
      "official_passenger_berth_count": 10,
      "official_passenger_provinces": [
        "กระบี่"
      ],
      "official_passenger_berth_codes": [
        "KBV04",
        "KBV08",
        "KBV13",
        "KBV14",
        "KBV15",
        "KBV16",
        "KBV17",
        "KBV20",
        "KBV21",
        "KBV23"
      ],
      "official_passenger_capacity_bands": [
        "0-20 ตันกรอส",
        "20-500 ตันกรอส"
      ],
      "official_passenger_max_length_m": 75,
      "official_passenger_average_length_m": 39.5,
      "official_passenger_max_depth_m": 5.8,
      "official_passenger_average_depth_m": 2.7,
      "supporting_station_names": [
        "KBV04",
        "KBV08",
        "KBV13",
        "KBV14",
        "KBV15",
        "KBV16",
        "KBV17",
        "KBV20"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "10 official passenger berth row(s) in กระบี่; longest 75 m, deepest 5.8 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "high",
      "note": "Rassada Pier gets official passenger-berth support from the Marine Department berth registry at the province level, complementing stop and transfer-structure signals.",
      "observation_id": "marine-department-pier-registry_rassada-pier_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 98,
      "unit": "score",
      "official_passenger_berth_count": 41,
      "official_passenger_provinces": [
        "ภูเก็ต"
      ],
      "official_passenger_berth_codes": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06",
        "HKT09",
        "HKT11",
        "HKT13",
        "HKT14"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 360,
      "official_passenger_average_length_m": 61.1,
      "official_passenger_max_depth_m": 10,
      "official_passenger_average_depth_m": 2.5,
      "supporting_station_names": [
        "CL001",
        "CL002",
        "CL003",
        "CL004",
        "HKT01",
        "HKT03",
        "HKT04",
        "HKT06"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "41 official passenger berth row(s) in ภูเก็ต; longest 360 m, deepest 10 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "ao-nang-pier",
      "entity_name": "Ao Nang Pier",
      "entity_type": "pier",
      "entity_path": "/entities/ao-nang-pier/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "high",
      "note": "Ao Nang Pier gets official Krabi passenger-berth support from the Marine Department registry as the practical coast-transfer anchor behind Ao Nang and Railay.",
      "observation_id": "marine-department-pier-registry_ao-nang-pier_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 90,
      "unit": "score",
      "official_passenger_berth_count": 10,
      "official_passenger_provinces": [
        "กระบี่"
      ],
      "official_passenger_berth_codes": [
        "KBV04",
        "KBV08",
        "KBV13",
        "KBV14",
        "KBV15",
        "KBV16",
        "KBV17",
        "KBV20",
        "KBV21",
        "KBV23"
      ],
      "official_passenger_capacity_bands": [
        "0-20 ตันกรอส",
        "20-500 ตันกรอส"
      ],
      "official_passenger_max_length_m": 75,
      "official_passenger_average_length_m": 39.5,
      "official_passenger_max_depth_m": 5.8,
      "official_passenger_average_depth_m": 2.7,
      "supporting_station_names": [
        "KBV04",
        "KBV08",
        "KBV13",
        "KBV14",
        "KBV15",
        "KBV16",
        "KBV17",
        "KBV20"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "10 official passenger berth row(s) in กระบี่; longest 75 m, deepest 5.8 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "high",
      "note": "Na Thon Pier gets official passenger-berth support from the Marine Department berth registry at the Surat Thani province level.",
      "observation_id": "marine-department-pier-registry_na-thon-pier_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 98,
      "unit": "score",
      "official_passenger_berth_count": 52,
      "official_passenger_provinces": [
        "สุราษฎร์ธานี"
      ],
      "official_passenger_berth_codes": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008",
        "KT009",
        "SND02",
        "SND03",
        "SNP01"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 120,
      "official_passenger_average_length_m": 34.8,
      "official_passenger_max_depth_m": 5.5,
      "official_passenger_average_depth_m": 2.9,
      "supporting_station_names": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "52 official passenger berth row(s) in สุราษฎร์ธานี; longest 120 m, deepest 5.5 m."
    },
    {
      "feed_id": "marine-department-pier-registry",
      "source_name": "Marine Department piers",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-05-15T11:11:30.342Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "marine_department_passenger_berth_registry_csv",
      "confidence": "high",
      "note": "Donsak Pier gets official passenger-berth support from the Marine Department berth registry at the Surat Thani province level.",
      "observation_id": "marine-department-pier-registry_donsak-pier_official_pier_support_score",
      "parameter": "official_pier_support_score",
      "metric_label": "Official pier support score",
      "value": 98,
      "unit": "score",
      "official_passenger_berth_count": 52,
      "official_passenger_provinces": [
        "สุราษฎร์ธานี"
      ],
      "official_passenger_berth_codes": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008",
        "KT009",
        "SND02",
        "SND03",
        "SNP01"
      ],
      "official_passenger_capacity_bands": [
        "20-500 ตันกรอส",
        "0-20 ตันกรอส",
        "500 ตันกรอส ขึ้นไป"
      ],
      "official_passenger_max_length_m": 120,
      "official_passenger_average_length_m": 34.8,
      "official_passenger_max_depth_m": 5.5,
      "official_passenger_average_depth_m": 2.9,
      "supporting_station_names": [
        "KT001",
        "KT002",
        "KT003",
        "KT004",
        "KT005",
        "KT006",
        "KT007",
        "KT008"
      ],
      "source_names": [
        "Marine Department piers"
      ],
      "comparison_hint": "52 official passenger berth row(s) in สุราษฎร์ธานี; longest 120 m, deepest 5.5 m."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium-high",
      "note": "Phuket uses the public Marine Department berth-status surface as operational berth-movement evidence behind coastal transfer confidence. This is not a live ferry schedule or seat feed.",
      "observation_id": "marine-department-berth-status_phuket_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 82,
      "unit": "score",
      "matching_public_port_count": 4,
      "matching_public_port_names": [
        "Patong Beach",
        "Phi Phi Island",
        "Phuket Port",
        "Phuket port (Outside the harbor area)"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Patong Beach",
        "Phi Phi Island",
        "Phuket Port",
        "Phuket port (Outside the harbor area)"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "4 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium-high",
      "note": "Krabi uses the public Marine Department berth-status surface as operational berth-movement evidence behind coastal transfer confidence. This is not a live ferry schedule or seat feed.",
      "observation_id": "marine-department-berth-status_krabi_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 82,
      "unit": "score",
      "matching_public_port_count": 3,
      "matching_public_port_names": [
        "Koh Lanta",
        "KRABI",
        "Phi Phi Island"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Koh Lanta",
        "KRABI",
        "Phi Phi Island"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "3 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium-high",
      "note": "Koh Samui uses the public Marine Department berth-status surface as Gulf berth-movement evidence behind ferry-transfer confidence. This is not a live ferry schedule or seat feed.",
      "observation_id": "marine-department-berth-status_koh-samui_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 66,
      "unit": "score",
      "matching_public_port_count": 1,
      "matching_public_port_names": [
        "Koh Samui"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Koh Samui"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "1 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium-high",
      "note": "Koh Phangan uses the public Marine Department berth-status surface as Gulf berth-movement evidence behind ferry-transfer confidence. This is not a live ferry schedule or seat feed.",
      "observation_id": "marine-department-berth-status_koh-phangan_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 66,
      "unit": "score",
      "matching_public_port_count": 1,
      "matching_public_port_names": [
        "Koh Pha-Ngan"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Koh Pha-Ngan"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "1 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the public Marine Department berth-status surface as harbor-movement evidence behind coast-transfer confidence.",
      "observation_id": "marine-department-berth-status_pattaya-chonburi_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 66,
      "unit": "score",
      "matching_public_port_count": 1,
      "matching_public_port_names": [
        "PATTAYA"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "PATTAYA"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "1 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium",
      "note": "Patong uses the public Marine Department berth-status surface as beach-harbor movement evidence behind boat-day and transfer confidence.",
      "observation_id": "marine-department-berth-status_patong_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 62,
      "unit": "score",
      "matching_public_port_count": 1,
      "matching_public_port_names": [
        "Patong Beach"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Patong Beach"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "1 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium",
      "note": "Rawai / Nai Harn uses nearby public berth-movement evidence from the Marine Department surface behind south-Phuket coast planning.",
      "observation_id": "marine-department-berth-status_rawai-nai-harn_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 78,
      "unit": "score",
      "matching_public_port_count": 3,
      "matching_public_port_names": [
        "Patong Beach",
        "Phuket Port",
        "Phuket port (Outside the harbor area)"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Patong Beach",
        "Phuket Port",
        "Phuket port (Outside the harbor area)"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "3 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium",
      "note": "Bophut / Fisherman's Village uses nearby public berth-movement evidence from the Marine Department surface behind Gulf transfer confidence.",
      "observation_id": "marine-department-berth-status_bophut-fishermans-village_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 62,
      "unit": "score",
      "matching_public_port_count": 1,
      "matching_public_port_names": [
        "Koh Samui"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Koh Samui"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "1 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium",
      "note": "Chaweng uses nearby public berth-movement evidence from the Marine Department surface behind Gulf transfer confidence.",
      "observation_id": "marine-department-berth-status_chaweng_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 62,
      "unit": "score",
      "matching_public_port_count": 1,
      "matching_public_port_names": [
        "Koh Samui"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Koh Samui"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "1 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium",
      "note": "Lamai uses nearby public berth-movement evidence from the Marine Department surface behind Gulf transfer confidence.",
      "observation_id": "marine-department-berth-status_lamai_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 62,
      "unit": "score",
      "matching_public_port_count": 1,
      "matching_public_port_names": [
        "Koh Samui"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Koh Samui"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "1 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium-high",
      "note": "Ao Nang uses nearby public berth-movement evidence from the Marine Department surface behind boat-day and transfer confidence.",
      "observation_id": "marine-department-berth-status_ao-nang_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 70,
      "unit": "score",
      "matching_public_port_count": 2,
      "matching_public_port_names": [
        "KRABI",
        "Phi Phi Island"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "KRABI",
        "Phi Phi Island"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "2 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "marine_department_public_berth_status_html",
      "confidence": "medium",
      "note": "Railay uses nearby public berth-movement evidence from the Marine Department surface behind its boat-dependent access pattern.",
      "observation_id": "marine-department-berth-status_railay_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 70,
      "unit": "score",
      "matching_public_port_count": 2,
      "matching_public_port_names": [
        "KRABI",
        "Phi Phi Island"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "KRABI",
        "Phi Phi Island"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "2 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "marine_department_public_berth_status_html",
      "confidence": "high",
      "note": "Rassada Pier uses the public Marine Department berth-status surface directly as berth-movement evidence. This is not a live ferry schedule, queue, closure, or seat feed.",
      "observation_id": "marine-department-berth-status_rassada-pier_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 86,
      "unit": "score",
      "matching_public_port_count": 3,
      "matching_public_port_names": [
        "Phi Phi Island",
        "Phuket Port",
        "Phuket port (Outside the harbor area)"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Phi Phi Island",
        "Phuket Port",
        "Phuket port (Outside the harbor area)"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "3 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "ao-nang-pier",
      "entity_name": "Ao Nang Pier",
      "entity_type": "pier",
      "entity_path": "/entities/ao-nang-pier/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "marine_department_public_berth_status_html",
      "confidence": "high",
      "note": "Ao Nang Pier uses the public Marine Department berth-status surface directly as berth-movement evidence. This is not a live ferry schedule, queue, closure, or seat feed.",
      "observation_id": "marine-department-berth-status_ao-nang-pier_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 78,
      "unit": "score",
      "matching_public_port_count": 2,
      "matching_public_port_names": [
        "KRABI",
        "Phi Phi Island"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "KRABI",
        "Phi Phi Island"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "2 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "marine_department_public_berth_status_html",
      "confidence": "high",
      "note": "Na Thon Pier uses the public Marine Department berth-status surface directly as berth-movement evidence. This is not a live ferry schedule, queue, closure, or seat feed.",
      "observation_id": "marine-department-berth-status_na-thon-pier_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 70,
      "unit": "score",
      "matching_public_port_count": 1,
      "matching_public_port_names": [
        "Koh Samui"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Koh Samui"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "1 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "marine-department-berth-status",
      "source_name": "Marine Department Berth Status",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "marine_department_public_berth_status_html",
      "confidence": "high",
      "note": "Donsak Pier uses the public Marine Department berth-status surface directly as berth-movement evidence for mainland-island transfer support. This is not a live ferry schedule, queue, closure, or seat feed.",
      "observation_id": "marine-department-berth-status_donsak-pier_official_berth_status_surface_score",
      "parameter": "official_berth_status_surface_score",
      "metric_label": "Official berth-status support score",
      "value": 86,
      "unit": "score",
      "matching_public_port_count": 3,
      "matching_public_port_names": [
        "Khanom",
        "Koh Pha-Ngan",
        "Koh Samui"
      ],
      "visible_ship_visit_count": 350,
      "visible_arrival_count": 274,
      "visible_departure_count": 76,
      "supporting_station_names": [
        "Khanom",
        "Koh Pha-Ngan",
        "Koh Samui"
      ],
      "source_names": [
        "Marine Department berth status"
      ],
      "comparison_hint": "3 public tracked port option(s) match this coastal scope, with 350 visible ship-visit row(s) currently rendered on the public berth-status surface."
    },
    {
      "feed_id": "thai-smile-group-branch-locator",
      "source_name": "Thai Smile Group branch and depot locator",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thai_smile_group_locator_json",
      "confidence": "medium-high",
      "note": "Public Thai Smile Group branch and depot coverage confirms a meaningful urban bus operator footprint across Bangkok and its nearby metro support zones.",
      "observation_id": "thai-smile-group-branch-locator_bangkok_urban_bus_operator_support_score",
      "parameter": "urban_bus_operator_support_score",
      "metric_label": "Urban bus-operator support score",
      "value": 88,
      "unit": "score",
      "operator_location_match_count": 18,
      "operator_location_unique_count": 18,
      "operator_location_names": [
        "สำนักงานใหญ่",
        "อู่ตลิ่งชัน",
        "อู่ท่าอิฐ",
        "อู่บึงกุ่ม",
        "อู่ปากน้ำ",
        "อู่ปากเกร็ด",
        "อู่พระประแดง",
        "อู่พรานนก",
        "อู่พุทธบูชา",
        "อู่พุทธมณฑลสาย 2"
      ],
      "operator_location_ids": [
        "28",
        "39",
        "43",
        "40",
        "48",
        "46",
        "31",
        "32",
        "50",
        "36"
      ],
      "operator_cities": [
        "สำเหร่",
        "กรุงเทพมหานคร",
        "นนทบุรี",
        "สมุทรปราการ",
        "นครปฐม"
      ],
      "supporting_station_names": [
        "สำนักงานใหญ่",
        "อู่ตลิ่งชัน",
        "อู่ท่าอิฐ",
        "อู่บึงกุ่ม",
        "อู่ปากน้ำ",
        "อู่ปากเกร็ด",
        "อู่พระประแดง",
        "อู่พรานนก"
      ],
      "source_names": [
        "Thai Smile Group branch and depot locator"
      ],
      "comparison_hint": "18 nearby operator branch or depot match(es): สำนักงานใหญ่, อู่ตลิ่งชัน, อู่ท่าอิฐ, อู่บึงกุ่ม, อู่ปากน้ำ."
    },
    {
      "feed_id": "thai-smile-group-branch-locator",
      "source_name": "Thai Smile Group branch and depot locator",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thai_smile_group_locator_json",
      "confidence": "medium",
      "note": "Sukhumvit gets urban bus-operator support from nearby Thai Smile Group branches and depots in east and central Bangkok.",
      "observation_id": "thai-smile-group-branch-locator_sukhumvit_urban_bus_operator_support_score",
      "parameter": "urban_bus_operator_support_score",
      "metric_label": "Urban bus-operator support score",
      "value": 62,
      "unit": "score",
      "operator_location_match_count": 2,
      "operator_location_unique_count": 2,
      "operator_location_names": [
        "สำนักงานใหญ่",
        "อู่พระประแดง"
      ],
      "operator_location_ids": [
        "28",
        "31"
      ],
      "operator_cities": [
        "สำเหร่",
        "กรุงเทพมหานคร"
      ],
      "supporting_station_names": [
        "สำนักงานใหญ่",
        "อู่พระประแดง"
      ],
      "source_names": [
        "Thai Smile Group branch and depot locator"
      ],
      "comparison_hint": "2 nearby operator branch or depot match(es): สำนักงานใหญ่, อู่พระประแดง."
    },
    {
      "feed_id": "thai-smile-group-branch-locator",
      "source_name": "Thai Smile Group branch and depot locator",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thai_smile_group_locator_json",
      "confidence": "medium",
      "note": "Silom / Sathorn gets urban bus-operator support from nearby Thai Smile Group branches and depots across central Bangkok.",
      "observation_id": "thai-smile-group-branch-locator_silom-sathorn_urban_bus_operator_support_score",
      "parameter": "urban_bus_operator_support_score",
      "metric_label": "Urban bus-operator support score",
      "value": 62,
      "unit": "score",
      "operator_location_match_count": 2,
      "operator_location_unique_count": 2,
      "operator_location_names": [
        "สำนักงานใหญ่",
        "อู่พระประแดง"
      ],
      "operator_location_ids": [
        "28",
        "31"
      ],
      "operator_cities": [
        "สำเหร่",
        "กรุงเทพมหานคร"
      ],
      "supporting_station_names": [
        "สำนักงานใหญ่",
        "อู่พระประแดง"
      ],
      "source_names": [
        "Thai Smile Group branch and depot locator"
      ],
      "comparison_hint": "2 nearby operator branch or depot match(es): สำนักงานใหญ่, อู่พระประแดง."
    },
    {
      "feed_id": "thai-smile-group-branch-locator",
      "source_name": "Thai Smile Group branch and depot locator",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thai_smile_group_locator_json",
      "confidence": "medium",
      "note": "Riverside / Old Town gets urban bus-operator support from nearby operator offices and depots, but it still depends more on river, rail, and taxi last-mile logic than core bus districts do.",
      "observation_id": "thai-smile-group-branch-locator_riverside-old-town_urban_bus_operator_support_score",
      "parameter": "urban_bus_operator_support_score",
      "metric_label": "Urban bus-operator support score",
      "value": 70,
      "unit": "score",
      "operator_location_match_count": 4,
      "operator_location_unique_count": 4,
      "operator_location_names": [
        "สำนักงานใหญ่",
        "อู่พระประแดง",
        "อู่พรานนก",
        "อู่สายใต้ใหม่"
      ],
      "operator_location_ids": [
        "28",
        "31",
        "32",
        "51"
      ],
      "operator_cities": [
        "สำเหร่",
        "กรุงเทพมหานคร"
      ],
      "supporting_station_names": [
        "สำนักงานใหญ่",
        "อู่พระประแดง",
        "อู่พรานนก",
        "อู่สายใต้ใหม่"
      ],
      "source_names": [
        "Thai Smile Group branch and depot locator"
      ],
      "comparison_hint": "4 nearby operator branch or depot match(es): สำนักงานใหญ่, อู่พระประแดง, อู่พรานนก, อู่สายใต้ใหม่."
    },
    {
      "feed_id": "thai-smile-group-branch-locator",
      "source_name": "Thai Smile Group branch and depot locator",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "thai_smile_group_locator_json",
      "confidence": "medium-high",
      "note": "Mochit 2 gets urban bus-operator support from nearby Thai Smile Group depots and Bangkok metro footprint, reinforcing overland recovery logic.",
      "observation_id": "thai-smile-group-branch-locator_bangkok-mochit-2_urban_bus_operator_support_score",
      "parameter": "urban_bus_operator_support_score",
      "metric_label": "Urban bus-operator support score",
      "value": 60,
      "unit": "score",
      "operator_location_match_count": 1,
      "operator_location_unique_count": 1,
      "operator_location_names": [
        "อู่เลี่ยงเมืองนนท์"
      ],
      "operator_location_ids": [
        "49"
      ],
      "operator_cities": [
        "นนทบุรี"
      ],
      "supporting_station_names": [
        "อู่เลี่ยงเมืองนนท์"
      ],
      "source_names": [
        "Thai Smile Group branch and depot locator"
      ],
      "comparison_hint": "1 nearby operator branch or depot match(es): อู่เลี่ยงเมืองนนท์."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "exat_support_surface_snapshot",
      "confidence": "high",
      "note": "Bangkok gets DOH camera-region support and official EXAT expressway support context behind road-friction decisions. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_bangkok_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok urban transfer spine",
        "Bangkok -> Pattaya / Eastern Seaboard",
        "Bangkok -> Hua Hin / southbound coast",
        "Bangkok -> Ayutthaya / central northbound",
        "Bangkok -> Kanchanaburi / westbound nature loop"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium-high",
      "note": "Pattaya / Chonburi gets eastern DOH camera support plus Bangkok-linked EXAT expressway context behind road transfers. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_pattaya-chonburi_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok -> Pattaya / Eastern Seaboard"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium",
      "note": "Hua Hin gets central DOH camera support plus Bangkok-linked EXAT expressway context behind road transfers. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_hua-hin_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok -> Hua Hin / southbound coast"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "exat_support_surface_snapshot",
      "confidence": "high",
      "note": "Ayutthaya gets central DOH camera support plus Bangkok-linked EXAT expressway context behind road transfers. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_ayutthaya_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok -> Ayutthaya / central northbound"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium-high",
      "note": "Kanchanaburi gets central DOH camera support plus Bangkok-linked EXAT expressway context behind road transfers. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_kanchanaburi_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok -> Kanchanaburi / westbound nature loop"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium-high",
      "note": "Sukhumvit inherits Bangkok DOH and EXAT road-support context for transfer and road-friction decisions. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_sukhumvit_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok urban transfer spine"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium-high",
      "note": "Silom / Sathorn inherits Bangkok DOH and EXAT road-support context for transfer and road-friction decisions. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_silom-sathorn_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok urban transfer spine"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium",
      "note": "Riverside / Old Town inherits Bangkok DOH and EXAT road-support context for transfer and road-friction decisions. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_riverside-old-town_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok urban transfer spine"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium",
      "note": "Ari inherits Bangkok DOH and EXAT road-support context for transfer and road-friction decisions. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_ari_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok urban transfer spine"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium-high",
      "note": "Asok interchange inherits Bangkok DOH and EXAT road-support context for transfer and road-friction decisions. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_bts-asok_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok urban transfer spine"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "exat_support_surface_snapshot",
      "confidence": "high",
      "note": "Mo Chit 2 inherits Bangkok DOH and EXAT road-support context for overland transfer and road-friction decisions. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_bangkok-mochit-2_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok urban transfer spine",
        "Bangkok -> Ayutthaya / central northbound",
        "Bangkok -> Kanchanaburi / westbound nature loop"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium-high",
      "note": "Suvarnabhumi inherits Bangkok DOH and EXAT road-support context for airport-road transfer decisions. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_suvarnabhumi-airport_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok urban transfer spine",
        "Bangkok -> Pattaya / Eastern Seaboard"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "exat-expressway-support",
      "source_name": "EXAT Traffic Surface",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:11:30.132Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "exat_support_surface_snapshot",
      "confidence": "medium-high",
      "note": "Don Mueang inherits Bangkok DOH and EXAT road-support context for airport-road transfer decisions. EXAT adds expressway, toll, maintenance, and motorist-support context for Bangkok-linked road moves.",
      "observation_id": "exat-expressway-support_don-mueang-airport_exat_expressway_support_score",
      "parameter": "exat_expressway_support_score",
      "metric_label": "EXAT expressway support score",
      "value": 88,
      "unit": "score",
      "road_corridors": [
        "Bangkok urban transfer spine",
        "Bangkok -> Ayutthaya / central northbound"
      ],
      "exat_active_page_count": 5,
      "exat_feature_marker_count": 15,
      "exat_page_keys": [
        "map",
        "toll_rates",
        "maintenance",
        "motorists",
        "call_center"
      ],
      "source_names": [
        "EXAT Traffic Surface",
        "EXAT Data Catalog"
      ],
      "comparison_hint": "5 official EXAT support page(s) currently expose 15 matched expressway, toll, maintenance, or motorist-support marker(s)."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "hss_spa_support_snapshot",
      "confidence": "high",
      "note": "Bangkok uses public HSS license-lookup and spa-premium surfaces as wellness-license confidence behind spa and massage planning.",
      "observation_id": "hss-spa-license-support_bangkok_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 96,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Chiang Mai uses public HSS wellness-license support as regional spa and massage confidence, not live booking or treatment quality truth.",
      "observation_id": "hss-spa-license-support_chiang-mai_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 84,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Phuket uses public HSS wellness-license support as tourist-market spa and massage confidence, not live booking truth.",
      "observation_id": "hss-spa-license-support_phuket_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 82,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Krabi uses public HSS wellness-license support as resort and recovery-day spa context.",
      "observation_id": "hss-spa-license-support_krabi_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 76,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Koh Samui uses public HSS wellness-license support as resort and spa-planning context.",
      "observation_id": "hss-spa-license-support_koh-samui_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 86,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses public HSS wellness-license support as tourist-market spa and massage confidence.",
      "observation_id": "hss-spa-license-support_pattaya-chonburi_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 80,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Hua Hin uses public HSS wellness-license support as resort spa and massage confidence.",
      "observation_id": "hss-spa-license-support_hua-hin_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 78,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium-high",
      "note": "Sukhumvit inherits Bangkok HSS wellness-license support as a hotel-base spa and massage confidence layer.",
      "observation_id": "hss-spa-license-support_sukhumvit_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 92,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium-high",
      "note": "Silom / Sathorn inherits Bangkok HSS wellness-license support as a hotel-base spa and massage confidence layer.",
      "observation_id": "hss-spa-license-support_silom-sathorn_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 90,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Nimman inherits Chiang Mai HSS wellness-license support as hotel-base spa and massage confidence.",
      "observation_id": "hss-spa-license-support_nimman_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 82,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Kata / Karon inherits Phuket HSS wellness-license support as spa and massage confidence.",
      "observation_id": "hss-spa-license-support_kata-karon_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 80,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Patong inherits Phuket HSS wellness-license support as tourist-market spa and massage confidence.",
      "observation_id": "hss-spa-license-support_patong_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 78,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Rawai / Nai Harn inherits Phuket HSS wellness-license support as spa and massage confidence.",
      "observation_id": "hss-spa-license-support_rawai-nai-harn_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 78,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Bophut / Fisherman's Village inherits Samui HSS wellness-license support as resort spa confidence.",
      "observation_id": "hss-spa-license-support_bophut-fishermans-village_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 84,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Chaweng inherits Samui HSS wellness-license support as resort spa confidence.",
      "observation_id": "hss-spa-license-support_chaweng_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 82,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Lamai inherits Samui HSS wellness-license support as resort spa confidence.",
      "observation_id": "hss-spa-license-support_lamai_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 80,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "hss-spa-license-support",
      "source_name": "HSS Health Establishment Directory",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-05-15T11:11:35.580Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "hss_spa_support_snapshot",
      "confidence": "medium",
      "note": "Ao Nang inherits Krabi HSS wellness-license support as resort spa and massage confidence.",
      "observation_id": "hss-spa-license-support_ao-nang_spa_license_support_score",
      "parameter": "spa_license_support_score",
      "metric_label": "Spa license support score",
      "value": 78,
      "unit": "score",
      "hss_active_page_count": 2,
      "hss_feature_marker_count": 4,
      "hss_page_keys": [
        "directory",
        "premium"
      ],
      "source_names": [
        "HSS Health Establishment Directory",
        "HSS Spa Premium"
      ],
      "comparison_hint": "2 public HSS support page(s) currently expose 4 spa, massage, or health-establishment marker(s) behind this wellness-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "high",
      "note": "Bangkok uses public MOPH facility surfaces as strong medical-fallback context for travel decisions.",
      "observation_id": "moph-health-facility-support_bangkok_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 96,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "high",
      "note": "Chiang Mai uses public MOPH facility surfaces as strong regional medical-fallback context.",
      "observation_id": "moph-health-facility-support_chiang-mai_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 96,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "high",
      "note": "Phuket uses public MOPH facility surfaces as strong island-access medical-fallback context.",
      "observation_id": "moph-health-facility-support_phuket_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 96,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Krabi uses public MOPH facility surfaces as moderate medical-fallback context.",
      "observation_id": "moph-health-facility-support_krabi_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 86,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Koh Samui uses public MOPH facility surfaces as moderate medical-fallback context.",
      "observation_id": "moph-health-facility-support_koh-samui_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 84,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "low",
      "note": "Koh Phangan uses public MOPH facility surfaces only as fallback context behind a more ferry-dependent medical access chain.",
      "observation_id": "moph-health-facility-support_koh-phangan_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 70,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium-high",
      "note": "Pattaya / Chonburi uses public MOPH facility surfaces as strong medical-fallback context.",
      "observation_id": "moph-health-facility-support_pattaya-chonburi_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 94,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Hua Hin uses public MOPH facility surfaces as moderate medical-fallback context.",
      "observation_id": "moph-health-facility-support_hua-hin_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 82,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "low",
      "note": "Pai uses public MOPH facility surfaces only as cautious fallback context because mountain access still dominates the real burden.",
      "observation_id": "moph-health-facility-support_pai_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 64,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Ayutthaya uses public MOPH facility surfaces as moderate medical-fallback context.",
      "observation_id": "moph-health-facility-support_ayutthaya_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 82,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Kanchanaburi uses public MOPH facility surfaces as moderate medical-fallback context.",
      "observation_id": "moph-health-facility-support_kanchanaburi_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 76,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Isaan uses public MOPH facility surfaces as broad regional fallback context.",
      "observation_id": "moph-health-facility-support_isaan_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 78,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium-high",
      "note": "Sukhumvit inherits Bangkok public MOPH medical-fallback support for stay and route decisions.",
      "observation_id": "moph-health-facility-support_sukhumvit_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 96,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium-high",
      "note": "Silom / Sathorn inherits Bangkok public MOPH medical-fallback support for stay and route decisions.",
      "observation_id": "moph-health-facility-support_silom-sathorn_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 96,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Riverside / Old Town inherits Bangkok public MOPH medical-fallback support for stay and route decisions.",
      "observation_id": "moph-health-facility-support_riverside-old-town_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 96,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Ari inherits Bangkok public MOPH medical-fallback support for stay and route decisions.",
      "observation_id": "moph-health-facility-support_ari_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 96,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Suvarnabhumi airport inherits Bangkok public MOPH medical-fallback support for route decisions.",
      "observation_id": "moph-health-facility-support_suvarnabhumi-airport_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 96,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "moph-health-facility-support",
      "source_name": "MOPH Health Facility Datasets",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:11:37.864Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "moph_health_facility_support_snapshot",
      "confidence": "medium",
      "note": "Don Mueang airport inherits Bangkok public MOPH medical-fallback support for route decisions.",
      "observation_id": "moph-health-facility-support_don-mueang-airport_medical_fallback_support_score",
      "parameter": "medical_fallback_support_score",
      "metric_label": "Medical fallback support score",
      "value": 96,
      "unit": "score",
      "moph_active_page_count": 2,
      "moph_feature_marker_count": 4,
      "moph_dataset_link_count": 61,
      "moph_page_keys": [
        "hospital_dataset",
        "hs4_directory"
      ],
      "source_names": [
        "MOPH Health Facility Datasets"
      ],
      "comparison_hint": "2 public MOPH / HS4 support page(s) currently expose 4 hospital or facility marker(s) and 61 dataset/resource marker(s) behind this fallback-planning anchor."
    },
    {
      "feed_id": "dnp-park-tourism-support",
      "source_name": "DNP Tourism Datasets",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:11:43.688Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dnp_park_tourism_support_snapshot",
      "confidence": "medium",
      "note": "Chiang Mai uses DNP tourism datasets as national-park and nature-access planning context, not live same-day closure truth.",
      "observation_id": "dnp-park-tourism-support_chiang-mai_park_access_context_score",
      "parameter": "park_access_context_score",
      "metric_label": "Park access context score",
      "value": 90,
      "unit": "score",
      "dnp_active_page_count": 1,
      "dnp_feature_marker_count": 2,
      "dnp_dataset_link_count": 21,
      "dnp_page_keys": [
        "dnp_org",
        "dnp_root"
      ],
      "source_names": [
        "DNP Tourism Datasets"
      ],
      "comparison_hint": "1 public DNP support page(s) currently expose 2 national-park or tourism marker(s) and 21 dataset marker(s) behind this nature-planning anchor."
    },
    {
      "feed_id": "dnp-park-tourism-support",
      "source_name": "DNP Tourism Datasets",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:11:43.688Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dnp_park_tourism_support_snapshot",
      "confidence": "medium",
      "note": "Phuket uses DNP tourism datasets as marine-park and island-access planning context, not live same-day closure truth.",
      "observation_id": "dnp-park-tourism-support_phuket_park_access_context_score",
      "parameter": "park_access_context_score",
      "metric_label": "Park access context score",
      "value": 88,
      "unit": "score",
      "dnp_active_page_count": 1,
      "dnp_feature_marker_count": 2,
      "dnp_dataset_link_count": 21,
      "dnp_page_keys": [
        "dnp_org",
        "dnp_root"
      ],
      "source_names": [
        "DNP Tourism Datasets"
      ],
      "comparison_hint": "1 public DNP support page(s) currently expose 2 national-park or tourism marker(s) and 21 dataset marker(s) behind this nature-planning anchor."
    },
    {
      "feed_id": "dnp-park-tourism-support",
      "source_name": "DNP Tourism Datasets",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:11:43.688Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dnp_park_tourism_support_snapshot",
      "confidence": "medium-high",
      "note": "Krabi uses DNP tourism datasets as strong park, island, and protected-area planning context, not live same-day closure truth.",
      "observation_id": "dnp-park-tourism-support_krabi_park_access_context_score",
      "parameter": "park_access_context_score",
      "metric_label": "Park access context score",
      "value": 94,
      "unit": "score",
      "dnp_active_page_count": 1,
      "dnp_feature_marker_count": 2,
      "dnp_dataset_link_count": 21,
      "dnp_page_keys": [
        "dnp_org",
        "dnp_root"
      ],
      "source_names": [
        "DNP Tourism Datasets"
      ],
      "comparison_hint": "1 public DNP support page(s) currently expose 2 national-park or tourism marker(s) and 21 dataset marker(s) behind this nature-planning anchor."
    },
    {
      "feed_id": "dnp-park-tourism-support",
      "source_name": "DNP Tourism Datasets",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-05-15T11:11:43.688Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dnp_park_tourism_support_snapshot",
      "confidence": "medium",
      "note": "Koh Samui uses DNP tourism datasets as island and marine-park planning context, not live same-day closure truth.",
      "observation_id": "dnp-park-tourism-support_koh-samui_park_access_context_score",
      "parameter": "park_access_context_score",
      "metric_label": "Park access context score",
      "value": 86,
      "unit": "score",
      "dnp_active_page_count": 1,
      "dnp_feature_marker_count": 2,
      "dnp_dataset_link_count": 21,
      "dnp_page_keys": [
        "dnp_org",
        "dnp_root"
      ],
      "source_names": [
        "DNP Tourism Datasets"
      ],
      "comparison_hint": "1 public DNP support page(s) currently expose 2 national-park or tourism marker(s) and 21 dataset marker(s) behind this nature-planning anchor."
    },
    {
      "feed_id": "dnp-park-tourism-support",
      "source_name": "DNP Tourism Datasets",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-05-15T11:11:43.688Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dnp_park_tourism_support_snapshot",
      "confidence": "medium",
      "note": "Koh Phangan uses DNP tourism datasets as island protected-area planning context, not live same-day closure truth.",
      "observation_id": "dnp-park-tourism-support_koh-phangan_park_access_context_score",
      "parameter": "park_access_context_score",
      "metric_label": "Park access context score",
      "value": 82,
      "unit": "score",
      "dnp_active_page_count": 1,
      "dnp_feature_marker_count": 2,
      "dnp_dataset_link_count": 21,
      "dnp_page_keys": [
        "dnp_org",
        "dnp_root"
      ],
      "source_names": [
        "DNP Tourism Datasets"
      ],
      "comparison_hint": "1 public DNP support page(s) currently expose 2 national-park or tourism marker(s) and 21 dataset marker(s) behind this nature-planning anchor."
    },
    {
      "feed_id": "dnp-park-tourism-support",
      "source_name": "DNP Tourism Datasets",
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "entity_path": "/entities/hua-hin/",
      "observed_at": "2026-05-15T11:11:43.688Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dnp_park_tourism_support_snapshot",
      "confidence": "medium",
      "note": "Hua Hin uses DNP tourism datasets as coastal-park planning context, not live same-day closure truth.",
      "observation_id": "dnp-park-tourism-support_hua-hin_park_access_context_score",
      "parameter": "park_access_context_score",
      "metric_label": "Park access context score",
      "value": 80,
      "unit": "score",
      "dnp_active_page_count": 1,
      "dnp_feature_marker_count": 2,
      "dnp_dataset_link_count": 21,
      "dnp_page_keys": [
        "dnp_org",
        "dnp_root"
      ],
      "source_names": [
        "DNP Tourism Datasets"
      ],
      "comparison_hint": "1 public DNP support page(s) currently expose 2 national-park or tourism marker(s) and 21 dataset marker(s) behind this nature-planning anchor."
    },
    {
      "feed_id": "dnp-park-tourism-support",
      "source_name": "DNP Tourism Datasets",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-05-15T11:11:43.688Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dnp_park_tourism_support_snapshot",
      "confidence": "medium",
      "note": "Pai uses DNP tourism datasets as mountain, cave, and park-access planning context, not live same-day closure truth.",
      "observation_id": "dnp-park-tourism-support_pai_park_access_context_score",
      "parameter": "park_access_context_score",
      "metric_label": "Park access context score",
      "value": 92,
      "unit": "score",
      "dnp_active_page_count": 1,
      "dnp_feature_marker_count": 2,
      "dnp_dataset_link_count": 21,
      "dnp_page_keys": [
        "dnp_org",
        "dnp_root"
      ],
      "source_names": [
        "DNP Tourism Datasets"
      ],
      "comparison_hint": "1 public DNP support page(s) currently expose 2 national-park or tourism marker(s) and 21 dataset marker(s) behind this nature-planning anchor."
    },
    {
      "feed_id": "dnp-park-tourism-support",
      "source_name": "DNP Tourism Datasets",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-05-15T11:11:43.688Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "dnp_park_tourism_support_snapshot",
      "confidence": "high",
      "note": "Kanchanaburi uses DNP tourism datasets as strong waterfall, cave, and park-access planning context, not live same-day closure truth.",
      "observation_id": "dnp-park-tourism-support_kanchanaburi_park_access_context_score",
      "parameter": "park_access_context_score",
      "metric_label": "Park access context score",
      "value": 96,
      "unit": "score",
      "dnp_active_page_count": 1,
      "dnp_feature_marker_count": 2,
      "dnp_dataset_link_count": 21,
      "dnp_page_keys": [
        "dnp_org",
        "dnp_root"
      ],
      "source_names": [
        "DNP Tourism Datasets"
      ],
      "comparison_hint": "1 public DNP support page(s) currently expose 2 national-park or tourism marker(s) and 21 dataset marker(s) behind this nature-planning anchor."
    },
    {
      "feed_id": "dnp-park-tourism-support",
      "source_name": "DNP Tourism Datasets",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-05-15T11:11:43.688Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "dnp_park_tourism_support_snapshot",
      "confidence": "medium",
      "note": "Isaan uses DNP tourism datasets as broad regional park and protected-area planning context, not live same-day closure truth.",
      "observation_id": "dnp-park-tourism-support_isaan_park_access_context_score",
      "parameter": "park_access_context_score",
      "metric_label": "Park access context score",
      "value": 84,
      "unit": "score",
      "dnp_active_page_count": 1,
      "dnp_feature_marker_count": 2,
      "dnp_dataset_link_count": 21,
      "dnp_page_keys": [
        "dnp_org",
        "dnp_root"
      ],
      "source_names": [
        "DNP Tourism Datasets"
      ],
      "comparison_hint": "1 public DNP support page(s) currently expose 2 national-park or tourism marker(s) and 21 dataset marker(s) behind this nature-planning anchor."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Bangkok uses the national Gold Traders Association quote as a direct Thai gold buying-context anchor, with Yaowarat as the strongest public comparison-shopping district.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Bangkok / Yaowarat",
      "observation_id": "gta-gold-reference-price_bangkok_gold_bar_965_buy_baht_weight",
      "parameter": "gold_bar_965_buy_baht_weight",
      "metric_label": "96.5% gold bar buy price",
      "value": 64400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar buy quote for Bangkok / Yaowarat. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Bangkok uses the national Gold Traders Association quote as a direct Thai gold buying-context anchor, with Yaowarat as the strongest public comparison-shopping district.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Bangkok / Yaowarat",
      "observation_id": "gta-gold-reference-price_bangkok_gold_bar_965_sell_baht_weight",
      "parameter": "gold_bar_965_sell_baht_weight",
      "metric_label": "96.5% gold bar sell price",
      "value": 64600,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar sell quote for Bangkok / Yaowarat. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Bangkok uses the national Gold Traders Association quote as a direct Thai gold buying-context anchor, with Yaowarat as the strongest public comparison-shopping district.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Bangkok / Yaowarat",
      "observation_id": "gta-gold-reference-price_bangkok_gold_ornament_965_base_baht_weight",
      "parameter": "gold_ornament_965_base_baht_weight",
      "metric_label": "96.5% ornament base price",
      "value": 63111.08,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "GTA ornament-side base or tax-base context. Local shop workmanship, spread, and buyback terms can still differ."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Bangkok uses the national Gold Traders Association quote as a direct Thai gold buying-context anchor, with Yaowarat as the strongest public comparison-shopping district.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Bangkok / Yaowarat",
      "observation_id": "gta-gold-reference-price_bangkok_gold_ornament_965_sell_baht_weight",
      "parameter": "gold_ornament_965_sell_baht_weight",
      "metric_label": "96.5% ornament sell price",
      "value": 65400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA ornament sell quote. Local workmanship or premium still changes the final shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Bangkok uses the national Gold Traders Association quote as a direct Thai gold buying-context anchor, with Yaowarat as the strongest public comparison-shopping district.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Bangkok / Yaowarat",
      "observation_id": "gta-gold-reference-price_bangkok_usd_thb_reference",
      "parameter": "usd_thb_reference",
      "metric_label": "USD / THB reference",
      "value": 33.37,
      "unit": "THB per USD",
      "comparison_hint": "FX context published alongside the GTA domestic quote. Use it as context, not as a separate local shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Bangkok uses the national Gold Traders Association quote as a direct Thai gold buying-context anchor, with Yaowarat as the strongest public comparison-shopping district.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Bangkok / Yaowarat",
      "observation_id": "gta-gold-reference-price_bangkok_gold_spot_reference",
      "parameter": "gold_spot_reference",
      "metric_label": "GTA spot reference",
      "value": 4088,
      "unit": "GTA reference value",
      "comparison_hint": "Secondary GTA reference field carried as published. Do not treat it as the primary Thai retail quote."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Bangkok uses the national Gold Traders Association quote as a direct Thai gold buying-context anchor, with Yaowarat as the strongest public comparison-shopping district.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Bangkok / Yaowarat",
      "observation_id": "gta-gold-reference-price_bangkok_gold_price_change_intraday",
      "parameter": "gold_price_change_intraday",
      "metric_label": "Intraday gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous GTA row during the current Thai market session."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Bangkok uses the national Gold Traders Association quote as a direct Thai gold buying-context anchor, with Yaowarat as the strongest public comparison-shopping district.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Bangkok / Yaowarat",
      "observation_id": "gta-gold-reference-price_bangkok_gold_price_change_prev_day",
      "parameter": "gold_price_change_prev_day",
      "metric_label": "Previous-day gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous trading day close or final row."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai uses the same national Gold Traders Association quote as Bangkok, but the city role is buying context rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai",
      "observation_id": "gta-gold-reference-price_chiang-mai_gold_bar_965_buy_baht_weight",
      "parameter": "gold_bar_965_buy_baht_weight",
      "metric_label": "96.5% gold bar buy price",
      "value": 64400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar buy quote for Chiang Mai. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai uses the same national Gold Traders Association quote as Bangkok, but the city role is buying context rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai",
      "observation_id": "gta-gold-reference-price_chiang-mai_gold_bar_965_sell_baht_weight",
      "parameter": "gold_bar_965_sell_baht_weight",
      "metric_label": "96.5% gold bar sell price",
      "value": 64600,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar sell quote for Chiang Mai. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai uses the same national Gold Traders Association quote as Bangkok, but the city role is buying context rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai",
      "observation_id": "gta-gold-reference-price_chiang-mai_gold_ornament_965_base_baht_weight",
      "parameter": "gold_ornament_965_base_baht_weight",
      "metric_label": "96.5% ornament base price",
      "value": 63111.08,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "GTA ornament-side base or tax-base context. Local shop workmanship, spread, and buyback terms can still differ."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai uses the same national Gold Traders Association quote as Bangkok, but the city role is buying context rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai",
      "observation_id": "gta-gold-reference-price_chiang-mai_gold_ornament_965_sell_baht_weight",
      "parameter": "gold_ornament_965_sell_baht_weight",
      "metric_label": "96.5% ornament sell price",
      "value": 65400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA ornament sell quote. Local workmanship or premium still changes the final shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai uses the same national Gold Traders Association quote as Bangkok, but the city role is buying context rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai",
      "observation_id": "gta-gold-reference-price_chiang-mai_usd_thb_reference",
      "parameter": "usd_thb_reference",
      "metric_label": "USD / THB reference",
      "value": 33.37,
      "unit": "THB per USD",
      "comparison_hint": "FX context published alongside the GTA domestic quote. Use it as context, not as a separate local shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai uses the same national Gold Traders Association quote as Bangkok, but the city role is buying context rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai",
      "observation_id": "gta-gold-reference-price_chiang-mai_gold_spot_reference",
      "parameter": "gold_spot_reference",
      "metric_label": "GTA spot reference",
      "value": 4088,
      "unit": "GTA reference value",
      "comparison_hint": "Secondary GTA reference field carried as published. Do not treat it as the primary Thai retail quote."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai uses the same national Gold Traders Association quote as Bangkok, but the city role is buying context rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai",
      "observation_id": "gta-gold-reference-price_chiang-mai_gold_price_change_intraday",
      "parameter": "gold_price_change_intraday",
      "metric_label": "Intraday gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous GTA row during the current Thai market session."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai uses the same national Gold Traders Association quote as Bangkok, but the city role is buying context rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai",
      "observation_id": "gta-gold-reference-price_chiang-mai_gold_price_change_prev_day",
      "parameter": "gold_price_change_prev_day",
      "metric_label": "Previous-day gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous trading day close or final row."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official provincial gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket",
      "observation_id": "gta-gold-reference-price_phuket_gold_bar_965_buy_baht_weight",
      "parameter": "gold_bar_965_buy_baht_weight",
      "metric_label": "96.5% gold bar buy price",
      "value": 64400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar buy quote for Phuket. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official provincial gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket",
      "observation_id": "gta-gold-reference-price_phuket_gold_bar_965_sell_baht_weight",
      "parameter": "gold_bar_965_sell_baht_weight",
      "metric_label": "96.5% gold bar sell price",
      "value": 64600,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar sell quote for Phuket. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official provincial gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket",
      "observation_id": "gta-gold-reference-price_phuket_gold_ornament_965_base_baht_weight",
      "parameter": "gold_ornament_965_base_baht_weight",
      "metric_label": "96.5% ornament base price",
      "value": 63111.08,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "GTA ornament-side base or tax-base context. Local shop workmanship, spread, and buyback terms can still differ."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official provincial gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket",
      "observation_id": "gta-gold-reference-price_phuket_gold_ornament_965_sell_baht_weight",
      "parameter": "gold_ornament_965_sell_baht_weight",
      "metric_label": "96.5% ornament sell price",
      "value": 65400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA ornament sell quote. Local workmanship or premium still changes the final shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official provincial gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket",
      "observation_id": "gta-gold-reference-price_phuket_usd_thb_reference",
      "parameter": "usd_thb_reference",
      "metric_label": "USD / THB reference",
      "value": 33.37,
      "unit": "THB per USD",
      "comparison_hint": "FX context published alongside the GTA domestic quote. Use it as context, not as a separate local shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official provincial gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket",
      "observation_id": "gta-gold-reference-price_phuket_gold_spot_reference",
      "parameter": "gold_spot_reference",
      "metric_label": "GTA spot reference",
      "value": 4088,
      "unit": "GTA reference value",
      "comparison_hint": "Secondary GTA reference field carried as published. Do not treat it as the primary Thai retail quote."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official provincial gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket",
      "observation_id": "gta-gold-reference-price_phuket_gold_price_change_intraday",
      "parameter": "gold_price_change_intraday",
      "metric_label": "Intraday gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous GTA row during the current Thai market session."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official provincial gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket",
      "observation_id": "gta-gold-reference-price_phuket_gold_price_change_prev_day",
      "parameter": "gold_price_change_prev_day",
      "metric_label": "Previous-day gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous trading day close or final row."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official local gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi",
      "observation_id": "gta-gold-reference-price_pattaya-chonburi_gold_bar_965_buy_baht_weight",
      "parameter": "gold_bar_965_buy_baht_weight",
      "metric_label": "96.5% gold bar buy price",
      "value": 64400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar buy quote for Pattaya / Chonburi. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official local gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi",
      "observation_id": "gta-gold-reference-price_pattaya-chonburi_gold_bar_965_sell_baht_weight",
      "parameter": "gold_bar_965_sell_baht_weight",
      "metric_label": "96.5% gold bar sell price",
      "value": 64600,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar sell quote for Pattaya / Chonburi. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official local gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi",
      "observation_id": "gta-gold-reference-price_pattaya-chonburi_gold_ornament_965_base_baht_weight",
      "parameter": "gold_ornament_965_base_baht_weight",
      "metric_label": "96.5% ornament base price",
      "value": 63111.08,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "GTA ornament-side base or tax-base context. Local shop workmanship, spread, and buyback terms can still differ."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official local gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi",
      "observation_id": "gta-gold-reference-price_pattaya-chonburi_gold_ornament_965_sell_baht_weight",
      "parameter": "gold_ornament_965_sell_baht_weight",
      "metric_label": "96.5% ornament sell price",
      "value": 65400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA ornament sell quote. Local workmanship or premium still changes the final shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official local gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi",
      "observation_id": "gta-gold-reference-price_pattaya-chonburi_usd_thb_reference",
      "parameter": "usd_thb_reference",
      "metric_label": "USD / THB reference",
      "value": 33.37,
      "unit": "THB per USD",
      "comparison_hint": "FX context published alongside the GTA domestic quote. Use it as context, not as a separate local shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official local gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi",
      "observation_id": "gta-gold-reference-price_pattaya-chonburi_gold_spot_reference",
      "parameter": "gold_spot_reference",
      "metric_label": "GTA spot reference",
      "value": 4088,
      "unit": "GTA reference value",
      "comparison_hint": "Secondary GTA reference field carried as published. Do not treat it as the primary Thai retail quote."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official local gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi",
      "observation_id": "gta-gold-reference-price_pattaya-chonburi_gold_price_change_intraday",
      "parameter": "gold_price_change_intraday",
      "metric_label": "Intraday gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous GTA row during the current Thai market session."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "entity_path": "/entities/pattaya-chonburi/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi uses the same national Gold Traders Association quote as a tourist-market buying-context anchor, not a separate official local gold price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi",
      "observation_id": "gta-gold-reference-price_pattaya-chonburi_gold_price_change_prev_day",
      "parameter": "gold_price_change_prev_day",
      "metric_label": "Previous-day gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous trading day close or final row."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "entity_path": "/entities/yaowarat-gold-district/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Yaowarat gold district uses the same national Gold Traders Association quote as Bangkok, but the entity focus is comparison-shopping density rather than a separate local city price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Yaowarat gold district",
      "observation_id": "gta-gold-reference-price_yaowarat-gold-district_gold_bar_965_buy_baht_weight",
      "parameter": "gold_bar_965_buy_baht_weight",
      "metric_label": "96.5% gold bar buy price",
      "value": 64400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar buy quote for Yaowarat gold district. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "entity_path": "/entities/yaowarat-gold-district/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Yaowarat gold district uses the same national Gold Traders Association quote as Bangkok, but the entity focus is comparison-shopping density rather than a separate local city price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Yaowarat gold district",
      "observation_id": "gta-gold-reference-price_yaowarat-gold-district_gold_bar_965_sell_baht_weight",
      "parameter": "gold_bar_965_sell_baht_weight",
      "metric_label": "96.5% gold bar sell price",
      "value": 64600,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar sell quote for Yaowarat gold district. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "entity_path": "/entities/yaowarat-gold-district/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Yaowarat gold district uses the same national Gold Traders Association quote as Bangkok, but the entity focus is comparison-shopping density rather than a separate local city price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Yaowarat gold district",
      "observation_id": "gta-gold-reference-price_yaowarat-gold-district_gold_ornament_965_base_baht_weight",
      "parameter": "gold_ornament_965_base_baht_weight",
      "metric_label": "96.5% ornament base price",
      "value": 63111.08,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "GTA ornament-side base or tax-base context. Local shop workmanship, spread, and buyback terms can still differ."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "entity_path": "/entities/yaowarat-gold-district/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Yaowarat gold district uses the same national Gold Traders Association quote as Bangkok, but the entity focus is comparison-shopping density rather than a separate local city price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Yaowarat gold district",
      "observation_id": "gta-gold-reference-price_yaowarat-gold-district_gold_ornament_965_sell_baht_weight",
      "parameter": "gold_ornament_965_sell_baht_weight",
      "metric_label": "96.5% ornament sell price",
      "value": 65400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA ornament sell quote. Local workmanship or premium still changes the final shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "entity_path": "/entities/yaowarat-gold-district/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Yaowarat gold district uses the same national Gold Traders Association quote as Bangkok, but the entity focus is comparison-shopping density rather than a separate local city price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Yaowarat gold district",
      "observation_id": "gta-gold-reference-price_yaowarat-gold-district_usd_thb_reference",
      "parameter": "usd_thb_reference",
      "metric_label": "USD / THB reference",
      "value": 33.37,
      "unit": "THB per USD",
      "comparison_hint": "FX context published alongside the GTA domestic quote. Use it as context, not as a separate local shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "entity_path": "/entities/yaowarat-gold-district/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Yaowarat gold district uses the same national Gold Traders Association quote as Bangkok, but the entity focus is comparison-shopping density rather than a separate local city price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Yaowarat gold district",
      "observation_id": "gta-gold-reference-price_yaowarat-gold-district_gold_spot_reference",
      "parameter": "gold_spot_reference",
      "metric_label": "GTA spot reference",
      "value": 4088,
      "unit": "GTA reference value",
      "comparison_hint": "Secondary GTA reference field carried as published. Do not treat it as the primary Thai retail quote."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "entity_path": "/entities/yaowarat-gold-district/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Yaowarat gold district uses the same national Gold Traders Association quote as Bangkok, but the entity focus is comparison-shopping density rather than a separate local city price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Yaowarat gold district",
      "observation_id": "gta-gold-reference-price_yaowarat-gold-district_gold_price_change_intraday",
      "parameter": "gold_price_change_intraday",
      "metric_label": "Intraday gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous GTA row during the current Thai market session."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "entity_path": "/entities/yaowarat-gold-district/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "gta_latest_price_json",
      "confidence": "high",
      "note": "Yaowarat gold district uses the same national Gold Traders Association quote as Bangkok, but the entity focus is comparison-shopping density rather than a separate local city price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Yaowarat gold district",
      "observation_id": "gta-gold-reference-price_yaowarat-gold-district_gold_price_change_prev_day",
      "parameter": "gold_price_change_prev_day",
      "metric_label": "Previous-day gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous trading day close or final row."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/chiang-mai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai gold shopping",
      "observation_id": "gta-gold-reference-price_chiang-mai-gold-shopping_gold_bar_965_buy_baht_weight",
      "parameter": "gold_bar_965_buy_baht_weight",
      "metric_label": "96.5% gold bar buy price",
      "value": 64400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar buy quote for Chiang Mai gold shopping. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/chiang-mai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai gold shopping",
      "observation_id": "gta-gold-reference-price_chiang-mai-gold-shopping_gold_bar_965_sell_baht_weight",
      "parameter": "gold_bar_965_sell_baht_weight",
      "metric_label": "96.5% gold bar sell price",
      "value": 64600,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar sell quote for Chiang Mai gold shopping. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/chiang-mai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai gold shopping",
      "observation_id": "gta-gold-reference-price_chiang-mai-gold-shopping_gold_ornament_965_base_baht_weight",
      "parameter": "gold_ornament_965_base_baht_weight",
      "metric_label": "96.5% ornament base price",
      "value": 63111.08,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "GTA ornament-side base or tax-base context. Local shop workmanship, spread, and buyback terms can still differ."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/chiang-mai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai gold shopping",
      "observation_id": "gta-gold-reference-price_chiang-mai-gold-shopping_gold_ornament_965_sell_baht_weight",
      "parameter": "gold_ornament_965_sell_baht_weight",
      "metric_label": "96.5% ornament sell price",
      "value": 65400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA ornament sell quote. Local workmanship or premium still changes the final shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/chiang-mai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai gold shopping",
      "observation_id": "gta-gold-reference-price_chiang-mai-gold-shopping_usd_thb_reference",
      "parameter": "usd_thb_reference",
      "metric_label": "USD / THB reference",
      "value": 33.37,
      "unit": "THB per USD",
      "comparison_hint": "FX context published alongside the GTA domestic quote. Use it as context, not as a separate local shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/chiang-mai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai gold shopping",
      "observation_id": "gta-gold-reference-price_chiang-mai-gold-shopping_gold_spot_reference",
      "parameter": "gold_spot_reference",
      "metric_label": "GTA spot reference",
      "value": 4088,
      "unit": "GTA reference value",
      "comparison_hint": "Secondary GTA reference field carried as published. Do not treat it as the primary Thai retail quote."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/chiang-mai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai gold shopping",
      "observation_id": "gta-gold-reference-price_chiang-mai-gold-shopping_gold_price_change_intraday",
      "parameter": "gold_price_change_intraday",
      "metric_label": "Intraday gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous GTA row during the current Thai market session."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/chiang-mai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium-high",
      "note": "Chiang Mai gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Chiang Mai gold shopping",
      "observation_id": "gta-gold-reference-price_chiang-mai-gold-shopping_gold_price_change_prev_day",
      "parameter": "gold_price_change_prev_day",
      "metric_label": "Previous-day gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous trading day close or final row."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/phuket-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is tourist-market buying friction rather than a separate official provincial price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket gold shopping",
      "observation_id": "gta-gold-reference-price_phuket-gold-shopping_gold_bar_965_buy_baht_weight",
      "parameter": "gold_bar_965_buy_baht_weight",
      "metric_label": "96.5% gold bar buy price",
      "value": 64400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar buy quote for Phuket gold shopping. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/phuket-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is tourist-market buying friction rather than a separate official provincial price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket gold shopping",
      "observation_id": "gta-gold-reference-price_phuket-gold-shopping_gold_bar_965_sell_baht_weight",
      "parameter": "gold_bar_965_sell_baht_weight",
      "metric_label": "96.5% gold bar sell price",
      "value": 64600,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar sell quote for Phuket gold shopping. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/phuket-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is tourist-market buying friction rather than a separate official provincial price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket gold shopping",
      "observation_id": "gta-gold-reference-price_phuket-gold-shopping_gold_ornament_965_base_baht_weight",
      "parameter": "gold_ornament_965_base_baht_weight",
      "metric_label": "96.5% ornament base price",
      "value": 63111.08,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "GTA ornament-side base or tax-base context. Local shop workmanship, spread, and buyback terms can still differ."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/phuket-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is tourist-market buying friction rather than a separate official provincial price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket gold shopping",
      "observation_id": "gta-gold-reference-price_phuket-gold-shopping_gold_ornament_965_sell_baht_weight",
      "parameter": "gold_ornament_965_sell_baht_weight",
      "metric_label": "96.5% ornament sell price",
      "value": 65400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA ornament sell quote. Local workmanship or premium still changes the final shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/phuket-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is tourist-market buying friction rather than a separate official provincial price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket gold shopping",
      "observation_id": "gta-gold-reference-price_phuket-gold-shopping_usd_thb_reference",
      "parameter": "usd_thb_reference",
      "metric_label": "USD / THB reference",
      "value": 33.37,
      "unit": "THB per USD",
      "comparison_hint": "FX context published alongside the GTA domestic quote. Use it as context, not as a separate local shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/phuket-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is tourist-market buying friction rather than a separate official provincial price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket gold shopping",
      "observation_id": "gta-gold-reference-price_phuket-gold-shopping_gold_spot_reference",
      "parameter": "gold_spot_reference",
      "metric_label": "GTA spot reference",
      "value": 4088,
      "unit": "GTA reference value",
      "comparison_hint": "Secondary GTA reference field carried as published. Do not treat it as the primary Thai retail quote."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/phuket-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is tourist-market buying friction rather than a separate official provincial price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket gold shopping",
      "observation_id": "gta-gold-reference-price_phuket-gold-shopping_gold_price_change_intraday",
      "parameter": "gold_price_change_intraday",
      "metric_label": "Intraday gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous GTA row during the current Thai market session."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/phuket-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Phuket gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is tourist-market buying friction rather than a separate official provincial price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Phuket gold shopping",
      "observation_id": "gta-gold-reference-price_phuket-gold-shopping_gold_price_change_prev_day",
      "parameter": "gold_price_change_prev_day",
      "metric_label": "Previous-day gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous trading day close or final row."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/pattaya-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is convenience-market friction rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi gold shopping",
      "observation_id": "gta-gold-reference-price_pattaya-gold-shopping_gold_bar_965_buy_baht_weight",
      "parameter": "gold_bar_965_buy_baht_weight",
      "metric_label": "96.5% gold bar buy price",
      "value": 64400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar buy quote for Pattaya / Chonburi gold shopping. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/pattaya-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is convenience-market friction rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi gold shopping",
      "observation_id": "gta-gold-reference-price_pattaya-gold-shopping_gold_bar_965_sell_baht_weight",
      "parameter": "gold_bar_965_sell_baht_weight",
      "metric_label": "96.5% gold bar sell price",
      "value": 64600,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar sell quote for Pattaya / Chonburi gold shopping. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/pattaya-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is convenience-market friction rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi gold shopping",
      "observation_id": "gta-gold-reference-price_pattaya-gold-shopping_gold_ornament_965_base_baht_weight",
      "parameter": "gold_ornament_965_base_baht_weight",
      "metric_label": "96.5% ornament base price",
      "value": 63111.08,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "GTA ornament-side base or tax-base context. Local shop workmanship, spread, and buyback terms can still differ."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/pattaya-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is convenience-market friction rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi gold shopping",
      "observation_id": "gta-gold-reference-price_pattaya-gold-shopping_gold_ornament_965_sell_baht_weight",
      "parameter": "gold_ornament_965_sell_baht_weight",
      "metric_label": "96.5% ornament sell price",
      "value": 65400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA ornament sell quote. Local workmanship or premium still changes the final shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/pattaya-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is convenience-market friction rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi gold shopping",
      "observation_id": "gta-gold-reference-price_pattaya-gold-shopping_usd_thb_reference",
      "parameter": "usd_thb_reference",
      "metric_label": "USD / THB reference",
      "value": 33.37,
      "unit": "THB per USD",
      "comparison_hint": "FX context published alongside the GTA domestic quote. Use it as context, not as a separate local shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/pattaya-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is convenience-market friction rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi gold shopping",
      "observation_id": "gta-gold-reference-price_pattaya-gold-shopping_gold_spot_reference",
      "parameter": "gold_spot_reference",
      "metric_label": "GTA spot reference",
      "value": 4088,
      "unit": "GTA reference value",
      "comparison_hint": "Secondary GTA reference field carried as published. Do not treat it as the primary Thai retail quote."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/pattaya-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is convenience-market friction rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi gold shopping",
      "observation_id": "gta-gold-reference-price_pattaya-gold-shopping_gold_price_change_intraday",
      "parameter": "gold_price_change_intraday",
      "metric_label": "Intraday gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous GTA row during the current Thai market session."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/pattaya-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Pattaya / Chonburi gold-shopping uses the same national Gold Traders Association quote as the destination, but the entity focus is convenience-market friction rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Pattaya / Chonburi gold shopping",
      "observation_id": "gta-gold-reference-price_pattaya-gold-shopping_gold_price_change_prev_day",
      "parameter": "gold_price_change_prev_day",
      "metric_label": "Previous-day gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous trading day close or final row."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/hat-yai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Hat Yai gold-shopping uses the same national Gold Traders Association quote as every other Thai city context, but the entity focus is southern regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Hat Yai gold shopping",
      "observation_id": "gta-gold-reference-price_hat-yai-gold-shopping_gold_bar_965_buy_baht_weight",
      "parameter": "gold_bar_965_buy_baht_weight",
      "metric_label": "96.5% gold bar buy price",
      "value": 64400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar buy quote for Hat Yai gold shopping. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/hat-yai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Hat Yai gold-shopping uses the same national Gold Traders Association quote as every other Thai city context, but the entity focus is southern regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Hat Yai gold shopping",
      "observation_id": "gta-gold-reference-price_hat-yai-gold-shopping_gold_bar_965_sell_baht_weight",
      "parameter": "gold_bar_965_sell_baht_weight",
      "metric_label": "96.5% gold bar sell price",
      "value": 64600,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA 96.5% gold-bar sell quote for Hat Yai gold shopping. This is a shared Thai reference, not a separate local city price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/hat-yai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Hat Yai gold-shopping uses the same national Gold Traders Association quote as every other Thai city context, but the entity focus is southern regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Hat Yai gold shopping",
      "observation_id": "gta-gold-reference-price_hat-yai-gold-shopping_gold_ornament_965_base_baht_weight",
      "parameter": "gold_ornament_965_base_baht_weight",
      "metric_label": "96.5% ornament base price",
      "value": 63111.08,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "GTA ornament-side base or tax-base context. Local shop workmanship, spread, and buyback terms can still differ."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/hat-yai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Hat Yai gold-shopping uses the same national Gold Traders Association quote as every other Thai city context, but the entity focus is southern regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Hat Yai gold shopping",
      "observation_id": "gta-gold-reference-price_hat-yai-gold-shopping_gold_ornament_965_sell_baht_weight",
      "parameter": "gold_ornament_965_sell_baht_weight",
      "metric_label": "96.5% ornament sell price",
      "value": 65400,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "National GTA ornament sell quote. Local workmanship or premium still changes the final shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/hat-yai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Hat Yai gold-shopping uses the same national Gold Traders Association quote as every other Thai city context, but the entity focus is southern regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Hat Yai gold shopping",
      "observation_id": "gta-gold-reference-price_hat-yai-gold-shopping_usd_thb_reference",
      "parameter": "usd_thb_reference",
      "metric_label": "USD / THB reference",
      "value": 33.37,
      "unit": "THB per USD",
      "comparison_hint": "FX context published alongside the GTA domestic quote. Use it as context, not as a separate local shop price."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/hat-yai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Hat Yai gold-shopping uses the same national Gold Traders Association quote as every other Thai city context, but the entity focus is southern regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Hat Yai gold shopping",
      "observation_id": "gta-gold-reference-price_hat-yai-gold-shopping_gold_spot_reference",
      "parameter": "gold_spot_reference",
      "metric_label": "GTA spot reference",
      "value": 4088,
      "unit": "GTA reference value",
      "comparison_hint": "Secondary GTA reference field carried as published. Do not treat it as the primary Thai retail quote."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/hat-yai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Hat Yai gold-shopping uses the same national Gold Traders Association quote as every other Thai city context, but the entity focus is southern regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Hat Yai gold shopping",
      "observation_id": "gta-gold-reference-price_hat-yai-gold-shopping_gold_price_change_intraday",
      "parameter": "gold_price_change_intraday",
      "metric_label": "Intraday gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous GTA row during the current Thai market session."
    },
    {
      "feed_id": "gta-gold-reference-price",
      "source_name": "Gold Traders Association Thailand gold prices",
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "entity_path": "/entities/hat-yai-gold-shopping/",
      "observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "gta_latest_price_json",
      "confidence": "medium",
      "note": "Hat Yai gold-shopping uses the same national Gold Traders Association quote as every other Thai city context, but the entity focus is southern regional convenience rather than a separate official local price.",
      "source_names": [
        "Gold Traders Association Thailand gold prices"
      ],
      "city_context": "Hat Yai gold shopping",
      "observation_id": "gta-gold-reference-price_hat-yai-gold-shopping_gold_price_change_prev_day",
      "parameter": "gold_price_change_prev_day",
      "metric_label": "Previous-day gold-price change",
      "value": -200,
      "unit": "THB per 1 baht-weight",
      "comparison_hint": "Published change from the previous trading day close or final row."
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "high",
      "note": "Bangkok-wide civic complaint context from the latest public district Traffy summary on Bangkok Open Data.",
      "observation_id": "bangkok-civic-complaint-stats_bangkok_civic_monthly_complaint_count",
      "parameter": "civic_monthly_complaint_count",
      "metric_label": "Monthly civic complaint count",
      "value": 28532,
      "unit": "complaints",
      "comparison_hint": "Latest Bangkok district summary period สิงหาคม 2568.",
      "report_period": "สิงหาคม 2568",
      "district_count": 50,
      "districts": [
        "คลองเตย",
        "คลองสาน",
        "คลองสามวา",
        "คันนายาว",
        "จตุจักร",
        "จอมทอง",
        "ดอนเมือง",
        "ดินแดง",
        "ดุสิต",
        "ตลิ่งชัน",
        "ทวีวัฒนา",
        "ทุ่งครุ",
        "ธนบุรี",
        "บางกอกน้อย",
        "บางกอกใหญ่",
        "บางกะปิ",
        "บางขุนเทียน",
        "บางเขน",
        "บางคอแหลม",
        "บางแค",
        "บางซื่อ",
        "บางนา",
        "บางบอน",
        "บางพลัด",
        "บางรัก",
        "บึงกุ่ม",
        "ปทุมวัน",
        "ประเวศ",
        "ป้อมปราบศัตรูพ่าย",
        "พญาไท",
        "พระโขนง",
        "พระนคร",
        "ภาษีเจริญ",
        "มีนบุรี",
        "ยานนาวา",
        "ราชเทวี",
        "ราษฎร์บูรณะ",
        "ลาดกระบัง",
        "ลาดพร้าว",
        "วังทองหลาง",
        "วัฒนา",
        "สวนหลวง",
        "สะพานสูง",
        "สัมพันธวงศ์",
        "สาทร",
        "สายไหม",
        "หนองแขม",
        "หนองจอก",
        "หลักสี่",
        "ห้วยขวาง"
      ],
      "scope_average_complaint_count": 570.6,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "high",
      "note": "Bangkok-wide civic complaint context from the latest public district Traffy summary on Bangkok Open Data.",
      "observation_id": "bangkok-civic-complaint-stats_bangkok_civic_monthly_resolution_rate",
      "parameter": "civic_monthly_resolution_rate",
      "metric_label": "Monthly civic resolution rate",
      "value": 47.1,
      "unit": "percent",
      "comparison_hint": "13,443 resolved out of 28,532 complaints.",
      "report_period": "สิงหาคม 2568",
      "district_count": 50,
      "districts": [
        "คลองเตย",
        "คลองสาน",
        "คลองสามวา",
        "คันนายาว",
        "จตุจักร",
        "จอมทอง",
        "ดอนเมือง",
        "ดินแดง",
        "ดุสิต",
        "ตลิ่งชัน",
        "ทวีวัฒนา",
        "ทุ่งครุ",
        "ธนบุรี",
        "บางกอกน้อย",
        "บางกอกใหญ่",
        "บางกะปิ",
        "บางขุนเทียน",
        "บางเขน",
        "บางคอแหลม",
        "บางแค",
        "บางซื่อ",
        "บางนา",
        "บางบอน",
        "บางพลัด",
        "บางรัก",
        "บึงกุ่ม",
        "ปทุมวัน",
        "ประเวศ",
        "ป้อมปราบศัตรูพ่าย",
        "พญาไท",
        "พระโขนง",
        "พระนคร",
        "ภาษีเจริญ",
        "มีนบุรี",
        "ยานนาวา",
        "ราชเทวี",
        "ราษฎร์บูรณะ",
        "ลาดกระบัง",
        "ลาดพร้าว",
        "วังทองหลาง",
        "วัฒนา",
        "สวนหลวง",
        "สะพานสูง",
        "สัมพันธวงศ์",
        "สาทร",
        "สายไหม",
        "หนองแขม",
        "หนองจอก",
        "หลักสี่",
        "ห้วยขวาง"
      ],
      "scope_average_complaint_count": 570.6,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "high",
      "note": "Bangkok-wide civic complaint context from the latest public district Traffy summary on Bangkok Open Data.",
      "observation_id": "bangkok-civic-complaint-stats_bangkok_civic_star_average",
      "parameter": "civic_star_average",
      "metric_label": "Average civic star rating",
      "value": 4.17,
      "unit": "stars",
      "comparison_hint": "Average district complaint star rating across 50 district bucket(s).",
      "report_period": "สิงหาคม 2568",
      "district_count": 50,
      "districts": [
        "คลองเตย",
        "คลองสาน",
        "คลองสามวา",
        "คันนายาว",
        "จตุจักร",
        "จอมทอง",
        "ดอนเมือง",
        "ดินแดง",
        "ดุสิต",
        "ตลิ่งชัน",
        "ทวีวัฒนา",
        "ทุ่งครุ",
        "ธนบุรี",
        "บางกอกน้อย",
        "บางกอกใหญ่",
        "บางกะปิ",
        "บางขุนเทียน",
        "บางเขน",
        "บางคอแหลม",
        "บางแค",
        "บางซื่อ",
        "บางนา",
        "บางบอน",
        "บางพลัด",
        "บางรัก",
        "บึงกุ่ม",
        "ปทุมวัน",
        "ประเวศ",
        "ป้อมปราบศัตรูพ่าย",
        "พญาไท",
        "พระโขนง",
        "พระนคร",
        "ภาษีเจริญ",
        "มีนบุรี",
        "ยานนาวา",
        "ราชเทวี",
        "ราษฎร์บูรณะ",
        "ลาดกระบัง",
        "ลาดพร้าว",
        "วังทองหลาง",
        "วัฒนา",
        "สวนหลวง",
        "สะพานสูง",
        "สัมพันธวงศ์",
        "สาทร",
        "สายไหม",
        "หนองแขม",
        "หนองจอก",
        "หลักสี่",
        "ห้วยขวาง"
      ],
      "scope_average_complaint_count": 570.6,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium-high",
      "note": "Sukhumvit civic-friction proxy from Watthana, Khlong Toei, and Phra Khanong district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_sukhumvit_civic_monthly_complaint_count",
      "parameter": "civic_monthly_complaint_count",
      "metric_label": "Monthly civic complaint count",
      "value": 2811,
      "unit": "complaints",
      "comparison_hint": "Latest Bangkok district summary period สิงหาคม 2568.",
      "report_period": "สิงหาคม 2568",
      "district_count": 3,
      "districts": [
        "วัฒนา",
        "คลองเตย",
        "พระโขนง"
      ],
      "scope_average_complaint_count": 937,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium-high",
      "note": "Sukhumvit civic-friction proxy from Watthana, Khlong Toei, and Phra Khanong district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_sukhumvit_civic_monthly_resolution_rate",
      "parameter": "civic_monthly_resolution_rate",
      "metric_label": "Monthly civic resolution rate",
      "value": 41.4,
      "unit": "percent",
      "comparison_hint": "1,163 resolved out of 2,811 complaints.",
      "report_period": "สิงหาคม 2568",
      "district_count": 3,
      "districts": [
        "วัฒนา",
        "คลองเตย",
        "พระโขนง"
      ],
      "scope_average_complaint_count": 937,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium-high",
      "note": "Sukhumvit civic-friction proxy from Watthana, Khlong Toei, and Phra Khanong district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_sukhumvit_civic_star_average",
      "parameter": "civic_star_average",
      "metric_label": "Average civic star rating",
      "value": 4.04,
      "unit": "stars",
      "comparison_hint": "Average district complaint star rating across 3 district bucket(s).",
      "report_period": "สิงหาคม 2568",
      "district_count": 3,
      "districts": [
        "วัฒนา",
        "คลองเตย",
        "พระโขนง"
      ],
      "scope_average_complaint_count": 937,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium-high",
      "note": "Silom / Sathorn civic-friction proxy from Bang Rak, Sathon, and Yan Nawa district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_silom-sathorn_civic_monthly_complaint_count",
      "parameter": "civic_monthly_complaint_count",
      "metric_label": "Monthly civic complaint count",
      "value": 1946,
      "unit": "complaints",
      "comparison_hint": "Latest Bangkok district summary period สิงหาคม 2568.",
      "report_period": "สิงหาคม 2568",
      "district_count": 3,
      "districts": [
        "บางรัก",
        "สาทร",
        "ยานนาวา"
      ],
      "scope_average_complaint_count": 648.7,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium-high",
      "note": "Silom / Sathorn civic-friction proxy from Bang Rak, Sathon, and Yan Nawa district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_silom-sathorn_civic_monthly_resolution_rate",
      "parameter": "civic_monthly_resolution_rate",
      "metric_label": "Monthly civic resolution rate",
      "value": 49.4,
      "unit": "percent",
      "comparison_hint": "962 resolved out of 1,946 complaints.",
      "report_period": "สิงหาคม 2568",
      "district_count": 3,
      "districts": [
        "บางรัก",
        "สาทร",
        "ยานนาวา"
      ],
      "scope_average_complaint_count": 648.7,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium-high",
      "note": "Silom / Sathorn civic-friction proxy from Bang Rak, Sathon, and Yan Nawa district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_silom-sathorn_civic_star_average",
      "parameter": "civic_star_average",
      "metric_label": "Average civic star rating",
      "value": 3.85,
      "unit": "stars",
      "comparison_hint": "Average district complaint star rating across 3 district bucket(s).",
      "report_period": "สิงหาคม 2568",
      "district_count": 3,
      "districts": [
        "บางรัก",
        "สาทร",
        "ยานนาวา"
      ],
      "scope_average_complaint_count": 648.7,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium",
      "note": "Riverside / Old Town civic-friction proxy from Phra Nakhon, Samphanthawong, Khlong San, and Bang Rak district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_riverside-old-town_civic_monthly_complaint_count",
      "parameter": "civic_monthly_complaint_count",
      "metric_label": "Monthly civic complaint count",
      "value": 2085,
      "unit": "complaints",
      "comparison_hint": "Latest Bangkok district summary period สิงหาคม 2568.",
      "report_period": "สิงหาคม 2568",
      "district_count": 4,
      "districts": [
        "พระนคร",
        "สัมพันธวงศ์",
        "คลองสาน",
        "บางรัก"
      ],
      "scope_average_complaint_count": 521.3,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium",
      "note": "Riverside / Old Town civic-friction proxy from Phra Nakhon, Samphanthawong, Khlong San, and Bang Rak district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_riverside-old-town_civic_monthly_resolution_rate",
      "parameter": "civic_monthly_resolution_rate",
      "metric_label": "Monthly civic resolution rate",
      "value": 50.7,
      "unit": "percent",
      "comparison_hint": "1,057 resolved out of 2,085 complaints.",
      "report_period": "สิงหาคม 2568",
      "district_count": 4,
      "districts": [
        "พระนคร",
        "สัมพันธวงศ์",
        "คลองสาน",
        "บางรัก"
      ],
      "scope_average_complaint_count": 521.3,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium",
      "note": "Riverside / Old Town civic-friction proxy from Phra Nakhon, Samphanthawong, Khlong San, and Bang Rak district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_riverside-old-town_civic_star_average",
      "parameter": "civic_star_average",
      "metric_label": "Average civic star rating",
      "value": 3.99,
      "unit": "stars",
      "comparison_hint": "Average district complaint star rating across 4 district bucket(s).",
      "report_period": "สิงหาคม 2568",
      "district_count": 4,
      "districts": [
        "พระนคร",
        "สัมพันธวงศ์",
        "คลองสาน",
        "บางรัก"
      ],
      "scope_average_complaint_count": 521.3,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium",
      "note": "Ari civic-friction proxy from Phaya Thai and Chatuchak district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_ari_civic_monthly_complaint_count",
      "parameter": "civic_monthly_complaint_count",
      "metric_label": "Monthly civic complaint count",
      "value": 2136,
      "unit": "complaints",
      "comparison_hint": "Latest Bangkok district summary period สิงหาคม 2568.",
      "report_period": "สิงหาคม 2568",
      "district_count": 2,
      "districts": [
        "พญาไท",
        "จตุจักร"
      ],
      "scope_average_complaint_count": 1068,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium",
      "note": "Ari civic-friction proxy from Phaya Thai and Chatuchak district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_ari_civic_monthly_resolution_rate",
      "parameter": "civic_monthly_resolution_rate",
      "metric_label": "Monthly civic resolution rate",
      "value": 40.5,
      "unit": "percent",
      "comparison_hint": "865 resolved out of 2,136 complaints.",
      "report_period": "สิงหาคม 2568",
      "district_count": 2,
      "districts": [
        "พญาไท",
        "จตุจักร"
      ],
      "scope_average_complaint_count": 1068,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium",
      "note": "Ari civic-friction proxy from Phaya Thai and Chatuchak district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_ari_civic_star_average",
      "parameter": "civic_star_average",
      "metric_label": "Average civic star rating",
      "value": 4.27,
      "unit": "stars",
      "comparison_hint": "Average district complaint star rating across 2 district bucket(s).",
      "report_period": "สิงหาคม 2568",
      "district_count": 2,
      "districts": [
        "พญาไท",
        "จตุจักร"
      ],
      "scope_average_complaint_count": 1068,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium-high",
      "note": "Asok interchange civic-friction proxy from Watthana and Khlong Toei district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_bts-asok_civic_monthly_complaint_count",
      "parameter": "civic_monthly_complaint_count",
      "metric_label": "Monthly civic complaint count",
      "value": 2249,
      "unit": "complaints",
      "comparison_hint": "Latest Bangkok district summary period สิงหาคม 2568.",
      "report_period": "สิงหาคม 2568",
      "district_count": 2,
      "districts": [
        "วัฒนา",
        "คลองเตย"
      ],
      "scope_average_complaint_count": 1124.5,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium-high",
      "note": "Asok interchange civic-friction proxy from Watthana and Khlong Toei district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_bts-asok_civic_monthly_resolution_rate",
      "parameter": "civic_monthly_resolution_rate",
      "metric_label": "Monthly civic resolution rate",
      "value": 42,
      "unit": "percent",
      "comparison_hint": "944 resolved out of 2,249 complaints.",
      "report_period": "สิงหาคม 2568",
      "district_count": 2,
      "districts": [
        "วัฒนา",
        "คลองเตย"
      ],
      "scope_average_complaint_count": 1124.5,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "bangkok-civic-complaint-stats",
      "source_name": "Bangkok Open Data",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2025-07-31T17:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "bangkok_open_data_traffy_district_stats",
      "confidence": "medium-high",
      "note": "Asok interchange civic-friction proxy from Watthana and Khlong Toei district complaint statistics.",
      "observation_id": "bangkok-civic-complaint-stats_bts-asok_civic_star_average",
      "parameter": "civic_star_average",
      "metric_label": "Average civic star rating",
      "value": 3.89,
      "unit": "stars",
      "comparison_hint": "Average district complaint star rating across 2 district bucket(s).",
      "report_period": "สิงหาคม 2568",
      "district_count": 2,
      "districts": [
        "วัฒนา",
        "คลองเตย"
      ],
      "scope_average_complaint_count": 1124.5,
      "city_median_complaint_count": 509,
      "city_average_complaint_count": 570.6,
      "city_total_complaint_count": 28532,
      "source_names": [
        "Bangkok Open Data"
      ]
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_bangkok_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "noise4thai_province_average",
      "confidence": "medium",
      "note": "Chiang Mai city average from live Noise4Thai cards.",
      "observation_id": "noise4thai-ambient-noise_chiang-mai_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 54.4,
      "unit": "dBA",
      "max_value": 54.4,
      "station_count": 1,
      "online_station_count": 1,
      "supporting_station_ids": [
        "st35"
      ],
      "supporting_station_names": [
        "ศูนย์ราชการจังหวัดเชียงใหม่"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-16T10:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "noise4thai_province_average",
      "confidence": "medium",
      "note": "Phuket city average from live Noise4Thai cards.",
      "observation_id": "noise4thai-ambient-noise_phuket_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 59.7,
      "unit": "dBA",
      "max_value": 59.7,
      "station_count": 1,
      "online_station_count": 0,
      "supporting_station_ids": [
        "st43"
      ],
      "supporting_station_names": [
        "กองการแพทย์ เทศบาลนครภูเก็ต"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_sukhumvit_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_silom-sathorn_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_riverside-old-town_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "noise4thai_province_average",
      "confidence": "medium",
      "note": "Chiang Mai city average from live Noise4Thai cards.",
      "observation_id": "noise4thai-ambient-noise_nimman_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 54.4,
      "unit": "dBA",
      "max_value": 54.4,
      "station_count": 1,
      "online_station_count": 1,
      "supporting_station_ids": [
        "st35"
      ],
      "supporting_station_names": [
        "ศูนย์ราชการจังหวัดเชียงใหม่"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_ari_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "proxy-derived",
      "method": "noise4thai_province_average",
      "confidence": "medium",
      "note": "Chiang Mai city average from live Noise4Thai cards.",
      "observation_id": "noise4thai-ambient-noise_old-city-chiang-mai_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 54.4,
      "unit": "dBA",
      "max_value": 54.4,
      "station_count": 1,
      "online_station_count": 1,
      "supporting_station_ids": [
        "st35"
      ],
      "supporting_station_names": [
        "ศูนย์ราชการจังหวัดเชียงใหม่"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-05-16T10:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "noise4thai_province_average",
      "confidence": "medium",
      "note": "Phuket city average from live Noise4Thai cards.",
      "observation_id": "noise4thai-ambient-noise_kata-karon_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 59.7,
      "unit": "dBA",
      "max_value": 59.7,
      "station_count": 1,
      "online_station_count": 0,
      "supporting_station_ids": [
        "st43"
      ],
      "supporting_station_names": [
        "กองการแพทย์ เทศบาลนครภูเก็ต"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-16T10:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "noise4thai_province_average",
      "confidence": "medium",
      "note": "Phuket city average from live Noise4Thai cards.",
      "observation_id": "noise4thai-ambient-noise_patong_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 59.7,
      "unit": "dBA",
      "max_value": 59.7,
      "station_count": 1,
      "online_station_count": 0,
      "supporting_station_ids": [
        "st43"
      ],
      "supporting_station_names": [
        "กองการแพทย์ เทศบาลนครภูเก็ต"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-16T10:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "noise4thai_province_average",
      "confidence": "medium",
      "note": "Phuket city average from live Noise4Thai cards.",
      "observation_id": "noise4thai-ambient-noise_rawai-nai-harn_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 59.7,
      "unit": "dBA",
      "max_value": 59.7,
      "station_count": 1,
      "online_station_count": 0,
      "supporting_station_ids": [
        "st43"
      ],
      "supporting_station_names": [
        "กองการแพทย์ เทศบาลนครภูเก็ต"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-05-16T10:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "noise4thai_province_average",
      "confidence": "medium",
      "note": "Phuket city average from live Noise4Thai cards.",
      "observation_id": "noise4thai-ambient-noise_phuket-old-town_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 59.7,
      "unit": "dBA",
      "max_value": 59.7,
      "station_count": 1,
      "online_station_count": 0,
      "supporting_station_ids": [
        "st43"
      ],
      "supporting_station_names": [
        "กองการแพทย์ เทศบาลนครภูเก็ต"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_bts-asok_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_bangkok-mochit-2_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_suvarnabhumi-airport_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_don-mueang-airport_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-05-16T10:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "noise4thai_province_average",
      "confidence": "medium",
      "note": "Phuket city average from live Noise4Thai cards.",
      "observation_id": "noise4thai-ambient-noise_rassada-pier_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 59.7,
      "unit": "dBA",
      "max_value": 59.7,
      "station_count": 1,
      "online_station_count": 0,
      "supporting_station_ids": [
        "st43"
      ],
      "supporting_station_names": [
        "กองการแพทย์ เทศบาลนครภูเก็ต"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_air4thai-bangkok-urban-cluster_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_roadside_cluster",
      "confidence": "high",
      "note": "Bangkok roadside-only Noise4Thai cluster.",
      "observation_id": "noise4thai-ambient-noise_noise4thai-bangkok-roadside-cluster_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 71.2,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 3,
      "online_station_count": 3,
      "supporting_station_ids": [
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Roadside-only station subset."
    },
    {
      "feed_id": "noise4thai-ambient-noise",
      "source_name": "PCD Noise4Thai",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh",
      "quality_flag": "direct-source-match",
      "method": "noise4thai_province_average",
      "confidence": "high",
      "note": "Bangkok area average from live Noise4Thai monitoring cards.",
      "observation_id": "noise4thai-ambient-noise_thaiwater-chao-phraya-bangkok_noise_leq_24h_average",
      "parameter": "noise_leq_24h_average",
      "metric_label": "Average Leq 24h",
      "value": 66,
      "unit": "dBA",
      "max_value": 71.4,
      "station_count": 6,
      "online_station_count": 6,
      "supporting_station_ids": [
        "st09",
        "st10",
        "st12",
        "st52",
        "st53",
        "st54"
      ],
      "supporting_station_names": [
        "โรงเรียนบดินทรเดชา (สิงห์ สิงหเสนี)",
        "การเคหะชุมชนคลองจั่น",
        "โรงเรียนนนทรีวิทยา",
        "สถานีไฟฟ้าย่อยธนบุรี",
        "สถานีตำรวจนครบาลโชคชัย",
        "การเคหะชุมชนดินแดง"
      ],
      "comparison_hint": "Mixed community and roadside monitoring cards."
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_bangkok_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_bangkok_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "entity_path": "/entities/bangkok/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_bangkok_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Chiang Mai province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "เชียงใหม่"
      ],
      "observation_id": "thairsc-road-safety_chiang-mai_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 150,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Chiang Mai province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "เชียงใหม่"
      ],
      "observation_id": "thairsc-road-safety_chiang-mai_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 14711,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "entity_path": "/entities/chiang-mai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Chiang Mai province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "เชียงใหม่"
      ],
      "observation_id": "thairsc-road-safety_chiang-mai_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 14861,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 3"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_phuket_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 63,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_phuket_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 11578,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "entity_path": "/entities/phuket/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_phuket_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 11641,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 7"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Krabi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กระบี่"
      ],
      "observation_id": "thairsc-road-safety_krabi_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 36,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Krabi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กระบี่"
      ],
      "observation_id": "thairsc-road-safety_krabi_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 1571,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "entity_path": "/entities/krabi/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Krabi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กระบี่"
      ],
      "observation_id": "thairsc-road-safety_krabi_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 1607,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 72"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_koh-samui_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 113,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_koh-samui_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 6178,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "entity_path": "/entities/koh-samui/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_koh-samui_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 6291,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 16"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_koh-phangan_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 113,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_koh-phangan_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 6178,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "entity_path": "/entities/koh-phangan/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_koh-phangan_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 6291,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 16"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Mae Hong Son province road-safety proxy for Pai access. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "แม่ฮ่องสอน"
      ],
      "observation_id": "thairsc-road-safety_pai_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 28,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Mae Hong Son province road-safety proxy for Pai access. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "แม่ฮ่องสอน"
      ],
      "observation_id": "thairsc-road-safety_pai_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 990,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "entity_path": "/entities/pai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Mae Hong Son province road-safety proxy for Pai access. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "แม่ฮ่องสอน"
      ],
      "observation_id": "thairsc-road-safety_pai_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 1018,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 92"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Ayutthaya province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "พระนครศรีอยุธยา"
      ],
      "observation_id": "thairsc-road-safety_ayutthaya_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 92,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Ayutthaya province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "พระนครศรีอยุธยา"
      ],
      "observation_id": "thairsc-road-safety_ayutthaya_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 4964,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "entity_path": "/entities/ayutthaya/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Ayutthaya province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "พระนครศรีอยุธยา"
      ],
      "observation_id": "thairsc-road-safety_ayutthaya_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 5056,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 22"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Kanchanaburi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กาญจนบุรี"
      ],
      "observation_id": "thairsc-road-safety_kanchanaburi_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 71,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Kanchanaburi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กาญจนบุรี"
      ],
      "observation_id": "thairsc-road-safety_kanchanaburi_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 2472,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "entity_path": "/entities/kanchanaburi/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Kanchanaburi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กาญจนบุรี"
      ],
      "observation_id": "thairsc-road-safety_kanchanaburi_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 2543,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 45"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Regional northeastern road-safety proxy across major Isaan provinces. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 9,
      "supporting_provinces": [
        "ขอนแก่น",
        "นครราชสีมา",
        "อุบลราชธานี",
        "อุดรธานี",
        "หนองคาย",
        "บุรีรัมย์",
        "สุรินทร์",
        "ร้อยเอ็ด",
        "สกลนคร"
      ],
      "observation_id": "thairsc-road-safety_isaan_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 886,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Regional northeastern road-safety proxy across major Isaan provinces. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 9,
      "supporting_provinces": [
        "ขอนแก่น",
        "นครราชสีมา",
        "อุบลราชธานี",
        "อุดรธานี",
        "หนองคาย",
        "บุรีรัมย์",
        "สุรินทร์",
        "ร้อยเอ็ด",
        "สกลนคร"
      ],
      "observation_id": "thairsc-road-safety_isaan_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 48471,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "entity_path": "/entities/isaan/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Regional northeastern road-safety proxy across major Isaan provinces. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 9,
      "supporting_provinces": [
        "ขอนแก่น",
        "นครราชสีมา",
        "อุบลราชธานี",
        "อุดรธานี",
        "หนองคาย",
        "บุรีรัมย์",
        "สุรินทร์",
        "ร้อยเอ็ด",
        "สกลนคร"
      ],
      "observation_id": "thairsc-road-safety_isaan_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 49357,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 25"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_sukhumvit_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_sukhumvit_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "entity_path": "/entities/sukhumvit/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_sukhumvit_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_silom-sathorn_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_silom-sathorn_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/silom-sathorn/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_silom-sathorn_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_riverside-old-town_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_riverside-old-town_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/riverside-old-town/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_riverside-old-town_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Chiang Mai province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "เชียงใหม่"
      ],
      "observation_id": "thairsc-road-safety_nimman_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 150,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Chiang Mai province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "เชียงใหม่"
      ],
      "observation_id": "thairsc-road-safety_nimman_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 14711,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "entity_path": "/entities/nimman/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Chiang Mai province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "เชียงใหม่"
      ],
      "observation_id": "thairsc-road-safety_nimman_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 14861,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 3"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_ari_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_ari_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ari/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_ari_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Chiang Mai province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "เชียงใหม่"
      ],
      "observation_id": "thairsc-road-safety_old-city-chiang-mai_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 150,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Chiang Mai province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "เชียงใหม่"
      ],
      "observation_id": "thairsc-road-safety_old-city-chiang-mai_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 14711,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/old-city-chiang-mai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Chiang Mai province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "เชียงใหม่"
      ],
      "observation_id": "thairsc-road-safety_old-city-chiang-mai_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 14861,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 3"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_kata-karon_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 63,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_kata-karon_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 11578,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "entity_path": "/entities/kata-karon/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_kata-karon_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 11641,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 7"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_patong_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 63,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_patong_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 11578,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "entity_path": "/entities/patong/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_patong_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 11641,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 7"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_rawai-nai-harn_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 63,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_rawai-nai-harn_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 11578,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "entity_path": "/entities/rawai-nai-harn/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_rawai-nai-harn_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 11641,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 7"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_phuket-old-town_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 63,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_phuket-old-town_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 11578,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "entity_path": "/entities/phuket-old-town/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_phuket-old-town_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 11641,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 7"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_bophut-fishermans-village_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 113,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_bophut-fishermans-village_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 6178,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "entity_path": "/entities/bophut-fishermans-village/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_bophut-fishermans-village_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 6291,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 16"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_chaweng_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 113,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_chaweng_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 6178,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "entity_path": "/entities/chaweng/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_chaweng_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 6291,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 16"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_lamai_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 113,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_lamai_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 6178,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "entity_path": "/entities/lamai/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_lamai_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 6291,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 16"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Krabi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กระบี่"
      ],
      "observation_id": "thairsc-road-safety_ao-nang_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 36,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Krabi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กระบี่"
      ],
      "observation_id": "thairsc-road-safety_ao-nang_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 1571,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "entity_path": "/entities/ao-nang/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Krabi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กระบี่"
      ],
      "observation_id": "thairsc-road-safety_ao-nang_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 1607,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 72"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Krabi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กระบี่"
      ],
      "observation_id": "thairsc-road-safety_railay_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 36,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Krabi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กระบี่"
      ],
      "observation_id": "thairsc-road-safety_railay_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 1571,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "entity_path": "/entities/railay/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Krabi province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กระบี่"
      ],
      "observation_id": "thairsc-road-safety_railay_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 1607,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 72"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_bts-asok_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_bts-asok_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "entity_path": "/entities/bts-asok/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_bts-asok_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_bangkok-mochit-2_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_bangkok-mochit-2_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "entity_path": "/entities/bangkok-mochit-2/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_bangkok-mochit-2_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_suvarnabhumi-airport_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_suvarnabhumi-airport_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "entity_path": "/entities/suvarnabhumi-airport/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_suvarnabhumi-airport_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_don-mueang-airport_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_don-mueang-airport_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "entity_path": "/entities/don-mueang-airport/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_don-mueang-airport_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_rassada-pier_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 63,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_rassada-pier_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 11578,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "entity_path": "/entities/rassada-pier/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Phuket province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "ภูเก็ต"
      ],
      "observation_id": "thairsc-road-safety_rassada-pier_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 11641,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 7"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_na-thon-pier_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 113,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_na-thon-pier_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 6178,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "entity_path": "/entities/na-thon-pier/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_na-thon-pier_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 6291,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 16"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_donsak-pier_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 113,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_donsak-pier_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 6178,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "entity_path": "/entities/donsak-pier/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "proxy-derived",
      "method": "thairsc_snapshot",
      "confidence": "medium",
      "note": "Surat Thani province road-safety proxy for Samui-chain planning. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "สุราษฎร์ธานี"
      ],
      "observation_id": "thairsc-road-safety_donsak-pier_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 6291,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 16"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_air4thai-bangkok-urban-cluster_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_air4thai-bangkok-urban-cluster_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/air4thai-bangkok-urban-cluster/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_air4thai-bangkok-urban-cluster_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_noise4thai-bangkok-roadside-cluster_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_noise4thai-bangkok-roadside-cluster_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_noise4thai-bangkok-roadside-cluster_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_thaiwater-chao-phraya-bangkok_road_deaths_ytd",
      "parameter": "road_deaths_ytd",
      "metric_label": "Road deaths year to date",
      "value": 315,
      "unit": "deaths"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_thaiwater-chao-phraya-bangkok_road_injuries_ytd",
      "parameter": "road_injuries_ytd",
      "metric_label": "Road injuries year to date",
      "value": 61592,
      "unit": "injuries"
    },
    {
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "entity_path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "freshness_class": "stale",
      "quality_flag": "direct-source-match",
      "method": "thairsc_snapshot",
      "confidence": "high",
      "note": "Bangkok province road-safety burden from ThaiRSC snapshot data. Served from the current build snapshot because the upstream API certificate is not production-safe for runtime fetches.",
      "province_count": 1,
      "supporting_provinces": [
        "กรุงเทพมหานคร"
      ],
      "observation_id": "thairsc-road-safety_thaiwater-chao-phraya-bangkok_road_casualty_total_ytd",
      "parameter": "road_casualty_total_ytd",
      "metric_label": "Road casualties year to date",
      "value": 61907,
      "unit": "casualties",
      "comparison_hint": "Province burden percentile 0"
    }
  ],
  "contexts": [
    {
      "context_id": "gdacs-global-context",
      "feed_id": "gdacs-disaster-context",
      "source_name": "GDACS",
      "observed_at": "2026-06-02T05:45:56.000Z",
      "parameter": "active_hazard_groups",
      "metric_label": "Active GDACS hazard groups",
      "value": 4,
      "unit": "groups",
      "freshness_class": "stale",
      "confidence": "medium",
      "affects_entity_types": [
        "destination",
        "hotel_area",
        "airport",
        "pier",
        "station",
        "bus_terminal",
        "monitoring_cluster"
      ],
      "affects_entities": [
        "bangkok",
        "chiang-mai",
        "phuket",
        "krabi",
        "koh-samui",
        "koh-phangan",
        "pattaya-chonburi",
        "hua-hin",
        "pai",
        "ayutthaya",
        "kanchanaburi",
        "isaan",
        "chiang-rai",
        "hat-yai",
        "trang",
        "surat-thani",
        "sukhothai",
        "nakhon-ratchasima",
        "chanthaburi",
        "khon-kaen",
        "ubon-ratchathani",
        "buriram",
        "nong-khai"
      ],
      "event_count": 32,
      "details": [
        {
          "label": "Fire",
          "value": 18
        },
        {
          "label": "Flood",
          "value": 10
        },
        {
          "label": "Earthquake",
          "value": 3
        },
        {
          "label": "Cyclone",
          "value": 1
        }
      ],
      "note": "Global disaster context helps with confidence and route caution, but it is not a local destination safety verdict."
    },
    {
      "context_id": "usgs-thailand-earthquake-context",
      "feed_id": "usgs-thailand-earthquakes",
      "source_name": "USGS Earthquake API",
      "observed_at": "2026-06-14T20:07:57.209Z",
      "parameter": "regional_earthquake_events",
      "metric_label": "Thailand-region earthquake events",
      "value": 1,
      "unit": "events",
      "freshness_class": "stale",
      "confidence": "medium",
      "affects_entity_types": [
        "destination",
        "hotel_area",
        "airport",
        "pier",
        "station",
        "bus_terminal",
        "monitoring_cluster"
      ],
      "affects_entities": [
        "bangkok",
        "chiang-mai",
        "phuket",
        "krabi",
        "koh-samui",
        "koh-phangan",
        "pattaya-chonburi",
        "hua-hin",
        "pai",
        "ayutthaya",
        "kanchanaburi",
        "isaan",
        "chiang-rai",
        "hat-yai",
        "trang",
        "surat-thani",
        "sukhothai",
        "nakhon-ratchasima",
        "chanthaburi",
        "khon-kaen",
        "ubon-ratchathani",
        "buriram",
        "nong-khai"
      ],
      "max_magnitude": 4.4,
      "details": [
        {
          "title": "M 4.4 - 82 km ENE of Loikaw, Burma (Myanmar)",
          "place": "82 km ENE of Loikaw, Burma (Myanmar)",
          "magnitude": 4.4,
          "observed_at": "2026-06-14T20:07:57.209Z",
          "longitude": 97.8867,
          "latitude": 20.0534,
          "depth_km": 10.543
        }
      ],
      "note": "A quiet query is still a useful context observation because it reduces one class of route-breaking surprise."
    },
    {
      "context_id": "thairsc-national-context",
      "feed_id": "thairsc-road-safety",
      "source_name": "ThaiRSC Road Accident Center",
      "observed_at": "2026-05-15T11:00:00.000Z",
      "parameter": "national_road_deaths_today",
      "metric_label": "National road deaths today",
      "value": 16,
      "unit": "deaths",
      "freshness_class": "stale",
      "confidence": "medium",
      "affects_entity_types": [
        "destination",
        "hotel_area",
        "airport",
        "pier",
        "station",
        "bus_terminal",
        "monitoring_cluster"
      ],
      "affects_entities": [
        "bangkok",
        "chiang-mai",
        "phuket",
        "krabi",
        "koh-samui",
        "koh-phangan",
        "pattaya-chonburi",
        "hua-hin",
        "pai",
        "ayutthaya",
        "kanchanaburi",
        "isaan",
        "chiang-rai",
        "hat-yai",
        "trang",
        "surat-thani",
        "sukhothai",
        "nakhon-ratchasima",
        "chanthaburi",
        "khon-kaen",
        "ubon-ratchathani",
        "buriram",
        "nong-khai"
      ],
      "event_count": 1834,
      "details": {
        "today_injuries": 1834,
        "source": "ที่มา : ศูนย์รับแจ้งเหตุ บริษัท กลางคุ้มครองผู้ประสบภัยจากรถ จำกัด และเครือข่ายรับแจ้ง"
      },
      "note": "National road-casualty context from the latest ThaiRSC snapshot."
    }
  ],
  "storage": {
    "mode": "persisted",
    "snapshot_kind": "observations",
    "generated_at": "2026-06-24T02:15:35.482Z",
    "stored_at": "2026-06-24T02:15:52.358Z",
    "fresh": false
  },
  "filters": {
    "entity_id": "all",
    "parameter": "all",
    "feed_id": "all"
  },
  "entity_summaries": [
    {
      "entity_id": "bangkok",
      "entity_name": "Bangkok",
      "entity_type": "destination",
      "path": "/entities/bangkok/",
      "observation_count": 48,
      "feed_count": 21,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_rapid_transit_support_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_motorcycle_taxi_support_score",
        "taxi_pickup_dropoff_support_score",
        "urban_bus_operator_support_score",
        "exat_expressway_support_score",
        "spa_license_support_score",
        "medical_fallback_support_score",
        "gold_bar_965_buy_baht_weight",
        "gold_bar_965_sell_baht_weight",
        "gold_ornament_965_base_baht_weight",
        "gold_ornament_965_sell_baht_weight",
        "usd_thb_reference",
        "gold_spot_reference",
        "gold_price_change_intraday",
        "gold_price_change_prev_day",
        "civic_monthly_complaint_count",
        "civic_monthly_resolution_rate",
        "civic_star_average",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "phuket",
      "entity_name": "Phuket",
      "entity_type": "destination",
      "path": "/entities/phuket/",
      "observation_count": 47,
      "feed_count": 18,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "spa_license_support_score",
        "medical_fallback_support_score",
        "park_access_context_score",
        "gold_bar_965_buy_baht_weight",
        "gold_bar_965_sell_baht_weight",
        "gold_ornament_965_base_baht_weight",
        "gold_ornament_965_sell_baht_weight",
        "usd_thb_reference",
        "gold_spot_reference",
        "gold_price_change_intraday",
        "gold_price_change_prev_day",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "chiang-mai",
      "entity_name": "Chiang Mai",
      "entity_type": "destination",
      "path": "/entities/chiang-mai/",
      "observation_count": 41,
      "feed_count": 16,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "spa_license_support_score",
        "medical_fallback_support_score",
        "park_access_context_score",
        "gold_bar_965_buy_baht_weight",
        "gold_bar_965_sell_baht_weight",
        "gold_ornament_965_base_baht_weight",
        "gold_ornament_965_sell_baht_weight",
        "usd_thb_reference",
        "gold_spot_reference",
        "gold_price_change_intraday",
        "gold_price_change_prev_day",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "koh-samui",
      "entity_name": "Koh Samui",
      "entity_type": "destination",
      "path": "/entities/koh-samui/",
      "observation_count": 39,
      "feed_count": 15,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_transport_complaint_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "spa_license_support_score",
        "medical_fallback_support_score",
        "park_access_context_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "krabi",
      "entity_name": "Krabi",
      "entity_type": "destination",
      "path": "/entities/krabi/",
      "observation_count": 38,
      "feed_count": 16,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "spa_license_support_score",
        "medical_fallback_support_score",
        "park_access_context_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "don-mueang-airport",
      "entity_name": "Don Mueang Airport",
      "entity_type": "airport",
      "path": "/entities/don-mueang-airport/",
      "observation_count": 36,
      "feed_count": 16,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "official_airport_ground_service_score",
        "official_airport_board_surface_score",
        "official_airport_total_movements",
        "official_airport_total_passengers",
        "official_airport_scale_score",
        "official_airport_environmental_support_score",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_taxi_oversight_support_score",
        "official_motorcycle_taxi_support_score",
        "taxi_pickup_dropoff_support_score",
        "exat_expressway_support_score",
        "medical_fallback_support_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "koh-phangan",
      "entity_name": "Koh Phangan",
      "entity_type": "destination",
      "path": "/entities/koh-phangan/",
      "observation_count": 36,
      "feed_count": 12,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_transport_complaint_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "medical_fallback_support_score",
        "park_access_context_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "suvarnabhumi-airport",
      "entity_name": "Suvarnabhumi Airport",
      "entity_type": "airport",
      "path": "/entities/suvarnabhumi-airport/",
      "observation_count": 35,
      "feed_count": 15,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "official_airport_ground_service_score",
        "official_airport_board_surface_score",
        "official_airport_total_movements",
        "official_airport_total_passengers",
        "official_airport_scale_score",
        "official_airport_environmental_support_score",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_taxi_oversight_support_score",
        "official_motorcycle_taxi_support_score",
        "exat_expressway_support_score",
        "medical_fallback_support_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "sukhumvit",
      "entity_name": "Sukhumvit",
      "entity_type": "hotel_area",
      "path": "/entities/sukhumvit/",
      "observation_count": 34,
      "feed_count": 17,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_rapid_transit_support_score",
        "official_intercity_bus_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_motorcycle_taxi_support_score",
        "taxi_pickup_dropoff_support_score",
        "urban_bus_operator_support_score",
        "exat_expressway_support_score",
        "spa_license_support_score",
        "medical_fallback_support_score",
        "civic_monthly_complaint_count",
        "civic_monthly_resolution_rate",
        "civic_star_average",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "chaweng",
      "entity_name": "Chaweng",
      "entity_type": "hotel_area",
      "path": "/entities/chaweng/",
      "observation_count": 33,
      "feed_count": 12,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "spa_license_support_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "lamai",
      "entity_name": "Lamai",
      "entity_type": "hotel_area",
      "path": "/entities/lamai/",
      "observation_count": 33,
      "feed_count": 12,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "spa_license_support_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "patong",
      "entity_name": "Patong",
      "entity_type": "hotel_area",
      "path": "/entities/patong/",
      "observation_count": 33,
      "feed_count": 14,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "spa_license_support_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "rawai-nai-harn",
      "entity_name": "Rawai / Nai Harn",
      "entity_type": "hotel_area",
      "path": "/entities/rawai-nai-harn/",
      "observation_count": 33,
      "feed_count": 14,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "spa_license_support_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "silom-sathorn",
      "entity_name": "Silom / Sathorn",
      "entity_type": "hotel_area",
      "path": "/entities/silom-sathorn/",
      "observation_count": 33,
      "feed_count": 16,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_rapid_transit_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_motorcycle_taxi_support_score",
        "taxi_pickup_dropoff_support_score",
        "urban_bus_operator_support_score",
        "exat_expressway_support_score",
        "spa_license_support_score",
        "medical_fallback_support_score",
        "civic_monthly_complaint_count",
        "civic_monthly_resolution_rate",
        "civic_star_average",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "ao-nang",
      "entity_name": "Ao Nang",
      "entity_type": "hotel_area",
      "path": "/entities/ao-nang/",
      "observation_count": 32,
      "feed_count": 13,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "spa_license_support_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "riverside-old-town",
      "entity_name": "Riverside / Old Town",
      "entity_type": "hotel_area",
      "path": "/entities/riverside-old-town/",
      "observation_count": 32,
      "feed_count": 15,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_rapid_transit_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_motorcycle_taxi_support_score",
        "taxi_pickup_dropoff_support_score",
        "urban_bus_operator_support_score",
        "exat_expressway_support_score",
        "medical_fallback_support_score",
        "civic_monthly_complaint_count",
        "civic_monthly_resolution_rate",
        "civic_star_average",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "ari",
      "entity_name": "Ari",
      "entity_type": "hotel_area",
      "path": "/entities/ari/",
      "observation_count": 31,
      "feed_count": 14,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_rapid_transit_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_motorcycle_taxi_support_score",
        "taxi_pickup_dropoff_support_score",
        "exat_expressway_support_score",
        "medical_fallback_support_score",
        "civic_monthly_complaint_count",
        "civic_monthly_resolution_rate",
        "civic_star_average",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "bangkok-mochit-2",
      "entity_name": "Bangkok Mochit 2 Bus Terminal",
      "entity_type": "bus_terminal",
      "path": "/entities/bangkok-mochit-2/",
      "observation_count": 31,
      "feed_count": 16,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_rapid_transit_support_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_motorcycle_taxi_support_score",
        "taxi_pickup_dropoff_support_score",
        "urban_bus_operator_support_score",
        "exat_expressway_support_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "bophut-fishermans-village",
      "entity_name": "Bophut / Fisherman's Village",
      "entity_type": "hotel_area",
      "path": "/entities/bophut-fishermans-village/",
      "observation_count": 31,
      "feed_count": 10,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "spa_license_support_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "railay",
      "entity_name": "Railay",
      "entity_type": "hotel_area",
      "path": "/entities/railay/",
      "observation_count": 31,
      "feed_count": 12,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "bts-asok",
      "entity_name": "BTS Asok / MRT Sukhumvit",
      "entity_type": "station",
      "path": "/entities/bts-asok/",
      "observation_count": 30,
      "feed_count": 13,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_rapid_transit_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_motorcycle_taxi_support_score",
        "taxi_pickup_dropoff_support_score",
        "exat_expressway_support_score",
        "civic_monthly_complaint_count",
        "civic_monthly_resolution_rate",
        "civic_star_average",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "donsak-pier",
      "entity_name": "Donsak Pier",
      "entity_type": "pier",
      "path": "/entities/donsak-pier/",
      "observation_count": 29,
      "feed_count": 8,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "kata-karon",
      "entity_name": "Kata / Karon",
      "entity_type": "hotel_area",
      "path": "/entities/kata-karon/",
      "observation_count": 29,
      "feed_count": 10,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "transport_structure_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "spa_license_support_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "na-thon-pier",
      "entity_name": "Na Thon Pier",
      "entity_type": "pier",
      "path": "/entities/na-thon-pier/",
      "observation_count": 29,
      "feed_count": 8,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "kanchanaburi",
      "entity_name": "Kanchanaburi",
      "entity_type": "destination",
      "path": "/entities/kanchanaburi/",
      "observation_count": 27,
      "feed_count": 12,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "exat_expressway_support_score",
        "medical_fallback_support_score",
        "park_access_context_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "rassada-pier",
      "entity_name": "Rassada Pier",
      "entity_type": "pier",
      "path": "/entities/rassada-pier/",
      "observation_count": 27,
      "feed_count": 8,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "transport_structure_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "ayutthaya",
      "entity_name": "Ayutthaya",
      "entity_type": "destination",
      "path": "/entities/ayutthaya/",
      "observation_count": 25,
      "feed_count": 10,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "exat_expressway_support_score",
        "medical_fallback_support_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "isaan",
      "entity_name": "Isaan",
      "entity_type": "destination",
      "path": "/entities/isaan/",
      "observation_count": 25,
      "feed_count": 10,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "medical_fallback_support_score",
        "park_access_context_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "old-city-chiang-mai",
      "entity_name": "Old City Chiang Mai",
      "entity_type": "hotel_area",
      "path": "/entities/old-city-chiang-mai/",
      "observation_count": 25,
      "feed_count": 10,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "phuket-old-town",
      "entity_name": "Phuket Old Town",
      "entity_type": "hotel_area",
      "path": "/entities/phuket-old-town/",
      "observation_count": 25,
      "feed_count": 10,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "pattaya-chonburi",
      "entity_name": "Pattaya / Chonburi",
      "entity_type": "destination",
      "path": "/entities/pattaya-chonburi/",
      "observation_count": 23,
      "feed_count": 13,
      "parameters": [
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "official_berth_status_surface_score",
        "exat_expressway_support_score",
        "spa_license_support_score",
        "medical_fallback_support_score",
        "gold_bar_965_buy_baht_weight",
        "gold_bar_965_sell_baht_weight",
        "gold_ornament_965_base_baht_weight",
        "gold_ornament_965_sell_baht_weight",
        "usd_thb_reference",
        "gold_spot_reference",
        "gold_price_change_intraday",
        "gold_price_change_prev_day"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "nimman",
      "entity_name": "Nimman",
      "entity_type": "hotel_area",
      "path": "/entities/nimman/",
      "observation_count": 22,
      "feed_count": 7,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "spa_license_support_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "air4thai-bangkok-urban-cluster",
      "entity_name": "Air4Thai Bangkok urban cluster",
      "entity_type": "monitoring_cluster",
      "path": "/entities/air4thai-bangkok-urban-cluster/",
      "observation_count": 21,
      "feed_count": 6,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "noise4thai-bangkok-roadside-cluster",
      "entity_name": "Noise4Thai Bangkok roadside cluster",
      "entity_type": "monitoring_cluster",
      "path": "/entities/noise4thai-bangkok-roadside-cluster/",
      "observation_count": 21,
      "feed_count": 6,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "thaiwater-chao-phraya-bangkok",
      "entity_name": "Thaiwater Chao Phraya Bangkok corridor",
      "entity_type": "monitoring_cluster",
      "path": "/entities/thaiwater-chao-phraya-bangkok/",
      "observation_count": 21,
      "feed_count": 6,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "water_quality_status_score",
        "water_dissolved_oxygen_average",
        "water_quality_index_average",
        "transport_structure_score",
        "noise_leq_24h_average",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "pai",
      "entity_name": "Pai",
      "entity_type": "destination",
      "path": "/entities/pai/",
      "observation_count": 18,
      "feed_count": 5,
      "parameters": [
        "aqi_average",
        "pm25_average",
        "forecast_rain_probability",
        "forecast_temp_min",
        "forecast_temp_max",
        "forecast_heavy_rain_flag",
        "warning_match_count",
        "marine_wind_speed_average",
        "marine_thunderstorm_flag",
        "station_temperature",
        "station_humidity",
        "station_wind_speed",
        "station_rainfall_today",
        "medical_fallback_support_score",
        "park_access_context_score",
        "road_deaths_ytd",
        "road_injuries_ytd",
        "road_casualty_total_ytd"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "chiang-mai-airport",
      "entity_name": "Chiang Mai Airport",
      "entity_type": "airport",
      "path": "/entities/chiang-mai-airport/",
      "observation_count": 12,
      "feed_count": 7,
      "parameters": [
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "official_airport_ground_service_score",
        "official_airport_board_surface_score",
        "official_airport_total_movements",
        "official_airport_total_passengers",
        "official_airport_scale_score",
        "official_airport_environmental_support_score",
        "transport_structure_score",
        "official_taxi_oversight_support_score"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "phuket-airport",
      "entity_name": "Phuket Airport",
      "entity_type": "airport",
      "path": "/entities/phuket-airport/",
      "observation_count": 12,
      "feed_count": 7,
      "parameters": [
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "official_airport_ground_service_score",
        "official_airport_board_surface_score",
        "official_airport_total_movements",
        "official_airport_total_passengers",
        "official_airport_scale_score",
        "official_airport_environmental_support_score",
        "transport_structure_score",
        "official_taxi_oversight_support_score"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "hua-hin",
      "entity_name": "Hua Hin / Cha-am",
      "entity_type": "destination",
      "path": "/entities/hua-hin/",
      "observation_count": 11,
      "feed_count": 11,
      "parameters": [
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_intercity_bus_search_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score",
        "exat_expressway_support_score",
        "spa_license_support_score",
        "medical_fallback_support_score",
        "park_access_context_score"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "chiang-mai-gold-shopping",
      "entity_name": "Chiang Mai gold shopping",
      "entity_type": "market_district",
      "path": "/entities/chiang-mai-gold-shopping/",
      "observation_count": 9,
      "feed_count": 2,
      "parameters": [
        "transport_structure_score",
        "gold_bar_965_buy_baht_weight",
        "gold_bar_965_sell_baht_weight",
        "gold_ornament_965_base_baht_weight",
        "gold_ornament_965_sell_baht_weight",
        "usd_thb_reference",
        "gold_spot_reference",
        "gold_price_change_intraday",
        "gold_price_change_prev_day"
      ],
      "last_observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "hat-yai-gold-shopping",
      "entity_name": "Hat Yai gold shopping",
      "entity_type": "market_district",
      "path": "/entities/hat-yai-gold-shopping/",
      "observation_count": 9,
      "feed_count": 2,
      "parameters": [
        "transport_structure_score",
        "gold_bar_965_buy_baht_weight",
        "gold_bar_965_sell_baht_weight",
        "gold_ornament_965_base_baht_weight",
        "gold_ornament_965_sell_baht_weight",
        "usd_thb_reference",
        "gold_spot_reference",
        "gold_price_change_intraday",
        "gold_price_change_prev_day"
      ],
      "last_observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "pattaya-gold-shopping",
      "entity_name": "Pattaya / Chonburi gold shopping",
      "entity_type": "market_district",
      "path": "/entities/pattaya-gold-shopping/",
      "observation_count": 9,
      "feed_count": 2,
      "parameters": [
        "transport_structure_score",
        "gold_bar_965_buy_baht_weight",
        "gold_bar_965_sell_baht_weight",
        "gold_ornament_965_base_baht_weight",
        "gold_ornament_965_sell_baht_weight",
        "usd_thb_reference",
        "gold_spot_reference",
        "gold_price_change_intraday",
        "gold_price_change_prev_day"
      ],
      "last_observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "phuket-gold-shopping",
      "entity_name": "Phuket gold shopping",
      "entity_type": "market_district",
      "path": "/entities/phuket-gold-shopping/",
      "observation_count": 9,
      "feed_count": 2,
      "parameters": [
        "transport_structure_score",
        "gold_bar_965_buy_baht_weight",
        "gold_bar_965_sell_baht_weight",
        "gold_ornament_965_base_baht_weight",
        "gold_ornament_965_sell_baht_weight",
        "usd_thb_reference",
        "gold_spot_reference",
        "gold_price_change_intraday",
        "gold_price_change_prev_day"
      ],
      "last_observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "yaowarat-gold-district",
      "entity_name": "Yaowarat gold district",
      "entity_type": "market_district",
      "path": "/entities/yaowarat-gold-district/",
      "observation_count": 9,
      "feed_count": 2,
      "parameters": [
        "transport_structure_score",
        "gold_bar_965_buy_baht_weight",
        "gold_bar_965_sell_baht_weight",
        "gold_ornament_965_base_baht_weight",
        "gold_ornament_965_sell_baht_weight",
        "usd_thb_reference",
        "gold_spot_reference",
        "gold_price_change_intraday",
        "gold_price_change_prev_day"
      ],
      "last_observed_at": "2026-06-24T02:05:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "ao-nang-pier",
      "entity_name": "Ao Nang Pier",
      "entity_type": "pier",
      "path": "/entities/ao-nang-pier/",
      "observation_count": 8,
      "feed_count": 4,
      "parameters": [
        "marine_wind_speed_average",
        "marine_wave_height_average",
        "marine_wave_height_thunder",
        "marine_thunderstorm_flag",
        "forecast_heavy_rain_flag",
        "transport_structure_score",
        "official_pier_support_score",
        "official_berth_status_surface_score"
      ],
      "last_observed_at": "2026-06-24T06:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "central-hua-hin-khao-takiab",
      "entity_name": "Central Hua Hin / Khao Takiab",
      "entity_type": "hotel_area",
      "path": "/entities/central-hua-hin-khao-takiab/",
      "observation_count": 6,
      "feed_count": 6,
      "parameters": [
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "central-pattaya-jomtien",
      "entity_name": "Central Pattaya / Jomtien",
      "entity_type": "hotel_area",
      "path": "/entities/central-pattaya-jomtien/",
      "observation_count": 6,
      "feed_count": 6,
      "parameters": [
        "transport_structure_score",
        "official_bus_terminal_support_score",
        "official_intercity_bus_support_score",
        "official_transport_complaint_support_score",
        "official_taxi_oversight_support_score",
        "official_pier_support_score"
      ],
      "last_observed_at": "2026-06-24T02:15:23.481Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "krabi-airport",
      "entity_name": "Krabi Airport",
      "entity_type": "airport",
      "path": "/entities/krabi-airport/",
      "observation_count": 6,
      "feed_count": 3,
      "parameters": [
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "transport_structure_score",
        "official_taxi_oversight_support_score"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "u-tapao-airport",
      "entity_name": "U-Tapao Airport",
      "entity_type": "airport",
      "path": "/entities/u-tapao-airport/",
      "observation_count": 5,
      "feed_count": 2,
      "parameters": [
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag",
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "samui-airport",
      "entity_name": "Samui Airport",
      "entity_type": "airport",
      "path": "/entities/samui-airport/",
      "observation_count": 4,
      "feed_count": 1,
      "parameters": [
        "airport_flight_rules_score",
        "airport_visibility_score",
        "airport_forecast_disruption_score",
        "airport_convective_forecast_flag"
      ],
      "last_observed_at": "2026-06-24T02:00:00.000Z",
      "freshness_class": "fresh"
    },
    {
      "entity_id": "buriram",
      "entity_name": "Buriram",
      "entity_type": "destination",
      "path": "/entities/buriram/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "chanthaburi",
      "entity_name": "Chanthaburi",
      "entity_type": "destination",
      "path": "/entities/chanthaburi/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "chiang-rai",
      "entity_name": "Chiang Rai",
      "entity_type": "destination",
      "path": "/entities/chiang-rai/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "hat-yai",
      "entity_name": "Hat Yai",
      "entity_type": "destination",
      "path": "/entities/hat-yai/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "hua-hin-station",
      "entity_name": "Hua Hin Railway Station",
      "entity_type": "station",
      "path": "/entities/hua-hin-station/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "khon-kaen",
      "entity_name": "Khon Kaen",
      "entity_type": "destination",
      "path": "/entities/khon-kaen/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "nakhon-ratchasima",
      "entity_name": "Nakhon Ratchasima",
      "entity_type": "destination",
      "path": "/entities/nakhon-ratchasima/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "nong-khai",
      "entity_name": "Nong Khai",
      "entity_type": "destination",
      "path": "/entities/nong-khai/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "sukhothai",
      "entity_name": "Sukhothai",
      "entity_type": "destination",
      "path": "/entities/sukhothai/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "surat-thani",
      "entity_name": "Surat Thani",
      "entity_type": "destination",
      "path": "/entities/surat-thani/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "trang",
      "entity_name": "Trang",
      "entity_type": "destination",
      "path": "/entities/trang/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    },
    {
      "entity_id": "ubon-ratchathani",
      "entity_name": "Ubon Ratchathani",
      "entity_type": "destination",
      "path": "/entities/ubon-ratchathani/",
      "observation_count": 1,
      "feed_count": 1,
      "parameters": [
        "transport_structure_score"
      ],
      "last_observed_at": "2026-06-23T19:00:28.000Z",
      "freshness_class": "acceptable"
    }
  ]
}