Risk Matrix Builder

Paste your risk register, set where Critical, High, and Medium start, and see every risk on a 5×5 heat map and in ranked order. Then take the same scoring into Power BI, including the cell colors for the matrix visual.

Bands (score = likelihood × impact)

Scores at or above each number fall into that band; anything below Medium is Low. Defaults match the risk register tutorial.

Critical2score 15+
High2score 9+
Medium3score 4+
Low1score below 4

Heat map

Likelihood →
5
0
0
0
0
0
4
0
105
0
101
0
3
0
0
106
0
108
2
0
0
103
107
104
1
0
0
102
0
0
1
2
3
4
5

Impact →

Each cell is colored by the band its own likelihood × impact falls in, and shows how many risks sit there.

Ranked

RiskLIScoreLevel
RISK-01Key supplier delivery delay4416Critical
RISK-08Regulatory approval delay3515Critical
RISK-04Single point of failure in power supply2510High
RISK-06Software defect rate exceeds threshold339High
RISK-05Test facility unavailable during critical window428Medium
RISK-07Key personnel attrition248Medium
RISK-03Budget overrun on subsystem integration236Medium
RISK-02Requirements change after design freeze133Low

The same scoring as DAX measures

Risk Score and Risk Level with your bands, built on Current Likelihood and Current Impact from the tutorial, plus a color measure that turns its 5×5 matrix visual into this heat map.

Risk Score =
[Current Likelihood] * [Current Impact]

Risk Level =
SWITCH(
    TRUE(),
    [Risk Score] >= 15, "Critical",
    [Risk Score] >= 9, "High",
    [Risk Score] >= 4, "Medium",
    "Low"
)

-- Background color for each cell of the 5x5 matrix visual:
-- Format > Cell elements > Background color > fx > Format style: Field value
Matrix Cell Color =
VAR CellScore =
    SELECTEDVALUE(DimLikelihood[Likelihood]) * SELECTEDVALUE(DimImpact[Impact])
RETURN
    SWITCH(
        TRUE(),
        CellScore >= 15, "#FCA5A5",
        CellScore >= 9, "#FDBA74",
        CellScore >= 4, "#FDE68A",
        "#BBF7D0"
    )

Free, with no sign-in and no request limit. Everything runs in your browser, and nothing you paste is sent anywhere.

A score is for sorting, not measuring. Likelihood and impact are ordinal ratings, so a 12 isn't “twice as risky” as a 6, and a 4×2 and a 2×4 score the same while calling for different responses. Use the bands to decide what gets attention first, and read the ratings themselves before deciding what to do.

The risk register tutorial builds this in Power BI from a register with assessment history, and Risk Score & Heat Map covers the pattern on its own. Or browse all the Power BI tools.