Emergency Action Level (EAL) thresholds per
NEI 99-01,
encoded as deterministic predicates the eal_classify tool evaluates
against a scenario's projected time-series state.
Predicate grammar (v1) — single-tag comparisons with optional
DURATION dwell, composed with AND / OR and explicit parens:
«TAG» <op> <value> [for >= <duration>]
<op> ∈ { <, >, <=, >=, ==, != }
<value> is a number, quoted string, or bareword
DURATION units: s (seconds), min (minutes), h (hours)
Rules below are organised by class (UE → Alert → SAE → GE). Each row
must declare a unique IC code within its class. Rules marked
ic: manual are placeholders for ICs the v1 grammar cannot yet
express (set-of-conditions, multi-tag correlations) — these are
evaluated by an operator, not by the classifier.
Predicates are deterministic and time-aware. A DURATION clause
resets if the underlying comparison is violated for any sample in the
series — addressing the post-Fukushima emphasis on sustained-condition
EALs.
The classifier returns the highest class reached over the
scenario timeline, with the moment first reached + the IC code that
triggered it. NEI 99-01's persistence rule ("once SAE is declared,
it persists until termination criteria are met") is preserved.
Tags used in predicates must exist in the canonical tag catalogue.
The wiki validator enforces this at build time.
This rule table is the source of truth for eal_classify. Build
step emits _eal-rules.json next to _manifest.json; samsinn fetches
the JSON.