← Back to Insights

Data Strategy / Business Intelligence

Your CRM Is Not a Sales Strategy: How HubSpot + Clay Can Turn Better Data Into Revenue

Leonard Sheikh

Leonard Sheikh

10 min read

A technical guide to Power BI architecture, semantic models, DAX, data quality, security and performance for reliable business intelligence.

Reliable business intelligence is not primarily a visualisation problem. It is an engineering problem involving data quality, modelling, reusable measures, security, performance and the controlled movement from data to decision.

The visual is the interface. The semantic model underneath is the system.

A Power BI dashboard may be the part everyone sees.

Most of the engineering happens before the first chart appears.

A production business-intelligence system is a chain of transformations:

Data → validated data → semantic model → measures → visual context → decision

If any part of that chain is weak, the dashboard can still look convincing while producing poor decisions.

Power BI therefore matters not simply because it creates visualisations.

Its greater value is that it provides an analytical and semantic layer through which operational data can become governed business information.

A useful conceptual model is:

Decision Quality ≈ f(Data Quality, Model Quality, Measure Correctness, Context, Timeliness)

The visual is the interface.

The model underneath is the system.

The business intelligence pipeline

A simplified BI pipeline can be expressed as:

S → T → M → Q → V → D

where:

S = source systems T = transformation M = semantic model Q = analytical queries and measures V = visualisation D = decision

A Power BI implementation might therefore look like:

Databases / APIs / files / SaaS applications

→ Power Query / data pipelines

→ semantic model

→ DAX measures

→ reports and dashboards

→ business action

This separation matters.

A dashboard should not be expected to repair inconsistent operational data at presentation time.

Transformation and modelling should happen deliberately upstream.

Data quality is a system property

Suppose a company calculates revenue as:

Revenue = Σ Quantityᵢ × Priceᵢ

The equation is straightforward.

The answer can still be wrong if:

✓ cancelled orders remain in the dataset ✓ currencies are mixed ✓ transactions are duplicated ✓ tax treatment is inconsistent ✓ refunds are excluded ✓ timestamps represent different zones

A technically correct formula operating over incorrect data still produces incorrect business intelligence.

Data quality therefore has several dimensions:

Completeness Validity Uniqueness Consistency Timeliness

Conceptually:

Qd = wcC + wvV + wuU + wtT

where each quality component can be weighted according to business importance.

This does not mean every organisation needs a literal composite score.

It illustrates that data quality cannot be reduced to a single binary condition.

Push transformation toward the source

For large datasets, the location where transformation occurs becomes a performance decision.

If a source contains 100 million rows but the report requires only 100,000, transporting all 100 million rows before filtering is unnecessarily expensive.

Less efficient:

100,000,000 rows → transformation engine → filter → 100,000 rows

Better:

source filters → 100,000 rows returned → analytical model

Power Query can support this through query folding, where compatible transformation logic is pushed to the underlying source system.

The analytical result may be identical.

The system cost is not.

This is why BI architecture starts affecting performance long before visualisation.

The semantic model is the business logic layer

One of the most important components in Power BI is the semantic model.

It is not simply a collection of imported tables.

It defines:

entities

relationships

measures

hierarchies

filtering behaviour

security

shared business definitions

A common analytical architecture is the star schema.

For example:

DimDate ↓ DimCustomer → FactSales ← DimProduct ↑ DimRegion

The fact table records measurable events.

For example:

FactSales

DateKey CustomerKey ProductKey RegionKey Quantity Revenue Cost

Dimensions provide context.

For example:

DimProduct

ProductKey ProductName Category Brand

The usual analytical relationship is:

1 → *

One dimension record can describe many fact rows.

One product can therefore relate to many sales transactions.

This separation between events and context makes analytical logic easier to understand and maintain.

Measures create reusable business definitions

DAX provides the calculation layer used by Power BI semantic models.

A basic revenue measure might be:

Total Revenue = SUM(FactSales[Revenue])

Cost:

Total Cost = SUM(FactSales[Cost])

Gross profit:

Gross Profit = [Total Revenue] - [Total Cost]

Gross margin:

Gross Margin % = DIVIDE([Gross Profit], [Total Revenue])

Mathematically:

Gross Margin % = (Revenue - Cost) / Revenue × 100

The important engineering advantage is reuse.

The organisation defines the business metric once and then uses the same measure across reports.

Without a controlled semantic layer, different analysts can create different interpretations of revenue, customer, active account or margin.

That creates metric drift.

Filter context changes the answer

DAX measures are evaluated in context.

Suppose:

Total Revenue = SUM(FactSales[Revenue])

Across all transactions, the measure gives company revenue.

If the user selects:

Region = UK

the measure becomes conceptually:

Ruk = Σ Revenueᵢ for i ∈ UK

If the user then selects:

Region = UK Category = Software

the scope becomes:

Ruk,software = Σ Revenueᵢ for i ∈ UK ∩ Software

The formula has not changed.

The filter context has.

This is why data modelling and DAX cannot be treated as separate concerns.

