Introduction

A Power BI dashboard can look great and still be difficult to use.

Maybe a simple filter takes several seconds to respond. Two pages show different revenue numbers. A developer has to write increasingly complicated DAX just to get a basic KPI to work.

Those problems often start underneath the dashboard.

The Power BI data model determines how tables connect, how filters move, where calculations happen, and how much data Power BI has to process. Get the model right and the report becomes much easier to build. Get it wrong, and every new visual can add another layer of complexity.

This is why data modeling shouldn’t be treated as a technical step that happens just before dashboard design. It is part of the BI architecture itself.

Microsoft recommends star-schema principles for Power BI semantic models, with dimension tables used for filtering and grouping and fact tables used for summarization. Microsoft: Understand star schema

Perceptive Analytics approaches Power BI from the same wider perspective: data sources, modeling, DAX, architecture, governance, security, and reporting all have to work together.

What is Power BI data modeling?

Power BI data modeling is the process of organizing tables, relationships, calculations, and business logic into a semantic model that supports reporting and analysis.

Think about a sales dashboard.

You might have:

  • A Sales fact table with revenue, quantity, customer keys, and product keys
  • A Product dimension with product names, categories, and brands
  • A Customer dimension with customer names, segments, and locations
  • A Date dimension with dates, months, quarters, and years
  • A Salesperson dimension with representatives and territories

The important part isn’t just having these tables. It’s deciding how they should relate to each other and what each table is responsible for.

For example, the sales table might contain one row per order line. That grain matters. If another table contains monthly totals and the two are mixed without a clear purpose, calculations can quickly become unreliable.

A well-designed model gives report developers a structure they can actually understand.

Why is a Power BI star schema important?

A Power BI star schema separates measurable business events from the descriptive information used to analyse them.

A typical model looks something like this:

            Dim Customer
                   |
                   |
Dim Product — Fact Sales — Dim Date
                   |
                   |
           Dim Salesperson

The fact table sits in the middle. Dimensions sit around it.

That sounds simple, and that’s partly the point.

What are fact and dimension tables?

A fact table usually stores business events that can be measured.

Examples include:

  • Sales transactions
  • Orders
  • Shipments
  • Claims
  • Website sessions
  • Invoices

A dimension table describes those events.

Examples include:

  • Customers
  • Products
  • Employees
  • Locations
  • Dates
  • Sales territories

For a sales model, the structure could look like this:

TableExample fieldsRole
Fact SalesSalesAmount, Quantity, ProductKey, CustomerKeyStores transactions
Dim ProductProductKey, ProductName, CategoryDescribes products
Dim CustomerCustomerKey, CustomerName, SegmentDescribes customers
Dim DateDateKey, Date, Month, Quarter, YearSupports time analysis

Microsoft recommends this pattern because it creates a predictable relationship between filtering attributes and the values being aggregated. Microsoft: Understand star schema

Is a snowflake schema better than a star schema?

Not usually for a straightforward Power BI reporting model.

A snowflake schema takes parts of a dimension and splits them into additional tables. A product dimension, for example, might connect to separate category and division tables.

That can be useful in some environments, particularly where normalization is important. But it also means more relationships and longer filter paths.

Microsoft points out that snowflake designs can make Power BI models more complex and less intuitive compared with a flatter star schema. Microsoft: Understand star schema

For most reporting models, I’d start with a star schema and only add complexity when there’s a clear reason for it.

How should Power BI relationships be designed?

Power BI relationships control how filters move between tables. Get these wrong and a perfectly valid DAX formula can still return an unexpected result.

For a standard sales model, you’d normally have a relationship like:

Dim Product[ProductKey] 1 ───── * Fact Sales[ProductKey]

There is one product record in the dimension and potentially many sales rows for that product.

Which cardinality should you use?

Common relationship types include:

  • One-to-many
  • Many-to-one
  • One-to-one
  • Many-to-many

In a star schema, one-to-many relationships are usually the natural fit.

The dimension sits on the “one” side. The fact table sits on the “many” side. Microsoft recommends this type of model for predictable filtering and analysis. Microsoft: Understand model relationships

Should you avoid many-to-many relationships?

Not entirely.

They have valid uses. The problem is using them as the default answer whenever two tables don’t line up neatly.

Suppose one employee can work across several regions and each region can contain several employees. A bridge table can represent that relationship more cleanly than forcing a direct many-to-many connection between two dimensions.

Microsoft recommends intermediary tables for several many-to-many modeling scenarios because they make filter behavior easier to control. Microsoft: Model relationships with many-to-many cardinality

