Skip to main content

Calculation methodology

Everything behind the numbers: the definitions we use, how tax is treated across the eight markets, which costs enter each calculation, how rounding works and where the limits of these estimates lie.

Last updated:

What we mean by profit

On this site, “profit” always means what is left of a sale after every cost that grows with each order. Not before tax, not before fees, and not before advertising if advertising brought that order.

What it does not include is that order's share of fixed costs, because fixed costs are not allocated per order: they are covered by the sum of the month's margins. So the profit a calculator shows you is the ceiling, not the business's bottom line.

Gross revenue and net revenue

Gross revenue is everything the customer pays: items, shipping and extras such as gift wrapping or personalization. Net revenue is that amount minus the indirect tax contained in it.

Every margin and percentage on this site is calculated on net revenue, because the tax was never yours. The exceptions are flagged: maximum ACoS and break-even ROAS default to gross revenue, because that is the figure ad platforms record, and the ROAS calculator lets you change that base.

How tax is handled in each market

Each calculator asks whether the amount you enter includes tax. If it does, it is extracted with the contained-tax formula:

Tax = gross - gross / (1 + rate)

That is not the same as subtracting the percentage from the final price. At 21%, the tax contained in 60 is 10.41, not 12.60. It is a common error and it always pushes the same way.

The arithmetic is identical for VAT, GST/HST or sales tax: what changes by market is the name, the starting rate, the options and whether the price includes tax by default. All of that is loaded by the market selector, and every rate is editable, including a custom one.

Two markets deserve special mention:

  • United States. There is no national sales tax rate: it depends on the state, the locality, the product and your tax situation, and on marketplace sales the platform normally collects it. So the market starts with “price does not include tax” and a 0% editable rate. We invent no percentage.
  • Canada. Federal GST combines in several provinces with a provincial tax (HST or PST). There is a province and territory selector that loads the combined rate into the field, and you can always type a custom one. The applicable rate can depend on the place of supply, the product type and the buyer's situation.

Costs should be entered tax-exclusive if you can reclaim the tax, which is the normal case for a business. Mixing net revenue with gross costs inflates the costs.

Language, market and currency are three separate things

A deliberate design decision, and worth understanding:

  • Language is set by the URL (/es/ or /en/) and only affects wording and the linguistic format of numbers.
  • Market is chosen in the header and sets the currency, the tax, the Etsy fees, the Amazon plans, the example values and the official sources cited.
  • Currency comes from the market. It is not chosen separately, because calculating Amazon.es fees in Australian dollars would be meaningless.

Which is why you can use the English interface with the German market, or the Spanish interface with the United States market. Your market preference survives a language change.

Changing market changes the currency unit, it does not convert the amounts. This tool applies no exchange rate and queries no currency source: when you change market the fields reset, so you never end up with one currency's amounts labeled as another's.

The contribution margin

Contribution margin = net revenue - variable costs

It is the central figure of the whole site: what each order contributes towards fixed costs and profit. And it is, exactly, the most you can pay to win a sale.

Which costs are included and which are not

Included

  • Indirect tax, configurable per market
  • Product or material cost
  • Shipping, packaging and fulfillment
  • Gateway fees, percentage and flat
  • Marketplace fees in all their variants
  • Advertising attributed to the order
  • Returns provision
  • Storage and surcharges, where they apply
  • Selling plan subscription spread per unit

Not included

  • Fixed costs: rent, salaries, software, accountants
  • Taxes on profit
  • Depreciation and financing costs
  • Opportunity cost of tied-up stock
  • Obsolescence and shrinkage
  • Cash-flow timing and payment terms
  • Currency conversion

The reason for this boundary is that the costs in the first column can meaningfully be attributed to a specific order, and those in the second cannot.

The bases of platform fees

A 6.5% fee means nothing until you say what amount it applies to. On this site each fee has its own base, and all of them live in a single configuration file rather than scattered through the code.

For Etsy, the default bases are:

  • Transaction fee: item price plus shipping, gift wrap and personalization. It does not include marketplace-collected tax, which is the explicit rule for the United States and the one we apply in every market.
  • Etsy Payments: item price plus shipping, gift wrap or personalization, and any applicable sales tax collected by the marketplace: that is what Etsy's documentation states, and it is this tool's default base. An editable alternative base is available if your invoice uses a different amount.
  • Regulatory operating fee: item price plus shipping, gift wrap and personalization. It does not include marketplace-collected tax: unlike Etsy Payments, this base does not change.
  • Offsite Ads: the order total, capped at $100 USD per attributed order. Currency conversion: the order total.
  • Tax on fees: the fee subtotal, not the order.

