How to Split Costs Across Multiple Sales Channels

Split costs across sales channels in three passes: assign every cost that belongs to one channel directly to it, allocate shared costs by the driver that causes them (orders for fulfillment labor, revenue for payment processing, units for storage), and leave true overhead unallocated so it cannot distort a channel’s margin. Sellers who skip to a single revenue-share allocation get a P&L where every channel looks the same, which is never true. The steps and a worked example follow.

Why the split matters

A seller on Amazon, Shopify and Walmart has three businesses with different fee structures, different fulfillment paths and different customer behavior sharing one inventory pool and one team. Blended margin hides which one is carrying the others. The moment you decide where to spend the next ad dollar, or whether to keep a channel at all, you need channel-level contribution margin, and that requires the costs to be split by cause.

Pass 1: Direct costs

Direct costs are the easy part, because the marketplaces already assign them. Referral commissions, FBA or WFS fulfillment fees, storage fees, channel-specific advertising, channel-specific refunds and chargebacks all arrive on that channel’s settlement report and belong to that channel, full stop. Post them to channel-tagged accounts (or use classes or tracking categories in QuickBooks or Xero) as they come in.

Cost of goods sold is also direct, at the unit level. The unit that shipped to a Shopify customer carries its landed cost to the Shopify channel; the unit that shipped from FBA carries its landed cost to Amazon. If your books compute COGS per settlement rather than as a monthly estimate, this split happens automatically. If they do not, it is the first thing to fix, because COGS is usually the largest cost on the page and an estimate allocated by revenue share will be wrong by exactly the difference in product mix between channels.

Pass 2: Shared variable costs, allocated by driver

Some costs are caused by activity that spans channels: pick-and-pack labor in your own warehouse, shipping supplies, payment processing on your own site, customer service, returns processing. Each has a driver, and the driver is what you allocate by.

Cost Driver Why
Warehouse labor (own fulfillment) Orders shipped from your warehouse Labor scales with orders, not dollars
Packaging and supplies Units shipped A $10 unit and a $60 unit use the same box
Customer service Tickets by channel, or orders as a proxy Ticket volume, not revenue, drives hours
Returns processing Return units by channel Returns are already channel-tagged
Storage in your own warehouse Average units held per channel, if you segregate; otherwise leave shared Space is consumed by units
Payment processing (own site) Direct to Shopify Marketplaces net it out of settlements already

The temptation is to allocate all of these by revenue because revenue is the number you have. Resist it. Revenue-share allocation charges your highest-priced channel for labor it did not use.

Pass 3: Fixed overhead, kept out of channel margin

Rent, salaries for people who are not touching product, software subscriptions, insurance, accounting fees: these do not change when a channel grows or shrinks. Allocating them to channels produces a number called fully loaded channel profit that feels rigorous and misleads every decision. If Walmart is 10 percent of revenue and you load 10 percent of rent onto it, Walmart looks unprofitable, you shut it down, and the rent does not go anywhere.

Report overhead once, below the channel contribution lines. If a lender or a board insists on a fully loaded view, produce it as a second table and label the allocation method.

The worked example

A seller runs three channels in August. Figures are illustrative.

Amazon Shopify Walmart Total
Net sales $120,000 $60,000 $20,000 $200,000
Orders 4,000 1,500 500 6,000
Orders shipped from own warehouse 0 (FBA) 1,500 500 2,000
COGS (direct, per unit) $48,000 $21,000 $8,400 $77,400
Marketplace fees and fulfillment (direct) $36,000 $2,100 $4,200 $42,300
Channel advertising (direct) $14,400 $9,000 $1,000 $24,400

Shared variable costs for the month: warehouse labor $12,000, packaging $2,400, customer service $3,000.

Warehouse labor is driven by orders shipped from your own warehouse. Amazon shipped zero (FBA handled it), so Amazon gets none. Shopify takes 1,500 of 2,000 orders, or 75 percent: $9,000. Walmart takes 25 percent: $3,000.

Packaging follows the same driver: Shopify $1,800, Walmart $600, Amazon $0.

Customer service is driven by orders across all channels. Amazon 4,000 of 6,000 (66.7 percent): $2,000. Shopify 25 percent: $750. Walmart 8.3 percent: $250.

Channel contribution after direct and allocated variable costs:

Amazon Shopify Walmart
Net sales $120,000 $60,000 $20,000
Less COGS $48,000 $21,000 $8,400
Less fees and fulfillment $36,000 $2,100 $4,200
Less advertising $14,400 $9,000 $1,000
Less allocated labor, packaging, service $2,000 $11,550 $3,850
Contribution $19,600 $16,350 $2,550
Contribution margin 16.3% 27.3% 12.8%

Now compare that to the revenue-share shortcut. Allocating the $17,400 of shared costs by revenue gives Amazon 60 percent ($10,440), Shopify 30 percent ($5,220) and Walmart 10 percent ($1,740). Amazon’s contribution drops to $11,160 (9.3 percent) and Shopify’s rises to $22,680 (37.8 percent). The shortcut charges Amazon $8,440 more than the activity it generated, most of it for warehouse labor and boxes that FBA orders never touched, and makes Shopify look 10 points better than it is. A seller reading the shortcut version would shift ad spend from Amazon to Shopify and be surprised when profit fell.

Keeping it maintainable

Three rules keep the allocation from decaying into guesswork. Write the driver for each shared cost down once and do not change it mid-year without noting why. Pull driver counts (orders, units, tickets) from the systems that produce them rather than estimating. And keep COGS direct at the unit level, because software that reads settlement data can do it; ConnectBooks, for example, posts FIFO cost per unit against each marketplace’s settlement and reports profit by SKU and by channel, which removes the largest allocation from the spreadsheet entirely.

For a sense of what shared costs look like in aggregate, Aswath Damodaran’s January 2026 dataset of US public companies puts SG&A at 26.88 percent of sales for specialty-line retailers and 47.62 percent for apparel. A marketplace seller’s ratio will differ, but if your unallocated overhead is drifting toward those levels, the channel split is not the problem. The IRS guidance on recordkeeping is a useful reminder that whatever method you pick, the entries need documentation behind them; an allocation you cannot explain is one you cannot defend.