Rules
Rules turn raw data conditions into issues. Define what to watch for once, and the rule engine fires an issue every time something matches — anchored to the right band-month so it lands in the river automatically.
The rules list
Open Rules from the main nav:

The list has a search box (matches name and description), a status select (All Rules, Active, Disabled), and a Tag filter. Each row is one rule with its name and short description; disabled rules render dimmer.
Top-right:
- Run All Rules — admin-only, with a 5-minute cooldown enforced server-side. Useful after a big rule edit or a rule import.
- Create Rule — opens the builder for a new rule.
Toggling a rule on or off from a row in the list saves immediately, with an undo toast. Toggling the same switch in the builder footer is local until you hit Save.
Building a rule
Click any rule (or + Create Rule) for the builder modal:

Two tabs across the top: Configure and Test. The Configure tab is in three sections.
Rule info
- Rule name and Description.
- Data source — which metric view the rule reads from. Picking a source unlocks the field set the branches can use; changing the source on an existing rule wipes the branches without warning, so commit to the source up front.
- Default severity — Critical, Warning, or Info. Branches can override.
- Assign to — auto-assign the issue to a teammate, or leave Unassigned.
- Issue title template — the title that gets stamped on each issue. Mustache-style placeholders pull from the data row.
- Tags — for grouping and filtering in the issue list.
Branches
Each branch is a condition + an outcome. Branches evaluate top-down, first-match-wins, so order matters — drag to reorder. A branch with no conditions is a catch-all (renders with an amber pill).
Reactions
What happens when an issue is created. Two toggles:
- Send notification — uses each user's notification settings to decide channel and digest cadence.
- Create task — auto-create a follow-up task, with a role / priority / due-in-days configuration.
The footer carries the Active toggle, Delete rule, Cancel, and Save (the label cycles Create rule → Save changes → Saved).
Editing existing rules
Editing structural fields (data source, branches, severity, title template) on a rule that already has open issues triggers an impact check. If matches exist, you get a cascade dialog with three choices:
- Keep editing — stay in the builder, no save.
- Save as new rule — fork the rule under a new ID; the old one stays intact.
- Save and delete old issues — overwrite the rule and discard issues fired by the previous version. No undo.
Renaming alone is not structural — no dialog fires.