getreadystack's picture
Upload index.html with huggingface_hub
75028db verified
Raw History Blame Contribute Delete
14.4 kB
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Amazon Product Research Extension — FBA Profit, ROI &amp; Break-Even Calculator for Private-Label Sellers</title><meta name="description" content="Amazon's published US fee schedule takes a 15% referral fee in most categories plus $39.99/month for a Professional selling account — this works out what is actually left per unit, and the sell price you must reach to break even, before you place the supplier order."><style>*{box-sizing:border-box}
:root{color-scheme:light dark}
body{font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;margin:0;padding:14px;min-width:320px}
h1{font-size:1.05rem;margin:0 0 .2rem}
.sub{opacity:.75;margin:0 0 .9rem;font-size:.86rem}
label{display:block;margin:.55rem 0 .2rem;font-weight:600;font-size:.86rem}
.u{font-weight:400;opacity:.65}
input,select{width:100%;padding:.4rem .5rem;border:1px solid #8886;border-radius:7px;
background:transparent;color:inherit;font:inherit}
input[type=checkbox]{width:auto}
table{border-collapse:collapse;width:100%;margin-top:.9rem;font-size:.9rem}
th,td{border:1px solid #8884;padding:.36rem .5rem;text-align:left}
td.v{font-variant-numeric:tabular-nums;font-weight:600}
.f{border:1px solid #8884;border-radius:9px;padding:9px 11px;margin:.5rem 0;font-size:.87rem}
.buy{margin-top:18px;border:1px solid #8884;border-radius:10px;padding:13px}
.buy a{display:inline-block;margin-top:.5rem;padding:.45rem .9rem;border:1px solid currentColor;
border-radius:8px;text-decoration:none;color:inherit;font-weight:600}
body{max-width:720px;margin-inline:auto;padding:22px}</style><script data-grow-initializer="">!(function(){window.growMe||((window.growMe=function(e){window.growMe._.push(e);}),(window.growMe._=[]));var e=document.createElement("script");(e.type="text/javascript"),(e.src="https://faves.grow.me/main.js"),(e.defer=!0),e.setAttribute("data-grow-faves-site-id","U2l0ZTphZjljMzgyMC0yMmU5LTRhYjgtYTIxNS03OTRhMGY1N2ExYzM=");var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t);})();</script>
<!--yj-canon-s101--><link rel="canonical" href="https://getreadystack.com/tools/amazon-product-research-extension"></head><body>
<h1>Amazon FBA Unit Economics — Profit, ROI and Break-Even per Unit</h1>
<p class="sub">Amazon's published US fee schedule takes a 15% referral fee in most categories plus $39.99/month for a Professional selling account — this works out what is actually left per unit, and the sell price you must reach to break even, before you place the supplier order.</p>
<label for="sell_price">Sell price on Amazon <span class="u">USD</span></label><input type="number" id="sell_price" data-k="sell_price" value="24.99" step="any">
<label for="unit_cost">Supplier cost per unit <span class="u">USD</span></label><input type="number" id="unit_cost" data-k="unit_cost" value="5.2" step="any">
<label for="freight_per_unit">Inbound freight + duty per unit <span class="u">USD</span></label><input type="number" id="freight_per_unit" data-k="freight_per_unit" value="1.1" step="any">
<label for="fulfilment">Fulfilment method</label><select id="fulfilment" data-k="fulfilment"><option value="FBA" selected>FBA</option><option value="FBM">FBM</option></select>
<label for="referral_fee_pct">Referral fee for your category <span class="u">%</span></label><input type="number" id="referral_fee_pct" data-k="referral_fee_pct" value="15" step="any">
<label for="fulfilment_fee">Fulfilment fee per unit (FBA fee, or your own pick-pack-ship on FBM) <span class="u">USD</span></label><input type="number" id="fulfilment_fee" data-k="fulfilment_fee" value="5.58" step="any">
<label for="storage_per_unit_month">Amazon storage per unit per month (FBA only) <span class="u">USD</span></label><input type="number" id="storage_per_unit_month" data-k="storage_per_unit_month" value="0.42" step="any">
<label for="ppc_acos_pct">Ad spend as share of sales (ACoS) <span class="u">%</span></label><input type="number" id="ppc_acos_pct" data-k="ppc_acos_pct" value="12" step="any">
<label for="return_rate_pct">Return rate <span class="u">%</span></label><input type="number" id="return_rate_pct" data-k="return_rate_pct" value="4" step="any">
<label for="units_per_month">Units you expect to sell per month <span class="u">units</span></label><input type="number" id="units_per_month" data-k="units_per_month" value="300" step="any">
<table><tr><th>Net profit per unit</th><td class="v" data-o="net_profit_per_unit">&mdash;</td><td>USD</td></tr><tr><th>Net margin</th><td class="v" data-o="margin_pct">&mdash;</td><td>%</td></tr><tr><th>ROI on landed cost</th><td class="v" data-o="roi_pct">&mdash;</td><td>%</td></tr><tr><th>Amazon fees per unit (referral + fulfilment + storage)</th><td class="v" data-o="amazon_fees_per_unit">&mdash;</td><td>USD</td></tr><tr><th>All-in cost per unit</th><td class="v" data-o="total_cost_per_unit">&mdash;</td><td>USD</td></tr><tr><th>Break-even sell price</th><td class="v" data-o="breakeven_sell_price">&mdash;</td><td>USD</td></tr><tr><th>Net profit per month</th><td class="v" data-o="monthly_net_profit">&mdash;</td><td>USD</td></tr><tr><th>Landed cash tied up per month</th><td class="v" data-o="cash_tied_per_month">&mdash;</td><td>USD</td></tr><tr><th>What this means</th><td class="v" data-o="verdict">&mdash;</td></tr></table>
<div class="f"><b>Unit economics from your own quote</b><br>Takes your supplier cost, freight per unit, sell price, referral percentage, fulfilment fee, storage, ad spend and return rate and returns net profit per unit, margin, ROI, total Amazon fees per unit and total cost per unit. Nothing is pre-decided for you: every figure in the sum is a field you type.</div><div class="f"><b>FBA or FBM fee model</b><br>One selector changes which fee model the arithmetic uses. On FBA the fulfilment fee and the monthly per-unit storage charge are both applied; on FBM the same fulfilment field becomes your own pick-pack-ship cost and Amazon storage is set to zero. The same product can be scored both ways in two clicks.</div><div class="f"><b>Break-even sell price</b><br>Solves for the sell price at which net profit is exactly zero, taking into account that the referral fee and the ad spend both scale with the price you charge. This is the number to compare against the listings already on the search page before you order.</div><div class="f"><b>Monthly net and cash tied up</b><br>Multiplies the per-unit result by your expected units per month to show monthly net profit, and shows the landed cash (unit cost plus freight) you must have out at that rate — the figure that decides whether you can actually fund the order.</div><div class="f"><b>Remembers what you last typed</b><br>The popup stores the last set of values you entered and restores them the next time you open it, so screening the next supplier quote means changing one or two fields, not re-typing ten. This is the only reason the extension asks for the storage permission; it makes no network request and sends nothing anywhere.</div><div class="f"><b>Offline install, no account</b><br>Runs with no login, no internet connection and no data leaving your browser. To install: open chrome://extensions in the address bar, turn on Developer mode (top right), then click Load unpacked and select this folder. This is a direct-install build rather than a Web Store listing, which is why Developer mode is required; Edge and Brave install it the same three ways. Menu wording differs between Chrome versions and interface languages, so look for the nearest equivalent.</div>
<script>function compute(v){var r=function(x){return Math.round(x*100)/100;};var price=Number(v.sell_price)||0;var cost=Number(v.unit_cost)||0;var freight=Number(v.freight_per_unit)||0;var isFba=(String(v.fulfilment)==='FBM')?0:1;var refPct=Number(v.referral_fee_pct)||0;var fee=Number(v.fulfilment_fee)||0;var stor=isFba?(Number(v.storage_per_unit_month)||0):0;var acosPct=Number(v.ppc_acos_pct)||0;var retPct=Number(v.return_rate_pct)||0;var units=Number(v.units_per_month)||0;var referral=price*refPct/100;var ads=price*acosPct/100;var landed=cost+freight;var retLoss=(retPct/100)*(landed+fee);var amazonFees=referral+fee+stor;var totalCost=landed+amazonFees+ads+retLoss;var net=price-totalCost;var margin=price>0?(net/price)*100:0;var roi=landed>0?(net/landed)*100:0;var d=1-(refPct/100)-(acosPct/100);var be=d>0?(landed+fee+stor+retLoss)/d:0;var monthly=net*units;var cash=landed*units;var verdict;if(net<=0){verdict='Loss of '+r(-net).toFixed(2)+' USD on every unit sold. At these costs the sell price has to reach '+r(be).toFixed(2)+' USD just to break even.';}else if(margin<15){verdict='Thin: '+r(net).toFixed(2)+' USD per unit ('+r(margin).toFixed(1)+'% margin). Anything above '+r(be).toFixed(2)+' USD is profit, so a '+r(net).toFixed(2)+' USD rise in fees or landed cost erases it.';}else{verdict='Clear: '+r(net).toFixed(2)+' USD per unit, '+r(margin).toFixed(1)+'% margin, '+r(roi).toFixed(1)+'% ROI on '+r(landed).toFixed(2)+' USD of cash per unit. Break-even sits at '+r(be).toFixed(2)+' USD.';}return{net_profit_per_unit:r(net),margin_pct:r(margin),roi_pct:r(roi),amazon_fees_per_unit:r(amazonFees),total_cost_per_unit:r(totalCost),breakeven_sell_price:r(be),monthly_net_profit:r(monthly),cash_tied_per_month:r(cash),verdict:verdict};}</script><script>(function(){
function read(){var v={};document.querySelectorAll('[data-k]').forEach(function(el){
var k=el.dataset.k;v[k]=el.type==='checkbox'?el.checked:(el.type==='number'?parseFloat(el.value):el.value);});
return v;}
function paint(){var r={};try{r=compute(read())||{};}catch(e){r={};}
document.querySelectorAll('[data-o]').forEach(function(el){
var x=r[el.dataset.o];el.textContent=(x===undefined||x===null)?'\u2014':String(x);});}
document.addEventListener('input',paint);document.addEventListener('change',paint);paint();
})();</script>
<section data-yj-cta="paid" style="margin:3rem auto;max-width:46rem;padding:1.5rem 1.25rem;border:1px solid #d8dee9;border-radius:12px;background:#fbfcfe;font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif"><h2 style="margin:0 0 .5rem;font-size:1.25rem">Get the complete version <span class="yj-price">$60</span></h2><p style="margin:.25rem 0 1rem;color:#41505f">This page is the working piece. The full pack has everything below.</p><p style="margin:0 0 1rem;color:#41505f">Amazon's published US fee schedule takes a 15% referral fee in most categories plus $39.99/month for a Professional selling account — this works out what is actually left per unit, and the s</p><p style="margin:0 0 1rem;color:#5b6b7c;font-size:.94rem">Source: Amazon Seller Central published US fee schedule — 15% referral fee in most categories and $39.99/month for a Professional selling account. Subscription product-research suites that run this arithmetic for you are billed mo</p><a href="https://getreadystack.com/free?p=amazon-product-research-extension&amp;lang=en" rel="nofollow" style="display:inline-block;padding:.7rem 1.3rem;border-radius:8px;background:#1b64f2;color:#fff;text-decoration:none;font-weight:600">Send it to me</a></section>
<section class="yj-related" style="max-width:920px;margin:56px auto 40px;padding:0 20px"><h2 style="font:600 21px/1.3 system-ui,sans-serif;margin:0 0 6px;color:#1b1f24">More from ReadyStack</h2><p style="font:400 14.5px/1.5 system-ui,sans-serif;margin:0 0 20px;color:#5b6570">Ready-to-use files. One-time download, no subscription.</p><div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px"><a class="yj-rel-c" href="https://getreadystack.com/tools/therapist-website-template"><span class="yj-rel-t">Therapist Website Template — 10-Page Self-Contained HTML Site for a Solo Priva</span><span class="yj-rel-p">$49</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/revit-door-family"><span class="yj-rel-t">Revit Door Family Blocks - 14 ADA-Dimensioned US Commercial Doors (DXF, import</span><span class="yj-rel-p">$100</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/drone-lut-pack"><span class="yj-rel-t">Drone Videographer LUTs for Aerial Real Estate and Travel Footage</span><span class="yj-rel-p">$100</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/wedding-photographer-presets"><span class="yj-rel-t">Wedding Photographer Presets for Full-Day Bridal, Ceremony and Reception Galle</span><span class="yj-rel-p">$44</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/invoice-wordpress-plugin"><span class="yj-rel-t">Vendor Invoice Intake - WordPress Plugin for US Payables</span><span class="yj-rel-p">$60</span></a><a class="yj-rel-c" href="https://getreadystack.com/tools/webflow-restaurant-template"><span class="yj-rel-t">Webflow Restaurant Template — Self-Hosted 9-Page Restaurant Website in Plain H</span><span class="yj-rel-p">$49</span></a></div><style>.yj-rel-c{display:flex;flex-direction:column;gap:8px;padding:15px 16px;border:1px solid #e2e6ea;border-radius:6px;text-decoration:none;background:#fff}.yj-rel-c:hover{border-color:#b9c2cb;background:#fafbfc}.yj-rel-t{font:500 14.5px/1.42 system-ui,sans-serif;color:#1b1f24}.yj-rel-p{font:600 13px system-ui,sans-serif;color:#0a6238}</style></section><!--yj-share-s101--><div style="margin:28px 0 8px;text-align:center"><button id="yjcp" type="button" style="font:inherit;padding:10px 18px;border:1px solid #8884;border-radius:10px;background:transparent;cursor:pointer">Copy link</button></div><script>(function(){var b=document.getElementById("yjcp");if(!b)return;var t=b.textContent;b.addEventListener("click",function(){var u=location.href.split("#")[0];function d(){b.textContent="Link copied";setTimeout(function(){b.textContent=t;},1800);}if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(u).then(d,function(){prompt("",u);});}else{prompt("",u);}});})();</script>
<script data-yj="yj-view-beacon">(function(){try{var p=location.pathname;var k='yjv:'+p;if(sessionStorage.getItem(k))return;sessionStorage.setItem(k,'1');fetch('/api/ev',{method:'POST',keepalive:true,headers:{'Content-Type':'application/json'},body:JSON.stringify({path:p,lang:"en"})}).catch(function(){});}catch(e){}})();</script>
</body></html>