Free Tool · Profit Margin Analyzer

Markup Isn't Margin: A Free Profit Margin Calculator

Free browser profit margin calculator. Markup vs margin, gateway and marketplace fees, landed cost on imports, VAT / GST / sales tax, break-even, wholesale tiers, competitor comparison and scenario simulation. SA, UK, US and AU presets. No signup, no upload.

Published
Author
A de Villiers
Read
approximately 8 min
Contents
  1. Where the R150 Actually Goes
  2. The Minimum Price That Survives Your Own Fees
  3. Importing? Then There Are Three More Lines
  4. Break-Even, In Two Numbers
  5. Wholesale Tiers, With a Floor
  6. The Competitor Match That Costs You Money
  7. Scenarios: The Five Numbers That Move Your Margin
  8. What Drives the Tool
  9. How the Maths Stays Honest
  10. Where the Data Lives
  11. When This Tool Is the Right Tool
  12. When the Maths Outgrows the Browser
  13. Use It

Sell a product for R150. It cost you R100. That is a 50% markup.

The margin is 33.3%.

If you have ever quoted one number and meant the other, the rest of this post is for you. And so is the Free Profit Margin Calculator.

Where the R150 Actually Goes

A small worked example. The same one most pricing spreadsheets quietly get wrong.

You sell an item online for R150 (VAT inclusive). Your supplier charges R80 ex-VAT. The packaging costs R5. Freight to you is R3 per unit. So far, so simple. Cost is R88 and you tell yourself you are pricing at "about 70% markup".

Now subtract what selling actually costs:

  • VAT on the sale: ~R19.57 (15% of R150 inclusive)
  • Payment gateway: 2.9% of R150 = R4.35
  • Marketplace commission: 10% of R150 = R15
  • Return allowance: 5% of R150 = R7.50

R150 inc VAT becomes R130.43 ex VAT. Minus R88 cost, minus R26.85 in variable fees, you keep R15.58 per unit.

That is a 10.4% margin on the net sale, not 70% of anything. And it is before you allocate a single rand of monthly overhead.

This is the kind of arithmetic the free analyzer does in the background on every keystroke. It is also why the first piece of friction it introduces is a side-by-side margin / markup display. You can quote both. You cannot mistake one for the other.

The Minimum Price That Survives Your Own Fees

If you sell through a gateway, a marketplace, or you carry a return allowance, your true floor price is higher than your "cost plus target margin" makes it look.

Worked: cost R88, target margin 25%, variable fees adding to 17.9% of selling price.

A naive minimum is R88 / (1 − 0.25) = R117.33. Wrong floor.

The fee-aware floor is R88 / (1 − 0.25 − 0.179) = R154.12. Almost R37 higher.

The analyzer surfaces this as Min selling (ex tax) and Min selling (inc tax) on the Pricing tab. Discount below that and you are paying customers to take your product. The maximum-safe-discount calculator on the same tab tells you the largest discount you can still survive at your target margin, given your fee load.

Importing? Then There Are Three More Lines

A small importer brings in 100 units from a supplier in China. Unit cost USD 12. Exchange rate 18.50. Freight is rolled into the supplier invoice. Customs duty is 20%. Import VAT is 15% (claimable, because the business is VAT registered) on the duty-inclusive value plus a 10% ATV uplift.

The landed-cost tab walks the chain:

  • Supplier in local currency: 100 × USD 12 × 18.50 = R22,200
  • Customs duty: 20% of (R22,200 + 10% ATV) = 20% × R24,420 = R4,884
  • Import VAT: 15% of (R22,200 + 10% ATV + duty) = 15% × R29,304 = R4,395.60 (claimable, so not a cost)
  • Landed total (cost basis): R22,200 + R4,884 = R27,084
  • Per unit landed cost: R270.84

If the business were not VAT registered, the R4,395.60 import VAT would flip into the cost column and the per-unit landed cost would jump to R317.80. That is a 17% swing in product cost driven by one checkbox. The calculator handles it; spreadsheets routinely do not.

Break-Even, In Two Numbers

Two inputs: monthly fixed-cost share this product must cover, and expected monthly units. The output is a chart with a red loss zone, a green profit zone, a dashed marker at the break-even unit count, and a blue marker at your expected volume. Plus four numeric tiles: contribution margin per unit, break-even units, break-even revenue, months to break even at expected volume.

If your break-even marker sits to the right of your expected-volume marker, the chart shows that immediately. You do not have to do the subtraction.

Wholesale Tiers, With a Floor

If you run tiered pricing (retail / small wholesale / distributor / bulk), the analyzer recalculates margin per tier and flags any tier that falls below the minimum margin you set. The "I'll just give the distributor 35% off" tier that quietly turns negative on a 22%-margin product? It lights up red before it ships in a price list.

The Competitor Match That Costs You Money

Competitor pricing is one of the most common places small businesses match without doing the maths. Add competitor inc-tax prices in the Competitors tab and you get three columns automatically: your gap in currency, your gap in percent, and your margin if you matched. When matching them would push you negative, the cell turns red and a warning fires on the Warnings tab.

It is not a recommendation to discount or hold price. It is the maths that tells you which of those two options you can afford.

Scenarios: The Five Numbers That Move Your Margin

Pricing is rarely static. Suppliers raise prices. Customers demand discounts. Gateways adjust fees. Exchange rates swing. The scenario simulator runs ten kinds of shift against your current pricing: cost increase %, price decrease %, fee bump, FX swing, target-margin change, freight increase, return-rate increase, marketplace commission change, customs duty change, import-tax change.

For cost-side scenarios there is a freeze toggle: hold the selling price and watch margin compress, or hold the margin and watch the required selling price climb. Both views are useful. The first answers "if I absorb this, what happens?" The second answers "if I refuse to absorb it, what is the new sticker?"

