NWS Alert Parameters Reference

This document covers two NWS-specific CAP parameters that EAS Station parses and displays on the Alert Detail page: VTEC and eventMotionDescription.

Both arrive in a CAP alert's properties.parameters object (keyed VTEC and eventMotionDescription) and are decoded in webapp/admin/api.py_extract_alert_display_data().


VTEC — Valid Time Event Code

Official reference: NWS Directive 10-1703, ver 9 (March 2025) https://www.weather.gov/media/vtec/VTEC_explanation_ver9.pdf

VTEC is a structured machine-readable string that NWS appends to every watch/warning/advisory product. It provides a canonical, unambiguous identifier for the event that survives text reformatting and allows downstream systems (like EAS Station) to link successive updates (issuance → extension → expiration) to the same event via the Event Tracking Number.

Two types exist:

Type Purpose
P-VTEC (Primary) All weather phenomena — the one EAS Station parses
H-VTEC (Hydrologic) Flood-specific addendum; adds crest time, severity, and cause

P-VTEC String Format

/k.aaa.cccc.pp.s.####.yymmddThhnnZ-yymmddThhnnZ/
 │ │   │    │  │ │    │              └─ end time
 │ │   │    │  │ │    └─ begin time
 │ │   │    │  │ └─ Event Tracking Number (ETN)
 │ │   │    │  └─ significance
 │ │   │    └─ phenomenon (2 letters)
 │ │   └─ issuing office (4-letter WFO ID)
 │ └─ action (3 letters)
 └─ product class (1 letter)

Real example: /O.EXP.KIWX.SV.W.0056.000000T0000Z-260327T0030Z/

Decoded:

Field Raw Meaning
Product class O Operational (live, not test)
Action EXP Expired
Office KIWX NWS Northern Indiana (Fort Wayne)
Phenomenon SV Severe Thunderstorm
Significance W Warning
ETN 0056 Event #56 for this season/office
Begin 000000T0000Z Ongoing at issuance (all-zeros convention)
End 260327T0030Z 2026-03-27 00:30 UTC

Field Reference

k — Product Class

Code Meaning
O Operational — a real, live product
T Test — do not broadcast
E Experimental
X Experimental VTEC in an operational product

aaa — Action

Code Meaning Notes
NEW New event First issuance
CON Continuing No change from previous update
EXT Extended in time End time pushed later
EXA Extended in area Additional counties/zones added
EXB Extended in area and time Both
UPG Upgraded e.g. Watch upgraded to Warning
CAN Cancelled Event ended early
EXP Expired Event reached its scheduled end time
COR Correction Fixes an error in a previous product
ROU Routine Scheduled statement (e.g. river forecast)

cccc — Office ID

The four-letter WFO (Weather Forecast Office) identifier, e.g.:

Code Office
KIWX NWS Northern Indiana (Fort Wayne, IN)
KCLE NWS Cleveland, OH
KIND NWS Indianapolis, IN
KIPX NWS Wilmington, OH

A full list is at https://www.weather.gov/srh/nwsoffices

pp — Phenomenon

Current codes from NWS Directive 10-1703 ver 9 (March 2025):

Code Phenomenon Code Phenomenon
AF Ashfall MA Marine
AS Air Stagnation MF Marine Dense Fog
BH Beach Hazard MH Marine Ashfall
BW Brisk Wind MS Marine Dense Smoke
BZ Blizzard RB Small Craft for Rough Bar
CF Coastal Flood RP Rip Current Risk
CW Cold Weather SC Small Craft
DF Debris Flow SE Hazardous Seas
DS Dust Storm SI Small Craft for Winds
DU Blowing Dust SM Dense Smoke
EC Extreme Cold SQ Snow Squall
EW Extreme Wind SR Storm
FA Flood (areal) SS Storm Surge
FF Flash Flood SU High Surf
FG Dense Fog SV Severe Thunderstorm
FL Flood (forecast point) SW Small Craft for Hazardous Seas
FR Frost TO Tornado
FW Fire Weather TR Tropical Storm
FZ Freeze TS Tsunami
GL Gale TY Typhoon
HF Hurricane Force Wind UP Freezing Spray ¹
HT Heat WI Wind
HU Hurricane WS Winter Storm
HW High Wind WW Winter Weather
HY Hydrologic XH Extreme Heat
IS Ice Storm ZF Freezing Fog
LE Lake-Effect Snow ZR Freezing Rain
LO Low Water
LS Lakeshore Flood
LW Lake Wind

¹ UP = "Heavy Freezing Spray" when significance is W or A; plain "Freezing Spray" otherwise.