Relationships determine how context propagates through the model.

Business KPIs should answer questions

A dashboard should not begin with:

“Which chart should we use?”

It should begin with:

“What decision are we trying to support?”

Consider the question:

Are we becoming more profitable?

Relevant measures might include:

Gross Profit = Revenue - Cost

Gross Margin = (Revenue - Cost) / Revenue

Year-on-Year Growth = (Revenueₜ - Revenueₜ₋₁) / Revenueₜ₋₁

Average Order Value = Revenue / Orders

Conversion Rate = Conversions / Qualified Opportunities

Revenue can then be decomposed further:

Revenue = Traffic × Conversion Rate × Average Order Value

Now a fall in revenue becomes diagnosable.

Did traffic fall?

Did conversion deteriorate?

Did average order value decline?

Business intelligence becomes more useful when it helps explain why something happened rather than simply showing that it happened.

Storage architecture affects behaviour

Power BI supports multiple approaches to how analytical data is accessed.

Import models bring data into the semantic model.

DirectQuery leaves the data in the underlying source and queries it when a report is used.

Microsoft Fabric adds Direct Lake patterns for analytical data stored in OneLake.

These are architecture decisions, not cosmetic configuration.

A simplified DirectQuery response time can be represented as:

Treport = Tsource + Tnetwork + Tquery + Trender

If the underlying database is slow, the visual layer cannot magically remove that latency.

The right question is not:

“Which storage mode is best?”

It is:

“Which architecture satisfies our scale, freshness, governance and latency requirements?”

Incremental refresh changes large-model economics

Suppose a transaction table contains several years of historical records.

Refreshing all historical data whenever yesterday's transactions change is wasteful.

If:

N = total historical rows

and:

ΔN = recently changed rows

then a full refresh operates conceptually over:

O(N)

while a partitioned incremental approach tries to restrict routine refresh activity closer to:

O(ΔN)

For large fact tables, this can substantially change resource requirements.

BI architecture begins to matter more as data volume grows.

Security belongs in the semantic layer

A report containing financial, customer, employee or clinical information cannot rely on users manually choosing the correct filters.

Filtering is a user-experience function.

Security is an access-control requirement.

With row-level security, visible rows can be thought of conceptually as:

VisibleRows(u) = {r ∈ R | Region(r) = Region(u)}

A UK regional manager can therefore see UK data.

Another manager can use the same report while seeing only the records they are authorised to access.

The interface remains consistent.

The accessible dataset changes.

Performance must be measured

A slow dashboard is not a diagnosis.

A useful decomposition is:

Ttotal = TDAX + Tsource + Trender + Tother

Different sources of latency require different remedies.

A slow DAX calculation may need measure or model optimisation.

A slow DirectQuery call may require database or network work.

A slow visual may simply contain too much information.

Power BI performance tooling allows developers to identify where report time is being spent.

Optimisation should follow measurement rather than intuition.

A production BI system extends beyond the dashboard

The real architecture is closer to:

Operational Systems

→ ingestion and transformation

→ lakehouse / warehouse

→ semantic model

→ DAX and business rules

→ Power BI reports

→ alerts, decisions and actions

Governance crosses the entire chain.

The organisation therefore needs clarity around:

Who owns the source?

Who defines Revenue?

Who can change the semantic model?

Who can alter a measure?

Who determines access?

Who investigates failed refreshes?

Who verifies whether an unusual result is correct?

The technology makes these responsibilities more visible.

It does not remove them.

Where AI fits

AI can extend business intelligence, but it should sit on reliable foundations.

A useful progression is:

Raw Data

→ Trusted Model

→ Metrics

→ Patterns

→ Prediction

→ Recommended Action

An AI assistant connected to an unreliable semantic layer does not create intelligence.

It produces unreliable answers faster.

For organisations adding AI to analytics, the priorities therefore become:

stable source contracts

validated transformations

governed semantic models

explicit metric definitions

data lineage

role-based access

query observability

human validation for consequential recommendations

This is the difference between attaching an AI interface to a dashboard and building an AI-ready decision system.

Microcorem Perspective

The most valuable part of a business-intelligence project is rarely the dashboard itself.

It is the agreement the organisation creates around what its data means.

A strong BI architecture creates a controlled path:

Data → Structure → Meaning → Insight → Action

Power BI can provide the semantic and analytical layers.

Power Query can prepare data.

DAX can define reusable business logic.

Microsoft Fabric can extend the architecture into modern lakehouse and warehouse patterns.

Security controls determine who can see the result.

Performance tooling helps determine whether the implementation scales.

But the engineering objective remains straightforward:

Make important business questions answerable from trusted data.

A visually impressive dashboard is useful.

A system that gives decision-makers the same correct answer, quickly, securely and repeatedly is considerably more valuable.

Next engagement

Build Your First Reliable AI Agent System

Move beyond AI experiments. Microcorem helps organisations design agentic workflows, retrieval systems, evaluation pipelines, and production-ready LLM applications.