Correction logged on 21 August 2026. The default base for Etsy's regulatory operating fee used to be the order amount after extracting tax. Etsy's documentation states it is charged on the item price and shipping costs, including gift wrap and personalization. The default base is now the gross amount. In the Spanish reference case the fee rises from 0.25 to 0.31 and profit falls from 9.50 to 9.44. The base remains editable.

Second correction, logged on 21 August 2026. The default base for Etsy Payments used to be the gross amount without the tax the marketplace collects. Etsy's documentation states this fee does include that tax when it applies, so the default base now includes it. This is a separate correction from the one above: the regulatory operating fee is unchanged and still excludes that tax. With no field to enter marketplace-collected tax in the form, no previously shown result changes.

For Amazon, the referral fee is calculated on the total price the buyer pays, and that base is editable too.

Wherever there is ambiguity, the base is visible and editable in the advanced options. The seller's real invoice always beats the default.

ROAS, ACoS, CPA, CPC and ROI

Maximum CPA = contribution margin Break-even ROAS = attributed revenue / maximum CPA Maximum ACoS = maximum CPA / attributed revenue x 100 Maximum CPC = maximum CPA x conversion rate Margin % = profit / net revenue x 100 ROI % = profit / direct investment x 100

Attributed revenue is the figure your ad platform records as the conversion value. We default to the gross amount, because that is what pixels usually send, and the ROAS calculator lets you switch to tax-exclusive revenue.

The direct investment in ROI is what comes out of your pocket per unit: product cost plus inbound logistics and prep. It excludes fees and advertising, because ROI measures the return on the capital you tie up.

When the contribution margin is zero or negative, ROAS, ACoS and CPA are not shown: they do not exist. We prefer an honest dash to a meaningless number.

How the break-even price is solved

The break-even selling price is the price at which net profit is exactly zero. It is not approximated with a rule of three: it is solved numerically by bisection over the complete profit function.

The calculation simultaneously accounts for tax, every percentage fee (which rises as the price rises), every flat fee (which does not), Offsite Ads and its caps, discounts, the shipping you charge and all your costs. A linear approximation goes wrong precisely where flat fees are involved.

The method starts at zero, expands the upper bound until it finds a sign change, then narrows the interval to a tolerance far below one cent. If there is no sign change, the calculator says there is no break-even price instead of returning an invented number.

Rounding, formatting and precision

  • Amounts you enter are snapped to whole cents when read, because they are money.
  • Intermediate results are not rounded.
  • Rounding happens only on display. That is why the breakdown lines occasionally differ from the total by one cent: the total is right, the lines are rounded.
  • Number formatting comes from Intl.NumberFormat using the interface language and the market currency. No currency symbol is hand-written anywhere in the code.
  • The currency's ISO code is shown next to the main results, so USD, CAD and AUD cannot be confused.
  • Both decimal conventions and thousands separators are accepted: 12.50, 12,50, 1,250.50 and 1.250,50 all read correctly. A single separator followed by three digits is ambiguous (14.975 could be fourteen thousand or fourteen point nine seven five): in fields with a defined maximum, such as percentages, it resolves in favour of the decimal reading.
  • No division runs without checking the divisor first: you will never see an infinite result or a “NaN”.

Tests on the calculation engine

The four calculators share one engine that contains no visible text and no currency at all: it returns numbers and codes, with language and formatting applied on top. That is what makes it testable end to end without a browser.

The automated suite checks the four full reference cases, the eight markets, the five currencies, the ten language-currency combinations, the thirteen Canadian provinces, Etsy's domestic and international order types in Canada and Australia, and the awkward cases too: empty fields, negative values, zero orders, 0% tax, 0% fees, negative margins, a 100% return rate, an impossible profit target, a missing fulfillment fee, divisions by zero, extremely large values and every accepted number format.

You can run the tests in your own browser: they execute against the same code the calculators use.

Limits of these estimates

  • They are only as good as their inputs. If the fee you enter does not match your invoice, neither will the result.
  • Fees change. Preloaded values carry a review date, a source and a verification status. Where we could not consult a source, we say so.
  • They work with averages. An average order value says nothing about the spread.
  • They do not model tax law. Tax is extracted to compute margins; special regimes, intra-EU sales, reverse charge, registration thresholds in other countries and similar cases are not modelled.
  • They do not convert currencies. Deliberately.
  • They do not model cash flow. When you get paid and when you pay does not affect margin but can decide whether a business survives.
  • Ad attribution is an open problem. Spreading spend across orders is a convention, not a truth.

This is not accounting

Results are estimates based on the information you enter. Fees, taxes and platform terms can change: always check the figure that matters to you against your invoice or the official platform. They do not replace your real invoices, your official accounts or professional tax, financial or legal advice. These tools exist to support operational decisions — pricing, bidding, which products to keep — not to meet accounting or tax obligations. Your statutory accounts follow different rules and your accountant prepares them.