Skip to content
Guides/Industry-Specific
Guide 34

Wholesale Distribution Chart of Accounts: The Accounts Behind a Freight Bill, a Vendor Rebate, and a Discount That Aren't What They Look Like

A wholesale distributor pays one freight bill to get product into the warehouse and a different one to ship it back out, and a chart with a single 'Shipping' account can't tell which is which — so a slow month for inbound purchases and a slow month for outbound orders look exactly the same on the income statement. A rebate from a supplier and a discount taken by a customer are both real money, moving in opposite directions, and neither is an ordinary sale or an ordinary loss. Here are the accounts that keep freight split by direction, a vendor rebate out of the income line it doesn't belong in, an early-payment discount out of the write-off account it isn't, and a reserve for stock that's still on the shelf but won't sell at full price.

Read 17 min readUpdated Sections 7Format Open access
1 · StructureWhich accounts exist
2 · RecordingHow a transaction resolves
3 · ReportingHow accounts become statements
4 · InsightWhich questions you can answer

A distributor orders $14,000 of product from a manufacturer and pays $950 to get it trucked to the warehouse. In a generic QuickBooks chart, both amounts land in the same place: a single "Shipping" or "Cost of Goods Sold" line, indistinguishable from the $3,100 the same distributor pays this month to ship finished orders out to its own customers. Whether inbound or outbound freight happens to dominate this particular month, the P&L reads the same, because nothing on the chart asks which direction the truck was going.

The same distributor earns a rebate from that manufacturer for buying enough volume this quarter, and separately gives one of its own customers a 2 percent discount for paying an invoice early. Both are real dollars, moving in opposite directions between the same three parties, and neither is an ordinary sale or an ordinary loss. A chart built for a business that just buys and resells at a fixed markup has no way to tell a supplier's rebate from unrelated income, or a customer's contractual discount from money that simply never showed up. This guide covers the accounts that keep freight split by direction, a rebate where it actually reduces cost, a discount where it actually reduces revenue, and a reserve for inventory that is still on the shelf but is not worth what it cost.

Accounts in template
74
Ready to import into QuickBooks Online
Freight accounts split by direction
2
Freight In inside cost of goods sold, Delivery Expenses in operating expenses
Inventory accounts by status
3
Finished goods, in transit, and damaged or returned, each a different condition
Template
wholesale-gaap
Import in about 60 seconds
Section 01

Why a generic chart breaks down for a wholesale distributor

The default QuickBooks chart gives a business one shipping expense and one cost-of-goods-sold account, which works fine for a company that only ever pays freight in one direction. A distributor pays it in two: inbound, to get product from a supplier to the warehouse, and outbound, to get a completed order to a customer. Under GAAP, only the first is part of what the inventory costs — the second is a cost of making the sale, not of acquiring the product. Blended into one account, a month where a distributor is stocking up ahead of a busy season looks identical, on paper, to a month where it's shipping out a backlog, even though the two describe opposite states of the business.

Rebates run through the same distributor from both directions, and a generic chart can't keep them apart. A rebate for buying enough volume from a supplier reduces the real cost of the inventory bought — a discount on a purchase, not unrelated income — and belongs against cost of goods sold. Booked into a general income account instead, cost of goods sold stays at its full, pre-rebate level, so gross margin looks worse than it actually is even though total profit nets out the same further down the income statement. A rebate a distributor owes a customer runs the other way: a real liability the moment the customer crosses the volume threshold that earns it, not an expense that exists only the day the check goes out.

Two more distortions sit closer to the shelf and the invoice. Slow-moving inventory that hasn't sold in a year isn't damaged and hasn't been stolen, so it never triggers a shrinkage entry — it sits on the books at full cost until a count or a forced markdown catches it, usually all at once. And a customer who takes an early-payment discount under terms the distributor itself offered hasn't defaulted on anything; the gap between the invoice and the cash that shows up is not a collection problem, but a chart with no account for it can make it look exactly like one.

Section 02

