A $1.2M wholesale account walks into your quarterly review looking like a hero. Solid reorder cadence, decent average order value, growing year-over-year. Your sales team celebrates. Your ops team quietly seethes. Because that same account returned 14% of units last quarter, disputed three invoices, requires custom inner packs for every shipment, pays on net-75 instead of net-30, and generates more support tickets than your next four accounts combined.

Strip away the top-line number and that account might be making you $40K a year. Or it might be costing you $60K. You genuinely don’t know — because you’ve never run the math.

Most brands have a P&L by channel. Some have a P&L by product. Almost nobody has a P&L by customer. And it’s the one that changes the most decisions.

Why Channel-Level Economics Aren’t Enough

Channel P&Ls tell you that wholesale runs at 22% margin and DTC runs at 38%. Useful for high-level strategy. Useless for deciding whether to accept a $300K PO from a regional grocery chain that wants custom case packs and 90-day terms.

The problem is variance. Within your wholesale channel, individual account profitability can swing from +35% to -15%. That variance is invisible until you build the customer-level view.

What channel P&L showsWhat customer P&L reveals
Wholesale margin: 22%Account A margin: 34%, Account B margin: -4%
Average return rate: 6%Account C returns: 2%, Account D returns: 19%
Average days-to-pay: 38Account E pays in 15 days, Account F pays in 82
Blended COGS: 41%Account G uses standard packs, Account H requires custom
Support cost: $2.10/orderAccount I: $0.40/order, Account J: $14.60/order

When you blend these numbers at the channel level, your worst accounts hide behind your best ones. You end up subsidizing unprofitable relationships with profitable ones and never seeing it.

The Seven Cost Layers Most Brands Miss

Revenue minus COGS gets you gross margin. Gross margin minus the following seven layers gets you customer-level contribution margin — the number that actually matters.

1. Returns and allowances

Not just the refund. The full cost includes inbound freight on returned goods, labor to inspect and restock (or write off), lost packaging, and the margin on the replacement unit if you ship one. For CPG brands with expiration dates, returned product is often unsellable.

True Return Cost Per Unit:

  Refund amount (or credit issued)
+ Inbound return freight
+ Inspection & restock labor (avg 8-12 min @ loaded labor rate)
+ Packaging waste (original packaging destroyed)
+ Replacement unit COGS + outbound freight (if reshipped)
+ Inventory carrying cost during return processing (avg 5-9 days)
- Salvage value (if resellable, typically 40-70% of original)
─────────────────────────────────────────────────────────
= True cost per returned unit

Example:
  $24.00 wholesale unit, 12% return rate
  Refund: $24.00
  Return freight: $3.80
  Restock labor: $4.20 (10 min × $25.20/hr loaded)
  Packaging: $1.90
  Carrying cost: $0.35
  Salvage: -$9.60 (40% resold)
  ─────────
  True cost per return: $24.65
  On 12% return rate across 10,000 units: $29,580/year in hidden cost

2. Chargebacks and deductions

Retailer chargebacks for ASN errors, routing guide violations, labeling mistakes, and late shipments. Distributor deductions for promotions, damages, and “short ships” that may or may not have actually been short. Every chargeback has a direct dollar cost plus the internal labor to dispute it.

Track three numbers per account: chargeback dollars as a percentage of revenue, dispute win rate, and average cost to dispute (typically $45-$120 per dispute in analyst time).

3. Payment terms and cash cost

Net-30 is not the same as net-75. The difference is real money.

If your weighted average cost of capital is 8-12% (typical for a scaling CPG brand using a mix of debt and equity), then every extra day a customer takes to pay costs you money. A $500K account paying on net-75 instead of net-30 ties up roughly $56,500 in working capital for an extra 45 days, costing you $2,200-$3,300 annually in carrying cost alone.

Worse, some accounts routinely pay late. If their terms are net-30 and they actually pay on day 52, that’s 22 days of free financing you’re providing.

4. Custom handling and compliance

Retail compliance is where profitability goes to die quietly. Custom inner packs, specific case configurations, unique labeling requirements, pre-ticketing, hanger insertion, poly-bagging, specific pallet patterns, EDI mapping per trading partner — each one adds cost.

Some of this is table stakes for the channel. But the variance across accounts is significant. One retailer might accept your standard case pack with a GS1 label. Another requires a custom 6-pack inner, a retailer-specific UPC sticker, a pre-printed shelf-ready display shipper, and a $2,500 new-item setup fee.

5. Freight and delivery costs

