Forum Discussion
How to Create a 4-Quadrant (Urgent vs Important) Decision Matrix in Power BI?
Hi everyone,
I’m looking to build a visual in Power BI that shows a 4-quadrant decision matrix based on Urgency and Importance. The quadrants should clearly represent:
-
Not Urgent & Not Important
-
Urgent but Not Important
-
Important but Not Urgent
-
Urgent and Important
Ideally, the visual should also show how many items fall into each quadrant and help with decision-making or prioritization.
What’s the best way to visualize this in Power BI?
Should this be done using a scatter plot with constant lines, custom visuals, or any other recommended approach?Any examples or guidance would be appreciated. Thanks!
Hi AnkitaaMishra , you can try these steps to get the desired results :
1. Data modelYour table should have:
Item_ID
Item_Name
Urgency_Score (numeric, e.g., 1–10)
Importance_Score (numeric, e.g., 1–10)
2. Create quadrant classificationDAX Decision Quadrant = SWITCH ( TRUE(), [Urgency_Score] >= 5 && [Importance_Score] >= 5, "Urgent & Important", [Urgency_Score] >= 5 && [Importance_Score] < 5, "Urgent but Not Important", [Urgency_Score] < 5 && [Importance_Score] >= 5, "Important but Not Urgent", "Not Urgent & Not Important" )3. Build the scatter plot
Field Value
X-axis Urgency_Score Y-axis Importance_Score Details Item_ID Legend Decision Quadrant Tooltips Item_Name, Owner, Due Date
4. Add quadrant boundaries
Analytics pane → Constant Lines
X-axis constant line: 5 (Urgency)
Y-axis constant line: 5 (Importance)
5. Show counts per quadrant
KPI Cards
Items Count = COUNTROWS ( 'Table' )Add 4 cards, each filtered by:
Decision Quadrant = <quadrant>
⭐Hope this solution helps you make the most of Power BI! If it did, click 'Mark as Solution' to help others find the right answers.
💡Found it helpful? Show some love with kudos 👍 as your support keeps our community thriving!
🚀Let’s keep building smarter, data-driven solutions together!🚀 [Explore More]
5 Replies
- GrowthNatives
Super User
Hi AnkitaaMishra , you can try these steps to get the desired results :
1. Data modelYour table should have:
Item_ID
Item_Name
Urgency_Score (numeric, e.g., 1–10)
Importance_Score (numeric, e.g., 1–10)
2. Create quadrant classificationDAX Decision Quadrant = SWITCH ( TRUE(), [Urgency_Score] >= 5 && [Importance_Score] >= 5, "Urgent & Important", [Urgency_Score] >= 5 && [Importance_Score] < 5, "Urgent but Not Important", [Urgency_Score] < 5 && [Importance_Score] >= 5, "Important but Not Urgent", "Not Urgent & Not Important" )3. Build the scatter plot
Field Value
X-axis Urgency_Score Y-axis Importance_Score Details Item_ID Legend Decision Quadrant Tooltips Item_Name, Owner, Due Date
4. Add quadrant boundaries
Analytics pane → Constant Lines
X-axis constant line: 5 (Urgency)
Y-axis constant line: 5 (Importance)
5. Show counts per quadrant
KPI Cards
Items Count = COUNTROWS ( 'Table' )Add 4 cards, each filtered by:
Decision Quadrant = <quadrant>
⭐Hope this solution helps you make the most of Power BI! If it did, click 'Mark as Solution' to help others find the right answers.
💡Found it helpful? Show some love with kudos 👍 as your support keeps our community thriving!
🚀Let’s keep building smarter, data-driven solutions together!🚀 [Explore More] - Kedar_Pande
Super User
Use a scatter chart with constant lines.
Create numeric columns: UrgencyScore, ImportanceScore (e.g. 1–10).
Scatter visual:
X‑axis = UrgencyScore
Y‑axis = ImportanceScore
Details = Task ID / Name
Add constant line on X and Y at your threshold (e.g. 5). That creates the 4 quadrants.
If this answer helped, please click Kudos or Accept as Solution.
-Kedar
LinkedIn: https://www.linkedin.com/in/kedar-pande - v-karpurapud
Community Support
Thank you for reaching out to the Microsoft Fabric community forum.
I would also like to thank you GrowthNatives and Kedar_Pande for your active participation and for sharing solutions within the community forum. Your contributions are truly valuable.
I hope the information provided helps resolve your issue. If you have any further questions or need additional assistance, please feel free to contact us. We are always here to help.
Best regards,
Community Support Team. - HarishKM
Super User
AnkitaaMishra Hey,
Few suggested stepsRecommended (native) — Scatter with dynamic quadrant lines
- Data: make sure Urgency and Importance are numeric measures/columns.
- Thresholds: create What‑If parameters (or measures) for the split points.
- XThreshold =
COALESCE(SELECTEDVALUE('UrgencyThreshold'[UrgencyThreshold Value]),
MEDIANX(ALLSELECTED(Items), Items[Urgency]))
- YThreshold =
COALESCE(SELECTEDVALUE('ImportanceThreshold'[ImportanceThreshold Value]),
MEDIANX(ALLSELECTED(Items), Items[Importance]))- Quadrant label (for tooltip/legend if needed):
- Quadrant =
VAR u = MAX(Items[Urgency])
VAR i = MAX(Items[Importance])
VAR x = [XThreshold]
VAR y = [YThreshold]
RETURN
SWITCH(TRUE(),
u <= x && i <= y, "Not Urgent & Not Important",
u > x && i <= y, "Urgent but Not Important",
u <= x && i > y, "Important but Not Urgent",
"Urgent and Important"
)- Counts per quadrant (for cards/tooltip):
- Q1_NotUrg_NotImp =
COUNTROWS(FILTER(ALLSELECTED(Items), Items[Urgency] <= [XThreshold] && Items[Importance] <= [YThreshold]))
- Q2_Urg_NotImp =
COUNTROWS(FILTER(ALLSELECTED(Items), Items[Urgency] > [XThreshold] && Items[Importance] <= [YThreshold]))
- Q3_NotUrg_Imp =
COUNTROWS(FILTER(ALLSELECTED(Items), Items[Urgency] <= [XThreshold] && Items[Importance] > [YThreshold]))
- Q4_Urg_Imp =
COUNTROWS(FILTER(ALLSELECTED(Items), Items[Urgency] > [XThreshold] && Items[Importance] > [YThreshold]))- Visual setup:
- Scatter: X = Urgency, Y = Importance, Details = Item ID, Tooltips = Quadrant + counts.
- Analytics pane: add X and Y constant lines using [XThreshold]/[YThreshold]; show data labels (names) to label axes.
- Optional: Size by impact, Legend by Quadrant.Quadrant shading (optional)
- Native scatter doesn’t shade quadrants. Use:
- Deneb (Vega‑Lite) to add two rect backgrounds for quadrant shading, or
- AppSource custom visuals: “Quadrant Chart by MAQ”, “xViz Quadrant Chart”, “ZoomCharts Advanced Scatter” (built‑in shading, labels, count aggregates).Alternative 2×2 grid (counts only)
- If you just need counts per quadrant, no coordinates:
- Create the four count measures above.
- Use a Matrix with a small helper table for Rows = Importance bucket (Important/Not), Columns = Urgency bucket (Urgent/Not), Values = a measure selected via SWITCH(TRUE()) to return the right count (or place four Cards).Tips
- Decide if thresholds are fixed, average, or median; What‑If parameters give users control.
- Add a tooltip page to show count and examples for each quadrant on hover.
- Use ALLSELECTED(...) in counts so slicers affect both points and counts consistently.
ThanksHaish K
If I resolve your issue. Kindly give kudos to this post and accept it as a solution so other can refer this.
- v-karpurapud
Community Support
We have not received a response from you regarding the query and were following up to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions.
Thank You.