{"id":182,"date":"2026-07-11T18:38:53","date_gmt":"2026-07-11T18:38:53","guid":{"rendered":"https:\/\/squarefootcalc.com\/blog\/?p=182"},"modified":"2026-07-12T04:53:10","modified_gmt":"2026-07-12T04:53:10","slug":"how-to-measure-square-footage-of-an-irregular-shaped-room","status":"publish","type":"post","link":"https:\/\/squarefootcalc.com\/blog\/how-to-measure-square-footage-of-an-irregular-shaped-room\/","title":{"rendered":"How to Measure Square Footage of an Irregular-Shaped Room (With Diagrams)"},"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.6rem; font-weight: 700; color: white; margin-bottom: 10px; line-height: 1.4; }\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  \/* SHAPE CARDS *\/\n  .shape-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  .shape-card::before { content: attr(data-num); 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  .shape-card.teal::before { background: var(--teal); }\n  .shape-card.gold::before { background: var(--gold); }\n  .shape-card.dark::before { background: #3a3530; }\n  .shape-card h3 { font-size: 1.25rem; margin-top: 6px; margin-bottom: 6px; }\n  .shape-meta { font-size: 0.9rem; color: var(--muted); margin-bottom: 20px; font-style: italic; }\n  .shape-body { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }\n  @media (max-width: 580px) { .shape-body { grid-template-columns: 1fr; } .shape-card { padding: 24px; } }\n  .shape-svg-wrap { display: flex; justify-content: center; align-items: center; background: var(--cream); border-radius: 4px; padding: 16px; min-height: 200px; }\n  .shape-svg-wrap svg { max-width: 100%; height: auto; display: block; }\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  .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: 12px; }\n  .callout p { margin-bottom: 0; font-size: 0.97rem; color: var(--muted); line-height: 1.7; }\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  \/* QUICK REF TABLE *\/\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  .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\">Most rooms aren&#8217;t perfect rectangles. Bay windows, angled corners, L-shapes, alcoves, curved walls \u2014 all of them have square footage that can be measured accurately if you know how to break the shape apart.<\/p>\n<\/header>\n\n<div class=\"toc\">\n  <div class=\"toc-title\">In this guide<\/div>\n  <ol>\n    <li><a href=\"#rule\">The one rule that handles any shape<\/a><\/li>\n    <li><a href=\"#steps\">Step-by-step process<\/a><\/li>\n    <li><a href=\"#l-shape\">L-shaped rooms<\/a><\/li>\n    <li><a href=\"#t-shape\">T-shaped rooms<\/a><\/li>\n    <li><a href=\"#bay-window\">Rooms with bay windows<\/a><\/li>\n    <li><a href=\"#angled\">Rooms with angled or diagonal walls<\/a><\/li>\n    <li><a href=\"#curved\">Rooms with curved walls<\/a><\/li>\n    <li><a href=\"#add-subtract\">The add or subtract method<\/a><\/li>\n    <li><a href=\"#reference\">Shape formulas quick reference<\/a><\/li>\n    <li><a href=\"#mistakes\">Mistakes to avoid<\/a><\/li>\n    <li><a href=\"#faq\">Frequently asked questions<\/a><\/li>\n  <\/ol>\n<\/div>\n\n<p>The most common mistake people make with irregular rooms is trying to find one measurement that covers the whole thing. There isn&#8217;t one. The right approach is to stop thinking about the room as one shape and start thinking about it as two or three simple shapes glued together.<\/p>\n\n<p>Once you have your dimensions, use <a href=\"https:\/\/squarefootcalc.com\/\">SquareFootCalc.com<\/a> to calculate each section and add them up instantly.<\/p>\n\n<hr class=\"divider\" id=\"rule\">\n\n<h2>The One Rule That Handles Any Shape<\/h2>\n\n<div class=\"formula-hero\">\n  <div class=\"label\">The Universal Rule<\/div>\n  <div class=\"formula\">Split any irregular room into simple shapes.<br>Calculate each shape separately.<br>Add all the areas together.<\/div>\n  <div class=\"note\">Every irregular room \u2014 no matter how complex \u2014 can be broken into rectangles, triangles, and circles.<\/div>\n<\/div>\n\n<p>This works because area is additive. If a room is made of two rectangles, its total area is the sum of both rectangles. If it has a triangular bay, add the triangle&#8217;s area. If something is subtracted \u2014 like a built-in wardrobe cut into a corner \u2014 subtract that section instead. The sections just need to cover the whole floor without overlapping.<\/p>\n\n<!-- SVG: The split concept -->\n<div class=\"diagram-wrap\" style=\"padding:16px;\">\n  <svg width=\"100%\" viewBox=\"0 0 480 230\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" style=\"max-width:480px; display:block; margin:0 auto;\">\n    <title>Irregular room split into three simple shapes \u2014 two rectangles and a triangle \u2014 each calculated separately then added<\/title>\n    <defs>\n      <pattern id=\"irg1\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e0d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n      <pattern id=\"irg2\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#c5d9d5\" stroke-width=\"0.6\"\/><\/pattern>\n      <pattern id=\"irg3\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e8d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n    <\/defs>\n\n    <!-- \u2500\u2500 SECTION A \u2014 tall rectangle \u2500\u2500 -->\n    <rect x=\"10\" y=\"20\" width=\"100\" height=\"140\" fill=\"url(#irg1)\"\/>\n    <rect x=\"10\" y=\"20\" width=\"100\" height=\"140\" fill=\"#f5ede0\" opacity=\"0.85\"\/>\n    <rect x=\"10\" y=\"20\" width=\"100\" height=\"140\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"2\" rx=\"2\"\/>\n    <!-- Label centred inside the rectangle -->\n    <text x=\"60\" y=\"78\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"16\" font-weight=\"700\" fill=\"#b84c2a\">A<\/text>\n    <text x=\"60\" y=\"98\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"11\" fill=\"#6b6257\">Rectangle<\/text>\n    <text x=\"60\" y=\"114\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"11\" font-weight=\"600\" fill=\"#b84c2a\">L \u00d7 W<\/text>\n\n    <!-- \u2500\u2500 PLUS \u2500\u2500 -->\n    <text x=\"130\" y=\"98\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"28\" font-weight=\"700\" fill=\"#c9983a\">+<\/text>\n\n    <!-- \u2500\u2500 SECTION B \u2014 square rectangle \u2500\u2500 -->\n    <rect x=\"150\" y=\"50\" width=\"100\" height=\"110\" fill=\"url(#irg2)\"\/>\n    <rect x=\"150\" y=\"50\" width=\"100\" height=\"110\" fill=\"#e8f2f0\" opacity=\"0.85\"\/>\n    <rect x=\"150\" y=\"50\" width=\"100\" height=\"110\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"2\" rx=\"2\"\/>\n    <!-- Label centred inside the rectangle -->\n    <text x=\"200\" y=\"98\"  text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"16\" font-weight=\"700\" fill=\"#2a7c72\">B<\/text>\n    <text x=\"200\" y=\"118\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"11\" fill=\"#6b6257\">Rectangle<\/text>\n    <text x=\"200\" y=\"134\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"11\" font-weight=\"600\" fill=\"#2a7c72\">L \u00d7 W<\/text>\n\n    <!-- \u2500\u2500 PLUS \u2500\u2500 -->\n    <text x=\"270\" y=\"98\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"28\" font-weight=\"700\" fill=\"#c9983a\">+<\/text>\n\n    <!-- \u2500\u2500 SECTION C \u2014 right triangle, right-angle at bottom-left \u2500\u2500 -->\n    <!-- Points: bottom-left (290,160), bottom-right (370,160), top-left (290,40) -->\n    <polygon points=\"290,40 370,160 290,160\" fill=\"url(#irg3)\"\/>\n    <polygon points=\"290,40 370,160 290,160\" fill=\"#fff8e8\" opacity=\"0.85\"\/>\n    <polygon points=\"290,40 370,160 290,160\" fill=\"none\" stroke=\"#c9983a\" stroke-width=\"2\"\/>\n    <!-- Right-angle marker -->\n    <path d=\"M290,150 L300,150 L300,160\" fill=\"none\" stroke=\"#c9983a\" stroke-width=\"1.2\"\/>\n    <!-- Label \u2014 centred on the triangle's visual centroid (average of 3 vertices) -->\n    <!-- centroid x = (290+370+290)\/3 = 316.7, y = (40+160+160)\/3 = 120 -->\n    <text x=\"327\" y=\"112\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"16\" font-weight=\"700\" fill=\"#8a6820\">C<\/text>\n    <text x=\"327\" y=\"132\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"11\" fill=\"#6b6257\">Triangle<\/text>\n    <text x=\"327\" y=\"148\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"11\" font-weight=\"600\" fill=\"#8a6820\">\u00bd b \u00d7 h<\/text>\n\n    <!-- \u2500\u2500 EQUALS \u2500\u2500 -->\n    <text x=\"396\" y=\"103\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"28\" font-weight=\"700\" fill=\"#1a1612\">=<\/text>\n\n    <!-- \u2500\u2500 RESULT BOX \u2500\u2500 -->\n    <rect x=\"416\" y=\"52\" width=\"56\" height=\"96\" rx=\"4\" fill=\"#1a1612\"\/>\n    <text x=\"444\" y=\"90\"  text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"10\" fill=\"rgba(255,255,255,0.65)\">Total<\/text>\n    <text x=\"444\" y=\"108\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"13\" font-weight=\"700\" fill=\"#c9983a\">A+B<\/text>\n    <text x=\"444\" y=\"124\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"13\" font-weight=\"700\" fill=\"#c9983a\">+C<\/text>\n    <text x=\"444\" y=\"140\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\"  font-size=\"9\"  fill=\"rgba(255,255,255,0.5)\">= sq ft<\/text>\n\n    <!-- \u2500\u2500 Caption below \u2500\u2500 -->\n    <text x=\"240\" y=\"200\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Split any irregular room into simple shapes \u2192 calculate each \u2192 add totals<\/text>\n  <\/svg>\n<\/div>\n\n<hr class=\"divider\" id=\"steps\">\n\n<h2>Step-by-Step Process<\/h2>\n\n<div class=\"steps\">\n  <div class=\"step\">\n    <div class=\"step-num\">1<\/div>\n    <div class=\"step-content\">\n      <strong>Sketch the room on paper<\/strong>\n      A rough outline \u2014 doesn&#8217;t need to be to scale. Just accurate enough to show where the walls are, where the notches are, and where any unusual features sit. Label each wall as you go.\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">2<\/div>\n    <div class=\"step-content\">\n      <strong>Draw dividing lines to create simple shapes<\/strong>\n      Look at your sketch and draw straight lines that cut the room into rectangles, triangles, or simple curves. Every line must go from one wall to another \u2014 no floating lines. Aim for the fewest cuts that produce the cleanest shapes.\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">3<\/div>\n    <div class=\"step-content\">\n      <strong>Measure each section separately<\/strong>\n      Take the dimensions of each section you&#8217;ve created. For rectangles: length and width. For triangles: base and perpendicular height. For curves: radius. Write the measurements on your sketch next to each section.\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">4<\/div>\n    <div class=\"step-content\">\n      <strong>Calculate area for each section<\/strong>\n      Use the right formula for each shape \u2014 see the quick reference table at the bottom of this article. Write each section&#8217;s area on your sketch.\n    <\/div>\n  <\/div>\n  <div class=\"step\">\n    <div class=\"step-num\">5<\/div>\n    <div class=\"step-content\">\n      <strong>Add all sections together<\/strong>\n      Sum every section&#8217;s area. That&#8217;s your total room square footage. Double-check by confirming your sections cover the entire floor without gaps or overlaps.\n      <div class=\"example-box\" style=\"margin-top:10px;\">\n        <div class=\"ex-label\">Sanity check<\/div>\n        Your total should be in a reasonable range for the room&#8217;s overall dimensions. If a room fits inside a 14 \u00d7 16 ft bounding box, your answer should be less than 224 sq ft.\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"l-shape\">\n\n<!-- L-SHAPE -->\n<div class=\"shape-card\" data-num=\"Shape 01\">\n  <h3>L-Shaped Room<\/h3>\n  <div class=\"shape-meta\">The most common irregular shape \u2014 open-plan kitchens, living\/dining combos, rooms with an alcove or notch<\/div>\n  <div class=\"shape-body\">\n    <div class=\"shape-svg-wrap\">\n      <svg viewBox=\"0 0 260 240\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"260\" height=\"240\">\n        <defs>\n          <pattern id=\"lA\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e0d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n          <pattern id=\"lB\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#c5d9d5\" stroke-width=\"0.6\"\/><\/pattern>\n        <\/defs>\n        <!-- Section A -->\n        <rect x=\"20\" y=\"20\" width=\"140\" height=\"100\" fill=\"url(#lA)\"\/>\n        <rect x=\"20\" y=\"20\" width=\"140\" height=\"100\" fill=\"#f5ede0\" opacity=\"0.85\"\/>\n        <!-- Section B -->\n        <rect x=\"20\" y=\"120\" width=\"210\" height=\"80\" fill=\"url(#lB)\"\/>\n        <rect x=\"20\" y=\"120\" width=\"210\" height=\"80\" fill=\"#e8f2f0\" opacity=\"0.85\"\/>\n        <!-- Divider -->\n        <line x1=\"20\" y1=\"120\" x2=\"160\" y2=\"120\" stroke=\"#c9983a\" stroke-width=\"1.5\" stroke-dasharray=\"5,4\"\/>\n        <!-- L outline -->\n        <path d=\"M20,20 L160,20 L160,120 L230,120 L230,200 L20,200 Z\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"2.5\"\/>\n        <!-- Dimension: A width -->\n        <line x1=\"20\" y1=\"10\" x2=\"160\" y2=\"10\" stroke=\"#6b6257\" stroke-width=\"1\"\/>\n        <text x=\"90\" y=\"8\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">14 ft<\/text>\n        <!-- Dimension: A height -->\n        <text x=\"8\" y=\"72\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\" transform=\"rotate(-90,8,72)\">10 ft<\/text>\n        <!-- Dimension: B width -->\n        <text x=\"125\" y=\"215\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">18 ft total<\/text>\n        <!-- Dimension: B height -->\n        <text x=\"242\" y=\"163\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\" transform=\"rotate(-90,242,163)\">8 ft<\/text>\n        <!-- Labels -->\n        <text x=\"90\" y=\"66\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"13\" font-weight=\"700\" fill=\"#b84c2a\">Section A<\/text>\n        <text x=\"90\" y=\"82\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">14 \u00d7 10 = 140 sq ft<\/text>\n        <text x=\"125\" y=\"158\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"13\" font-weight=\"700\" fill=\"#2a7c72\">Section B<\/text>\n        <text x=\"125\" y=\"174\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">18 \u00d7 8 = 144 sq ft<\/text>\n        <text x=\"145\" y=\"228\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#1a1612\">Total: 284 sq ft<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\">\n        <div class=\"formula-label\">Method<\/div>\n        <div class=\"formula-text\">Draw a horizontal or vertical line across the notch \u2192 measure each rectangle \u2192 add totals<\/div>\n      <\/div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">The dividing line can go in either direction \u2014 horizontal or vertical \u2014 whichever creates the two cleanest rectangles to measure. Pick wherever makes measuring easiest in the actual room.<\/p>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Worked example<\/div>\n        Section A: 14 \u00d7 10 = 140 sq ft<br>\n        Section B: 18 \u00d7 8 = 144 sq ft<br>\n        140 + 144 = <span class=\"ex-answer\">284 sq ft<\/span>\n      <\/div>\n      <div class=\"formula-box\" style=\"margin-top:14px; border-left-color:var(--rust);\">\n        <div class=\"formula-label\">Watch out<\/div>\n        <div class=\"formula-text\">The two sections must not overlap and must together cover the full floor. Check by confirming the dividing line runs wall to wall with no gaps.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"t-shape\">\n\n<!-- T-SHAPE -->\n<div class=\"shape-card teal\" data-num=\"Shape 02\">\n  <h3>T-Shaped Room<\/h3>\n  <div class=\"shape-meta\">Less common but found in open-plan layouts, older homes with added extensions, or rooms with two alcoves<\/div>\n  <div class=\"shape-body\">\n    <div class=\"shape-svg-wrap\">\n      <svg viewBox=\"0 0 260 250\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"260\" height=\"250\">\n        <defs>\n          <pattern id=\"tA\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e0d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n          <pattern id=\"tB\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#c5d9d5\" stroke-width=\"0.6\"\/><\/pattern>\n          <pattern id=\"tC\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e8d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n        <\/defs>\n        <!-- Section A (top bar of T) -->\n        <rect x=\"10\" y=\"20\" width=\"240\" height=\"70\" fill=\"url(#tA)\"\/>\n        <rect x=\"10\" y=\"20\" width=\"240\" height=\"70\" fill=\"#f5ede0\" opacity=\"0.8\"\/>\n        <!-- Section B (left stem) -->\n        <rect x=\"10\" y=\"90\" width=\"80\" height=\"130\" fill=\"url(#tB)\"\/>\n        <rect x=\"10\" y=\"90\" width=\"80\" height=\"130\" fill=\"#e8f2f0\" opacity=\"0.8\"\/>\n        <!-- Section C (right stem) -->\n        <rect x=\"170\" y=\"90\" width=\"80\" height=\"130\" fill=\"url(#tC)\"\/>\n        <rect x=\"170\" y=\"90\" width=\"80\" height=\"130\" fill=\"#fff8e8\" opacity=\"0.8\"\/>\n        <!-- Divider lines -->\n        <line x1=\"10\" y1=\"90\" x2=\"90\" y2=\"90\" stroke=\"#c9983a\" stroke-width=\"1.5\" stroke-dasharray=\"5,4\"\/>\n        <line x1=\"170\" y1=\"90\" x2=\"250\" y2=\"90\" stroke=\"#c9983a\" stroke-width=\"1.5\" stroke-dasharray=\"5,4\"\/>\n        <!-- T outline -->\n        <path d=\"M10,20 L250,20 L250,90 L170,90 L170,220 L90,220 L90,90 L10,90 Z\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"2.5\"\/>\n        <!-- Labels -->\n        <text x=\"130\" y=\"53\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#b84c2a\">A \u2014 Top Bar<\/text>\n        <text x=\"130\" y=\"68\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">20 \u00d7 6 = 120 sq ft<\/text>\n        <text x=\"50\" y=\"153\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#2a7c72\">B<\/text>\n        <text x=\"50\" y=\"167\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">6 \u00d7 11<\/text>\n        <text x=\"50\" y=\"180\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#2a7c72\">= 66 sq ft<\/text>\n        <text x=\"210\" y=\"153\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#8a6820\">C<\/text>\n        <text x=\"210\" y=\"167\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">6 \u00d7 11<\/text>\n        <text x=\"210\" y=\"180\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#8a6820\">= 66 sq ft<\/text>\n        <text x=\"130\" y=\"238\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#1a1612\">Total: 252 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\">Method<\/div>\n        <div class=\"formula-text\">Split into three rectangles \u2014 the top bar plus the two stems. Calculate each, add all three.<\/div>\n      <\/div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">Draw two horizontal lines across where the stems join the top bar. This gives you three clean rectangles. Measure each one separately.<\/p>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Worked example<\/div>\n        Section A (top bar): 20 \u00d7 6 = 120 sq ft<br>\n        Section B (left stem): 6 \u00d7 11 = 66 sq ft<br>\n        Section C (right stem): 6 \u00d7 11 = 66 sq ft<br>\n        120 + 66 + 66 = <span class=\"ex-answer\">252 sq ft<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"bay-window\">\n\n<!-- BAY WINDOW -->\n<div class=\"shape-card gold\" data-num=\"Shape 03\">\n  <h3>Room with a Bay Window<\/h3>\n  <div class=\"shape-meta\">Living rooms, master bedrooms \u2014 the bay adds usable floor space that needs measuring and covering<\/div>\n  <div class=\"shape-body\">\n    <div class=\"shape-svg-wrap\">\n      <svg viewBox=\"0 0 260 240\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"260\" height=\"240\">\n        <defs>\n          <pattern id=\"bwA\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e0d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n          <pattern id=\"bwB\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e8d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n        <\/defs>\n        <!-- Main room -->\n        <rect x=\"20\" y=\"60\" width=\"200\" height=\"150\" fill=\"url(#bwA)\"\/>\n        <rect x=\"20\" y=\"60\" width=\"200\" height=\"150\" fill=\"#f5ede0\" opacity=\"0.8\"\/>\n        <!-- Bay window rectangle -->\n        <rect x=\"75\" y=\"20\" width=\"90\" height=\"42\" fill=\"url(#bwB)\"\/>\n        <rect x=\"75\" y=\"20\" width=\"90\" height=\"42\" fill=\"#fff8e8\" opacity=\"0.85\"\/>\n        <!-- Divider -->\n        <line x1=\"75\" y1=\"60\" x2=\"165\" y2=\"60\" stroke=\"#c9983a\" stroke-width=\"1.5\" stroke-dasharray=\"5,4\"\/>\n        <!-- Outline -->\n        <path d=\"M20,60 L75,60 L75,20 L165,20 L165,60 L220,60 L220,210 L20,210 Z\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"2.5\"\/>\n        <!-- Labels -->\n        <text x=\"120\" y=\"140\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"13\" font-weight=\"700\" fill=\"#b84c2a\">Main Room<\/text>\n        <text x=\"120\" y=\"157\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">16 \u00d7 12 = 192 sq ft<\/text>\n        <text x=\"120\" y=\"37\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#8a6820\">Bay Window<\/text>\n        <text x=\"120\" y=\"52\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">6 \u00d7 4 = 24 sq ft<\/text>\n        <text x=\"130\" y=\"228\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#1a1612\">Total: 216 sq ft<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\" style=\"border-left-color:var(--gold);\">\n        <div class=\"formula-label\">Method \u2014 rectangular bay<\/div>\n        <div class=\"formula-text\">Measure the main room as a rectangle. Measure the bay as a separate rectangle (width \u00d7 depth). Add both together.<\/div>\n      <\/div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">The bay depth is measured from the main wall out to the bay&#8217;s window wall. The bay width is the distance between the two angled walls where they meet the room.<\/p>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Worked example<\/div>\n        Main room: 16 \u00d7 12 = 192 sq ft<br>\n        Bay window: 6 \u00d7 4 = 24 sq ft<br>\n        192 + 24 = <span class=\"ex-answer\">216 sq ft<\/span>\n      <\/div>\n      <div class=\"formula-box\" style=\"margin-top:14px; border-left-color:var(--teal);\">\n        <div class=\"formula-label\">Curved bay window<\/div>\n        <div class=\"formula-text\">For a curved bay, use the half-circle formula: \u03c0 \u00d7 r\u00b2 \u00f7 2. Measure the radius from the centre of the opening to the furthest wall point.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"angled\">\n\n<!-- ANGLED WALL -->\n<div class=\"shape-card\" data-num=\"Shape 04\">\n  <h3>Room with an Angled or Diagonal Wall<\/h3>\n  <div class=\"shape-meta\">Attic conversions, rooms following a roofline, corner rooms with a cut-off angle<\/div>\n  <div class=\"shape-body\">\n    <div class=\"shape-svg-wrap\">\n      <svg viewBox=\"0 0 260 240\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"260\" height=\"240\">\n        <defs>\n          <pattern id=\"angA\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e0d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n          <pattern id=\"angB\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e8d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n        <\/defs>\n        <!-- Main rectangle (full bounding box) -->\n        <rect x=\"20\" y=\"20\" width=\"190\" height=\"170\" fill=\"url(#angA)\"\/>\n        <rect x=\"20\" y=\"20\" width=\"190\" height=\"170\" fill=\"#f5ede0\" opacity=\"0.75\"\/>\n        <!-- Cut triangle (to subtract) -->\n        <polygon points=\"20,20 100,20 20,100\" fill=\"url(#angB)\"\/>\n        <polygon points=\"20,20 100,20 20,100\" fill=\"#fdf3ef\" opacity=\"0.9\"\/>\n        <!-- Outline of actual room -->\n        <path d=\"M20,100 L100,20 L210,20 L210,190 L20,190 Z\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"2.5\"\/>\n        <!-- Dashed box outline -->\n        <rect x=\"20\" y=\"20\" width=\"190\" height=\"170\" fill=\"none\" stroke=\"#d9d0c3\" stroke-width=\"1\" stroke-dasharray=\"5,4\"\/>\n        <!-- Triangle label -->\n        <text x=\"45\" y=\"58\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#8c3318\" font-weight=\"600\">subtract<\/text>\n        <text x=\"45\" y=\"70\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#8c3318\">triangle<\/text>\n        <!-- Right angle mark -->\n        <rect x=\"20\" y=\"188\" width=\"10\" height=\"-10\" fill=\"none\" stroke=\"#6b6257\" stroke-width=\"1\"\/>\n        <!-- Labels -->\n        <text x=\"150\" y=\"115\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"13\" font-weight=\"700\" fill=\"#b84c2a\">Main Area<\/text>\n        <text x=\"150\" y=\"132\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Rectangle \u2212 Triangle<\/text>\n        <!-- Dimensions -->\n        <text x=\"115\" y=\"14\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\">16 ft<\/text>\n        <text x=\"222\" y=\"108\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#6b6257\" transform=\"rotate(-90,222,108)\">14 ft<\/text>\n        <text x=\"130\" y=\"218\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#1a1612\">Total: 184 sq ft<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\">\n        <div class=\"formula-label\">Method \u2014 subtract the triangle<\/div>\n        <div class=\"formula-text\">Calculate the full bounding rectangle (as if the angle weren&#8217;t there). Calculate the cut triangle. Subtract the triangle from the rectangle.<\/div>\n      <\/div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">The cut triangle&#8217;s area is \u00bd \u00d7 base \u00d7 height. The base and height are the two straight sides of the triangle \u2014 not the diagonal wall itself.<\/p>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Worked example<\/div>\n        Bounding rectangle: 16 \u00d7 14 = 224 sq ft<br>\n        Cut triangle: \u00bd \u00d7 8 \u00d7 10 = 40 sq ft<br>\n        224 \u2212 40 = <span class=\"ex-answer\">184 sq ft<\/span>\n      <\/div>\n      <div class=\"formula-box\" style=\"margin-top:14px; border-left-color:var(--rust);\">\n        <div class=\"formula-label\">Triangle formula reminder<\/div>\n        <div class=\"formula-text\">Area of triangle = \u00bd \u00d7 base \u00d7 perpendicular height<br>Height is the straight vertical distance \u2014 never the length of the diagonal wall itself.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"curved\">\n\n<!-- CURVED WALL -->\n<div class=\"shape-card dark\" data-num=\"Shape 05\">\n  <h3>Room with a Curved Wall<\/h3>\n  <div class=\"shape-meta\">Turret rooms, curved alcoves, round bays, circular garden rooms<\/div>\n  <div class=\"shape-body\">\n    <div class=\"shape-svg-wrap\">\n      <svg viewBox=\"0 0 260 240\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"260\" height=\"240\">\n        <defs>\n          <pattern id=\"curvA\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#e0d8cc\" stroke-width=\"0.6\"\/><\/pattern>\n          <pattern id=\"curvB\" width=\"14\" height=\"14\" patternUnits=\"userSpaceOnUse\"><path d=\"M 14 0 L 0 0 0 14\" fill=\"none\" stroke=\"#c5d9d5\" stroke-width=\"0.6\"\/><\/pattern>\n          <clipPath id=\"semi-clip\">\n            <ellipse cx=\"130\" cy=\"50\" rx=\"70\" ry=\"50\"\/>\n          <\/clipPath>\n        <\/defs>\n        <!-- Main room -->\n        <rect x=\"20\" y=\"50\" width=\"220\" height=\"150\" fill=\"url(#curvA)\"\/>\n        <rect x=\"20\" y=\"50\" width=\"220\" height=\"150\" fill=\"#f5ede0\" opacity=\"0.8\"\/>\n        <!-- Half-circle bump -->\n        <ellipse cx=\"130\" cy=\"50\" rx=\"70\" ry=\"50\" fill=\"url(#curvB)\" clip-path=\"url(#semi-clip)\"\/>\n        <ellipse cx=\"130\" cy=\"50\" rx=\"70\" ry=\"50\" fill=\"#e8f2f0\" opacity=\"0.85\" clip-path=\"url(#semi-clip)\"\/>\n        <!-- Clip the bottom half of ellipse -->\n        <rect x=\"20\" y=\"50\" width=\"220\" height=\"50\" fill=\"#f5ede0\" opacity=\"0\" \/>\n        <!-- Curved top outline -->\n        <path d=\"M20,50 Q60,50 60,50 A70,50 0 0 1 200,50 L220,50 L220,200 L20,200 Z\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"2.5\"\/>\n        <!-- Half circle arc -->\n        <path d=\"M60,50 A70,50 0 0 1 200,50\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"2\" stroke-dasharray=\"6,3\"\/>\n        <!-- Radius line -->\n        <line x1=\"130\" y1=\"50\" x2=\"200\" y2=\"50\" stroke=\"#c9983a\" stroke-width=\"1.5\"\/>\n        <text x=\"165\" y=\"44\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#8a6820\" font-weight=\"600\">r = 6 ft<\/text>\n        <!-- Labels -->\n        <text x=\"130\" y=\"140\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#b84c2a\">Main Room<\/text>\n        <text x=\"130\" y=\"157\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">18 \u00d7 12 = 216 sq ft<\/text>\n        <text x=\"130\" y=\"30\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"11\" font-weight=\"700\" fill=\"#2a7c72\">Half-Circle Curve<\/text>\n        <text x=\"130\" y=\"228\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"12\" font-weight=\"700\" fill=\"#1a1612\">Total: 272.5 sq ft<\/text>\n      <\/svg>\n    <\/div>\n    <div>\n      <div class=\"formula-box\" style=\"border-left-color:#3a3530;\">\n        <div class=\"formula-label\">Method \u2014 rectangle + half circle<\/div>\n        <div class=\"formula-text\">Calculate the rectangular main room. Calculate the curved section using the circle formula (\u03c0 \u00d7 r\u00b2) and divide by 2 for a half-circle. Add both.<\/div>\n      <\/div>\n      <p style=\"font-size:0.95rem; color:var(--muted); margin-bottom:14px;\">Measure the radius of the curve \u2014 the distance from the flat wall where the curve begins to the furthest point of the curve. For a quarter-circle, divide the circle area by 4 instead of 2.<\/p>\n      <div class=\"example-box\">\n        <div class=\"ex-label\">Worked example<\/div>\n        Main room: 18 \u00d7 12 = 216 sq ft<br>\n        Half-circle (r = 6): (3.14159 \u00d7 36) \u00f7 2 = 56.5 sq ft<br>\n        216 + 56.5 = <span class=\"ex-answer\">272.5 sq ft<\/span>\n      <\/div>\n      <div class=\"formula-box\" style=\"margin-top:14px; border-left-color:#3a3530;\">\n        <div class=\"formula-label\">Full circle shapes<\/div>\n        <div class=\"formula-text\">Round rooms or circular garden rooms: \u03c0 \u00d7 r\u00b2 where r = half the diameter. Measure across the widest point and divide by 2 to get r.<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<hr class=\"divider\" id=\"add-subtract\">\n\n<h2>The Add or Subtract Method<\/h2>\n\n<p>For very complex rooms, there are two valid approaches. Use whichever creates fewer, cleaner sections:<\/p>\n\n<div class=\"tips-grid\">\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\u2795<\/div>\n    <strong>Add method<\/strong>\n    <p>Split the room into pieces that together fill the whole floor. Calculate each piece separately and add them all together. Works best for rooms that extend outward \u2014 L-shapes, T-shapes, rooms with bays.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\u2796<\/div>\n    <strong>Subtract method<\/strong>\n    <p>Start with the largest bounding rectangle that contains the whole room. Calculate the bits that aren&#8217;t part of the room (corners cut off, alcoves that don&#8217;t belong) and subtract them. Works best for rooms with diagonal cuts or missing corners.<\/p>\n  <\/div>\n<\/div>\n\n<!-- SVG: Add vs Subtract comparison -->\n<div class=\"diagram-wrap\">\n  <svg width=\"100%\" viewBox=\"0 0 520 220\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" style=\"max-width:520px;\">\n    <title>Comparison showing add method versus subtract method for measuring an L-shaped room<\/title>\n    <defs>\n      <pattern id=\"addA\" width=\"12\" height=\"12\" patternUnits=\"userSpaceOnUse\"><path d=\"M 12 0 L 0 0 0 12\" fill=\"none\" stroke=\"#e0d8cc\" stroke-width=\"0.5\"\/><\/pattern>\n      <pattern id=\"addB\" width=\"12\" height=\"12\" patternUnits=\"userSpaceOnUse\"><path d=\"M 12 0 L 0 0 0 12\" fill=\"none\" stroke=\"#c5d9d5\" stroke-width=\"0.5\"\/><\/pattern>\n      <pattern id=\"subR\" width=\"12\" height=\"12\" patternUnits=\"userSpaceOnUse\"><path d=\"M 12 0 L 0 0 0 12\" fill=\"none\" stroke=\"#e0d8cc\" stroke-width=\"0.5\"\/><\/pattern>\n    <\/defs>\n\n    <!-- ADD METHOD \u2014 left side -->\n    <text x=\"90\" y=\"18\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"13\" font-weight=\"700\" fill=\"#2a7c72\">Add Method<\/text>\n    <!-- Section A -->\n    <rect x=\"10\" y=\"28\" width=\"80\" height=\"60\" fill=\"url(#addA)\"\/>\n    <rect x=\"10\" y=\"28\" width=\"80\" height=\"60\" fill=\"#f5ede0\" opacity=\"0.8\"\/>\n    <rect x=\"10\" y=\"28\" width=\"80\" height=\"60\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"1.5\"\/>\n    <text x=\"50\" y=\"62\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#b84c2a\" font-weight=\"600\">A<\/text>\n    <!-- Section B -->\n    <rect x=\"10\" y=\"88\" width=\"160\" height=\"80\" fill=\"url(#addB)\"\/>\n    <rect x=\"10\" y=\"88\" width=\"160\" height=\"80\" fill=\"#e8f2f0\" opacity=\"0.8\"\/>\n    <rect x=\"10\" y=\"88\" width=\"160\" height=\"80\" fill=\"none\" stroke=\"#2a7c72\" stroke-width=\"1.5\"\/>\n    <text x=\"90\" y=\"132\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#2a7c72\" font-weight=\"600\">B<\/text>\n    <!-- Divider -->\n    <line x1=\"10\" y1=\"88\" x2=\"90\" y2=\"88\" stroke=\"#c9983a\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\/>\n    <!-- L outline -->\n    <path d=\"M10,28 L90,28 L90,88 L170,88 L170,168 L10,168 Z\" fill=\"none\" stroke=\"#1a1612\" stroke-width=\"2\"\/>\n    <text x=\"90\" y=\"188\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">A + B = total<\/text>\n    <text x=\"90\" y=\"202\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#2a7c72\">Fewer steps for L-shapes<\/text>\n\n    <!-- DIVIDER -->\n    <line x1=\"260\" y1=\"18\" x2=\"260\" y2=\"180\" stroke=\"#d9d0c3\" stroke-width=\"1\" stroke-dasharray=\"4,3\"\/>\n\n    <!-- SUBTRACT METHOD \u2014 right side -->\n    <text x=\"390\" y=\"18\" text-anchor=\"middle\" font-family=\"'Playfair Display', serif\" font-size=\"13\" font-weight=\"700\" fill=\"#b84c2a\">Subtract Method<\/text>\n    <!-- Full bounding box -->\n    <rect x=\"280\" y=\"28\" width=\"160\" height=\"140\" fill=\"url(#subR)\"\/>\n    <rect x=\"280\" y=\"28\" width=\"160\" height=\"140\" fill=\"#f5ede0\" opacity=\"0.7\"\/>\n    <rect x=\"280\" y=\"28\" width=\"160\" height=\"140\" fill=\"none\" stroke=\"#d9d0c3\" stroke-width=\"1.5\" stroke-dasharray=\"5,3\"\/>\n    <!-- Missing corner (not part of room) -->\n    <rect x=\"360\" y=\"28\" width=\"80\" height=\"60\" fill=\"white\" opacity=\"0.9\"\/>\n    <rect x=\"360\" y=\"28\" width=\"80\" height=\"60\" fill=\"none\" stroke=\"#b84c2a\" stroke-width=\"1.5\" stroke-dasharray=\"4,3\"\/>\n    <text x=\"400\" y=\"55\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#8c3318\">subtract<\/text>\n    <text x=\"400\" y=\"68\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#8c3318\">this<\/text>\n    <!-- Room outline -->\n    <path d=\"M280,28 L360,28 L360,88 L440,88 L440,168 L280,168 Z\" fill=\"none\" stroke=\"#1a1612\" stroke-width=\"2\"\/>\n    <text x=\"390\" y=\"188\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"10\" fill=\"#6b6257\">Big rect \u2212 corner = total<\/text>\n    <text x=\"390\" y=\"202\" text-anchor=\"middle\" font-family=\"'Source Serif 4', serif\" font-size=\"9\" fill=\"#b84c2a\">Better for cut-corner rooms<\/text>\n  <\/svg>\n<\/div>\n\n<hr class=\"divider\" id=\"reference\">\n\n<h2>Shape Formulas Quick Reference<\/h2>\n\n<table>\n  <thead>\n    <tr>\n      <th>Shape<\/th>\n      <th>Formula<\/th>\n      <th>What to Measure<\/th>\n      <th>Common In<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr><td>Rectangle<\/td><td>Length \u00d7 Width<\/td><td>Two adjacent walls<\/td><td>All rooms \u2014 the base shape<\/td><\/tr>\n    <tr><td>Square<\/td><td>Side\u00b2<\/td><td>One wall<\/td><td>Compact rooms, alcoves<\/td><\/tr>\n    <tr><td>Triangle<\/td><td>\u00bd \u00d7 Base \u00d7 Height<\/td><td>Base wall + perpendicular height<\/td><td>Angled corners, roof cuts, diagonal walls<\/td><\/tr>\n    <tr><td>Half-circle<\/td><td>\u03c0 \u00d7 r\u00b2 \u00f7 2<\/td><td>Radius (half the opening width)<\/td><td>Curved bays, rounded alcoves<\/td><\/tr>\n    <tr><td>Quarter-circle<\/td><td>\u03c0 \u00d7 r\u00b2 \u00f7 4<\/td><td>Radius of the curve<\/td><td>Rounded corner rooms<\/td><\/tr>\n    <tr><td>Full circle<\/td><td>\u03c0 \u00d7 r\u00b2<\/td><td>Radius (half the diameter)<\/td><td>Round rooms, garden rooms<\/td><\/tr>\n    <tr><td>Trapezoid<\/td><td>\u00bd \u00d7 (a + b) \u00d7 h<\/td><td>Both parallel sides + height between them<\/td><td>Rooms following a roofline slope<\/td><\/tr>\n    <tr><td>L-shape<\/td><td>Rect A + Rect B<\/td><td>Each rectangle separately<\/td><td>Extensions, open-plan layouts<\/td><\/tr>\n    <tr><td>Any irregular<\/td><td>Sum of all sections<\/td><td>Split into above shapes<\/td><td>All irregular rooms<\/td><\/tr>\n  <\/tbody>\n<\/table>\n\n<hr class=\"divider\" id=\"mistakes\">\n\n<h2>Mistakes to Avoid<\/h2>\n\n<div class=\"tips-grid\">\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udcd0<\/div>\n    <strong>Trying to measure the room as one shape<\/strong>\n    <p>There&#8217;s no single formula for an irregular room. Attempting to find &#8220;average&#8221; dimensions always gives the wrong answer. Split it \u2014 that&#8217;s the only reliable method.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udd00<\/div>\n    <strong>Overlapping sections<\/strong>\n    <p>If your dividing lines create sections that overlap, you&#8217;ll double-count that area. Check every section border \u2014 each point on the floor should belong to exactly one section.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udccf<\/div>\n    <strong>Using the slant for triangle height<\/strong>\n    <p>The height of a triangle is always the perpendicular distance from the base to the opposite point \u2014 straight up, not along the diagonal wall. Using the diagonal wall length instead is the single most common triangle error.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83e\ude9f<\/div>\n    <strong>Forgetting bay windows and alcoves<\/strong>\n    <p>Bay windows and alcoves add real floor space that needs flooring. They&#8217;re easy to overlook because they&#8217;re at the edge of the room. Measure them as separate sections and add them in.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\udd22<\/div>\n    <strong>Rounding section areas too early<\/strong>\n    <p>Calculate each section to at least one decimal place before adding. Rounding 84.5 to 85, then 62.3 to 62, then adding compounds the error. Round only the final total.<\/p>\n  <\/div>\n  <div class=\"tip-card\">\n    <div class=\"tip-icon\">\ud83d\uddfa\ufe0f<\/div>\n    <strong>Not sketching the room first<\/strong>\n    <p>Trying to hold an irregular floor plan in your head while measuring is how sections get missed or measured twice. Sketch first \u2014 even a rough outline on the back of an envelope is enough to keep you organised.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"callout\">\n  <div class=\"callout-title\">Add extra waste buffer for irregular rooms<\/div>\n  <p>Irregular rooms generate more material waste than rectangular ones \u2014 more cuts at angles, more offcuts at odd corners. Add 12\u201315% waste buffer when buying flooring or tile for any irregular-shaped room, rather than the standard 10%.<\/p>\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\">What is the easiest way to measure an irregular room?<\/div>\n    <p class=\"faq-a\">Sketch the room shape first, then draw lines to divide it into rectangles. Measure each rectangle separately \u2014 length \u00d7 width \u2014 and add the results. Most irregular rooms are just two or three rectangles joined together, so this takes less time than it sounds.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How do I calculate square footage of an L-shaped room?<\/div>\n    <p class=\"faq-a\">Draw a straight line across the notch of the L to divide it into two rectangles. Measure each rectangle separately. Add the two areas together. The dividing line can go horizontally or vertically \u2014 whichever makes the two rectangles easiest to measure in that specific room.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How do I handle a room with a diagonal wall?<\/div>\n    <p class=\"faq-a\">Use the subtract method. Measure the full bounding rectangle as if the diagonal wall weren&#8217;t there. Then calculate the area of the triangle that&#8217;s been cut off: \u00bd \u00d7 base \u00d7 perpendicular height. Subtract the triangle from the rectangle. The perpendicular height is measured straight across from the base \u2014 never along the diagonal wall itself.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">What if I can&#8217;t figure out how to split the room?<\/div>\n    <p class=\"faq-a\">Try the subtract method instead of the add method. Measure the largest rectangle that completely contains the room. Identify the bits that are outside the actual room boundary (usually corners or notches). Calculate each excluded section and subtract it. For very complex shapes, use a smartphone measuring app or hire an appraiser.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">Do I include built-in wardrobes and storage in the square footage?<\/div>\n    <p class=\"faq-a\">For flooring: only if the floor extends underneath them. Built-in wardrobes that sit on top of existing flooring need to be tiled or floored underneath before installation. For real estate measurements: most conventions include built-in storage in the room&#8217;s square footage, since the space is enclosed within the room&#8217;s walls. For furniture planning: exclude them, since they&#8217;re not usable open floor space.<\/p>\n  <\/div>\n  <div class=\"faq-item\">\n    <div class=\"faq-q\">How accurate does my measurement need to be for an irregular room?<\/div>\n    <p class=\"faq-a\">For material purchases (flooring, tile), within 2\u20133% is fine \u2014 the waste buffer covers small errors. For real estate listings or formal appraisals, within 1% is the standard. For very complex shapes or high-value purchases, consider hiring a professional measurer or using a laser measuring tool rather than a tape measure.<\/p>\n  <\/div>\n<\/div>\n\n<div class=\"cta-box\">\n  <p>Have your section dimensions ready? Calculate each section and add them up 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>Most rooms aren&#8217;t perfect rectangles. Bay windows, angled corners, L-shapes, alcoves, curved walls \u2014 all of them have square footage that can be measured accurately if you know how to break the shape apart. In this guide The one rule that handles any shape Step-by-step process L-shaped rooms T-shaped rooms Rooms with bay windows Rooms&#8230;<\/p>\n","protected":false},"author":1,"featured_media":184,"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-182","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-to-Measure-Square-Footage-of-an-Irregular-Shaped-Room-1024x687.webp",1024,687,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\/182","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=182"}],"version-history":[{"count":2,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts\/182\/revisions"}],"predecessor-version":[{"id":185,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/posts\/182\/revisions\/185"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/media\/184"}],"wp:attachment":[{"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/media?parent=182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/categories?post=182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/squarefootcalc.com\/blog\/wp-json\/wp\/v2\/tags?post=182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}