Dashboards people trust start with the semantic model
Dashboards built straight on raw tables soon disagree, and trust goes the first time someone notices. A semantic model with one grain per fact table and agreed measures keeps every report on the same numbers.
Every organisation has a graveyard of dashboards nobody opens. The common cause is not visual design — it is that each dashboard was built straight on top of raw tables, so two reports of the same metric disagree, and trust evaporates the first time someone notices.
The semantic model is the product
A semantic model is the shared definition of your business: the measures, the relationships, the hierarchies, expressed once and reused by every report. Build it as a star schema — fact tables surrounded by conformed dimensions — and define every metric as a measure, not a column.
Net Revenue =
CALCULATE(
SUMX(
fact_sales,
fact_sales[quantity] * fact_sales[net_price]
),
fact_sales[is_returned] = FALSE
)Defining Net Revenue once, in the model, means every report that references it agrees by construction. A number computed in the report layer is a number that will eventually disagree with another report.
One grain per fact table
Mixing grains — order lines and order headers in one fact table — is the single most common modelling mistake. Keep one grain per fact, and let relationships do the work of connecting them.
Design for the question, not the export
- Start from the decisions the report is meant to support.
- Show the metric, the trend, and the one comparison that gives it meaning.
- Resist the request to "add every column" — that is a request for a spreadsheet, not analytics.
A report built on a solid semantic model can be simple, because the model carries the complexity. That is the report people keep open.
NinetyX Data & AI Practice
Data & AI Engineering
Data platform and analytics engineers working on pipelines, semantic models and access controls. They write about what has to be in place before analytics or AI can be trusted.
Where to next
Working through a similar problem?
Tell us what you run and where it is stuck. An engineer replies with questions and a proposed first step.
Talk to an engineerRelated articles
Laying out a Microsoft Fabric lakehouse for analytics
Fabric puts the lake, the warehouse and Power BI on one storage layer. That only simplifies things if medallion layers, workspace ownership and Direct Lake models are settled before the first load.
NinetyX Data & AI Practice · · 3 min read
Governed data comes before useful AI
AI work stalls in the data layer far more often than in the model. A catalogue, access granted at the source and lineage you can query are the groundwork most plans leave out.
NinetyX Data & AI Practice · · 2 min read
Migrate the operating model, not just the workloads
Cloud programmes rarely stall on technology. They stall when workloads move but tickets, change windows and environment requests stay the same. Sequence by capability and run the landing zone as a product.
NinetyX Cloud Practice · · 2 min read