We've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now
Hi Fabric Community,
I'm working on a turnover rate calculation in Power BI and running into a challenge with how filters affect my headcount denominator.
Here’s the setup:
Table A contains employee profile data (e.g., employment status, career stream, worker type).
Table B contains termination records (e.g., termination date, reason).
I calculate turnover rate as:
Turnover Rate = Terminations / Average Headcount
✅ What I Need:
The termination count should respond to filters (e.g., career stream, location, time).
The average headcount should:
Be calculated over completed months in a selected time period (monthly, quarterly, annually).
Respond to filters from Table A (e.g., career stream).
Ignore filters from Table B (to avoid inflating the turnover rate).
❌ What’s Going Wrong:
When I apply filters from Table B (like termination reason), the headcount shrinks.
When I try to remove filters using REMOVEFILTERS(Table B), the headcount becomes static and doesn’t respond to filters from Table A.
🔍 What I’ve Tried:
Using CALCULATE([Monthly Headcount], REMOVEFILTERS(Table B))
Wrapping AVERAGEX over filtered months
Creating disconnected tables for filtering
💡 What I’m Looking For:
Best practices for keeping headcount filter-responsive to employee attributes but immune to termination filters.
Whether disconnected tables or alternate modeling approaches are better.
Any DAX patterns or modeling tips that have worked for others.
Thanks in advance for your help!
Solved! Go to Solution.
Hi @snwileu7 ,
Thank you for reaching out to Microsoft Fabric Community.
You can fix this by making your headcount measure ignore filters from the Terminations table while still responding to Employee filters.
Average Headcount =
CALCULATE(
AVERAGEX(VALUES('Date'[MonthYear]), [Monthly Headcount]),
REMOVEFILTERS('Terminations'),
KEEPFILTERS(VALUES('Employees'))
)
This keeps the denominator stable while reflecting attributes like career stream or location.
Ensure relationships flow Date --> Employees --> Terminations (single direction).
Your turnover rate = Terminations / Average Headcount will then behave correctly across all filters.
Hi @snwileu7 ,
May I ask if you have resolved this issue? Please let us know if you have any further issues, we are happy to help.
Thank you.
Hi @snwileu7 ,
I wanted to check if you had the opportunity to review the information provided and resolve the issue..?Please let us know if you need any further assistance.We are happy to help.
Thank you.
Hi @snwileu7 ,
Thank you for reaching out to Microsoft Fabric Community.
You can fix this by making your headcount measure ignore filters from the Terminations table while still responding to Employee filters.
Average Headcount =
CALCULATE(
AVERAGEX(VALUES('Date'[MonthYear]), [Monthly Headcount]),
REMOVEFILTERS('Terminations'),
KEEPFILTERS(VALUES('Employees'))
)
This keeps the denominator stable while reflecting attributes like career stream or location.
Ensure relationships flow Date --> Employees --> Terminations (single direction).
Your turnover rate = Terminations / Average Headcount will then behave correctly across all filters.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |