Your semantic model, read before anyone tells you it is wrong
Paste one Power BI project export — a .tmdl definition, a model.bim,
the PBIP report.json, a Performance Analyzer capture, or all of them
concatenated. A reader in this page parses it, builds the relationship graph, counts the
active filter paths between every joined pair, and lints every DAX measure — before anything
is sent anywhere. Then five lanes work the same project.
Each example ships with a saved model run for every lane, so you can see all five complete outputs without signing in and without spending a credit.
PBI Desk is an independent tool. It is not affiliated with, endorsed by, or connected to Microsoft, Power BI or Microsoft Fabric.
Your past reviews
Reviews are saved to your SkillSafe account when you are signed in, and mirrored in this browser so the list paints instantly.
How to get the paste
-
The semantic model. In Power BI Desktop, save the file as a
Power BI project (
.pbip). The model lands under<name>.SemanticModel/definition/as TMDL text files — one per table, plusmodel.tmdlandrelationships.tmdl. Paste them one after another. Amodel.bimfrom an older project, or TMSL scripted out of the XMLA endpoint, works just as well. -
The report layout. From the same project folder,
<name>.Report/report.json— or, in the newer PBIR format, the per-pagepage.jsonandvisual.jsonfiles. -
The capture. View → Performance analyzer → Start recording,
interact with the slow page, then Export. That gives a JSON file with an
eventsarray. A pasted copy of the table in that pane also works. -
Concatenate. Paste them together, in any order. Separator lines of the
form
// ---- file: definition/model.tmdl ----are read as file boundaries; without them the reader carves out the JSON documents on its own.
Nothing is uploaded by the reader. The parse, the relationship graph, the DAX lint and every CSV on this page are computed in your browser. Only the run itself sends text, and it sends the clipped project plus the facts the reader computed — never the file.