{"id":15293,"date":"2026-07-29T15:19:23","date_gmt":"2026-07-29T21:19:23","guid":{"rendered":"https:\/\/wurthbaersupply.com\/blog\/?p=15293"},"modified":"2026-08-03T11:37:55","modified_gmt":"2026-08-03T17:37:55","slug":"cabinet-material-calculator","status":"publish","type":"post","link":"https:\/\/wurthbaersupply.com\/blog\/2026\/07\/cabinet-material-calculator","title":{"rendered":"Cabinet Material Calculator by W\u00fcrth Baer Supply"},"content":{"rendered":"\n<p class=\"has-text-align-center wp-block-paragraph\">Estimate <a href=\"https:\/\/wurthbaersupply.com\/category\/1951\/board-panel-products\" target=\"_blank\" rel=\"noopener\" title=\"\">sheet goods<\/a> for your job in seconds!<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Enter your Cabinet&#8217;s Width, Depth, and Height<\/li>\n\n\n\n<li>Set the Quantity<\/li>\n\n\n\n<li>Pick from the Plywood and Melamine Sizes we Stock at <a href=\"https:\/\/wurthbaersupply.com\" target=\"_blank\" rel=\"noopener\" title=\"\">W\u00fcrth Baer Supply<\/a><\/li>\n<\/ol>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">The calculator counts every part of the carcass, applies your waste factor, and rounds up to full sheets so your order matches the cut list, complete with board square footage and material cost before you buy.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-fe48e5de wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/wurthbaersupply.com\/category\/1951\/board-panel-products\" target=\"_blank\" rel=\"noreferrer noopener\">Shop Board Panel Products<\/a><\/div>\n<\/div>\n\n\n\n<meta charset=\"UTF-8\"\/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\/>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\/>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\"\/>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Space+Grotesk:wght@400;500;600;700&amp;family=JetBrains+Mono:wght@400;500;700&amp;display=swap\" rel=\"stylesheet\"\/>\n<style>\n  :root{\n    --paper:#F7F4ED;\n    --card:#FFFFFF;\n    --ink:#1C221E;\n    --ink-soft:#5A635B;\n    --line:#E2DCCF;\n    --line-strong:#C9C2B2;\n    --pine:#2E5D3B;\n    --pine-deep:#204029;\n    --pencil:#B8791A;\n    --steel:#F1EEE6;\n    --shadow:rgba(28,34,30,.08);\n    --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;\n    --sans:'Space Grotesk',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;\n  }\n  *{box-sizing:border-box}\n  html{-webkit-text-size-adjust:100%}\n  body{\n    margin:0;\n    font-family:var(--sans);\n    color:var(--ink);\n    background:\n      linear-gradient(var(--line) 1px,transparent 1px) 0 0\/100% 28px,\n      var(--paper);\n    line-height:1.5;\n  }\n  .wrap{max-width:960px;margin:0 auto;padding:28px 20px 64px}\n\n  \/* Header *\/\n  header{margin-bottom:24px}\n  .eyebrow{\n    font-family:var(--mono);\n    font-size:12px;letter-spacing:.18em;text-transform:uppercase;\n    color:var(--pine);font-weight:500;margin:0 0 10px;\n    display:flex;align-items:center;gap:8px;\n  }\n  .eyebrow::before{content:\"\";width:26px;height:2px;background:var(--pencil)}\n  h1{\n    font-size:clamp(28px,6vw,44px);line-height:1.02;letter-spacing:-.02em;\n    margin:0 0 10px;font-weight:700;\n  }\n  .lede{font-size:clamp(15px,3.5vw,18px);color:var(--ink-soft);max-width:56ch;margin:0}\n\n  \/* Calculator shell *\/\n  .calc{\n    display:grid;grid-template-columns:1fr;gap:18px;margin-top:26px;\n  }\n  @media(min-width:760px){.calc{grid-template-columns:1fr 1.05fr;align-items:start}}\n\n  .card{\n    background:var(--card);border:1px solid var(--line);border-radius:14px;\n    box-shadow:0 1px 0 var(--shadow),0 12px 30px -22px var(--shadow);\n  }\n  .card-head{\n    padding:16px 18px;border-bottom:1px solid var(--line);\n    display:flex;align-items:baseline;justify-content:space-between;gap:8px;\n  }\n  .card-head h2{font-size:14px;letter-spacing:.02em;margin:0;font-weight:600}\n  .card-head .tag{font-family:var(--mono);font-size:11px;color:var(--ink-soft);letter-spacing:.06em}\n\n  \/* Inputs *\/\n  .fields{padding:16px 18px 20px;display:grid;gap:14px}\n  .field label{\n    display:block;font-size:12px;font-weight:600;letter-spacing:.02em;\n    margin-bottom:6px;color:var(--ink);\n  }\n  .field .hint{color:var(--ink-soft);font-weight:400}\n  .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n  .row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}\n  input,select{\n    width:100%;font-family:var(--mono);font-size:15px;color:var(--ink);\n    background:var(--steel);border:1px solid var(--line-strong);border-radius:9px;\n    padding:11px 12px;appearance:none;-webkit-appearance:none;\n  }\n  input:focus,select:focus{outline:2px solid var(--pine);outline-offset:1px;background:#fff}\n  select{background-image:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%232E5D3B' stroke-width='2'><\/path><\/svg>\");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}\n  .prefix{position:relative}\n  .prefix span{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-family:var(--mono);color:var(--ink-soft);font-size:15px;pointer-events:none}\n  .prefix input{padding-left:26px}\n\n  \/* Diagram *\/\n  .diagram{padding:18px;display:flex;flex-direction:column;align-items:center;gap:10px}\n  .diagram svg{width:100%;max-width:280px;height:auto}\n  .diagram .cap{font-family:var(--mono);font-size:11px;color:var(--ink-soft);letter-spacing:.04em}\n\n  \/* Results *\/\n  .results .card-head{background:var(--pine-deep);border-color:var(--pine-deep);border-radius:14px 14px 0 0}\n  .results .card-head h2,.results .card-head .tag{color:#EDF3EC}\n  .headline{padding:20px 18px 6px;display:grid;grid-template-columns:1fr 1fr;gap:14px}\n  .metric .k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:4px}\n  .metric .v{font-family:var(--mono);font-size:clamp(26px,7vw,34px);font-weight:700;line-height:1;color:var(--pine)}\n  .metric .v small{font-size:14px;font-weight:500;color:var(--ink-soft)}\n  .metric.cost .v{color:var(--pencil)}\n\n  .subtotals{padding:8px 18px 4px;display:grid;gap:0}\n  .subtotal{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-top:1px dashed var(--line-strong);font-size:13px}\n  .subtotal:first-child{border-top:none}\n  .subtotal .lbl{color:var(--ink-soft)}\n  .subtotal .num{font-family:var(--mono);font-weight:500}\n\n  \/* Breakdown table *\/\n  .breakdown{padding:6px 18px 18px}\n  .breakdown h3{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:14px 0 8px}\n  table{width:100%;border-collapse:collapse;font-size:13px}\n  th,td{text-align:right;padding:8px 6px;border-bottom:1px solid var(--line)}\n  th:first-child,td:first-child{text-align:left}\n  thead th{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;border-bottom:1px solid var(--line-strong)}\n  tbody td{font-family:var(--mono)}\n  tbody td:first-child{font-family:var(--sans);font-weight:500}\n  tfoot td{font-family:var(--mono);font-weight:700;border-top:2px solid var(--line-strong);border-bottom:none;padding-top:10px}\n\n  \/* Working \/ math *\/\n  .working{\n    margin:0 18px 18px;background:var(--steel);border:1px solid var(--line);\n    border-radius:10px;padding:14px 16px;\n  }\n  .working h3{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pine);margin:0 0 10px;font-weight:600}\n  .working ol{margin:0;padding-left:18px;display:grid;gap:7px}\n  .working li{font-family:var(--mono);font-size:12.5px;color:var(--ink);line-height:1.5}\n  .working li b{color:var(--pine);font-weight:700}\n\n  \/* FAQ *\/\n  .faq{margin-top:46px}\n  .faq .eyebrow{margin-bottom:16px}\n  .faq h2{font-size:clamp(22px,5vw,30px);letter-spacing:-.01em;margin:0 0 20px}\n  details{border-bottom:1px solid var(--line-strong);padding:4px 0}\n  summary{\n    cursor:pointer;list-style:none;font-weight:600;font-size:16px;\n    padding:14px 34px 14px 0;position:relative;\n  }\n  summary::-webkit-details-marker{display:none}\n  summary::after{content:\"+\";position:absolute;right:4px;top:12px;font-family:var(--mono);font-size:22px;color:var(--pine);transition:transform .2s}\n  details[open] summary::after{transform:rotate(45deg)}\n  details p{margin:0 0 16px;color:var(--ink-soft);font-size:15px;max-width:64ch}\n  details p b{color:var(--ink)}\n\n  footer{margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-soft);font-family:var(--mono)}\n\n  @media(prefers-reduced-motion:reduce){*{transition:none!important}}\n<\/style>\n\n\n<div class=\"wrap\">\n\n  <header>\n    <p class=\"eyebrow\">Sheet goods estimator<\/p>\n    <h2>Cabinet Material Calculator<\/h2>\n    <p class=\"lede\">Enter your carcass dimensions and get the plywood or melamine sheets, board square footage, and cost to build a frameless base cabinet.<\/p>\n  <\/header>\n\n  <div class=\"calc\">\n\n    <!-- INPUTS -->\n    <section class=\"card\" aria-label=\"Inputs\">\n      <div class=\"card-head\"><h2>Your cabinet<\/h2><span class=\"tag\">inches<\/span><\/div>\n      <div class=\"fields\">\n        <div class=\"row-3\">\n          <div class=\"field\">\n            <label for=\"w\">Width<\/label>\n            <input id=\"w\" type=\"number\" inputmode=\"decimal\" min=\"1\" step=\"0.25\" value=\"30\"\/>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"d\">Depth<\/label>\n            <input id=\"d\" type=\"number\" inputmode=\"decimal\" min=\"1\" step=\"0.25\" value=\"24\"\/>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"h\">Height<\/label>\n            <input id=\"h\" type=\"number\" inputmode=\"decimal\" min=\"1\" step=\"0.25\" value=\"30\"\/>\n          <\/div>\n        <\/div>\n\n        <div class=\"field\">\n          <label for=\"qty\">Number of cabinets <span class=\"hint\">(identical)<\/span><\/label>\n          <input id=\"qty\" type=\"number\" inputmode=\"numeric\" min=\"1\" step=\"1\" value=\"1\"\/>\n        <\/div>\n\n        <div class=\"row\">\n          <div class=\"field\">\n            <label for=\"sheet\">Sheet size <span class=\"hint\">(Baer stock)<\/span><\/label>\n            <select id=\"sheet\">\n              <option value=\"32\">48 x 96 in, 4&#215;8 (32.00 sq ft)<\/option>\n              <option value=\"33.01\" selected=\"\">49 x 97 in, oversize 4&#215;8 (33.01 sq ft)<\/option>\n              <option value=\"40\">48 x 120 in, 4&#215;10 (40.00 sq ft)<\/option>\n              <option value=\"41.09\">61 x 97 in, 5&#215;8 (41.09 sq ft)<\/option>\n              <option value=\"46.17\">61 x 109 in, 5&#215;9 (46.17 sq ft)<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"waste\">Waste factor<\/label>\n            <div class=\"prefix\"><input id=\"waste\" type=\"number\" inputmode=\"decimal\" min=\"0\" step=\"1\" value=\"15\"\/><span style=\"left:auto;right:12px\">%<\/span><\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"field\">\n          <label for=\"price\">Price per sheet<\/label>\n          <div class=\"prefix\"><span>$<\/span><input id=\"price\" type=\"number\" inputmode=\"decimal\" min=\"0\" step=\"0.01\" value=\"65\"\/><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"diagram\">\n        <svg id=\"cabSvg\" viewBox=\"0 0 260 220\" role=\"img\" aria-label=\"Scaled cabinet diagram\"><\/svg>\n        <span class=\"cap\" id=\"dimCap\">30 W x 24 D x 30 H<\/span>\n      <\/div>\n    <\/section>\n\n    <!-- RESULTS -->\n    <section class=\"card results\" aria-label=\"Results\" aria-live=\"polite\">\n      <div class=\"card-head\"><h2>Materials needed<\/h2><span class=\"tag\" id=\"perTag\">per 1 cabinet<\/span><\/div>\n\n      <div class=\"headline\">\n        <div class=\"metric\">\n          <div class=\"k\">Sheets required<\/div>\n          <div class=\"v\" id=\"rSheets\">1<\/div>\n        <\/div>\n        <div class=\"metric cost\">\n          <div class=\"k\">Estimated cost<\/div>\n          <div class=\"v\" id=\"rCost\">$65<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"subtotals\">\n        <div class=\"subtotal\"><span class=\"lbl\">Board area, before waste<\/span><span class=\"num\" id=\"rBefore\">22.92 sq ft<\/span><\/div>\n        <div class=\"subtotal\"><span class=\"lbl\">Board area, after waste<\/span><span class=\"num\" id=\"rAfter\">26.35 sq ft<\/span><\/div>\n        <div class=\"subtotal\"><span class=\"lbl\">Sheet coverage<\/span><span class=\"num\" id=\"rCover\">32.00 sq ft each<\/span><\/div>\n      <\/div>\n\n      <div class=\"breakdown\">\n        <h3>Cut list, per cabinet<\/h3>\n        <table>\n          <thead>\n            <tr><th>Part<\/th><th>Qty<\/th><th>Size (in)<\/th><th>Sq ft<\/th><\/tr>\n          <\/thead>\n          <tbody id=\"partRows\"><\/tbody>\n          <tfoot>\n            <tr><td>Total per cabinet<\/td><td id=\"fQty\">6<\/td><td><\/td><td id=\"fSqft\">22.92<\/td><\/tr>\n          <\/tfoot>\n        <\/table>\n      <\/div>\n\n      <div class=\"working\">\n        <h3>How this is figured<\/h3>\n        <ol id=\"workSteps\"><\/ol>\n      <\/div>\n    <\/section>\n  <\/div>\n\n  <!-- FAQ -->\n  <section class=\"faq\">\n    <p class=\"eyebrow\">Common questions<\/p>\n    <h2>Plywood for cabinets, answered<\/h2>\n\n    <details open=\"\">\n      <summary>How much plywood do I need to build a cabinet?<\/summary>\n      <p>A standard frameless base cabinet carcass uses about <b>20 to 24 square feet<\/b> of sheet goods. That covers two side gables, a back panel, a bottom deck, and two top stretchers. At a common 30 W x 24 D x 30 H size, the raw part area works out to roughly 23 square feet, or about 26 square feet once you add a 15% waste factor for the saw kerf, offcuts, and grain matching. This calculator adds up every part from your exact dimensions so the number matches the cabinet you are actually building.<\/p>\n    <\/details>\n\n    <details>\n      <summary>How many sheets of plywood per base cabinet?<\/summary>\n      <p>Most single base cabinets take <b>one 4 x 8 sheet<\/b> (32 square feet) for the carcass, with enough left over for shelves or a couple of drawer boxes. Wider cabinets, taller pantry units, or runs of several cabinets push you into a second sheet. Because you cannot buy a partial sheet, the calculator rounds up to the next full sheet, so a job needing 33 square feet lands at two sheets, not 1.03.<\/p>\n    <\/details>\n\n    <details>\n      <summary>What parts are counted in the estimate?<\/summary>\n      <p>Per cabinet: <b>two side gables<\/b> (depth x height), <b>one back panel<\/b> (width x height), <b>one bottom deck<\/b> (width x depth), and <b>two top stretchers<\/b> (width x 4 inches). Doors, drawer fronts, adjustable shelves, and face frames are not included, since those vary by design. Add them to your waste factor or run a second pass with their dimensions if you want them covered.<\/p>\n    <\/details>\n\n    <details>\n      <summary>What waste factor should I use?<\/summary>\n      <p>Start at <b>15%<\/b> for a clean plywood or melamine build with simple layouts. Bump it to 20% or more when you are grain-matching veneer, nesting odd sizes, or cutting a large run where offcuts stack up. Drop it toward 10% only if you nest your cuts tightly and reuse drops on other parts.<\/p>\n    <\/details>\n  <\/section>\n\n  <footer>\n    Estimates are for the carcass only and exclude doors, drawer fronts, and shelves. Verify against your own cut list before buying.\n  <\/footer>\n<\/div>\n\n<script>\n(function(){\n  var $=function(id){return document.getElementById(id)};\n  var ids=['w','d','h','qty','sheet','waste','price'];\n  var fmt=function(n,dp){return n.toLocaleString('en-US',{minimumFractionDigits:dp,maximumFractionDigits:dp})};\n  var money=function(n){return '$'+n.toLocaleString('en-US',{minimumFractionDigits:0,maximumFractionDigits:0})};\n\n  function num(id,min){var v=parseFloat($(id).value);if(isNaN(v)||v<min)v=min;return v;}\n\n  function compute(){\n    var w=num('w',0.01), d=num('d',0.01), h=num('h',0.01);\n    var qty=Math.max(1,Math.round(num('qty',1)));\n    var sheetSqft=parseFloat($('sheet').value);\n    var waste=Math.max(0,num('waste',0));\n    var price=Math.max(0,num('price',0));\n\n    \/\/ Parts (square inches), per cabinet\n    var parts=[\n      {name:'Side gables', q:2, a:d*h,  size:fmt(d,2).replace(\/\\.00$\/,'')+' x '+fmt(h,2).replace(\/\\.00$\/,'')},\n      {name:'Back panel',  q:1, a:w*h,  size:fmt(w,2).replace(\/\\.00$\/,'')+' x '+fmt(h,2).replace(\/\\.00$\/,'')},\n      {name:'Bottom deck', q:1, a:w*d,  size:fmt(w,2).replace(\/\\.00$\/,'')+' x '+fmt(d,2).replace(\/\\.00$\/,'')},\n      {name:'Top stretchers', q:2, a:w*4, size:fmt(w,2).replace(\/\\.00$\/,'')+' x 4'}\n    ];\n\n    var sqInPer=0, partCount=0;\n    parts.forEach(function(p){ p.sqft=(p.q*p.a)\/144; sqInPer+=p.q*p.a; partCount+=p.q; });\n    var sqftPer=sqInPer\/144;\n    var totalBefore=sqftPer*qty;\n    var totalAfter=totalBefore*(1+waste\/100);\n    var sheets=Math.max(1,Math.ceil(totalAfter\/sheetSqft));\n    var cost=sheets*price;\n\n    \/\/ Render cut list rows\n    var rows='';\n    parts.forEach(function(p){\n      rows+='<tr><td>'+p.name+'<\/td><td>'+p.q+'<\/td><td>'+p.size+'<\/td><td>'+fmt(p.sqft,2)+'<\/td><\/tr>';\n    });\n    $('partRows').innerHTML=rows;\n    $('fQty').textContent=partCount;\n    $('fSqft').textContent=fmt(sqftPer,2);\n\n    \/\/ Headline\n    $('rSheets').textContent=sheets;\n    $('rCost').textContent=money(cost);\n    $('rBefore').textContent=fmt(totalBefore,2)+' sq ft';\n    $('rAfter').textContent=fmt(totalAfter,2)+' sq ft';\n    $('rCover').textContent=fmt(sheetSqft,2)+' sq ft each';\n    $('perTag').textContent='per '+qty+' cabinet'+(qty>1?'s':'');\n    $('dimCap').textContent=fmt(w,2).replace(\/\\.00$\/,'')+' W x '+fmt(d,2).replace(\/\\.00$\/,'')+' D x '+fmt(h,2).replace(\/\\.00$\/,'')+' H';\n\n    \/\/ Working steps\n    var steps=[\n      'Add every part: <b>'+fmt(sqInPer,0)+' sq in<\/b> per cabinet.',\n      'Convert to square feet: '+fmt(sqInPer,0)+' \/ 144 = <b>'+fmt(sqftPer,2)+' sq ft<\/b>.',\n      'Times '+qty+' cabinet'+(qty>1?'s':'')+': <b>'+fmt(totalBefore,2)+' sq ft<\/b> before waste.',\n      'Add '+fmt(waste,0)+'% waste: '+fmt(totalBefore,2)+' x '+fmt(1+waste\/100,2)+' = <b>'+fmt(totalAfter,2)+' sq ft<\/b>.',\n      'Divide by '+fmt(sheetSqft,0)+' sq ft\/sheet and round up: <b>'+sheets+' sheet'+(sheets>1?'s':'')+'<\/b>.',\n      'Cost: '+sheets+' x '+money(price)+' = <b>'+money(cost)+'<\/b>.'\n    ];\n    $('workSteps').innerHTML=steps.map(function(s){return '<li>'+s+'<\/li>'}).join('');\n\n    drawCab(w,d,h);\n  }\n\n  \/\/ Proportional cabinet drawing (isometric-ish box) that scales with W\/D\/H ratios\n  function drawCab(w,d,h){\n    var maxDim=Math.max(w,d,h);\n    var scale=110\/maxDim;\n    var W=w*scale, H=h*scale, D=d*scale*0.55;\n    var x=70, y=200; \/\/ bottom-left front\n    var top=y-H;\n    var svg=\n      '<defs><lineargradient id=\"g\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">'+\n      '<stop offset=\"0\" stop-color=\"#FBFAF6\"><\/stop><stop offset=\"1\" stop-color=\"#EDEAE0\"><\/stop><\/lineargradient><\/defs>'+\n      \/\/ right side\n      '<polygon points=\"'+(x+W)+','+top+' '+(x+W+D)+','+(top-D)+' '+(x+W+D)+','+(y-D)+' '+(x+W)+','+y+'\" fill=\"#E4DFD2\" stroke=\"#2E5D3B\" stroke-width=\"1.4\"><\/polygon>'+\n      \/\/ top\n      '<polygon points=\"'+x+','+top+' '+(x+D)+','+(top-D)+' '+(x+W+D)+','+(top-D)+' '+(x+W)+','+top+'\" fill=\"#F2EFE7\" stroke=\"#2E5D3B\" stroke-width=\"1.4\"><\/polygon>'+\n      \/\/ front (open box front frame)\n      '<rect x=\"'+x+'\" y=\"'+top+'\" width=\"'+W+'\" height=\"'+H+'\" fill=\"url(#g)\" stroke=\"#2E5D3B\" stroke-width=\"1.6\"><\/rect>'+\n      \/\/ interior opening hint\n      '<rect x=\"'+(x+6)+'\" y=\"'+(top+6)+'\" width=\"'+Math.max(0,W-12)+'\" height=\"'+Math.max(0,H-18)+'\" fill=\"none\" stroke=\"#C9C2B2\" stroke-width=\"1\" stroke-dasharray=\"3 3\"><\/rect>'+\n      \/\/ toe kick\n      '<rect x=\"'+(x+4)+'\" y=\"'+(y-8)+'\" width=\"'+Math.max(0,W-8)+'\" height=\"8\" fill=\"#DCD6C8\" stroke=\"#2E5D3B\" stroke-width=\"0.8\"><\/rect>'+\n      \/\/ dim labels\n      '<text x=\"'+(x+W\/2)+'\" y=\"'+(y+14)+'\" font-family=\"JetBrains Mono,monospace\" font-size=\"9\" fill=\"#5A635B\" text-anchor=\"middle\">W<\/text>'+\n      '<text x=\"'+(x-10)+'\" y=\"'+(top+H\/2)+'\" font-family=\"JetBrains Mono,monospace\" font-size=\"9\" fill=\"#5A635B\" text-anchor=\"middle\">H<\/text>'+\n      '<text x=\"'+(x+W+D\/2+4)+'\" y=\"'+(top-D\/2-2)+'\" font-family=\"JetBrains Mono,monospace\" font-size=\"9\" fill=\"#5A635B\" text-anchor=\"middle\">D<\/text>';\n    $('cabSvg').innerHTML=svg;\n  }\n\n  ids.forEach(function(id){$(id).addEventListener('input',compute);$(id).addEventListener('change',compute);});\n  compute();\n})();\n<\/script>\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\":\"https:\/\/schema.org\",\n  \"@type\":\"FAQPage\",\n  \"mainEntity\":[\n    {\"@type\":\"Question\",\"name\":\"How much plywood do I need to build a cabinet?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"A standard frameless base cabinet carcass uses about 20 to 24 square feet of sheet goods, covering two side gables, a back panel, a bottom deck, and two top stretchers. At a 30 by 24 by 30 inch size that is roughly 23 square feet of parts, or about 26 square feet with a 15 percent waste factor.\"}},\n    {\"@type\":\"Question\",\"name\":\"How many sheets of plywood per base cabinet?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Most single base cabinets take one 4 by 8 sheet, which is 32 square feet, with material left for shelves. Wider or taller units and multi-cabinet runs move you into a second sheet. Since you cannot buy a partial sheet, always round up to the next full sheet.\"}},\n    {\"@type\":\"Question\",\"name\":\"What parts are counted in the estimate?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Per cabinet: two side gables (depth by height), one back panel (width by height), one bottom deck (width by depth), and two top stretchers (width by 4 inches). Doors, drawer fronts, shelves, and face frames are not included.\"}},\n    {\"@type\":\"Question\",\"name\":\"What waste factor should I use?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Start at 15 percent for a clean plywood or melamine build. Raise it to 20 percent or more for veneer grain matching or large runs, and lower it toward 10 percent only when you nest cuts tightly and reuse offcuts.\"}}\n  ]\n}\n<\/script>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-fe48e5de wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/wurthbaersupply.com\/category\/1951\/board-panel-products\" target=\"_blank\" rel=\"noreferrer noopener\">Shop Board Panel Products<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Estimate sheet goods for your job in seconds! The calculator counts every part of the&hellip;<\/p>\n","protected":false},"author":15855,"featured_media":15276,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-15293","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tools"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/posts\/15293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/users\/15855"}],"replies":[{"embeddable":true,"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/comments?post=15293"}],"version-history":[{"count":5,"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/posts\/15293\/revisions"}],"predecessor-version":[{"id":15338,"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/posts\/15293\/revisions\/15338"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/media\/15276"}],"wp:attachment":[{"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/media?parent=15293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/categories?post=15293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wurthbaersupply.com\/blog\/wp-json\/wp\/v2\/tags?post=15293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}