How freight, a rebate, a discount, and a reserve move through the accounts

Four different flows, each moving through a different pair of accounts, from the same wholesale operation.

1300 / 2010 / 2250Inventory purchased, freight-in capitalizedLanded cost, including inbound freight, sits on the balance sheet until the goods sell
1300 → 5000 / 5100Inventory soldProduct cost and the freight-in riding with it both move into cost of goods sold, in the same period as the sale
4000 (debit)Early-payment discount takenRealized revenue drops below the invoiced amount, not just the cash received
5020 / 1300Obsolescence reserve bookedSlow-moving stock is written down before it becomes an unplanned write-off
Section 03

The accounts that do the work

These are the accounts from the wholesale distribution template that a generic chart does not give a distributor. Account numbers, names and types below are exactly as they import.

RowAccountNumberTypePurpose
01Trade Receivables1210Accounts ReceivableReceivables from wholesale customers
02Inventory - Finished Goods1300Other Current AssetsWholesale inventory ready for sale
03Inventory - In Transit1310Other Current AssetsGoods in transit from suppliers
04Inventory - Damaged/Returns1320Other Current AssetsDamaged goods and customer returns
05Vendor Payables2010Accounts PayableAmounts owed to product suppliers
06Vendor Rebates Payable2230Other Current LiabilitiesVolume rebates owed to customers
07Accrued Freight Charges2250Other Current LiabilitiesFreight and shipping charges payable
08Wholesale Sales - General4000IncomeGeneral wholesale product sales
09Volume Rebates Received4400IncomeRebates earned from supplier volume purchases
10Cost of Goods Sold5000Cost of Goods SoldCost of wholesale inventory sold
11Purchase Discounts5010Cost of Goods SoldDiscounts received on inventory purchases (contra-COGS)
12Inventory Shrinkage5020Cost of Goods SoldLoss from damaged, stolen, or missing inventory
13Freight In5100Cost of Goods SoldInbound freight costs on inventory purchases
14Customer Rebates Issued6230ExpensesVolume rebates and discounts to customers
15Delivery Expenses6400ExpensesOutbound delivery and shipping costs to customers

Inventory - Finished Goods carries a unit's landed cost — the supplier's invoice price plus whatever it took to get that unit to the warehouse — until the unit sells, and Freight In is the cost-of-goods-sold account inbound freight reaches once released, kept apart from Delivery Expenses, which only ever carries the cost of shipping a completed order out the door. Purchase Discounts nets against cost of goods sold rather than sitting in Volume Rebates Received, because a rebate tied to a specific purchase reduces what the inventory actually cost. Vendor Rebates Payable and Customer Rebates Issued track the opposite flow: a rebate a distributor owes a customer, recognized as a liability the moment it's earned and cleared only when paid. Inventory - In Transit and Inventory - Damaged/Returns keep two very different kinds of stock apart from Inventory - Finished Goods — one still moving, one unlikely to sell at full value — so neither drags down the numbers for stock actually ready to ship.

Section 04

How the accounts get booked

Follow one landed-cost purchase, one early-payment discount, and one month-end inventory review through the accounts that hold them apart. Figures are illustrative throughout.

A distributor orders $14,000 of product from a supplier and pays $950 to have it trucked to the warehouse. Under GAAP, that freight is part of what the inventory costs, not a separate expense the day the carrier bill arrives.

Entry 1 · Inventory purchased, freight-in capitalized into landed cost
AccountDebitCredit
1300Inventory - Finished Goods14,950
2010Vendor Payables14,000
2250Accrued Freight Charges950
Totals14,95014,950

The $950 becomes part of what this inventory is worth on the balance sheet rather than posting to Freight In or Delivery Expenses the day the carrier bill shows up. It will not touch cost of goods sold until the units it's attached to actually sell — when they do, the product cost and the freight riding with it release into Cost of Goods Sold and Freight In as two separate lines, so the freight-in portion of this month's margin stays visible instead of disappearing into one blended number.

