What should a risk register template in Excel contain?
risk register template for excel is a key topic in modern project management and teamwork. Eighteen columns sounds excessive until you try to answer a board question with twelve. Each column exists because a specific decision needs it: what could happen, how likely, how bad, who owns it, what we are doing, what is left after the response, and when we last looked.
| Column | Purpose | Type |
|---|---|---|
| ID | Stable reference (R-001) | Text, validated pattern |
| Category | Source of risk (technical, supplier, regulatory, people, financial) | List |
| Risk description | Cause and effect in one sentence | Text |
| Trigger | The observable signal that the risk is materialising | Text |
| Probability | Likelihood, 1–5 | Whole number |
| Impact | Severity, 1–5 | Whole number |
| Score | Probability × Impact | Formula |
| Rating | Critical, High, Medium, Low | Formula |
| Cost impact | Financial exposure if it happens | Currency |
| EMV | Probability (%) × cost impact | Formula |
| Owner | One named person, not a team | List |
| Response strategy | Avoid, reduce, transfer, accept | List |
| Response actions | What will actually be done | Text |
| Due date | When the action completes | Date |
| Residual probability | Likelihood after the response | Whole number |
| Residual impact | Severity after the response | Whole number |
| Residual score | Residual probability × residual impact | Formula |
| Status | Open, Mitigating, Closed, Realised | List |
| Next review | Date of the next scheduled check | Date |
Two design rules keep this manageable. First, one owner per row. A risk owned by “the programme” is owned by nobody, and it will be the one that lands. Second, the description must contain both cause and effect: “Single supplier for payment gateway, so a supplier outage stops checkout for up to 48 hours” is testable; “supplier risk” is not.
What does the sheet layout look like?
Four sheets, each with one job.
Sheet 1 — `Register`. The table above, converted to an Excel Table with `Ctrl+T` and named `Register`. The table matters: structured references make every formula readable and survive inserted rows. Freeze the header row, set column widths so the description column is wide and the numeric columns narrow, and add an autofilter on Rating and Owner.
Sheet 2 — `Lists`. Every dropdown value in one place: categories, owners, strategies, statuses, and the probability and impact scale with its definitions and percentage mapping. Keeping the scales here means the analytical meaning of a 4 is written down, not remembered.
Sheet 3 — `Dashboard`. Counts by rating, total EMV, a 5×5 heat map, overdue reviews, and the top ten risks by score.
Sheet 4 — `Changelog`. Date, ID, field changed, old value, new value, who changed it. Excel has no audit trail, so you build a minimal one. Five rows a week is enough to reconstruct most disputes.
The probability scale is worth writing explicitly, because “4” means nothing without it:
| Score | Label | Rough likelihood | Mapping used in EMV |
|---|---|---|---|
| 1 | Very low | Under 10% in the project window | 5% |
| 2 | Low | 10–25% | 15% |
| 3 | Medium | 25–50% | 40% |
| 4 | High | 50–75% | 65% |
| 5 | Very high | Over 75% | 90% |
The percentages are planning assumptions, not science. What matters is that they are stated once, used consistently, and reviewed when the portfolio’s actual loss history becomes available.
Join Doitify Today
Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.
How do you calculate the score and rating?
With the table named `Register` and columns referenced by name, the score is one multiplication:
`=[@Probability]*[@Impact]`
The rating is a nested IF, ordered from the highest band down:
`=IF([@Score]>=20,”Critical”,IF([@Score]>=12,”High”,IF([@Score]>=5,”Medium”,”Low”)))`
Both are written once in the first data row of a table and fill down automatically when a new row is added. That is the main practical reason to use an Excel Table rather than a plain range: the formula propagates, and the references stay readable when someone else opens the file in eight months.
Expected monetary value needs the probability mapping. If the mapping lives in `Lists!E2:E6`, a lookup converts the 1–5 score into a percentage:
`=[@Cost impact]*INDEX(Lists!$E$2:$E$6,[@Probability])`
For readers on Excel 365, XLOOKUP is clearer and can return a friendly message instead of an error:
`=XLOOKUP([@Owner],People[Name],People[Email],”unassigned”)`
Residual score follows the same pattern as the inherent score, and the reduction is the number that justifies the response budget:
`=[@[Residual Probability]]*[@[Residual Impact]]`
`=[@Score]-[@[Residual Score]]`
One caution on the rating thresholds. Twenty for critical means a 4×5 or a 5×4. If your organisation defines critical differently, change the numbers in one place, ideally a small parameters block on `Lists`, and reference it, rather than editing forty formulas.
How do you stop the register degrading into free text?
Data validation, applied before the first risk is entered. It is the difference between a register you can count and a register you can only read.
Dropdown lists. Select the probability column, then `Data → Data validation → Allow: List → Source: =Lists!$B$2:$B$6`. Repeat for impact, category, owner, strategy, and status. Tick “Ignore blank” off for required fields and add an input message that states the rule, for example “1–5 whole number; see the scale on the Lists sheet”.
Whole numbers only. For probability and impact, use `Allow: Whole number`, `between 1 and 5`, with `Error alert: Stop`. This single setting eliminates the most common corruption: someone typing “high” into a numeric column and every downstream formula silently returning zero.
Date discipline. For due dates, `Allow: Date`, `greater than or equal to =TODAY()`, with a warning style rather than a stop style if you backfill historical risks. For review dates, a custom formula keeps the horizon sane:
`=AND(ISNUMBER(H2),H2>=TODAY(),H2<=EDATE(TODAY(),24))`
ID format. Use a custom validation formula such as `=AND(LEFT(A2,2)=”R-“,LEN(A2)=5,ISNUMBER(VALUE(RIGHT(A2,3))))` so IDs stay sortable and unique-looking. Then add a duplicate check with conditional formatting: `=COUNTIF($A:$A,$A2)>1`.
Conditional formatting for severity. Select the score column and add two rules: `=$H2>=20` fills red, `=AND($H2>=12,$H2<20)` fills amber, `=AND($H2>=5,$H2<12)` fills yellow. Because the rules read the calculated score, they update the moment probability or impact changes.
The measurable effect is not cosmetic. In a register of 42 risks with 6 input fields each, 252 cells are exposed to typing error. At a plausible 18% free-text error rate, that is about 45 bad cells, and at 12 minutes of cleanup each, roughly 9 hours of rework a year, before counting the decisions made on wrong numbers.
How do you build the heat map and dashboard?
The heat map is a 5×5 grid with probability down the side and impact across the top, and each cell counts risks in that combination:
`=SUMPRODUCT(–(Register[Probability]=$A5),–(Register[Impact]=B$4))`
Then apply a colour scale to the grid, or three conditional formatting rules based on the row and column headers multiplied together. The point of the map is concentration: twelve medium risks in one cell is a different conversation from twelve spread across the grid.
The rest of the dashboard is counting and summing:
- Critical count: `=COUNTIF(Register[Rating],”Critical”)`
- Total exposure: `=SUM(Register[EMV])`
- Exposure by owner: `=SUMIF(Register[Owner],$A12,Register[EMV])`
- Overdue reviews: `=COUNTIFS(Register[Status],”Open”,Register[Next review],”<"&TODAY())`
- Realised this quarter: `=COUNTIFS(Register[Status],”Realised”,Register[Next review],”>=”&DATE(2026,10,1))`
- Top ten by score: `=SORT(FILTER(Register[[ID]:[Risk description]],Register[Score]>=12),8,-1)`
That last formula spills a live list, so it needs empty space below it and will break if someone types into the spill range. On older versions, use `LARGE` with `INDEX` and `MATCH`, or accept a static sorted copy that is refreshed manually. Be honest about which one you built.
A single-cell summary using LET keeps the dashboard readable:
`=LET(crit,COUNTIF(Register[Rating],”Critical”),tot,COUNTIF(Register[Status],”Open”),crit&” critical of “&tot&” open”)`
What do the numbers look like in practice?
Example 1 — score, rating, residual. A payment supplier risk scores probability 4, impact 5: 20, critical. The response is a secondary provider plus a contractual service credit. Residual probability 2, residual impact 3: residual score 6, medium. The score reduction is 14, which is the number to put in the business case for the mitigation.
Example 2 — expected monetary value. Cost impact if the risk lands is $240,000 at 65% probability, giving an EMV of $156,000. After mitigation, probability falls to 15% and the cost impact to $60,000, so residual EMV is $9,000. The expected saving is $147,000 against a mitigation cost of $35,000, a net expected benefit of $112,000. That is a defensible investment case, and it took two cells.
Example 3 — portfolio roll-up versus contingency. A programme holds 42 open risks: 3 critical, 9 high, 18 medium, 12 low. Total EMV is $1.84 million. The approved contingency is $1.2 million, a gap of $640,000. Two options follow: fund the gap, or reduce exposure by acting on the three critical risks, whose combined EMV is $910,000. This is the calculation that turns a register into a budget conversation.
Example 4 — data quality. Before validation, 18% of the 252 input cells contained text where numbers were expected, giving 45 faulty cells. After validation, the number is zero, and the dashboard stops silently under-counting. The cost of the fix was about forty minutes of setup, once.
Example 5 — review load. Forty-two risks reviewed monthly at four minutes each is 168 minutes, or 2.8 hours. Quarterly review of the twelve low risks instead saves about 2.4 hours a quarter and loses nothing material, provided the trigger column is meaningful. Cadence should follow score, not sentiment.
What are the trade-offs of running risk in Excel?
Strengths. Full control of the model, no per-seat cost, works offline, exports cleanly for auditors, and every calculation is inspectable. For a single owner managing forty risks on a fixed cadence, it is often better than a SaaS tool nobody maintains. Excel also handles the financial modelling that most project tools do badly, including EMV, scenario analysis, and Monte Carlo add-ins.
Weaknesses. No concurrency: two people editing a shared file will conflict, and OneDrive co-authoring helps but does not solve row-level locking. No notifications: a due date in Excel does not chase anyone. No audit trail beyond what you build. Version sprawl is the classic failure: `RiskRegister_v7_FINAL_JM.xlsx` on a desktop that nobody else can see. Macro-enabled workbooks also carry a security policy problem in many enterprises, which is why the formulas here avoid macros entirely.
The structural limit. A spreadsheet holds data; it does not hold workflow. The moment risk management needs an assigned action with a reminder, an approval, an escalation, and a link to the delivery plan, Excel becomes the wrong layer. It will still be the right place for the model.
What mistakes break an Excel risk register?
Six recur, and each is fixable in an afternoon.
- Mixed scales. Probability on a 1–5 scale and impact on a 1–3 scale produces scores that cannot be compared. Pick one scale and document it.
- Free-text statuses. “In progress”, “ongoing”, and “WIP” are three statuses that COUNTIF sees as three categories.
- No residual column. Without it, the register cannot show that mitigation changed anything, and the response plan becomes decorative.
- Owners that are teams. Reassign to a named person who has accepted the row.
- Scores without dates. A risk scored last year is a historical opinion. The review date is what makes the number current.
- The register that never reaches the meeting. If risk is not an agenda item with a decision, the register is a compliance artefact. Fifteen minutes monthly, three risks discussed, one decision recorded.
Where does a project platform take over?
Doitify is our product, so read this as disclosure. The handover point is workflow: when each risk needs an assigned action, a due date, a status that others can see, and an escalation path, a spreadsheet stops being sufficient. Doitify holds projects, tasks, checklists, owners, due dates, Kanban and Gantt views, workload views, and reports, so a risk response can be a real task with a real owner rather than a row with a date that nobody watches.
The honest division: keep the quantitative model in Excel if you need EMV, scenario work, or a format your finance team trusts, and move the actions and the review cadence into the platform. What you should not do is duplicate both, because two registers drift apart within a quarter.
FAQ
Conclusion
A risk register template for Excel earns its place when the cells calculate: probability times impact, a rating that updates, a residual score that proves mitigation worked, and an EMV that can be compared with the contingency. Add validation so the numbers stay numbers, and a dashboard so the pattern is visible without reading forty rows.
Build it once, name the table, document the scale, and give every row one owner. Then decide deliberately where the model ends and the workflow begins. Excel will hold the arithmetic indefinitely; it will never chase a due date, and knowing which of those two jobs you are asking of it is the whole trick.
If this post on risk register template for excel was helpful, you might also enjoy Resource Planning Software: What to Look For and How to Reduce Context Switching at Work (2026 Guide).
Join Doitify Today
Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.