Dropshipping Profit Calculator
Work out real dropshipping profit after product cost, shipping, gateway fees, refunds, chargebacks, ad spend, overheads and tax.
What this calculator works out
A dropshipping store is one number with a long queue of subtractions behind it, and most "profit calculators" stop after two of them. This one runs the whole queue over a period of orders — average order value, the revenue that actually survives refunds and chargebacks, product and fulfilment, gateway fees, other per-order fees, chargeback fees, ad spend, fixed overhead, and finally tax on whatever is left.
Here is the full chain on the default inputs the page opens with, which are not one of the four named presets — a $29.95 product with a $3.00 upsell, 1,000 orders, $12.00 CPA:
$31,763.80 revenue − $7,700.00 product and fulfilment − $1,255.55 payment gateway − $200.00 other per-order fees − $120.00 chargeback fees − $12,000.00 ad spend − $800.00 fixed operating cost = $9,688.25 profit before tax. Tax at 10% takes $968.825, leaving $8,719.425 net — a 27.5% margin, or $8.72 per order.
Notice where the money goes. Ad spend is 37.8% of revenue and product plus fulfilment is 24.2%; between them they account for more than three fifths of every dollar that comes in. The gateway takes 4.0%, other per-order fees 0.6%, chargeback fees 0.4%, fixed cost 2.5% and tax 3.1%.
The part sellers get wrong most often is what happens to a refunded order. It does not become a free order — it becomes a pure loss. The customer's money goes back, but the supplier already shipped the goods, the courier already moved them, the packaging is used, the ad click that won the order was paid for the moment it happened, and the gateway keeps its processing fee. So the calculator removes the revenue and leaves every one of those costs in place. With the default inputs the refund rate of 3% plus the chargeback rate of 0.6% is a 3.6% lost order rate, which takes $1,186.20 out of the $32,950.00 you would otherwise have booked: $32,950.00 − $1,186.20 = $31,763.80.
The formulas
Period totals. The lost order rate is written as a decimal here (3.6% is 0.036), and costs before tax is the six lines the chain above subtracts, which are the same six the breakdown bar draws:
Careful with one label here. The KPI marked total costs adds the tax on top of those six lines, which is why it comes to $23,044.375, displayed as $23,044, rather than the figure subtracted above — and $31,763.80 − $23,044.375 = $8,719.425, the net profit again.
Per order. This is the block that makes decisions. Landed is goods plus shipping plus packaging, fees is your other per-order fee, gateway is the processing fee on one order, and chargeback is the chargeback rate multiplied by the chargeback fee:
With the default inputs, every one of those resolves:
- Effective revenue = $32.95 × (1 − 0.036) = $31.7638
- Gateway fee = $32.95 × 2.9% + $0.30 = $1.25555
- Variable cost = $7.70 + $0.20 + $1.25555 + 0.006 × $20.00 = $9.27555
- BECPA = $31.7638 − $9.27555 = $22.48825, displayed as $22.49
- Contribution = $22.48825 − $12.00 = $10.48825, displayed as $10.49
- Orders to break even = $800.00 ÷ $10.48825, rounded up = 77
Note that the chargeback fee enters the per-order variable cost as an expected value — the rate multiplied by the fee, 0.006 × $20.00 = $0.12 — not as a fee on every order. You are not charged $20 a thousand times; you are charged it six times, and the per-order figure spreads those six across the thousand.
BECPA and BEROAS
BECPA — break-even cost per acquisition — is the most you can pay to win one order before that order stops making money. With the default inputs it is $22.49. You pay $12.00, so each order contributes $10.49.
BEROAS — break-even return on ad spend — is the same statement written as the ratio your ad platform reports. Effective revenue divided by BECPA gives 1.41x here, against an actual 2.65x — though the platform counts gross revenue in its own ROAS, so the figure it reports will read a little higher. The two numbers can never disagree, because they are built from the same pair of values: if your CPA is under BECPA, your ROAS is over BEROAS, always.
Both of them deliberately exclude fixed cost, and that exclusion is the whole reason they are useful. The question an ad-spend number has to answer is per-campaign — should I keep this ad set running? — and your $800 of Shopify plan, apps, tools and subscriptions does not change whether you pause it. Loading a share of overhead onto every campaign would make campaigns that genuinely add money look like losers, and it would make the number move whenever your order count moved, which is exactly the wrong behaviour for a decision about a single ad set.
Fixed cost is recovered by volume instead, and that is what orders to break even is for. At $10.48825 of contribution per order, $800.00 of fixed cost needs 77 orders. Order 77 is where the store stops losing money for the period; every order after it adds its contribution straight to profit before tax.
Why a chargeback costs several times a refund
A refund and a chargeback look similar on a bank statement and are nothing alike on a P&L.
A refund costs you the order's revenue plus everything the order consumed: the goods, the shipping, the packaging, the ad click, the gateway's processing fee. Bad, but bounded — the loss cannot exceed what that order was ever worth plus what it cost to serve.
A chargeback costs all of that, and then adds a fee your processor charges for handling the dispute — typically $15–25, and $20 by default here. That fee is flat. It does not scale with your order value, and it lands on top of a loss you have already taken. On a $32.95 order, a $20 fee is worth more than half the order itself, which is why chargebacks hurt low-ticket stores far more than they hurt high-ticket ones.
With the default inputs the arithmetic is small and the lesson is not: 0.6% of 1,000 orders is 6 expected chargebacks, 6 × $20.00 = $120.00 in fees, 0.4% of revenue. Push the rate to a few percent and two other things arrive that no calculator can price for you — the hours spent assembling evidence for disputes you will often lose anyway, and the card-network monitoring programmes that start looking hard at merchants as the dispute ratio climbs toward 1–1.5%, depending on the network, bringing per-dispute fines and, eventually, the loss of the payment account.
If a profit calculator does not ask you for a chargeback rate and a chargeback fee, it is quietly telling you that disputes are free.
The real "3x rule"
The rule everyone repeats is "sell at 3x your product cost." Run it against the default inputs and the store clears the bar easily: $32.95 of average order value against $7.70 of goods, shipping and packaging is 4.28x. Comfortably past 3x — and the store still only nets 27.5%, because the $12.00 you pay to acquire the order is larger than the product, the shipping and the packaging put together.
Now measure the same store against everything an order actually costs — the $9.27555 of variable cost plus the $12.00 CPA — and the ratio is 1.55x. That is the number in the KPI grid labelled price / all-in cost, and it is the one that decides whether you have a business. In our model we treat about 1.3x and up as healthy.
So be careful which ratio a "3x rule" is talking about. Against cost of goods, 3x is a reasonable floor for a product you intend to advertise. Against all-in cost, 3x would mean two of every three dollars a customer pays is profit before fixed cost and tax — a margin around 67%, which does not exist in paid-traffic dropshipping.
How to read the sensitivity table
The 5×5 grid answers a question a single result cannot: how wrong do my two most volatile assumptions have to be before this stops working?
- Rows move the selling price by −20%, −10%, your figure, +10%, +20%. Only the selling price moves — your upsell stays exactly where you set it, so a 10% price rise lifts AOV by slightly less than 10%.
- Columns move CPA by −40%, −20%, your figure, +20%, +40%. Ad costs swing much harder than prices do, which is why the columns are given a wider range than the rows.
- The outlined cell in the centre is your current inputs. Its value is always the same margin the answer band is showing.
- Every cell is the net margin for that combination — after refunds, chargebacks, fees, fixed cost and tax, not a gross figure.
Colour comes from the same banding function as the verdict badge, so a cell can never be tinted "fine" while the badge says otherwise:
| Net margin | Badge |
|---|---|
| 25.0% and above | Strong margin |
| 12.0% to 24.9% | Healthy |
| 4.0% to 11.9% | Thin — watch CPA |
| 0.0% to 3.9% | At break-even |
| Below 0.0% | Losing money |
Margins are rounded to one decimal before they are banded, so a cell that reads 12.0% is genuinely in the healthy band rather than one shade below it. On the loss side the reds deepen again at −4%, −12% and −25%, but every one of them carries the same verdict. A negative net profit always reads Losing money, including the rare case where the margin itself rounds to 0.0%.
The way to use the grid is to compare a step you could take against a step the market could take. One row up is a price test you can run this afternoon. One column right is what happens to you in Q4 when auction prices rise. If the cell one row up is barely better than the cell you are in, pricing is not your lever — sourcing or CPA is.
Common mistakes
- Budgeting off gross revenue. 1,000 orders at $32.95 looks like $32,950.00, but 3.6% of it never stays: $32,950.00 − $1,186.20 = $31,763.80. Every downstream percentage — margin, cost shares, the ROAS you compare against BEROAS — is wrong if you start from the gross figure.
- Assuming the gateway hands its fee back on a refund. It does not. Stripe stopped returning the processing fee on refunds in 2019, and PayPal changed its refund fee policy the same year. That is why this model charges the gateway fee on all 1,000 orders — $1,255.55 — and not only on the ones that stuck.
- Treating BEROAS as though it covered the overhead. Beating 1.41x makes the ads profitable. It says nothing about the $800.00 of fixed cost sitting underneath them, which is a separate hurdle measured in orders, not in multiples — 77 of them on this preset.
- Counting ad spend twice. Switch the ad input to total spend and the calculator derives your CPA from it. If you also fold that spend into fixed operating cost, you have subtracted it twice, and the whole error lands directly in net profit.
- Reading the per-order figures as guarantees. Contribution of $10.49 per order is an average over the period, with refunds and chargebacks already averaged into it. Any individual order either goes fine or goes badly; the $10.49 only shows up across a thousand of them.
Related calculators
To work backwards from a target margin to the price that produces it, the margin and markup calculator converts between the two bases and will tell you why a 50% markup is not a 50% margin. To judge a whole store, a product launch or an inventory buy as an investment rather than as a period P&L, use the ROI calculator. And when you want to size a move rather than a level — CPA up 18%, AOV down 6% — the percentage change calculator is the quicker tool.
Frequently asked questions
- What is a good profit margin for dropshipping?
- There is no universal number, but this calculator bands what it finds — 25% net and above reads as a strong margin, 12% to 25% as healthy, 4% to 12% as thin, 0% to 4% as sitting on break-even, and any negative margin as losing money. Those are net margins after ads, fees, refunds, chargebacks, overheads and tax, not the gross margins most stores quote. The default inputs land at 27.5%, which is a good outcome rather than a typical one.
- How is BECPA different from the CPA I actually pay?
- BECPA is the ceiling; your CPA is where you currently sit. BECPA is the most one order can afford to pay to acquire a customer before that order stops making money — effective revenue minus every variable cost. With the default inputs BECPA is $22.49 while you pay $12.00, and the $10.49 gap is the contribution each order makes toward fixed cost and profit. Once your CPA reaches BECPA, contribution is zero and extra volume changes nothing.
- Do refunded orders still cost me money?
- Yes, and this is what most spreadsheets miss. A refund removes the revenue but leaves every cost behind — the goods are gone, shipping and packaging are spent, the ad click that won the order was already paid for, and the gateway keeps its processing fee. With the default inputs a 3% refund rate plus a 0.6% chargeback rate removes $1,186.20 of revenue while the costs of those same orders stay in the P&L.
- What does BEROAS mean?
- BEROAS is break-even return on ad spend — the revenue multiple your ads have to return before the ads pay for themselves. It is BECPA restated as a ratio, effective revenue divided by BECPA, so with the default inputs $31.7638 ÷ $22.49 gives 1.41x while the store actually runs 2.65x. Below BEROAS the ads lose money on every order. Above it they earn, but they still have not covered a cent of fixed cost.
- How is the chargeback fee applied?
- Orders times the chargeback rate times the fee per chargeback. With the default inputs 0.6% of 1,000 orders is 6 expected chargebacks at $20 each, so $120 leaves as fees on top of the revenue those orders take with them. It is an expected value, so at small order counts the count can come out fractional — correct for a forecast, even though a real month only ever produces whole chargebacks.
- Do I pay tax if the period makes a loss?
- No. Tax is applied to profit before tax only when that figure is positive, so a loss-making period shows $0.00 of tax and net profit equals the loss. The calculator models one period at a time and does not carry a loss forward, so a full trading year with loss relief will not match a single-period model exactly.
- What happens if I enter zero orders?
- Revenue, ad spend and every per-order cost fall to zero, but fixed operating cost does not — so net profit is exactly minus your overhead, -$800 with the default inputs, and the badge reads Losing money. Net profit per order and fixed cost per order show a dash, because there is no order to divide by. BECPA, contribution, price / all-in cost and the break-even order count all still render — each describes the economics of a single order, which does not stop existing just because you have modelled none. Margin shows 0.0% because there is no revenue to divide into.
- Should I enter CPA or total ad spend?
- Either, since they are two views of the same money, and the form keeps only one of them on screen. Use CPA when you are pricing a campaign you have not run yet, and total ad spend when you are reconciling a period that already happened, in which case the implied CPA is your total divided by the order count. What you must never do is enter the same money twice by also folding ad spend into fixed operating cost.