Skip to content

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:

  1. Tenant Connections — Add, edit, or remove Power BI Service connections
  2. DAX Thresholds — Customize how the Complex DAX flags score measure and column expressions
  3. 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

ScoreSeverityResult
< 6LowNot flagged
6 – 13MediumYellow flag
≥ 14HighRed flag

Threshold Settings

SettingDefaultWhat It Controls
Length (chars)900Penalizes expressions longer than this character count
Length (lines)25Penalizes expressions with more lines than this
Paren depth max6Penalizes expressions with parentheses nested deeper than this
Branch count4Penalizes expressions with more IF/SWITCH branches than this
Nested control depth4Penalizes control functions (CALCULATE / iterators / FILTER / IF / SWITCH) nested deeper than this
CALCULATE count3Penalizes expressions with more CALCULATE calls than this
Iterator count3Penalizes expressions with more iterator functions (SUMX, AVERAGEX, MAXX, etc.) than this
Virtual table count2Penalizes expressions with more virtual table functions (SUMMARIZE, ADDCOLUMNS, SELECTCOLUMNS, etc.) than this
Repeated heavy calls4Penalizes 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.