Seller Profit Doctor
REMOTE · SELLERPROFITDOCTOR.COM
Free profit check-up for Etsy, Shopify and Amazon sellers: fees, sales, ads, shipping, plans, rates.
Available components
Last scanned (12 hours ago)
Scores higher than 66% of remote servers
Reachable. Last reached 23 Oct 2026.
Category E-commerce
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability56
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 9022 tokens (~601/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
- Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 22 Oct 26 +1
- The server rewrote its instructions, which are the text every model session reads security
- Tool “sellerprofit_amazon_fees” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_checkup” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_rates” rewrote its description, which is the text the model reads security
- Server version: 1.4.4 → 1.4.5 functional
- “sellerprofit_amazon_fees” reworded the description of “inboundSplit” cosmetic
- 21 Oct 26 0
- Server version: 1.4.3 → 1.4.4 functional
- 20 Oct 26 +1
- Tool “sellerprofit_offsite_ads” rewrote its description, which is the text the model reads security
- Server version: 1.4.2 → 1.4.3 functional
- “sellerprofit_offsite_ads” reworded the description of “offsiteShare” cosmetic
- “sellerprofit_price_for_margin” reworded the description of “offsiteShare” cosmetic
- “sellerprofit_shipping_gap” reworded the description of “offsiteShare” cosmetic
- 18 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Oct 26 0
- Tool “sellerprofit_ads_breakeven” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_ads_roas_breakeven” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_amazon_ads_breakeven” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_amazon_fees” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_box_billing” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_checkup” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_compare_fees” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_etsy_fees” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_offsite_ads” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_price_for_margin” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_rates” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_sale_breakeven” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_shipping_gap” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_shopify_order_fees” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_shopify_plan_fit” rewrote its description, which is the text the model reads security
- 16 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “sellerprofit_amazon_ads_breakeven” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_checkup” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_sale_breakeven” rewrote its description, which is the text the model reads security
- Tool “sellerprofit_amazon_fees” rewrote its description, which is the text the model reads security
- Schema quality: 483 → 595 ▼ functional
- Schema quality: 483 → 594 ▼ functional
- Server version: 1.3.0 → 1.4.2 functional
- Server version: 1.2.0 → 1.3.0 functional
- New tool “sellerprofit_ads_roas_breakeven” functional
- New tool “sellerprofit_box_billing” functional
- New tool “sellerprofit_amazon_ads_breakeven” functional
- New tool “sellerprofit_compare_fees” functional
- New tool “sellerprofit_sale_breakeven” functional
- New tool “sellerprofit_shopify_order_fees” functional
- “sellerprofit_amazon_fees” added an optional parameter “freightToAmazon” cosmetic
- “sellerprofit_amazon_fees” added an optional parameter “hourlyValue” cosmetic
- “sellerprofit_amazon_fees” added an optional parameter “inboundSplit” cosmetic
- “sellerprofit_amazon_fees” added an optional parameter “labelCost” cosmetic
- “sellerprofit_amazon_fees” added an optional parameter “minutesPerOrder” cosmetic
- “sellerprofit_amazon_fees” added an optional parameter “packaging” cosmetic
- “sellerprofit_amazon_fees” added an optional parameter “unitsPerMonth” cosmetic
- “sellerprofit_amazon_ads_breakeven” reworded the description of “category” cosmetic
- “sellerprofit_amazon_ads_breakeven” reworded the description of “weightBand” cosmetic
- “sellerprofit_amazon_fees” reworded the description of “fulfillment” cosmetic
- “sellerprofit_amazon_fees” reworded the description of “packed” cosmetic
- “sellerprofit_amazon_fees” reworded the description of “shippingCharged” cosmetic
- “sellerprofit_amazon_fees” reworded the description of “sizeBand” cosmetic
- “sellerprofit_compare_fees” reworded the description of “amazonCategory” cosmetic
- “sellerprofit_compare_fees” reworded the description of “etsyOffsiteAds” cosmetic
- “sellerprofit_compare_fees” reworded the description of “shopifyBilling” cosmetic
- “sellerprofit_compare_fees” reworded the description of “shopifyPlan” cosmetic
- “sellerprofit_etsy_fees” reworded the description of “offsiteAds” cosmetic
- “sellerprofit_offsite_ads” reworded the description of “offsiteAds” cosmetic
- “sellerprofit_offsite_ads” reworded the description of “offsiteShare” cosmetic
- “sellerprofit_offsite_ads” reworded the description of “orders” cosmetic
- “sellerprofit_price_for_margin” reworded the description of “offsiteAds” cosmetic
- “sellerprofit_price_for_margin” reworded the description of “offsiteShare” cosmetic
- “sellerprofit_rates” reworded the description of “platform” cosmetic
- “sellerprofit_sale_breakeven” reworded the description of “category” cosmetic
- “sellerprofit_sale_breakeven” reworded the description of “offsiteAds” cosmetic
- “sellerprofit_sale_breakeven” reworded the description of “platform” cosmetic
- “sellerprofit_sale_breakeven” reworded the description of “shopifyPlan” cosmetic
- “sellerprofit_shipping_gap” reworded the description of “freeShippingShare” cosmetic
- “sellerprofit_shipping_gap” reworded the description of “offsiteAds” cosmetic
- “sellerprofit_shipping_gap” reworded the description of “orders” cosmetic
- “sellerprofit_shopify_order_fees” reworded the description of “billing” cosmetic
- “sellerprofit_shopify_order_fees” reworded the description of “plan” cosmetic
- “sellerprofit_shopify_plan_fit” reworded the description of “billing” cosmetic
- “sellerprofit_shopify_plan_fit” reworded the description of “currentPlan” cosmetic
- “sellerprofit_ads_breakeven” reworded the description of “adsDailyBudget” cosmetic
- “sellerprofit_amazon_fees” reworded the description of “category” cosmetic
- “sellerprofit_amazon_fees” reworded the description of “weightBand” cosmetic
- 15 Oct 26 +1
- Stability: unverified → 0.03 ▲ functional
- 14 Oct 26 70
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 23 Oct 2026 · Probed https://sellerprofitdoctor.com/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=sellerprofitdoctor.com | CN=YR1,O=Let's Encrypt,C=US | 13 Oct 2026 | 11 Jan 2027 | RSA 2048 | SHA256-RSA | 584703c1a9151622abb0cf1bf46e3f9c5ac |
| SANs: sellerprofitdoctor.com | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of sellerprofitdoctor.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| sellerprofitdoctor.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=() |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://sellerprofitdoctor.com/api/mcp | Verified | 200 | |
| http (plaintext) | http://sellerprofitdoctor.com/api/mcp | HTTPS enforced | 308 | https://sellerprofitdoctor.com/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
sellerprofit_ads_breakeven Break-even ROAS for Etsy Ads ~439
Works out the ROAS at which an Etsy shop's Etsy Ads pay for themselves (break-even ROAS = order ÷ what an ad order keeps after Etsy's fees and costs), the most an ad can cost per sale, and, with the shop's ROAS, what the ads gain or lose a month. It fits a seller who asks whether Etsy Ads are worth it, what ROAS they need, or whether to turn ads off. Takes the item price, shipping charged, materials, label cost, and the daily budget or exact monthly spend; packaging is optional ($1 typical, flagged) and ROAS from the Etsy Ads page adds the monthly gain or loss and the fix. Returns the margin, break-even ROAS, ad sales and earnings, the monthly gain or loss and, when the ads lose money, the fix and what it's worth. US dollars; dated Etsy rules with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| adsDailyBudget | number | – | Etsy Ads daily budget, US dollars, $1 or more (Etsy's smallest; assumed fully spent, 30 days a month). Or send adsMonthlySpend. |
| adsMonthlySpend | number | – | Exact Etsy Ads spend last 30 days, US dollars. Or send adsDailyBudget. |
| itemPrice | number | yes | Typical item price, US dollars, before shipping. |
| labelCost | number | yes | The shipping label, US dollars. |
| materials | number | yes | Materials and supplies per item, US dollars. |
| packaging | – | – | Packaging per order in US dollars, or mailer (about $1), box (about $3) or not-sure. Left out: $1, a weakly sourced typical figure, flagged as a default. |
| roas | number | – | Return on ad spend, last 30 days (Etsy Ads page): ad revenue ÷ ad spend, such as 1.5. Left out: only the break-even is returned. |
| shippingCharged | number | – | What the buyer pays for shipping, US dollars (0 if free). |
| Name | Type | Req | Description |
|---|---|---|---|
| adSales | number|null | yes | ROAS × spend, a month. |
| adSpendMonthly | number | yes | – |
| assumptions | array | yes | – |
| breakEvenRoas | number|null | yes | 1 ÷ margin: ads pay back at this ROAS or more. Null when each order loses money before the ad. |
| earnedAfterCosts | number|null | yes | Ad sales × margin, a month. |
| fix | – | yes | – |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| marginForAds | number | yes | profitPerAdOrder ÷ order total. |
| monthlyGainOrLoss | number|null | yes | earnedAfterCosts − spend: negative means the ads cost more than they bring in. |
| orderTotal | number | yes | – |
| platform | string | yes | – |
| profitPerAdOrder | number | yes | What an order an ad brought keeps before the ad: order − Etsy fees − materials − packaging − label (no Offsite fee on it). Also the most an ad can cost per sale. |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| roas | number|null | yes | – |
| status | string | yes | – |
| text | string | yes | – |
No examples provided.
sellerprofit_ads_roas_breakeven Break-even ROAS for Facebook, Instagram and Google ads ~909
Works out the ROAS (ad revenue ÷ ad spend, as Meta or Google reports it) at which Facebook, Instagram or Google ads pay for themselves, when the ad sends buyers to a Shopify store, an Etsy listing or an Amazon listing, with that platform's own fees on the order. Break-even ROAS = order ÷ what one ad order keeps after the platform's fees, product, label, packaging and refunds; that amount is also the most an ad can cost per order. It fits a seller who asks what ROAS they need, why ads with a ROAS of 3 still lose money, or whether to pause Meta or Google ads. Takes the item price, product cost and label; optionally the platform (shopify default), shipping charged, packaging ($1 typical, flagged), the refund share, and the platform's own field (Shopify plan, Amazon category and fulfillment fee). The monthly ad spend with the reported ROAS or ad revenue adds the monthly gain or loss and the fix; all orders a month check the ad platform's count against the seller's own orders. Returns the order line by line, what an ad order keeps, the margin, the break-even ROAS, and with spend the monthly gain or loss. Says that Meta and Google count purchases with their own attribution windows, so their ROAS can differ from the store's own orders. US dollars; dated rates with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| adRevenue | number | – | Optional: the purchase value the ad platform reports for the last 30 days, US dollars. Send with adSpendMonthly; ROAS = adRevenue ÷ adSpendMonthly. |
| adSpendMonthly | number | – | Optional: ad spend in the last 30 days on Meta (Facebook, Instagram) or Google, US dollars. With roas or adRevenue it gives the monthly gain or loss. |
| category | string | – | Amazon only: the referral category, or not-sure. Left out: Everything Else (15%), flagged. |
| fulfillmentFee | number | – | Amazon only: the FBA fee per unit (Fee Preview) when Amazon ships it, US dollars. Left out: 0 (the seller ships), flagged. |
| itemPrice | number | yes | The average order before shipping, US dollars: what the buyer pays for the item (one item an order). |
| labelCost | number | yes | The shipping label per order, US dollars (0 if Amazon ships it). |
| ordersPerMonth | integer | – | Optional: all the orders the store or shop had in the last 30 days, from every source, a whole number. Send with adSpendMonthly: checks the ad platform's count against your own orders. |
| packaging | – | – | Packaging per order in US dollars, or mailer (about $1), box (about $3) or not-sure. Left out: $1, a weakly sourced typical figure, flagged as a default. |
| platform | string | – | Where the ad sends buyers: shopify (the store), etsy (an Etsy listing) or amazon (an Amazon listing). Left out: shopify, flagged. |
| productCost | number | yes | Product or materials cost per order, US dollars (Amazon: landed cost). |
| refundShare | number | – | Optional: the share of orders refunded in full, a fraction from 0 to 0.9 (0.05 is 5%). A refunded order is counted as: the item comes back and can be sold again, the buyer pays the return label, and… |
| roas | number | – | The ROAS the ad platform reports (Meta Ads Manager or Google Ads, last 30 days): ad revenue ÷ ad spend, as a plain number such as 2.5. Google shows ROAS as a percent: 250% is 2.5. Or send adRevenue w… |
| shippingCharged | number | – | What the buyer pays for shipping on that order, US dollars (0 if free). Left out: 0, flagged. |
| shopifyPlan | string | – | Shopify only: the plan, which sets the Shopify Payments card rate. Left out: basic, flagged. |
| Name | Type | Req | Description |
|---|---|---|---|
| adCostPerOrder | number|null | yes | Spend ÷ adOrdersCounted (= order ÷ ROAS): what each counted order cost in ads. |
| adOrdersCounted | number|null | yes | adSales ÷ order total: the orders the ad platform credits to the ads, a month (not rounded). |
| adSales | number|null | yes | ROAS × spend, a month: the sales the ad platform credits to the ads. |
| adSpendMonthly | number|null | yes | – |
| allOrdersRoas | number|null | yes | All orders × order total ÷ spend: the ROAS if every order of the month had come from the ads. Under the break-even, the ads can't pay back whatever the ad platform counts. |
| assumptions | array | yes | – |
| breakEvenRoas | number|null | yes | 1 ÷ margin: ads pay back at this ROAS or more (Google's percent is this × 100). Null when each order loses money before the ad. |
| earnedAfterCosts | number|null | yes | adSales × margin, a month. |
| fees | array | yes | – |
| fix | – | yes | – |
| itemPrice | number | yes | – |
| keptPerAdOrder | number | yes | What one order an ad brought keeps before the ad, on average: (1 − refund share) × keptPerSale − refund share × lostPerRefund. Also the most an ad can cost per order. Negative is a loss. |
| keptPerSale | number | yes | Order − fees − product − label − packaging, on an order that isn't refunded. Negative is a loss. |
| label | number | yes | – |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| lostPerRefund | number|null | yes | What one refunded order loses: the fees not returned + label + packaging (the item comes back). Null with no refunds. |
| lostPerRefundHow | string|null | yes | – |
| marginForAds | number | yes | keptPerAdOrder ÷ order total. |
| monthlyGainOrLoss | number|null | yes | earnedAfterCosts − spend: negative means the ads cost more than they bring in. |
| notes | array | yes | What the math counts, assumes and leaves out, in plain words. |
| orderTotal | number | yes | Item + shipping the buyer pays. |
| ordersPerMonth | number|null | yes | – |
| ownOrdersCap | number|null | yes | When the ad platform counts more orders than the store had all month: all orders × keptPerAdOrder − spend, the most the ads can earn a month even if every order came from them. Negative means the ads… |
| packaging | number | yes | – |
| platform | string | yes | – |
| productCost | number | yes | – |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| referralOtherReading | – | yes | Amazon stepped categories (Beauty, Baby, Grocery, Clothing, Lawn Mowers) above a price line: the fee is read on the whole price, which a public Amazon page doesn't confirm; this is the other reading.… |
| refundShare | number | yes | The share of counted orders refunded in full (0 when left out). |
| roas | number|null | yes | The ROAS used: as typed, or adRevenue ÷ adSpendMonthly. |
| roasFrom | – | yes | – |
| shippingCharged | number | yes | – |
| status | string | yes | – |
| text | string | yes | – |
| totalFees | number | yes | – |
No examples provided.
sellerprofit_amazon_ads_breakeven Break-even ACoS for Amazon ads ~811
Works out the ACoS (ad spend ÷ the sales the ads bring) at which Amazon Sponsored Products pay for themselves: what a unit an ad brings keeps before the ad (after the referral fee, the FBA fee estimate or the label and packaging, storage and the landed cost) as a share of what the buyer pays. Gives it outside peak season and in peak (October 15 to January 14), when the FBA peak fee lowers it. It fits a seller who asks what ACoS they need, whether their Amazon ads pay, or what to bid. Takes the price, category, fba or fbm, the packed size and weight bands or the packed dimensions (FBA) or shipping charged (FBM), and the landed cost. Optional: the monthly ad spend with the ACoS (or the ad sales) for the monthly gain or loss and the fix, and the conversion rate for the highest cost per click that pays. Amazon publishes no ACoS benchmark: the seller's own break-even is the test. The FBA fee and storage are estimates (estimate: true); Amazon's Fee Preview shows a seller's real fee. Assumes the Professional plan. Dated rates with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| acos | number | – | ACoS, last 30 days (Campaign Manager): ad spend ÷ the sales the ads brought, as a fraction (0.3 is 30%). Or send adSales with adSpend. |
| adSales | number | – | Sales the ads brought, last 30 days, US dollars (Campaign Manager). Send with adSpend; the ACoS is adSpend ÷ adSales. |
| adSpend | number | – | Sponsored Products spend, last 30 days, US dollars (Campaign Manager). With acos or adSales it gives the monthly gain or loss. |
| category | string | yes | The Amazon category, which sets the referral fee, or not-sure (Everything Else, 15%, flagged). |
| conversionRate | number | – | Orders ÷ clicks on the ads, last 30 days (Campaign Manager), as a fraction (0.1 is 10%). Adds the highest cost per click that still pays. |
| fulfillment | string | yes | fba (Amazon ships; adds the FBA fee estimate) or fbm (the seller ships). |
| labelCost | number | – | FBM: what the shipping label costs, US dollars. Left out: shipping is treated as breaking even (label = shipping charged − packaging), flagged. |
| landedCost | number | yes | What one unit costs the seller, delivered: product, freight, duties and prep, to Amazon's door (FBA) or the seller's (FBM). US dollars. |
| packaging | number | – | FBM: packaging per order, US dollars. Left out: $1, a weakly sourced typical figure, flagged. |
| packed | object | – | The packed size and weight, as Amazon measures it: makes the FBA estimate and the size and weight checks exact to the rate card. |
| price | number | yes | The selling price on Amazon, US dollars. |
| shippingCharged | number | – | FBM: what the buyer pays for shipping, US dollars (0 if free). The referral fee is charged on price + shipping. Default 0. |
| sizeBand | string | – | FBA: small-flat (fits 15 × 12 × 0.75 in), standard-box (up to 18 × 14 × 8 in) or bigger. Send with weightBand, or send packed. |
| weightBand | string | – | FBA: the packed weight band (the top of the band is used; over-3lb has no top, so it is billed from 3 lb and heavier items cost more: send packed for a closer number). Send with sizeBand. |
| Name | Type | Req | Description |
|---|---|---|---|
| acos | number|null | yes | The ACoS used, as a fraction. |
| acosFrom | – | yes | typed: the acos sent; ad_sales: adSpend ÷ adSales. |
| adSpend | number|null | yes | – |
| assumptions | array | yes | – |
| category | object | yes | – |
| conversionRate | number|null | yes | – |
| fba | – | yes | FBA only: an estimate from Amazon's 2026 rate cards for the size given. Fee Preview in Seller Central shows the real fee. |
| fbmLabel | – | yes | FBM only: the label and packaging counted per order. |
| fulfillment | string | yes | – |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| notes | array | yes | What the break-even leaves out or assumes, whatever was sent. |
| offPeak | object | yes | – |
| peak | object | yes | – |
| peakWindow | object | yes | – |
| platform | string | yes | – |
| price | number | yes | – |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| referral | object | yes | The referral fee's working and whether its reading is confirmed. |
| shippingCharged | number | yes | – |
| storageCubicFeet | number|null | yes | Cubic feet per packed unit, when storage is counted (FBA with a packed size). |
| text | string | yes | – |
| vendorMedianAcos | object | yes | Context only, a third-party figure: Amazon publishes no ACoS benchmark. Never call it a good ACoS; the seller's own break-even is the test. |
No examples provided.
sellerprofit_amazon_fees Fees on one Amazon unit ~925
Works out Amazon's fees on one unit at a price: the referral fee for the category (official, with the $0.30 minimum where the category has one), the $1.80 media closing fee (official), and for FBA an estimate of the fulfillment fee from Amazon's 2026 rate cards by size tier and weight, with the 3.5% fuel and logistics surcharge, and the peak-season fee from October 15 to January 14. It fits a seller who asks what Amazon takes on a sale, what FBA costs for an item, whether a price sits just over a fee line, or whether FBA or shipping it themselves costs less. Takes the price, category, fba or fbm, and for FBA the packed size and weight bands (or the packed dimensions); for FBM, the shipping the buyer pays. Or takes both (with packed, labelCost and, optionally, packaging, minutesPerOrder with hourlyValue, unitsPerMonth, inboundSplit and freightToAmazon) and compares Amazon shipping it with the seller shipping it for the same item, outside peak and from October 15 to December 31: each side's costs and what's left per unit, storage from the packed size, monthly totals, and the label + packaging + time where the answer flips. Assumes the Professional selling plan (the Individual plan adds $0.99 an item). Returns each fee, the total outside and in peak, what's left, and the price lines where a fee steps; a line whose reading Amazon doesn't confirm is marked verified: false. The FBA figure is estimate: true; Amazon's Fee Preview shows a seller's real fee. Dated rates with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | The Amazon category, which sets the referral fee, or not-sure (Everything Else, 15%, flagged). |
| freightToAmazon | number | – | both: the seller's own freight per unit to send stock to Amazon, US dollars. Left out: not counted (said). |
| fulfillment | string | yes | fba (Amazon ships; adds the FBA fee estimate), fbm (the seller ships), or both (the two side by side for the same item: send packed and labelCost). |
| hourlyValue | number | – | both: what an hour of the seller's time is worth, US dollars. Send with minutesPerOrder. |
| inboundSplit | string | – | both: how stock goes to Amazon: minimal (one location; Amazon charges a placement fee), partial (2–3 locations, offered only for bulky sizes; a standard-size unit is priced as minimal), or optimized… |
| labelCost | number | – | both (required): what the seller's shipping label costs per order, US dollars. |
| minutesPerOrder | number | – | both: minutes the seller spends packing and shipping one order. Send with hourlyValue. Left out: the seller's time isn't counted (said). |
| packaging | number | – | both: packaging per order, US dollars. Left out: $1, a weakly sourced typical figure, flagged. |
| packed | object | – | The packed size and weight, as Amazon measures it: makes the FBA estimate exact to the rate card (with dimensional weight). Required with both: it can change which side leaves more, and gives the sto… |
| price | number | yes | The selling price on Amazon, US dollars. |
| shippingCharged | number | – | FBM or both: what the buyer pays for shipping when the seller ships, US dollars (0 if free). The referral fee is charged on price + shipping. Default 0. |
| sizeBand | string | – | FBA only (both needs packed): small-flat (fits 15 × 12 × 0.75 in), standard-box (up to 18 × 14 × 8 in) or bigger. Send with weightBand, or send packed. |
| unitsPerMonth | integer | – | both: units sold a month; adds monthly totals. |
| weightBand | string | – | FBA only (both needs packed): the packed weight band (the top of the band is used; over-3lb has no top, so it is billed from 3 lb and heavier items cost more: send packed for a closer number). Send w… |
| Name | Type | Req | Description |
|---|---|---|---|
| afterFees | number | yes | Price + shipping − fees outside peak: what's left per unit before landed cost, ads, storage and (FBM) the label. |
| afterFeesInPeak | number | yes | The same in peak season (FBA's peak fee); equal to afterFees for FBM. |
| assumptions | array | yes | – |
| category | object | yes | – |
| closingFee | object | yes | – |
| compare | object | – | fulfillment both only: Amazon shipping it and the seller shipping it, side by side. The top-level fees are the FBA side's. |
| fba | – | yes | FBA only. An estimate from Amazon's 2026 rate cards for the size given: Amazon measures the unit itself; Fee Preview shows the real fee. |
| fulfillment | string | yes | With both, the top-level fees are the FBA side's and compare holds the two sides. |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| plan | object | yes | The fees assume the Professional selling plan. |
| platform | string | yes | – |
| price | number | yes | – |
| priceLines | array | yes | Prices where a fee steps: referral steps in this category and, for FBA, the $10 and $50 price bands of the fee card. |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| referral | object | yes | – |
| shippingCharged | number | yes | – |
| text | string | yes | – |
| totalFees | object | yes | Referral + closing + FBA, per unit, US dollars. |
No examples provided.
sellerprofit_box_billing What your box bills at ~554
Works out the billable weight of one box with USPS (Priority Mail, Ground Advantage), UPS (Daily Rates and Retail Rates) and FedEx, from its outside size in inches and its actual weight, with each carrier's 2026 dimensional weight rules: sides rounded up to whole inches, cubic inches ÷ the divisor (139 for USPS since July 12, 2026, only for boxes over 1 cubic foot; UPS 139 Daily, 166 Retail; FedEx 139), rounded up to a pound, and the larger of that and the actual weight. It fits a seller who asks why a label cost more than the weight suggests, whether a box is too big, what dimensional weight a box has, or whether a smaller box would bill less. Takes lengthIn, widthIn, heightIn and weightLb or weightOz; optionally otherBox (a second box size) to compare. UPS and FedEx bill a large box (over 96 in long or over 130 in length plus girth) at least 90 lb; USPS prices by weight up to 108 in length plus girth (Ground Advantage commercial takes up to 130 in at a flat oversized price), and its row shows no billable weight past that; a box over 165 in length plus girth is refused. Returns per carrier the size weight, the billable weight, whether it bills on actual or size weight, and the largest box that still bills on the actual weight; USPS Ground Advantage cubic fit as information; warnings; and notes. No label prices (they depend on zone and account); divisors can differ by account. Dated carrier rules with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| heightIn | number | yes | Height, inches, measured on the outside of the box (decimals are fine: 15.2). |
| lengthIn | number | yes | Length, inches, measured on the outside of the box (decimals are fine: 15.2). |
| otherBox | object | – | Optional: a second (usually smaller) box to compare, inches, at the same weight. Adds what it bills at and the pounds it changes with each carrier. |
| weightLb | number | – | The packed box's actual weight, pounds (3.2 is 3.2 lb), up to 70. Or send weightOz. |
| weightOz | number | – | The packed box's actual weight in ounces (16 oz is 1 lb). Or send weightLb. |
| widthIn | number | yes | Width, inches, measured on the outside of the box (decimals are fine: 15.2). |
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| billableRange | object | yes | Billable weight across the carrier rows that price this box by weight. |
| box | object | yes | – |
| fix | string|null | yes | When a carrier bills on size: the largest box that bills on the actual weight with each one, in plain words. |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| notes | array | yes | What the weights leave out and why, in plain words: no label prices, divisors that depend on the account, carriers re-measure. |
| otherBox | – | yes | With otherBox only: the second box at the same weight. |
| rates | object | yes | Which carrier rules the weights use, as of when, and where they come from. |
| text | string | yes | – |
| warnings | array | yes | Things worth knowing about this box (rounding takes it over 1 cubic foot; USPS size limits and fees; UPS and FedEx large packages). |
| weightLb | number | yes | The actual weight, pounds, to 3 decimals. |
| weightOz | number | yes | The actual weight, ounces. |
No examples provided.
sellerprofit_checkup Shop profit check-up (Etsy, Shopify, Amazon) ~299
Runs the free profit check-up for an Etsy shop, a Shopify store or an Amazon seller. Returns the grade (a word such as Watch, with level 1 Healthy to 5 Losing money), what one order (Amazon: one unit) and the month keep after fees, ads and costs, the loss total, and the top 3 losses, each with its fix and what it's worth a month at the seller's numbers if orders hold. It fits a seller who asks where their money goes, whether their shop is healthy, or what to fix first. Takes platform (etsy is the default) and that platform's Quiz v1 answers; each field says what it takes. Bands and "not-sure" are accepted: every default used is listed (isDefault). There may be no grade yet: with too few answers, level is null, word is "Not enough answers yet", and grade.missing lists the answers a grade needs; losses found still show. Amazon: fulfillment, storage and returns dollars are estimates from Amazon's 2026 rates for the size and stock given (estimate: true, in estimatedLeakTotal, apart from leakTotal); a typed fbaFee from Fee Preview makes that fee the seller's own. Money is US dollars; shares are fractions (0.1 is 10%). Every result carries the dated rates with sources. Free, no sign-in. Takes numbers only; nothing is stored.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| breakEvenAcos | number|null | yes | Amazon only: the ACoS at which Sponsored Products break even. Null elsewhere. |
| breakEvenRoas | number|null | yes | – |
| checks | array | yes | – |
| estimatedLeakTotal | object | yes | Sure dollars that rest on estimated fees (Amazon's, by size and stock), shown apart from leakTotal and counted in the grade. |
| grade | object | yes | – |
| keptLine | string | yes | – |
| knowThis | array | yes | Facts with no fix the seller controls; never losses. |
| leakTotal | object | yes | Sure dollars on official rates only. |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| notCheckedYet | array | yes | – |
| pay | – | yes | Etsy only, with the time answer. |
| perMonth | object | yes | – |
| perOrder | object | yes | One typical order; on Amazon, one unit. |
| platform | string | yes | – |
| platform_supported | array | yes | Platforms this server checks. |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| salesLine | string | yes | – |
| topLeaks | array | yes | The top 3 losses: official sure dollars first, then estimates, then "up to", each with its fixes and dollar values if orders hold. |
| verdict | string | yes | – |
No examples provided.
sellerprofit_compare_fees Fees compared: one sale on Etsy, Shopify and Amazon ~569
Works out the fees on one sale on Etsy (listing, transaction, processing; Offsite Ads optional), on a Shopify store (card fee by plan through Shopify Payments) and on Amazon (referral fee by category, the Individual plan's per-item fee, an optional FBA fee the seller types), side by side, each column equal to that platform's single fee tool; with orders a month, Shopify's plan and Amazon's Professional plan are spread over each order. It fits a seller who asks which platform takes less of a sale, Etsy vs Shopify vs Amazon fees, or which is cheaper to sell on. Takes the item price and shipping charged; optionally orders a month, the Offsite Ads rate, the Shopify plan, the Amazon category, plan and FBA fee. Returns each platform's fee lines, fixed cost per order, total, what's left and its share of the sale, and which costs least at these numbers, with the caveat that fees are one part of the choice. US dollars; dated rates with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| amazonCategory | string | – | Amazon: the category, which sets the referral fee. Left out: Everything Else (15%), flagged. |
| amazonFulfillmentFee | number | – | Amazon: the FBA fee per unit (Fee Preview in Seller Central) when Amazon ships it. The Amazon sale is then the item price alone (no shipping charged), and the fee replaces the label. Left out: the se… |
| amazonPlan | string | – | Amazon: professional ($39.99 a month) or individual ($0.99 an item). Left out: professional, flagged. |
| etsyOffsiteAds | string | – | Etsy: did the sale come from an Offsite Ad? none, 12-percent (shops past $10,000 a year) or 15-percent. Left out: none, flagged. off is taken as none. |
| itemPrice | number | yes | The item price on the sale, US dollars, before shipping and tax. |
| ordersPerMonth | integer | – | Orders a month, 1 to 100,000: spreads the fixed monthly costs (Shopify's plan, Amazon's Professional plan) over each order. Left out: fees on the sale only, before monthly plans (plansCounted false). |
| shippingCharged | number | – | What the buyer pays for shipping, US dollars (0 if free). |
| shopifyBilling | string | – | Shopify: how the plan is billed, used with ordersPerMonth. Left out: monthly. |
| shopifyPlan | string | – | Shopify: the plan, paid through Shopify Payments. Left out: basic, flagged. |
| Name | Type | Req | Description |
|---|---|---|---|
| amazonShips | boolean | yes | True when amazonFulfillmentFee was sent: the Amazon sale is the item price alone. |
| assumptions | array | yes | – |
| caveat | string | yes | – |
| columns | array | yes | Etsy, Shopify, Amazon, in that order. |
| itemPrice | number | yes | – |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| lowest | object | yes | The platform (or platforms, at a tie) with the lowest totalPerOrder at these numbers. |
| notes | array | yes | – |
| ordersPerMonth | number|null | yes | – |
| plansCounted | boolean | yes | False without ordersPerMonth: Shopify's plan and Amazon's Professional plan aren't in any total, so the lowest is on the sale's fees alone. |
| plansNotCounted | string|null | yes | When plansCounted is false: the monthly plans left out, by name and price. Say it with the lowest. |
| rates | object | yes | – |
| shippingCharged | number | yes | – |
| text | string | yes | – |
No examples provided.
sellerprofit_etsy_fees Fees on one Etsy sale ~382
Works out Etsy's fees on one sale, line by line: the $0.20 listing fee, the 6.5% transaction fee, the 3% + $0.25 payment processing fee (also charged on sales tax), the 2.5% currency conversion when it applies, and the Offsite Ads fee (12% or 15%, at most $100) when the sale came from an Offsite Ad. It fits a seller who asks what Etsy takes from a sale, or what they keep from it before costs. Takes the item price and shipping charged; optionally the sales tax rate, whether it was an Offsite Ads sale and at which rate, and a currency mismatch. Returns each fee, the total, its share of the order and what's left, in US dollars, with the dated Etsy rules and their sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| currencyMismatch | boolean | – | True when the listing's currency differs from the payment account's (Etsy adds 2.5%). Default false. |
| itemPrice | number | yes | The item price on this sale, US dollars, before shipping. |
| offsiteAds | string | – | Did this sale come from an Offsite Ad? none, or the rate the shop pays: 12-percent (the shop has sold $10,000 or more in any 12 months) or 15-percent (under $10,000). Default none; off is taken as no… |
| salesTaxRate | number | – | The sales tax rate the buyer paid, as a fraction (0.07 is 7%). Etsy charges its 3% processing fee on the tax too. Default 0. |
| shippingCharged | number | – | What the buyer paid for shipping, US dollars (0 if free). |
| Name | Type | Req | Description |
|---|---|---|---|
| afterFees | number | yes | Order total minus every fee: what's left before materials, packaging, the label and ads. |
| feeShareOfOrder | number | yes | Total fees ÷ order total. |
| fees | object | yes | – |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| offsiteAds | object | yes | – |
| orderTotal | number | yes | Item + shipping the buyer paid, before tax, US dollars. |
| platform | string | yes | – |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| salesTax | number | yes | – |
| text | string | yes | – |
| totalFees | number | yes | – |
No examples provided.
sellerprofit_offsite_ads What Offsite Ads cost on Etsy, and the price that covers it ~550
Works out what Etsy's Offsite Ads cost a shop at its share of sales (12% or 15% of an attributed order, at most $100 an order), per order and per month, and the item price that covers the fee. It fits a seller who asks what Offsite Ads cost them, whether to price them in, or whether to opt out. Takes the item price, shipping charged, the shop's Offsite Ads rate (12-percent past $10,000, 15-percent under, or off), orders a month, and the share of sales from Offsite Ads if the seller knows it (else 10%, the figure Etsy gave at launch in 2020, flagged as a default). Materials and label cost are optional and add how far orders could fall before the price rise leaves the seller worse off. Returns the fee per attributed order and on average, the monthly and yearly cost, the price fix and its value if orders hold, and when opting out is possible. US dollars; dated Etsy rules with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| itemPrice | number | yes | Typical item price, US dollars, before shipping. |
| labelCost | number | – | Optional: the shipping label, US dollars. |
| materials | number | – | Optional: materials per item, US dollars. With labelCost, adds how far orders could fall before the price fix leaves the seller worse off. |
| offsiteAds | string | yes | The shop's Offsite Ads rate: 12-percent (the shop has sold $10,000 or more in any 12 months; for life, no opt-out), 15-percent (under $10,000, Offsite Ads on), or off (opted out). none is taken as of… |
| offsiteShare | – | – | Share of sales from Offsite Ads (Marketing > Offsite Ads): a fraction (0.1 is 10%), or a band. Left out: 10%, the figure Etsy gave at launch in 2020, flagged as a default. |
| orders | – | yes | Orders in a typical month: a number from 1 to 100,000 (Shop Manager > Stats > Orders), or a band. Over 300: send the number. |
| packaging | – | – | Packaging per order in US dollars, or mailer (about $1), box (about $3) or not-sure. Left out: $1, a weakly sourced typical figure, flagged as a default. |
| shippingCharged | number | – | What the buyer pays for shipping, US dollars (0 if free). Offsite Ads are charged on it too. |
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| averagePerOrder | number | yes | The fee spread over every order: share × fee. |
| capApplied | boolean | yes | – |
| feePerAttributedOrder | number | yes | min(rate × order, $100), US dollars. |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| monthly | number | yes | – |
| optOut | object | yes | Opting out is possible only under $10,000. A test, not a verdict. |
| orderTotal | number | yes | – |
| platform | string | yes | – |
| priceFix | – | yes | The item price that covers the Offsite Ads fee; null when there's no fee. |
| rate | number | yes | The fee on an attributed order: 0.12, 0.15, or 0 when off. |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| share | number | yes | Share of sales from Offsite Ads used. |
| shareIsDefault | boolean | yes | – |
| text | string | yes | – |
| yearly | number | yes | – |
No examples provided.
sellerprofit_price_for_margin Price for a target profit on Etsy ~524
Works out the item price at which one Etsy order keeps a target profit after Etsy's fees (listing, 6.5% transaction, 3% + $0.25 processing), the average Offsite Ads fee, Etsy Ads spread over orders, materials, packaging and the label. The target is dollars per order or a share of the order; with neither, it returns the break-even price. It fits a seller who asks what to charge, how to price for a profit, or what their break-even price is on Etsy. Takes materials, label cost, shipping charged and the shop's Offsite Ads rate (12-percent, 15-percent or off); packaging, the Offsite share, ad spend with orders, and targetProfitPerOrder or targetMargin are optional. Returns the price, the order at that price line by line, the break-even price and what each extra dollar keeps. US dollars; dated Etsy rules with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| adsMonthlySpend | number | – | Optional: Etsy Ads spend a month, US dollars, spread over orders. Needs orders. |
| labelCost | number | yes | The shipping label, US dollars. |
| materials | number | yes | Materials and supplies per item, US dollars. |
| offsiteAds | string | yes | The shop's Offsite Ads rate: 12-percent (past $10,000 in any 12 months), 15-percent (under $10,000, on), or off. none is taken as off. |
| offsiteShare | – | – | Share of sales from Offsite Ads: a fraction, or a band. Left out: 10%, the figure Etsy gave at launch in 2020, flagged as a default. |
| orders | number | – | Orders a month. Needed only with adsMonthlySpend. |
| packaging | – | – | Packaging per order in US dollars, or mailer (about $1), box (about $3) or not-sure. Left out: $1, a weakly sourced typical figure, flagged as a default. |
| shippingCharged | number | – | What the buyer pays for shipping, US dollars (0 if free). |
| targetMargin | number | – | The profit one order should keep as a share of the order (item + shipping), such as 0.25. Or send targetProfitPerOrder. |
| targetProfitPerOrder | number | – | The profit one order should keep after every cost, US dollars. Or send targetMargin. Neither: the break-even price. |
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| atThatPrice | object | yes | One order at that price, as the engine works it out (costs as positive dollars). Kept can differ from the target by a cent: Etsy rounds each fee. |
| breakEvenItemPrice | number | yes | The item price at which an order keeps $0. |
| itemPrice | number | yes | The item price to charge, US dollars, before shipping. |
| keptPerExtraDollar | number | yes | Of each extra dollar the buyer pays, what the seller keeps after Etsy's percentage fees and the average Offsite fee. |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| orderTotal | number | yes | – |
| platform | string | yes | – |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| target | object | yes | – |
| text | string | yes | – |
No examples provided.
sellerprofit_rates Fee tables (dated, sourced): Etsy, Shopify, Amazon ~237
Returns one platform's fee table, the one this server's numbers use: every fee and rule with its value, a plain label, its source link and the day it was checked, whether it's official or a third-party estimate, and both values where sources disagree, plus when the table is due for its next check. Etsy: listing, transaction, processing, Offsite Ads, Etsy Ads minimums, shipping lines, Etsy Plus, tax facts. Shopify: plan prices on both billings, card rates, the third-party processor fee, currency, chargebacks, Shopify Tax. Amazon: plans, referral by category, the media closing fee, FBA, size tiers, storage, aged stock, removal, returns, placement, low-inventory and peak fees (official, from Amazon's own pages), and coupon fees (third-party). It serves to cite a platform's fees, to answer what a fee is, or to check how current the numbers are. Takes no figures; platform defaults to etsy. Free, no sign-in. Nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| platform | string | – | Whose fee table. Default etsy. |
| Name | Type | Req | Description |
|---|---|---|---|
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| platform | string | yes | – |
| platform_supported | array | yes | – |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| sources | array | yes | – |
| table | array | yes | – |
No examples provided.
sellerprofit_sale_breakeven Is this sale worth it? ~722
Works out how many more orders a sale or coupon needs just to keep the same profit a month, for one item on Etsy, Shopify or Amazon. Each platform's fees are worked out at the full price and again at the sale price: percentage fees fall with the price and fixed fees stay (Etsy's listing and processing fees, Shopify's 30¢), so the answer is extra orders = kept at full price ÷ kept on sale − 1. On Amazon the sale is a coupon plus the 2.5% coupon fee (third-party estimate); Amazon's public pages don't state whether the referral fee is on the price before or after the coupon, so both readings are returned. It fits a seller who asks whether 25% off is worth it, how many more sales a discount needs, or whether to join a sales event. Takes the platform, the item price, the discount percent, materials and label; optionally shipping charged, packaging ($1 typical, flagged), orders a month, and the platform's own field: Etsy Offsite Ads, Shopify plan, Amazon category and fulfillment fee. Returns one order at full price and on sale (price, each fee, costs, kept), the fee change, the extra orders needed and, with orders a month, the orders needed and what the sale costs if orders don't rise. When the sale price keeps nothing, it says no number of orders makes the sale pay. US dollars; dated rates with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Amazon only: the referral category, or not-sure. Left out: Everything Else (15%), flagged. |
| discountPercent | number | yes | The discount, as a percent from 1 to 90 (25 is 25% off). It comes off the item price only. |
| fulfillmentFee | number | – | Amazon only: the FBA fee per unit (Fee Preview) when Amazon ships it, US dollars. It stays the same on sale. Left out: 0 (the seller ships), flagged. |
| itemPrice | number | yes | The item's full price, US dollars, before shipping and before the discount. |
| labelCost | number | yes | The shipping label per order, US dollars (0 if Amazon ships it). |
| materials | number | yes | Materials or product cost per item, US dollars (Amazon: landed cost). |
| offsiteAds | string | – | Etsy only: do these orders come from an Offsite Ad? none, or the shop's rate: 12-percent (past $10,000 in any 12 months) or 15-percent. Left out: none (no Offsite Ads fee). off is taken as none. |
| ordersPerMonth | integer | – | Optional: orders a month at full price now, a whole number. Adds the orders needed a month and what the sale costs if orders don't rise. |
| packaging | – | – | Packaging per order in US dollars, or mailer (about $1), box (about $3) or not-sure. Left out: $1, a weakly sourced typical figure, flagged as a default. |
| platform | string | yes | Where the item sells. |
| shippingCharged | number | – | What the buyer pays for shipping, US dollars (0 if free). The discount doesn't touch it. Default 0. |
| shopifyPlan | string | – | Shopify only: the plan, which sets the Shopify Payments card rate. Left out: basic, flagged. |
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| discountAmount | number | yes | What comes off the item price, US dollars. |
| discountPercent | number | yes | – |
| extraOrdersShare | number|null | yes | timesAsMany − 1, a fraction (0.93 is 93% more orders). Null when no number works. |
| feeChange | number | yes | Fees on sale − fees at full price, US dollars: below 0 when fees fall with the price (Etsy, Shopify), above 0 when the coupon fee adds more (Amazon). |
| full | object | yes | One order at the full price. |
| keptLess | number | yes | Kept at full price − kept on sale, per order: the discount less the fees that fall (plus Amazon's coupon fee). |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| month | – | yes | With ordersPerMonth only. |
| notes | array | yes | What the math assumes and leaves out, in plain words. |
| ordersFor100 | number|null | yes | Orders needed on sale for every 100 orders now, rounded up. |
| platform | string | yes | – |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| referralAfterCoupon | – | yes | Amazon only (null on Etsy and Shopify): the same sale if the referral fee is charged on the price after the coupon. The fields above count it on the price before the coupon. Amazon's public pricing p… |
| sale | object | yes | One order at the sale price, fees worked out again at that price. On Amazon: with the referral fee on the price before the coupon (referralAfterCoupon has the other reading). |
| status | string | yes | – |
| text | string | yes | – |
| timesAsMany | number|null | yes | Kept at full ÷ kept on sale: orders needed on sale for each order now. Null when no number works (see status). |
No examples provided.
sellerprofit_shipping_gap The shipping gap on Etsy, and the fix price ~518
Works out the shipping gap for an Etsy shop: what the label and packaging cost beyond what the buyer pays, per order and per month, and the fixes: the item price that covers the gap with shipping kept under Etsy's $6 search line, calculated shipping, and (for free-shipping shops) building shipping into items of $35 and up, each worth so much a month if orders hold. It fits a seller who charges less for shipping than the label costs, offers free shipping, or asks how to price shipping on Etsy. Takes the item price, shipping charged, label cost and orders a month; packaging (else $1 typical, flagged), the share of orders shipping free, the Offsite Ads rate and share, and materials are optional and sharpen the fix. Returns the gap, the fix price, every fix's monthly value and how far orders could fall before it leaves the seller worse off. US dollars; dated Etsy rules with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| freeShippingShare | – | – | Share of orders that ship free: a fraction (0.25), or a band. Default none. |
| itemPrice | number | yes | Typical item price, US dollars, before shipping. |
| labelCost | number | yes | What the shipping label costs, US dollars (Shop Manager > Finances > Payment account > Shipping). |
| materials | number | – | Optional: materials per item, US dollars. Adds how far orders could fall before each fix leaves the seller worse off. |
| offsiteAds | string | – | Optional: the shop's Offsite Ads rate. Fees on the higher price depend on it. Left out: estimated from orders × price, flagged. none is taken as off. |
| offsiteShare | – | – | Optional: share of sales from Offsite Ads. Left out: 10%, the figure Etsy gave at launch in 2020, flagged as a default. |
| orders | – | yes | Orders in a typical month: a number from 1 to 100,000 (Shop Manager > Stats > Orders), or a band. Over 300: send the number. |
| packaging | – | – | Packaging per order in US dollars, or mailer (about $1), box (about $3) or not-sure. Left out: $1, a weakly sourced typical figure, flagged as a default. |
| shippingCharged | number | yes | What the buyer pays for shipping on an order that isn't free, US dollars (0 if shipping is always free). |
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | – |
| fixes | array | yes | – |
| freeShippingShare | number | yes | – |
| gapPerOrder | number | yes | – |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| monthly | number | yes | – |
| overSearchLine | boolean | yes | – |
| platform | string | yes | – |
| priceFix | – | yes | The item price that covers the gap with shipping kept as is (under $6 when it is today). |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| searchLine | number | yes | Etsy favors US listings with shipping under this in search (calculated shipping is left out of the rule). |
| shippingCharged | number | yes | – |
| shippingCost | number | yes | Label + packaging per order, US dollars. |
| status | string | yes | – |
| text | string | yes | – |
| yearly | number | yes | – |
No examples provided.
sellerprofit_shopify_order_fees Fees on one Shopify order ~766
Works out every fee on one order of a US Shopify store, line by line: the Shopify Payments card fee by plan (premium cards optional), the international card and currency conversion fees, the 1.25% for mixing Shopify Payments with another card processor, another processor's own fee and Shopify's third-party fee on top (2%, 1% or 0.6% by plan), and the PayPal exemption from that fee when Shopify Payments is the main processor. It fits a seller who asks how much Shopify takes per sale, what one order costs in fees, or what's left of an order. Takes the item price, shipping charged, the plan (basic, grow, advanced) and how the order was paid; orders a month, billing and the app bill put the plan price and apps on each order. Returns each fee with its working, the total, its share of the order and what's left, and with orders the plan and apps per order. US dollars; dated Shopify rates with sources. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| appsMonthly | number | – | The monthly app bill, US dollars. Needs ordersPerMonth. Default 0. |
| billing | string | – | How the plan is paid (price per month). Needs ordersPerMonth. Default monthly. |
| foreignShare | number | – | With shopify-payments or both only: the share of Shopify Payments sales paid by buyers abroad in another currency (1% international card fee + 1.5% conversion); 1 when this order was. Default 0. |
| itemPrice | number | yes | What the buyer pays for the items on this order, US dollars, before shipping and tax. |
| ordersPerMonth | integer | – | Orders a month, a whole number from 1 to 100,000. Spreads the plan price and the app bill over each order. Left out: per-order fees only. |
| otherProcessorCents | number | – | That company's fixed fee per sale, in cents (30 is 30¢). Send with otherProcessorPercent. |
| otherProcessorPercent | number | – | With another, both or paypal: that company's rate as a percent (2.9 is 2.9%). Send with otherProcessorCents. Left out: 2.9% + 30¢ (Stripe's standard rate), or 3.49% + 49¢ for paypal (the PayPal Walle… |
| plan | string | yes | The store's plan (Settings > Plan). Plus is priced per store and Starter's rates aren't on Shopify's pricing page. |
| premiumCardShare | number | – | With shopify-payments or both only: the share of Shopify Payments card sales on premium cards (Amex, business cards), which pay a higher rate; 1 when this order was on one. Default 0. |
| processor | string | yes | How this order was paid: shopify-payments (the store's only card processor); another (Stripe, Square and others, or PayPal on a store without Shopify Payments: Shopify adds its third-party fee); both… |
| shippingCharged | number | – | What the buyer pays for shipping, US dollars (0 if free). |
| shopifyPaymentsShare | number | – | With both: the share of orders Shopify Payments handles, a fraction (1 when this order went through Shopify Payments, 0 when through the other one). Left out: half, flagged. |
| Name | Type | Req | Description |
|---|---|---|---|
| afterFees | number | yes | orderTotal − totalFees: what's left before product cost, the label, packaging, ads, the plan and apps. |
| assumptions | array | yes | – |
| feeShareOfOrder | number | yes | totalFees ÷ orderTotal. |
| itemPrice | number | yes | – |
| lines | array | yes | Each fee on the order, each rounded to the cent. A PayPal order shows the third-party fee at 0, exempt. |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| monthly | – | yes | Null without ordersPerMonth: the plan price and app bill are monthly, so they can't be put on one order. |
| notes | array | yes | Rules the numbers rest on (shipping in the fee base, US rates, the PayPal exemption). |
| orderTotal | number | yes | Items + shipping, before tax, US dollars: what the card fees are worked on. |
| paypalExempt | boolean | yes | True for processor paypal: no third-party fee, as Shopify Payments is the primary provider. |
| plan | string | yes | – |
| planName | string | yes | – |
| platform | string | yes | – |
| processor | string | yes | – |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| shareIsDefault | boolean | yes | – |
| shippingCharged | number | yes | – |
| shopifyPaymentsShare | number | yes | The share Shopify Payments handles: 1, 0, or the split. |
| text | string | yes | – |
| totalFees | number | yes | The lines added up, US dollars. |
No examples provided.
sellerprofit_shopify_plan_fit Which Shopify plan and billing fit your sales ~399
Works out which Shopify plan (Basic, Grow, Advanced) costs least at a store's card sales: each plan's price plus the card fees that change with the plan (or Shopify's third-party fee on sales through another processor), the card sales above which each move up pays for itself, on monthly and yearly billing, and what yearly billing takes off the price. It fits a seller who asks whether to upgrade or downgrade their Shopify plan, whether yearly billing is worth it, or why a bigger plan costs them more. Takes monthly card sales (US dollars), the current plan, billing and processor; with both processors, the share Shopify Payments handles. Returns every plan's cost, the cheapest plan on the current billing and on either billing, the break-even sales, and the yearly-billing difference, with the dated Shopify rates and sources. A move's value holds at these sales; below the break-even the bigger plan costs more. Free, no sign-in. Takes numbers only; nothing is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| billing | string | yes | How the plan is paid now. |
| currentPlan | string | yes | The store's plan (Settings > Plan). Plus is priced per store and Starter's figures aren't on Shopify's pricing page, so neither is compared here. |
| monthlyCardSales | number | yes | Online card sales a month, US dollars (order totals with shipping): what the card fees are charged on. |
| premiumCardShare | number | – | Share of card sales on premium cards (Amex, business cards), which pay a higher rate on every plan. Default 0. |
| processor | string | yes | How card payments arrive (Settings > Payments): shopify-payments, another (Stripe, Square and others; Shopify then adds its third-party fee), or both. |
| shopifyPaymentsShare | number | – | With both: the share of sales Shopify Payments handles, a fraction. Left out: half, flagged. |
| Name | Type | Req | Description |
|---|---|---|---|
| assumedNoPremium | boolean | yes | True when premiumCardShare was left out and some sales go through Shopify Payments: none were counted as premium cards; the seller's own share would change the answer. |
| billing | string | yes | – |
| breakEvens | array | yes | Price gap ÷ rate gap, for each move up, on both billings. |
| cheapest | object | yes | The cheapest plan on the store's current billing. |
| cheapestAnyBilling | object | yes | The cheapest plan and billing together, against the current plan on its current billing. |
| currentPlan | string | yes | – |
| link | string | yes | Opens the matching page on sellerprofitdoctor.com. Carries none of the figures sent. |
| monthlyCardSales | number | yes | – |
| plans | array | yes | Each plan's cost at these sales. Fees the same on every plan (the 30¢, currency, the other processor's own fee) drop out. |
| platform | string | yes | – |
| processor | string | yes | – |
| rates | object | yes | Which rules the numbers use, as of when, and where they come from. |
| sameAsCheapest | array | yes | Other plans that cost the same as the cheapest to the cent, on the current billing (empty when none do). |
| shareIsDefault | boolean | yes | True when the split is the default half, which the seller's own split would replace. |
| shopifyPaymentsShare | number | yes | The share Shopify Payments handles: 1, 0, or the split. |
| text | string | yes | – |
| yearlyBilling | array | yes | What yearly billing takes off the price: the current plan first, then the cheapest plan when it differs. |
No examples provided.
How do I install the Seller Profit Doctor MCP server?
Seller Profit Doctor is a hosted endpoint at https://sellerprofitdoctor.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · sellerprofitdoctor.com
claude mcp add --transport http com-sellerprofitdoctor-free-tools 'https://sellerprofitdoctor.com/api/mcp'
What is the Seller Profit Doctor MCP server?
Seller Profit Doctor is an MCP server listed in the public MCP registry as com.sellerprofitdoctor/free-tools. Free profit check-up for Etsy, Shopify and Amazon sellers: fees, sales, ads, shipping, plans, rates. This page covers its hosted endpoint (https://sellerprofitdoctor.com/api/mcp).
Is the Seller Profit Doctor MCP server safe to use?
Seller Profit Doctor scores 74 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Seller Profit Doctor MCP server expose?
Seller Profit Doctor exposes 15 tools: sellerprofit_checkup, sellerprofit_etsy_fees, sellerprofit_offsite_ads, sellerprofit_shipping_gap, sellerprofit_ads_breakeven, and 10 more. Their descriptions and schemas cost roughly 8,604 tokens of context every time the server is loaded.
Does the Seller Profit Doctor MCP server require authentication?
No. We connected to Seller Profit Doctor without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Seller Profit Doctor MCP server still maintained?
Seller Profit Doctor is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.