Graph Engine v1

Thailand signal layer.

This is the bridge from raw observations into traveler decisions. It computes explainable place, stay, route, and ferry signals instead of hiding the graph behind black-box scores.

41 active families 0 additional family slots Explainable, not black box Signal API

What this layer does.

Signals are normalized interpretations over observations plus trust rules. They should explain why a place looks good, fragile, or uncertain without pretending missing layers are already integrated.

Live now

Place, stay, and route signals.

The graph now computes AQI risk, outdoor comfort, rain risk, flood and water caution, noise risk, road-safety burden, rail feasibility, official rail presence, transport friction, ferry fragility, source confidence, and regional context, with rail, airport, and pier support now reading public transit-structure inputs too.

Context

Regional caution without overclaiming.

GDACS and USGS now feed a graph-wide disruption layer that can influence confidence and route caution without masquerading as a local safety verdict.

Why it matters

Weakness stays visible.

Signal rows keep the reason attached, so a destination can look strong overall while still exposing the breaker: rain, ferry fragility, road burden, noise, or weak confidence.

Signal family registry.

Active families are wired into the API today. Additional family slots stay visible so coverage remains machine-readable too.

Active family

AQI risk

Turns normalized Air4Thai AQI observations into a place-level outdoor risk signal.

Kind: live_observation Output: Destination and hotel-area comfort risk.

Depends on: air4thai-aqi

Active family

Outdoor comfort

Combines AQI and PM2.5 into an explainable outdoor-comfort signal for day planning.

Kind: live_observation Output: Walkability and outdoor-heavy plan fit.

Depends on: air4thai-aqi

Active family

Source confidence

Blends entity source confidence, source count, and live observation freshness into a trust signal.

Kind: seed_plus_live Output: Why the graph answer is or is not trustworthy today.

Depends on: entity-registry, air4thai-aqi, gdacs-disaster-context, usgs-thailand-earthquakes

Active family

Regional disaster context

Uses GDACS hazard groups as a route-confidence context layer without pretending it is a local place verdict.

Kind: context Output: Graph-wide route and confidence caution.

Depends on: gdacs-disaster-context

Active family

Regional earthquake context

Uses the bounded USGS query as a light route-breaking context signal for Thailand-region events.

Kind: context Output: Graph-wide disruption context.

Depends on: usgs-thailand-earthquakes

Active family

Rain risk

Uses live TMD forecast, warning, and station-weather observations to compute destination and route rain fit.

Kind: live_observation Output: Destination fit and route breakage.

Depends on: tmd-weather-surface

Active family

Flight weather and airport delay risk

Uses public METAR and TAF weather-operability context for Thai airports. This is airport weather burden, not airline on-time performance truth.

Kind: live_observation Output: Airport weather burden and flight-operability context for route planning.

Depends on: aviationweather-airport-status

Active family

Marine warning and sea-state risk

Uses public TMD marine text, wind, and wave context for coastal destinations and ferry-related anchors. This is sea-state caution, not operator closure or seat inventory truth.

Kind: live_observation Output: Coastal boat-day caution and ferry-fragility context.

Depends on: tmd-weather-surface, tmd-shipping-forecast

Active family

Berth operability context

Uses the public Marine Department berth-status surface to show whether tracked coastal anchors have named public port selectors and visible ship-visit evidence on the official page. This is berth and movement context, not ferry schedule, ticket, or seat truth.

Kind: live_observation Output: Coastal port and public berth-status support for ferry-sensitive planning.

Depends on: marine-department-berth-status

Active family

Pier transfer support

Uses public Namtang stop and mode structure around piers and coastal anchors to show whether ferry moves have real transfer support behind them. This is transfer-structure support, not operator schedule or queue-length truth.

Kind: derived_live Output: Public-water-transport access strength for ferry and coastal planning.

Depends on: namtang-transit-structure

Active family

Airport transfer support

Uses public Namtang stop and mode structure around airport anchors to show whether flight-based plans have real ground-access support behind them. This is airport transfer support, not live airline board, gate, or queue-length truth.

Kind: derived_live Output: Airport-ground-access strength for route and stay planning.

Depends on: namtang-transit-structure

Active family

Airport ground-service support

Uses public AOT airport transport pages to score official taxi, Grab, rental-counter, pickup-rule, and ground-service guidance where those pages are publicly available. This is airport ground-service context, not live queue, ETA, or rental inventory truth.

Kind: live_observation Output: Official airport pickup-rule and ground-service support for route and stay planning.

Depends on: aot-airport-ground-services

Active family

Airport board-surface support

Uses public AOT flight-status pages to score whether a traveler can self-check an official passenger board surface. This is self-serve board visibility, not live airline delay, gate, baggage, or cancellation truth because the row query is protected by a browser turnstile token.

Kind: live_observation Output: Official passenger self-serve board visibility for airport, stay, and route planning.

Depends on: aot-airport-flight-board-surface

Active family

Airport scale context

Uses the public AOT fiscal traffic workbook to score official airport passenger and aircraft-movement scale context. This is airport scale and resilience context, not live on-time, queue, gate, or inventory truth.

