Marketplace Seller Fee Calculator icon

Online shops · Coming soon

Marketplace Seller Fee Calculator for 21 US Platforms

Enter a sale price and item cost. See every fee line, your payout, profit and break-even price. Compare up to 21 US platforms in one run.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

typecalculation
scenarioIndex0
scenarioIdmug

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: etsy in Platforms. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Calculate seller fees, payout, profit and break-even price for Etsy, eBay, Amazon, Poshmark, Mercari, TikTok Shop and 15 more US marketplaces and payment platforms. Fee rates come from the open SellersCalc fee data (CC BY 4.0), with every fee line shown separately.

  • every fee line with its rate and dollar amount (transaction, payment processing, listing, referral, FBA and other fees);
  • total seller fees and your net payout;
  • profit and margin when you give your item cost;
  • the break-even price and, if you ask, the lowest price for your target margin;
  • costs that are not included (sales tax, returns, ads, subscriptions, currency conversion), so you never read them as zero.

Good for

  • Price a product so that it still makes money after Etsy, eBay or Amazon fees.
  • Compare the same sale on 5–20 platforms in one run and see where you keep more.
  • Get a clean fee table for your own spreadsheet, repricer or AI agent.

Not a good fit

  • US fee schedules in USD only. Other countries and currencies return a not_supported row, not guessed fees.
  • One standard rate per platform. Category rates, seller levels, Amazon FBA size tiers and promotions are not modeled.
  • Amazon always includes the single published FBA fee. For merchant-fulfilled orders add amazon.fbaFee to excludeFeeKeys.
  • Sales tax, returns, ads, subscriptions, storage and currency conversion are listed in notIncluded, not calculated.
  • Rates are as last reviewed by SellersCalc (scheduleLastReviewed). This is not a legal or accounting guarantee; check the platform page in officialSource before big decisions.

Who uses it

Online sellers

Price a product so it still makes money after fees.

Multi-channel shops

Compare the same sale on many platforms and see where you keep more.

Tool builders

Get a clean fee table for your repricer, sheet or AI agent.

Price

Prices will be shown after release.

Questions

Do I need a seller account?

No. It uses open SellersCalc fee data, not your account.

Are taxes and returns included?

No. They are listed as not included, so you never read them as zero.

Does it work outside the US?

No. It uses US fees in USD. Other countries get a not_supported row.

Are category fees used?

No. It uses one standard rate per platform.

Do I need an account on Etsy, eBay or Amazon?

No. The Actor uses open fee data. It does not log in and does not read your shop.

How fresh are the fees?

Each row has scheduleLastReviewed, the date SellersCalc last checked the rates. The Actor reads the data on every run. Platforms can change fees at any time; check officialSource for the platform page.

Why is my break-even price one cent different from another calculator?

The Actor finds the lowest price in whole cents that gives profit ≥ 0, using fee amounts rounded to cents, as shown in fees[]. Some calculators use unrounded rates.

Details

Step by step on Apify
  1. Open the Input tab.
  2. Keep the prefilled example: platform etsy and three sales in scenarios.
  3. Click Start.
  4. Open the Calculations view of the Dataset and check totalSellerFees, netPayout and profit.
Use cases
TaskInputYou getKey fieldsNext step
Price one product for a marginscenarios, targetMarginPercentcalculation rowprofit, marginPercent, breakEvenSalePrice, targetSalePricespreadsheet, repricer
Compare platforms for the same saleplatforms (several), scenariosone row per platformplatform, totalSellerFees, netPayout, effectiveFeeRatePercentBI table, dashboard
Check a whole catalogscenarios (up to 100)one row per product and platformscenarioId, fees[], profitGoogle Sheets, CSV
Keep a fee tablemode = exportfee rowfeeKey, value, unit, minimumAmount, capAmountyour own calculator
Answer a fee question in an AI agentprefill input via MCPcalculation rowfees[], netPayout, notIncludedAI chat, agent
Tips for better results
  • Add your item cost. Then you also get profit and margin.
  • Set a target margin to get the lowest price that reaches it.
  • For Amazon orders you ship yourself, exclude the FBA fee.
