The Risk Register is a structured, Gantt-integrated risk management tool built directly into DPlan. Log risks, score them automatically, define mitigation actions and contingency plans, and let DPlan fire smart early-warning triggers when project data changes. No separate spreadsheet needed — everything lives in the .dplan file alongside your tasks.
Click the Risks tab in the view bar at the top of DPlan (between Reports and Settings). The tab shows a ⚡ lightning count badge when one or more smart triggers are currently firing.
You can also reach it from the Today Panel — any triggered risk card links directly to the register.
| Field | Description |
|---|---|
| Title | A clear one-line description of the risk event |
| Category | One of 10 predefined types or a custom type you add |
| Scope | Where in the project this risk lives — Project, Phase, Task, or Resource |
| Probability | Low / Medium / High |
| Impact | Low / Medium / High |
| Score | Auto-computed: Probability × Impact on a 1–9 scale |
| Response Strategy | Avoid / Mitigate / Transfer / Accept |
| Action | The specific step being taken to prevent or reduce the risk |
| Smart Trigger | A predefined condition DPlan evaluates automatically (see below) |
| Watch For | A manual note — external signals you monitor yourself |
| Contingency Plan | What you will do if the risk actually occurs |
| Owner | Person or role responsible for monitoring this risk |
| Status | Open / Monitoring / Mitigated / Occurred / Closed |
DPlan uses a 3×3 probability–impact matrix, giving scores from 1 to 9:
| Score | Label | Badge | When |
|---|---|---|---|
| 7–9 | Critical | 🔴 | High probability AND high/medium impact, or high impact AND high/medium prob |
| 4–6 | Moderate | 🟠 | Medium combination of probability and impact |
| 1–3 | Low | 🟢 | Low probability or low impact, or both |
The score is recomputed live as you change probability or impact — no Save button needed.
Each risk must be scoped to one of four levels. This controls where badges appear in the Gantt and task list.
| Scope | Icon | Use For | Badge Appears On |
|---|---|---|---|
| Project | 📋 | Regulatory, market, strategic, funding risks that affect the whole project | Sidebar project name (critical count only) |
| Phase | 📁 | Risks affecting an entire phase or stage (linked to a summary task) | Phase task row + end of summary Gantt bar; faint tint on child task bars |
| Task | ✅ | Risks tied to a specific task or milestone | Task row + Gantt bar / milestone diamond |
| Resource | 👤🔧📦 | Key person, equipment failure, or supply chain risks tied to a resource | Every task row where that resource is assigned |
DPlan ships with 10 industry-standard categories covering all project types:
| Category | Typical Risks |
|---|---|
| 💰 Financial | Budget overrun, funding withdrawal, cost uncertainty |
| ⚙️ Technical | Architecture failure, integration issues, technology choices |
| 📅 Schedule | Timeline slippage, deadline pressure, estimation errors |
| 👥 Resource | Key person departure, equipment breakdown, material shortage |
| 🔗 Dependency | External team delays, third-party API outages, vendor failure |
| ✅ Quality | Defect rates, standards compliance, acceptance criteria |
| 💬 Communication | Unclear requirements, stakeholder misalignment |
| 🔒 Security | Data exposure, access control, compliance vulnerabilities |
| 🌐 External | Regulatory changes, market shifts, weather, political factors |
| ⚖️ Legal | Contract disputes, IP issues, liability, permit delays |
Inside the expanded risk row, below the Category dropdown, there is a small "+ Add custom type…" input. Type the category name and press Enter. It is added to the project's category list and selected immediately. Custom categories are stored in the .dplan file and appear in the dropdown for all risks in that project.
Examples: Regulatory Approval (pharma), Environmental (construction), Safety Certification (aerospace).
Based on the PMBOK standard, four response types are available:
| Strategy | Meaning | Example |
|---|---|---|
| Avoid | Change the plan to eliminate the risk entirely | Remove the risky feature from scope |
| Mitigate | Reduce the probability or impact | Cross-train a backup developer |
| Transfer | Shift the impact to a third party | Insurance, fixed-price contract with vendor |
| Accept | Acknowledge it, no proactive action | "We will deal with it if it happens" |
Each risk can have one smart trigger — a predefined condition DPlan evaluates automatically every time you open the Risk Register view. No background process, no server — computed on demand from existing project data.
When a trigger fires, the risk row shows a ⚡ icon, the Risks tab shows a count badge, and triggered risks appear in the Today Panel under "⚡ Risk Triggers".
| Type | Group | What DPlan checks | Threshold |
|---|---|---|---|
| Task overdue by N days | Schedule | End date past today by at least N days and not complete | Days (default 3) |
| Task not started N days after start date | Schedule | Start date passed by N days and status = not-started | Days (default 2) |
| Task progress stuck for N days | Schedule | Progress hasn't changed in N days (tracked from last save) | Days (default 5) |
| Milestone missed | Schedule | Milestone end date is past today and not complete | — |
| Predecessor task incomplete | Schedule | A dependency task is not done when this task's start date is reached | — |
| Cost overrun exceeds N% | Budget | Actual cost > fixed cost × (1 + N/100) | % (default 20) |
| Actual cost reaches N% of budget | Budget | Actual cost ÷ fixed cost × 100 ≥ N | % (default 80) |
| Phase completion below N% | Phase | Average progress of child tasks < N% | % (default 40) |
| Phase has more than N overdue tasks | Phase | Count of overdue tasks in the phase > N | Tasks (default 2) |
| SPI drops below N | EVM | Schedule Performance Index (from EVM) < N | Ratio (default 0.8) |
| CPI drops below N | EVM | Cost Performance Index (from EVM) < N | Ratio (default 0.8) |
| Blocker added to linked task | Activity | Any task in scope has a comment flagged as a blocker | — |
| Task status changed to On Hold | Activity | Any task in scope has status = on-hold | — |
| Task status changed to Cancelled | Activity | Any task in scope has status = cancelled | — |
| None (manual only) | — | No automatic evaluation — rely on Watch For note | — |
The Watch For field is a plain text area for external signals that DPlan cannot detect automatically. Examples:
The Watch For note is visible only in the expanded row — it is your reminder during your weekly risk review, not an automatic alert.
Change a risk's status directly from the collapsed row without expanding it — the most common action during a review meeting.
| Status | Meaning |
|---|---|
| Open | Risk identified, no active action yet. Default on creation. |
| Monitoring | Risk is being actively watched. Trigger acknowledged. |
| Mitigated | Mitigation action has been applied. Risk probability/impact reduced. |
| Occurred | The risk event has happened — it is now an active issue. Row turns red-tinted. |
| Closed | Risk no longer relevant. No badges shown for closed risks. |
Right-click any task row (left panel) or Gantt bar (timeline). The context menu includes ⚠ Add Risk. Clicking it:
Risk: [task name]Open any task (double-click on Gantt or press Enter). The task modal header includes a Log Issue button (red, top-right). To raise a risk instead, right-click the task row first (before opening the modal), or close the modal and use the right-click menu on the task row.
Click anywhere on a collapsed risk row to expand it. All fields become editable inline. Click the row header again (or click another row) to collapse. Changes are saved on every field blur.
The Status dropdown is visible in the collapsed row — change status without expanding. This is optimised for weekly review meetings where you move through all risks quickly.
Expand the risk row. Click 🗑 Delete Risk at the bottom. A confirm prompt appears inline — click Yes, delete to confirm. Deletion cannot be undone with Ctrl+Z (it is immediate).
Risk badges (⚠) appear directly in the task list and on Gantt bars so you see risk context without switching to the Risk Register view.
The Today Panel (HOME → Today button) includes a ⚡ Risk Triggers section when any smart triggers are firing. Each card shows the risk title, its scope label, and the trigger type. Clicking a card navigates to the Risk Register.
This section can be disabled in Settings → Risk Register → Show triggered risks in Today Panel.
Click Export ▾ → Print / PDF in the register header. A formatted risk table opens in a new window with all risks, including the mitigation action, watch note, and contingency plan in expandable detail rows. The browser print dialog opens automatically. Use Save as PDF in the print dialog.
Click Export ▾ → CSV. A UTF-8 BOM CSV downloads, compatible with Excel, Google Sheets, and Jira. All fields are included.
When exporting the Project Journal (Export ribbon → Task Journal), a Risk Register chapter is appended automatically (if there are any risks and the setting is enabled).
Go to Settings → Feature Toggles → ⚠ Risk Register to configure:
| Setting | Effect when OFF |
|---|---|
| Enable Risk Register (master toggle) | Hides the Risks nav tab, removes all badges, stops all trigger evaluation. Zero performance overhead. |
| Show badge on Project | Hides critical risk count on sidebar project name |
| Show badge on Phases | Hides ⚠ badge on phase rows and Gantt summary bars |
| Show badge on Tasks | Hides ⚠ badge on task rows and Gantt bars |
| Show badge on Resources | Hides ⚠ badge on tasks where at-risk resource is assigned |
| Enable trigger evaluation | Stops all 14 smart trigger types from running |
| Evaluate [scope] triggers | Skips triggers scoped to that level (Project / Phase / Task / Resource) |
| Show triggered risks in Today Panel | Removes ⚡ section from the Today Panel |
| Include Risk Register in Journal Export | Omits the risk chapter from Project Journal HTML |
Copied tasks do not carry their risks with them — each pasted task starts with a clean risk slate. If you need risks on pasted tasks, add them after pasting.
| Key | Action |
|---|---|
| Enter on a row | Expand / collapse the risk row |
| Escape | Collapse the expanded row |
| Tab | Move between fields inside the expanded row |
Risks are stored in project.risks inside the .dplan JSON file. The field is optional — projects without it load normally and start with an empty register. No migration is needed for existing projects.
Custom category types are stored in project.riskCategories alongside the risks array.
See also: Issue Log, WBS Tree View, Tags, Comments & Blockers, Earned Value (EVM), Reports, Settings.