Why You Can't See Margin by Customer in a Wholesale Business

28 October 2026 Aaron Chambers Business Strategy, Systems Integration

If you run a wholesale or distribution business and can't say which customers, product lines or reps actually make you money, you're not alone, and it's rarely because nobody is trying. Your price lists live in a sales spreadsheet or the stock system, rebates, freight, settlement discounts and credit notes land somewhere else, the landed cost of a container turns up weeks after the stock was sold, and the accounts only show one gross margin for the whole business. Margin by customer isn't a report you're missing. It's a number that has never been assembled in one place.

It's the second week of the month. The P&L is in, and gross margin is down on last month. The sales manager says the big hardware account is growing nicely. The warehouse manager says freight costs have been terrible. The buyer mentions the last shipment cost more than the price file assumed. Finance has a margin figure for the whole business and no way to say which of those stories explains it. Someone exports invoice lines to Excel, starts matching them against the stock system's average cost, and by Thursday has a spreadsheet that answers last month's question, roughly, for one customer.

Signs you have this problem

  • Gross margin in Xero or MYOB is one line for the whole business, and nobody trusts a split below it.
  • Reps can see sell price but not cost, so they discount to win the order without knowing what's left.
  • Customer rebates and volume deals are tracked in a spreadsheet and posted as a lump sum at quarter or year end.
  • Freight out is a single expense account, not charged against the customer or the order it was for.
  • Credit notes for returns, short shipments and pricing disputes are raised in the accounts, not against the original sale in the stock system.
  • Landed cost (freight in, duty, customs broker and port charges) is added after the stock has been sold, so the margin on those early sales was calculated on the wrong cost.
  • Special prices, contract pricing and "just this once" deals are agreed by email or phone and never recorded where the margin report can see them.
  • Your best customer by sales and your best customer by profit might be different businesses, and you can't tell.
  • The monthly sales report and the P&L disagree, and reconciling them is somebody's job for two days.

Why it happens

Margin by customer needs three things on the same line: what you sold, what it really cost you, and everything you gave away to make the sale. In most wholesale businesses those three things are created by different people, in different systems, at different times.

Sell price sits in the stock or order system, often with a price list, customer-specific pricing and a pile of exceptions kept in a sales spreadsheet.

Cost sits in the stock system as an average or standard cost. That cost is only as good as the last time someone entered the landed cost properly. If freight, duty and agent fees arrive on separate bills after the goods are received, the stock system may never get them, or gets them after the stock has already been sold. We explain the mechanics in how to calculate landed cost on imported stock.

Everything given away is the part most businesses miss: rebates, settlement discounts, freight paid on a customer's behalf, free goods, returns, write-offs, rep incentives and promotional allowances. These mostly land in the accounting system as journals, expense bills or credit notes, coded to general accounts rather than to the customer, product or order they belong to.

So the stock system knows sales and an estimate of cost. The accounting system knows the real costs and the money given back, but at the level of accounts, not customers. The spreadsheets know the deals. No single system has all three, and the systems give different numbers depending on which one you ask.

Buying another reporting app rarely fixes this alone. A dashboard can only show what the systems already hold, and if rebates aren't recorded against customers and freight isn't recorded against orders, the dashboard shows a tidier version of the same gap. The fix is mostly about where and how data is captured, then connecting it.

What it costs you

The cost is mostly margin you can't see, and decisions made without it.

  • Discounting blind. For example, if a rep gives a customer an extra discount to win a large order, and that customer also gets a year-end rebate and free delivery, the order may be close to break-even. Nobody sees that until the rebate is paid, if at all.
  • Serving unprofitable customers well. Customers who order small, often, with lots of returns and urgent freight can look great on a sales report and cost you money. Without margin by customer, they get the same terms and attention as your most profitable accounts.
  • Product lines that quietly drift. When a supplier's price or the freight cost rises and the price list doesn't follow, the margin on that range erodes for months before the whole-of-business gross margin shows it.
  • Rewarding the wrong things. If reps are paid or praised on sales, not margin, the business gets more sales, not more profit.
  • Time and key-person dependence. Someone in finance rebuilds the analysis by hand each month or quarter. When they're on leave, nobody does it, and the spreadsheet logic lives in their head. That's the same pattern as not seeing job profit until it's too late, just with customers and product lines instead of jobs.
  • Stock value questions. When cost in the stock system and the accounts drift apart, both margin and inventory on the balance sheet are suspect. If that sounds familiar, see why Cin7 or Unleashed stock value doesn't match Xero or MYOB.

What fixing it generally involves

Start simple. Some of this is a settings and discipline problem, not a systems project.

  1. Agree what "margin" means for you. Decide which costs belong in customer margin: product cost including landed cost, freight out, rebates, settlement discounts, credits and returns. Write it down. Different people often mean different things by margin, and that alone explains some of the arguments.
  2. Get landed cost into the stock system before stock is sold. Estimate freight, duty and charges when goods are received, then adjust when the final bills arrive. Most stock systems can do this already; it's usually the process around it that's missing.
  3. Record deals where the margin report can see them. Customer-specific pricing, contract prices and rebate agreements belong in the stock or order system, or in one controlled register, not in reps' inboxes.
  4. Code giveaways to the customer and product. Freight out, rebate accruals, credit notes and promotional allowances should carry the customer (and ideally the order or product line) when they're entered. In Xero, tracking categories help, though you may hit the limit on how many tracking categories Xero allows.
  5. Accrue rebates monthly. Rather than posting rebates as a lump sum at year end, accrue them against each customer's sales as they happen, so monthly margin is honest.
  6. Connect the systems. Once data is captured properly, connect the stock or order system, the accounting system and any rebate or pricing register so customer, product and rep margin can be reported from one place without retyping. This is where reporting from one set of numbers becomes possible.
  7. Show reps margin, not just price. Even a simple margin indicator on the order screen changes how discounts get approved. Some businesses add an approval step for orders below a set margin.

Sometimes your current stock system and accounting software are enough, and the fix is entirely in the process and coding. Sometimes the systems need connecting, or a missing piece has to be built. The inventory, wholesale and manufacturing systems guide covers the wider picture, and our wholesale and distribution page explains how we work with distributors.

Frequently asked questions

Why doesn't Xero or MYOB show margin by customer?

Accounting systems record sales and cost of goods sold, but rebates, freight and credits are usually coded to general accounts rather than to the customer. Unless every cost line carries the customer, the accounts can only show margin for the business as a whole.

Can our stock system report margin by customer?

Most stock and order systems can report sales minus product cost by customer, product or rep. The gap is everything else: freight out, rebates, settlement discounts and credit notes that are entered in the accounts, not the stock system. That report is a gross figure, not true customer margin.

How should we treat rebates in margin reporting?

Accrue them against the customer's sales each month, based on the agreement, rather than posting them when paid. That way monthly customer margin reflects what you'll actually give back, and there are no year-end surprises.

Should reps see cost price?

Many owners prefer not to show raw cost. A common middle ground is showing reps a margin indicator or band on each order, plus an approval step when a discount takes the order below an agreed margin.

Where do we start if all of this is in spreadsheets?

Start by agreeing the margin definition and getting landed cost and rebates recorded properly. Then look at connecting the systems. Our $5,000 Process & Systems Audit maps how orders, costs and deals flow today and produces a written report on what to fix first.

If you can't say which customers, product lines or reps actually make you money, book a free initial chat and we'll talk through where your pricing, costs and deals live today.