Kind: live_observation Output: Official airport scale and major-airport context for destination, stay, and route planning.

Depends on: aot-airport-traffic-stats

Active family

Airport environmental support

Uses the SET-hosted AOT factsheet and annual report disclosure snapshot to score airport environmental-governance, community-contact, and airport-noise support context. This is institutional disclosure support, not live measured sound-level truth.

Kind: live_observation Output: Official airport environmental-governance and community-support context for airport-linked stay and route planning.

Depends on: aot-airport-environment-support

Active family

Rail feasibility

Uses public Namtang stop and mode structure around destinations, hotel areas, and station anchors to show whether a rail-linked plan is structurally real. This is rail-support context, not live seat, delay, or operator-disruption truth.

Kind: derived_live Output: Rail-linked destination and stay support for route and base planning.

Depends on: namtang-transit-structure

Active family

Official rail presence

Uses the public SRT station-list surface to confirm official rail presence around destinations and selected hotel areas. This is operator-backed station presence, not live train timing or seat truth.

Kind: live_observation Output: Official operator-backed rail presence for destination and route confidence.

Depends on: srt-official-station-presence

Active family

Official bus-terminal support

Uses the public MOT passenger-terminal master CSV to confirm official overland bus-terminal presence around destinations, hotel areas, and bus-terminal anchors. This is terminal-master support, not live departure, seat, or booking truth.

Kind: live_observation Output: Official overland bus-terminal support for destination, stay, and route confidence.

Depends on: mot-bus-terminal-support

Active family

Official intercity bus support

Uses the public BKS station, office, stop, and ticket-point CSV to confirm official intercity-bus support around destinations, hotel areas, and overland anchors. This is official station and ticket-point presence, not live departure, seat, or booking truth.

Kind: live_observation Output: Official BKS intercity-bus support for destination, stay, and route confidence.

Depends on: bks-station-ticket-support

Active family

Official intercity-bus search support

Uses the public BKS booking/search destination-selector surface to confirm whether tracked destinations are actually present in the official intercity-bus route-search flow from Bangkok origins. This is search-surface support, not live departure, seat, or booking truth.

Kind: live_observation Output: Official BKS public route-search support for destination, stay, and route confidence.

Depends on: bks-timetable-search-surface

Active family

Official transport complaint support

Uses the public DLT 1584 fiscal-year complaint workbooks to score official complaint recourse and transport-burden context around Bangkok, regional, and overland traveler entities. This is passenger-protection and burden context, not local realtime service quality or dispatch truth.

Kind: live_observation Output: Official complaint recourse and transport-burden context for destination, stay, and route confidence.

Depends on: dlt-1584-complaint-stats

Active family

Official taxi-oversight support

Uses the public DLT GPS passenger pages and Taxi OK / Taxi VIP project notices to score official regulated-taxi oversight, complaint, and station-search support. This is oversight and passenger-protection context, not live vehicle location, dispatch, ETA, or raw taxi GPS truth.

Kind: live_observation Output: Official regulated-taxi oversight support for city-base, airport-linked, stay, and route confidence.

Depends on: dlt-gps-taxi-support

Active family

Official motorcycle-taxi support

Uses the public DLT/data.go.th Bangkok motorcycle-taxi dataset to score official stand and driver support around Bangkok city-base, hotel-area, terminal, and airport-linked entities. This is supply and stand coverage context, not live availability, dispatch, or queue truth.

Kind: live_observation Output: Official Bangkok last-mile motorcycle-taxi support for destination, stay, and route confidence.

Depends on: bangkok-motorcycle-taxi-support

Active family

Taxi pickup and dropoff support

Uses the public OTP monthly taxi GPS analytics and top pickup/dropoff area rankings to score aggregate Bangkok taxi-demand and hotspot support around city-base, hotel-area, terminal, and airport-linked entities. This is monthly aggregate demand context, not live dispatch, ETA, queue, or raw trip truth.

Kind: live_observation Output: Bangkok taxi-demand and hotspot support for destination, stay, and route confidence.

Depends on: otp-taxi-demand-analytics

Active family

Official pier support

Uses the public Marine Department berth registry to confirm official passenger-pier support around coastal destinations, hotel areas, and pier anchors. This is berth-registry and infrastructure support, not live ferry schedule, closure, queue, or seat truth.

Kind: live_observation Output: Official coastal and passenger-pier support for destination, stay, route, and ferry confidence.

Depends on: marine-department-pier-registry

Active family

Urban rapid-transit support

Uses public BTS and MRTA route-map and service pages to confirm official Bangkok rapid-transit support for core city-base entities. This is route-map and service-page support, not live headway, crowding, or outage truth.

Kind: live_observation Output: Official Bangkok rapid-transit support for city-base, stay, and route planning.

Depends on: bangkok-rapid-transit-official-pages

Active family

Urban bus-operator support

Uses the public Thai Smile Group branch and depot locator to confirm Bangkok urban bus operator footprint around selected traveler entities. This is operator footprint and support context, not realtime vehicle, ETA, crowding, or outage truth.

Kind: live_observation Output: Bangkok urban bus operator support for city-base, stay, and route planning.

