Settings
Configure tenant connections and DAX complexity thresholds in the Soterre PBI Analyzer settings page.
Overview
The Settings page (gear icon in the top navigation bar) lets you manage three things:
- Tenant Connections — Add, edit, or remove Power BI Service connections
- DAX Thresholds — Customize how the Complex DAX flags score measure and column expressions
- Data Collection — Enable background CU history collection and set the daily collection time
Tenant Configuration
This is where you add your Power BI Service connections. Each tenant requires:
- Tenant ID, Client ID, Client Secret — Azure AD service principal credentials
- Metrics Workspace ID and Metrics Dataset ID — optional, for Capacity Monitoring
For step-by-step instructions, see Add a New Tenant.
For setting up the service principal itself, see Set Up Power BI Service Credentials.
DAX Thresholds
These thresholds control how the Complex DAX Measures and Complex DAX Columns flags score expressions.
For each measure or calculated column, the analyzer checks every metric against its threshold. If the value exceeds the threshold, penalty points are added. If it's below — 0 points. The final complexity score is the sum of all penalties.
Severity Levels
| Score | Severity | Result |
|---|---|---|
| < 6 | Low | Not flagged |
| 6 – 13 | Medium | Yellow flag |
| ≥ 14 | High | Red flag |
Threshold Settings
| Setting | Default | What It Controls |
|---|---|---|
| Length (chars) | 900 | Penalizes expressions longer than this character count |
| Length (lines) | 25 | Penalizes expressions with more lines than this |
| Paren depth max | 6 | Penalizes expressions with parentheses nested deeper than this |
| Branch count | 4 | Penalizes expressions with more IF/SWITCH branches than this |
| Nested control depth | 4 | Penalizes control functions (CALCULATE / iterators / FILTER / IF / SWITCH) nested deeper than this |
| CALCULATE count | 3 | Penalizes expressions with more CALCULATE calls than this |
| Iterator count | 3 | Penalizes expressions with more iterator functions (SUMX, AVERAGEX, MAXX, etc.) than this |
| Virtual table count | 2 | Penalizes expressions with more virtual table functions (SUMMARIZE, ADDCOLUMNS, SELECTCOLUMNS, etc.) than this |
| Repeated heavy calls | 4 | Penalizes any single heavy function (CALCULATE, an iterator, etc.) called more times than this |
Two more fields control the score-to-severity mapping: Medium score min (default 6) and High score min (default 14) — these match the severity table above.
How to Tune
- Too many flags? Increase the thresholds — this makes the analyzer more lenient.
- Not enough flags? Decrease the thresholds — this makes scoring stricter.
- Specific issue? Adjust only the relevant metric. For example, if you want to allow deep nesting but flag long expressions, increase Paren depth max and decrease Length (chars).
Threshold changes apply immediately to the next analysis run.