Gross margin by customer requires connecting revenue data from the CRM or billing system, cost of goods sold from operations or inventory, and allocated overhead from finance — across systems that often don’t share a customer identifier. The calculation that would most directly inform go-to-market strategy is the one that most mid-market companies can’t produce without a multi-day manual exercise.
Customer profitability is, in theory, one of the most important metrics a company can track. Knowing which customers generate profit and which consume it changes hiring decisions, pricing strategy, customer success investment, and sales targeting. Companies that know their customer-level economics can optimize around them. Companies that don’t are flying partially blind on some of their most consequential decisions.
In practice, producing a reliable customer-level profitability analysis is beyond the reach of most mid-market companies without significant manual work. The reason is architectural.
What the calculation requires
A customer-level P&L has three components. Revenue is the total billed and recognized for the customer over a period — net of any discounts, credits, or adjustments. Direct cost includes the cost of goods or services delivered to that customer: product cost from inventory, professional services hours from the project system, support costs from the ticketing system. Allocated overhead includes the customer’s share of costs that aren’t directly traceable — customer success, account management, billing administration, a proportional share of G&A.
Each of these components lives in a different system. Revenue is in the CRM or the billing platform or the ERP — or split across all three, depending on how the company is set up. Direct cost is in the inventory system, the project management system, and the services delivery platform. Allocated overhead is in the ERP’s cost center structure, where it exists at an aggregate level but has never been systematically connected to customer records.
Combining them requires a customer identifier that works consistently across all three systems. In most companies, it doesn’t — the customer ID in Salesforce is different from the account code in NetSuite is different from the subscriber ID in Chargebee. Joining the data requires either a master mapping table someone has to maintain or a BI layer that attempts to resolve the connections algorithmically, with variable reliability.1
Why this matters strategically
The companies that can calculate customer-level profitability reliably use it to make better decisions than their competitors. They identify their highest-margin customers and build go-to-market strategy around finding more like them. They identify loss-making customers and decide — deliberately, with full information — whether to re-price, re-scope, or exit those relationships. They price new contracts with knowledge of what similar customers actually cost to serve, rather than assumptions.
The companies that can’t calculate it make these decisions on incomplete information, compensating with intuition and market benchmarks that may not reflect their actual cost structure. They may keep customers that are actively damaging their margins because the margin isn’t visible. They may underinvest in their most profitable customers because the profitability isn’t measured.
The architectural solution
Customer-level profitability becomes a live metric rather than a quarterly exercise when customer is a first-class entity in the data model — when every transaction in the system, from the initial contract through every delivery event and support interaction, carries a customer identifier that’s consistent across all modules. Revenue, cost, and overhead can then be queried against that identifier without a joining exercise, because they all live in a system that knows they belong to the same customer.
This requires that the CRM, the commercial module, the delivery tracking, and the financial system all operate against the same customer record. Not synchronized copies of the customer record. The same one. The commercial system isn’t a separate system from the financial system — it’s a lens on the same underlying data, scoped to commercial events rather than financial events.
When that architecture exists, customer-level profitability is a report filter, not a multi-day project.
Sources
Footnotes
-
Kaplan, Robert S. and Anderson, Steven R. “Time-Driven Activity-Based Costing.” Harvard Business Review, November 2004. Foundational treatment of customer profitability analysis and the cost allocation methodologies that make it tractable. https://hbr.org/2004/11/time-driven-activity-based-costing ↩