WX Monitor

Dashboard Stats Map Guide
A practical, plain-English explanation of alerts, triggers, colors, and what the dashboard is actually doing.

Alert Guide (Operations Manual aligned)

This page explains every tile, every trigger, and the color / scoring logic in one place. It is designed so that a first-time user can understand the dashboard at a glance, while still being precise and traceable to OM references where applicable.

Important: this tool is an advisory monitor. It does not replace SOP, captain’s judgement, or official operational documentation.

Alert State OK MED HIGH CRIT Base airport BUD

1) How to read the dashboard

Reading

The dashboard is a network monitor built around METAR/TAF. Every row is an aerodrome. The system parses the raw strings and computes a few consistent “signals” (visibility, RVR, ceiling, weather codes, gusts) plus an overall severity score.

  • Tiles (top): counts + affected airports (IATA/ICAO). They are fast “what changed?” indicators.
  • Table: operational view by airport with alert state, worst values, triggers, age, raw METAR/TAF.
  • Hover tooltips on tiles: explain “why this exists” and show OM reference links for the rule.
  • Base airports: your priority list (from base.txt). In tiles they appear first and are visually highlighted.

Note: Some OM concepts require runway condition, runway in use, RWYCC, or SNOWTAM data. This system runs with zero manual inputs, so those parts are treated conservatively and marked as advisory.

2) Colors & severity

Visual language

You will see color in two places: (a) the row alert pill (OK/MED/HIGH/CRIT), and (b) tile border glow. The color represents a computed severity state driven mainly by the score.

Severity buckets (used across the dashboard)
OK Score < 20
MED Score 20–44
HIGH Score 45–69
CRIT Score ≥ 70 (or escalated by wind/snow pillars)
TO/LND PROHIBITED Policy tag (OM-based advisory). Displayed in triggers when inferred.
LVTO Policy tag: VIS/RVR below 550 m band (OM-A take-off minima).
LVP required Policy tag: VIS/RVR below 400 m → LVP must be in force.

Base airports are highlighted with a subtle pulse. This is not a different severity; it is a priority indicator.

3) Score, CIG, and how the score is calculated

Math

The score is a simple, deterministic sum of points from: Visibility, RVR, Ceiling (CIG), weather codes, and wind gusts. It is capped at 100.

CIG (Ceiling) is derived as the lowest of any BKN, OVC, or VV layer in the report. Layers like FEW and SCT are not a ceiling and are ignored. Example: BKN008 → ceiling 800 ft.

Signal What is measured Points added
Visibility (VIS) Parsed in meters (METAR: explicit, TAF: minimum across all visibility groups) ≤150:+35, ≤175:+30, ≤250:+26, ≤300:+24, ≤500:+18, ≤550:+16, ≤800:+12
RVR Minimum RVR found in RVR groups (both METAR + TAF) ≤75:+28, ≤200:+22, ≤300:+18, ≤500:+12
Ceiling (CIG) Lowest BKN/OVC/VV in feet <500ft:+22, <800ft:+12
Weather codes Presence of selected WX tokens TS:+22, FZFG:+18, FG:+14, SN:+10, RA/DZ:+8, BR:+6
Wind gust Maximum gust (G) in knots ≥25:+4, ≥30:+6, ≥40:+10

Final alert state is derived from the score, then optionally escalated by the wind/snow “pillars” so that clear operational hazards cannot be hidden by a single low score dimension.

4) Tile-by-tile triggers and OM references

Details

Each tile is a fast summary of a specific condition. Tiles show the number of affected airports and a prioritized list of IATA/ICAO codes. Clicking a tile on the dashboard filters the table to the airports that trigger it.

ENG ICE OPS Priority Operational icing / very low vis flag

Trigger: METAR indicates FZFG and METAR visibility ≤ 150 m.

Why it matters: highlights a “high consequence” combination: freezing fog + extreme low visibility. This is also pinned to the top in sorting.

OM reference: OM-A 8.3.8.2 (Icing) – Clean Aircraft Concept (policy context).

CRITICAL CRIT Composite state

Trigger: overall score ≥ 70, or escalated by wind/snow pillars.

Why it matters: multiple hazards / minima-adjacent values are present. Treat as “needs attention now”.

OM reference: this is an internal dashboard severity layer (not a single OM paragraph), but it is built from OM-relevant observables.

VIS/RVR < 300 VIS RVR Below CAT II band

Trigger: worst-case visibility < 300 m or minimum RVR < 300 m (computed from METAR + TAF).

