Risks Tab — Feature Guide

What it's for
The Risks tab consolidates everything the project has told the team to worry about. Three sources flow into it: deterministic detectors (the same engine that drives Sprint Risks on the Dashboard), AI-generated suggestions (refinements of detector output through a language model), and manual entries created by the team in retros, planning, or ad-hoc. Every risk has a probability × impact score, a category, an owner via RACI fields, mitigation actions, and (optionally) comments.
The audience is anyone responsible for project health: scrum master, tech lead, product manager, programme manager. Where the Alerts tab catches issue-level data problems, the Risks tab tracks team-level threats — capacity issues, scope creep patterns, deadline slips, recurring people problems, and external dependencies.
Top of the tab
The tab does not repeat its own name — the tab bar directly above already says Risks, and no other finished tab repeats its name either.
+ Add risk sits on its own line at the top right. It opens an inline form headed Add risk whose submit button reads Add (see Add risk form below). The wording matches the Actions tab and the Projects tab — Add to create, Delete to remove (Don, 2026-09-02).
Below it, one pale bar carries the counts on the left and two project-wide settings on the right:
- N open · N closed — open (non-closed) and closed risks across all sources.
- N critical · N high — among the open set, count by severity band. Each is omitted when it is zero.
- ✨ N AI generated — appears when there are unreviewed AI suggestions still in the pending list.
- AI risk suggestions (tick box) — show or hide the AI Generated section entirely. When off, the deterministic detectors still run; only the display of suggestions is suppressed. Switching it back on un-hides the same items without re-running anything.
- Auto-close risks when all mitigation actions complete (tick box) — when on, ticking the last open mitigation action on a risk closes the risk silently with reason mitigated. When off, the risk asks first (see The close prompt below).
Both tick boxes appear only where the screen has somewhere to save them.
Filters and sort
Five dropdowns sit in one row below the counts bar. Each carries its own name inside it, so the row reads Source: All Status: All Strategy: All Scope: All Sort: Score ↓, with no separate labels beside them. Sort sits at the right-hand end of the row.
- Source — All / Manual / AI. Manual shows only the risks the team typed — accepted AI risks are not included, because they were not typed. AI shows the pending suggestions and the accepted AI risks. All shows every section.
- Status — All / Open / Closed. The AI Generated section is hidden when Closed is selected, because suggestions are inherently open proposals.
- Strategy — All · Undecided · Avoid · Mitigate · Transfer · Accept · Escalate · Defer. Greyed out and returned to All when Status is Closed, rather than disappearing: "closed risks that still need escalating" is a question with no answer. Hovering the greyed dropdown says so.
- Scope — All / Program / Project / Sprint. Drives which scope-key the risk is filed against; sprint-level risks come from the per-sprint detectors (capacity hit, single-person load, mid-sprint scope creep).
- Sort — Score ↓ (P × I, highest first; default), Opened (most recent first), Closed (most recent close first), Owner (alphabetical). Sort applies to the register sections; AI suggestions retain detector emission order.
AI Generated section
A folding section, visible when Source is All or AI and Status is not Closed. Its header reads ✨ AI Generated (N) followed by the note Accept creates the risk immediately — no dialog; suggested mitigation actions attach automatically, so nobody has to press Accept to find out what it does. The whole section is drawn inside a dashed border.
Each suggestion is one row, not a card:
- Title, then on the same line · X% confidence · Suggested · Project · P:4 × I:4 (or the sprint's readable name in place of Project). Issue keys inside the title are links that open the issue in Jira.
- Evidence: the detector's plain-English reason on the line below ("Last 3 sprints completed 38, 32, 28 pts vs avg 36").
- Accept — one click creates the risk immediately. No dialog and no second Accept button: the suggestion disappears from AI Generated, and the new risk appears in the ✨ Accepted AI Generated section, scrolled into view, carrying Edit / Mark closed / Delete on its row and its mitigation actions and comments one click away inside the row's own detail. The risk carries the suggestion's title, its evidence as the description, its category, scope, probability, and impact; the response strategy starts Undecided so the owner makes that call deliberately; the suggested mitigation actions (curated catalog entry for the detector type when one exists, else the static list keyed by detector type) are attached automatically as linked open action items. Anything else — RACI, strategy, mitigation summary, Jira link, adjusted P/I — is set afterwards through the normal Edit, like any risk.
- Dismiss — removes the suggestion and stores the dismissal locally so the same detector won't surface it again until conditions change.

The register — three folding sections
The risks themselves sit in up to three folding sections, each with its own header and count:
- Manually Entered (N) — the risks the team typed. Only these.
- ✨ Accepted AI Generated (N) — risks that began as AI suggestions and were accepted. Kept apart from the typed ones (Don's ruling, 2026-08-25) so the register a team wrote by hand can be read on its own.
- Closed risks — N closed — folded away at the bottom while the Status filter is showing everything, so a long history doesn't bury the risks that still need a decision. Filtering deliberately by Closed lists them normally instead.
Each risk is one row of a card-like table — separated rows with a rounded border each, no column headings, and no coloured stripe down the left edge (removed 2026-08-25 so this tab and the Actions tab match).

Reading a row from left to right:
- Score badge — a round pale badge carrying the number and nothing else, coloured by severity band. Hovering it gives the working: Probability 5 × Impact 5 = 25 (critical).
- Arrow, icon and title — ▸ opens the row (see below); ✨ marks a risk that came from AI, ⚠ one that was typed; then the title.
- Information line under the title — Manual · or AI ·, the risk's category (Technical / People / Process / External / Schedule, with its description on hover; omitted on risks saved before the field existed), the scope (Program, Project · DEMO, or the sprint's readable name), then either Opened 21 Jul 2026 or, for a closed risk, Closed (mitigated). A linked Jira issue key appears at the end as a link that opens the issue.
- Strategy column — the response-strategy chip, with Decided <date> beneath it once a strategy has been chosen. Hovering that line gives the full timestamp and who decided.
- What is happening column — whichever of these apply: ↑ <escalation owner> in red for escalated risks, Review by <date> for deferred or accepted risks with a review date, Pick a strategy in amber when no strategy has been chosen, N of M actions done for the mitigation progress, and 🔔 N alerts currently match which jumps to the Alerts tab.
- Edit / Mark closed / Delete — on the row itself. Edit is hidden on closed risks; Mark closed only shows on open ones.
Opening a risk
Clicking the arrow or the title opens the risk in place, directly under its own row. The summary row stays put, so the score and the strategy are still in front of you while you work. Opening it is opening it for editing — the same form the Edit button opens — and beneath the form sit the two things you read rather than type:
Mitigation actions — a line reading Mitigation actions: N open · M done, itself foldable, listing each action with a tick box, the action text (a link into the Actions tab), owner and sprint. Ticking marks the action done; unticking reopens it.
An Add action button (only on open risks) opens an inline form with action text, optional owner, and a sprint dropdown defaulting to the active sprint (or Project scope when no active sprint). On save the action is created and immediately linked to this risk.
Comments — a line reading Comments (N), foldable, showing each comment with author, date, and text. An inline add-form takes comment text + optional author and submits with Enter or the Add button. Comments are stored per risk and rendered in creation order.
The close prompt
When every mitigation action on an open risk is done:
- Auto-close on → the risk closes silently as mitigated.
- Auto-close off → a green prompt appears on the row itself, outside the fold — ✓ All N mitigation actions complete. Mark this risk as closed? — with Yes, close and Not yet. It sits outside the fold deliberately: the app is asking the reader to decide something, and a folded row must never swallow a question. Not yet hides the prompt for this session.
Add risk form

An inline card that opens at the top of the tab, headed Add risk, from the + Add risk button (or an alert's Create risk); its submit button reads Add. (The Accept button on an AI suggestion does not open a form — acceptance is one click; see AI Generated section above.) Fields:
- Title (required).
- Description (optional).
- Category — dropdown (Technical / People / Process / External / Schedule, default Technical), the same picker the form inside an opened risk has. The chosen category shows on the row's information line.
- Scope — cascading: first pick Program or a project key; if a project is picked, optionally narrow to a sprint. The persisted
scopefield is derived (no project → program; project + no sprint → project; both → sprint). - Probability — 1–5 dropdown with tooltips: 1 very low (<10%), 2 low (10–30%), 3 medium (30–50%), 4 high (50–70%), 5 very high (>70%).
- Impact — 1–5 dropdown with tooltips: 1 negligible, 2 minor, 3 moderate, 4 major, 5 catastrophic.
- Score & severity readout —
P × I = N (Band)updates as the user adjusts P and I. - RACI — Accountable (required only when the response strategy is Transfer; otherwise optional — this is the risk's owner), Responsible, Consulted (comma-separated), Informed (comma-separated).
- Mitigation summary — short text describing the plan.
- Jira issue — optional issue key to link the risk to.
When the form is launched from an alert ("Create risk" on a category in the Alerts tab) it pre-fills category, evidence, and probability/impact from the alert's category mapping; the alert provenance is recorded so the N alerts currently match indicator can later light up.
Editing a risk
Edit on a row, and clicking the row's arrow or title, do the same thing: they open the risk in place, directly under its own row, with the same fields as the Add risk form and the values already filled in. Save updates the stored risk; Cancel closes the detail again.
Response strategy
Every risk also carries a response strategy — the team's decision about how to handle the risk while it is still open. Strategy is orthogonal to status (an open + accept risk is a standing decision to absorb the risk, not a closure). The seven values are Undecided, Avoid, Mitigate, Transfer, Accept, Escalate, and Defer; each renders as a coloured chip in the strategy column of the risk's row, with the date it was decided beneath it.
The six standard strategies
- Avoid (blue) — remove the source of the risk by changing scope, schedule, or approach. Plan change is required. Closing an Avoid risk uses closedReason: avoided and prompts for a closure note that references the plan change.
- Mitigate (amber) — accept the risk exists and take concrete actions to reduce its probability or impact. Default operational treatment. Auto-close on linked-action completion still applies.
- Transfer (teal) — move the risk to a vendor, insurer, or partner team. Requires an Accountable on save (you cannot transfer to no one).
- Accept (grey) — absorb the risk. Accept requires a rationale; an optional review-by date drives the Risk review due alert. The auto-close-on-actions-done rule is suppressed for accepted risks so an unrelated mitigation tick cannot silently close a standing decision.
- Escalate (red) — outside the team's authority; needs portfolio / leadership decision. Requires an Escalation owner. Surfaces in the Alerts tab under Escalated risks awaiting decision until the risk closes or strategy changes. Closing an escalated risk requires explicit confirmation.
- Defer (purple) — not enough information yet. Requires a Review-by date in the future. The risk drops out of the Top Open Risks widget until review-by minus 3 days, at which point it returns and an Alerts entry fires.
- Undecided (yellow) — legacy or first-render value; the chip prompts the owner to pick a strategy on next edit.
Strategy field, audit trail, rationale
- Strategy is set in the Response strategy radio group above the Mitigation summary field, in both the Add risk form and the form inside an opened risk. The default selection is Undecided — every team decision should be deliberate.
- Choosing Escalate reveals an Escalation owner field. Choosing Defer (or Accept) reveals a Review-by date picker (mandatory for Defer, optional for Accept).
- A Rationale textarea (max 280 chars) sits at the bottom of the group. It is required for Accept, Escalate, and Defer because the audit trail is the whole point for those strategies.
- Changing strategy stamps strategyDecidedAt and strategyDecidedBy with the current user, and appends an audit comment to the comments thread ("Don changed strategy from Mitigate to Accept.").
- Switching away from Mitigate / Avoid preserves the existing mitigation text and any linked actions; the row relabels the text as Historical mitigation: so it doesn't read like a current commitment.
Dashboard mix bar + sort priority
The Top Open Risks widget gains a strategy mix bar ("4 mitigate · 2 accept · 1 escalate · 3 undecided") underneath the header. Zero-count buckets are hidden. The widget sort puts Undecided and Escalate risks above Accept at the same severity score so the items demanding attention surface first. Defer risks are excluded from the widget until their review window opens (review-by minus 3 days).
Alerts
Two new categories appear in a Risk strategy domain on the Alerts tab:
- Escalated risks awaiting decision — every open risk with strategy Escalate. Message reads Awaiting decision from {Escalation owner} or Awaiting escalation owner when none is set.
- Risk review due — every open Defer (or Accept with review-by) risk where today has reached review-by minus 3 days. Past review-by renders as an error severity; within the lead window renders as a warning.
Clicking a row in either category navigates to the Risks tab with the risk scrolled into view.
Complete Sprint and Accept risks
The Complete Sprint dialog surfaces risks whose linked mitigation actions are all complete and offers a one-click close. Accept risks are excluded from that list because acceptance is a standing decision, not an actions-driven mitigation. Avoid risks closed through this path record closedReason: avoided instead of mitigated. Escalated risks do not block sprint completion.
Severity formula
Severity is probability × impact with bands:
- ≥ 15 → Critical (red).
- ≥ 9 → High (dark amber).
- ≥ 4 → Medium (amber).
- < 4 → Low (green).
The round score badge is filled pale in the band's colour and lettered in the matching strong colour — pale rather than solid, because the seriousness is the number itself. The Dashboard's Top Open Risks widget draws the same badge from the same definition, at a smaller size. The default sort is by score so critical risks float to the top.
Detectors that emit AI suggestions
The deterministic detectors that produce suggestions are documented in ALGORITHMS section 13. They include sprint-level detectors (low confidence, single-person load, mid-sprint scope creep, aging issues, capacity hit, untouched in active), project-level detectors (velocity decline, carry-over rising, deadline at risk, estimation quality declining, recurring actions, health trend dropping, critical sprint ahead), and cross-cutting detectors (oversized issues unsplit, and issues untouched in the active sprint).
Each detector has a configurable confidence threshold (default 60%); suggestions below the threshold are suppressed. The threshold is editable in Settings.
Empty / loading / error states
- No risks and no suggestions — No risks yet. Add one manually or accept an AI suggestion.
- Filters hide everything — No risks match the current filters. with a Clear filters button that returns Status, Scope and Strategy to All.
- Source = AI but no active suggestions — No AI-generated risks right now.
- Status = Closed and Source = AI — AI suggestions are hidden while filtering by closed status.
- AI loading — spinners next to the title-polish and mitigation lists; the form falls back to static suggestions on timeout or error so it is always usable.
Cross-cutting modes and settings
- Sprint mode — sprint scope filtering and per-sprint detectors require sprints; in no-sprint projects the Sprint scope option is hidden.
- Programs — the scope picker exposes all registered project keys; risks can be scoped to Program, a specific project, or a sprint within a project.
- AI provider key — when no key is configured, the AI Generated section still renders but title polish and mitigation-AI calls are skipped; static fallbacks are used.
How the numbers are computed
Probability × impact, banding, detector definitions, and confidence calculation are documented in ALGORITHMS section 13. Title polish and mitigation generation are documented in ALGORITHMS section 21.
Effects on other parts of the app
- Dashboard Top Open Risks widget — reads the same risk store and shows the highest-severity open risks, drawing the same round score badge from the same shared definition; clicking jumps back to this tab and scrolls the matching row into view.
- Tab badge — count of open risks on the Risks nav button.
- Notification engine — Critical risks fire a Blocker-severity notification on creation.
- Action items — accepting a suggestion or hitting Add action inside an opened risk creates rows in the Actions tab linked to this risk; ticking them done can auto-close the risk.
- Sprint card warnings — sprint-scoped risks light up the small ⚠ Risks badge on the corresponding sprint header.
- Alerts tab — Create risk in the Alerts tab is the inverse direction: alert evidence flows into the Add risk form with provenance.
- Actions tab — the two tabs are built to look and behave the same way: folding sections with one blue header bar, rows that open in place, and issue keys everywhere that open the issue in Jira.