← Back to Power BI Infographics

The Definitive DAX Filter Context – Water Plant

Data flows from the Data Model through filters. Row-Level Security is a locked tap. CALCULATE() can rewrite filters (except RLS).

Controls

🔒 Locked
RLS keeps only 80% of the model.
90%
85%
70%
60%
95%
When ON: override report/page/visual/slicer/line withFilter Strength
88%

Hover any tank/pipe for notes. Flow = model × RLS × active filters (or CALCULATE override).

Active Flow
Interactive Filters
CALCULATE()
RLS Lock
1) Data Model (Pool)All data before any filter100% 2) Row Level SecurityLocked tap: can't be overridden80% 3) Report Filter90% 6) Slicer / Interactions60% 5) Visual Filter70% 4) Page Filter85% 7) Line-level Filter (visual)95% 8) CALCULATE()Rewrites filters (not RLS)— 9) Result: Evaluation Context
Made for DAX explorers 🧭
Active rows: — (from 1,000,000)

DAX Filter Context Hierarchy

This hierarchy demonstrates how filters are applied to your data model. Filters are applied sequentially, with each subsequent filter further reducing the active dataset.

Filter Type Behavior Override with `CALCULATE()`
Row-Level Security A security filter applied at the data source. No, this filter is **locked** 🔒.
Report Level Applies to all pages and visuals in the report. Yes
Page Level Applies to all visuals on a single page. Yes
Visual Level Applies to a single visual. Yes
Slicer/Interactions Applied by user interaction with visuals or slicers. Yes
Line-level filter A filter defined on an individual DAX expression line. Yes
`CALCULATE()` A powerful DAX function that can modify or remove filter contexts. N/A, it is the override mechanism itself.