Not all shipments cost the same. A customer ordering full truckloads to a single DC is fundamentally different from one ordering mixed pallets to 14 regional distribution centers with narrow delivery windows.

The gap can be enormous: $0.08 per unit for a consolidated FTL shipment versus $0.85 per unit for LTL to multiple destinations with liftgate delivery and appointment scheduling.

6. Sales and account management cost

Divide your sales team’s loaded cost (salary, commission, benefits, travel, entertainment) by the accounts they manage. A field rep covering 12 accounts at a loaded cost of $180,000/year allocates $15,000 per account — but the actual time split is rarely even. Your neediest account might consume 30% of that rep’s time.

7. Support and issue resolution cost

Customer service tickets, order inquiries, shipment status calls, portal management, catalog updates, and issue escalation. Track tickets per account per month, average resolution time, and escalation rate.

An account generating 45 tickets per month at an average cost of $12.50 per ticket adds $6,750/year in support cost. An account generating 3 tickets per month costs $450/year. Same revenue, wildly different profitability.

Building the Customer P&L: A Working Template

Here’s the structure. Pull 12 months of data, not just the most recent quarter — seasonality distorts the picture.

Line itemSourceAccount AAccount B
Gross revenueERP/OMS$840,000$620,000
Less: returns & allowancesERP + warehouse($33,600)($105,400)
Net revenueCalculated$806,400$514,600
COGS (standard)ERP($344,400)($254,200)
Custom handling & complianceWarehouse + manual($4,200)($38,700)
Gross marginCalculated$457,800$221,700
Chargebacks & deductionsA/R + deduction log($2,500)($31,000)
Freight (allocated)TMS or freight invoices($25,200)($52,700)
Cash carrying costCalculated from DSO($1,800)($8,900)
Sales cost (allocated)Time-weighted($12,000)($22,500)
Support cost (allocated)Ticket system($1,800)($9,400)
Customer contribution marginCalculated$414,500$97,200
Contribution margin %49.3%15.7%

Account A generates 26% less revenue than you’d assume is the more profitable one. Account B generates 33% less margin on 74% of the revenue — and it’s consuming disproportionate operational resources to serve.

The Distribution Will Surprise You

When you first build this view across all accounts, expect something close to a power law distribution. In most CPG brands running between $10M and $80M in revenue:

  • The top 20% of accounts by contribution margin generate 70-90% of total customer-level profit
  • 15-25% of accounts operate at or near breakeven
  • 5-15% of accounts are actively destroying margin

That bottom tier isn’t just “less profitable.” Those accounts are subsidized by your best customers. Every dollar of margin they burn comes directly from the pool your profitable accounts generate.

The emotional reaction is to fire the unprofitable ones immediately. Don’t. The data is the starting point for a conversation, not the final verdict.

What to Do With the Results

Tier your accounts

Build three or four tiers based on contribution margin percentage, not revenue. Revenue tiers reinforce the problem — they prioritize big accounts regardless of profitability.

TierContribution margin %Action
Platinum> 35%Protect, invest, grow. Priority fulfillment, dedicated rep time, co-marketing.
Gold20-35%Maintain. Standard service levels. Look for efficiency gains.
Silver5-20%Restructure. Renegotiate terms, simplify compliance, adjust minimums.
Red< 5% or negativeFix or exit. 90-day improvement plan with specific margin targets.

Renegotiate, don’t just cut

Red-tier accounts aren’t necessarily bad customers. They’re often good customers with bad terms. Before firing anyone:

  • Adjust payment terms. Moving from net-75 to net-30 with a 2% early-pay discount can shift a breakeven account to 8-12% contribution margin.
  • Simplify compliance. If custom packing adds $3.80/unit, propose your standard configuration at a lower price point. The customer might not even know what their requirements cost you.
  • Set order minimums. Small, frequent orders kill fulfillment economics. A $2,500 order minimum eliminates the worst offenders.
  • Renegotiate return policies. A customer with a 19% return rate might accept a 5% return allowance built into pricing in exchange for no-questions-asked credits.
  • Increase prices. Sometimes the simplest answer is the right one. If an account is unprofitable at current pricing, the price is wrong.

Set a margin floor

Decide the minimum contribution margin percentage you’ll accept from any account. For most CPG brands, 12-18% is a reasonable floor — enough to cover overhead allocation and leave profit. Accounts that can’t reach the floor after restructuring are candidates for a managed exit.

A managed exit doesn’t mean a hostile breakup. It means gradually reducing investment: pulling dedicated rep coverage, moving to standard (not priority) fulfillment, eliminating custom programs, and letting the account self-select out over two to three quarters.