Why it matters: 300 m is a key operational reference band (e.g., CAT II minimum RVR).

OM reference: OM-A 8.1.4 (Approach & landing minima; CAT II RVR ≥ 300 m).

TS / CB WX Thunderstorm / convective risk

Trigger: TS appears in METAR or TAF.

Why it matters: TS implies convective risk; company policy is avoidance. “Overhead / approaching” cannot be reliably inferred from raw strings, so treat this tile as a strong caution flag.

OM reference: OM-A 8.3.8.1 (Thunderstorms avoidance / warnings).

WIND GUST Gust highlighting (advisory)

Trigger: gust ≥ 25 kt in METAR or TAF.

Why it matters: gusts drive handling risk and performance margins. Crosswind limit checking is handled by the separate XWIND tile (estimated).

OM reference: gust tile is an operational highlight; crosswind limits are per OM-B 1.3.1 (see XWIND).

SNOW WX Snow phenomena present

Trigger: snow-related tokens present (SN, SHSN, BLSN, and combined groups containing SN) in METAR or TAF.

Why it matters: contamination, braking, and operational limits can tighten rapidly. Prohibitive heavy precipitation is flagged separately under TO PROHIB.

OM reference: OM-A 8.3.8.7 (Heavy precipitation – takeoff prohibited) as policy context.

TO PROHIB STOP OM policy layer: inferred prohibition flags

Trigger (policy inference from METAR/TAF tokens):

  • TS or CB/TCU detected (TS in METAR/TAF, and CB/TCU keywords when present).
  • Heavy precipitation / freezing / hail: +SN, +GS, +SG, +PL, FZRA/+FZRA, GR/+GR.

Why it matters: these are OM-defined “do not take off” weather elements. The system can only see the tokens, not local tactical context; treat as a strong stop signal for investigation.

OM reference: OM-A 8.3.8.1 (TS) and OM-A 8.3.8.7 (Heavy precipitation – TO prohibited).

LVTO MINIMA OM policy layer: take-off minima bands

Trigger: reference VIS/RVR < 550 m. If < 400 m, an additional “LVP required” tag is shown. If RVR < 125 m, a hard-stop tag is shown.

How it is computed: if any RVR group exists, RVR is used; otherwise worst-case VIS is used.

OM reference: OM-A 8.1.4.4 (Take-off minima; LVP below 400 m; absolute minimum 125 m with required visual aids).

XWIND WIND OM policy layer: estimated crosswind exceedance

Trigger: estimated crosswind component exceeds the company limit (OM-B 1.3.1), based on a best-runway estimate.

How it is computed:

  • Runway headings/widths come from data/runways.json (if available).
  • Wind uses the maximum of steady speed and gust.
  • Runway condition is inferred conservatively from METAR/TAF tokens (DRY / WET / CONTAM).
  • If runway width is known and <45 m → “narrow runway” limits are applied.

Why it matters: a fast, network-wide “heads-up” that some airports may be outside crosswind policy limits. Always confirm against the actual runway in use and actual condition/RWYCC.

OM reference: OM-B 1.3.1 (Crosswind limitations including gusts).

VA STOP Volcanic ash indication

Trigger: token VA present in METAR or TAF.

Why it matters: OM policy requires avoidance of medium/high contamination and visible ash. METAR/TAF tokens alone do not represent ash polygons, but any VA mention is treated as a high-importance signal.

OM reference: OM-A 8.3.8.6 (Volcanic ash).

5) FAQ / troubleshooting

Help
“Why is the table showing WORST VIS that differs from METAR VIS?” WORST VIS logic

WORST VIS is computed as the minimum of: (a) METAR visibility, and (b) the minimum visibility found in any TAF visibility groups. This is intentionally conservative for planning/monitoring.

“Why LVTO is triggered when there is no RVR?” VIS fallback

LVTO uses RVR if any RVR groups exist. If not, it falls back to worst-case VIS. This matches the principle that you must still consider visibility minima even when RVR is not reported.

“XWIND is flagged but the runway in use is different.” Advisory nature

XWIND is advisory. Without runway-in-use data, the system computes crosswind for available runways and picks the best. It is meant to surface potential crosswind issues quickly, not to replace actual performance / runway selection logic.

“The dataset tile shows old time. Is the dashboard broken?” GitHub Actions pipeline

The dashboard is static HTML. Data is refreshed by GitHub Actions, which updates data/latest.json and then redeploys Pages. If schedules are paused or rate-limited, the site can appear stale until the next successful run.