Skip to content

Copiara is coming to the Shopify App Store. It is not listed yet.

Copiara
Back to the journal
Net terms and payments9 min read

Accounts Receivable Aging for Distributors: Read It Upstream

Accounts receivable aging for distributors: what each bucket says about the order process behind it, why B2B invoices age, and where the real fix belongs.

By Amir Hessabi

Finance reads the accounts receivable aging report as a collections list: who owes what, how late, who gets the call today. That reading is correct and it is also the least useful thing the report contains.

For a wholesale distributor, the aging report is a record of how well orders were taken. By the time an invoice reaches the 61 to 90 bucket, the cause was usually decided weeks earlier, at the moment somebody keyed the order. A price that did not match the quote. A PO number nobody captured. An approval that lived in an inbox. A credit decision made after the truck left the yard.

You cannot collect your way out of an order-entry problem. You can only stop creating it.

What is an accounts receivable aging report for a distributor?#

An accounts receivable aging report lists every open invoice by how long it has been outstanding, grouped by customer, in buckets: current, 1 to 30 days past due, 31 to 60, 61 to 90, and over 90. It is the standard view of who owes you money and how overdue it is.

For a distributor selling on net terms, meaning the buyer takes the goods now and pays within an agreed window, it is also a diagnostic. An invoice that ages past 60 days is rarely a customer who forgot. It is usually one the buyer disputed, could not match to a purchase order, or never had the internal authority to place.

Four terms worth pinning down before going further:

  • DSO (Days Sales Outstanding): the average number of days it takes to collect after a sale. A portfolio-level speedometer, not a diagnosis.
  • Exposure: the total a customer currently owes you, plus anything you have committed to ship them and not yet billed.
  • Dispute: the buyer is contesting the amount, so the clock stops being about willingness to pay.
  • Short pay: the buyer pays part of an invoice and leaves the contested balance sitting open, which is how small amounts age for a very long time.

Why do B2B invoices go overdue?#

Some of it is not yours to fix. Atradius, in its Payment Practices Barometer for the United States published in September 2025, found that overdue invoices affect 43% of credit-based B2B sales for US companies, and it names customer cash flow pressure as the primary cause. The same report puts nearly 50% of US B2B sales on credit, with average payment terms of 45 days from invoicing, and notes that nearly half of US businesses are themselves delaying payments to their own suppliers to hold liquidity.

Read that honestly. A meaningful share of your aging report is your customers managing their own cash, and no order process changes that. Notably, most companies in the same survey report writing off no more than 5% of long overdue invoices, so the money mostly does arrive. It arrives late.

The other half of the report is yours. These are the order-time causes, and they share one property: each was created before the goods shipped.

  • The invoice price does not match the price the buyer was quoted. The quote lived in an email thread and the order was keyed from a price list.
  • The PO number is missing or wrong. The buyer's accounts payable system cannot match your invoice to their commitment, so it sits.
  • Nobody at the buyer approved the order. Purchasing will not release payment on something it never authorized.
  • A quantity or unit dispute. The buyer ordered what they thought was cases and got eaches.
  • The credit decision happened after shipment. An account that should have been stopped at submission was stopped at collections instead.

An order taken by phone, fax, or email has no durable record of the price agreed, the person who approved it, or the credit check that was skipped. Every dispute then gets reconstructed from memory ninety days later, by two people who each remember the call differently.

What does each aging bucket actually tell you?#

Treat the following as a working heuristic from distribution operations, not an accounting standard. Your mix will differ. The point is that the buckets carry different information, and averaging them into a single DSO number throws that information away.

  • Current and 1 to 30. This is the buyer's payment run and the terms you set. Mostly healthy. If it is large, that is your terms policy working as designed.
  • 31 to 60. Usually invoice friction that has not been raised yet. A PO mismatch, a price question the buyer has noticed but not called about. The invoice is sitting on somebody's desk with a question mark on it.
  • 61 to 90. Usually a live dispute or an approval the buyer never gave. Someone knows about this one. It is being argued or ignored deliberately.
  • Over 90. Usually a credit decision that should have been made at submission.

Here is the operator read. If your 31 to 90 buckets are heavy and your over 90 bucket is thin, you do not have a customer quality problem. You have an order process problem, and collections is where you are discovering it.

A worked example: one bearing order from quote to aged invoice#

All figures below are illustrative.

