This summary is produced by the author, and not by AI.
When you hear the term design in the context of data and analytics, you probably think about data visualization; dashboards and reports. However, design is relevant to your entire data pipeline… especially semantic models. Furthermore, a good dashboard design can help you plan and build better semantic models, with a clearer picture of what people want to do with that data.
In this article, we argue that better design results in not only better reports, but also better semantic models. Therefore, it is worth your time to invest more in the requirements gathering process, and take a design-thinking approach, because this will improve not only your reports, but potentially all the interconnected elements of your data project.
Why:
How:
A mistake that people often make is to plan their semantic models focusing only on the data and technical requirements. They focus on making a technically good semantic model, rather than a useful semantic model. This might include following a star schema design or writing good DAX code. One might also focus on the data itself, creating logically organized tables and verifying data quality. These things are important, yes… however, they are not more important than what the business will actually do with that data.
It can happen that you design a semantic model which, on paper, is flawless. Perfectly executed star schema, immaculately optimized DAX, and all the data and calculations return the expected results… on paper. However, the business might expect something else. Maybe… the business wants dynamic currency conversion… flexibility to show sales for some regions but shipments for others… incorporation of other flat files like forecasts, alternative customer mappings, and point-of-sale data…
At a fundamental level, a semantic model represents an underlying business process. However, the business rarely, if ever, queries the semantic model directly. Instead, they usually query it from interfaces like dashboards, reports, pivot tables, and now natural language using Copilot and other AI tools.
For this reason, you should consider planning your semantic model working backwards, starting with the design of the final reports. Basically, you should try to talk with users and plan the layout, chart types, and interactions of your report (among other things) before you make it, and involve model developers in this process. The output of this should be a design for your reports and models.
When you design something, you make a plan for how it should look and work. Form follows function; it usually should look and work that way to solve a particular problem. However, when you design something that’s used by other people (like a report or dashboard, another data product, or a lot of software, generally) then purpose of design isn't just to solve problems, but to facilitate an effective and elegant user experience.
In this context, design is fundamentally about behavior. A good design aligns with who users are and what they do. Practically speaking, this means a good design encourages and promotes user behaviors, which help them to more easily use a tool and get value from it.
In Power BI dashboard design, you also communicate user behavior; where a user should look, and what they should click on. We’ll connect this to semantic models in a moment. First, consider a few examples:
Poor designs result when report creators do not know or understand who the users are, or how they will use reports. These designs do not promote user behaviors that make reports more useful. In fact, they could do the opposite; they could promote behaviors that turn reports into obstacles.
In contrast, good designs enhance reports and promote behaviors that make these reports more useful:
In summary, design informs and is informed by user behavior. In a dashboard, this behavior is where people should look, and what they should click on. When you have a good design, you direct their attention and actions in ways that help them to understand and interpret the data. However, the clicks and charts are translated to queries of your semantic model; you can only realize a design when your semantic model supports it.
So, what does this have to do with semantic models? you might be thinking. Well, a report is often the way that users to interact with the model. Any information about how users will use a report inherently tells you how they will use the underlying model. You need to understand this so that you can plan and implement a model that supports all the needed functionality.
There are two main ways that report design helps you make semantic models:
Designs for a dashboard or report contain helpful information for your semantic models.
When done right, a dashboard design provides an accurate depiction of the business requirements; it’s very useful in the requirements gathering process. This design, which typically takes the form of design documents like wireframes, mock-ups, and prototypes, provides a blueprint for what to make, what users expect to receive, and how it ought to work.
The final design (together with other, supplemental documentation) is useful to inform and derive the technical requirements for the model and even data artifacts or ETL. The following is a simple example of how report developer captures a user need in their design, and the model developer translates that to model functionality:
Here’s some more examples:
To get these benefits, model developers must receive the designs and sufficiently understand them. If different people will make your Power BI reports as will make the semantic models, then they must very closely collaborate together during the end-to-end process: from design to delivery.
However, we’re talking about the chicken before we talk about the egg; for all this to happen, you of course need a good design process.
A good design results from a good design process. In essence: you’ve gotta get the requirements gathering right. This will help you better understand the users, the business, and the data.
A good design proposes an effective and elegant plan, form, and function to address a problem. To arrive at a good design, you need to understand that “problem space” very well, including the processes and people involved. Basically, this is requirements gathering… and if you have done it before, then you know that it’s not an easy task.
When you take a design-driven approach to requirements gathering, you can get a better understanding of who users are and what they do. This human-centric approach can lead to a deeper and more accurate understanding of the underlying business process. The understanding you get during this requirements gathering is valuable agnostic of whatever artifact you are making… be it a report, a model, or ETL pipelines.
To get these benefits, you need to ensure that your design process doesn't focus on visualization and report design, alone:
In summary, you should consider a design-driven approach to your Power BI projects. When planning designs, think not just about reports, but also semantic models. Involve semantic model developers, and ensure that you plan both reports and models.
So far this has only focused on reports, but you can imagine this extends also to paginated reports, dashboards, pivot tables… but what about Copilot, data agents, and MCP servers? What about conversational BI?
With respect to AI, you can consider this from two angles:
Together with SQLBI, we are actively preparing larger bodies of content which will explain and walk through these scenarios more deeply with examples. If you want more information, keep an eye out at sqlbi.com.
Taking a design-thinking approach to your Power BI projects can help you make better reports. If you consider your semantic models during the design, and actively involve model developers the right way, then you can also make better data models, too.
This is relevant both with and without AI, since designs can inform better outputs and approaches in scenarios across the spectrum of AI adoption and integration.
Turn dashboard needs into better model design with Tabular Editor 3.
Give Tabular Editor a spin