Every Channel Has a Different Economics. Most Brands Use One Number for All of Them.

The fee stack nobody modeled. The margin variance finance found.

Most brands expanding across multiple channels make the same assumption at the same moment.

The product is working. The demand is real. The revenue is showing up across Shopify, Amazon, Walmart, TikTok Shop, and wholesale simultaneously. The business looks like it is scaling.

Then finance closes the month.

And the margin is not what anyone planned for.

Not because the demand was wrong. Not because the forecast failed. Because nobody modeled what it actually costs to sell the same product through five channels with five completely different fee structures before the inventory was committed.

‍ ‍

The Blanket Percentage Problem

Every channel carries a different cost to fulfill, a different fee structure to operate, and a different return on the same unit of inventory.

Shopify has one fulfillment cost structure. Amazon FBA has another. Storage fees, fulfillment fees, return processing, advertising spend, and long-term storage penalties all layer on top of the cost of goods. Amazon FBM has a third structure entirely. Walmart fulfillment has a fourth. TikTok Shop introduces platform fees, creator commissions, fulfillment costs, and return logistics that most brands were never modeling before. Wholesale absorbs co-op allowances, compliance deductions, routing requirements, and chargeback exposure before a dollar of contribution clears.

Most brands know these differences exist in general terms. What most brands do not do is model them at the SKU level before the inventory is committed.

Instead they apply a blanket margin percentage to each channel. A rough estimate. A number that felt defensible when someone put it in the model.

That number does not survive contact with the actual fee stack.

The blanket percentage is not margin governance. It is margin estimation. And the difference between an estimate and a model is the difference between revenue growth and profitable revenue growth.

What the Fee Stack Actually Looks Like

Take a single SKU selling at $60 retail across three channels simultaneously.

On Shopify DTC the contribution after COGS, fulfillment, and payment processing might be $18 to $22 depending on the brand's 3PL arrangement and return rate.

On Amazon FBA the same SKU at the same price might net $8 to $12 after FBA fees, storage, advertising spend, and return processing. If the SKU sits in FBA beyond 365 days the long-term storage fee compounds the exposure further.

On TikTok Shop the same SKU running a creator-driven campaign might net $6 to $10 after platform fees, creator commission, and fulfillment costs. Even at the same retail price with the same COGS.

Three channels. Same SKU. Same retail price. Contribution ranging from $6 to $22 depending on where the unit sold and how it was fulfilled.

A blanket margin percentage applied across all three produces a blended number that accurately describes none of them.

The SKU that looks profitable on Shopify may be margin-negative on Amazon once the full fee stack is applied. The SKU that performs in wholesale may destroy contribution on TikTok Shop. The SKU that justifies its place in the assortment in one channel has no business being in another.

Without channel-specific SKU-level contribution modeling, every assortment decision is made against an average that does not reflect how any individual channel actually performs.

The Channel Role Problem

The fee stack is the mechanism. The channel role failure is what allows it to compound.

Every channel a brand operates should have a defined role. Not a revenue target. A role.

What is this channel supposed to do for the business? Is it the margin engine, the channel where the brand captures the highest contribution per unit? Is it the volume engine, the channel that drives velocity and inventory turnover even at a lower margin? Is it the brand engine, the channel that protects pricing integrity and customer relationship? Is it the clearance engine, the channel that moves aged inventory and releases trapped capital?

Each of these roles requires a different assortment, a different margin threshold, a different inventory depth, and a different definition of success.

Without defined channel roles, brands make the same mistake in every channel. They push the full catalog everywhere. They apply the same margin assumption everywhere. They measure success by revenue everywhere.

And when finance closes the month, the blended margin across all channels looks nothing like what any individual channel was supposed to produce.

Adding channels without defining their roles does not build revenue stability. It builds cost complexity that compounds quietly until the margin variance makes it impossible to ignore.

Where This Gets Decided

The margin variance finance finds at month end was not created at month end.

It was created when the inventory was committed without a channel-specific cost model behind it.

The SKU that is destroying contribution on TikTok Shop was committed to that channel before anyone modeled what TikTok Shop would cost at the unit level. The wholesale order that absorbed the co-op allowance nobody budgeted was fulfilled because the commitment was made before the compliance deduction was factored in. The FBA position accumulating long-term storage fees was built before anyone defined how long that SKU was allowed to sit before triggering a removal or markdown decision.

Every one of those margin problems was locked in at the commitment point. Not at fulfillment. Not at month-end close. At the moment capital was deployed into inventory without a model that reflected how each channel would actually perform.

This is not a forecasting problem. Forecasting tells you how much demand to expect. Channel-specific margin modeling tells you how much of that demand is worth capturing in each channel at the inventory commitment level.

Both are required. Most brands only do one.

What Changes When Every Channel Has a Model

When channel-specific SKU-level contribution modeling governs the buy, three things change immediately.

First — assortment decisions become strategic rather than additive. The question stops being "should we put this SKU in TikTok Shop" and becomes "does this SKU generate enough contribution in TikTok Shop to justify the inventory commitment." Some SKUs pass. Some do not. The ones that do not get protected in the channels where they actually perform.

Second — inventory depth by channel reflects return rather than coverage. Instead of committing equal depth across all channels the business commits deeper where the margin justifies it and shallower where it does not. Capital concentrates where it generates the most return.

Third — the margin variance disappears from the month-end close. Not because the fee stacks changed. Because the commitment was made with the fee stacks already in the model. Finance closes the month and the number looks like what the plan said it would look like.

That is not a forecasting improvement. That is a capital allocation improvement made at the point where capital is committed.

The Diagnostic Question

If your business is operating across more than two channels and you cannot answer the following question at the SKU level, the fee stack problem exists in your business right now.

What is the contribution per unit on your top ten SKUs in each channel you operate, after every channel-specific cost is applied?

Not the blended average. Not the gross margin. The net contribution by SKU by channel after fulfillment, fees, returns, ad spend, co-op, and compliance are all in the model.

If that number does not exist, the business is making inventory commitment decisions against an estimate.

And the estimate is where the margin goes to hide.

⚜️

Start the Structural Performance Audit

Next
Next

We Launched Too Much. The Markdown Paid for It.