Depends on: thai-smile-group-branch-locator

Active family

Thai gold reference price

Uses the published Gold Traders Association latest-price JSON surface to expose the national Thai domestic 96.5% gold quote in THB per 1 baht-weight. This is a published retail-reference layer, not a live trading feed or local shop-inventory surface.

Kind: live_observation Output: National Thai gold reference availability, freshness, and spread context.

Depends on: gta-gold-reference-price

Active family

Thai gold FX pressure

Uses the Bank of Thailand daily-average USD/THB API when configured, and otherwise falls back to the Gold Traders Association embedded FX field, alongside recent GTA quote movement, to explain whether the Thai domestic gold quote feels calmer or more pressured. This is context, not investment advice.

Kind: derived_live Output: Exchange-rate and recent-quote pressure behind the Thai retail reference price.

Depends on: gta-gold-reference-price, bot-usd-thb-reference

Active family

Thai gold buying friction

Combines the national Gold Traders Association quote with city buying-context rules so Bangkok, Chiang Mai, Phuket, Pattaya, and Hat Yai are explained as comparison-shopping or tourist-friction contexts instead of fake province-specific price feeds.

Kind: seed_plus_live Output: City-by-city gold buying context and friction around the national Thai reference quote.

Depends on: gta-gold-reference-price

Active family

Flood and water risk

Uses live Thaiwater water-quality observations as a river and canal caution layer where current station coverage exists.

Kind: live_observation Output: Flood, water quality, and marine caution.

Depends on: thaiwater-water-quality

Active family

Noise risk

Uses live Noise4Thai ambient-noise observations for hotel-base comfort and neighborhood nuisance signals.

Kind: live_observation Output: Hotel base and neighborhood comfort.

Depends on: noise4thai-ambient-noise

Active family

Road safety risk

Uses ThaiRSC road-casualty observations to compute province and route road-safety caution.

Kind: live_observation Output: Route burden and accident caution.

Depends on: thairsc-road-safety

Active family

Civic friction

Uses Bangkok Open Data district complaint, resolution, and star-rating stats as a slower-moving nuisance and service-friction layer for Bangkok and its main hotel areas.

Kind: live_observation Output: Bangkok nuisance, complaint burden, and service-friction context.

Depends on: bangkok-civic-complaint-stats

Active family

Bangkok flood friction

Uses the public Bangkok flood-monitoring current-event surface as a citywide flood-friction layer for Bangkok destination, stay, and route planning. This is Bangkok-only public flood-event context, not a province-by-province Thailand flood service.

Kind: live_observation Output: Bangkok-only route, stay, and transfer burden during current flood events.

Depends on: bangkok-flood-monitoring-system

Active family

Highway transfer friction

Combines DOH public CCTV region support with official EXAT expressway support surfaces to explain whether major overland moves have official observability and motorway-support context behind them. This is support and friction context, not live speed, queue, lane, or incident truth.

Kind: derived_live Output: Bangkok-linked and regional overland friction support for route and stay planning.

Depends on: doh-highway-traffic-support, exat-expressway-support

Active family

Spa license support

Uses the public HSS health-establishment directory and spa-premium surfaces to expose whether official spa and massage license-lookup context exists behind wellness-heavy traveler anchors. This is licensing-support context, not live booking, treatment quality, or venue popularity truth.

Kind: live_observation Output: Wellness-license confidence for destination and stay planning.

Depends on: hss-spa-license-support

Active family

Medical fallback support

Uses public MOPH and HS4 facility surfaces to expose whether official hospital and facility-lookup context exists behind traveler fallback planning. This is medical-support context, not live bed, wait-time, dispatch, or specialist-availability truth.

Kind: live_observation Output: Destination and stay fallback-support strength when travelers need formal healthcare context.

Depends on: moph-health-facility-support

Active family

Park access context

Uses public DNP tourism dataset surfaces to expose whether national-park and protected-area planning has official dataset support behind it. This is park-planning context, not live closure, capacity, or ranger-availability truth.

Kind: live_observation Output: Protected-area and nature-trip planning confidence for destination and route decisions.

Depends on: dnp-park-tourism-support

Active family

Ferry fragility

Blends live TMD weather context with pier confidence to score island-chain fragility honestly.

Kind: derived_live Output: Island transfer reliability.

Depends on: tmd-weather-surface, source_confidence

Active family

Transport friction

Blends current weather, road burden, official highway support, source confidence, and Namtang transit-structure support into a live movement-friction family.

Kind: derived_live Output: Movement difficulty and backup strength.

Depends on: rain_risk, road_safety_risk, highway_transfer_friction, source_confidence, namtang-transit-structure

Live signal status.

The browser hydrates this from /api/signals. It shows which signal families are firing now, which entities look strongest or most fragile, and how many computed rows currently exist.

Registry surfaces.

Changed since last run

Browser refresh compares the latest persisted signal snapshots here.

Live signal dashboard

Generated by the live signal API. The browser hydrates current families, entity summaries, and signal rows here.

Live signal status updates in the browser from the signal API.

The static registry already knows about 41 signal families. Browser refresh fills this panel from the API with live computed rows.