Limits and good to know
  • not_supported and invalid rows are free
  • A run with no useful rows (NO_RESULTS) costs only the start event
  • A run that stops on an input error or a source error costs only the start event and saves no rows
  • Up to 100 sales and 25 platform names per run. 21 platforms are supported, so at most 2,100 charged rows plus up to 10 free rows. A full run took a few seconds in our tests
  • One request to the fee data per run
  • If Apify moves a run to another server, the run continues where it stopped: rows are not written or charged twice
  • Default timeout 300 seconds, memory 256 MB

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "type": "calculation",
  "status": "complete",
  "scenarioIndex": 0,
  "scenarioId": "mug",
  "platform": "etsy",
  "platformName": "Etsy",
  "country": "US",
  "currency": "USD",
  "salePrice": 25,
  "shippingCharged": 5,
  "orderTotal": 30,
  "itemCost": 8,
  "shippingCost": 4.5,
  "totalCosts": 12.5,
  "totalSellerFees": 3.3,
  "netPayout": 26.7,
  "profit": 14.2,
  "marginPercent": 47.33,
  "effectiveFeeRatePercent": 11,
  "breakEvenSalePrice": 9.31,
  "targetSalePrice": null,
  "fees": [
    { "key": "transactionPct", "name": "Transaction fee", "ratePercent": 6.5, "amount": 1.95, "status": "applied" },
    { "key": "paymentPct", "name": "Payment processing", "ratePercent": 3, "amount": 0.9, "status": "applied" },
    { "key": "paymentFixed", "name": "Payment fixed fee", "fixedAmount": 0.25, "amount": 0.25, "status": "applied" },
    { "key": "listingFee", "name": "Listing fee", "fixedAmount": 0.2, "amount": 0.2, "status": "applied" }
  ],
  "notIncluded": [{ "item": "sales_tax", "reason": "Sales tax and fees charged on tax are not in the fee data; amounts exclude tax." }],
  "scheduleLastReviewed": "2026-08-15",
  "officialSource": "https://www.etsy.com/legal/fees",
  "source": { "provider": "SellersCalc", "license": "CC BY 4.0", "attribution": "Fee data by SellersCalc (https://www.sellerscalc.com)" }
}
Data fields (40)
FieldTypeMeaning
typestringcalculation = one sale scenario on one platform (mode calculate); fee = one line of a fee schedule (mode export).
statusstringcomplete; partial = a fee rule could not be applied (see warnings); not_supported = unknown platform, country or currency (one row per platform or per scenario); invalid = the scenario failed validation (one row per scenario). Only complete and partial rows are charged; at most 10 free rows per run are written, the rest are listed in RUN_SUMMARY.skipped.
messagestringPlain-English reason for partial, not_supported and invalid rows; null when complete.
scenarioIndexintegerPosition of the scenario in your input list, starting at 0; null on a not_supported row for a whole platform.
scenarioIdstringYour optional scenario id/label.
platformstringPlatform id, e.g. etsy, ebay, amazon, poshmark; null on an invalid row for a whole scenario.
platformNamestringPlatform display name from the fee data.
platformKindstringmarketplace or payments.
countrystringFee schedule country (ISO 2-letter).
currencystringFee schedule currency; all money fields are in it.
salePricenumberItem price paid by the buyer, from your input.
shippingChargednumberShipping the buyer paid you, from your input.
orderTotalnumbersalePrice + shippingCharged; the base for percentage fees.
itemCostnumberYour cost of goods, from your input; null if not given.
shippingCostnumberYour shipping/label cost, from your input (default 0).
totalCostsnumberitemCost + shippingCost; null when itemCost is missing.
totalSellerFeesnumberSum of fees the seller pays for this order.
totalBuyerFeesnumberFees the platform charges the buyer on top (e.g. Vinted buyer protection); not deducted from the seller.
buyerPaysnumberorderTotal + totalBuyerFees, before tax.
netPayoutnumberorderTotal - totalSellerFees: what the platform pays out.
profitnumbernetPayout - totalCosts; null when itemCost is missing.
marginPercentnumberprofit / orderTotal x 100; null when itemCost is missing or orderTotal is 0.
effectiveFeeRatePercentnumbertotalSellerFees / orderTotal x 100; null when orderTotal is 0.
breakEvenSalePricenumberLowest salePrice (same shipping and costs) with profit >= 0; null without itemCost or if none exists.
targetMarginPercentnumberTarget margin from input, if any.
targetSalePricenumberLowest salePrice that reaches targetMarginPercent; null if not requested or not reachable.
feesarrayEvery fee line of the schedule with status applied, limit, not_applicable, not_included or excluded, the rate or fixed amount, the base and the charged amount.
notIncludedarrayCosts this calculation does not cover (storage, taxes, refunds, ads...) with reasons. Never read them as zero.
assumptionsarrayAssumptions used for this row, in plain English.
warningsarrayRules that could not be applied or targets that cannot be reached.
scheduleLastReviewedstringDate SellersCalc last reviewed this platform's rates (not the date the rates took effect).
officialSourcestringOfficial fee page of the platform, when the fee data lists one.
officialSourceNotestringNote about the official source.
calculatorUrlstringSellersCalc calculator page for this platform/fee.
sourceobjectProvider, data URL, fetchedAt, license (CC BY 4.0) and attribution text.
feeKeystringFee line key in the source data (export mode).
feeNamestringFee line name (export mode).
rolestringcharge, threshold, minimum or cap (export mode).
payerstringseller or buyer (export mode).
basisstringBasis such as per unit or per cubic foot per month; null = per order (export mode).
Input settings (6)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Modemodestring"calculate"
Platformsplatformsarray["etsy"]
Countrycountrystring"US"
Sale scenariosscenariosarray[{"id": "mug", "salePrice": 25, "shippingCharged": 5, "itemCost": 8, "shippingCost": 4.…
Target margin %targetMarginPercentinteger
Exclude fee linesexcludeFeeKeysarray

Use cases with this tool

Each guide shows all the steps and the other tools.

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure