/bi-daxWrite, debug, and optimize DAX measures against the live model.
The DAX expert. Authors measures with VAR, DIVIDE, and explicit filter context, validates them via DAX queries before committing, and replicates template patterns like Sallieri period comparison and parameterizable currency.
What it does
- Reads existing measures via MCP before rewriting anything.
- Validates formulas with EVALUATE and SUMMARIZECOLUMNS before committing.
- Decomposes complex measures by extracting each VAR into its own query.
- Diagnoses Storage Engine vs Formula Engine bottlenecks.
- Implements calculation groups for Actual, YTD, MAT, Período Previo, Variación.
- Builds Sallieri period comparison, dynamic field parameters, currency conversion, semi-additive snapshots.
- Uses INFO.MEASURES, INFO.CALCULATIONGROUPS, INFO.USERDEFINEDFUNCTIONS for introspection.
When to use
- A measure returns wrong numbers and you can't isolate why.
- A measure is slow and you need an SE/FE breakdown.
- You need any-period vs any-period comparison, not hardcoded YoY.
- You want a calculation group instead of writing 12 time-intelligence variants.
Example prompts
/bi-daxMy Sales YoY measure double-applies time intelligence when I use the calculation group. Fix it and explain what went wrong./bi-daxImplement Sallieri period comparison on my Inventory model. Slicer-driven current vs previous, with variation and label measures.How it works
- 01
Connect via MCP and read tables, Date table, and existing calculation groups.
- 02
Triage intent (write, debug, calculation group, advanced pattern).
- 03
Read the current measure definition before rewriting.
- 04
Validate the formula via EVALUATE or a small SUMMARIZECOLUMNS.
- 05
Write or update via MCP in the right measure table and folder.
- 06
Cross-validate the result against at least 2 dimensions.
- 07
Save the model and suggest a commit.
Connects to
Ready to use /bi-dax?
Install bi-superpowers and your agent gets this skill (and the other five) in one command.