🎯 Situation
A wholesale distribution client came to us with a common problem framed as a simple question: "We have 500 customers. Who should we be investing in?"
Their sales team had a clear answer: the top 10 by revenue. Their finance team had a different answer once we ran the numbers. Three of those top-10 revenue customers were actually negative-margin accounts — high volume, yes, but with negotiated discounts, high return rates, dedicated support time, and custom delivery requirements that wiped out any profit.
The data to answer the question correctly existed. It was just in two different systems — CRM for customer activity, ERP for costs and margins — that had never been connected.
⚠️ Challenge
Customer profitability analysis requires crossing data from systems that most companies keep separate. The CRM holds the relationship data. The ERP holds the financial data. Neither system alone can answer the question.
📈 What the CRM knows
- Revenue per customer, deal history, win rate
- Sales activity: calls, emails, meetings per account
- Renewal dates, contract value, pipeline stage
- Customer segment, industry, region
- Support ticket count and resolution time
📊 What the ERP knows
- Actual cost of goods sold per order
- Discounts and price exceptions applied
- Return rates and credit notes issued
- Delivery costs per customer location
- Gross margin per invoice line
Profitability = Revenue − Cost of goods − Discounts − Returns − Service cost. You need both systems to calculate it. And once you calculate it per customer, the ranking almost always surprises the sales team.
🔍 What We Built
The solution was a customer profitability dashboard in Power BI, fed by a central database that joined CRM and ERP data on the customer ID — the shared key that existed in both systems.
The dashboard had three views:
- Profitability matrix — a scatter plot with revenue on the X axis and margin percentage on the Y axis. Each dot is a customer. The top-right quadrant (high revenue, high margin) is where you invest. The bottom-left (low revenue, low margin) is where you have a conversation. The top-left (high revenue, low margin) is the dangerous quadrant — big accounts that are quietly costing money.
- Customer detail view — click any customer to see a full breakdown: revenue, cost of goods, discounts, returns, support tickets, and calculated net margin. The first time the sales director saw this view, he printed it and brought it to the next account review meeting.
- Trend by quarter — is a customer's margin improving or deteriorating over time? A customer going from 22% to 14% margin over three quarters is a signal before it becomes a problem.
✓️ The Decisions This Unlocked
Once customer profitability was visible, the commercial team could make decisions they simply couldn't make before:
- Pricing reviews triggered by data — any customer below 15% margin gets a pricing conversation at the next renewal. No more gut-feel exceptions.
- Sales focus shifted — the team stopped chasing volume and started chasing margin. The top 20% most profitable customers got a dedicated quarterly review. The bottom 10% got a cost-reduction or price-increase plan.
- Product mix optimization — the dashboard revealed which product categories had the highest margin per customer. The sales team started leading conversations with those products first.
- Churn risk identification — customers with declining margin and increasing support tickets were flagged proactively, before they became a contract loss.
Within six months, the company's overall gross margin improved by 2.3 percentage points — not from new customers, but from better decisions on existing ones.
💡 Summary
Revenue tells you who's buying. Margin tells you who's worth keeping. Most companies only measure the first one.
To build a customer profitability view:
- Identify the shared key — customer ID exists in both CRM and ERP. That's the join point.
- Extract cost data from the ERP — cost of goods, discounts applied, returns, delivery costs per customer
- Load into a central database — join the two datasets on customer ID, calculate net margin per customer
- Build the profitability matrix in Power BI — revenue vs. margin scatter plot, with drill-through to the full customer breakdown
- Review quarterly — margin per customer should be a standing agenda item in commercial reviews, not an occasional analysis
The data already exists. It's just sitting in two separate systems, never introduced to each other.
👉 Your most loyal customers aren't always your most profitable ones.
You can't act on what you can't see. Connect the data first.