How we build and check these calculators
Last updated
Every number on this site is either arithmetic you can check or a published rate we copied from a marketplace's own page. This is how both are handled, in enough detail that you can hold us to it.
Where the numbers come from
There are two kinds of number in a calculator here. The ones you type, and the fee rates we supply. The ones we supply all live in a single file, src/lib/fees.ts, and nothing is hardcoded into a page. There are 34 entries in it. Each one carries three things:
- the rate itself, split into a percentage and a flat per-transaction amount;
- the URL of the marketplace or processor rate card it was read from;
- the date the figure was last confirmed against that URL.
So when the eBay fee calculator applies 13.6% plus a $0.40 per-order fee, that pair came off eBay's own selling-fees page, and the file says when. The same entry feeds the eBay profit calculator and the combined eBay and PayPal calculator, so three pages cannot drift apart from each other.
How staleness is prevented
A fee file is only as good as the last time someone looked at it, and the failure mode is silence: a rate changes in January, nobody notices, and the site keeps returning a confident wrong answer for a year.
So the check is automated and the consequence is loud. A test in src/lib/fees.test.ts reads the checked date on every entry and fails if any of them is more than 400 days old. That test runs in CI on every commit. When a refresh is neglected, the build breaks and nothing ships — the site goes stale visibly, rather than quietly misinforming a seller who is trying to price stock.
The refresh itself is deliberately dull: open each source URL, correct the figure if it moved, and update the checked date whether or not anything changed.
How the maths is tested
Each calculator is a pure function. It takes the inputs, returns the outputs, touches nothing else, and can therefore be tested exhaustively without a browser. Every one has its own spec file next to it covering three cases:
- Normal — a realistic order, checked against a figure worked out by hand.
- Boundary — zero, negative values, 100%, and the point where profit crosses into loss.
- Invalid — empty fields, text where a number belongs, and division by zero.
55 test suites run on every commit, one for each of the 45 calculators and the shared helpers they rely on. Division by zero returns an em dash, never a fake number: if you ask for a margin on a $0 sale, or feed the break-even calculator a contribution of zero, the answer is "—", because there is no answer and rounding one into existence would be worse than saying so.
The same function runs twice — once at build time, so the page ships with a correct default result in the HTML, and once in your browser as you type. Both produce identical output, which is why the number never jumps when the page finishes loading, and why every calculator still works with JavaScript turned off.
What we show you
The formula is printed on every calculator page, in plain form and in LaTeX. That is the whole method. There is no second calculation behind the result, no proprietary adjustment, and no rounding you cannot reproduce on paper. If you think the profit margin calculator is wrong, the line that produced the number is right there on the page for you to argue with.
Two worked examples sit under each formula with real figures, so you can follow the arithmetic end to end before trusting it with your own.
What we do not do
- No sign-up wall. The calculator works the moment the page loads.
- No email capture before a result. There is no gated version with better maths.
- No cookie-setting analytics. We use Cloudflare Web Analytics, which sets no cookies and builds no profile of you.
- No commercial arrangement changes a calculated number or a tool's position in any list on this site. Ads sit below the calculator, never above it. Affiliate links are labelled where they appear. Neither has ever moved a digit.
Limits
These are planning estimates, not financial advice. The published rates are the common case, and the common case is not your case often enough to matter:
- Rates vary by product category. eBay alone runs different final-value percentages across a dozen of them.
- Rates vary by country and by currency, and cross-border sales usually carry a surcharge on top.
- Rates vary by subscription tier — an eBay Store, a Shopify plan, an Amazon Professional account.
- Rates vary by seller status, including below-standard performance penalties and promotional discounts.
- Marketplaces change all of the above without notice, and sometimes before their own help pages catch up.
Use these numbers to decide whether a price is worth pursuing. Confirm against your own seller account and your own fee statement before you commit to it.
Corrections
If a rate is out of date, a formula is wrong, or a result does not match what a marketplace actually charged you, tell us on the contact page. Corrections get looked at first, ahead of anything else in the queue — a wrong number is the one bug here that costs a reader money. Send the marketplace page or the fee line from your statement if you have it, and we will check it against the source and fix the file.
Correction log
Every fee we have had to change, newest first. When a marketplace moves a rate, it goes here with the date we updated the site.
- 27 Sep 2026. Read Amazon's 2026 FBA rate card in Seller Central. Corrected: the default fulfilment fee was $3.33, which is not on the 2026 table; it is now $4.76, the $4.60 non-peak fee for a large-standard unit of 12–16 oz priced $10–$50 plus the 3.5% fuel and logistics surcharge Amazon has applied since 17 April 2026. The worked examples now use the matching 2026 rows, including the separate apparel table. Confirmed monthly storage at $0.78 per cubic foot, January to September. Corrected TikTok Shop's referral fee from 8% to 6%, the rate on TikTok's own fee pages; the 8% had come from third-party reports that TikTok has not published.
- 23 Sep 2026. Re-checked every rate against the live rate cards before launch. Corrected: eBay's per-order fee is $0.40 on orders over $10 ($0.30 at $10 or less); PayPal goods-and-services payments are 2.99% with no fixed fee (3.49% + $0.49 is the Checkout and invoice rate); card-funded PayPal personal payments carry a $0.30 fixed fee; Square in person is 2.6% + 15¢ and online on the free plan is 3.3% + 30¢; Mercari no longer charges sellers payment processing; TikTok Shop's referral fee covers its per-order costs. Added Etsy's $100 cap on Offsite Ads and Whatnot's new lower commission tiers.