Skip to content
MYGrowth Solutions – home
MYGrowth Solutions
All insights

Reporting

P&L by Customer: Why You Need It and How to Build It

How to build a P&L by customer: the data you need, three ways to allocate shared costs, common pitfalls, and what to do once you see who makes you money.

MYGrowth Solutions5 min read

Two people at a table reviewing a printed report in a modern office

Your total gross margin can look healthy while some customers lose you money. The average hides the spread. A P&L by customer shows it.

A customer P&L takes revenue for each customer and subtracts the costs of serving them. The result is contribution, or profit, per customer. Done well, it changes how you price, sell and service accounts.

Why it matters

Customers with similar revenue can differ widely on cost. Common drivers include:

  • Discounts, rebates and special pricing
  • Order size and frequency
  • Custom work, rush orders and change requests
  • Returns, credits and disputes
  • Support tickets and account management time
  • Freight terms and delivery requirements
  • Payment behavior and the cost of carrying receivables

None of these show up when you only look at revenue. All of them affect profit.

The data you need

Start with what you already have. Most of it sits in your accounting system, CRM and operations tools.

Data Typical source Used for
Revenue by customer, net of discounts and credits Accounting system, invoicing Top line
Cost of goods or direct labor by job Inventory, timesheets, job costing Gross margin
Freight and shipping by order Shipping system, AP Cost to serve
Count of orders, shipments or invoices ERP, invoicing Allocation driver
Support tickets or hours Help desk, timesheets Allocation driver
Sales and account management time CRM, team estimate Allocation driver
Average days to pay AR aging Cost of capital

Clean your customer master data first. One customer recorded under three names will distort the result. Merge duplicates. Roll subsidiaries up to the parent if that is how you manage the account.

Build it in layers

Build the customer P&L in layers, from most certain to least certain. Readers can then see where hard numbers end and estimates begin.

  1. Net revenue: gross sales minus discounts, rebates, returns and credits.
  2. Direct costs: materials, direct labor and subcontractors tied to that customer’s orders.
  3. Gross margin: net revenue minus direct costs.
  4. Cost to serve: freight, packaging, support, account management and payment processing.
  5. Customer contribution: gross margin minus cost to serve.
  6. Allocated overhead (optional): a share of rent, systems and admin.

Stop at contribution for most decisions. Overhead allocation adds noise and rarely changes a pricing decision.

Three ways to allocate shared costs

Direct costs are easy to assign. Shared costs need an allocation method. Pick the simplest one that reflects how your costs actually behave.

Revenue-based allocation

Spread shared costs by each customer’s share of revenue. It is quick and easy to explain. It also hides the problem you are trying to find. Small, demanding customers look cheaper to serve than they are.

Activity-based allocation

Activity-based costing (ABC) assigns costs using the drivers that cause them. Examples include orders, shipments, invoices, support tickets or service hours.

For example, divide warehouse handling cost by total orders to get a cost per order. Then multiply by each customer’s order count. This takes more work, but it gives a much fairer picture.

Time-based allocation

For services firms, time is the main cost. Use timesheet hours by customer for delivery staff. Some account managers and support staff don’t log time. Ask them to estimate their split for one month. An honest estimate beats revenue-based allocation.

A hypothetical illustration

The figures below are invented to show the mechanics. Two customers each bring in $500,000 a year.

Line Customer A Customer B
Net revenue $500,000 $500,000
Direct costs $300,000 $300,000
Gross margin $200,000 (40%) $200,000 (40%)
Orders per year 24 300
Order handling at $150 per order $3,600 $45,000
Freight absorbed $5,000 $30,000
Support at $60 per hour 50 hours, $3,000 600 hours, $36,000
Contribution $188,400 (38%) $89,000 (18%)

Both customers look identical at gross margin. Customer B costs far more to serve. The reasons are order frequency, freight terms and support load.

Pitfalls to avoid

  • Allocating everything. Fully loading every overhead dollar makes many customers look unprofitable. Some of that cost would not go away if they left.
  • False precision. Reporting contribution to the cent implies accuracy you don’t have. Round, and label estimates.
  • One period only. A single month can mislead. Use 12 months, or at least two quarters.
  • Ignoring strategic value. A low-margin anchor customer may bring volume, referrals or a foothold in a new market.
  • Building it once. Customer economics change. Refresh the analysis at least quarterly.
  • Mixing cash and accrual figures. Use accrual revenue and costs, so payment timing does not distort margins.

What to do with the answer

Sort customers into a simple grid: high or low revenue, and high or low contribution margin. Then act on each group.

  • High revenue, high margin: protect them. Review service levels and renewals early.
  • Low revenue, high margin: grow them. They are often your best targets for upselling.
  • High revenue, low margin: fix the economics. Revisit pricing, minimum order sizes, freight terms or service scope.
  • Low revenue, low margin: change the terms or let them go. Try a lower-cost service model first.

A customer P&L is a tool for better conversations, not a list of customers to drop.

Share the results with sales and operations, not just finance. They often know why a customer costs more to serve. They also own most of the fixes.

Then set a review rhythm. Look at your top 20 customers each quarter. Track how their contribution moves after each change you make.

Where to start

  1. Pull 12 months of net revenue and direct costs by customer for your top 20 accounts.
  2. Pick two or three cost drivers you can measure today, such as orders, shipments or support hours.
  3. Build a contribution view for those 20 customers and review it with your sales lead.

If you want a second view on your profitability data, MYGrowth offers a free 30-minute finance health check.

Free finance health check

Want this done for you?

Book a free 30-minute finance health check. You leave with three practical fixes, whether or not you hire us.

Free · 30 minutes

Book a finance health check

  • A quick look at your close, reporting and tools
  • Three practical fixes you can use straight away
  • A clear price if you want us to help

No slides. No obligation.

Pick a time that suits you

30 minutes, video call. Times show in your time zone.

Loads the Cal.com scheduler.

Prefer email? Book by email and we'll reply within one business day.