DTC vs wholesale margin comparison
Compare unit economics for selling direct-to-consumer versus through wholesale buyers — and find the maximum DTC acquisition cost that still beats wholesale profit.
Enter your unit cost, DTC and wholesale prices, variable costs for each channel, and your monthly volume. The tool shows contribution margin and net profit per unit for both channels, the monthly profit difference, and the acquisition cost ceiling above which DTC becomes less profitable than wholesale.
DTC vs wholesale margin comparison inputs and results
How this calculator works
DTC contribution margin is the retail price (net of returns) minus COGS, shipping, and payment processing — the per-unit amount generated before customer acquisition cost. Wholesale contribution margin is simpler: wholesale price minus COGS.
Net profit per unit brings acquisition cost into the picture. For DTC, customer acquisition cost is divided by average orders per customer — if a customer buys 1.5 times on average and CAC is $30, the effective acquisition spend per unit is $20. For wholesale, any buyer acquisition cost is divided by the minimum order quantity.
The break-even DTC CAC is the acquisition cost at which both channels deliver identical net profit per unit. The formula is (DTC contribution − wholesale net profit) × average orders per customer. This is the most actionable output: it tells you exactly what you can afford to spend on DTC acquisition before wholesale becomes the more profitable channel.
About this tool
Direct-to-consumer typically has higher per-unit margin but requires spending to acquire each customer; wholesale has a lower unit margin but near-zero acquisition cost per sale. Inputs: unit COGS, DTC retail price, shipping, processing %, return rate, and customer acquisition cost; wholesale price, minimum order quantity, and buyer acquisition cost. Outputs: contribution margin and net profit per unit for each channel, monthly profit at your volume, and the break-even DTC CAC — the maximum you can spend per customer and still match wholesale unit economics.
Frequently asked questions
What is the break-even DTC customer acquisition cost?
It's the CAC at which DTC and wholesale produce identical net profit per unit. Above this number wholesale is more profitable; below it DTC wins. The formula is: (DTC contribution margin − wholesale net profit) × average orders per customer. If the result is zero or negative, DTC contribution margin is already at or below wholesale net profit before accounting for any acquisition cost — wholesale wins regardless.
What is contribution margin vs net profit per unit?
Contribution margin is what remains after all direct variable costs — COGS, shipping, processing, and returns — before customer acquisition cost. It's the per-unit amount available to recover acquisition spend and cover fixed overhead. Net profit per unit also deducts the customer acquisition cost amortised across the customer's average number of orders.
How does return rate affect DTC margin?
Return rate reduces effective revenue per unit. At a 5% return rate, 5% of units are refunded — effective DTC revenue per unit is price × (1 − 5%). The COGS and outbound shipping are still spent on all units including returned ones, so returns hurt DTC economics more than the headline percentage suggests.
When does DTC make sense despite higher acquisition cost?
DTC is typically more attractive when repeat purchase rates are high (CAC amortises over many orders), when your brand commands a retail price well above what wholesale buyers would accept, or when wholesale margin requirements make unit economics unworkable. This tool's break-even CAC tells you exactly what you can afford to spend on DTC acquisition before wholesale becomes more attractive.
What should I enter for buyer acquisition cost on the wholesale side?
Enter any sales-specific cost to land that wholesale buyer — sales rep commission or salary allocation, trade show cost per buyer acquired, samples sent. Divide the total cost by the number of buyers it generates. If buyers contact you inbound, enter zero.