ROI vs Margin vs Markup
Three ways to express profit and when each one is the right lens.

- ROI = profit ÷ money invested; margin = profit ÷ sale price; markup = (sale price − cost of goods) ÷ cost of goods. One flip, three different bases.
- Example: 100 zł of cost of goods sold for 200 zł with no selling costs is 100% ROI, 100% markup and 50% margin. Add 20 zł of fees and packaging and ROI drops to 80%, margin to 40%, while markup stays at 100%.
- Buy on ROI plus a profit floor in money, price and mark down on margin, and treat markup as a before-fees shortcut. To choose a channel for one item, rank by profit in money: margins can differ just because the prices do.
- Margin = markup ÷ (1 + markup); markup = margin ÷ (1 − margin). Margin can never exceed 100%; ROI and markup can go far above it.
- Before comparing two ROI figures, check what each divides by: this blog's ROI calculator counts cleaning and inbound delivery as invested, while the resale profit and maximum buy price calculators take cleaning off profit instead.
ROI vs margin comes down to what you divide profit by. ROI divides it by the money you put into the item; margin divides it by the sale price. So, for example, a jacket that cost you 100 zł and sold for 200 zł with no other costs is a 100% ROI and a 50% margin, and its markup is 100% too.
Below: formulas, a worked flip, when to use each, and a conversion table.
ROI vs margin vs markup: the formulas
Cost of goods is what the item cost you to buy and make sellable; COGS for resellers sets out what belongs in it.
ROI asks what each złoty of stock money brought back; margin, what share of the price you kept; markup, how far above cost you priced.
Before comparing two percentages, check:
- Which one it is: ROI, margin or markup.
- Whether it is before or after fees, postage and packaging.
- What counts as invested. The reselling ROI calculator adds cleaning and inbound delivery; the resale profit calculator divides by purchase cost alone, so with cleaning costs its ROI reads higher.
- For ROI, how long the money was tied up.
One worked flip: 100% ROI, 50% margin
ROI for buying decisions
When buying, the price you pay is what you control, and ROI is built on it. Turn an ROI floor into a walk-away price:
Example: the 200 zł sale with 20 zł of selling costs and an 80% floor gives 180 ÷ 1.8 = 100 zł; minus 10 zł cleaning, pay at most 90 zł.
Pair it with a profit floor in money. Example: a 5 zł item leaving 15 zł profit is a 300% ROI, and still only 15 zł. The maximum buy price calculator applies both floors, but takes cleaning off the payout instead of counting it as invested, so its ROI floor gives 170 ÷ 1.8 = 94.44 zł here. Pick one base and keep it.
Margin for pricing and fees
Percentage fees and price cuts come off the sale price, margin's own base, so check margin before a markdown.
Example: 100 zł cost of goods, 5 zł packaging, buyer pays postage, a 10% example fee and a 30% margin target you set yourself. The floor is 105 ÷ 0.6 = 175 zł (fee 17.50 zł, profit 52.50 zł, margin 30%). Refuse offers below it.
Choosing a channel for one item is where margin misleads. Example: with the same costs, 200 zł with a 10% example fee leaves 75 zł profit, a 37.5% margin; 180 zł with no fee also leaves 75 zł, at 41.7%. ROI is 75% both times. Rank channels by profit and time to sell.
The resale profit guide sets a margin target from your monthly costs and hours, with dated fees per marketplace.
Markup and why it misleads
Markup compares price with cost only, so fees, postage and packaging never appear in it, and it never looks worse than ROI on cost of goods: the jacket stayed at 100% markup while ROI fell to 80%.
The calculator ignores fees: its price for a target margin is cost ÷ (1 − target margin), so the opening 25 cost and 40% target give 41.67. If the marketplace takes a percentage, use the lowest-price formula above.
Quick conversion table
The rows are arithmetic, not targets. Fees or postage you pay pull real margin below the right-hand column.
| Markup (or ROI with no selling costs) | Margin before selling costs |
|---|---|
| 25% | 20.0% |
| 50% | 33.3% |
| 100% | 50.0% |
| 150% | 60.0% |
| 200% | 66.7% |
| 300% | 75.0% |
Frequently asked questions
Can margin be higher than 100%?
Should I target ROI or margin?
How do I convert markup to margin?
See price estimates on live finds
This calculator needs your inputs. Scout estimates fair value, a fast-sell price and demand for the finds it shows you. Estimates, not guarantees.
reva estimates prices from public listings. Estimates, not guarantees.

