Format your DAX — and find what is slowing it down.
Paste a measure. You get clean formatting plus a review of the patterns
that quietly cost performance: the same measure evaluated five times,
SUMX wrapped around FILTER, division that
breaks on zero, hard-coded dates. The code is parsed in this tab and
never uploaded.
Shortcut: ⌘/Ctrl + Enter to run.
// Your formatted DAX will appear here
Want the checks turned into working measures?
The free Time Intelligence Starter Pack ships a marked date table and twelve measures that already avoid every trap this tool flags.
How the check works
The tool tokenises DAX — strings, comments and quoted table names included — then applies rules that can be decided from the syntax alone. It is deliberately conservative: when the intent depends on runtime data, it stays silent instead of guessing.
What does it check for?
Repeated evaluation of the same measure, nested CALCULATE, IFERROR around aggregates, SUMX/AVERAGEX over FILTER, COUNTROWS(FILTER(...)), bare division without DIVIDE, EARLIER, SUMMARIZE used to add columns, hard-coded DATE() literals, FILTER(ALL(...)), AND()/OR() functions, and deep nesting.
Is my DAX uploaded anywhere?
No. The formatter and every rule are plain JavaScript running in this tab, with no backend call and no account. You can turn off your network and reload the page to confirm. The site itself uses cookie-consent based analytics for page traffic — your formula is not part of that.
Does a clean result mean my measure is correct?
No. These are syntactic heuristics, not a semantic analyser. A measure can pass every rule and still return the wrong number. Treat the output as a second pair of eyes, not as a test suite.
Why not just use DAX Formatter?
DAX Formatter, by SQLBI, is excellent at formatting and is the industry standard — use it if that is all you need. This tool adds a review layer aimed at learning: every issue links back to the tutorial that explains the pattern.