A maintenance buyer at a plant needs 200 of a 6205-2RS sealed ball bearing. Your rep quotes 4.05 each in an email thread on a Tuesday in July. The buyer replies "go ahead." The order gets keyed the next morning at the list price of 4.40, because the quote was in an inbox and the order was entered in a different system by a different person.

The goods ship. The invoice goes out at 880.00. The buyer's controller expected 810.00.

Nobody is stealing from anybody. The controller short pays 810.00, and a 70.00 balance sits in the aging report. It moves through 31 to 60, then 61 to 90, while two people trade emails about a price that was agreed in July. Eventually somebody writes it off or somebody concedes, and the cost of resolving it exceeded the 70.00 several times over.

Now the second version, same buyer. That plant has a 2,500 self-approval limit set by its own purchasing department. The 880.00 order was fine. But a second order that week came to 3,100, and it shipped without the purchasing manager's sign-off, because the limit lived in a rep's memory rather than on the order. Purchasing will not release payment on an order nobody approved. Different bucket, same root cause.

The buyer never sees an aging bucket. The buyer sees an invoice that either matches what they agreed to or does not. That is the whole rule.

How do you shrink the buckets before the invoice exists?#

Every fix here happens upstream of billing.

The quote becomes the order. An accepted quote should carry its agreed prices into the order record without anyone re-keying them. If the negotiated price cannot physically drift from the invoiced price, the single most common dispute stops existing.

The approval is on the order. Spend limits belong to the buying company, and the approval chain should complete before checkout, not after the goods move. When the controller asks who authorized this, the answer should be on the order rather than in someone's recollection.

The credit call happens at submission. Exposure that counts approved but uninvoiced orders, with a warn or deny rule at submit, turns an over-limit order into a decision at order time instead of an aged invoice at quarter end. We covered the mechanics of that call in an earlier post on net terms at B2B checkout, so this is the one-sentence version.

The buyer can see the ledger. When a buyer can look at their own open invoices and payments, the first collections call starts from the same numbers on both sides. Most of what gets called collections is actually reconciliation.

The PO number is captured at checkout. On a Shopify store this is a native field on B2B checkout. Use it, and make it required for the accounts that need it.

Worth naming plainly: tightening terms is the instinct when aging grows, and it is usually the wrong first move. Atradius found 70% of US companies increasing the credit they extend rather than cutting it, half of them pairing that with longer settlement timings. If your competitors are extending credit and you are contracting it, you are making a sales decision, not a finance one. Remove the order-time causes first, then look at terms.

Where Copiara fits#

Copiara is a Shopify app for wholesale distributors, and three of its modules sit directly on the problems above. Its quoting desk carries an accepted quote into a Shopify draft order with the agreed prices locked. Buyer approvals put spend limits and a routed approval chain on the order itself, finishing before Shopify checkout. Its credit and AR visibility on top of Shopify B2B holds a credit limit per company, shared or independent across branches, counts approved but uninvoiced orders in live exposure, warns or denies at submission, and gives the buyer invoice and payment visibility read back from Shopify.

To be precise about the division: Shopify keeps payment terms, PO numbers, draft orders, and B2B checkout. Copiara configures and works through those rather than replacing them. Copiara does not collect money and does not finance invoices.

Copiara is coming to the Shopify App Store and is not listed yet. If the shape of this problem is familiar, you can get on the early access list at copiara.com/contact.

FAQ#

Is a heavy 31 to 60 bucket a credit problem? Usually not. Credit problems tend to surface past 90, where the account should have been stopped earlier. The 31 to 60 range is more often invoice friction: a price question or a PO mismatch the buyer has not yet picked up the phone about.

Should a distributor tighten terms when aging grows? Only after removing the order-time causes. Atradius found most US suppliers extending credit rather than cutting it in 2025, so tightening in that environment is a competitive decision with a real revenue cost. Fix the disputes you are manufacturing first.

What should a buyer be able to see on their own account? Open invoices, payments applied, and how much credit they have left. Buyers who can see their balance tend to raise a problem at day 20 instead of going quiet until day 75.

Does an approval on the order really change payment timing? Purchasing departments pay what they approved. An order carrying its own approval record removes one of the most common reasons an invoice gets held, which is a buyer-side control failure that becomes your collections problem.

Before the listing goes live

See Copiara on your own Shopify store.

If cross-referencing, negotiated quotes, or buyer approvals sound like your buyers' problem, get on the early access list.