Legacy codes (removed from the current directive but retained in EAS Station's lookup so archived alerts decode correctly):

Code Former Meaning Superseded by
BS Blowing Snow
EH Excessive Heat XH
HI Inland Hurricane Wind
HS Heavy Snow
HZ Hard Freeze
IP Sleet
LB Lake-Effect Snow and Blowing Snow
SN Snow
TI Inland Tropical Storm Wind
WC Wind Chill

s — Significance

Code Meaning Urgency level
W Warning Highest — imminent threat
A Watch Conditions favorable for threat
Y Advisory Less serious; nuisance level
S Statement Informational update
F Forecast Scheduled forecast product
O Outlook Long-range / probabilistic
N Synopsis Area weather synopsis

#### — Event Tracking Number (ETN)

A four-digit number that uniquely identifies a single event within a given calendar year for a given office and phenomenon/significance pair. All VTEC strings for the same event (NEW → CON → EXT → EXP) share the same ETN, making it possible to reconstruct the full history of an event from the alert archive.

ETNs reset to 0001 on 1 January each year.

Time Format — yymmddThhnnZ

Segment Meaning Example
yy 2-digit year 26 → 2026
mm Month 03 → March
dd Day 27
T Fixed separator
hh Hour (UTC, 00–23) 00
nn Minute (00–59) 30
Z UTC indicator

All-zeros convention: 000000T0000Z means the event was already in progress when the product was issued (common on CON, EXT, and EXP actions). EAS Station displays this as "Ongoing at issuance" rather than a timestamp.


H-VTEC (Hydrologic VTEC)

H-VTEC is a second VTEC string that accompanies P-VTEC on flood products. It adds river-gauge-specific information.

/nwsli.s.ic.yymmddThhnnZ.yymmddThhnnZ.yymmddThhnnZ.fr/
        │ │  │              │              │              └─ flood record status
        │ │  │              │              └─ flood end
        │ │  │              └─ flood crest
        │ │  └─ flood begin
        │ └─ immediate cause
        └─ flood severity

EAS Station does not currently parse H-VTEC strings (they only appear on river flood products and are not used for EAS broadcast decisions), but they may be visible in the raw VTEC parameter for Flash Flood and Flood Warnings.


eventMotionDescription — Storm Motion

Source: NWS CAP/GeoJSON parameter, populated for severe convective products (Severe Thunderstorm Warning, Tornado Warning, Tornado Emergency).

Format

Parts are separated by ...:

<ISO-timestamp>...storm...<direction>DEG...<speed>KT...<lat1>,<lon1> <lat2>,<lon2>...

Real example:

2026-03-27T00:21:00-00:00...storm...304DEG...31KT...40.56,-84.49 40.65,-84.15 40.75,-83.7
Segment Parsed value Meaning
2026-03-27T00:21:00-00:00 timestamp Observation time (ISO 8601)
storm phenomenon type Type of feature being tracked
304DEG 304° Direction the storm is moving toward (not from)
31KT 31 knots → 35.7 mph Storm speed
40.56,-84.49 40.65,-84.15 40.75,-83.7 track points Past positions, oldest first

Direction convention: Like a compass bearing, 0° = north, 90° = east, 180° = south, 270° = west. 304° = WNW. This is the direction the storm is moving toward, not the direction it came from.

Compass Conversion

EAS Station converts degrees to a 16-point compass label using:

dirs = ['N','NNE','NE','ENE','E','ESE','SE','SSE',
        'S','SSW','SW','WSW','W','WNW','NW','NNW']
idx  = int((degrees + 11.25) / 22.5) % 16
Degrees Label Degrees Label
0 / 360 N 180 S
22.5 NNE 202.5 SSW
45 NE 225 SW
67.5 ENE 247.5 WSW
90 E 270 W
112.5 ESE 292.5 WNW
135 SE 315 NW
157.5 SSE 337.5 NNW

Map Visualization

EAS Station plots the track data on the Alert Coverage Map as:

  • Solid dashed orange polyline — observed track (past positions)
  • Orange circle markers — each track point; the most recent is larger
  • Faint dotted extension — projected path ~30 minutes ahead, computed from the last known position using the reported speed and direction
  • Hollow circle — projected position marker

The 30-minute projection uses great-circle dead reckoning:

dist_km   = speed_kt × 0.5 hr × 1.852 km/kt
Δlat      = (dist_km / 111.32) × cos(direction_rad)
Δlon      = (dist_km / (111.32 × cos(lat_rad))) × sin(direction_rad)

This is an approximation adequate for the short distances involved (~30–50 km).


Code Locations

Component File Function / Symbol
VTEC parser webapp/admin/api.py _parse_vtec()
VTEC action lookup webapp/admin/api.py _VTEC_ACTIONS
VTEC phenomenon lookup webapp/admin/api.py _VTEC_PHENOMENA
VTEC significance lookup webapp/admin/api.py _VTEC_SIGNIFICANCE
VTEC program lookup webapp/admin/api.py _VTEC_PROGRAMS
Storm motion parser webapp/admin/api.py _parse_event_motion()
Caller (both) webapp/admin/api.py _extract_alert_display_data()
Template — VTEC display templates/alert_detail.html {% if ipaws_data.vtec_parsed %} block
Template — storm motion display templates/alert_detail.html {% if ipaws_data.storm_motion %} block
Map track rendering templates/alert_detail.html addStormTrackToMap()
Data injection to JS templates/alert_detail.html alertData.stormMotion

This document is served from docs/reference/NWS_ALERT_PARAMETERS.md in the EAS Station installation.