Redirect resources to Platinum accounts

The real payoff isn’t cutting bad accounts — it’s reinvesting in great ones. Every hour your ops team spends managing a Red-tier account’s chargebacks is an hour not spent improving fill rates for a Platinum account that actually grows your business.

Run the thought experiment: if you reallocated the sales, support, and ops resources currently consumed by your bottom five accounts to your top five, what would happen? In most cases, the answer is a 6-12% increase in contribution margin from accounts that are already your most profitable.

The Data Problem (and How to Solve It)

The reason most brands don’t run a customer P&L isn’t that they don’t want to. It’s that the data lives in seven different systems.

Revenue and COGS: your ERP or accounting system. Returns: your OMS or warehouse management system. Chargebacks: your A/R system, or worse, a spreadsheet maintained by one person. Freight: your TMS, carrier invoices, or a broker’s portal. Payment timing: your A/R aging report. Sales cost: your CRM or your head of sales’s estimate. Support: your helpdesk or ticket system.

The first time you build this, it’s a manual exercise. Pull exports from each system, normalize to a common account identifier, and build the model in a spreadsheet. It will take your finance or ops team 15-25 hours to build the first version.

After the first build, automate what you can. An OMS or ERP with strong reporting (or a connected data warehouse) can generate most of these numbers automatically. The manual pieces are usually sales time allocation and custom handling costs — and even those stabilize once you’ve measured them twice.

Quarterly Customer P&L Review Cadence:

  Week 1:  Pull data exports from all source systems
  Week 2:  Build/refresh the customer P&L model
  Week 3:  Review with sales + ops leadership
           - Identify tier changes (accounts moving up or down)
           - Flag new Red-tier accounts for 90-day plans
           - Review progress on existing restructuring plans
  Week 4:  Execute — renegotiations, minimum adjustments, exits

  Time investment after initial build: 8-12 hours/quarter
  Typical margin recovery in first year: 3-7% of total revenue

When the Politics Get Complicated

The hardest part of customer P&L analysis isn’t the math. It’s the conversation with your sales team.

Your VP of Sales landed that $620K account. It’s their biggest win of the year. Telling them it’s barely profitable — or worse, unprofitable — is a conversation that requires data, empathy, and a clear framework for what “fixing it” looks like.

Three things that help:

First, present contribution margin alongside revenue in every sales review. Not as a gotcha — as a standard metric. When it’s always on the dashboard, it stops being a threat and starts being a tool.

Second, restructure sales compensation to include a margin component. Even a small one — 10-15% of variable comp tied to contribution margin instead of pure revenue — changes behavior surprisingly fast. Reps start self-selecting for better accounts.

Third, give sales a seat at the restructuring table. The rep who manages the account often knows exactly why it’s unprofitable and has ideas for fixing it. “Custom inner packs” might be a buyer preference that nobody’s pushed back on, not a hard requirement.

The Strategic View: Customer Portfolio Theory

Once you have reliable customer-level contribution margins, you can manage your customer base the way a portfolio manager manages assets.

High-margin, high-growth accounts are your core holdings — protect them.

High-margin, flat accounts are your cash cows — harvest efficiently, don’t over-invest.

Low-margin, high-growth accounts are your turnaround opportunities — fix the margin structure while volume is increasing, because the leverage is in your favor.

Low-margin, flat-or-declining accounts are your divest candidates — redeploy the resources.

This framework turns customer management from relationship-driven intuition into a repeatable operating discipline. It doesn’t replace relationships. It makes sure relationships are directing energy toward the accounts that actually build the business.

Start Here

You don’t need a perfect model to start. Pull last quarter’s data for your top 20 accounts by revenue. Add returns, chargebacks, and freight allocation. That’s enough to see the pattern.

The first time I helped a $22M kitchenware brand run this analysis, we found that three of their “top ten” accounts — representing $3.8M in combined revenue — were generating a combined contribution margin of $62,000. Less than 2%. One was negative. The founder’s reaction: “I’ve been personally managing that account for three years.”

That’s why you run the numbers. Not because the math is complicated — it isn’t. Because the assumptions you’re operating under might be quietly draining the business.

If your customer data lives across too many systems to reconcile manually, that’s a solvable problem. CommerceOS connects your OMS, WMS, and financials into a single view — including the per-account contribution margins most ERPs can’t surface.

Commerce is chaos.

Tame your tech stack with one system that brings it all together—and actually works.

Get a Demo

Share this post