{"id":197,"date":"2026-07-14T08:19:25","date_gmt":"2026-07-14T08:19:25","guid":{"rendered":"https:\/\/squarefootcalc.com\/blog\/?p=197"},"modified":"2026-07-14T08:22:17","modified_gmt":"2026-07-14T08:22:17","slug":"how-much-flooring-do-i-need","status":"publish","type":"post","link":"https:\/\/squarefootcalc.com\/blog\/how-much-flooring-do-i-need\/","title":{"rendered":"How Much Flooring Do I Need? Square Footage Guide"},"content":{"rendered":"\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&#038;family=Source+Serif+4:opsz,wght@8..60,300;8..60,400;8..60,600&#038;display=swap\" rel=\"stylesheet\">\n<style>\n  :root {\n    --ink: #1a1612;\n    --paper: #faf7f2;\n    --cream: #f2ede3;\n    --rust: #b84c2a;\n    --gold: #c9983a;\n    --teal: #2a7c72;\n    --muted: #6b6257;\n    --border: #d9d0c3;\n    --highlight: #fff8e8;\n  }\n\n  * { box-sizing: border-box; margin: 0; padding: 0; }\n\n  .subtitle { font-size: 1.1rem; color: var(--muted); line-height: 1.6; max-width: 640px; font-style: italic; margin-bottom: 8px; }\n  .divider { border: none; border-top: 1px solid var(--border); margin: 48px 0; }\n\n  h2 { font-family: 'Playfair Display', serif; font-size: 1.65rem; font-weight: 700; color: var(--ink); margin: 56px 0 16px; padding-bottom: 8px; border-bottom: 2px solid var(--gold); display: inline-block; }\n  h3 { font-family: 'Playfair Display', serif; font-size: 1.2rem; font-weight: 700; color: var(--ink); margin: 32px 0 12px; }\n\n  p { margin-bottom: 18px; font-size: 1rem; line-height: 1.75; color: var(--ink); }\n  a { color: var(--rust); text-decoration: none; }\n  a:hover { text-decoration: underline; }\n  strong { color: var(--ink); }\n\n  .toc { background: var(--cream); border: 1px solid var(--border); padding: 24px 28px; margin: 36px 0; border-radius: 3px; }\n  .toc-title { font-family: 'Playfair Display', serif; font-size: 0.95rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); margin-bottom: 12px; }\n  .toc ol { padding-left: 20px; font-size: 0.95rem; color: var(--muted); }\n  .toc li { margin-bottom: 5px; }\n  .toc a { color: var(--muted); }\n  .toc a:hover { color: var(--rust); }\n\n  .formula-hero { background: var(--ink); color: white; border-radius: 4px; padding: 32px; margin: 32px 0; text-align: center; }\n  .formula-hero .label { font-family: 'Source Serif 4', serif; font-size: 0.78rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); font-weight: 600; margin-bottom: 14px; }\n  .formula-hero .formula { font-family: 'Playfair Display', serif; font-size: 1.55rem; font-weight: 700; color: white; margin-bottom: 10px; line-height: 1.45; }\n  .formula-hero .note { font-size: 0.9rem; color: rgba(255,255,255,0.6); font-style: italic; }\n\n  .formula-box { background: var(--highlight); border-left: 3px solid var(--gold); padding: 14px 18px; margin: 20px 0; border-radius: 0 3px 3px 0; }\n  .formula-box .formula-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); font-weight: 600; margin-bottom: 6px; }\n  .formula-box .formula-text { font-family: 'Playfair Display', serif; font-size: 1.05rem; color: var(--ink); line-height: 1.6; }\n\n  .steps { margin: 24px 0; }\n  .step { display: flex; gap: 18px; margin-bottom: 24px; align-items: flex-start; }\n  .step-num { min-width: 40px; height: 40px; background: var(--rust); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1rem; flex-shrink: 0; margin-top: 2px; }\n  .step-content { font-size: 0.98rem; color: var(--muted); line-height: 1.65; }\n  .step-content strong { display: block; color: var(--ink); font-size: 1.02rem; margin-bottom: 4px; }\n\n  .example-box { background: #f8faf9; border: 1px solid #c5d9d5; border-radius: 3px; padding: 14px 18px; font-size: 0.95rem; margin: 14px 0; color: var(--muted); line-height: 1.75; }\n  .example-box .ex-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--teal); font-weight: 600; margin-bottom: 6px; }\n  .example-box .ex-answer { font-size: 1.15rem; font-weight: 700; color: var(--teal); margin-top: 6px; display: block; }\n\n  \/* MATERIAL CARDS *\/\n  .material-card { background: white; border: 1px solid var(--border); border-radius: 4px; padding: 32px; margin: 36px 0; box-shadow: 0 2px 12px rgba(0,0,0,0.04); position: relative; }\n  .material-card::before { content: attr(data-label); position: absolute; top: -14px; left: 28px; background: var(--rust); color: white; font-family: 'Playfair Display', serif; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 3px 12px; border-radius: 2px; }\n  .material-card.teal::before { background: var(--teal); }\n  .material-card.gold::before { background: var(--gold); }\n  .material-card.dark::before { background: #3a3530; }\n  .material-card h3 { font-size: 1.25rem; margin-top: 6px; margin-bottom: 6px; }\n  .material-meta { font-size: 0.9rem; color: var(--muted); margin-bottom: 20px; font-style: italic; }\n  .material-body { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }\n  @media (max-width: 580px) { .material-body { grid-template-columns: 1fr; } .material-card { padding: 24px; } }\n  .material-svg-wrap { display: flex; justify-content: center; align-items: center; background: var(--cream); border-radius: 4px; padding: 16px; min-height: 180px; }\n  .material-svg-wrap svg { max-width: 100%; height: auto; display: block; }\n\n  table { width: 100%; border-collapse: collapse; margin: 28px 0; font-size: 0.95rem; }\n  thead tr { background: var(--ink); color: white; }\n  thead th { padding: 12px 16px; text-align: left; font-family: 'Source Serif 4', serif; font-weight: 600; font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; }\n  tbody tr:nth-child(even) { background: var(--cream); }\n  tbody tr:nth-child(odd) { background: white; }\n  tbody td { padding: 11px 16px; border-bottom: 1px solid var(--border); color: var(--muted); }\n  tbody td:first-child { font-weight: 600; color: var(--ink); }\n\n  \/* WASTE CALLOUT *\/\n  .callout { background: var(--cream); border: 1px solid var(--border); border-radius: 4px; padding: 24px 28px; margin: 32px 0; }\n  .callout-title { font-family: 'Playfair Display', serif; font-size: 1.05rem; font-weight: 700; color: var(--ink); margin-bottom: 16px; }\n  .waste-row { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }\n  .waste-pct { min-width: 48px; font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.15rem; color: var(--rust); }\n  .waste-bar-wrap { flex: 1; height: 10px; background: var(--border); border-radius: 4px; overflow: hidden; }\n  .waste-bar { height: 100%; background: var(--rust); border-radius: 4px; }\n  .waste-label { color: var(--muted); font-size: 0.9rem; }\n\n  .tips-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 24px 0; }\n  @media (max-width: 520px) { .tips-grid { grid-template-columns: 1fr; } }\n  .tip-card { background: white; border: 1px solid var(--border); border-radius: 3px; padding: 18px 20px; }\n  .tip-card .tip-icon { font-size: 1.4rem; margin-bottom: 8px; }\n  .tip-card strong { display: block; color: var(--rust); margin-bottom: 4px; font-size: 0.88rem; letter-spacing: 0.05em; text-transform: uppercase; }\n  .tip-card p { margin: 0; color: var(--muted); line-height: 1.5; font-size: 0.93rem; }\n\n  .diagram-wrap { margin: 32px 0; background: var(--cream); border: 1px solid var(--border); border-radius: 4px; padding: 20px; overflow-x: auto; }\n  .diagram-wrap svg { display: block; margin: 0 auto; max-width: 100%; }\n\n  \/* BOX CALCULATOR *\/\n  .box-calc { background: white; border: 1px solid var(--border); border-radius: 4px; padding: 24px 28px; margin: 28px 0; }\n  .box-calc-title { font-family: 'Playfair Display', serif; font-size: 1rem; font-weight: 700; color: var(--ink); margin-bottom: 14px; }\n  .box-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; font-size: 0.95rem; color: var(--muted); }\n  .box-val { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 1.05rem; color: var(--ink); min-width: 80px; }\n  .box-op { color: var(--gold); font-size: 1.1rem; font-weight: 700; min-width: 20px; text-align: center; }\n  .box-result { background: var(--ink); color: white; border-radius: 3px; padding: 10px 16px; font-family: 'Playfair Display', serif; font-size: 1.1rem; font-weight: 700; color: #c9983a; margin-top: 6px; display: inline-block; }\n\n  .faq { margin: 24px 0; }\n  .faq-item { border-top: 1px solid var(--border); padding: 20px 0; }\n  .faq-q { font-family: 'Playfair Display', serif; font-size: 1.05rem; font-weight: 700; color: var(--ink); margin-bottom: 8px; }\n  .faq-a { color: var(--muted); font-size: 0.97rem; line-height: 1.7; margin: 0; }\n\n  .cta-box { background: var(--ink); color: white; border-radius: 4px; padding: 28px 32px; margin: 48px 0 24px; text-align: center; }\n  .cta-box p { color: rgba(255,255,255,0.75); margin-bottom: 16px; font-size: 0.97rem; }\n  .cta-btn { display: inline-block; background: var(--rust); color: white; font-family: 'Source Serif 4', serif; font-weight: 600; font-size: 0.9rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 12px 28px; border-radius: 2px; text-decoration: none; }\n  .cta-btn:hover { background: #9e3e22; text-decoration: none; }\n<\/style>\n\n<!-- INTRO -->\n<header>\n  <p class=\"subtitle\">You&#8217;ve measured the rooms. Now comes the decision that actually costs money \u2014 how many boxes to buy. Order too little and you stop mid-job waiting for a restock that may never come. Order too much and you&#8217;re storing boxes indefinitely. Here&#8217;s how to get it right.<\/p>\n<\/header>\n\n<div class=\"toc\">\n  <div class=\"toc-title\">In this guide<\/div>\n  <ol>\n    <li><a href=\"#process\">From sq ft to order quantity \u2014 the process<\/a><\/li>\n    <li><a href=\"#waste\">Waste factors explained<\/a><\/li>\n    <li><a href=\"#hardwood\">Hardwood, LVP, and laminate<\/a><\/li>\n    <li><a href=\"#tile\">Tile<\/a><\/li>\n    <li><a href=\"#carpet\">Carpet<\/a><\/li>\n    <li><a href=\"#reference\">Quick reference \u2014 all flooring types<\/a><\/li>\n    <li><a href=\"#boxes\">How flooring boxes work<\/a><\/li>\n    <li><a href=\"#dye-lot\">Dye lots \u2014 why batch matters<\/a><\/li>\n    <li><a href=\"#mistakes\">Buying mistakes to avoid<\/a><\/li>\n    <li><a href=\"#faq\">Frequently asked questions<\/a><\/li>\n  <\/ol>\n<\/div>\n\n<p>This guide picks up where the measuring guide left off. If you don&#8217;t have your total square footage yet, start with <a href=\"https:\/\/squarefootcalc.com\/\">SquareFootCalc.com<\/a> to measure each room and add them up. Once you have that number, this guide tells you exactly how much flooring to buy.<\/p>\n\n<hr class=\"divider\" id=\"process\">\n\n<h2>From Square Footage to Order Quantity<\/h2>\n\n<div class=\"formula-hero\">\n  <div class=\"label\">The buying formula<\/div>\n  <div class=\"formula\">Raw sq ft \u00d7 Waste factor \u00f7 Box coverage = Boxes to buy<br><br>Always round UP to the nearest whole box<\/div>\n  <div class=\"note\">Three steps. The waste factor and box coverage are the two numbers this guide gives you.<\/div>\n<\/div>\n\n<div class=\"steps\">\n  <div class=\"step\">\n    <div class=\"step-num\">1<\/div>\n    <div class=\"step-content\">\n      <strong>Start with your raw square footage<\/strong>\n      This is the total floor area of all rooms being floored \u2014 measured wall to wall, including closets and hallways. If you measured correctly, this is the number from your room tracker.\n      <div class=\"example-box\" style=\"margin-top:10px;\">\n        <div class=\"ex-label\">Example<\/div>\n        Total measured area: <strong>480 sq ft<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">2<\/div>\n    <div class=\"step-content\">\n      <strong>Apply the waste factor for your flooring type<\/strong>\n      Multiply your raw square footage by the waste factor. Waste accounts for cuts at walls, doorways, pattern matching, and breakage. The exact percentage depends on flooring type and installation pattern \u2014 see each section below.\n      <div class=\"example-box\" style=\"margin-top:10px;\">\n        <div class=\"ex-label\">Example \u2014 straight-lay hardwood, 10% waste<\/div>\n        480 \u00d7 1.10 = <strong>528 sq ft needed<\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">3<\/div>\n    <div class=\"step-content\">\n      <strong>Divide by box coverage and round up<\/strong>\n      Check the product label for how many sq ft one box covers. Divide your buffered total by that number. Round up to the nearest whole box \u2014 never round down.\n      <div class=\"example-box\" style=\"margin-top:10px;\">\n        <div class=\"ex-label\">Example \u2014 boxes cover 22 sq ft each<\/div>\n        528 \u00f7 22 = 24 boxes exactly<br>\n        <span class=\"ex-answer\">\u2192 Buy 24 boxes (or 25 to be safe)<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"waste\">\n\n<h2>Waste Factors Explained<\/h2>\n\n<p>Waste happens for three reasons: cuts at walls leave offcuts too short to reuse; doorways and transitions require additional cuts; and pattern matching on diagonal layouts wastes strips to align repeats. The more complex the installation, the higher the waste factor you need.<\/p>\n\n<!-- SVG: Waste visual \u2014 showing where waste comes from -->\n<div class=\"diagram-wrap\" style=\"padding:16px;\">\n  <svg width=\"100%\" viewBox=\"0 0 480 240\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"max-width:480px; display:block; margin:0 auto;\" role=\"img\">\n    <title>Flooring room diagram showing where waste occurs \u2014 edge cuts, doorway cuts, and diagonal pattern waste<\/title>\n    <defs>\n      <pattern id=\"plank-h\" width=\"60\" height=\"14\" patternUnits=\"userSpaceOnUse\">\n        <rect width=\"60\" height=\"14\" fill=\"#f5ede0\" stroke=\"#d9d0c3\" stroke-width=\"0.8\"\/>\n      <\/pattern>\n      <pattern id=\"plank-d\" width=\"60\" height=\"14\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\">\n        <rect width=\"60\" height=\"14\" fill=\"#e8f2f0\" stroke=\"#b2d8ce\" stroke-width=\"0.8\"\/>\n      <\/pattern>\n    <\/defs>\n\n    <!-- STRAIGHT LAY room (left) -->\n    <text x=\"110\" y=\"16\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#b84c2a\">Straight Lay \u2014 10%<\/text>\n    <rect x=\"20\" y=\"24\" width=\"180\" height=\"140\" fill=\"url(#plank-h)\" stroke=\"none\"\/>\n    <rect x=\"20\" y=\"24\" width=\"180\" height=\"140\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"2\"\/>\n    <!-- Edge waste right -->\n    <rect x=\"168\" y=\"24\" width=\"32\" height=\"140\" fill=\"#fdf3ef\" opacity=\"0.85\"\/>\n    <line x1=\"168\" y1=\"24\" x2=\"168\" y2=\"164\" stroke=\"#b84c2a\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\/>\n    <text x=\"184\" y=\"98\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"8\" fill=\"#8c3318\" transform=\"rotate(-90,184,98)\">edge cuts<\/text>\n    <!-- Edge waste bottom -->\n    <rect x=\"20\" y=\"152\" width=\"180\" height=\"12\" fill=\"#fdf3ef\" opacity=\"0.85\"\/>\n    <text x=\"110\" y=\"180\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#8c3318\">edge row cuts<\/text>\n    <!-- Doorway cut -->\n    <rect x=\"20\" y=\"110\" width=\"18\" height=\"54\" fill=\"white\" stroke=\"#d9d0c3\" stroke-width=\"1\"\/>\n    <text x=\"29\" y=\"140\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"7\" fill=\"#6b6257\" transform=\"rotate(-90,29,140)\">door<\/text>\n\n    <!-- DIAGONAL room (right) -->\n    <text x=\"370\" y=\"16\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#2a7c72\">Diagonal \u2014 15%<\/text>\n    <rect x=\"260\" y=\"24\" width=\"200\" height=\"140\" fill=\"url(#plank-d)\" stroke=\"none\"\/>\n    <rect x=\"260\" y=\"24\" width=\"200\" height=\"140\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"2\"\/>\n    <!-- Corner waste triangles -->\n    <polygon points=\"260,24 300,24 260,64\"   fill=\"#fdf3ef\" opacity=\"0.85\"\/>\n    <polygon points=\"460,24 460,64 420,24\"   fill=\"#fdf3ef\" opacity=\"0.85\"\/>\n    <polygon points=\"260,164 300,164 260,124\" fill=\"#fdf3ef\" opacity=\"0.85\"\/>\n    <polygon points=\"460,164 420,164 460,124\" fill=\"#fdf3ef\" opacity=\"0.85\"\/>\n    <!-- Centre label -->\n    <text x=\"360\" y=\"85\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#2a7c72\" font-weight=\"600\">More corner waste<\/text>\n    <text x=\"360\" y=\"100\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#2a7c72\" font-weight=\"600\">at every edge<\/text>\n    <text x=\"360\" y=\"115\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#2a7c72\" font-weight=\"600\">and corner<\/text>\n\n    <!-- Legend -->\n    <rect x=\"20\"  y=\"190\" width=\"12\" height=\"12\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1\"\/>\n    <text x=\"38\"  y=\"201\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Wasted material (offcuts)<\/text>\n    <rect x=\"240\" y=\"190\" width=\"12\" height=\"12\" fill=\"#f5ede0\" stroke=\"#d9d0c3\" stroke-width=\"1\"\/>\n    <text x=\"258\" y=\"201\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Usable floor area<\/text>\n\n    <!-- Caption -->\n    <text x=\"240\" y=\"225\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Diagonal patterns waste more at every corner \u2014 always budget 15% minimum<\/text>\n  <\/svg>\n<\/div>\n\n<div class=\"callout\">\n  <div class=\"callout-title\">Waste factor by layout type<\/div>\n  <div class=\"waste-row\">\n    <span class=\"waste-pct\">5%<\/span>\n    <div class=\"waste-bar-wrap\"><div class=\"waste-bar\" style=\"width:33%\"><\/div><\/div>\n    <span class=\"waste-label\">Simple square room, straight-lay, minimal doorways<\/span>\n  <\/div>\n  <div class=\"waste-row\">\n    <span class=\"waste-pct\">10%<\/span>\n    <div class=\"waste-bar-wrap\"><div class=\"waste-bar\" style=\"width:66%\"><\/div><\/div>\n    <span class=\"waste-label\">Standard rooms, straight-lay, multiple doorways<\/span>\n  <\/div>\n  <div class=\"waste-row\">\n    <span class=\"waste-pct\">12%<\/span>\n    <div class=\"waste-bar-wrap\"><div class=\"waste-bar\" style=\"width:80%\"><\/div><\/div>\n    <span class=\"waste-label\">Multiple rooms, L-shapes, many thresholds<\/span>\n  <\/div>\n  <div class=\"waste-row\">\n    <span class=\"waste-pct\">15%<\/span>\n    <div class=\"waste-bar-wrap\"><div class=\"waste-bar\" style=\"width:100%\"><\/div><\/div>\n    <span class=\"waste-label\">Diagonal or herringbone pattern, irregular rooms<\/span>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"hardwood\">\n\n<!-- HARDWOOD \/ LVP -->\n<div class=\"material-card\" data-label=\"Flooring Type 01\">\n  <h3>Hardwood, LVP, and Laminate<\/h3>\n  <div class=\"material-meta\">Sold by the box \u2014 each box covers a fixed number of square feet printed on the label<\/div>\n  <div class=\"material-body\">\n    <div class=\"material-svg-wrap\">\n      <svg viewBox=\"0 0 200 240\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"200\" height=\"240\">\n        <defs>\n          <pattern id=\"wood-pl\" width=\"80\" height=\"16\" patternUnits=\"userSpaceOnUse\">\n            <rect width=\"80\" height=\"16\" fill=\"#f5ede0\" stroke=\"#d9d0c3\" stroke-width=\"1\"\/>\n            <line x1=\"40\" y1=\"0\" x2=\"40\" y2=\"16\" stroke=\"#e8d0b0\" stroke-width=\"0.5\"\/>\n          <\/pattern>\n        <\/defs>\n        <!-- Flooring area -->\n        <rect x=\"10\" y=\"10\" width=\"180\" height=\"120\" fill=\"url(#wood-pl)\" stroke=\"none\"\/>\n        <rect x=\"10\" y=\"10\" width=\"180\" height=\"120\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"2\"\/>\n        <!-- Waste zone -->\n        <rect x=\"154\" y=\"10\" width=\"36\" height=\"120\" fill=\"#fdf3ef\" opacity=\"0.8\"\/>\n        <line x1=\"154\" y1=\"10\" x2=\"154\" y2=\"130\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"4,3\"\/>\n        <text x=\"172\" y=\"72\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#8c3318\" transform=\"rotate(-90,172,72)\">10% waste cuts<\/text>\n        <!-- Box illustration -->\n        <rect x=\"10\" y=\"142\" width=\"180\" height=\"72\" rx=\"4\" fill=\"#1a1612\"\/>\n        <text x=\"100\" y=\"162\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"rgba(255,255,255,0.65)\">Box label: covers<\/text>\n        <text x=\"100\" y=\"184\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"18\" font-weight=\"700\" fill=\"#c9983a\">22 sq ft \/ box<\/text>\n        <text x=\"100\" y=\"203\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"rgba(255,255,255,0.5)\">(always check the product label)<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\">\n        <div class=\"formula-label\">Formula<\/div>\n        <div class=\"formula-text\">Raw sq ft \u00d7 1.10 \u00f7 box coverage = boxes<br>Round UP to whole boxes<\/div>\n      <\/div>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Example \u2014 480 sq ft, boxes cover 22 sq ft<\/div>\n        480 \u00d7 1.10 = 528 sq ft<br>\n        528 \u00f7 22 = 24.0 boxes<br>\n        <span class=\"ex-answer\">\u2192 Buy 24 boxes<\/span>\n      <\/div>\n      <div class=\"box-calc\">\n        <div class=\"box-calc-title\">Waste factor guide<\/div>\n        <div class=\"box-row\"><span class=\"box-val\">10%<\/span><span>Straight lay, standard rooms<\/span><\/div>\n        <div class=\"box-row\"><span class=\"box-val\">12%<\/span><span>Multiple rooms, many doorways<\/span><\/div>\n        <div class=\"box-row\"><span class=\"box-val\">15%<\/span><span>Diagonal or herringbone pattern<\/span><\/div>\n      <\/div>\n      <p style=\"font-size:0.88rem; color:var(--muted); margin-top:10px; margin-bottom:0;\">Box coverage varies by manufacturer and plank size. Always use the actual number from the product label \u2014 never a generic estimate. Wide-plank products often cover less per box than narrow-plank.<\/p>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"tile\">\n\n<!-- TILE -->\n<div class=\"material-card teal\" data-label=\"Flooring Type 02\">\n  <h3>Tile \u2014 Floor and Wall<\/h3>\n  <div class=\"material-meta\">Sold by the box or per piece \u2014 tile needs more waste buffer than most other materials due to cuts around fixtures<\/div>\n  <div class=\"material-body\">\n    <div class=\"material-svg-wrap\">\n      <svg viewBox=\"0 0 240 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"240\" height=\"220\">\n        <!-- Full tiles grid -->\n        <rect x=\"10\"  y=\"10\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"58\"  y=\"10\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"10\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"10\"  y=\"58\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"58\"  y=\"58\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"58\"  width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"10\"  y=\"106\" width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"58\"  y=\"106\" width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <rect x=\"106\" y=\"106\" width=\"44\" height=\"44\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n        <!-- Cut tiles at edges -->\n        <rect x=\"154\" y=\"10\"  width=\"28\" height=\"44\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"154\" y=\"58\"  width=\"28\" height=\"44\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"154\" y=\"106\" width=\"28\" height=\"44\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <!-- Bottom cut row -->\n        <rect x=\"10\"  y=\"154\" width=\"44\" height=\"22\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"58\"  y=\"154\" width=\"44\" height=\"22\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"106\" y=\"154\" width=\"44\" height=\"22\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <rect x=\"154\" y=\"154\" width=\"28\" height=\"22\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"3,2\"\/>\n        <!-- Labels -->\n        <text x=\"70\" y=\"96\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#2a7c72\" font-weight=\"600\">Full tiles \u2713<\/text>\n        <!-- Tile size label -->\n        <rect x=\"10\" y=\"186\" width=\"172\" height=\"30\" rx=\"3\" fill=\"#1a1612\"\/>\n        <text x=\"96\" y=\"205\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"rgba(255,255,255,0.8)\">12\u00d712 tile = 1 sq ft \u00b7 18\u00d718 = 2.25 sq ft<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\" style=\"border-left-color:var(--teal);\">\n        <div class=\"formula-label\">Formula<\/div>\n        <div class=\"formula-text\">Raw sq ft \u00d7 1.10\u20131.15 = tile sq ft needed<br>\u00f7 sq ft per tile (or per box) = quantity<\/div>\n      <\/div>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Example \u2014 120 sq ft bathroom, 12\u00d712 tiles, straight lay<\/div>\n        120 \u00d7 1.10 = 132 sq ft<br>\n        Each 12\u00d712 tile = 1 sq ft<br>\n        <span class=\"ex-answer\">\u2192 Buy 132 tiles (round up to full box)<\/span>\n      <\/div>\n      <div class=\"box-calc\">\n        <div class=\"box-calc-title\">Tile square footage per piece<\/div>\n        <div class=\"box-row\"><span class=\"box-val\">12\u00d712<\/span><span>= 1.00 sq ft per tile<\/span><\/div>\n        <div class=\"box-row\"><span class=\"box-val\">16\u00d716<\/span><span>= 1.78 sq ft per tile<\/span><\/div>\n        <div class=\"box-row\"><span class=\"box-val\">18\u00d718<\/span><span>= 2.25 sq ft per tile<\/span><\/div>\n        <div class=\"box-row\"><span class=\"box-val\">24\u00d724<\/span><span>= 4.00 sq ft per tile<\/span><\/div>\n      <\/div>\n      <div class=\"formula-box\" style=\"border-left-color:var(--rust); margin-top:14px;\">\n        <div class=\"formula-label\">Waste guide for tile<\/div>\n        <div class=\"formula-text\">Straight lay \u2192 10%<br>Many outlets, corners, fixtures \u2192 12%<br>Diagonal pattern \u2192 15%<br>Mosaic or intricate pattern \u2192 20%<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"carpet\">\n\n<!-- CARPET -->\n<div class=\"material-card gold\" data-label=\"Flooring Type 03\">\n  <h3>Carpet<\/h3>\n  <div class=\"material-meta\">Sold by the square yard or linear yard \u2014 roll width matters as much as total area<\/div>\n  <div class=\"material-body\">\n    <div class=\"material-svg-wrap\">\n      <svg viewBox=\"0 0 240 230\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"240\" height=\"230\">\n        <!-- Room outline -->\n        <rect x=\"10\" y=\"10\" width=\"160\" height=\"110\" fill=\"#fff8e8\" stroke=\"#c9983a\" stroke-width=\"2\" rx=\"2\"\/>\n        <text x=\"90\" y=\"62\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#8a6820\">Room<\/text>\n        <text x=\"90\" y=\"78\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">14 \u00d7 12 ft<\/text>\n        <text x=\"90\" y=\"94\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#8a6820\">168 sq ft<\/text>\n\n        <!-- Roll diagram -->\n        <rect x=\"10\" y=\"136\" width=\"210\" height=\"40\" rx=\"4\" fill=\"#f5ede0\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <line x1=\"10\"  y1=\"136\" x2=\"10\"  y2=\"176\" stroke=\"#c9983a\" stroke-width=\"2\"\/>\n        <line x1=\"168\" y1=\"136\" x2=\"168\" y2=\"176\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"4,3\"\/>\n        <line x1=\"220\" y1=\"136\" x2=\"220\" y2=\"176\" stroke=\"#c9983a\" stroke-width=\"2\"\/>\n        <text x=\"89\"   y=\"160\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#8a6820\" font-weight=\"600\">Roll: 12 ft wide<\/text>\n        <rect x=\"168\"  y=\"136\" width=\"52\" height=\"40\" fill=\"#fdf3ef\" opacity=\"0.8\"\/>\n        <text x=\"194\"  y=\"160\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#8c3318\">waste<\/text>\n\n        <!-- Caption -->\n        <text x=\"120\" y=\"196\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">Standard roll: 12 ft wide<\/text>\n        <text x=\"120\" y=\"210\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">(sometimes 13.5 or 15 ft)<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">Carpet comes on rolls \u2014 typically 12 ft wide. If your room is wider than the roll, you need a seam. Most carpet is priced and sold per square yard, not square foot, so the final step is converting.<\/p>\n      <div class=\"formula-box\" style=\"border-left-color:var(--gold);\">\n        <div class=\"formula-label\">Formula<\/div>\n        <div class=\"formula-text\">Raw sq ft \u00d7 1.10 = sq ft needed<br>\u00f7 9 = square yards to order<br>Round UP to nearest yard<\/div>\n      <\/div>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Example \u2014 168 sq ft bedroom + 15 sq ft closet<\/div>\n        Total area: 183 sq ft<br>\n        183 \u00d7 1.10 = 201.3 sq ft<br>\n        201.3 \u00f7 9 = 22.4 sq yards<br>\n        <span class=\"ex-answer\">\u2192 Order 23 square yards<\/span>\n      <\/div>\n      <div class=\"formula-box\" style=\"border-left-color:var(--gold); margin-top:14px;\">\n        <div class=\"formula-label\">Important tip<\/div>\n        <div class=\"formula-text\">Always tell the carpet retailer your exact room dimensions \u2014 not just sq footage. They calculate the most efficient cut from the roll width to minimise waste and choose optimal seam placement.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"reference\">\n\n<h2>Quick Reference \u2014 All Flooring Types<\/h2>\n\n<table>\n  <thead>\n    <tr>\n      <th>Flooring Type<\/th>\n      <th>Typical Waste<\/th>\n      <th>Sold In<\/th>\n      <th>Avg Coverage<\/th>\n      <th>Unit to Order<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td>Hardwood (straight lay)<\/td><td>10%<\/td><td>Boxes<\/td><td>20\u201325 sq ft\/box<\/td><td>Boxes (round up)<\/td><\/tr>\n    <tr><td>Hardwood (diagonal)<\/td><td>15%<\/td><td>Boxes<\/td><td>20\u201325 sq ft\/box<\/td><td>Boxes (round up)<\/td><\/tr>\n    <tr><td>LVP \/ vinyl plank<\/td><td>10%<\/td><td>Boxes<\/td><td>20\u201330 sq ft\/box<\/td><td>Boxes (round up)<\/td><\/tr>\n    <tr><td>Laminate (straight)<\/td><td>10%<\/td><td>Boxes<\/td><td>18\u201330 sq ft\/box<\/td><td>Boxes (round up)<\/td><\/tr>\n    <tr><td>Laminate (diagonal)<\/td><td>15%<\/td><td>Boxes<\/td><td>18\u201330 sq ft\/box<\/td><td>Boxes (round up)<\/td><\/tr>\n    <tr><td>Floor tile (straight)<\/td><td>10%<\/td><td>Box or piece<\/td><td>Varies by size<\/td><td>Pieces (round up)<\/td><\/tr>\n    <tr><td>Floor tile (diagonal)<\/td><td>15%<\/td><td>Box or piece<\/td><td>Varies by size<\/td><td>Pieces (round up)<\/td><\/tr>\n    <tr><td>Carpet<\/td><td>10%<\/td><td>Square yards<\/td><td>Roll: 12 ft wide<\/td><td>Sq yards (round up)<\/td><\/tr>\n    <tr><td>Carpet (pattern)<\/td><td>15\u201320%<\/td><td>Square yards<\/td><td>Roll: 12 ft wide<\/td><td>Sq yards (round up)<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<hr class=\"divider\" id=\"boxes\">\n\n<h2>How Flooring Boxes Work<\/h2>\n\n<p>Most hardwood, LVP, and laminate flooring is sold in cartons. Each carton contains a fixed number of planks that together cover a stated number of square feet \u2014 printed on the box label. This number varies by manufacturer and plank size, so always check the label before calculating.<\/p>\n\n<!-- SVG: Box calculation walkthrough -->\n<div class=\"diagram-wrap\" style=\"padding:16px;\">\n  <svg width=\"100%\" viewBox=\"0 0 480 210\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"max-width:480px; display:block; margin:0 auto;\" role=\"img\">\n    <title>Step-by-step box calculation showing raw area to waste-buffered area to number of boxes<\/title>\n    <defs>\n      <marker id=\"arr-box\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"6\" markerHeight=\"6\" orient=\"auto\">\n        <path d=\"M1 2L8 5L1 8\" fill=\"none\" stroke=\"#c9983a\" stroke-width=\"2\" stroke-linecap=\"round\"\/>\n      <\/marker>\n    <\/defs>\n\n    <!-- Step 1: Raw area -->\n    <rect x=\"10\" y=\"30\" width=\"100\" height=\"90\" rx=\"4\" fill=\"#f5ede0\" stroke=\"#b84c2a\" stroke-width=\"1.5\"\/>\n    <text x=\"60\" y=\"56\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Raw area<\/text>\n    <text x=\"60\" y=\"80\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"22\" font-weight=\"700\" fill=\"#b84c2a\">480<\/text>\n    <text x=\"60\" y=\"100\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">sq ft<\/text>\n    <text x=\"60\" y=\"140\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Step 1<\/text>\n\n    <!-- Arrow \u00d7 1.10 -->\n    <line x1=\"114\" y1=\"75\" x2=\"148\" y2=\"75\" stroke=\"#c9983a\" stroke-width=\"2\" marker-end=\"url(#arr-box)\"\/>\n    <text x=\"131\" y=\"65\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#8a6820\" font-weight=\"600\">\u00d7 1.10<\/text>\n    <text x=\"131\" y=\"91\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\"  fill=\"#6b6257\">10% waste<\/text>\n\n    <!-- Step 2: Buffered area -->\n    <rect x=\"152\" y=\"30\" width=\"100\" height=\"90\" rx=\"4\" fill=\"#f0f8f5\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n    <text x=\"202\" y=\"56\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">With buffer<\/text>\n    <text x=\"202\" y=\"80\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"22\" font-weight=\"700\" fill=\"#2a7c72\">528<\/text>\n    <text x=\"202\" y=\"100\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">sq ft<\/text>\n    <text x=\"202\" y=\"140\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Step 2<\/text>\n\n    <!-- Arrow \u00f7 22 -->\n    <line x1=\"256\" y1=\"75\" x2=\"290\" y2=\"75\" stroke=\"#c9983a\" stroke-width=\"2\" marker-end=\"url(#arr-box)\"\/>\n    <text x=\"273\" y=\"65\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#8a6820\" font-weight=\"600\">\u00f7 22<\/text>\n    <text x=\"273\" y=\"91\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\"  fill=\"#6b6257\">sq ft\/box<\/text>\n\n    <!-- Step 3: Result box -->\n    <rect x=\"294\" y=\"20\" width=\"176\" height=\"110\" rx=\"4\" fill=\"#1a1612\"\/>\n    <text x=\"382\" y=\"52\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"rgba(255,255,255,0.6)\">= 24.0 boxes<\/text>\n    <text x=\"382\" y=\"85\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"30\" font-weight=\"700\" fill=\"#c9983a\">24<\/text>\n    <text x=\"382\" y=\"110\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"rgba(255,255,255,0.6)\">boxes to buy<\/text>\n    <text x=\"382\" y=\"150\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Step 3 \u2014 always round UP<\/text>\n\n    <!-- Reminder bar -->\n    <rect x=\"10\" y=\"165\" width=\"460\" height=\"34\" rx=\"3\" fill=\"#fdf3ef\" stroke=\"#b84c2a\" stroke-width=\"1\"\/>\n    <text x=\"240\" y=\"179\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#8c3318\" font-weight=\"600\">If result is 24.1 \u2192 buy 25 boxes<\/text>\n    <text x=\"240\" y=\"193\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#8c3318\">Never round down \u2014 you cannot buy a fraction of a box<\/text>\n  <\/svg>\n<\/div>\n\n<div class=\"tips-grid\">\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udce6<\/div>\n    <strong>Always round UP<\/strong>\n    <p>If you need 24.1 boxes, buy 25. Flooring is sold in whole cartons. Rounding down guarantees you run short. You cannot buy a partial box at most retailers.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udd0d<\/div>\n    <strong>Use the actual label coverage<\/strong>\n    <p>Box coverage varies by manufacturer, product, and plank width. A wide-plank floor may cover only 18 sq ft per box while a narrow-plank covers 28. Always read the actual label before calculating.<\/p>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"dye-lot\">\n\n<h2>Dye Lots \u2014 Why Batch Matters<\/h2>\n\n<p>This is the detail most people learn the hard way. Flooring, tile, and carpet are manufactured in production batches \u2014 called dye lots or run numbers. Each batch has a slightly different colour, even when the product name and SKU are identical. The difference is invisible in the store but obvious once installed side by side on the floor.<\/p>\n\n<!-- SVG: Dye lot visual -->\n<div class=\"diagram-wrap\" style=\"padding:16px;\">\n  <svg width=\"100%\" viewBox=\"0 0 480 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"max-width:480px; display:block; margin:0 auto;\" role=\"img\">\n    <title>Dye lot comparison showing two flooring batches that look the same in boxes but show visible colour difference when installed<\/title>\n    <defs>\n      <pattern id=\"batch1\" width=\"60\" height=\"14\" patternUnits=\"userSpaceOnUse\">\n        <rect width=\"60\" height=\"14\" fill=\"#e8d5b0\" stroke=\"#d0bc96\" stroke-width=\"0.8\"\/>\n      <\/pattern>\n      <pattern id=\"batch2\" width=\"60\" height=\"14\" patternUnits=\"userSpaceOnUse\">\n        <rect width=\"60\" height=\"14\" fill=\"#d5c49e\" stroke=\"#bfab86\" stroke-width=\"0.8\"\/>\n      <\/pattern>\n    <\/defs>\n\n    <!-- Title -->\n    <text x=\"240\" y=\"18\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"13\" font-weight=\"700\" fill=\"#b84c2a\">Why dye lot matters<\/text>\n\n    <!-- Batch A (left half) -->\n    <rect x=\"10\" y=\"28\" width=\"220\" height=\"100\" fill=\"url(#batch1)\"\/>\n    <rect x=\"10\" y=\"28\" width=\"220\" height=\"100\" fill=\"none\" stroke=\"#d0bc96\" stroke-width=\"1.5\"\/>\n    <rect x=\"10\" y=\"28\" width=\"220\" height=\"22\" fill=\"#c9a87a\" opacity=\"0.3\"\/>\n    <text x=\"120\" y=\"44\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\" font-weight=\"600\">Batch A \u2014 boxes 1\u201312<\/text>\n\n    <!-- Batch B (right half, slightly different shade) -->\n    <rect x=\"230\" y=\"28\" width=\"240\" height=\"100\" fill=\"url(#batch2)\"\/>\n    <rect x=\"230\" y=\"28\" width=\"240\" height=\"100\" fill=\"none\" stroke=\"#bfab86\" stroke-width=\"1.5\"\/>\n    <rect x=\"230\" y=\"28\" width=\"240\" height=\"22\" fill=\"#b89060\" opacity=\"0.3\"\/>\n    <text x=\"350\" y=\"44\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#b84c2a\" font-weight=\"600\">Batch B \u2014 reorder (different lot)<\/text>\n\n    <!-- Seam line -->\n    <line x1=\"230\" y1=\"22\" x2=\"230\" y2=\"132\" stroke=\"#b84c2a\" stroke-width=\"2.5\" stroke-dasharray=\"6,3\"\/>\n\n    <!-- Seam label -->\n    <text x=\"230\" y=\"148\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#b84c2a\" font-weight=\"600\">\u2190 visible colour difference at this seam \u2192<\/text>\n\n    <!-- Lot number boxes -->\n    <rect x=\"10\"  y=\"160\" width=\"90\" height=\"26\" rx=\"3\" fill=\"#1a1612\"\/>\n    <text x=\"55\"  y=\"177\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"rgba(255,255,255,0.8)\">Lot: A4821 \u2713<\/text>\n\n    <rect x=\"380\" y=\"160\" width=\"90\" height=\"26\" rx=\"3\" fill=\"#1a1612\"\/>\n    <text x=\"425\" y=\"177\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#c9983a\">Lot: A4822 \u2717<\/text>\n\n    <!-- Caption -->\n    <text x=\"240\" y=\"202\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Always verify every box has the same lot number before buying or accepting delivery<\/text>\n  <\/svg>\n<\/div>\n\n<p>The fix is simple: buy enough boxes from the same batch to complete the entire job in one purchase. Check that every box has the same lot number before accepting delivery. If you need to reorder later and the batch has changed, the new boxes may not match \u2014 and there&#8217;s nothing the retailer can do about it.<\/p>\n\n<div class=\"formula-box\">\n  <div class=\"formula-label\">What to check on the box label<\/div>\n  <div class=\"formula-text\">Lot number \/ Run number \/ Batch number \u2014 this is what must match across all boxes. Also check: shade number, calibre number (for tile). If any box differs, flag it before installation.<\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"mistakes\">\n\n<h2>Buying Mistakes to Avoid<\/h2>\n\n<div class=\"tips-grid\">\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udcc9<\/div>\n    <strong>Ordering the raw sq ft<\/strong>\n    <p>Your raw measurement is not your order quantity. Always add the waste factor before ordering. Skipping this step is the single most common reason jobs run short mid-installation.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udd22<\/div>\n    <strong>Rounding boxes down<\/strong>\n    <p>If you need 14.3 boxes, you need 15. There is no such thing as 0.3 of a flooring box. Round every fractional result up \u2014 without exception.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83c\udfa8<\/div>\n    <strong>Not checking dye lots<\/strong>\n    <p>Every box must have the same lot or run number. Check before you leave the store. Mixing lots creates a visible colour line that can&#8217;t be fixed without re-laying the entire floor.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udce6<\/div>\n    <strong>Not buying one spare box<\/strong>\n    <p>Buy one extra box and store it. If a plank gets damaged six months later and the product is discontinued, that spare box saves you from a full floor replacement. The extra box is cheap insurance.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udcd0<\/div>\n    <strong>Using 10% for diagonal patterns<\/strong>\n    <p>Diagonal and herringbone installations waste significantly more material at every corner and edge. Use 15% minimum for diagonal \u2014 using 10% will leave you short every time.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83e\uddee<\/div>\n    <strong>Using a generic box coverage number<\/strong>\n    <p>Box coverage varies by product. One manufacturer&#8217;s hardwood covers 22 sq ft per box; another&#8217;s covers 28. Always divide by the actual number on the product label \u2014 not a remembered figure from a previous project.<\/p>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"faq\">\n\n<h2>Frequently Asked Questions<\/h2>\n\n<div class=\"faq\">\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How much extra flooring should I buy?<\/div>\n    <p class=\"faq-a\">Add 10% for straight-lay hardwood, LVP, or laminate in standard rooms. Add 12% if you have many doorways or an L-shaped layout. Add 15% for diagonal or herringbone patterns. For carpet, add 10% and convert the result to square yards. Always round up to the nearest whole box or yard.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How do I calculate how many boxes of flooring I need?<\/div>\n    <p class=\"faq-a\">Multiply your total room square footage by your waste factor (1.10 for standard, 1.15 for diagonal). Divide the result by the sq ft coverage stated on the box label. Round up to the nearest whole box. For example: 480 sq ft \u00d7 1.10 = 528 \u00f7 22 sq ft per box = 24 boxes.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How many square feet are in a box of flooring?<\/div>\n    <p class=\"faq-a\">It varies by product. Most hardwood and LVP boxes cover 20\u201330 sq ft. Laminate typically covers 18\u201330 sq ft per box. Wide-plank products cover less per box than narrow-plank. Always check the actual label on the product you&#8217;re buying \u2014 never assume a standard coverage.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How do I convert square feet to square yards for carpet?<\/div>\n    <p class=\"faq-a\">Divide square feet by 9. There are 9 square feet in one square yard. So 200 sq ft of carpet = 200 \u00f7 9 = 22.2 square yards. Add your waste buffer before converting: 183 sq ft \u00d7 1.10 = 201.3 \u00f7 9 = 22.4 \u2192 buy 23 square yards.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">What is a dye lot and why does it matter for flooring?<\/div>\n    <p class=\"faq-a\">A dye lot (also called run number or batch number) identifies which production batch a flooring product came from. Each batch has a slightly different colour due to natural variation in materials and dyes. When you mix boxes from different lots, the colour difference is usually invisible in the box but visible once the planks are installed side by side. Always verify every box has the same lot number before buying.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">Should I return leftover flooring boxes?<\/div>\n    <p class=\"faq-a\">Keep at least one box if you can. Leftover flooring from the same dye lot is invaluable for future repairs \u2014 replacing a damaged plank is only possible if you have matching material from the same batch. Check the retailer&#8217;s return policy before buying extra: most allow returns of unopened boxes within 30\u201390 days, so you can return surplus if you end up not needing it.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"cta-box\">\n  <p>Know your sq ft? Calculate exactly how many boxes you need in seconds.<\/p>\n  <a href=\"https:\/\/squarefootcalc.com\/\" class=\"cta-btn\">Calculate Square Footage Free \u2192<\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>You&#8217;ve measured the rooms. Now comes the decision that actually costs money \u2014 how many boxes to buy. Order too little and you stop mid-job waiting for a restock that may never come. Order too much and you&#8217;re storing boxes indefinitely. Here&#8217;s how to get it right. In this guide From sq ft to order&#8230;<\/p>\n","protected":false},"author":1,"featured_media":198,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_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":""},"categories":[1],"tags":[],"class_list":["post-197","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"taxonomy_info":{"category":[{"value":1,"label":"Blog"}]},"featured_image_src_large":["https:\/\/squarefootcalc.com\/blog\/wp-content\/uploads\/2026\/07\/How-Much-Flooring-Do-I-Need-Square-Footage-Guide-1024x683.webp",1024,683,true],"author_info":{"display_name":"Luke","author_link":"https:\/\/squarefootcalc.com\/blog\/author\/aziz315\/"},"comment_info":0,"category_info":[{"term_id":1,"name":"Blog","slug":"blog","term_group":0,"term_taxonomy_id":1,"taxonomy":"category","description":"","parent":0,"count":30,"filter":"raw","cat_ID":1,"category_count":30,"category_description":"","cat_name":"Blog","category_nicename":"blog","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/comments?post=197"}],"version-history":[{"count":2,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts\/197\/revisions"}],"predecessor-version":[{"id":200,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts\/197\/revisions\/200"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/media\/198"}],"wp:attachment":[{"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/media?parent=197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/categories?post=197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/tags?post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}