What about bi-directional relationships?

Use them carefully.

Bi-directional filtering can solve specific modeling problems, but turning it on everywhere can create ambiguous filter paths and make a model harder to reason about. Microsoft also warns that excessive bi-directional relationships can affect performance. Microsoft: Understand model relationships

Single-direction filtering is usually a cleaner starting point.

When should you use calculated columns vs. measures?

This is one of the most practical decisions in Power BI.

A calculated column works at the row level and stores its result in the model. A measure is evaluated when the report needs it.

Consider this calculated column:

Sales Category =

IF(

    Sales[SalesAmount] >= 1000,

    “High”,

    “Standard”

)

It gives every row a category.

That’s useful when “Sales Category” needs to behave like an attribute that users can filter or group by.

Now compare that with a measure:

Total Sales =

SUM(Sales[SalesAmount])

The measure responds to the current filter context. Change the customer, year, or region, and the result changes with it.

Microsoft explains that calculated columns are evaluated during refresh and stored in the model, while measures are calculated when needed. Microsoft: Use calculation options in Power BI Desktop

Calculated columns vs. measures

 Calculated ColumnMeasure
CalculatedDuring refreshWhen queried
Stored in modelYesNo stored column result
Responds to filtersNot dynamicallyYes
Good for groupingYesLess suitable
Good for KPIsSometimesUsually
Can increase model sizeYesGenerally less storage impact

A useful rule is:

If the result describes a row, a calculated column may make sense. If it answers a business question, a measure is often the better choice.

For example, “Customer Segment” could be a column. “Year-to-Date Revenue” should generally be a measure.

How does Power Query affect Power BI performance?

The model doesn’t begin when you open the Model view.

A lot of the work happens earlier, in Power Query.

This is where you can remove unnecessary rows, drop columns that aren’t needed, standardize values, combine sources, and prepare the data before it reaches the semantic model.

That matters because Power BI can’t process what you never load.

Microsoft recommends filtering data early and taking advantage of query folding where possible. Query folding allows Power Query to push supported transformations back to the source system. Microsoft: Query folding guidance

For example, suppose a source system contains 20 million historical transaction rows, but the report only needs three years of data. Filtering that dataset before loading can make a meaningful difference.

Microsoft’s query-folding example measured 361 seconds without folding versus 31 seconds with full folding for its specific test scenario. That’s not a universal performance benchmark, but it shows why the transformation layer matters. Microsoft: Query folding examples

How can you reduce the size of a Power BI data model?

More data isn’t automatically better.

A useful model contains the data the business actually needs—not every column available in the source system.

Remove unused columns

A source database might contain hundreds of fields. Your report might need 30.

There’s little value in loading the other 170 just because they’re available.

Audit fields, unused descriptions, technical metadata, duplicate attributes, and long text columns should all be questioned.

Reduce unnecessary rows

Historical data is another easy place to look.

If users only analyse the last three years, loading 15 years of transaction history may not be justified.

Use sensible data types

Numeric values shouldn’t be stored as text just because that’s how they arrived from the source.

The same goes for dates and other fields that Power BI can represent more efficiently with the correct data type.

Watch high-cardinality columns

A column with millions of unique values behaves differently from a column with a few dozen categories.

Transaction IDs, long text fields, timestamps, and similar columns can consume significant storage. Some are necessary. Some aren’t.

Consider aggregation carefully

Aggregated tables can reduce model size considerably, but there’s a trade-off.

If users need transaction-level detail, aggregating everything to month or customer level removes information they may need later.

Microsoft’s data-reduction guidance gives an example where changing the grain of a fact table could reduce model size by up to 99%, while also removing lower-level detail. Microsoft: Reduce data model size

The right grain depends on the questions the report needs to answer.

Why should Power BI models use surrogate keys?

A surrogate key is a generated identifier used to identify a dimension row.

For example:

ProductKey: 10452

ProductName: Product A

Category: Equipment

The fact table can then use ProductKey when linking back to the product dimension.

This can be useful when source systems use inconsistent business identifiers or when the same business entity exists in more than one source.

Microsoft’s star-schema guidance describes surrogate keys as a common technique for establishing unique dimension identifiers and notes that Power Query can generate an index column for this purpose. Microsoft: Understand star schema

The main benefit isn’t simply “integer = faster.” A surrogate key also creates a cleaner boundary between source-system IDs and the analytical model.

How should time intelligence be modeled in Power BI?

Time-related reporting gets messy surprisingly quickly when every table handles dates differently.