A worked one: supplier raises 12%, you freeze the selling price. The comparison table shows baseline vs scenario for cost, margin %, gross profit per unit, and break-even units, with the deltas. The chart underneath puts the bars next to each other so you can see how much room you actually have.

What Drives the Tool

Six business presets: importer, ecommerce, manufactured, wholesale, service, agency. Each loads sensible default cost lines for that shape of business, so you are editing a starting position rather than building from a blank canvas.

Four tax regions plus a custom one. Switch from South Africa VAT to UK VAT and the rate snaps to 20%, the currency snaps to GBP, the labels change from "VAT" to "VAT" (no change there) and the registration checkbox wording stays the same. Switch to United States and you get "Sales tax rate %" / "Have sales tax permit" / USD. Switch to Australia and you get "GST" / AUD. The maths is identical underneath. Only the labels and defaults move.

A printable A4 report consolidates everything: pricing summary, cost breakdown, landed cost, competitors, wholesale tiers, break-even chart, marketing & CAC (for ecommerce), service rate (for service / agency), warnings, your notes, the disclaimer. Print it. Save it as PDF. Email it to the bookkeeper. It is the analyst's working paper, not a sales sheet.

How the Maths Stays Honest

No AI. The analyzer is a pure formula engine. Every number on screen comes from a function in lib/formulas.js, the same way a spreadsheet would, only with a tested module behind it instead of a cell reference graph. Fifteen rule-based warnings fire when something is off: margin below target, discount below break-even, competitor match at a loss, tier below minimum margin, import tax mishandled given registration status, FX baseline missing, and so on.

You can audit the numbers. You can argue with the numbers. You can change an input and watch every downstream number move. That is the whole point of a calculator that is not a black box.

Where the Data Lives

In your browser. IndexedDB and localStorage. Nothing about your pricing is uploaded. Not your supplier costs, not your margins, not your competitor benchmarks.

The tradeoff is the same one every browser-local tool carries: if you clear browser data, switch devices, or work in private browsing, saved projects can disappear. The Backup tab fixes that. Export your projects as JSON, file them somewhere you control, import them back when you need them. Per-project export, or full backup of everything.

Local storage is not a privacy slogan; it is a design choice with a maintenance cost. The maintenance cost is one JSON export now and again. Worth it for the privacy posture.

When This Tool Is the Right Tool

When you are pricing a single product, a small range of products, or a service quote, on one device, and you want the maths right. When you are setting up a new product line and need a defensible costing before you commit to a supplier. When you are reviewing a tier sheet a wholesaler sent you and want to know whether the third tier loses money. When you are trying to decide whether to absorb a supplier hike or pass it on. When you want to print a clean A4 pricing report for your bookkeeper or your accountant.

For all of that, this is the right tool.

When the Maths Outgrows the Browser

When your pricing has to be approved by more than one person. When you need an audit trail of which prices changed, when, and why. When pricing feeds directly into billing, inventory or accounting and the rate of change makes manual re-entry untenable. When you have a dozen pricing rules that depend on customer, region, channel and contract. When you need someone else on a different device to see the same numbers without sending a JSON file.

That is the point at which a browser-only calculator is no longer the answer, and a custom pricing-to-billing platform is. Either off-the-shelf, or built around the operations you already run.

Use It

The analyzer is here:

Free Profit Margin Calculator

It is free. It is not a trial. It will stay free.

If you find a margin error it would have caught for you, that is the proof. Share it with the next operator you know who is quoting markup and meaning margin.

If your pricing has outgrown a browser, get in touch.

A de Villiers, building software in Cape Town since 2011.

Frequently asked questions

What is the difference between markup and margin?

Markup is profit as a percentage of cost. Margin is profit as a percentage of selling price. A 50% markup on a R100 cost gives a R150 selling price, but the margin on that price is only 33.3%. The analyzer shows both side-by-side so you stop quoting one and meaning the other.

Which tax systems does it support?

South Africa VAT, United Kingdom VAT, United States sales tax, Australia GST, plus a custom option. Switching the region updates the rate, the currency, and the labels (VAT / Sales tax / GST). The underlying maths is region-agnostic.

Does it handle landed cost on imports?

Yes. Foreign supplier currency, unit cost in that currency, exchange rate, customs duty %, import tax rate, and any taxable import uplift. It converts to local currency, applies duty, and treats import tax as a cost or as claimable depending on whether you are registered.

Does it fold in gateway and marketplace fees?

Yes. Add a % cost line for each variable fee: gateway, marketplace commission, return allowance. The minimum-selling-price formula folds those into the floor. A 2.9% gateway + 10% marketplace + 5% return allowance is 17.9% of selling price gone before margin starts.

Does it calculate break-even?

Yes. Enter the monthly fixed-cost share this product or service must carry, and your expected monthly volume. It returns break-even units, break-even revenue, contribution margin per unit, and months to break even at expected volume.

Can it compare against competitor prices?

Yes. Add competitor tax-inclusive prices and the table shows your gap in currency, your gap in percent, and what your margin would be if you matched, with a red flag when matching would put you at a loss.

Does it run any AI?

No. The analyzer is a pure formula engine with rule-based warnings. No AI, no API calls, no external lookups. Every number on screen can be traced back to inputs and a formula.

Where is my data stored?

In your browser, using IndexedDB and localStorage. Nothing is uploaded. Use the Backup tab to export a JSON file you control. Same file imports back on another device.

Does it give tax or financial advice?

No. It produces operational pricing maths from the values you enter. Confirm tax, customs and accounting treatment with a qualified professional.

Have a project in mind?

I review every enquiry personally. Tell me what you want to build and I'll tell you on the call if it's a fit.

Get in touch