{"id":83,"date":"2026-06-11T14:34:10","date_gmt":"2026-06-11T14:34:10","guid":{"rendered":"https:\/\/www.lockpro.io\/blog\/?page_id=83"},"modified":"2026-06-11T14:34:11","modified_gmt":"2026-06-11T14:34:11","slug":"wholesale-price-calculator","status":"publish","type":"page","link":"https:\/\/www.lockpro.io\/blog\/wholesale-price-calculator\/","title":{"rendered":"Wholesale Price Calculator"},"content":{"rendered":"\n<!-- ============================================================\n  Wholesale Price Calculator \u2014 Blogs by LockPro\n  Paste this ENTIRE block into a WordPress \"Custom HTML\" block.\n  Self-contained: no external scripts, no dependencies.\n  All styles are scoped under #lp-wpc to avoid theme conflicts.\n============================================================ -->\n<div id=\"lp-wpc\">\n  <style>\n    #lp-wpc{--lp-ink:#1a2332;--lp-sub:#5b6878;--lp-line:#e3e7ee;--lp-bg:#f7f9fc;--lp-acc:#1f6f5c;--lp-acc-soft:#e6f2ee;--lp-retail:#3b5bdb;--lp-retail-soft:#e8edfb;--lp-cost:#9aa5b5;\n      font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\n      color:var(--lp-ink);max-width:680px;margin:2rem auto;border:1px solid var(--lp-line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.06)}\n    #lp-wpc *{box-sizing:border-box;margin:0;padding:0}\n    #lp-wpc .lp-head{padding:20px 24px 16px;border-bottom:1px solid var(--lp-line)}\n    #lp-wpc .lp-head h3{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}\n    #lp-wpc .lp-head p{font-size:.85rem;color:var(--lp-sub);margin-top:4px}\n    #lp-wpc .lp-body{padding:20px 24px}\n    #lp-wpc .lp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}\n    @media(max-width:520px){#lp-wpc .lp-grid{grid-template-columns:1fr}}\n    #lp-wpc label{display:block;font-size:.78rem;font-weight:600;color:var(--lp-sub);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}\n    #lp-wpc .lp-field{position:relative}\n    #lp-wpc .lp-field .lp-sym{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--lp-sub);font-size:.95rem;pointer-events:none}\n    #lp-wpc input[type=number]{width:100%;padding:11px 12px 11px 28px;font-size:1rem;border:1px solid var(--lp-line);border-radius:8px;background:var(--lp-bg);color:var(--lp-ink);-moz-appearance:textfield}\n    #lp-wpc input[type=number]::-webkit-outer-spin-button,#lp-wpc input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}\n    #lp-wpc input[type=number]:focus{outline:2px solid var(--lp-acc);outline-offset:1px;border-color:var(--lp-acc);background:#fff}\n    #lp-wpc .lp-slider-row{margin-top:18px}\n    #lp-wpc .lp-slider-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}\n    #lp-wpc .lp-slider-top output{font-size:1rem;font-weight:700;color:var(--lp-acc);font-variant-numeric:tabular-nums}\n    #lp-wpc input[type=range]{width:100%;accent-color:var(--lp-acc);height:24px;cursor:pointer}\n    #lp-wpc input[type=range]:focus-visible{outline:2px solid var(--lp-acc);outline-offset:2px;border-radius:4px}\n    \/* Price ladder *\/\n    #lp-wpc .lp-ladder{margin-top:22px;background:var(--lp-bg);border:1px solid var(--lp-line);border-radius:10px;padding:16px}\n    #lp-wpc .lp-ladder-title{font-size:.78rem;font-weight:600;color:var(--lp-sub);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px}\n    #lp-wpc .lp-bar{display:flex;height:38px;border-radius:8px;overflow:hidden;border:1px solid var(--lp-line)}\n    #lp-wpc .lp-seg{display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;transition:width .25s ease;min-width:0}\n    #lp-wpc .lp-seg.cost{background:var(--lp-cost)}\n    #lp-wpc .lp-seg.wmargin{background:var(--lp-acc)}\n    #lp-wpc .lp-seg.rmargin{background:var(--lp-retail)}\n    #lp-wpc .lp-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:.78rem;color:var(--lp-sub)}\n    #lp-wpc .lp-legend span{display:inline-flex;align-items:center;gap:6px}\n    #lp-wpc .lp-dot{width:10px;height:10px;border-radius:3px;display:inline-block}\n    \/* Results *\/\n    #lp-wpc .lp-results{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:18px}\n    @media(max-width:520px){#lp-wpc .lp-results{grid-template-columns:1fr}}\n    #lp-wpc .lp-card{border:1px solid var(--lp-line);border-radius:10px;padding:14px 12px;text-align:center}\n    #lp-wpc .lp-card.hero{background:var(--lp-acc-soft);border-color:var(--lp-acc)}\n    #lp-wpc .lp-card .lp-num{font-size:1.45rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}\n    #lp-wpc .lp-card.hero .lp-num{color:var(--lp-acc)}\n    #lp-wpc .lp-card .lp-cap{font-size:.72rem;color:var(--lp-sub);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:4px}\n    #lp-wpc .lp-card .lp-sub2{font-size:.75rem;color:var(--lp-sub);margin-top:2px}\n    #lp-wpc .lp-warn{margin-top:12px;font-size:.82rem;background:#fdf3e7;border:1px solid #f2d4a7;color:#8a5a17;border-radius:8px;padding:10px 12px;display:none}\n    \/* Tiers *\/\n    #lp-wpc .lp-tiers{margin-top:20px}\n    #lp-wpc table.lp-tier-table{width:100%;border-collapse:collapse;font-size:.85rem}\n    #lp-wpc table.lp-tier-table th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--lp-sub);padding:8px 10px;border-bottom:1px solid var(--lp-line)}\n    #lp-wpc table.lp-tier-table td{padding:9px 10px;border-bottom:1px solid var(--lp-line);font-variant-numeric:tabular-nums}\n    #lp-wpc table.lp-tier-table tr:last-child td{border-bottom:none}\n    #lp-wpc .lp-tag{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:99px;background:var(--lp-retail-soft);color:var(--lp-retail)}\n    \/* Footer CTA *\/\n    #lp-wpc .lp-foot{padding:14px 24px;background:var(--lp-bg);border-top:1px solid var(--lp-line);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}\n    #lp-wpc .lp-foot p{font-size:.82rem;color:var(--lp-sub)}\n    #lp-wpc .lp-foot a{font-size:.84rem;font-weight:700;color:#fff;background:var(--lp-acc);padding:9px 16px;border-radius:8px;text-decoration:none;white-space:nowrap}\n    #lp-wpc .lp-foot a:hover{background:#185a4b}\n    @media(prefers-reduced-motion:reduce){#lp-wpc .lp-seg{transition:none}}\n  <\/style>\n\n  <div class=\"lp-head\">\n    <h3>Wholesale Price Calculator<\/h3>\n    <p>Enter your cost and retail price to get a suggested wholesale price, margins, and volume-discount tiers.<\/p>\n  <\/div>\n\n  <div class=\"lp-body\">\n    <div class=\"lp-grid\">\n      <div>\n        <label for=\"lp-cost\">Cost per unit (COGS)<\/label>\n        <div class=\"lp-field\"><span class=\"lp-sym\">$<\/span>\n          <input type=\"number\" id=\"lp-cost\" inputmode=\"decimal\" min=\"0\" step=\"0.01\" value=\"10\" aria-describedby=\"lp-warn\">\n        <\/div>\n      <\/div>\n      <div>\n        <label for=\"lp-retail\">Retail price<\/label>\n        <div class=\"lp-field\"><span class=\"lp-sym\">$<\/span>\n          <input type=\"number\" id=\"lp-retail\" inputmode=\"decimal\" min=\"0\" step=\"0.01\" value=\"40\">\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"lp-slider-row\">\n      <div class=\"lp-slider-top\">\n        <label for=\"lp-margin\" style=\"margin:0\">Your wholesale margin<\/label>\n        <output id=\"lp-margin-out\" for=\"lp-margin\">50%<\/output>\n      <\/div>\n      <input type=\"range\" id=\"lp-margin\" min=\"20\" max=\"80\" step=\"1\" value=\"50\"\n        aria-label=\"Wholesale margin percentage\">\n    <\/div>\n\n    <div class=\"lp-ladder\" aria-hidden=\"false\">\n      <div class=\"lp-ladder-title\">Where the money goes (per unit, at retail)<\/div>\n      <div class=\"lp-bar\" role=\"img\" aria-label=\"Price breakdown bar: cost, your wholesale profit, retailer profit\">\n        <div class=\"lp-seg cost\" id=\"lp-seg-cost\">Cost<\/div>\n        <div class=\"lp-seg wmargin\" id=\"lp-seg-wm\">You<\/div>\n        <div class=\"lp-seg rmargin\" id=\"lp-seg-rm\">Retailer<\/div>\n      <\/div>\n      <div class=\"lp-legend\">\n        <span><i class=\"lp-dot\" style=\"background:var(--lp-cost)\"><\/i>Your cost <b id=\"lp-leg-cost\">$10.00<\/b><\/span>\n        <span><i class=\"lp-dot\" style=\"background:var(--lp-acc)\"><\/i>Your profit <b id=\"lp-leg-wm\">$10.00<\/b><\/span>\n        <span><i class=\"lp-dot\" style=\"background:var(--lp-retail)\"><\/i>Retailer margin <b id=\"lp-leg-rm\">$20.00<\/b><\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"lp-results\">\n      <div class=\"lp-card hero\">\n        <div class=\"lp-num\" id=\"lp-r-wholesale\">$20.00<\/div>\n        <div class=\"lp-cap\">Wholesale price<\/div>\n        <div class=\"lp-sub2\" id=\"lp-r-wprofit\">$10.00 profit \/ unit<\/div>\n      <\/div>\n      <div class=\"lp-card\">\n        <div class=\"lp-num\" id=\"lp-r-rmargin\">50%<\/div>\n        <div class=\"lp-cap\">Retailer margin<\/div>\n        <div class=\"lp-sub2\">off your suggested retail<\/div>\n      <\/div>\n      <div class=\"lp-card\">\n        <div class=\"lp-num\" id=\"lp-r-markup\">2.0\u00d7<\/div>\n        <div class=\"lp-cap\">Retail markup<\/div>\n        <div class=\"lp-sub2\">retail \u00f7 wholesale<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"lp-warn\" id=\"lp-warn\" role=\"alert\"><\/div>\n\n    <div class=\"lp-tiers\">\n      <div class=\"lp-ladder-title\">Suggested volume-discount tiers<\/div>\n      <table class=\"lp-tier-table\">\n        <thead><tr><th>Order quantity<\/th><th>Discount<\/th><th>Price \/ unit<\/th><th>Your profit \/ unit<\/th><\/tr><\/thead>\n        <tbody id=\"lp-tier-body\"><\/tbody>\n      <\/table>\n    <\/div>\n  <\/div>\n\n  <div class=\"lp-foot\">\n    <p>Selling wholesale on Shopify? Hide these prices from retail visitors with LockPro.<\/p>\n    <a href=\"https:\/\/apps.shopify.com\/lockpro-b2b-access-control?utm_source=blog&#038;utm_medium=tool&#038;utm_campaign=wholesale-calculator\" rel=\"noopener\" target=\"_blank\">Try LockPro free<\/a>\n  <\/div>\n\n  <script>\n  (function(){\n    var $=function(id){return document.getElementById(id)};\n    var elCost=$('lp-cost'),elRetail=$('lp-retail'),elMargin=$('lp-margin');\n    var fmt=function(n){return '$'+(isFinite(n)?n:0).toLocaleString('en-US',{minimumFractionDigits:2,maximumFractionDigits:2})};\n    var tiers=[[1,0],[12,5],[48,10],[100,15]];\n\n    function calc(){\n      var cost=parseFloat(elCost.value)||0;\n      var retail=parseFloat(elRetail.value)||0;\n      var mPct=parseInt(elMargin.value,10)\/100;\n      $('lp-margin-out').textContent=Math.round(mPct*100)+'%';\n\n      \/\/ wholesale price from desired wholesale margin: price = cost \/ (1 - margin)\n      var wholesale=mPct<1?cost\/(1-mPct):0;\n      var wProfit=wholesale-cost;\n      var rMarginAbs=retail-wholesale;\n      var rMarginPct=retail>0?(rMarginAbs\/retail)*100:0;\n      var markup=wholesale>0?retail\/wholesale:0;\n\n      $('lp-r-wholesale').textContent=fmt(wholesale);\n      $('lp-r-wprofit').textContent=fmt(wProfit)+' profit \/ unit';\n      $('lp-r-rmargin').textContent=Math.round(rMarginPct)+'%';\n      $('lp-r-markup').textContent=(isFinite(markup)?markup.toFixed(1):'0.0')+'\\u00d7';\n\n      \/\/ ladder\n      var total=Math.max(retail,wholesale,cost,0.01);\n      var segCost=Math.max(cost,0), segWm=Math.max(wProfit,0), segRm=Math.max(rMarginAbs,0);\n      var sum=segCost+segWm+segRm; if(sum<=0){sum=1}\n      $('lp-seg-cost').style.width=(segCost\/sum*100)+'%';\n      $('lp-seg-wm').style.width=(segWm\/sum*100)+'%';\n      $('lp-seg-rm').style.width=(segRm\/sum*100)+'%';\n      $('lp-leg-cost').textContent=fmt(cost);\n      $('lp-leg-wm').textContent=fmt(wProfit);\n      $('lp-leg-rm').textContent=fmt(rMarginAbs);\n\n      \/\/ warnings\n      var warn=$('lp-warn'),msg='';\n      if(retail>0&&wholesale>0&&rMarginPct<30){msg='Heads up: retailers usually expect a 40\\u201360% margin. At this wholesale price they only get '+Math.round(rMarginPct)+'% \\u2014 consider raising your retail price or lowering your wholesale margin.'}\n      if(wholesale>retail&&retail>0){msg='Your wholesale price is higher than your retail price \\u2014 no retailer can resell at a profit. Lower your wholesale margin or raise retail.'}\n      warn.style.display=msg?'block':'none';warn.textContent=msg;\n\n      \/\/ tiers\n      var rows='';\n      for(var i=0;i<tiers.length;i++){\n        var q=tiers[i][0],d=tiers[i][1];\n        var p=wholesale*(1-d\/100), pr=p-cost;\n        rows+='<tr><td>'+(q===1?'1\\u201311 units':q+'+ units')+'<\/td>'\n          +'<td>'+(d===0?'<span class=\"lp-tag\">Base<\/span>':d+'% off')+'<\/td>'\n          +'<td>'+fmt(p)+'<\/td><td>'+fmt(pr)+'<\/td><\/tr>';\n      }\n      $('lp-tier-body').innerHTML=rows;\n    }\n    ['input','change'].forEach(function(ev){\n      elCost.addEventListener(ev,calc);elRetail.addEventListener(ev,calc);elMargin.addEventListener(ev,calc);\n    });\n    calc();\n  })();\n  <\/script>\n<\/div>\n<!-- ================= end Wholesale Price Calculator ================= -->\n\n","protected":false},"excerpt":{"rendered":"<p>Wholesale Price Calculator Enter your cost and retail price to get a suggested wholesale price, margins, and volume-discount tiers. Cost per unit (COGS) $ Retail price $ Your wholesale margin 50% Where the money goes (per unit, at retail) Cost You Retailer Your cost $10.00 Your profit $10.00 Retailer margin $20.00 $20.00 Wholesale price $10.00&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-83","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.lockpro.io\/blog\/wp-json\/wp\/v2\/pages\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lockpro.io\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lockpro.io\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lockpro.io\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lockpro.io\/blog\/wp-json\/wp\/v2\/comments?post=83"}],"version-history":[{"count":1,"href":"https:\/\/www.lockpro.io\/blog\/wp-json\/wp\/v2\/pages\/83\/revisions"}],"predecessor-version":[{"id":84,"href":"https:\/\/www.lockpro.io\/blog\/wp-json\/wp\/v2\/pages\/83\/revisions\/84"}],"wp:attachment":[{"href":"https:\/\/www.lockpro.io\/blog\/wp-json\/wp\/v2\/media?parent=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}