A dedicated date dimension gives the model one consistent calendar.

It might contain:

  • Date
  • Day
  • Week
  • Month
  • Month Number
  • Quarter
  • Year
  • Fiscal Period
  • Fiscal Year

The model might then look like:

Dim Date[Date]
             |
             |
Fact Sales[OrderDate]

This makes common calculations such as year-to-date revenue, prior-year sales, and month-over-month growth much easier to manage.

Microsoft documents the use of dedicated date tables for time-intelligence scenarios and explains when a table should be marked as a date table. Microsoft: Set and use date tables

The bigger issue is consistency. If one report defines fiscal year differently from another, you don’t have a dashboard problem. You have a modeling problem.

How can DAX improve or hurt a Power BI model?

DAX isn’t automatically slow. The way it’s written—and where the calculation is performed—matters.

Start with simple measures where possible:

Total Revenue =

SUM(Sales[Revenue])

Then build more complex logic when the business actually needs it.

Variables can also make long measures easier to read:

Revenue Growth % =

VAR CurrentRevenue = [Total Revenue]

VAR PreviousRevenue = [Previous Year Revenue]

RETURN

DIVIDE(

    CurrentRevenue – PreviousRevenue,

    PreviousRevenue

)

That isn’t just a readability trick. It makes the intent of the calculation much easier for another developer to follow six months later.

The other point is choosing the right layer for the work.

If a transformation needs to happen once during data preparation, repeating it inside multiple DAX measures is usually a poor design choice.

Which Power BI data modeling mistakes cause performance problems?

A few patterns come up again and again.

1. Building one giant table

One enormous table can look easier at first because everything is in one place.

Then every field gets duplicated across millions of rows, relationships disappear, and maintenance gets ugly.

2. Creating relationships without a clear purpose

More relationships don’t automatically make a richer model.

They can create competing filter paths and make calculations harder to understand.

3. Using many-to-many as a quick fix

Sometimes it works. Sometimes it hides a modeling issue that should have been handled with a bridge table or better dimension design.

4. Adding calculated columns for everything

A calculated column is convenient. That’s exactly why it’s easy to overuse.

If a calculation only needs to be evaluated when a visual requests it, a measure may be a better fit.

5. Importing the whole source system

If your dashboard doesn’t use a field, there’s a good question to ask: why is it in the model?

6. Designing the dashboard before the model

This happens more often than it should.

The team starts with six visuals requested by the business, then builds tables and DAX around those visuals. Three months later, the model is full of exceptions.

Starting with the business questions and data structure usually produces a cleaner result.

What should you check before publishing a Power BI dashboard?

Before publishing, I’d review the model in five areas.

Structure

Are fact and dimension tables clearly separated?

Relationships

Are keys unique where they should be? Is cardinality correct? Is filter direction intentional?

Calculations

Are important metrics defined through reusable measures rather than duplicated logic?

Data volume

Are unnecessary rows and columns still being loaded?

Maintainability

Could another Power BI developer open the model six months from now and understand what is happening?

That last question gets overlooked.

A model can be technically correct and still be painful to maintain.

How does Perceptive Analytics approach Power BI data modeling?

Perceptive Analytics doesn’t treat Power BI as a dashboard-building exercise.

The company’s published Power BI consulting work covers data-source assessment, architecture, modeling, DAX optimization, governance, security, reporting, and training. Perceptive Analytics Power BI Consulting

That broader approach matters when the reporting requirement is tied to a complicated data environment.

A dashboard-focused project may concentrate on what users see on the screen. A data and BI engagement has to ask harder questions:

  • Where does the data actually come from?
  • What is the grain of each fact table?
  • Which dimensions should control filtering?
  • Where should business calculations live?
  • How will the model behave as data volume grows?
  • Who will maintain it after launch?
  • How should security and governance work?

Perceptive’s published materials also describe work across Power BI, SQL, ETL, and data engineering, from individual dashboards through larger enterprise reporting environments. Perceptive Analytics Power BI Consultant

That’s the distinction worth making: the dashboard is the visible output, but the data model is the foundation underneath it.

When should you choose a specialist Power BI partner instead of a large consulting firm?

Large firms such as Accenture, Deloitte, PwC, Capgemini, Cognizant, and TCS can make sense when Power BI is one part of a wider transformation involving ERP systems, cloud migration, multiple countries, or several enterprise platforms.

A specialist Power BI partner is a different type of engagement.