A wholesale customer's $18,600 order is already sitting in Trade Receivables under 2/10 net 30 terms — pay within 10 days, take a 2 percent discount. On day 8, the customer wires $18,228.

Entry 2 · Customer takes an early-payment discount, booked against revenue
AccountDebitCredit
1000Operating Cash18,228
4000Wholesale Sales - General372
1210Trade Receivables18,600
Totals18,60018,600

The template has no separate contra-revenue account for a term discount like this, so the $372 posts directly against Wholesale Sales - General, the income account it reduces, rather than through a dedicated line a larger distributor's chart would carry to show gross billings and net revenue side by side. What it must not do is land in Bad Debt Expense: nothing here is uncollectible. The customer paid in full, on time, under terms the distributor offered, and expensing the gap as bad debt would tell a lender the company is writing off receivables it isn't.

At month end, a physical count turns up $6,400 of stock that has sat on the shelf for over a year and is unlikely to move at anything close to its original cost — not damaged, not missing, just slow.

Entry 3 · Month-end reserve for slow-moving, obsolete inventory
AccountDebitCredit
5020Inventory Shrinkage6,400
1300Inventory - Finished Goods6,400
Totals6,4006,400

The template carries Allowance for Doubtful Accounts as a contra-asset for receivables that won't collect, but no equivalent contra-asset for inventory that won't sell at full value. This entry uses Inventory Shrinkage — built for physical loss from damage, theft, or a counting error — for the expense side, and writes the value down directly against Inventory - Finished Goods rather than through a separate allowance, so the balance sheet loses the ability to show original cost and the reserve against it as two numbers the way it can for a doubtful receivable.

Section 05

What this looks like on the statements

The same accounts, seen from the reports, across a full month of the distributor's purchasing and sales rather than the three entries above in isolation.

Income statement, excerpt · one month, freight and rebates shown on their own lines
Wholesale Sales - General141,628
Total revenue141,628
Cost of goods sold
Cost of Goods Sold86,400
Freight In5,850
Purchase Discounts(1,200)
Inventory Shrinkage6,400
Total cost of goods sold97,450
Gross margin44,178
Warehouse Rent4,200
Delivery Expenses3,100
Net income36,878

Example figures.

Wholesale Sales - General already reflects Entry 2's $372 discount, so the $141,628 on this line is what the distributor actually realized, not what it invoiced. Freight In carries $5,850 of released landed cost for everything that sold this month — most of it from purchases made in prior months, only a small piece from the batch in Entry 1, which is still sitting in Inventory - Finished Goods, unsold. Purchase Discounts shows $1,200 of vendor rebates tied to this month's purchases, reducing cost of goods sold directly rather than padding a separate income line the way Volume Rebates Received would; had it landed there instead, gross margin here would read $1,200 lower than it actually is, even though net income would come out the same. Inventory Shrinkage carries the $6,400 from Entry 3, a cost that a chart with no reserve account would only show up as a surprise the month a count or a sale finally forced the issue.

Balance sheet, excerpt · month-end, after the purchase, the discount, and the reserve
Current assets
Trade Receivables34,200
Inventory - Finished Goods8,550
Current liabilities
Vendor Payables14,000
Accrued Freight Charges950

Example figures.

Vendor Payables and Accrued Freight Charges carry exactly the $14,000 and $950 Entry 1 posted, still unpaid at month end. Inventory - Finished Goods carries $8,550, the net effect of Entry 1's landed-cost purchase and Entry 3's obsolescence write-down — not the distributor's entire shelf, which doesn't move on these two entries alone. Trade Receivables carries $34,200, the running balance of every wholesale invoice still open across every customer, of which only $18,600 was the invoice Entry 2's early-payment discount cleared.

