01Semantic and dimensional models with an explicit grain
Star schemas with fact tables at a stated grain, conformed dimensions shared across subject areas, bridge tables where a relationship is genuinely many-to-many and a date table every measure filters through. The grain is written down before the first measure is, because most wrong totals in Power BI trace back to a fact table at the wrong grain rather than to the DAX on top of it.
02DAX measures, calculation groups and Tabular Editor
Measures written once in the model and reused by every report, with calculation groups for time intelligence and currency rather than a copy per visual. Tabular Editor is used for scripted changes, measure organisation and best-practice rules, and DAX Studio for query timings, so a slow visual is traced to a specific measure rather than guessed at.
03Source-to-target mappings
A written mapping per table: the source system and query, the warehouse or dataflow layer it passes through, the Power BI table and column, data types, transformation rules, keys and the check that proves it landed. It is what a reviewer reads to understand where a number came from, and it is what the reconciliation tests are generated from.
04Refresh performance
Profile the model first: storage mode, column cardinality, calculated columns that belong upstream, unused columns and Power Query steps that stopped folding so whole tables are pulled before they are filtered. The usual fixes are incremental refresh with a proper partition policy, aggregation tables, pushing transformation back into the warehouse and removing what nothing reads, with refresh duration measured before and after on your own gateway or capacity.
05SSAS and Azure Analysis Services migration
Document what the tabular model contains — tables, relationships, calculated columns, measures, roles and the reports depending on each — then move it into a Power BI semantic model through the XMLA endpoint, or rebuild it where the old model was itself the problem. Measures are compared old against new on identical filters before any report is repointed.
06Governed KPI definitions
Each metric written down: the calculation, the filters, the grain, the owner and the reports it is allowed to appear on. Definitions live in the model's measure descriptions and in a catalogue your team can read without opening Power BI Desktop, so a KPI cannot quietly diverge between reports.
07Self-service datasets
A shared dataset analysts can slice without writing joins: naming standards, hidden technical columns, a description on every field, row-level security where the data needs it and a clear line between governed measures and someone's own analysis. Thin reports connect live to it instead of each carrying its own copy of the data.
08Reconciliation of report figures to source
Automated comparisons between what a report shows and what the source system holds: record counts, control totals, date coverage and the specific figures people act on, run on every refresh rather than once at sign-off. In a previous engagement at Volvo Cars via Toptal, MV.tech's founder designed fact and dimension models for Power BI with source-to-target mappings, built validation and reconciliation checks across source systems, Snowflake, Salesforce CRM Analytics and BI reports, and delivered a lead-to-sale matchback comparison across about 427K lead-month records for executive review.