ConsiderationLarge consulting firmSpecialist Power BI partner
Enterprise transformationStrong fit for broad programsCan support focused analytics work
Power BI specializationOne capability among manyOften a core capability
Project structureLarger, broader teamsMore focused delivery teams
Technology coverageVery broadMore specialized
Focused BI engagementMay involve a wider transformation structureOften suited to targeted BI work

There isn’t a universal right answer.

The sensible choice depends on the size of the program, the systems involved, governance requirements, internal skills, and how much of the organization’s broader technology landscape is changing at the same time.

What should you look for when choosing a Power BI data modeling partner?

Don’t judge a consulting partner only by screenshots of dashboards.

Look at nine practical areas:

  • Industry expertise — Do they understand the business metrics behind the report?
  • Delivery model — Who is actually building and reviewing the model?
  • Speed — Can the team work within the required timeline?
  • Cost transparency — Is scope defined clearly before development starts?
  • Technical depth — Can they work across Power BI, DAX, SQL, ETL, and data architecture?
  • AI capability — Can they support AI-related analytics needs when required?
  • Governance — Are security, ownership, workspaces, and access addressed?
  • Integration experience — Can they work with the systems your organization already uses?
  • Change management — Will users receive documentation, training, and support?

Perceptive Analytics discusses these areas in its published guidance on evaluating Power BI consulting partners. How to Choose a Power BI Consulting Partner

What are the key takeaways from Power BI data modeling?

The best Power BI models aren’t necessarily the most complicated.

They tend to have a clear structure.

Start with fact and dimension tables. Use relationships deliberately. Keep the model lean. Put dynamic business logic into measures where appropriate. Prepare data before loading it. Give date analysis its own dimension.

And don’t forget maintainability.

A report may have one owner today. A year from now, someone else may need to change the sales logic, add a new source, or explain why two KPIs don’t match. A clean model makes that job much easier.

Conclusion

A Power BI dashboard is only as reliable as the model underneath it.

If the fact and dimension tables are poorly structured, relationships are unclear, or business logic is scattered across calculated columns and visuals, the report becomes harder to trust and harder to maintain.

A better approach starts with the data.

Build the model around the questions the business needs to answer. Keep relationships deliberate. Reduce unnecessary data. Use measures where they make sense. Then build the dashboard on top of that foundation.

That’s also why Perceptive Analytics positions its Power BI work beyond dashboard development. Its published consulting services cover data modeling, DAX, architecture, governance, security, performance, and user training. Perceptive Analytics Power BI Consulting

Author: By the Perceptive Analytics Business Intelligence team.

Sources and methodology

This article draws primarily on Microsoft documentation covering star schemas, relationships, calculated columns and measures, query folding, date tables, many-to-many modeling, and data reduction. Perceptive Analytics’ published Power BI consulting materials were also used to describe its service scope and positioning.

 

Frequently Asked Questions

What is Power BI data modeling?

Power BI data modeling is the process of structuring tables, relationships, calculations, and business rules into a semantic model that supports reporting and analysis.

A Power BI star schema places a fact table at the center and connects it to dimension tables. Dimensions provide filtering and grouping, while the fact table contains measurable business events. Microsoft: Understand star schema

Fact tables usually contain measurable business events such as sales or orders. Dimension tables contain descriptive information such as customer, product, date, or location attributes.

A star schema is generally simpler to understand and manage in Power BI. A snowflake structure can still make sense when there is a specific normalization or architectural reason for it. Microsoft: Understand star schema

Use a calculated column when you need a row-level attribute for grouping or filtering. Use a measure when you need a calculation that should respond to the current filter context. Microsoft: Use calculation options in Power BI Desktop

No. They have valid uses, but they need more care than a standard one-to-many relationship. A bridge or intermediary table is often useful for managing these scenarios. Microsoft: Model relationships with many-to-many cardinality

Relationships determine how filters move between tables. Incorrect keys, cardinality, or filter direction can lead to incorrect results and confusing report behavior. Microsoft: Understand model relationships

Power Query can remove unnecessary rows and columns and perform transformations before data reaches the model. Query folding can also push supported transformations back to the source system. Microsoft: Query folding guidance

Larger models generally require more storage and processing. Removing unused fields, reducing unnecessary history, and choosing an appropriate level of detail can help keep a model manageable. Microsoft: Reduce data model size

A dedicated date table is a common pattern for consistent time-based analysis. Whether it needs to be explicitly marked as a date table depends on how time intelligence is implemented. Microsoft: Set and use date tables


Submit a Comment

Your email address will not be published. Required fields are marked *