Changelog
A running record of meaningful additions and fixes to the Power BI content on this site. Site design, theming, and infrastructure changes aren't tracked here.
2026-11-05
- –Launched the FMEA Calculator: paste failure modes to get RPNs and High/Medium/Low action priority, with a severity override that flags rare but serious failure modes RPN alone would rank low, plus the matching DAX.
- –Every tool page now has its own preview image when shared, and the Tools and More menus in the header were rebuilt.
2026-11-04
- –Launched the Field Parameter Generator: list measures or columns with display names, sort order, and optional groups to get the field parameter DAX, a slicer preview, and a dynamic title measure.
- –Launched the Risk Matrix Builder: paste a risk register to get a 5×5 heat map, scores, adjustable Critical/High/Medium bands, and a ranked list, plus the DAX for Risk Score, Risk Level, and the matrix visual's cell colors.
2026-11-03
- –Launched the Reliability Calculator: paste a failure log or enter totals to get MTBF, MTTR, availability, failure rate, and mission reliability, with a per-asset breakdown that flags single-failure assets and the matching DAX measures.
- –Linked the free tools from the docs pages, tutorials, and cheat sheets that cover what each one generates.
2026-11-02
- –Launched the EVM Calculator: enter BAC, PV, EV, and AC to get CPI, SPI, variances, EAC, ETC, VAC, and TCPI, with a plain-English status, a cost-vs-schedule chart, three EAC methods side by side, and the matching DAX measures. Also added a free tools section to the homepage.
2026-11-01
- –Added a Tools page that collects every generator in one place, and launched the Format String Builder: custom format strings for K, M, and B, currency, percentages, and negatives in parentheses, with a live preview and a dynamic format string for automatic K/M/B.
- –Launched the Time Intelligence Generator: pick a base measure and get YTD, prior year, YoY %, rolling 12 month, and running total measures, either as separate measures (or one DAX query view script) or as a calculation group, with fiscal year support and a month-by-month preview.
- –Launched the Date Table Generator: pick a range, fiscal year start, week start, and columns, and get a date table to paste into Power BI as DAX or Power Query M, with a row preview and the sort-by-column settings it needs. Free, with no request limit.
2026-10-29
- –Diagram 26: Running Total. A staircase grid shows which dates FILTER(ALL(...)) keeps for every row of the visual, why MAX() still returns the current row's date, and how adding a Year condition makes the total restart each January.
- –Diagram 27: Percent of Total. One numerator against three denominators (ALL, ALLEXCEPT, and none at all), with the matrix visual each one produces, so the every-row-shows-100% mistake is visible at a glance.
- –Diagram 28: RLS Role Matrix. Four roles against one model, showing which tables each role's filter reaches, which it can't (filters don't flow back up a relationship), and why a documented full-access role and a forgotten one look identical in Power BI.
- –Diagram 29: Variables. A variable is computed once, where it's declared, and stored as a value, so wrapping it in CALCULATE() later quietly changes nothing. Added that mistake to the page too.
- –Diagram 30: Date Tables. Each column's job on real rows across a July fiscal year boundary, why a date table built from sales dates has gaps, and how one order lands in a different fiscal year depending on which date relationship is active.
- –Diagram 31: Field Parameters. The real three-column table Desktop generates (display name, hidden NAMEOF() reference, order), and one chart switching from Revenue by Category to Profit by Region. Also corrected how slicer labels are renamed: edit the display-name string, no calculated column needed.
2026-10-26 – 2026-10-28
- –Eleven more anatomy diagrams, bringing the total to 22, focused on how DAX evaluates filters and iterations: CALCULATE() (filter context before and after, plus a second diagram for context transition), SUMX(), FILTER(), ALL(), ALLEXCEPT() & REMOVEFILTERS(), RANKX(), and one for every systems-engineering pattern: EVM Metrics, a Risk Score & Heat Map 5×5 matrix, FMEA & RPN Scoring (the severity override that catches a dangerous failure mode with the lowest RPN on the register), a failure timeline for MTBF, MTTR & Availability, and a requirements-to-tests matrix for Coverage & Verification. All five use the same datasets as their tutorials (EVM dashboard, risk register, FMEA dashboard, reliability dashboard, traceability matrix) so every number matches.
- –Three more, bringing the total to 25: Merge Queries (the nested table column, and how a duplicate key silently inflates a total on expand), Unpivot (headers becoming values, and nulls dropping out), and Time Intelligence (the exact months DATESYTD, SAMEPERIODLASTYEAR, DATEADD, and DATESINPERIOD each hand to CALCULATE).
- –Fixed a misleading example on Row Context: a fact-table calculated column dividing by
[Total Sales]was presented as context transition working correctly, when it actually returns about 100% on every row. The section now explains why, and shows the correct form.
2026-10-24 – 2026-10-25
- –Took anatomy diagrams beyond single functions into data modeling, with six more: Relationships, Bridge Tables, Many-to-Many, Slowly Changing Dimensions, Composite Models, and Aggregations.
- –Redesigned the homepage to embed a working DIVIDE() playground, with one-click presets, and the full LOOKUPVALUE() anatomy diagram directly, instead of only linking to them.
- –Added a Power BI Desktop Keyboard Shortcuts Cheat Sheet — DAX formula bar editing, report canvas, and table/matrix navigation shortcuts, verified against Microsoft's own documentation.
2026-10-21 – 2026-10-23
- –Introduced a new visual format: "function anatomy" diagrams that break a function down into numbered, color-coded pieces tied to a worked example. Replaced the old ASCII Star Schema diagram with a real SVG version, then shipped four more, each using a shape matched to how that function actually evaluates: LOOKUPVALUE(), SWITCH(), RELATED(), and Table.SelectRows(). Surfaced on the homepage as a second way to learn, alongside the live playgrounds.
- –Added an M Case Sensitivity playground — bringing the live playground count to 75 — and fixed a real bug along the way: two existing playgrounds had been miscategorized since they were added, so the playground browser's DAX / Power Query M filter was showing and hiding them incorrectly.
2026-10-17 – 2026-10-20
- –Added a dedicated CALCULATETABLE() page and nine more playgrounds, several of which caught real bugs while being built: Running Totals, Table.TransformColumnTypes() vs. Table.TransformColumns(), Recursive Functions (Factorial), Merge vs. Append (fixed a silent column-name collision bug), Measure Dependencies, UDF val vs. expr parameters, Query Folding order, and Table.Buffer().
2026-10-03 – 2026-10-08
- –Added real, downloadable
.csvsample data for all 6 tutorials, verified byte-for-byte against each tutorial's own source data. - –Added three blog posts: Direct/Active Relationship Ambiguity Error, Systems Engineering DAX Patterns Cheat Sheet, and "Visual Has Exceeded the Available Resources".
- –Added List.Transform() vs. Table.AddColumn(), Calculated Tables (refresh-time vs. live-measure behavior), and Filter Context (cross-filtering between visuals) playgrounds.
2026-09-26 – 2026-09-29
- –Added a Build an FMEA Dashboard tutorial with its matching FMEA / RPN Scoring pattern reference, all RPN math verified independently before shipping.
- –Added List.Accumulate(), List.Generate() (an off-by-one boundary condition), and two DAX playgrounds for COUNTX() and sorting a column by another column.
2026-09-12 – 2026-09-24
- –Added a DAX Text Functions Cheat Sheet and two error-message posts: A Table of Multiple Values Was Supplied and CALCULATE Used in a True/False Expression.
- –Added around 15 more playgrounds across DAX and Power Query, including RANKX() Skip vs. Dense ranking, USERELATIONSHIP(), LOOKUPVALUE(), RELATEDTABLE(), Table.ReplaceValue(), DISTINCTCOUNT() vs. DISTINCTCOUNTNOBLANK(), COUNTROWS() vs. COUNT() vs. COUNTA(), SUMX(), SELECTEDVALUE(), Table.SelectRows(), Table.AddColumn() vs. Table.TransformColumns(), EARLIER(), and CALCULATE() + ALL() + FILTER().
2026-09-05 – 2026-09-11
- –Added around 10 more playgrounds, including KEEPFILTERS(), VALUES() vs. DISTINCT(), ADDCOLUMNS() vs. SELECTCOLUMNS(), CROSSFILTER(), IFERROR(), ALL() vs. ALLSELECTED(), Merge Queries join-kind behavior, Table.Group(), and Unpivot Columns vs. Unpivot Other Columns.
- –Added tag filtering to the Blog and search + language filtering to the Playground index.
2026-09-04 – 2026-09-05
- –Added four new DAX Patterns pages built around real systems and program engineering scenarios, each paired with its full tutorial walkthrough: Earned Value Management (EVM) Metrics, Risk Score & Heat Map, Coverage & Verification (Requirements Traceability), and Reliability Metrics (MTBF, MTTR & Availability).
- –Switched the documentation section to a new layout with a tabbed navbar (Get Started, DAX, Power Query, Modeling & Visuals, Service & Governance) for faster jumping between topics, and made better use of the screen on wide monitors.
2026-09-02 – 2026-09-04
- –Added 10 more interactive "Try it live" playgrounds to the Power Query and DAX references, bringing the total to 32 live examples across the site: DateTime.LocalNow(), List.Distinct() & List.Contains(), LEFT(), RIGHT() & MID(), BLANK() vs 0, TRIM(), UPPER() & LOWER(), DATEDIFF(), CALENDAR() vs CALENDARAUTO(), DATEADD() vs PARALLELPERIOD(), UNION(), EXCEPT() & INTERSECT(), and TODAY() & NOW(): Calculated Column vs Measure Timing.
2026-08-29
- –Closed a major documentation gap between DAX and Power Query: added 19 full Power Query M pages covering table, list, text, and custom functions, error handling, date/duration functions, and source connectors — including Custom Functions, Table.TransformColumnTypes(), List.Accumulate(), Error Handling (try...otherwise), and Sql.Database(). Each linked from the M Function Reference.
- –Added two more error-message posts: There Were Too Many Elements in the Enumeration (a Table.Pivot duplicate-key error) and We Cannot Convert the Value Null to Type Table.
- –Added a dedicated Pricing page for the DAX Formula Builder and Ask AI Pro tier, linked from the main navigation.
2026-08-27 – 2026-08-28
- –Added four more Power Query pages closing the biggest remaining gaps: Table.SelectRows(), Table.AddColumn(), Table.Pivot() & Table.Unpivot(), and Merge vs. Append.
- –Added six more error-message blog posts, continuing the pattern of titling posts after the literal error text: Web.Contents Can Only Accept a Literal String, There Isn't Enough Memory to Complete This Operation, OLE DB or ODBC Error, and DAX Comparison Operations Do Not Support....
2026-08-26
- –Launched Ask AI — a page-scoped AI chat panel on every documentation page, free up to 5 questions a day.
2026-08-24 – 2026-08-25
- –Launched the DAX Formula Builder — describe a calculation or transformation in plain English and get back a real DAX measure or Power Query M step, free up to 5 requests a day.
- –Added DAX User-Defined Functions (UDFs), DIVIDE, IF, SUMX, COUNTROWS, DISTINCTCOUNT, and EARLIER.
- –Added two new tutorials: Build a Risk Register Dashboard and Build a Reliability (MTBF/MTTR) Dashboard.
2026-08-11
- –Added a DAX Function Reference — a categorized index of common DAX functions, linking to the full explanations where available.
- –Launched the Blog — practical fixes and cheat sheets, starting with Fix a Circular Dependency in DAX, Power Query's "field wasn't found" error , and a DAX Time Intelligence Cheat Sheet.
2026-08-10
- –Built out the Microsoft Fabric section: OneLake, Lakehouse, Data Warehouse, Data Factory, Direct Lake Mode, and Fabric Capacity & Cost Management.
- –Added RELATED & RELATEDTABLE, LOOKUPVALUE, SELECTEDVALUE, SWITCH, RANKX, TOPN, SUMMARIZE, USERELATIONSHIP, and Performance Optimization.
- –Filled in several placeholder pages that had little or no real content, across Modeling, Power Query, and AI-Assisted Power BI.
- –Added worked Advanced Editor examples: error handling with
try...otherwise, and what a UI-built merge actually generates. - –Fixed 11 broken internal links and wired two pages that existed but weren't reachable from navigation back into the site.
2026-08-06
- –Added Microsoft Fabric — OneLake, core workloads (Lakehouse, Warehouse, Data Factory, Real-Time Intelligence), and how Direct Lake connects Power BI to Fabric data.
- –Added a documentation landing page at
/docs, which previously had no page of its own. - –Added a Governance section — RLS Role Matrix, Gateway & Refresh Architecture, and Report Theme JSON Files.
2026-08-05
- –Added Dataflows, Deployment Pipelines, Field Parameters, and Aggregations.
- –Added Composite Models — combining multiple data sources in one model, cross-source relationships, and query performance.
2026-08-04
- –Added Row-Level Security — static vs. dynamic RLS,
USERPRINCIPALNAME()-based dynamic security, and common mistakes. - –Added DirectQuery vs. Import — storage modes, composite models, and when to use each.
- –Added Bookmarks & Interactivity — bookmarks, drill-through, and report page tooltips.
- –Added the remaining Power BI Service pages: Workspaces, Dashboards, Refresh.
- –Added the remaining Visuals pages: Charts, Tables, Slicers, Formatting.
- –Added the remaining DAX Patterns pages: Totals, Ranking, Percent of Total, Running Total.
- –Added Calculated Tables, the remaining Power Query pages (Introduction, Transformations, Query Folding), and the remaining Getting Started pages (Installation, Power BI Overview).
- –Fixed several DAX and Power Query code examples that were mislabeled as SQL, which gave them incorrect syntax highlighting.
2026-08-03
- –Fixed garbled characters (arrows, em dashes, checkmarks) across 9 pages, left behind by a prior encoding issue.
- –Fixed stray leftover text and formatting issues in the Power Query content.
2026-07-31 – 2026-08-02
- –Added Iterator Functions (X Functions) and Variables (VAR).
- –Updated Time Intelligence content and fixed frontmatter formatting issues.
2026-07-30
- –Initial launch of the PBIDocs Power BI documentation site.