Power BI Data Modelling Best Practices for SMEs
12 Aug 2026 · 5 min read
Good Power BI data modelling starts with a star schema: separate fact tables for events and dimension tables for descriptions, joined by single-direction relationships. This keeps DAX simple, reports fast and the model easy to extend.
Good Power BI data modelling is the single biggest factor in whether a report is fast, accurate and easy to change. For small and medium organisations especially, where one model often serves the whole business, the right structure pays back every week. The core practice is the star schema: keep your measurable events in fact tables, your descriptive attributes in dimension tables, and join them with simple one-to-many relationships. Do this well and your DAX stays readable, your reports stay quick, and adding a new measure or dimension does not mean rebuilding everything.
Start with a star schema, not a flat table
Many SME reports begin life as a single wide spreadsheet imported into Power BI. It works at first, then becomes slow and hard to maintain. The better pattern is the star schema. A fact table holds the numbers you measure, such as order quantity and revenue, with keys pointing to dimensions. Dimension tables hold the descriptions you slice by, such as Product, Customer, Region and Date. Each dimension links to the fact table with a one-to-many relationship.
This shape suits Power BI's VertiPaq engine, which compresses and queries star schemas efficiently. It also makes the model intuitive: filters flow from dimensions into facts, so selecting a region naturally filters sales. Avoid snowflaking dimensions into many sub-tables unless there is a strong reason; a few wider dimension tables usually perform and read better.
Get relationships right
Relationships are where models quietly go wrong. A few rules keep them sound:
- Prefer single-direction (one-to-many) relationships from dimension to fact. They are predictable and fast.
- Avoid bi-directional cross-filtering unless you genuinely need it, as it can create ambiguity and slow queries, and it interacts badly with row-level security.
- Use a single, dedicated Date table marked as the model's date table, and relate it to every fact's date. This is what makes time-intelligence functions such as year-to-date work reliably.
- Keep relationship key columns clean integers or short text where you can; they compress and join better.
Model in Power Query, calculate in DAX
Decide where each piece of logic belongs. Data shaping, removing columns, merging sources, fixing types and creating keys, should happen in Power Query as data loads. This keeps the model lean and pushes work upstream, ideally folding back to the source database where possible. Reserve DAX for analytical logic that depends on the filter context of the report, principally measures.
A practical split:
| Task | Where it belongs |
|---|---|
| Removing or renaming columns | Power Query |
| Merging or appending sources | Power Query |
| Creating surrogate keys | Power Query or the source |
| Cleaning and typing data | Power Query, or the source view |
| Sums, ratios, time intelligence | DAX measures |
| Per-row values needed for relationships or slicers | Calculated column, used sparingly |
Write DAX that stays readable
Measures should be explicit, not implicit. Create a measure such as Total Sales with SUM(Sales[Amount]) rather than dragging raw columns into visuals, so logic is defined once and reused. Build complex measures from simpler ones by referencing existing measures. Use variables with VAR to name intermediate steps, which makes formulas easier to read and often faster because the engine evaluates them once. Keep measures in a dedicated, clearly named measures table so they are easy to find.
Favour measures over calculated columns. Measures compute at query time and add nothing to model size, whereas calculated columns are materialised and stored in memory, inflating the model and slowing refresh. Only use a calculated column when a value must physically exist per row, for example to drive a relationship or a slicer.
Habits that keep reports fast
Performance for SMEs is mostly about discipline, not exotic techniques.
- Import only the columns and rows you need. Dropping unused, high-cardinality columns such as free-text notes or precise timestamps can shrink a model dramatically.
- Reduce cardinality where you can. Splitting a datetime into date and time columns compresses far better than one high-precision column.
- Turn off Auto date/time, which silently creates hidden date tables for every date column, and use your own Date table instead.
- Hide columns and tables that are not meant to be used directly, so report builders pick measures, not raw fields.
- Use incremental refresh on large fact tables so you reload only recent data rather than full history.
- Test with realistic data volumes, not a sample, so slow patterns surface before users find them.
Build for change
The best models anticipate growth. Name tables and columns in business language so colleagues understand them. Keep a clean separation between staging queries and the model. Document key measures and assumptions. When the structure is sound, adding a new region, product line or measure is a small change, not a rebuild. That extensibility is exactly what lets a model also support governed features cleanly, such as the mapping tables behind dynamic Power BI row-level security.
Strong modelling underpins everything else, from reliable data refresh to clean deployment pipelines. Our Power BI consulting service helps SMEs build models that stay fast and maintainable as the business grows, and our UK Power BI consultants can review or rebuild an existing model. If you are moving off spreadsheets, our Excel to Power BI migration service is a natural starting point.
If your reports have become slow, fragile or hard to trust, a Trusted Numbers Review reviews your model, DAX and performance in a fixed two-week engagement, with the fee credited against any follow-on work. Book a review to get a clear, prioritised plan for a faster, cleaner model.
Frequently asked questions
What is a star schema and why does Power BI prefer it?
A star schema separates measurable facts, such as sales, into fact tables and descriptive attributes, such as products or dates, into dimension tables. Power BI's engine is optimised for this shape, giving simpler DAX and faster queries than a single flat table.
Should I model in Power Query or in DAX?
Shape and clean data in Power Query during load, and reserve DAX for calculations that depend on report context, such as measures. Pushing transformations upstream keeps the model lean and refresh efficient.
Do measures or calculated columns perform better?
Measures are usually better because they calculate at query time and do not bloat the model. Calculated columns are stored in memory and increase model size, so use them only when a value must exist per row.
Can you review or fix our existing model instead of rebuilding it?
Often, yes. Many performance and accuracy problems come down to relationships, over-used calculated columns or a missing Date table, all of which we can fix in place. A Trusted Numbers Review tells you whether a targeted fix or a rebuild is the better value.
Want this set up and handled for you?
Start with a fixed-price Trusted Numbers Review: two weeks, written findings on why your figures disagree, and one fixed price to put it right.
Related guides
Best BI Tool for a UK SME in 2026
The best BI tool for a UK SME in 2026: Power BI, Tableau, Qlik, Looker Studio and Zoho Analytics compared on cost, learning curve and fit, with honest verdicts.
19 Aug 2026 · 6 min read
Is Power BI Worth It for a Small Business?
Is Power BI worth it for a small business in 2026? An honest verdict: when it pays for itself, when it does not, the real UK cost picture and the alternatives.
19 Aug 2026 · 4 min read
Power BI: Freelancer vs Consultancy vs Partner
Freelancer, boutique consultancy or large Microsoft partner for Power BI? Honest costs, trade-offs and a clear verdict on who to hire in the UK in 2026.
19 Aug 2026 · 7 min read
Power BI vs Google Sheets: When to Switch
Power BI vs Google Sheets for business reporting: where Sheets genuinely wins, the breaking points that end spreadsheet reporting, and what a move costs.
19 Aug 2026 · 4 min read
Shopify Reports vs Power BI: When to Switch
Shopify's built-in analytics vs Power BI for ecommerce reporting: what native reports genuinely cover, where they stop, and the triggers that justify a switch.
19 Aug 2026 · 4 min read
How to Choose a BI Platform (UK Guide)
How to choose a BI platform: a vendor-neutral guide to Power BI, Microsoft Fabric and Zoho Analytics, decided by the stack you already run, not a feature list.
3 Jul 2026 · 5 min read
Related solutions
Power BI Rescue (UK)
Bought Power BI and don't trust the numbers? We fix the report you have: find why the figures are wrong, reconcile to source, hand it back. Fixed price.
Excel to Power BI Migration (UK)
Move Excel reporting to a governed Power BI model. We check the workbook import route, rebuild refresh and agree the migration scope before work starts.
SSRS to Power BI Migration (UK)
Migrate SQL Server Reporting Services (SSRS) to Power BI. We move paginated reports and rebuild interactive dashboards on a governed model. Fixed scope.