Without these accounts you cannot answer
  1. 01What does a unit of inventory actually cost to land, separate from what it costs to ship out the door? Blending inbound and outbound freight into one account makes a month of heavy inbound purchasing look identical to a month of heavy outbound shipping, even though the two mean opposite things for the business.
  2. 02Is a supplier rebate really unrelated income? Booked into a general income line instead of against cost of goods sold, a rebate tied to a specific purchase leaves cost of goods sold at its full, pre-rebate level — gross margin looks worse than it actually is, even though the bottom line is the same either way.
  3. 03How much of the inventory on the books is actually worth what it cost? Nothing about slow-moving stock trips a shrinkage entry, so it sits at full value until a count or a forced markdown catches it all at once.
  4. 04Is a short payment a discount or a default? An early-payment discount taken under terms the distributor itself offered looks, on the bank statement, exactly like a customer who paid less than they owed — with no account explaining the difference, it can end up expensed as a bad debt for a customer who did nothing wrong.
Section 06

What the template changes

The diff, in the grammar the product uses everywhere else.

Generic chart → wholesale distribution chart
  • Shippinginbound and outbound freight blended into one account, so the mix of directions this month decides whether cost of goods sold looks high or low
  • 5100Freight Incogs
  • 6400Delivery Expensesstays a selling expense, never inbound freight
  • no account for a rebate tied to a purchasea supplier rebate had nowhere to post but a general income line
  • 5010Purchase Discountscogs
  • 4400Volume Rebates Receivedstays income, but only for a rebate that is not tied to a specific purchase
  • no reserve for slow-moving stockobsolete inventory sat at full value until a count or a sale forced a write-down
  • 5020Inventory Shrinkagecogs
  • no account for an early-payment discounta discounted collection had nowhere to post but an unexplained shortfall or a bad-debt write-off
  • 4000Wholesale Sales - Generalcarries the discount directly, since the chart has no separate contra-revenue line
−4 removed+3 added
Section 07

Get started

The wholesale distribution chart of accounts template includes every account on this page, pre-numbered and ready to import into QuickBooks. It takes about 60 seconds to optimize and gives a distributor a P&L that shows freight cost by direction, a vendor rebate where it actually reduces cost, and a discount where it actually reduces revenue, instead of one shipping line and one income account that blur all four together.

If you already have a chart, the optimizer reads it and shows the diff above against your own accounts, so you can see which of these are missing before you change anything. Capitalize freight-in at the source, keep a supplier's rebate out of the income line it doesn't belong in, and reserve for slow-moving stock before it becomes a surprise, and next month's margin comes from the trial balance instead of a spreadsheet rebuilt after the fact.

Start the free trial →

Questions

Frequently asked questions.

Why can't inbound and outbound freight share one account?

Because they answer different questions. Freight paid to get inventory to the warehouse is part of what that inventory costs, and belongs in cost of goods sold. Freight paid to ship a finished order to a customer is a cost of making the sale, and belongs in operating expenses. Blend them into one 'Shipping' line and a month where inbound purchasing outpaces outbound orders looks identical to a month where the reverse is true, even though gross margin moved for opposite reasons.

Is a volume rebate from a supplier the same thing as income?

Only if it isn't tied to what was actually paid for inventory. A rebate earned for hitting a purchase threshold with a supplier reduces the real cost of the goods bought, and belongs against cost of goods sold, not in a general income account. Book it as income instead and cost of goods sold stays at its pre-rebate level, which makes gross margin look worse than it actually is, even though the bottom line nets out the same.

Is an early-payment discount the same as writing off a bad debt?

No, and treating it that way misrepresents the customer. A bad debt write-off means the money is not coming. An early-payment discount means the customer paid in full, on time, under terms the distributor itself offered — the invoiced amount and the realized amount are just two different numbers by design. The gap belongs against revenue, not in an account meant for money that was never going to show up.

Apply this to a real chart

The principles are easy. Applying them is the work.

This guide is the theory. The free trial helps you review a real QuickBooks Online chart with a score, structural diff, and prioritized cleanup plan.

  • +Score the chart across the health dimensions
  • +Compare structure against a reference pattern
  • +Prioritize cleanup work before changing books
  • +Review recommendations before anything is applied