Skip to content

Rules and statuses

Sanam edited this page Oct 7, 2026 · 1 revision

RouteRuleSet.V1 has four rules. Each one gives a status and a reason for every leg and day.

Rule id Breach when Watch when
jharicast.official-orange.v1 DHM has Orange or Red for a district the leg crosses DHM has Yellow
jharicast.road-blocked.v1 a DoR closure in force lies within 2 km of the road
jharicast.hill-rain.v1 a model's day maximum on the leg's hill sections is over 64 mm, or at least 50 percent of ensemble members are a model is at 85 percent of 64 mm or more, or at least 30 percent of members are over
jharicast.gust.v1 a model's day maximum gust on the leg is over 40 km/h, or at least 50 percent of members are a model is at 85 percent of 40 km/h or more, or at least 30 percent of members are over

Thresholds are strict: a value equal to one passes. They can be changed per route:

var rules = RouteRuleSet.V1 with
{
    HillRain = ThresholdRule.HillRain with { Threshold = 50 },
    Gust = ThresholdRule.Gust with { Threshold = 35 },
};

Statuses

Status Means
Breach The rule is broken.
Watch Close to the threshold, or a minority of members over it. Recheck.
Pass Not broken, on the data there was. Never "safe".
Unknown The source the rule reads did not answer, so the rule cannot say.

The leg's overall status is the worst of its rules, ranked Breach, Watch, Unknown, Pass (RouteRuleSet.Worst). An Unknown never becomes a Pass.

Official levels and dates

DHM's maps cover three dates per bulletin. A leg gets the level for its own date.

Leg date Official rule
Covered by the newest bulletin DHM's level for each district crossed
Inside OfficialHorizonDays (default 3) but not covered, because DHM missed an issue Unknown
After the horizon Pass with the reason "no official warning": none issued yet

An official warning is never lowered by a model (ADR-0005). In the storm the rules were built from, the models were lower than DHM in 14 of 28 province-days, all in the mountains.

Hill sections

Rain counts only on hill sections, found from ground elevation along the road: 150 m of range within 5 km, or above 700 m. These defaults have not yet been tuned against measured routes. Without elevations every sample counts as hill, the cautious reading.

What changed

AssessmentDiff.Compare(previous, current) returns status changes only. A forecast moving from 70 mm to 90 mm on a rule already broken is not a change.

Clone this wiki locally