The Power BI Customer Profitability Sample - What It Teaches About Modelling Real Businesses
Most businesses know their revenue down to the dollar and have only a fuzzy sense of their profit by customer. That gap is where a lot of bad commercial decisions get made. A sales team chases a big-name account for two years, lands it, and nobody notices that the cost to serve that account eats the entire margin. A finance manager suspects this is happening but can't prove it, because the data lives in four systems and nobody has stitched it together. This is the problem the Power BI Customer Profitability sample is built to illustrate, and it's a more interesting sample than most people give it credit for.
I've used this one in client workshops more than any of the other built-in samples, and the reason is simple. The data model is the closest thing Microsoft ships to a model you'd actually find in a real business. The Sales and Marketing sample is prettier. The Customer Profitability sample is more useful if what you care about is learning how to think about a finance-grade model. So this is a walk through what's in it, what it teaches well, and how to use it without absorbing the few habits that don't survive contact with a real client dataset.
What's in the sample
The Customer Profitability sample tells the story of a fictional company that makes marketing materials. The dataset is built around the office of the CFO, and the reporting question is the one that office actually asks: which customers, products, and business units are making us money, and which ones only look like they are?
The model has revenue, cost of goods, gross margin, and a set of dimensions for customer, product, business unit, executive (the person accountable for the account), and time. That executive dimension is the bit I always point out in workshops, because it's the closest the built-in samples come to modelling organisational accountability. Real profitability reports nearly always need to roll up to a person who owns the number, and most teaching datasets ignore that entirely.
You download it as a .pbix file from the Microsoft documentation, or load the app from the Power BI service. As always, grab the .pbix if you want to learn anything. The service app shows you the finished report but hides the model, the measures, and the relationships, which are the parts worth studying.
What the model gets right
A few things in this sample are genuinely worth copying into real work.
It separates revenue from cost from margin as distinct measures. This sounds obvious. It is not how a lot of self-taught Power BI looks in the wild. I regularly open client reports where gross margin is a column hardcoded in the source query rather than a measure calculated in the model. The moment someone wants margin at a different grain, or wants to compare margin across two date ranges, the hardcoded approach falls apart. The Customer Profitability sample does it the right way. Margin is a measure, derived from revenue and cost, and it recalculates correctly at every level of every dimension. If a junior analyst takes one thing from this sample, I'd want it to be that.
It models the "who owns this" dimension. The executive table forces you to think about how a profitability number rolls up through an organisation. In a real business, a customer might be served by multiple business units, each with a different accountable manager. The sample's structure makes you confront how you'd represent that. That's a more honest lesson than most samples offer.
It uses variance against a target. Like the better samples, this one pairs the headline numbers with context. A gross margin percentage on its own is just a number. A gross margin percentage against a budget, or against last year, is information someone can act on. We push this on every finance report we build. The sample bakes it in.
The DAX is readable. The measures aren't trying to be clever. They're the kind of clear, well-named measures you'd want a new team member to be able to read and understand. This is underrated. A profitability model that only its author can maintain is a liability, no matter how accurate it is.
This structural side is the bit we spend the most time on when we run Power BI training for client finance and analyst teams. The features are easy to learn from a video. The modelling judgement is the hard part, and a well-built sample is one of the better ways to teach it.
Where the sample stops short of reality
Now the honest part, because no sample survives contact with a real client unchanged.
Cost allocation is the elephant in the room. The sample treats cost of goods as a clean number that arrives neatly attached to each transaction. Real customer profitability is brutal precisely because cost is never that clean. The cost to serve a customer includes support hours, account management time, payment terms, returns, freight, and a share of overhead that someone has to allocate using a rule that finance and sales will argue about for months. The sample can't teach you any of that, because the genuinely hard part of profitability reporting isn't the Power BI. It's agreeing on the allocation method. I've watched a profitability project stall for a quarter not because of any technical problem but because two departments couldn't agree on how to split a shared logistics cost. Go in expecting that.
The data is too tidy. Every customer has a clean ID, every transaction maps to exactly one product, and there are no orphaned records, no late-arriving data, no currency conversions. A real Australian business with overseas suppliers or customers has at least one of those problems, usually all of them. If you only ever practise on this sample, the first real model you touch will surprise you.
It's a single snapshot, not a living system. The sample doesn't deal with incremental refresh, with month-end close timing, or with the question of what "this month's profit" means before the books are closed. Those operational concerns are where most of the real effort goes once a profitability report is in production. The sample is a starting point, not a blueprint for the running system.
How to actually use it to learn
If you're using this sample to lift your own or your team's capability, here's the path I'd suggest rather than just clicking around.
First, open the model view and trace how margin is calculated. Start from the gross margin measure and work backwards to the columns it depends on. Try to predict what each measure does before you read its definition. This builds the habit of reading a model rather than passively trusting it.
Second, rebuild the main profitability page from scratch on a hidden copy. You'll discover settings and choices you never noticed by reading. The act of rebuilding is where the learning actually happens.
Third, and this is the one that matters most for finance work, take the sample and add a deliberate complication. Introduce a shared cost that has to be allocated across two business units. Build the allocation logic yourself. This is the closest you can get, inside a safe sandbox, to the real problem you'll face on an actual engagement. If you can model a defensible cost allocation, you understand profitability reporting. If you can only chart pre-calculated margins, you understand charting.
We run roughly this structure when we help client teams move from "we can open a sample" to "we can build a model finance will trust." It's part of how we approach Power BI consulting generally. The tooling is the easy half. The judgement about what to model and how to allocate cost is the half that earns its keep.
Why this matters beyond Power BI
There's a bigger reason I like this sample as a teaching tool. Customer profitability is exactly the kind of question that gets a lot better when you put AI on top of a well-built model. Once you have a clean, trustworthy profitability model, the natural next question is "why is this account's margin slipping," and that's a question a data agent can help answer if, and only if, the underlying model is sound. The model has to be right first. The AI amplifies whatever you give it, including the mistakes.
That's the order we recommend to clients. Get the profitability model honest and maintainable. Agree the allocation rules with the people who'll be held to the numbers. Then layer on the business intelligence and AI capability that turns a static report into something people actually ask questions of. Skipping the first step and going straight to "let's put a chatbot on it" is how you end up with a confident AI giving wrong answers about your most important accounts.
For the download links and Microsoft's own walkthrough of each report page, the Customer Profitability sample documentation is the place to start.
If your team can build the charts but you're not yet confident the profitability numbers underneath them would survive a hard question from the CFO, that's the gap we help Australian businesses close. Have a look at our Power BI services and get in touch if you want to talk through what a finance-grade model looks like for your business.