{
  "name": "YardsNeeded construction material quantities",
  "description": "How each material is sold, how the quantity is calculated, and where every number comes from.",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "citation": "YardsNeeded (EasyByte Hub S. Coop. Mad.). Construction material quantities, with sources. https://yardsneeded.com/data/",
  "publisher": "EasyByte Hub S. Coop. Mad.",
  "url": "https://yardsneeded.com/data/",
  "records": [
    {
      "id": "gravel",
      "material": "Gravel",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [
        {
          "field": "Delivered state",
          "value": 1.4,
          "label": "Loose gravel, delivered by the truck — 1.4 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 1.35,
          "label": "Loose and dry, low end of the range — 1.35 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 1.45,
          "label": "Loose and wet — 1.45 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 1.85,
          "label": "Compacted base in place — 1.85 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 2,
          "label": "Crushed stone, dense maximum — 2.0 tons/yd³"
        }
      ],
      "sources": [
        {
          "note": "1 cubic yard = 27 cubic feet, exact by definition. Everything on this page is that arithmetic and nothing else.",
          "url": null
        },
        {
          "note": "Driveway depth: Federal Highway Administration, Gravel Roads Construction & Maintenance Guide (2015, publication OTS15002). Its example road finished at 10 inches of compacted gravel, a minimum 6-inch first layer is recommended over geotextile fabric, and any layer thicker than 4 inches is placed in separate lifts so it compacts. Read September 28, 2026.",
          "url": "https://www.fhwa.dot.gov/construction/pubs/ots15002.pdf"
        },
        {
          "note": "Tons, loose gravel: U.S. Army field manual FM 5-434, Earthmoving Operations, Table 1-2 (Material Weight). Loose dry gravel is 2,700 to 3,000 lb per cubic yard, which is 1.35 to 1.50 short tons; wet it is 2,800 to 3,100 lb (1.40 to 1.55 tons). The manual states these are averages that vary with grain size, moisture and compaction. Public domain; read October 1, 2026.",
          "url": "https://www.globalsecurity.org/military/library/policy/army/fm/5-434/chap1.pdf"
        },
        {
          "note": "Tons, compacted base: Wisconsin Department of Transportation Standard Specifications, section 305, which pays dense base aggregate placed in the roadway at 1.85 tons per cubic yard. Read October 1, 2026.",
          "url": "https://wisconsindot.gov/rdwy/stndspec/ss-03-05.pdf"
        },
        {
          "note": "Tons, crushed dense maximum: Ohio Department of Transportation section 304.07 (2008 Construction and Material Specifications), which lists crushed stone and crushed gravel at 4,000 lb per cubic yard, that is 2.0 short tons. Read October 1, 2026.",
          "url": "https://www.dot.state.oh.us/Divisions/ConstructionMgt/OnlineDocs/Specifications/2008CMS/300/304.htm"
        }
      ],
      "caveat": "Order by the cubic yard: it is the unit the yard loads and the one this count gives.",
      "reviewed": "2026-10-28",
      "page": "https://yardsneeded.com/gravel-calculator/"
    },
    {
      "id": "concrete-slab",
      "material": "Concrete slab",
      "sold_in": "cubic yards or bags",
      "method": "volume_in_bags",
      "formula": "bags = ceil(length ft × width ft × (depth in ÷ 12) ÷ bag yield cu ft)",
      "options": [
        {
          "field": "Bag size",
          "value": "0.3",
          "label": "40 lb — 0.30 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.375",
          "label": "50 lb — 0.375 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.45",
          "label": "60 lb — 0.45 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.6",
          "label": "80 lb — 0.60 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.675",
          "label": "90 lb — 0.675 cu ft"
        },
        {
          "field": "Extra for waste",
          "value": "0",
          "label": "None"
        },
        {
          "field": "Extra for waste",
          "value": "5",
          "label": "5%"
        },
        {
          "field": "Extra for waste",
          "value": "10",
          "label": "10%"
        }
      ],
      "sources": [
        {
          "note": "Bag yields: Quikrete Concrete Mix technical data sheet, Division 3, 03 31 00 Structural Concrete, document 1101. A 40 lb bag yields 0.30 cu ft, 50 lb 0.375, 60 lb 0.45, 80 lb 0.60 and 90 lb 0.675. Read October 12, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-CONCRETE%20MIX%201101.pdf"
        },
        {
          "note": "Volume is geometry: 1 cubic yard = 27 cubic feet, exact by definition.",
          "url": null
        }
      ],
      "caveat": "Bag counts are rounded up. Half a bag of mix cannot be saved once it is open, and a slab poured short is a slab poured twice.",
      "reviewed": "2026-10-31",
      "page": "https://yardsneeded.com/concrete-slab-calculator/"
    },
    {
      "id": "drywall",
      "material": "Drywall",
      "sold_in": "sheets",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Panel size",
          "value": "48x96",
          "label": "4 × 8 ft — 32 sq ft"
        },
        {
          "field": "Panel size",
          "value": "48x108",
          "label": "4 × 9 ft — 36 sq ft"
        },
        {
          "field": "Panel size",
          "value": "48x120",
          "label": "4 × 10 ft — 40 sq ft"
        },
        {
          "field": "Panel size",
          "value": "48x144",
          "label": "4 × 12 ft — 48 sq ft"
        }
      ],
      "sources": [
        {
          "note": "Panel coverage is the nominal size you select, multiplied out: a 4 by 8 ft sheet is 32 square feet. No claim of ours is involved — you tell the page which panel you are buying.",
          "url": null
        },
        {
          "note": "Screws: International Residential Code 2021, Table R702.3.5, maximum fastener spacing for gypsum board applied without adhesive: screws 12 inches apart on ceilings, 16 inches on walls with framing 16 inches on center, 12 inches on walls with framing 24 inches on center; and Section R702.3.5.1, Type W or Type S screws to ASTM C1002 that penetrate the wood not less than 5/8 inch. Read on UpCodes in the edition Colorado adopts without amendments, October 28, 2026.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/7/wall-covering"
        }
      ],
      "caveat": "This counts panels for a flat wall. It does not subtract doors and windows: leaving them in is what most people want, because the scraps rarely reach the next wall.",
      "reviewed": "2026-10-28",
      "page": "https://yardsneeded.com/drywall-calculator/"
    },
    {
      "id": "concrete-block",
      "material": "Concrete block",
      "sold_in": "blocks",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Block size (nominal face)",
          "value": "8x16",
          "label": "8 × 16 in face (standard block, any thickness) — 0.89 sq ft"
        },
        {
          "field": "Block size (nominal face)",
          "value": "4x16",
          "label": "4 × 16 in — 0.44 sq ft"
        },
        {
          "field": "Block size (nominal face)",
          "value": "12x16",
          "label": "12 × 16 in face (not the 12-inch-thick block) — 1.33 sq ft"
        },
        {
          "field": "Block size (nominal face)",
          "value": "8x8",
          "label": "8 × 8 in — 0.44 sq ft"
        },
        {
          "field": "Mortar",
          "value": 13,
          "label": "Laid in mortar — 80 lb bag of Mortar Mix or Mason Mix lays 13 blocks (QUIKRETE)"
        },
        {
          "field": "Mortar",
          "value": 0,
          "label": "Dry-stacked, no mortar"
        }
      ],
      "sources": [
        {
          "note": "Block coverage is the nominal face you select, multiplied out: an 8 by 16 inch nominal block covers 0.89 square feet. Nominal sizes already include the mortar joint, which is why the arithmetic works without adding one.",
          "url": null
        },
        {
          "note": "Mortar: QUIKRETE Mortar Mix No. 1102 (Type N) and Mason Mix No. 1136 (Type S) data sheets, both revised November 2020: «Each 80 lb (36.2 kg) bag … will lay up to 37 standard bricks or 13 standard (8 in by 8 in by 16 in [200 mm by 200 mm by 405 mm]) blocks». Bags are the blocks laid, without the waste allowance, divided by 13 and rounded up. The sheets give no yield for other block faces or other bag sizes. Read November 5, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-Mortar%20Mix%201102.pdf"
        },
        {
          "note": "The same yield on the Type S sheet: QUIKRETE Mason Mix No. 1136, sold in 60, 80 and 94 lb bags, with the yield given for the 80 lb bag only. Read November 5, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-Mason%20Mix%201136.pdf"
        }
      ],
      "caveat": "This counts stretcher blocks for a straight wall. Corners, bond beams and half blocks are counted apart.",
      "reviewed": "2026-11-05",
      "page": "https://yardsneeded.com/concrete-block-calculator/"
    },
    {
      "id": "sand",
      "material": "Sand",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [],
      "sources": [
        {
          "note": "1 cubic yard = 27 cubic feet, exact by definition. Everything on this page is that arithmetic and nothing else.",
          "url": null
        },
        {
          "note": "Bedding sand under pavers: ICPI (Interlocking Concrete Pavement Institute) Tech Spec 2, Construction of Interlocking Concrete Pavements. Bedding sand should conform to ASTM C33, often called concrete sand, and is spread and screeded to an uncompacted nominal 1 in. (25 mm); masonry sand for mortar should never be used for bedding. Read October 18, 2026.",
          "url": "https://www.lampus.com/files/Resources/990_Tech_Spec_2.pdf"
        }
      ],
      "caveat": "Order by the cubic yard: it is the unit the yard loads and the one this count gives.",
      "reviewed": "2026-10-18",
      "page": "https://yardsneeded.com/sand-calculator/"
    },
    {
      "id": "paver",
      "material": "Pavers",
      "sold_in": "pavers",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Paver size",
          "value": "12x12",
          "label": "12 × 12 in — 1.00 sq ft"
        },
        {
          "field": "Paver size",
          "value": "16x16",
          "label": "16 × 16 in — 1.78 sq ft"
        },
        {
          "field": "Paver size",
          "value": "24x24",
          "label": "24 × 24 in — 4.00 sq ft"
        },
        {
          "field": "Paver size",
          "value": "4x8",
          "label": "4 × 8 in brick — 0.22 sq ft"
        },
        {
          "field": "Paver size",
          "value": "6x9",
          "label": "6 × 9 in — 0.38 sq ft"
        }
      ],
      "sources": [
        {
          "note": "Paver coverage is the size you select, multiplied out: a 24 by 24 inch paver covers 4 square feet. You tell the page which paver you are buying, so no figure here is ours to source.",
          "url": null
        }
      ],
      "caveat": "A patio laid on a diagonal or a herringbone pattern cuts more pieces than a straight grid: raise the waste allowance for those.",
      "reviewed": "2026-10-18",
      "page": "https://yardsneeded.com/paver-calculator/"
    },
    {
      "id": "topsoil",
      "material": "Topsoil",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [],
      "sources": [
        {
          "note": "1 cubic yard = 27 cubic feet, exact by definition. The volume of soil to fill an area is that arithmetic and nothing else, so it does not depend on any density we would have to source.",
          "url": null
        }
      ],
      "caveat": "Order by the cubic yard, and buy for the finished depth you want: fresh topsoil settles once it is watered and walked on.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/topsoil-calculator/"
    },
    {
      "id": "mulch",
      "material": "Mulch",
      "sold_in": "cubic yards or bags",
      "method": "volume_in_bags",
      "formula": "bags = ceil(length ft × width ft × (depth in ÷ 12) ÷ bag yield cu ft)",
      "options": [
        {
          "field": "Bag size",
          "value": "1.5",
          "label": "1.5 cu ft bag"
        },
        {
          "field": "Bag size",
          "value": "2",
          "label": "2 cu ft bag"
        },
        {
          "field": "Bag size",
          "value": "3",
          "label": "3 cu ft bag"
        }
      ],
      "sources": [
        {
          "note": "Bag sizes: Scotts Nature Scapes Color Enhanced Mulch is sold in 1.5 and 2 cubic foot bags, per the manufacturer's product page. Read September 29, 2026.",
          "url": "https://scottsmiraclegro.com/en-us/brands/scotts/products/browse-all-scotts-products/scotts-nature-scapes-color-enhanced-mulch/8840244.html"
        },
        {
          "note": "Volume is geometry: 1 cubic yard = 27 cubic feet, exact by definition, so a cubic yard of mulch is 13.5 of the 2 cubic foot bags, 14 to buy. At 3 inches deep a 2 cubic foot bag covers 8 square feet (2 ÷ 0.25).",
          "url": null
        },
        {
          "note": "Depth: Penn State Extension, Mulching Landscape Trees, recommends a 2- to 4-inch layer of organic mulch and no more, using less on poorly drained soil, because more than 4 inches can harm the root system. Read September 29, 2026.",
          "url": "https://extension.psu.edu/mulching-landscape-trees"
        },
        {
          "note": "Playground depth: U.S. Consumer Product Safety Commission, Public Playground Safety Handbook (Pub. 325), Table 2: 9 inches of wood chips protects to a fall height of 10 feet. Loose-fill materials compress at least 25% over time, so where 9 inches of wood chips are required the initial fill level is 12 inches; never less than 9 inches of loose fill except shredded/recycled rubber (6 inches recommended). Read October 28, 2026.",
          "url": "https://www.cpsc.gov/s3fs-public/325.pdf"
        }
      ],
      "caveat": "Bag counts are rounded up. Mulch settles and breaks down over a season, so an established bed usually needs only a top-up to hold its depth, not a full new layer.",
      "reviewed": "2026-10-28",
      "page": "https://yardsneeded.com/mulch-calculator/"
    },
    {
      "id": "tile",
      "material": "Tile",
      "sold_in": "tiles",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Tile size",
          "value": "12x12",
          "label": "12 × 12 in — 1 sq ft"
        },
        {
          "field": "Tile size",
          "value": "12x18",
          "label": "12 × 18 in — 1.5 sq ft"
        },
        {
          "field": "Tile size",
          "value": "12x24",
          "label": "12 × 24 in — 2 sq ft"
        },
        {
          "field": "Tile size",
          "value": "18x18",
          "label": "18 × 18 in — 2.25 sq ft"
        },
        {
          "field": "Tile size",
          "value": "24x24",
          "label": "24 × 24 in — 4 sq ft"
        },
        {
          "field": "Tile size",
          "value": "6x24",
          "label": "6 × 24 in — 1 sq ft"
        },
        {
          "field": "Tile size",
          "value": "8x48",
          "label": "8 × 48 in — 2.67 sq ft"
        },
        {
          "field": "Tile size",
          "value": "4x16",
          "label": "4 × 16 in — 0.44 sq ft"
        }
      ],
      "sources": [
        {
          "note": "Tile coverage is the size you select, multiplied out: a 12 by 18 inch tile covers 1.5 square feet. You tell the page which tile you are buying, so no figure here is ours to source.",
          "url": null
        }
      ],
      "caveat": "This counts the floor area you type in. It does not subtract a bath, a shower pan or cabinets, and it does not know your layout: a diagonal or herringbone pattern cuts more pieces than a straight grid, so raise the waste allowance for those.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/tile-calculator/"
    },
    {
      "id": "insulation",
      "material": "Insulation",
      "sold_in": "batts",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Batt size",
          "value": "15x48",
          "label": "15 × 48 in — 5 sq ft"
        },
        {
          "field": "Batt size",
          "value": "15x93",
          "label": "15 × 93 in — 9.69 sq ft"
        },
        {
          "field": "Batt size",
          "value": "23x48",
          "label": "23 × 48 in — 7.67 sq ft"
        },
        {
          "field": "Batt size",
          "value": "23x93",
          "label": "23 × 93 in — 14.9 sq ft"
        },
        {
          "field": "Batt size",
          "value": "16x48",
          "label": "16 × 48 in — 5.33 sq ft"
        },
        {
          "field": "Batt size",
          "value": "24x48",
          "label": "24 × 48 in — 8 sq ft"
        }
      ],
      "sources": [
        {
          "note": "Batt coverage is the size you select, multiplied out: a 15 by 48 inch batt covers 5 square feet. You tell the page which batt you are buying, so no figure here is ours to source.",
          "url": null
        },
        {
          "note": "Minimum R-values required by code (IECC), by climate zone: the 2021 International Energy Conservation Code, Table R402.1.3, as published by the US Department of Energy Building America Solution Center (PNNL). These are minimums, not targets: it sets ceilings from R-30 to R-60 and wood-frame walls from R-13 to R-30 depending on the zone. Read October 1, 2026.",
          "url": "https://basc.pnnl.gov/information/2009-2021-iecc-and-irc-minimum-insulation-requirements-new-homes"
        },
        {
          "note": "Attic R-values to add in an existing house: ENERGY STAR, Recommended Home Insulation R-Values, table for retrofitting existing wood-framed buildings, based on the 2021 IECC Table R402.1.3. Uninsulated attic: R30 in zone 1, R49 in zones 2 and 3, R60 in zones 4 to 8; with 3 to 4 inches already: R25, R38 and R49. Read October 12, 2026.",
          "url": "https://www.energystar.gov/saveathome/seal_insulate/identify-problems-you-want-fix/diy-checks-inspections/insulation-r-values"
        }
      ],
      "caveat": "This counts batts for a flat area. It does not subtract windows and doors, and it does not add for the odd bays at the corners: leaving both in is what most people want, because a scrap from one bay rarely fits the next one.",
      "reviewed": "2026-10-12",
      "page": "https://yardsneeded.com/insulation-calculator/"
    },
    {
      "id": "brick",
      "material": "Brick",
      "sold_in": "bricks",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Brick face size",
          "value": "7.625x2.25",
          "label": "7 5/8 × 2 1/4 in"
        },
        {
          "field": "Brick face size",
          "value": "7.625x2.75",
          "label": "7 5/8 × 2 3/4 in"
        },
        {
          "field": "Brick face size",
          "value": "7.625x3.625",
          "label": "7 5/8 × 3 5/8 in"
        },
        {
          "field": "Brick face size",
          "value": "7.5x2.25",
          "label": "7 1/2 × 2 1/4 in"
        },
        {
          "field": "Brick face size",
          "value": "11.625x2.25",
          "label": "11 5/8 × 2 1/4 in"
        },
        {
          "field": "Brick face size",
          "value": "11.625x3.625",
          "label": "11 5/8 × 3 5/8 in"
        }
      ],
      "sources": [
        {
          "note": "The count is geometry on the two figures you enter: the brick face you measure and the mortar joint you lay. Each brick takes up its own face plus one joint in each direction, so a 7 5/8 by 2 1/4 inch brick with a 3/8 inch joint occupies 8 by 2 5/8 inches. No figure here is ours to source, and this page does not tell you how thick your joint should be.",
          "url": null
        }
      ],
      "caveat": "This counts a single-wythe face: one brick thick, laid in a running bond. It does not subtract openings, it does not add the extra bricks a double wythe or a pier needs, and it says nothing about mortar quantity, which depends on the joint and is not on this page.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/brick-calculator/"
    },
    {
      "id": "siding",
      "material": "Siding",
      "sold_in": "panels",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Panel length and exposure",
          "value": "144x8",
          "label": "12 ft × 8 in exposure — 8 sq ft"
        },
        {
          "field": "Panel length and exposure",
          "value": "144x9",
          "label": "12 ft × 9 in exposure — 9 sq ft"
        },
        {
          "field": "Panel length and exposure",
          "value": "144x10",
          "label": "12 ft × 10 in exposure — 10 sq ft"
        },
        {
          "field": "Panel length and exposure",
          "value": "150x8",
          "label": "12 ft 6 in × 8 in exposure — 8.33 sq ft"
        },
        {
          "field": "Panel length and exposure",
          "value": "150x9",
          "label": "12 ft 6 in × 9 in exposure — 9.38 sq ft"
        },
        {
          "field": "Panel length and exposure",
          "value": "150x10",
          "label": "12 ft 6 in × 10 in exposure — 10.42 sq ft"
        }
      ],
      "sources": [
        {
          "note": "A panel covers its length times its EXPOSURE, which is the part left showing once it laps the course below: a 12 ft panel with 8 in of exposure covers 8 square feet. Both figures are the ones you read off the panel, so none of them is ours to source.",
          "url": null
        },
        {
          "note": "This page counts PANELS, not squares. The trade sells siding by the square, meaning 100 square feet, and by the box; this page does not use that unit because the panels per box vary by maker and we would have to source it. Divide the count by the panels printed on your box.",
          "url": null
        }
      ],
      "caveat": "This counts the flat wall area you type in. It does not subtract windows and doors, it does not add the extra laps a gable or a corner needs, and it counts no trim: starter strip, J-channel and corner posts are sold by the piece and are not on this page.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/siding-calculator/"
    },
    {
      "id": "fence",
      "material": "Fence",
      "sold_in": "pickets",
      "method": "linear_run",
      "formula": "pickets = ceil(run ft × 12 ÷ (picket width in + gap in)); sections = ceil(run ft ÷ post spacing ft); posts = sections + 1; rails = sections × rails per section",
      "options": [],
      "sources": [
        {
          "note": "The count is geometry on the five figures you enter. Pickets are the run in inches divided by one picket plus one gap. Posts come from the sections: the run divided by your spacing, rounded up, plus one to close it — that last post is the one that gets left out when the sum is done by hand.",
          "url": null
        },
        {
          "note": "This page does not tell you how far apart to set your posts, how many rails to run or how wide a gap to leave. Those depend on your fence, your wind and your local code, and they are figures we would have to source before printing them. They are inputs here, not claims.",
          "url": null
        }
      ],
      "caveat": "This counts the fence itself: pickets, posts and rails. It does not count gates, and it does not count the concrete for the post holes — that depends on the hole you dig, and the bag yield for it is on the concrete slab page, not here. A corner or a change of direction needs its own post, so add one for each.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/fence-calculator/"
    },
    {
      "id": "roofing",
      "material": "Roofing",
      "sold_in": "bundles",
      "method": "roof_pitch",
      "formula": "roof sq ft = footprint sq ft × √(rise in² + 12²) ÷ 12; bundles = ceil(roof sq ft × (1 + waste) ÷ bundle coverage sq ft)",
      "options": [
        {
          "field": "Coverage per bundle",
          "value": "33.33333333",
          "label": "33.3 sq ft per bundle"
        },
        {
          "field": "Coverage per bundle",
          "value": "32",
          "label": "32 sq ft per bundle"
        },
        {
          "field": "Coverage per bundle",
          "value": "25",
          "label": "25 sq ft per bundle"
        },
        {
          "field": "Coverage per bundle",
          "value": "20",
          "label": "20 sq ft per bundle"
        },
        {
          "field": "Coverage per bundle",
          "value": "16.66666667",
          "label": "16.7 sq ft per bundle"
        }
      ],
      "sources": [
        {
          "note": "The pitch factor is not a figure we looked up: it is Pythagoras. A pitch of 5 in 12 means the roof climbs 5 inches for every 12 it runs, so the rafter covers √(5² + 12²) = 13 inches for every 12 of footprint, and the surface is 13/12 of the plan area. Other pages print a table of factors; this one takes the square root of the pitch you type.",
          "url": null
        },
        {
          "note": "Coverage per bundle is the figure printed on the wrapper, and you select it. This page does not use the trade unit of the square, nor assume three bundles to one, because the bundles per square vary with the product and that would be a figure we have to source.",
          "url": null
        }
      ],
      "caveat": "This is the surface of a simple gable or hip read off its footprint. It does not add the extra courses that hips, valleys and ridges eat, it does not count starter or ridge cap, and it does not subtract chimneys or skylights. A cut-up roof needs a bigger waste allowance than a plain one: that allowance is yours to set.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/roofing-calculator/"
    },
    {
      "id": "stair",
      "material": "Stair",
      "sold_in": "risers",
      "method": "stair_rise",
      "formula": "risers = ceil(total rise in ÷ 7.75); riser in = total rise ÷ risers; treads = risers − 1; total run = treads × tread depth in; stringer = √(rise² + run²). Limits from IRC 2021 R311.7.5.1 (riser ≤ 7 3/4 in, variation ≤ 3/8 in), R311.7.5.2 (tread ≥ 10 in), R311.7.2 (headroom ≥ 6 ft 8 in), R311.7.3 (rise per flight ≤ 12 ft 7 in)",
      "options": [],
      "sources": [
        {
          "note": "Riser, tread and headroom limits: 2021 International Residential Code, Section R311.7.5.1 (riser height not more than 7 3/4 inches, and the greatest riser in a flight not more than 3/8 inch over the smallest), R311.7.5.2 (tread depth not less than 10 inches, with the same 3/8 inch variation), R311.7.2 (headroom not less than 6 feet 8 inches) and R311.7.3 (no flight rises more than 12 feet 7 inches between landings). Read on the ICC public access site October 1, 2026.",
          "url": "https://codes.iccsafe.org/content/IRC2021P2/chapter-3-building-planning#IRC2021P2_Pt03_Ch03_SecR311"
        },
        {
          "note": "The count is arithmetic on that limit: risers = total rise ÷ 7.75, rounded up; each riser = total rise ÷ risers; treads = risers − 1, because the top floor is the last step; total run = treads × tread depth; the stringer is the hypotenuse of rise and run, Pythagoras again.",
          "url": null
        }
      ],
      "caveat": "This lays out one straight flight between finished floors: measure the rise from finished floor to finished floor, not subfloor to subfloor. The top and bottom need a landing at least as wide as the stair, a flight that rises more than 12 ft 7 in needs one in the middle, and the state or city that adopted the IRC can amend any of these figures: the limit that counts is the one in your adopted code.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/stair-calculator/"
    },
    {
      "id": "fence-post-concrete",
      "material": "Fence post concrete",
      "sold_in": "bags",
      "method": "post_hole_bags",
      "formula": "cu ft per hole = (π × (hole diameter in ÷ 2)² − post section in²) × concrete depth in ÷ 1728; bags = ceil(posts × cu ft per hole ÷ bag yield cu ft), yield from the Quikrete Fast-Setting Concrete Mix data sheet (50 lb = 0.375 cu ft, 60 lb = 0.45 cu ft)",
      "options": [
        {
          "field": "Post size",
          "value": "12.25",
          "label": "4 × 4 wood post — 3 1/2 × 3 1/2 in actual"
        },
        {
          "field": "Post size",
          "value": "19.25",
          "label": "4 × 6 wood post — 3 1/2 × 5 1/2 in actual"
        },
        {
          "field": "Post size",
          "value": "30.25",
          "label": "6 × 6 wood post — 5 1/2 × 5 1/2 in actual"
        },
        {
          "field": "Post size",
          "value": "0",
          "label": "No post: solid plug of concrete"
        },
        {
          "field": "Bag size",
          "value": "0.375",
          "label": "50 lb fast-setting — 0.375 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.45",
          "label": "60 lb fast-setting — 0.45 cu ft"
        }
      ],
      "sources": [
        {
          "note": "Bag yields: Quikrete Fast-Setting Concrete Mix technical data sheet, product No. 1004, Division 3, 03 31 00 Structural Concrete, revised November 2025. A 50 lb bag yields approximately 0.375 cu ft and a 60 lb bag 0.45 cu ft; there is no 80 lb bag of this mix. The sheet's own example, two 50 lb bags for a 3 in square post in a 9 in hole 30 in deep, comes out of this arithmetic once the 6 in gravel base and the 3 to 4 in of fill on top are taken off the 30 in. Read October 1, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-Fast%20Setting%20Concrete%20Mix%201004-50.pdf"
        },
        {
          "note": "Hole size: Quikrete “Setting Posts” project guide. Dig the hole 3 times the width of the post (a 12 in hole for a 4 in post) and 1/3 to 1/2 of the post's height above ground deep (at least 2 ft for a 6 ft fence), put 6 in of gravel in the bottom, pour the mix in dry to 3 to 4 in below grade and add about a gallon of water per 50 lb bag. Read October 1, 2026.",
          "url": "https://www.quikrete.com/athome/video-setting-posts.asp"
        },
        {
          "note": "Actual post sizes: Wood Handbook, Wood as an Engineering Material (USDA Forest Service, Forest Products Laboratory, FPL-GTR-190, 2010), Table 6-6, American Standard Lumber sizes, which reproduces the minimum dressed sizes of the American Softwood Lumber Standard PS 20: a nominal 4 in dresses to 3 1/2 in dry and a nominal 6 in to 5 1/2 in. So a 4 × 4 post takes 12.25 sq in of the hole, a 4 × 6 19.25 and a 6 × 6 30.25. Read October 1, 2026.",
          "url": "https://research.fs.usda.gov/download/treesearch/37440.pdf"
        },
        {
          "note": "The volume is geometry: a cylinder of the hole diameter and the concrete depth, less the post's own cross-section, in cubic feet (÷ 1,728). Bags are the total for all holes divided by the yield, rounded up once, because the mix is poured dry and a part bag goes on to the next hole.",
          "url": null
        }
      ],
      "caveat": "Bag counts are rounded up over the whole run, not hole by hole. This is the concrete only: it does not count the 6 in of gravel under each post, and the depth to enter is the depth of concrete, which in Quikrete's method is the hole less the gravel base and the 3 to 4 in of soil put back on top. A post that carries a deck or a roof is a footing, and goes below the frost line.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/fence-post-concrete-calculator/"
    },
    {
      "id": "deck-joist-span",
      "material": "Deck joist span",
      "sold_in": "feet and inches of span",
      "method": "span_table",
      "formula": "maximum span = IRC 2021 Table R507.6 [load, species, joist size, spacing]; a lookup, no arithmetic",
      "options": [
        {
          "field": "Species",
          "value": "southern-pine",
          "label": "Southern pine"
        },
        {
          "field": "Species",
          "value": "douglas-fir-larch-hem-fir-spf",
          "label": "Douglas fir-larch, hem-fir or spruce-pine-fir"
        },
        {
          "field": "Species",
          "value": "redwood-western-cedars-ponderosa-red-pine",
          "label": "Redwood, western cedars, ponderosa pine or red pine"
        },
        {
          "field": "Joist size",
          "value": "2x6",
          "label": "2 × 6"
        },
        {
          "field": "Joist size",
          "value": "2x8",
          "label": "2 × 8"
        },
        {
          "field": "Joist size",
          "value": "2x10",
          "label": "2 × 10"
        },
        {
          "field": "Joist size",
          "value": "2x12",
          "label": "2 × 12"
        },
        {
          "field": "Joist spacing",
          "value": "12",
          "label": "12 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "16",
          "label": "16 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "24",
          "label": "24 in on center"
        },
        {
          "field": "Load",
          "value": "40-live",
          "label": "40 psf live load, no snow"
        },
        {
          "field": "Load",
          "value": "50-snow",
          "label": "50 psf ground snow load"
        },
        {
          "field": "Load",
          "value": "60-snow",
          "label": "60 psf ground snow load"
        },
        {
          "field": "Load",
          "value": "70-snow",
          "label": "70 psf ground snow load"
        }
      ],
      "sources": [
        {
          "note": "Spans: 2021 International Residential Code, Section R507.6 Deck joists and Table R507.6, Maximum Deck Joist Spans, printed in full above. The table assumes No. 2 grade lumber with the wet service factor, a dead load of 10 psf, deflection limited to L/360 at the main span and to L/180 at a cantilever with a 220 lb point load on the end, and allows interpolation but not extrapolation. Read on the ICC public access site October 1, 2026.",
          "url": "https://codes.iccsafe.org/content/IRC2021P2/chapter-5-floors#IRC2021P2_Pt03_Ch05_SecR507.6"
        },
        {
          "note": "Nothing here is calculated: the page looks up the cell for your species, size, spacing and load, and for a span you type it lists the sizes whose cell is at least that long.",
          "url": null
        }
      ],
      "caveat": "This is the IRC's table for a residential deck at the loads shown. It does not cover a hot tub, heavy planters or a roof over the deck, which are engineered loads, and a joist set at 24 in may be limited by the decking (IRC Table R507.7). Your state or county adopts a version of the IRC and can amend the table: the span your inspector accepts is the one in your adopted code.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/deck-joist-span-calculator/"
    },
    {
      "id": "paver-base",
      "material": "Paver base",
      "sold_in": "cubic yards",
      "method": "layers",
      "formula": "base cu yd = length ft × width ft × (base in ÷ 12) ÷ 27; bedding sand cu yd = length ft × width ft × (sand in ÷ 12) ÷ 27. Base thickness by use from ICPI Tech Spec 2 (4 in pedestrian, 6 in residential driveway, +2 to 4 in cold or wet, 8 to 10 in streets); bedding sand a nominal 1 in",
      "options": [
        {
          "field": "Use (sets the base thickness)",
          "value": 4,
          "label": "Walkway or patio, pedestrian — 4 in base (ICPI minimum)"
        },
        {
          "field": "Use (sets the base thickness)",
          "value": 6,
          "label": "Residential driveway — 6 in base (ICPI minimum)"
        },
        {
          "field": "Use (sets the base thickness)",
          "value": 8,
          "label": "Driveway in cold or wet ground — 6 in plus 2 in"
        },
        {
          "field": "Use (sets the base thickness)",
          "value": 10,
          "label": "Residential street or heavy use — 8 to 10 in"
        }
      ],
      "sources": [
        {
          "note": "Base and bedding thickness: ICPI (Interlocking Concrete Pavement Institute) Tech Spec 2, Construction of Interlocking Concrete Pavements. The base, after compaction, is a minimum 4 in over well-drained soil for sidewalks, patios and pedestrian areas, at least 6 in for residential driveways, and 2 to 4 in thicker in cold climates or on wet or weak soils; residential streets run 8 to 10 in. The bedding sand is spread and screeded to an uncompacted nominal 1 in. Read October 2, 2026.",
          "url": "https://www.lampus.com/files/Resources/990_Tech_Spec_2.pdf"
        },
        {
          "note": "Volume is geometry: each layer is its area times its thickness, and 1 cubic yard = 27 cubic feet, exact by definition. The base and the bedding sand are counted separately because they are two different materials, each delivered by the cubic yard.",
          "url": null
        }
      ],
      "caveat": "This counts the base aggregate and the bedding sand for a flat area at the thickness you pick. It does not count the pavers, the edge restraints or the joint sand swept between them. The base figure is the compacted thickness: loose aggregate shrinks as it is tamped, so order a little extra, and buy the sand as concrete sand (ASTM C33), not mason or stone-dust.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/paver-base-calculator/"
    },
    {
      "id": "lumber-size",
      "material": "Lumber size",
      "sold_in": "actual size in inches",
      "method": "lumber_sizes",
      "formula": "actual size = PS 20-20 Table 3 lookup [nominal thickness, nominal width, dry or green]; a lookup, no arithmetic. Dry a nominal 2 in dresses to 1 1/2 in; widths lose 1/2 in up to 7 in nominal and 3/4 in from 8 in up",
      "options": [
        {
          "field": "Nominal thickness",
          "value": "1",
          "label": "1 in (boards, 1x)"
        },
        {
          "field": "Nominal thickness",
          "value": "1.25",
          "label": "1 1/4 in (5/4)"
        },
        {
          "field": "Nominal thickness",
          "value": "1.5",
          "label": "1 1/2 in"
        },
        {
          "field": "Nominal thickness",
          "value": "2",
          "label": "2 in (2x framing)"
        },
        {
          "field": "Nominal thickness",
          "value": "3",
          "label": "3 in"
        },
        {
          "field": "Nominal thickness",
          "value": "4",
          "label": "4 in (posts)"
        },
        {
          "field": "Nominal width",
          "value": "2",
          "label": "2 in"
        },
        {
          "field": "Nominal width",
          "value": "3",
          "label": "3 in"
        },
        {
          "field": "Nominal width",
          "value": "4",
          "label": "4 in"
        },
        {
          "field": "Nominal width",
          "value": "5",
          "label": "5 in"
        },
        {
          "field": "Nominal width",
          "value": "6",
          "label": "6 in"
        },
        {
          "field": "Nominal width",
          "value": "8",
          "label": "8 in"
        },
        {
          "field": "Nominal width",
          "value": "10",
          "label": "10 in"
        },
        {
          "field": "Nominal width",
          "value": "12",
          "label": "12 in"
        },
        {
          "field": "Condition",
          "value": "dry",
          "label": "Dry — seasoned, 19% moisture or less (retail default)"
        },
        {
          "field": "Condition",
          "value": "green",
          "label": "Green — unseasoned, milled a little larger"
        }
      ],
      "sources": [
        {
          "note": "Dressed sizes: Voluntary Product Standard PS 20-20, American Softwood Lumber Standard (U.S. Department of Commerce), Table 3, Nominal and minimum-dressed sizes of boards, dimension, and timbers. At 19% moisture content (dry) a nominal 1 in dresses to 3/4 in and a nominal 2 in to 1 1/2 in; nominal widths lose 1/2 in up to 7 in and 3/4 in from 8 in up, so a 2 × 8 is 1 1/2 × 7 1/4 in. Green (unseasoned) lumber is milled slightly larger. Read October 2, 2026.",
          "url": "https://www.alsc.org/greenbook%20collection/ps20.pdf"
        },
        {
          "note": "Nothing here is calculated: the page looks up the dressed thickness and width for the nominal size you pick, in the dry or green column of the standard.",
          "url": null
        }
      ],
      "caveat": "These are the minimum dressed sizes the standard allows, so a board can measure a hair over, and green lumber shrinks toward the dry size as it dries. Nominal 5 in and larger timbers are usually sold green and surfaced off the nominal by 1/2 to 3/4 in. The actual size does not change with the brand or the store, because it is the national standard, but your tape is the final word.",
      "reviewed": "2026-10-02",
      "page": "https://yardsneeded.com/lumber-size-calculator/"
    },
    {
      "id": "asphalt",
      "material": "Asphalt",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [
        {
          "field": "Mix density",
          "value": 1.96,
          "label": "Typical dense-graded mix, about 145 lb/ft³ — 1.96 tons/yd³"
        },
        {
          "field": "Mix density",
          "value": 1.76,
          "label": "Low end of the ALDOT band, 130 lb/ft³ — 1.76 tons/yd³"
        },
        {
          "field": "Mix density",
          "value": 2.13,
          "label": "High end, the 158 lb/ft³ design maximum — 2.13 tons/yd³"
        }
      ],
      "sources": [
        {
          "note": "1 cubic yard = 27 cubic feet, exact by definition. The volume of asphalt to pave an area is that arithmetic, so the cubic yard figure does not depend on the mix.",
          "url": null
        },
        {
          "note": "Tons: Alabama Department of Transportation Standard Specifications, Section 410 (plant mix pavement), which designs the rate of placement assuming a compacted mix unit weight of not greater than 158 pounds per cubic foot and corrects when the density exceeds 158 or is below 130 pounds per cubic foot. That band is 1.76 to 2.13 short tons per cubic yard, and a typical dense-graded mix near 145 lb/ft³ is about 1.96. Read October 4, 2026.",
          "url": "https://www.dot.state.al.us/publications/Construction/pdf/Specifications/2018/GASPSummary/18-0703.pdf"
        }
      ],
      "caveat": "Order by the ton: that is how a plant sells hot-mix asphalt. The cubic yard is the geometry that does not depend on the mix; the tons come from the density you pick above. This counts the asphalt layer only, not the aggregate base under it, and asphalt is laid and rolled hot, so order from a plant that can deliver it at temperature.",
      "reviewed": "2026-10-04",
      "page": "https://yardsneeded.com/asphalt-calculator/"
    },
    {
      "id": "dirt",
      "material": "Dirt",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [
        {
          "field": "Delivered state",
          "value": 1.05,
          "label": "Loose dry fill dirt, delivered — about 1.05 tons/yd³ (FM 5-434: 0.95–1.10)"
        },
        {
          "field": "Delivered state",
          "value": 0.95,
          "label": "Dry and light, low end — 0.95 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 1.1,
          "label": "Dry, dense end — 1.1 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 1.5,
          "label": "Wet earth — about 1.5 tons/yd³ (FM 5-434: 1.40–1.60)"
        }
      ],
      "sources": [
        {
          "note": "1 cubic yard = 27 cubic feet, exact by definition. The volume of dirt to fill an area is that arithmetic and nothing else, so the cubic yard figure does not depend on any density.",
          "url": null
        },
        {
          "note": "Tons, loose earth: U.S. Army field manual FM 5-434, Earthmoving Operations, Table 1-2 (Material Weight). Earth as loam or silt is 1,900 to 2,200 lb per cubic yard loose and dry, which is 0.95 to 1.10 short tons, and 2,800 to 3,200 lb (1.40 to 1.60 tons) wet. The manual states these are averages that vary with soil and moisture. Public domain; read October 1, 2026.",
          "url": "https://www.globalsecurity.org/military/library/policy/army/fm/5-434/chap1.pdf"
        }
      ],
      "caveat": "Order by the cubic yard. Fill dirt settles and compacts once it is placed and wetted, so order for the finished volume and expect to add a little. It is not topsoil: fill dirt is subsoil for raising a grade or backfilling, with little organic matter.",
      "reviewed": "2026-10-12",
      "page": "https://yardsneeded.com/dirt-calculator/"
    },
    {
      "id": "wall-framing",
      "material": "Wall framing",
      "sold_in": "studs",
      "method": "wall_framing",
      "formula": "studs = ceil(wall length ft × 12 ÷ stud spacing in) + 1 (the one that closes the run); plate ft = plate runs × wall length ft; stud stock ft = studs × wall height ft",
      "options": [],
      "sources": [
        {
          "note": "The count is geometry on what you enter. Studs are the wall length in inches divided by your spacing, rounded up, plus one: the last stud is the one that closes the run and gets left out when the sum is done by hand. Plate feet are your plate courses times the wall length, and stud stock is the studs times the wall height.",
          "url": null
        },
        {
          "note": "This page does not tell you what spacing to frame at, how many plate courses to run or how tall to build. Those depend on the wall, its load and your local code, and they are figures we would have to source before printing them. They are inputs here, not claims.",
          "url": null
        }
      ],
      "caveat": "This counts a straight run of wall: studs, plates and the stud stock in feet. It does not add the extra studs a corner, a tee or an opening needs — a door or window takes a king and a trimmer each side plus cripples above and below — so add those by hand. Headers over openings are sized by span and load and are not on this page.",
      "reviewed": "2026-10-04",
      "page": "https://yardsneeded.com/wall-framing-calculator/"
    },
    {
      "id": "river-rock",
      "material": "River rock",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [],
      "sources": [
        {
          "note": "1 cubic yard = 27 cubic feet, exact by definition. The volume of river rock to cover an area is that arithmetic and nothing else, so no figure here is ours to source.",
          "url": null
        }
      ],
      "caveat": "Order by the cubic yard: it is the unit the yard loads and the one this count gives. This page does not convert to tons, because the weight of a cubic yard of river rock depends on the stone size and how wet it is, and that is a figure we would have to source for your rock.",
      "reviewed": "2026-10-28",
      "page": "https://yardsneeded.com/river-rock-calculator/"
    },
    {
      "id": "deck-board",
      "material": "Deck board",
      "sold_in": "deck boards",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Board size",
          "value": "5.5x96",
          "label": "5.5 in × 8 ft — 3.7 sq ft"
        },
        {
          "field": "Board size",
          "value": "5.5x144",
          "label": "5.5 in × 12 ft — 5.5 sq ft"
        },
        {
          "field": "Board size",
          "value": "5.5x192",
          "label": "5.5 in × 16 ft — 7.3 sq ft"
        },
        {
          "field": "Board size",
          "value": "5.5x240",
          "label": "5.5 in × 20 ft — 9.2 sq ft"
        },
        {
          "field": "Board size",
          "value": "3.5x144",
          "label": "3.5 in × 12 ft — 3.5 sq ft"
        }
      ],
      "sources": [
        {
          "note": "A board covers its width plus the gap, times its length: a 5.5 inch board with a 1/8 inch gap is 5.625 inches wide, times 12 feet. The count is the deck area divided by that coverage, rounded up, so no figure here is ours to source — you tell the page the board and the gap.",
          "url": null
        }
      ],
      "caveat": "This counts the deck surface you type in. It does not count the joists, the rim, the fascia or the stairs, and it does not add boards for a picture-frame border or a diagonal layout — those cut more pieces, so raise the waste allowance. Decking is sold by the board, so this is the count to buy.",
      "reviewed": "2026-10-04",
      "page": "https://yardsneeded.com/deck-board-calculator/"
    },
    {
      "id": "sod",
      "material": "Sod",
      "sold_in": "sod pieces",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Sod size",
          "value": "16x24",
          "label": "16 × 24 in slab — 2.67 sq ft"
        },
        {
          "field": "Sod size",
          "value": "18x24",
          "label": "18 × 24 in slab — 3 sq ft"
        },
        {
          "field": "Sod size",
          "value": "24x48",
          "label": "24 × 48 in roll — 8 sq ft"
        },
        {
          "field": "Sod size",
          "value": "24x60",
          "label": "24 × 60 in roll — 10 sq ft"
        }
      ],
      "sources": [
        {
          "note": "Sod coverage is the piece size you select, multiplied out: a 16 by 24 inch slab covers 2.67 square feet. The count is your lawn area divided by that coverage, rounded up, so no figure here is ours to source.",
          "url": null
        }
      ],
      "caveat": "This counts the lawn area you type in. It does not subtract beds, paths or the house footprint, and sod on a slope or an odd shape cuts more, so raise the waste allowance for those. Order a little over: sod cannot be stretched, and it has to go down within a day of delivery.",
      "reviewed": "2026-10-04",
      "page": "https://yardsneeded.com/sod-calculator/"
    },
    {
      "id": "pea-gravel",
      "material": "Pea gravel",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [
        {
          "field": "Delivered state",
          "value": 1.35,
          "label": "Loose and dry pea gravel — 1.35 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 1.4,
          "label": "Loose, delivered by the truck — 1.4 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 1.45,
          "label": "Loose and wet — 1.45 tons/yd³"
        }
      ],
      "sources": [
        {
          "note": "1 cubic yard = 27 cubic feet, exact by definition. The volume of pea gravel to cover an area is that arithmetic and nothing else.",
          "url": null
        },
        {
          "note": "Tons: U.S. Army field manual FM 5-434, Earthmoving Operations, Table 1-2 (Material Weight). Loose dry gravel is 2,700 to 3,000 lb per cubic yard, which is 1.35 to 1.50 short tons; wet it is 2,800 to 3,100 lb (1.40 to 1.55 tons). Pea gravel is a light rounded stone, so the low end, 1.35, is the default. The manual states these are averages that vary with grain size, moisture and compaction. Public domain; read October 1, 2026.",
          "url": "https://www.globalsecurity.org/military/library/policy/army/fm/5-434/chap1.pdf"
        }
      ],
      "caveat": "Order by the cubic yard: it is the unit the yard loads and the one this count gives.",
      "reviewed": "2026-10-14",
      "page": "https://yardsneeded.com/pea-gravel-calculator/"
    },
    {
      "id": "crushed-stone",
      "material": "Crushed stone",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [
        {
          "field": "Delivered state",
          "value": 1.4,
          "label": "Loose crushed stone, delivered — 1.4 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 1.35,
          "label": "Loose and dry, low end of the range — 1.35 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 1.85,
          "label": "Compacted base in place — 1.85 tons/yd³"
        },
        {
          "field": "Delivered state",
          "value": 2,
          "label": "Dense-graded, crushed, maximum — 2.0 tons/yd³"
        }
      ],
      "sources": [
        {
          "note": "1 cubic yard = 27 cubic feet, exact by definition. The volume of crushed stone to cover an area is that arithmetic and nothing else.",
          "url": null
        },
        {
          "note": "Tons, loose: U.S. Army field manual FM 5-434, Earthmoving Operations, Table 1-2 (Material Weight). Loose dry gravel is 2,700 to 3,000 lb per cubic yard, which is 1.35 to 1.50 short tons. The manual states these are averages that vary with grain size, moisture and compaction. Public domain; read October 1, 2026.",
          "url": "https://www.globalsecurity.org/military/library/policy/army/fm/5-434/chap1.pdf"
        },
        {
          "note": "Tons, compacted base: Wisconsin Department of Transportation Standard Specifications, section 305, which pays dense base aggregate placed in the roadway at 1.85 tons per cubic yard. Read October 1, 2026.",
          "url": "https://wisconsindot.gov/rdwy/stndspec/ss-03-05.pdf"
        },
        {
          "note": "Tons, dense crushed maximum: Ohio Department of Transportation section 304.07 (2008 Construction and Material Specifications), which lists crushed stone and crushed gravel at 4,000 lb per cubic yard, that is 2.0 short tons. Read October 1, 2026.",
          "url": "https://www.dot.state.oh.us/Divisions/ConstructionMgt/OnlineDocs/Specifications/2008CMS/300/304.htm"
        }
      ],
      "caveat": "Order by the cubic yard: it is the unit the yard loads and the one this count gives.",
      "reviewed": "2026-10-09",
      "page": "https://yardsneeded.com/crushed-stone-calculator/"
    },
    {
      "id": "retaining-wall-block",
      "material": "Retaining wall block",
      "sold_in": "blocks",
      "method": "pieces",
      "formula": "pieces = ceil(area sq ft × (1 + waste) ÷ ((piece width in + joint in) × (piece length in + joint in) ÷ 144)); concrete block mortar bags = ceil(8 × 16 in blocks without waste ÷ 13), the blocks an 80 lb bag of QUIKRETE Mortar Mix 1102 or Mason Mix 1136 lays; retaining wall block per the VERSA-LOK Standard guide (VLS-602): buried courses = ceil(height ft × 0.1 × 12 ÷ block height in), each of ceil(length ft × 12 ÷ block width in) blocks; base cu yd = length ft × 0.5 × 2 ÷ 27; drainage stone cu yd = length ft × height ft × 1 ÷ 27; drain pipe flagged over 3 ft and an engineered design over 4 ft",
      "options": [
        {
          "field": "Block face size",
          "value": "12x4",
          "label": "12 × 4 in face — 0.33 sq ft"
        },
        {
          "field": "Block face size",
          "value": "16x6",
          "label": "16 × 6 in face (VERSA-LOK Standard size) — 0.67 sq ft"
        },
        {
          "field": "Block face size",
          "value": "18x6",
          "label": "18 × 6 in face — 0.75 sq ft"
        },
        {
          "field": "Block face size",
          "value": "12x8",
          "label": "12 × 8 in face — 0.67 sq ft"
        },
        {
          "field": "Buried course and gravel",
          "value": "versalok",
          "label": "Add them — bury 1/10 of the height, 6 × 24 in base, drainage stone (VERSA-LOK guide)"
        },
        {
          "field": "Buried course and gravel",
          "value": "",
          "label": "Face blocks only"
        }
      ],
      "sources": [
        {
          "note": "A block covers its face, width times height: a 16 by 6 inch face is 0.67 square feet. The face count is the wall face area, length times height, divided by that coverage, rounded up, so it depends only on the block face you pick.",
          "url": null
        },
        {
          "note": "Buried course, base and drainage stone: VERSA-LOK Standard Design & Installation Guidelines (VLS-602). «One-tenth of the exposed wall height should be buried (embedded) below grade», rounded here up to whole courses of your block; the «leveling pad should be at least 6 inches thick and 24 inches wide»; drainage aggregate goes behind the units at «a minimum of 1 cubic foot for each exposed square foot of wall face». For walls over 3 feet the guide calls for a perforated drain pipe, and «for walls more than 4 feet in height, most building codes require a final wall design prepared by a licensed, professional engineer». Read November 9, 2026.",
          "url": "https://versa-lok.com/wp-content/uploads/2026/11/VLS-602-Standard-DI-Guide.pdf"
        },
        {
          "note": "The VERSA-LOK Standard unit is 6 in high by 16 in wide by 12 in deep and weighs 82 lb, a face of 2/3 square foot, which is the 16 × 6 in option above. Read November 9, 2026.",
          "url": "https://versa-lok.com/wp-content/uploads/2026/11/VL-Standard-Sell-Sheet-10.01.2026.pdf"
        }
      ],
      "caveat": "The buried course runs the full wall length at the block height you pick. Cap blocks for the top are a different piece, sold separately: count your wall length divided by the cap length. A curved or stepped wall cuts more, so raise the waste allowance.",
      "reviewed": "2026-11-09",
      "page": "https://yardsneeded.com/retaining-wall-block-calculator/"
    },
    {
      "id": "grass-seed",
      "material": "Grass seed",
      "sold_in": "pounds",
      "method": "seeding_rate",
      "formula": "pounds of seed = area sq ft ÷ 1000 × seeding rate lb per 1000 sq ft, given as the low-to-high range of the mix. Establishment rates by grass mix from Purdue Extension AY-3-W Table 2: 100% Kentucky bluegrass 1.5-2.0, KBG + perennial rye 3.0-4.0, KBG + fine fescue 4.0-5.0, 100% tall fescue 6.0-9.0",
      "options": [
        {
          "field": "Grass mix",
          "value": "kbg",
          "label": "100% Kentucky bluegrass — 1.5 to 2.0 lb per 1,000 sq ft"
        },
        {
          "field": "Grass mix",
          "value": "kbg-rye",
          "label": "Kentucky bluegrass + perennial rye — 3.0 to 4.0 lb per 1,000 sq ft"
        },
        {
          "field": "Grass mix",
          "value": "kbg-fescue",
          "label": "Kentucky bluegrass + fine fescue — 4.0 to 5.0 lb per 1,000 sq ft"
        },
        {
          "field": "Grass mix",
          "value": "tall-fescue",
          "label": "100% tall fescue — 6.0 to 9.0 lb per 1,000 sq ft"
        }
      ],
      "sources": [
        {
          "note": "Pounds of seed is the lawn area divided by 1,000, times the seeding rate for your mix. The rate is a range, so the result is a range too.",
          "url": null
        },
        {
          "note": "Seeding rates: Purdue Extension AY-3-W, Establishing Turfgrass Areas, Table 2, recommended rates for new lawns in pounds per 1,000 square feet — 100% Kentucky bluegrass 1.5 to 2.0, bluegrass with perennial rye 3.0 to 4.0, bluegrass with fine fescue 4.0 to 5.0, and 100% tall fescue 6.0 to 9.0. Read October 9, 2026.",
          "url": "https://www.extension.purdue.edu/extmedia/ay/ay-3-w.pdf"
        }
      ],
      "caveat": "These are establishment rates for sowing a new lawn on bare soil. Overseeding an existing lawn uses about half as much, so halve the rate for that. The count is the lawn area you type in; it does not subtract beds, paths or the house.",
      "reviewed": "2026-10-09",
      "page": "https://yardsneeded.com/grass-seed-calculator/"
    },
    {
      "id": "carpet",
      "material": "Carpet",
      "sold_in": "square yards",
      "method": "area_square_yards",
      "formula": "square yards = area sq ft × (1 + waste) ÷ 9; linear feet = area sq ft × (1 + waste) ÷ roll width ft; old carpet lb = area sq ft ÷ 9 × lb per sq yd (CARE 2025: 4.29)",
      "options": [
        {
          "field": "Carpet roll width",
          "value": 12,
          "label": "12 ft roll — most broadloom"
        },
        {
          "field": "Carpet roll width",
          "value": 15,
          "label": "15 ft roll"
        },
        {
          "field": "Old carpet weight, to tear out",
          "value": 4.29,
          "label": "US average carpet sold in 2025 — 4.29 lb/sq yd (CARE)"
        },
        {
          "field": "Old carpet weight, to tear out",
          "value": 5.7375,
          "label": "Residential nylon broadloom — 91.8 oz/sq yd, 5.74 lb (Dixie EPD)"
        },
        {
          "field": "Old carpet weight, to tear out",
          "value": 5.3875,
          "label": "Residential polyester (PET) broadloom — 86.2 oz/sq yd, 5.39 lb (Dixie EPD)"
        }
      ],
      "sources": [
        {
          "note": "1 square yard = 9 square feet, exact by definition. The carpet for a room is the floor area in square yards, plus the waste you add, so no figure here is ours to source.",
          "url": null
        },
        {
          "note": "Carpet weight: CARE (Carpet America Recovery Effort), California Carpet Stewardship Program 2025 Annual Report, published September 2026: «The average carpet weight in 2025 was estimated at a weighted average of 4.29 pounds per square yard», from CARE's confidential survey of the carpet mills, covering residential and commercial broadloom and carpet tile sold in the United States (4.22 lb in 2024, 4.11 lb in 2021). Read November 4, 2026.",
          "url": "https://carpetrecovery.org/wp-content/uploads/2026/09/Annual-Report-2025-CARE-CA-Final-9-1-26.pdf"
        },
        {
          "note": "Residential broadloom: The Dixie Group (DH Floors, Fabrica, Masland), Environmental Product Declaration EPD11226, Residential Broadloom with Synthetic Fiber Face Yarn, NSF, issued March 16, 2026, Table 1: total carpet 91.8 oz per square yard in nylon 6, 89.9 in nylon 6,6 and 86.2 in polyester (PET), at the market-average face weight. Divided by 16 that is 5.74 and 5.39 lb per square yard. Read November 4, 2026.",
          "url": "https://info.nsf.org/Certified/Sustain/ProdCert/EPD11226.pdf"
        }
      ],
      "caveat": "This counts the floor area you type in. Carpet comes on a wide roll, so a room wider than the roll needs a seam and the leftover strip is waste, and a pattern has to be matched across it — raise the waste allowance for both. Stairs, closets and an L-shaped room cut more; measure the widest length and width for a room that is not a plain rectangle.",
      "reviewed": "2026-11-04",
      "page": "https://yardsneeded.com/carpet-calculator/"
    },
    {
      "id": "drywall-mud",
      "material": "Drywall mud",
      "sold_in": "gallons",
      "method": "coverage_per_1000",
      "formula": "gallons = drywall area sq ft ÷ 1000 × 10 gal per 1,000 sq ft of gypsum panels (USG Sheetrock Brand All Purpose Joint Compound, Submittal Sheet J1969, for taping and three coats); buckets = ceil(gallons ÷ bucket gallons)",
      "options": [
        {
          "field": "Bucket size",
          "value": "1",
          "label": "1 gallon tub"
        },
        {
          "field": "Bucket size",
          "value": "3.5",
          "label": "3.5 gallon bucket"
        },
        {
          "field": "Bucket size",
          "value": "4.5",
          "label": "4.5 gallon bucket"
        },
        {
          "field": "Bucket size",
          "value": "5",
          "label": "5 gallon bucket"
        }
      ],
      "sources": [
        {
          "note": "Gallons of compound is the drywall area divided by 1,000, times the coverage. Buckets is the gallons divided by the size you buy, rounded up.",
          "url": null
        },
        {
          "note": "Coverage: USG Sheetrock Brand All Purpose Joint Compound, Submittal Sheet J1969, approximately 10 gallons per 1,000 square feet of gypsum panels, for all phases of finishing, taping and three coats. Read October 11, 2026.",
          "url": "https://www.usg.com/content/dam/USG/pdpmovedocuments/sheetrock-all-purpose-joint-compound-submittal-J1969.pdf"
        }
      ],
      "caveat": "This is the total square feet of drywall you are finishing, the boards on the walls and the ceiling added together, not the floor area of the room. The 10 gallons per 1,000 square feet covers taping and the three finishing coats; a full skim coat over the whole surface uses more. It does not subtract outlets or small openings.",
      "reviewed": "2026-10-11",
      "page": "https://yardsneeded.com/drywall-mud-calculator/"
    },
    {
      "id": "plywood",
      "material": "Plywood",
      "sold_in": "sheets",
      "method": "sheet_goods",
      "formula": "area sq ft = length ft × width ft × √(rise in² + 12²) ÷ 12 (rise 0 for floors and walls); sheets = ceil(area × (1 + waste) ÷ sheet sq ft), a 4 × 8 ft sheet being the 48 × 96 in reference panel of PS 1-19 §5.4",
      "options": [
        {
          "field": "Sheet size",
          "value": "48x96",
          "label": "4 × 8 ft — 32 sq ft"
        },
        {
          "field": "Sheet size",
          "value": "48x108",
          "label": "4 × 9 ft — 36 sq ft"
        },
        {
          "field": "Sheet size",
          "value": "48x120",
          "label": "4 × 10 ft — 40 sq ft"
        }
      ],
      "sources": [
        {
          "note": "Sheets are the area divided by the square feet of the sheet you select, rounded up: a 4 by 8 ft sheet is 32 square feet. The waste allowance is yours to set.",
          "url": null
        },
        {
          "note": "Sheet size: Voluntary Product Standard PS 1-19, Structural Plywood (NIST), section 5.4, which sets the 48 by 96 in panel as the reference size, and section 5.10.1, which allows a sheet to measure up to 1/16 in under its stated length or width and never over. Read October 14, 2026.",
          "url": "https://www.wbdg.org/FFC/NIST/nist_ps1_2019.pdf"
        },
        {
          "note": "Roof area is the footprint times the pitch factor, √(rise² + 12²) ÷ 12, which is Pythagoras: 1.05 at 4/12, 1.12 at 6/12, 1.2 at 8/12 and 1.41 at 12/12.",
          "url": null
        }
      ],
      "caveat": "Measure a roof flat, from above, including the overhangs, and enter the pitch: the calculator turns the footprint into the sloped area. The count does not subtract windows, doors or skylights, and hips, valleys and gables add scrap that only your waste allowance covers.",
      "reviewed": "2026-10-14",
      "page": "https://yardsneeded.com/plywood-calculator/"
    },
    {
      "id": "rebar",
      "material": "Rebar",
      "sold_in": "sticks",
      "method": "rebar_grid",
      "formula": "bars running lengthwise = ceil(width in ÷ spacing in) + 1, and crosswise = ceil(length in ÷ spacing in) + 1; linear ft = bars × their length; sticks = bars cut from the stick length you buy, no lap splices; pounds = linear ft × weight per foot from Caltrans Bridge Design Details Table 13.1.1 (ASTM standard bar data: #3 0.376, #4 0.668, #5 1.043 lb/ft)",
      "options": [
        {
          "field": "Bar size",
          "value": "#3",
          "label": "#3 — 3/8 in, 0.376 lb/ft"
        },
        {
          "field": "Bar size",
          "value": "#4",
          "label": "#4 — 1/2 in, 0.668 lb/ft"
        },
        {
          "field": "Bar size",
          "value": "#5",
          "label": "#5 — 5/8 in, 1.043 lb/ft"
        },
        {
          "field": "Bar size",
          "value": "#6",
          "label": "#6 — 3/4 in, 1.502 lb/ft"
        },
        {
          "field": "Bar size",
          "value": "#7",
          "label": "#7 — 7/8 in, 2.044 lb/ft"
        },
        {
          "field": "Bar size",
          "value": "#8",
          "label": "#8 — 1 in, 2.670 lb/ft"
        },
        {
          "field": "Stick length you buy",
          "value": "20",
          "label": "20 ft sticks"
        },
        {
          "field": "Stick length you buy",
          "value": "10",
          "label": "10 ft sticks"
        }
      ],
      "sources": [
        {
          "note": "Bars are counted both ways at the spacing you enter, one more than the spaces in each direction, and cut from the stick length you buy. Linear feet is each bar times its length.",
          "url": null
        },
        {
          "note": "Weight per foot and nominal diameter: Caltrans Bridge Design Details, Table 13.1.1, ASTM Standard Reinforcing Bar Data, September 2025, for #3 to #18 bars: #3 0.376, #4 0.668, #5 1.043 lb per foot. Read October 14, 2026.",
          "url": "https://dot.ca.gov/-/media/dot-media/programs/engineering/documents/bridgedesigndetails/chapter-12/202509bdd131reinforcement-a11y.pdf"
        }
      ],
      "caveat": "Enter the grid, not the slab: the slab size less the concrete cover you keep at each edge. Bar size and spacing come from your plans or your building department, and this page does not recommend them. A bar longer than a stick is counted end to end with no lap splice added, so add the lap length your plans call for.",
      "reviewed": "2026-10-14",
      "page": "https://yardsneeded.com/rebar-calculator/"
    },
    {
      "id": "compost",
      "material": "Compost",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [],
      "sources": [
        {
          "note": "Cubic yards are length times width times depth in feet, divided by 27. 1 cubic yard = 27 cubic feet, exact by definition.",
          "url": null
        },
        {
          "note": "Depth for each use: Oregon State University Extension, EM 9308, How to use compost in gardens and landscapes. New vegetable beds 3 to 4 inches, existing beds 1/4 to 1 inch a year, landscape areas 3 to 4 inches, raised beds 2 to 3 inches, new lawns 1 to 2 inches, topdressing an existing lawn 1/4 to 1/2 inch. Read October 14, 2026.",
          "url": "https://extension.oregonstate.edu/catalog/pub/em-9308-how-use-compost-gardens-landscapes"
        }
      ],
      "caveat": "Bulk compost is ordered by the cubic yard. Enter the depth of compost you will spread, before it is mixed in or settles: the depths in the guide are amounts to add on top, not the final depth of the soil.",
      "reviewed": "2026-10-14",
      "page": "https://yardsneeded.com/compost-calculator/"
    },
    {
      "id": "mortar",
      "material": "Mortar",
      "sold_in": "bags",
      "method": "mortar_bags",
      "formula": "bags = ceil(bricks or blocks ÷ yield per 80 lb bag); yield from the QUIKRETE Mortar Mix No. 1102 data sheet, up to 37 standard bricks or 13 standard 8 × 8 × 16 in blocks per 80 lb bag",
      "options": [
        {
          "field": "What you are laying",
          "value": "37",
          "label": "Standard bricks — up to 37 per bag"
        },
        {
          "field": "What you are laying",
          "value": "13",
          "label": "8 × 8 × 16 in blocks — up to 13 per bag"
        }
      ],
      "sources": [
        {
          "note": "Bags are the bricks or blocks divided by what one bag lays, rounded up: a part bag still has to be bought.",
          "url": null
        },
        {
          "note": "Yield: QUIKRETE Mortar Mix No. 1102 data sheet, each 80 lb bag lays up to 37 standard bricks or 13 standard 8 by 8 by 16 in blocks. The same sheet lists 10, 40 and 60 lb bags but gives no yield for them. Read October 14, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-Mortar%20Mix%201102.pdf"
        }
      ],
      "caveat": "The data sheet gives the yield as up to 37 bricks or 13 blocks, the most one bag will lay, so the count here is the least you will use. It covers the 80 lb bag only, because that is the only size the sheet gives a yield for. Count your bricks or blocks first, with the brick or concrete block calculator.",
      "reviewed": "2026-10-14",
      "page": "https://yardsneeded.com/mortar-calculator/"
    },
    {
      "id": "laminate-flooring",
      "material": "Laminate flooring",
      "sold_in": "boxes",
      "method": "boxes_by_coverage",
      "formula": "boxes = ceil(length ft × width ft × (1 + waste) ÷ square feet per box, as printed on the box you buy)",
      "options": [],
      "sources": [
        {
          "note": "Boxes are the floor area plus your waste allowance, divided by the square feet per box, rounded up to whole boxes.",
          "url": null
        },
        {
          "note": "Coverage per box is the figure printed on the box you are buying. It changes with the brand and the plank size, so the page takes yours instead of assuming one.",
          "url": null
        }
      ],
      "caveat": "Measure the floor wall to wall, including closets and the space under appliances you will floor under. The count is for the planks only: underlayment, transition strips and baseboard or quarter round are sold by their own coverage and length.",
      "reviewed": "2026-10-14",
      "page": "https://yardsneeded.com/laminate-flooring-calculator/"
    },
    {
      "id": "decomposed-granite",
      "material": "Decomposed granite",
      "sold_in": "cubic yards",
      "method": "volume",
      "formula": "cubic yards = length ft × width ft × (depth in ÷ 12) ÷ 27",
      "options": [],
      "sources": [
        {
          "note": "Cubic yards are length times width times depth in feet, divided by 27. 1 cubic yard = 27 cubic feet, exact by definition, so the volume is arithmetic on your measurements and no figure here is ours to source.",
          "url": null
        }
      ],
      "caveat": "Enter the depth of decomposed granite you will spread, and round the cubic yards up to what your supplier sells, whole or half yards. This page gives no tons: we have no published density for decomposed granite to cite, and its weight changes with how finely it is graded and how wet it is.",
      "reviewed": "2026-10-14",
      "page": "https://yardsneeded.com/decomposed-granite-calculator/"
    },
    {
      "id": "roof-pitch",
      "material": "Roof pitch",
      "sold_in": "pitch",
      "method": "roof_pitch_angle",
      "formula": "pitch = rise in × 12 ÷ run in, in 12; angle = atan(rise ÷ run) in degrees; slope % = rise ÷ run × 100; pitch factor = √(1 + (rise ÷ run)²); rafter = horizontal run × pitch factor; code check = pitch in 12 against the IRC 2021 R905 minimum for the roof covering (asphalt shingles 2, double underlayment below 4; clay or concrete tile 2 1/2, double below 4; metal shingles, wood shingles and shakes 3; slate 4; lapped metal panels 3, or 1/2 with lap sealant; standing seam, modified bitumen and single-ply 1/4)",
      "options": [
        {
          "field": "Roof covering",
          "value": "asfalto",
          "label": "Asphalt shingles — 2/12 minimum"
        },
        {
          "field": "Roof covering",
          "value": "teja",
          "label": "Clay or concrete tile — 2 1/2/12"
        },
        {
          "field": "Roof covering",
          "value": "teja_metal",
          "label": "Metal roof shingles — 3/12"
        },
        {
          "field": "Roof covering",
          "value": "madera",
          "label": "Wood shingles or shakes — 3/12"
        },
        {
          "field": "Roof covering",
          "value": "pizarra",
          "label": "Slate — 4/12"
        },
        {
          "field": "Roof covering",
          "value": "chapa",
          "label": "Lapped metal panels, no sealant — 3/12"
        },
        {
          "field": "Roof covering",
          "value": "chapa_sellada",
          "label": "Lapped metal panels, lap sealant — 1/2/12"
        },
        {
          "field": "Roof covering",
          "value": "junta_alzada",
          "label": "Standing-seam metal — 1/4/12"
        },
        {
          "field": "Roof covering",
          "value": "rollo",
          "label": "Mineral-surfaced roll roofing — 1/12"
        },
        {
          "field": "Roof covering",
          "value": "membrana",
          "label": "Modified bitumen or single-ply — 1/4/12"
        }
      ],
      "sources": [
        {
          "note": "Pitch is rise over run scaled to 12 inches of run: rise in × 12 ÷ run in. The angle is the arctangent of rise ÷ run, the percent slope is rise ÷ run × 100, and the pitch factor is √(1 + (rise ÷ run)²), the length of the sloped side for each unit of level run. All of it is trigonometry on the two numbers you measure.",
          "url": null
        },
        {
          "note": "Rafter length is the level run times the pitch factor, measured along the top of the rafter from the ridge line to the outside of the wall. Overhang and the ridge board thickness are added or taken off by hand.",
          "url": null
        },
        {
          "note": "Minimum pitch by roof covering: 2021 International Residential Code, Section R905, read in the 2021 Seattle Residential Code and checked against the 2021 IRC as adopted in New Jersey. Asphalt shingles «only on roof slopes of 2 units vertical in 12 units horizontal» or greater, with double underlayment from 2/12 up to 4/12 (R905.2.2); clay and concrete tile 2 1/2/12, double underlayment up to 4/12 (R905.3.2); metal roof shingles 3/12 (R905.4.2); mineral-surfaced roll roofing 1/12 (R905.5.2); slate 4/12 (R905.6.2); wood shingles and shakes 3/12 (R905.7.2, R905.8.2); lapped metal panels 3/12 without lap sealant and 1/2/12 with it, standing seam 1/4/12 (R905.10.2); modified bitumen and single-ply membranes 1/4/12 (R905.11.1 to R905.13.1). Read November 8, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter9.pdf"
        }
      ],
      "caveat": "The rafter length is the line length from ridge to wall: add the overhang you want past the wall, and take off half the thickness of the ridge board.",
      "reviewed": "2026-11-08",
      "page": "https://yardsneeded.com/roof-pitch-calculator/"
    },
    {
      "id": "wallpaper",
      "material": "Wallpaper",
      "sold_in": "rolls",
      "method": "wallpaper_strips",
      "formula": "strip length in = wall height in rounded up to a whole number of pattern repeats; strips = ceil(wall width in ÷ roll width in); strips per roll = floor(roll length in ÷ strip length in); rolls = ceil(strips ÷ strips per roll)",
      "options": [],
      "sources": [
        {
          "note": "Wallpaper is hung in vertical strips, so the count is by strip, not by square feet: strips = wall width ÷ roll width, rounded up; each strip is the wall height rounded up to a whole number of pattern repeats, so every strip starts at the same point of the design; a roll gives the whole strips that fit in its length; rolls = strips ÷ strips per roll, rounded up.",
          "url": null
        },
        {
          "note": "Roll width, roll length and pattern repeat are printed on the roll label and change by brand and pattern. The 20.5 in by 33 ft roll in the calculator is a starting value; enter the one on your label.",
          "url": null
        }
      ],
      "caveat": "The count keeps doors and windows in: above and below each one a short strip still has to be hung, and those pieces rarely come out of leftovers. Buy every roll from the same run or batch number on the label, because colors differ between runs.",
      "reviewed": "2026-10-15",
      "page": "https://yardsneeded.com/wallpaper-calculator/"
    },
    {
      "id": "raised-bed-soil",
      "material": "Raised bed soil",
      "sold_in": "cubic yards or bags",
      "method": "volume_in_bags",
      "formula": "bags = ceil(length ft × width ft × (depth in ÷ 12) ÷ bag yield cu ft)",
      "options": [
        {
          "field": "Bag size",
          "value": "1",
          "label": "1 cu ft bag"
        },
        {
          "field": "Bag size",
          "value": "1.5",
          "label": "1.5 cu ft bag"
        },
        {
          "field": "Bag size",
          "value": "2",
          "label": "2 cu ft bag"
        },
        {
          "field": "Bag size",
          "value": "3",
          "label": "3 cu ft bag"
        }
      ],
      "sources": [
        {
          "note": "Volume is geometry: length × width × depth, in cubic feet, times the number of beds. 1 cubic yard = 27 cubic feet, exact by definition, so a 4 by 8 ft bed 12 inches deep, 32 cubic feet, is 1.19 cubic yards.",
          "url": null
        },
        {
          "note": "Bags: the volume in cubic feet is printed on every bag of garden soil, and the count is the total divided by it, rounded up. The calculator takes the bag size you buy rather than assuming one.",
          "url": null
        }
      ],
      "caveat": "Bag counts are rounded up. Bagged soil is loose and settles after watering, so a bed filled level with the top sits lower after the first few weeks; this count is the volume of the bed, not extra for settling.",
      "reviewed": "2026-10-15",
      "page": "https://yardsneeded.com/raised-bed-soil-calculator/"
    },
    {
      "id": "sonotube",
      "material": "Sonotube",
      "sold_in": "bags",
      "method": "form_tube_bags",
      "formula": "cu ft per tube = π × (diameter in ÷ 2)² × height in ÷ 1728; bags = ceil(tubes × cu ft per tube ÷ bag yield cu ft), yield from the QUIKRETE Concrete Mix No. 1101 data sheet (40 lb 0.30, 50 lb 0.375, 60 lb 0.45, 80 lb 0.60 cu ft); cubic yards = total cu ft ÷ 27",
      "options": [
        {
          "field": "Bag size",
          "value": "0.3",
          "label": "40 lb — 0.30 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.375",
          "label": "50 lb — 0.375 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.45",
          "label": "60 lb — 0.45 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.6",
          "label": "80 lb — 0.60 cu ft"
        }
      ],
      "sources": [
        {
          "note": "Bag yields: QUIKRETE Concrete Mix technical data sheet, document 1101. A 40 lb bag yields approximately 0.30 cu ft, 50 lb 0.375, 60 lb 0.45 and 80 lb 0.60. Read October 15, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-CONCRETE%20MIX%201101.pdf"
        },
        {
          "note": "The volume is geometry: a cylinder of the tube's inside diameter and the height you fill, 3.1416 × (diameter ÷ 2)² × height, in cubic feet (÷ 1,728). The total for all tubes is divided by the bag yield and rounded up once, because the leftover of a bag goes into the next tube. 1 cubic yard = 27 cubic feet.",
          "url": null
        }
      ],
      "caveat": "Bag counts are rounded up over all the tubes, not tube by tube. The height to enter is the concrete, not the length of the tube: a tube cut long and left above grade, or a flared footing at the bottom, changes the volume, and a flare is calculated on its own.",
      "reviewed": "2026-10-15",
      "page": "https://yardsneeded.com/sonotube-calculator/"
    },
    {
      "id": "fertilizer",
      "material": "Fertilizer",
      "sold_in": "pounds",
      "method": "fertilizer_rate",
      "formula": "pounds of product = (lb of nitrogen per 1,000 sq ft ÷ nitrogen fraction on the label) × (area sq ft ÷ 1,000), the method of Purdue Extension AY-22-W; per application normally 0.5 to 1.0 lb N, at most 1.0 lb water-soluble N, 2.0 lb if over 50% slow-release; bags = ceil(pounds ÷ bag lb)",
      "options": [],
      "sources": [
        {
          "note": "Method and limits: Purdue Extension AY-22-W, Fertilizing Established Cool-season Lawns (Bigelow, Camberato and Patton). Pounds of product = (target lb of nitrogen per 1,000 sq ft ÷ the nitrogen fraction on the label) × (area ÷ 1,000), worked in the publication for 5,500 sq ft at 0.5 lb with an 18-0-10: 15.29 lb. The target is normally 0.5 to 1.0 lb of nitrogen per 1,000 sq ft; no single application should carry more than 1.0 lb of water-soluble nitrogen, or 2.0 lb when more than half the nitrogen is slow-release. Mature cool-season lawns take 1 to 5 lb of nitrogen per 1,000 sq ft a year. Read October 15, 2026.",
          "url": "https://www.extension.purdue.edu/extmedia/ay/ay-22-w.pdf"
        },
        {
          "note": "The three numbers on a bag, such as 20-0-5, are the percent of nitrogen, phosphate and potash by weight; the calculator uses the first. Bags are the pounds divided by your bag weight, rounded up.",
          "url": null
        }
      ],
      "caveat": "The rates and limits are Purdue's for cool-season lawns: Kentucky bluegrass, ryegrass and the fescues. For warm-season grasses such as bermuda, zoysia or St. Augustine the arithmetic is the same with the nitrogen rate you choose. Phosphorus and potassium are set by a soil test, not by this count.",
      "reviewed": "2026-10-15",
      "page": "https://yardsneeded.com/fertilizer-calculator/"
    },
    {
      "id": "self-leveling-concrete",
      "material": "Self-leveling concrete",
      "sold_in": "bags",
      "method": "self_leveling_bags",
      "formula": "bags = ceil(length ft × width ft × (thickness in ÷ 12) ÷ 0.45 cu ft), the pourable yield of a 50 lb bag of QUIKRETE Self-Leveling Floor Resurfacer No. 1249 (21 sq ft at 1/4 in); layers of 5/8 in at most",
      "options": [],
      "sources": [
        {
          "note": "Bag yield and layers: QUIKRETE Self-Leveling Floor Resurfacer, product No. 1249-50, data sheet. A 50 lb bag provides 0.45 cu ft of material at a pourable consistency and covers 21 sq ft at 1/4 in; it is installed from 5/8 in thick to a feather edge, and areas deeper than 5/8 in go down in layers of no more than 5/8 in each, primed between layers with QUIKRETE Concrete Bonding Adhesive. Read October 15, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-Self-Leveling%20Floor%20Resurfacer%201249-50%20-51.pdf"
        },
        {
          "note": "Volume is geometry: floor area × thickness in feet. Bags are the volume divided by 0.45 cu ft, rounded up. The 21 sq ft on the sheet is 0.45 cu ft at 1/4 in, 21.6 rounded down, so the count from the volume and the count from 21 sq ft agree.",
          "url": null
        }
      ],
      "caveat": "Bag counts are rounded up and cover the yield of this one product. Other self-leveling underlayments, including other Quikrete lines, print a different yield per bag; enter the floor and thickness, then divide the cubic feet by the yield on your bag. Thickness is the average over the floor: measure the low spots against a straightedge and average them with the high ones.",
      "reviewed": "2026-10-15",
      "page": "https://yardsneeded.com/self-leveling-concrete-calculator/"
    },
    {
      "id": "baseboard",
      "material": "Baseboard",
      "sold_in": "pieces",
      "method": "baseboard_pieces",
      "formula": "linear ft = 2 × (length ft + width ft) − door openings ft; pieces = ceil(linear ft × (1 + waste) ÷ piece length ft), pieces joined along a wall",
      "options": [
        {
          "field": "Piece length",
          "value": "8",
          "label": "8 ft pieces"
        },
        {
          "field": "Piece length",
          "value": "12",
          "label": "12 ft pieces"
        },
        {
          "field": "Piece length",
          "value": "16",
          "label": "16 ft pieces"
        }
      ],
      "sources": [
        {
          "note": "Linear feet is geometry: the room perimeter, 2 × (length + width), less the width of every door opening, where the baseboard stops at the casing. Pieces are the linear feet plus your waste allowance, divided by the length of the piece you buy, rounded up.",
          "url": null
        },
        {
          "note": "The count joins pieces end to end along a wall, the way baseboard is run on walls longer than one piece. Piece lengths of 8, 12 and 16 ft are the ones the calculator offers; choose the one sold where you buy.",
          "url": null
        }
      ],
      "caveat": "Each inside and outside corner is cut at an angle and every joint along a wall takes a little length, which is what the waste allowance covers. Closets, bay windows and wall jogs add their own perimeter: measure them along the floor and add them to the room length.",
      "reviewed": "2026-10-15",
      "page": "https://yardsneeded.com/baseboard-calculator/"
    },
    {
      "id": "concrete-stair",
      "material": "Concrete stair",
      "sold_in": "bags",
      "method": "concrete_steps",
      "formula": "cu ft = width ft × (tread in ÷ 12) × (riser in ÷ 12) × n(n + 1) ÷ 2 for n solid steps on grade, plus width ft × (landing depth in ÷ 12) × (n × riser in ÷ 12); bags = ceil(cu ft ÷ bag yield from the QUIKRETE Concrete Mix No. 1101 data sheet); riser over 7 3/4 in or tread under 10 in flagged per IRC 2021 R311.7.5",
      "options": [
        {
          "field": "Bag size",
          "value": "0.3",
          "label": "40 lb — 0.30 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.45",
          "label": "60 lb — 0.45 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.6",
          "label": "80 lb — 0.60 cu ft"
        }
      ],
      "sources": [
        {
          "note": "Bag yields: QUIKRETE Concrete Mix technical data sheet, document 1101. A 40 lb bag yields approximately 0.30 cu ft, 60 lb 0.45 and 80 lb 0.60. Read October 15, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-CONCRETE%20MIX%201101.pdf"
        },
        {
          "note": "Riser and tread limits: IRC 2021 R311.7.5.1, riser height not more than 7 3/4 in, and R311.7.5.2, tread depth not less than 10 in, the same rules as the stair calculator. Read October 1, 2026.",
          "url": "https://codes.iccsafe.org/content/IRC2021P2/chapter-3-building-planning#IRC2021P2_Pt03_Ch03_SecR311"
        },
        {
          "note": "The volume is geometry: solid steps poured on grade are stacked blocks, so the first step is one riser high, the second two, and so on. Volume = width × tread × riser × n(n + 1) ÷ 2 for n steps, plus a landing behind the top step at the full height. 1 cubic yard = 27 cubic feet.",
          "url": null
        }
      ],
      "caveat": "This is solid steps on grade, filled to the ground under every tread. Steps formed over a gravel fill or as a sloped slab with a void underneath take less concrete; a footing under the steps is extra and is calculated as a slab. Bag counts are rounded up.",
      "reviewed": "2026-10-15",
      "page": "https://yardsneeded.com/concrete-stair-calculator/"
    },
    {
      "id": "firewood",
      "material": "Firewood",
      "sold_in": "cords",
      "method": "firewood_cords",
      "formula": "cords = stack length ft × stack height ft × (piece length in ÷ 12) × stacks ÷ 128, the cord of NIST Handbook 130-2026 IV.B §2.4.1.2 (128 cu ft ranked and well stowed); cubic meters = cu ft × 0.028316846592",
      "options": [],
      "sources": [
        {
          "note": "The cord: NIST Handbook 130-2026, Uniform Laws and Regulations in the Areas of Legal Metrology and Fuel Quality, IV.B Method of Sale of Commodities, section 2.4. A cord is the amount of wood in a space of 128 cubic feet when the wood is ranked and well stowed, pieces in a row, touching, parallel and stacked compactly (2.4.1.2). Firewood is sold only by the cord and its fractions or by the cubic meter (2.4.3), and the terms face cord, rack, pile and truckload are not to be used when selling it (2.4.4). Handbook 130 is the model regulation that state weights and measures programs adopt. Read October 16, 2026.",
          "url": "https://doi.org/10.6028/NIST.HB.130-2026"
        },
        {
          "note": "The stack is geometry: length × height × piece length, the depth of a one-row stack, in feet, times the number of stacks. Cords are the cubic feet divided by 128; cubic meters are cubic feet × 0.0283168, the exact definition of the foot.",
          "url": null
        }
      ],
      "caveat": "Measure the wood stacked, not loose: the cord is defined for wood ranked and well stowed, so a pickup bed of thrown wood cannot be read in cords with a tape until it is stacked. For a stack with a crooked top, measure the height at a few points and use the average.",
      "reviewed": "2026-10-16",
      "page": "https://yardsneeded.com/firewood-calculator/"
    },
    {
      "id": "concrete-weight",
      "material": "Concrete weight",
      "sold_in": "lb",
      "method": "concrete_weight",
      "formula": "pounds = length ft × width ft × (thickness in ÷ 12) × unit weight lb per cu ft; short tons = pounds ÷ 2000. Design unit weights from WSDOT Bridge Design Manual M 23-50.24 Table 3.8-1: unreinforced 145, normal-weight reinforced 155 (with 5 lb per cu ft for the steel), lightweight 110 to 135 lb per cu ft",
      "options": [
        {
          "field": "Concrete",
          "value": "145",
          "label": "Plain (unreinforced), 145 lb per cu ft"
        },
        {
          "field": "Concrete",
          "value": "155",
          "label": "Reinforced, 155 lb per cu ft (5 lb of it steel)"
        },
        {
          "field": "Concrete",
          "value": "110",
          "label": "Lightweight, 110 lb per cu ft (low end)"
        },
        {
          "field": "Concrete",
          "value": "135",
          "label": "Lightweight, 135 lb per cu ft (high end)"
        }
      ],
      "sources": [
        {
          "note": "Unit weights: Washington State Department of Transportation, Bridge Design Manual (LRFD) M 23-50.24, June 2025, Chapter 3, Table 3.8-1 Permanent Loads. Unreinforced concrete 145 lb per cubic foot; normal-weight reinforced concrete 155 lb per cubic foot, which includes a 5 lb per cubic foot allowance for the reinforcement; lightweight or specified density concrete 110 to 135 lb per cubic foot. These are the design unit weights used to compute loads. Read October 16, 2026.",
          "url": "https://wsdot.wa.gov/publications/manuals/fulltext/M23-50/Chapter3.pdf"
        },
        {
          "note": "Volume is geometry: length × width × thickness in feet. Pounds are cubic feet × the unit weight you pick; short tons are pounds ÷ 2,000. Tons per cubic yard are the same unit weight × 27 ÷ 2,000: 1.96 for 145 lb and 2.09 for 155 lb.",
          "url": null
        }
      ],
      "caveat": "The weight is the volume times a unit weight, so measure the thickness where it really is: a slab poured over a low spot is thicker there than at its forms. To weigh a slab you plan to break out and haul, measure it before breaking it; the broken pieces take more room with the air between them, but weigh the same.",
      "reviewed": "2026-10-16",
      "page": "https://yardsneeded.com/concrete-weight-calculator/"
    },
    {
      "id": "blown-in-insulation",
      "material": "Blown-in insulation",
      "sold_in": "bags",
      "method": "blown_in_bags",
      "formula": "bags = ceil(max(attic sq ft ÷ 1000 × minimum bags per 1,000 sq ft, attic sq ft ÷ maximum sq ft per bag)) for the chosen R-value, from the Johns Manville Attic Protector R-Value Fact Sheet (R-38: 21.1 bags per 1,000 sq ft, 47 sq ft per bag, at least 16.2 in installed); with your own bag chart, bags = ceil(sq ft ÷ 1000 × its bags per 1,000 sq ft)",
      "options": [
        {
          "field": "R-value to reach",
          "value": "11",
          "label": "R-11 (5.4 bags per 1,000 sq ft on the Johns Manville chart)"
        },
        {
          "field": "R-value to reach",
          "value": "13",
          "label": "R-13 (6.4 bags per 1,000 sq ft on the Johns Manville chart)"
        },
        {
          "field": "R-value to reach",
          "value": "19",
          "label": "R-19 (9.7 bags per 1,000 sq ft on the Johns Manville chart)"
        },
        {
          "field": "R-value to reach",
          "value": "22",
          "label": "R-22 (11.4 bags per 1,000 sq ft on the Johns Manville chart)"
        },
        {
          "field": "R-value to reach",
          "value": "26",
          "label": "R-26 (13.7 bags per 1,000 sq ft on the Johns Manville chart)"
        },
        {
          "field": "R-value to reach",
          "value": "30",
          "label": "R-30 (16.1 bags per 1,000 sq ft on the Johns Manville chart)"
        },
        {
          "field": "R-value to reach",
          "value": "38",
          "label": "R-38 (21.1 bags per 1,000 sq ft on the Johns Manville chart)"
        },
        {
          "field": "R-value to reach",
          "value": "44",
          "label": "R-44 (25.0 bags per 1,000 sq ft on the Johns Manville chart)"
        },
        {
          "field": "R-value to reach",
          "value": "49",
          "label": "R-49 (28.4 bags per 1,000 sq ft on the Johns Manville chart)"
        },
        {
          "field": "R-value to reach",
          "value": "60",
          "label": "R-60 (36.2 bags per 1,000 sq ft on the Johns Manville chart)"
        }
      ],
      "sources": [
        {
          "note": "Coverage chart: Johns Manville, Attic Protector Blow-in Loose-fill Fiber Glass Insulation, R-Value Fact Sheet (December 2013). For each R-value from R-11 to R-60 it gives the minimum installed thickness, the thickness after long-term settling, the minimum bags per 1,000 sq ft and the maximum net coverage per bag; R-38 is at least 16.2 in, 16.1 in settled, 21.1 bags per 1,000 sq ft and 47 sq ft per bag at most. The calculator meets both bag rules and keeps the larger count. Read October 16, 2026.",
          "url": "https://www.jm.com/content/dam/jm/global/en/building-insulation/Files/BI%20Toolbox/Attic%20Protector%20R-Value%20Fact%20Sheet_121313.pdf"
        },
        {
          "note": "R-value by climate zone: ENERGY STAR, Recommended Home Insulation R-Values, based on the 2021 IECC Table R402.1.3. For an uninsulated attic floor, R30 in zone 1, R49 in zones 2 and 3 and R60 in zones 4 to 8; with 3 to 4 inches already there, R25, R38 and R49. Read October 16, 2026.",
          "url": "https://www.energystar.gov/saveathome/seal_insulate/identify-problems-you-want-fix/diy-checks-inspections/insulation-r-values"
        },
        {
          "note": "Area is geometry: attic length × width, the floor between the outside walls. Bags are the area ÷ 1,000 × bags per 1,000 sq ft, rounded up; with the Johns Manville chart, the area ÷ the coverage per bag too, keeping the larger.",
          "url": null
        }
      ],
      "caveat": "Each loose-fill product, fiber glass or cellulose and each bag weight, has its own chart printed on the bag, and the numbers differ from one to another: type the bags per 1,000 sq ft from yours and the count follows it. Blow to the installed thickness, not the settled one; the settled figure is what the attic keeps after the insulation sinks over the years.",
      "reviewed": "2026-10-16",
      "page": "https://yardsneeded.com/blown-in-insulation-calculator/"
    },
    {
      "id": "rafter-length",
      "material": "Rafter length",
      "sold_in": "ft",
      "method": "rafter_length",
      "formula": "run in = building span ft × 12 ÷ 2 − ridge board thickness in ÷ 2; rafter in = (run in + overhang in, measured level) × √(1 + (rise in ÷ 12)²); plumb cut angle = atan(rise ÷ 12)",
      "options": [],
      "sources": [
        {
          "note": "Rafter length is geometry: the horizontal run is half the building span less half the ridge board thickness, since the rafters bear on its two faces. The overhang, measured level out from the wall, is added to the run, and the total is multiplied by the pitch factor √(1 + (rise ÷ 12)²), the length of rafter per inch of run.",
          "url": null
        },
        {
          "note": "The plumb cut angle is the roof angle, atan(rise ÷ 12): 26.6° for 6/12 and 45° for 12/12. Lengths are rounded to the nearest 1/16 in, the finest mark on a tape.",
          "url": null
        }
      ],
      "caveat": "This is the line length laid out along the rafter at its slope, from the ridge plumb cut to the tail; the birdsmouth seat is cut where it crosses the wall line and does not change it. Measure the span from the outside of one wall to the outside of the other, where the rafters sit. Buy the next board length up: the rest is scrap.",
      "reviewed": "2026-10-16",
      "page": "https://yardsneeded.com/rafter-length-calculator/"
    },
    {
      "id": "board-and-batten",
      "material": "Board and batten",
      "sold_in": "battens",
      "method": "board_and_batten",
      "formula": "battens n = max(2, ceil((wall width in + largest gap in) ÷ (batten width in + largest gap in))), one at each end; gap in = (wall width in − n × batten width in) ÷ (n − 1); vertical length = wall height − rails × batten width; pieces = ceil(n ÷ verticals per piece) + ceil(rails × wall width ÷ piece length)",
      "options": [
        {
          "field": "Board length",
          "value": "8",
          "label": "8 ft boards"
        },
        {
          "field": "Board length",
          "value": "10",
          "label": "10 ft boards"
        },
        {
          "field": "Board length",
          "value": "12",
          "label": "12 ft boards"
        },
        {
          "field": "Board length",
          "value": "16",
          "label": "16 ft boards"
        }
      ],
      "sources": [
        {
          "note": "Batten spacing is geometry: with a batten at each end, n battens leave n − 1 equal gaps, so the wall width is n × the batten width plus n − 1 gaps. The batten count is the smallest that keeps the gap at or under the one you set, (width + gap) ÷ (batten + gap) rounded up, and the real gap is (width − n × batten) ÷ (n − 1).",
          "url": null
        },
        {
          "note": "Lengths: horizontal rails run the full wall width and can be joined; the verticals fit between them, the wall height less the rails' width, each one cut from a single board. Gaps are rounded to the nearest 1/16 in. Use the actual width of your battens, measured: a nominal 1 × 4 is narrower than 4 in.",
          "url": null
        }
      ],
      "caveat": "The gap is the clear space between two battens, and the end battens sit tight to the corners. Windows, doors and outlets interrupt battens without changing the layout: keep the spacing and cut the battens around them. Mark the centers on the wall from one corner before nailing, so a small error does not add up across the wall.",
      "reviewed": "2026-10-16",
      "page": "https://yardsneeded.com/board-and-batten-calculator/"
    },
    {
      "id": "pond-liner",
      "material": "Pond liner",
      "sold_in": "ft",
      "method": "pond_liner",
      "formula": "liner length ft = pond length + 2 × deepest depth + 2 × edge overlap; liner width ft = pond width + 2 × deepest depth + 2 × edge overlap; sq ft = length × width",
      "options": [],
      "sources": [
        {
          "note": "Liner size is geometry: the liner runs down one wall, across the bottom and up the other, so each side is the pond length (or width) plus 2 × the deepest depth, plus the overlap you leave at each edge, twice. Square feet are length × width.",
          "url": null
        },
        {
          "note": "Shelves and sloped sides do not change it: the liner still climbs the full depth on each side and crosses the full length, so the same count covers them. Sizes are given to the nearest 1/16 in.",
          "url": null
        }
      ],
      "caveat": "Measure the hole after digging, at its longest, widest and deepest points; a free-form pond is measured as the smallest rectangle around it. Order the next liner size up from the one you get, and cut the rest off once the pond is filled and the liner has settled into place.",
      "reviewed": "2026-10-16",
      "page": "https://yardsneeded.com/pond-liner-calculator/"
    },
    {
      "id": "caulk",
      "material": "Caulk",
      "sold_in": "tubes",
      "method": "caulk_tubes",
      "formula": "feet per tube = tube fl oz × 1.8046875 cu in (1 US fl oz = 231/128 cu in) ÷ bead section sq in ÷ 12, the section being width × depth for a filled joint and half that for a corner bead; tubes = ceil(joint ft ÷ feet per tube)",
      "options": [
        {
          "field": "Bead shape",
          "value": "rect",
          "label": "Joint filled to depth (width × depth)"
        },
        {
          "field": "Bead shape",
          "value": "tri",
          "label": "Corner bead (triangle, half of width × depth)"
        }
      ],
      "sources": [
        {
          "note": "Volume of the tube: a US fluid ounce is 231/128 = 1.8046875 cubic inches exactly, since the US gallon is defined as 231 cubic inches and holds 128 fluid ounces. A 10.1 fl oz tube holds 18.23 cubic inches.",
          "url": null
        },
        {
          "note": "The bead is geometry: a joint filled to depth has a section of width × depth, and a corner bead, a right triangle, half of that. Feet per tube are the cubic inches ÷ the section ÷ 12; tubes are the feet of joint ÷ feet per tube, rounded up.",
          "url": null
        }
      ],
      "caveat": "The count uses the full volume printed on the tube, and some always stays in the nozzle and at the end of the tube: that is why it rounds up. For a deep joint packed with backer rod, enter as depth only the sealant above the rod, not the depth of the gap.",
      "reviewed": "2026-10-16",
      "page": "https://yardsneeded.com/caulk-calculator/"
    },
    {
      "id": "wainscoting",
      "material": "Wainscoting",
      "sold_in": "sheets or boards",
      "method": "wainscoting_pieces",
      "formula": "wall ft = 2 × (length + width) − door openings; strips = ceil(wall ft × 12 × (1 + waste) ÷ panel or plank face width in); strips per piece = floor(piece length in ÷ wainscot height in); pieces = ceil(strips ÷ strips per piece); cap rail ft = wall ft",
      "options": [
        {
          "field": "Sheet or board length",
          "value": "8",
          "label": "8 ft"
        },
        {
          "field": "Sheet or board length",
          "value": "10",
          "label": "10 ft"
        },
        {
          "field": "Sheet or board length",
          "value": "12",
          "label": "12 ft"
        }
      ],
      "sources": [
        {
          "note": "Wall length is geometry: the room perimeter, 2 × (length + width), less the door openings. Strips are the wall in inches, plus your waste allowance, divided by the width each panel or plank covers, rounded up.",
          "url": null
        },
        {
          "note": "Each sheet or board stands on end and is cut to the wainscoting height, so it gives as many strips as that height fits in its length, rounded down: a 4 × 8 ft sheet at 36 in gives two, at 32 in three. The cap rail runs the same linear feet as the wall.",
          "url": null
        }
      ],
      "caveat": "Count every wall the wainscoting runs on and leave out the door openings; windows above the wainscoting do not change the count. Planks are counted by the face they cover once fitted, without the tongue. Outside corners and cuts around outlets take part of a strip, which is what the waste allowance covers.",
      "reviewed": "2026-10-16",
      "page": "https://yardsneeded.com/wainscoting-calculator/"
    },
    {
      "id": "deck-footing",
      "material": "Deck footing",
      "sold_in": "inches of footing",
      "method": "deck_footing_table",
      "formula": "sq ft per post = post spacing ft × (joist span ft ÷ 2 + joist overhang ft); footing = IRC 2021 Table R507.3.1 [load, the table row at or above that area, soil 1,500 / 2,000 / 3,000 psf from Table R401.4.1]: side of a square footing, diameter of a round one and plain-concrete thickness, in inches; no size past 160 sq ft (no extrapolation)",
      "options": [
        {
          "field": "Load",
          "value": "40",
          "label": "40 psf live load, no snow"
        },
        {
          "field": "Load",
          "value": "50",
          "label": "50 psf ground snow load"
        },
        {
          "field": "Load",
          "value": "60",
          "label": "60 psf ground snow load"
        },
        {
          "field": "Load",
          "value": "70",
          "label": "70 psf ground snow load"
        },
        {
          "field": "Soil (IRC Table R401.4.1)",
          "value": "1500",
          "label": "Clay, silty clay or silt — 1,500 psf"
        },
        {
          "field": "Soil (IRC Table R401.4.1)",
          "value": "2000",
          "label": "Sand, silty or clayey sand or gravel — 2,000 psf"
        },
        {
          "field": "Soil (IRC Table R401.4.1)",
          "value": "3000",
          "label": "Sandy gravel or gravel — 3,000 psf"
        }
      ],
      "sources": [
        {
          "note": "Footing size: 2021 International Residential Code, Section R507.3.1 and Table R507.3.1, Minimum Footing Size for Decks, printed in full below: by live or ground snow load, tributary area (the deck surface a post supports) and soil bearing value, the side of a square footing, the diameter of a round one and the thickness, which applies to plain concrete only. Interpolation is permitted and extrapolation is not, so this page takes the table row at or above your area, never a smaller one, and gives no size past 160 square feet. Read October 18, 2026, in the code text published by UpCodes, and checked against the model text reproduced in the 2021 Seattle Residential Code.",
          "url": "https://up.codes/viewer/new_jersey/irc-2021/chapter/5/floors"
        },
        {
          "note": "Soil: IRC 2021 Table R401.4.1, Presumptive Load-Bearing Values of Foundation Materials, which the footing table points to: clay, sandy clay, silty clay and silt 1,500 psf; sand, silty or clayey sand and silty or clayey gravel 2,000 psf; sandy gravel and gravel 3,000 psf. A soil test, where one is required, sets the value instead. Depth: R507.3.2 puts deck footings at least 12 inches below undisturbed ground, and R507.3.3 takes them below the frost line when the deck is attached to a frost-protected house. Read October 18, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter4.pdf"
        },
        {
          "note": "The area per post is geometry: a beam carries half the joist span, the other half going to the ledger or the next beam, plus the whole overhang, along the spacing between its posts.",
          "url": null
        }
      ],
      "caveat": "Your state or county adopts a version of the IRC and can amend these tables: New Jersey, for one, raises the presumptive soil values. The footing your inspector accepts is the one in your adopted code, and the frost depth is set locally in Table R301.2 of that code.",
      "reviewed": "2026-10-18",
      "page": "https://yardsneeded.com/deck-footing-calculator/"
    },
    {
      "id": "deck-stain",
      "material": "Deck stain",
      "sold_in": "gallons",
      "method": "deck_stain_gallons",
      "formula": "gallons = (deck length ft × width ft + railings and steps sq ft) × coats ÷ the coverage on your can, sq ft per gallon; buy ceil(gallons). Starting coverage 350 sq ft/gal, the low end of the Behr No. 4600 technical data sheet (350-400 sq ft/gal, one coat)",
      "options": [],
      "sources": [
        {
          "note": "Starting coverage: the Technical Data Sheet of BEHR Premium Semi-Transparent Waterproofing Stain & Sealer No. 4600, an oil-based (alkyd) penetrating stain for decks, fences and siding: «Coverage: 350-400 sq ft/gal, depending on application method and substrate porosity. Does not include the loss of material from spraying.» and «One coat application.» The calculator starts at 350, the end that does not leave you short. Read October 17, 2026, and again October 18, 2026.",
          "url": "https://images.thdstatic.com/catalog/pdfImages/21/21eb9b8d-192c-415e-a844-4ce40bc28f78.pdf"
        },
        {
          "note": "Coverage is per product, so the calculator takes the figure printed on your can; the rest is arithmetic: square feet × coats ÷ square feet per gallon, rounded up to whole gallons.",
          "url": null
        }
      ],
      "caveat": "Rough or weathered boards soak up more stain than new smooth ones, which is why the data sheet gives a range: a thirsty deck sits at the low end. Spraying loses material that the coverage figure does not count.",
      "reviewed": "2026-10-18",
      "page": "https://yardsneeded.com/deck-stain-calculator/"
    },
    {
      "id": "floor-joist-span",
      "material": "Floor joist span",
      "sold_in": "feet and inches of span",
      "method": "floor_joist_span_table",
      "formula": "maximum span = IRC 2021 Table R502.3.1(1) (sleeping areas, 30 psf live) or R502.3.1(2) (living areas, 40 psf live) [dead load 10 or 20 psf, spacing, species, grade, joist size]; a lookup, no arithmetic",
      "options": [
        {
          "field": "Species",
          "value": "douglas-fir-larch",
          "label": "Douglas fir-larch"
        },
        {
          "field": "Species",
          "value": "hem-fir",
          "label": "Hem-fir"
        },
        {
          "field": "Species",
          "value": "southern-pine",
          "label": "Southern pine"
        },
        {
          "field": "Species",
          "value": "spruce-pine-fir",
          "label": "Spruce-pine-fir"
        },
        {
          "field": "Grade",
          "value": "SS",
          "label": "Select structural (SS)"
        },
        {
          "field": "Grade",
          "value": "#1",
          "label": "No. 1"
        },
        {
          "field": "Grade",
          "value": "#2",
          "label": "No. 2"
        },
        {
          "field": "Grade",
          "value": "#3",
          "label": "No. 3"
        },
        {
          "field": "Joist size",
          "value": "2x6",
          "label": "2 × 6"
        },
        {
          "field": "Joist size",
          "value": "2x8",
          "label": "2 × 8"
        },
        {
          "field": "Joist size",
          "value": "2x10",
          "label": "2 × 10"
        },
        {
          "field": "Joist size",
          "value": "2x12",
          "label": "2 × 12"
        },
        {
          "field": "Joist spacing",
          "value": "12",
          "label": "12 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "16",
          "label": "16 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "19.2",
          "label": "19.2 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "24",
          "label": "24 in on center"
        },
        {
          "field": "Room above",
          "value": "40",
          "label": "Living areas — 40 psf live load"
        },
        {
          "field": "Room above",
          "value": "30",
          "label": "Sleeping areas — 30 psf live load"
        },
        {
          "field": "Dead load",
          "value": "10",
          "label": "10 psf — typical floor"
        },
        {
          "field": "Dead load",
          "value": "20",
          "label": "20 psf — heavier floor, such as tile on a mortar bed"
        }
      ],
      "sources": [
        {
          "note": "Spans: 2021 International Residential Code, Section R502.3.1 and Tables R502.3.1(1), Floor Joist Spans for Common Lumber Species in residential sleeping areas at a 30 psf live load, and R502.3.1(2), the same for living areas at 40 psf, printed in full below. Both limit deflection to L/360 and give each span for a 10 psf and a 20 psf dead load. Read October 17, 2026, in the code text published by UpCodes, checked cell by cell against the model text reproduced in the 2021 Seattle Residential Code, and read again October 18, 2026.",
          "url": "https://up.codes/viewer/new_jersey/irc-2021/chapter/5/floors"
        },
        {
          "note": "Nothing here is calculated: the page looks up the cell for your species, grade, size, spacing and loads, and for a span you type it lists the sizes whose cell is at least that long.",
          "url": null
        }
      ],
      "caveat": "These are the IRC's tables for sawn lumber in a house. I-joists and engineered lumber carry their maker's own span tables, and a floor under a hot tub, a piano or a heavy wall is an engineered load. Your state or county adopts a version of the IRC and can amend the tables: the span your inspector accepts is the one in your adopted code.",
      "reviewed": "2026-10-18",
      "page": "https://yardsneeded.com/floor-joist-span-calculator/"
    },
    {
      "id": "deck-beam-span",
      "material": "Deck beam span",
      "sold_in": "feet and inches of beam span",
      "method": "deck_beam_span_table",
      "formula": "effective joist span = actual joist span ft × IRC 2021 Table R507.5(5) factor for joist overhang ÷ joist span (0 → 0.66 … 1/4 → 1.00, row at or above); maximum beam span = Tables R507.5(1)-(4) [load, species group, beam plies and size, the effective joist span column at or above]; nothing past C/J 1/4 or 18 ft effective (no extrapolation)",
      "options": [
        {
          "field": "Beam species",
          "value": "southern-pine",
          "label": "Southern pine"
        },
        {
          "field": "Beam species",
          "value": "dfl-hf-spf",
          "label": "Douglas fir-larch, hem-fir or spruce-pine-fir"
        },
        {
          "field": "Beam species",
          "value": "redwood-cedar-ponderosa-red-pine",
          "label": "Redwood, western cedars, ponderosa pine or red pine"
        },
        {
          "field": "Beam",
          "value": "1-2x6",
          "label": "1-ply 2 × 6"
        },
        {
          "field": "Beam",
          "value": "1-2x8",
          "label": "1-ply 2 × 8"
        },
        {
          "field": "Beam",
          "value": "1-2x10",
          "label": "1-ply 2 × 10"
        },
        {
          "field": "Beam",
          "value": "1-2x12",
          "label": "1-ply 2 × 12"
        },
        {
          "field": "Beam",
          "value": "2-2x6",
          "label": "2-ply 2 × 6"
        },
        {
          "field": "Beam",
          "value": "2-2x8",
          "label": "2-ply 2 × 8"
        },
        {
          "field": "Beam",
          "value": "2-2x10",
          "label": "2-ply 2 × 10"
        },
        {
          "field": "Beam",
          "value": "2-2x12",
          "label": "2-ply 2 × 12"
        },
        {
          "field": "Beam",
          "value": "3-2x6",
          "label": "3-ply 2 × 6"
        },
        {
          "field": "Beam",
          "value": "3-2x8",
          "label": "3-ply 2 × 8"
        },
        {
          "field": "Beam",
          "value": "3-2x10",
          "label": "3-ply 2 × 10"
        },
        {
          "field": "Beam",
          "value": "3-2x12",
          "label": "3-ply 2 × 12"
        },
        {
          "field": "Load",
          "value": "40",
          "label": "40 psf live load, no snow"
        },
        {
          "field": "Load",
          "value": "50",
          "label": "50 psf ground snow load"
        },
        {
          "field": "Load",
          "value": "60",
          "label": "60 psf ground snow load"
        },
        {
          "field": "Load",
          "value": "70",
          "label": "70 psf ground snow load"
        }
      ],
      "sources": [
        {
          "note": "Beam spans: 2021 International Residential Code, Section R507.5 and Tables R507.5(1) to R507.5(4), Maximum Deck Beam Span, for a 40 psf live load and 50, 60 and 70 psf ground snow loads, printed in full below, and Table R507.5(5), Joist Span Factors for Calculating Effective Deck Joist Span. They assume No. 2 grade lumber with the wet service factor, a 10 psf dead load and deflection limited to L/360, allow interpolation but not extrapolation, and limit a beam's overhang past its post to a quarter of the adjacent span. Read October 17, 2026, in the code text published by UpCodes, checked cell by cell against the model text reproduced in the 2021 Seattle Residential Code, and read again October 18, 2026.",
          "url": "https://up.codes/viewer/new_jersey/irc-2021/chapter/5/floors"
        },
        {
          "note": "The page multiplies your joist span by the factor for your overhang, rounding the overhang up to the next row of Table R507.5(5) and the result up to the next column of the beam table, so it never gives a longer span than interpolating would. Three cells for 3-ply 2 × 8 redwood are printed in the 2021 IRC as “604”, “6-22” and “5-20”, which are not spans: the calculator skips them, uses the next column and says so.",
          "url": null
        }
      ],
      "caveat": "The beam span is the distance between posts. A beam can run past its end post by at most a quarter of that span, and its depth must be at least the joists' depth where they hang flush from it. Glulam and LVL beams carry their maker's tables, and a hot tub or a roof over the deck is an engineered load. Your state or county adopts a version of the IRC and can amend the tables.",
      "reviewed": "2026-10-18",
      "page": "https://yardsneeded.com/deck-beam-span-calculator/"
    },
    {
      "id": "crown-molding",
      "material": "Crown molding",
      "sold_in": "pieces",
      "method": "crown_molding",
      "formula": "linear ft = 2 × (room length + width) × (1 + waste); pieces = ceil(linear ft ÷ piece length ft); cutting flat on a compound miter saw: miter = atan(sin spring ÷ tan(corner ÷ 2)), bevel = asin(cos spring × cos(corner ÷ 2))",
      "options": [
        {
          "field": "Spring angle of your crown",
          "value": "38",
          "label": "38° (sold as 52/38 crown)"
        },
        {
          "field": "Spring angle of your crown",
          "value": "45",
          "label": "45° (sold as 45/45 crown)"
        },
        {
          "field": "Spring angle of your crown",
          "value": "52",
          "label": "52°"
        }
      ],
      "sources": [
        {
          "note": "Pieces: the perimeter of the room, 2 × (length + width), plus the waste allowance you set, divided by the length of the pieces you buy and rounded up. The allowance starts empty because how much you lose to cuts depends on your corners and your saw.",
          "url": null
        },
        {
          "note": "Angles: trigonometry of a compound miter. With S the spring angle, the angle the back of the crown makes against the wall, and the corner angle between the walls, the miter is atan(sin S ÷ tan(corner ÷ 2)) and the bevel is asin(cos S × cos(corner ÷ 2)). They match the settings carpenters print for the common case: 31.6° and 33.9° for 38° crown at a square corner, 35.3° and 30.0° for 45° crown.",
          "url": null
        }
      ],
      "caveat": "The angles are for cutting the crown flat on the saw table, face up, with a compound miter saw. Cutting it upside down and nested against the fence uses the miter only, at half the corner angle, with no bevel. Walls are rarely exactly square: measure the corner with an angle finder and type what it reads.",
      "reviewed": "2026-10-18",
      "page": "https://yardsneeded.com/crown-molding-calculator/"
    },
    {
      "id": "spray-foam",
      "material": "Spray foam",
      "sold_in": "kits",
      "method": "spray_foam_kits",
      "formula": "board feet = area sq ft × foam thickness in; kits = ceil(board feet ÷ kit yield), Froth-Pak 210 = 210 and Froth-Pak 650 = 650 board ft (theoretical, calculated at 1 in thick); R ≈ thickness in × 6.7 initial, from the DuPont Froth-Pak Product Information Sheet 43-D100067",
      "options": [
        {
          "field": "Kit",
          "value": "210",
          "label": "Froth-Pak 210 (210 board ft)"
        },
        {
          "field": "Kit",
          "value": "650",
          "label": "Froth-Pak 650 (650 board ft)"
        }
      ],
      "sources": [
        {
          "note": "Kit yields and R-value: DuPont's Product Information Sheet for Froth-Pak Insulation Spray Foam (43-D100067-enUS-0521). Table 1 gives the Froth-Pak 210 kit 210 board feet and the Froth-Pak 650 kit 650, «calculated at 1” thick» in laboratory conditions, and says real yield is lower; Table 2 gives an initial R-value of 6.7 per inch (ASTM C518, minimum), and after 180 days R-6.2 for a 1 inch layer and R-12.2 for 2 inches. Read October 19, 2026.",
          "url": "https://res.cloudinary.com/tacoma-screw-products/image/upload/Documents/614-027_tds.pdf"
        },
        {
          "note": "A board foot is one square foot one inch thick, the unit of the data sheet's yields, so board feet = square feet × inches of foam; kits are rounded up.",
          "url": null
        }
      ],
      "caveat": "The kit yields are theoretical: DuPont measures them in laboratory conditions and says that blowing agent loss and the way the foam is sprayed make the real yield lower, without giving a figure, so a job that lands close to a kit's yield runs out before it.",
      "reviewed": "2026-10-19",
      "page": "https://yardsneeded.com/spray-foam-calculator/"
    },
    {
      "id": "polymeric-sand",
      "material": "Polymeric sand",
      "sold_in": "bags",
      "method": "bags_by_coverage_band",
      "formula": "bags = ceil(area sq ft ÷ the low end of the manufacturer coverage per bag (50 lb unless the row says otherwise) for the chosen row); polymeric sand rows from the Gator Maxx G2 data sheet by joint width (65-85 / 22-42 sq ft, pavers 2-3/8 in), thinset rows from the Custom Building Products PremiumPlus TDS-193 coverage chart by trowel (85-95 / 60-67 sq ft); stucco rows per 80 lb bag from the QUIKRETE Scratch and Brown Base Coat Stucco No. 1139 data sheet by base coat thickness (3/8 in 20-24, 1/2 in 15-18, 3/4 in 10-12 sq ft); or the coverage on your own bag",
      "options": [
        {
          "field": "Joint width",
          "value": "gator-estrecha",
          "label": "narrow joints, 1/8 to 3/8 in: 65-85 sq ft per bag"
        },
        {
          "field": "Joint width",
          "value": "gator-ancha",
          "label": "wide joints, 3/4 to 1 1/4 in: 22-42 sq ft per bag"
        },
        {
          "field": "Joint width",
          "value": "gator-estrecha-bd",
          "label": "narrow joints, Black Diamond color: 58-76 sq ft per bag"
        },
        {
          "field": "Joint width",
          "value": "gator-ancha-bd",
          "label": "wide joints, Black Diamond color: 20-38 sq ft per bag"
        }
      ],
      "sources": [
        {
          "note": "Coverage and joints: the Technical Data Sheet of Gator Maxx G2 polymeric sand, by Alliance Designer Products. Per 50 lb bag, for pavers 2-3/8 inches tall: narrow joints of 1/8 to 3/8 inch, 65-85 square feet (58-76 in the Black Diamond color); wide joints of 3/4 to 1-1/4 inch, 22-42 square feet (20-38). Minimum joint width 1/8 inch, maximum 4 inches; minimum joint depth 1-1/2 inches; the sand sits at least 1/8 inch below the top of the paver. Read October 19, 2026.",
          "url": "https://alliancegator.com/wp-content/uploads/documentation/tds/polymeric-sands/alliance-gator-maxx-bond-g2-tds-june-2-2025.pdf"
        },
        {
          "note": "The rest is arithmetic: square feet ÷ square feet per bag, rounded up, at the low end of the coverage so the last joints are not left empty.",
          "url": null
        }
      ],
      "caveat": "The data sheet's coverage is for pavers 2-3/8 inches tall: taller pavers have deeper joints and take more sand per square foot. Joints from 3/8 to 3/4 inch fall between its two rows; the calculator does not invent a figure for them, so enter the coverage printed on your bag.",
      "reviewed": "2026-10-19",
      "page": "https://yardsneeded.com/polymeric-sand-calculator/"
    },
    {
      "id": "thinset",
      "material": "Thinset",
      "sold_in": "bags",
      "method": "bags_by_coverage_band",
      "formula": "bags = ceil(area sq ft ÷ the low end of the manufacturer coverage per bag (50 lb unless the row says otherwise) for the chosen row); polymeric sand rows from the Gator Maxx G2 data sheet by joint width (65-85 / 22-42 sq ft, pavers 2-3/8 in), thinset rows from the Custom Building Products PremiumPlus TDS-193 coverage chart by trowel (85-95 / 60-67 sq ft); stucco rows per 80 lb bag from the QUIKRETE Scratch and Brown Base Coat Stucco No. 1139 data sheet by base coat thickness (3/8 in 20-24, 1/2 in 15-18, 3/4 in 10-12 sq ft); or the coverage on your own bag",
      "options": [
        {
          "field": "Trowel",
          "value": "custom-1/4x1/4",
          "label": "1/4 × 1/4 in square-notch: 85-95 sq ft per bag"
        },
        {
          "field": "Trowel",
          "value": "custom-1/4x3/8",
          "label": "1/4 × 3/8 in square-notch: 60-67 sq ft per bag"
        }
      ],
      "sources": [
        {
          "note": "Coverage per trowel: the coverage chart of Custom Building Products PremiumPlus Premium Non-Modified Thin-Set Mortar (TDS-193), the same as for its MultiSet (TDS-192). Per 50 lb bag: 1/4 × 1/4 × 1/4 inch square-notch, 85 to 95 square feet; 1/4 × 3/8 × 1/4 inch square-notch, 60 to 67. Mortar contact between the substrate and the tile has to be at least 80% in dry areas and 95% in wet areas and outdoors. Read October 19, 2026.",
          "url": "https://www.custombuildingproducts.com/products/premiumplus-premium-non-modified-thin-set-mortar"
        },
        {
          "note": "The rest is arithmetic: square feet ÷ square feet per bag, rounded up, at the low end of the chart so the last row of tile is not left without mortar.",
          "url": null
        }
      ],
      "caveat": "The chart counts mortar under the tile only. Large tiles, tiles with a deep pattern underneath and ungauged natural stone can need a bigger notch and back-troweling, and Custom says to add that mortar to the estimate without giving a figure: enter the coverage your bag prints for your trowel.",
      "reviewed": "2026-10-19",
      "page": "https://yardsneeded.com/thinset-calculator/"
    },
    {
      "id": "rubber-mulch",
      "material": "Rubber mulch",
      "sold_in": "cubic feet",
      "method": "rubber_mulch_volume",
      "formula": "cubic feet = length ft × width ft × depth in ÷ 12; cubic yards = cubic feet ÷ 27; bags = ceil(cubic feet ÷ cubic feet per bag). Playground depth 6 in of shredded rubber for a fall height up to 10 ft, from the CPSC Public Playground Safety Handbook (Pub. 325) Table 2, with no allowance for compression (the handbook says rubber does not compress like other loose fill)",
      "options": [
        {
          "field": "Where it goes",
          "value": "juego",
          "label": "under play equipment"
        },
        {
          "field": "Where it goes",
          "value": "jardin",
          "label": "a garden bed or path"
        }
      ],
      "sources": [
        {
          "note": "Depth: the U.S. Consumer Product Safety Commission's Public Playground Safety Handbook (Pub. 325): «Never use less than 9 inches of loose-fill material except for shredded/recycled rubber (6 inches recommended).» Its Table 2 rates shredded or recycled rubber for falls up to 10 feet, the same as 9 inches of wood chips. Loose fill compresses at least 25% over time, so 9 inches of wood chips are laid 12 inches deep; shredded rubber «does not compress in the same manner». Read October 19, 2026.",
          "url": "https://www.cpsc.gov/s3fs-public/325.pdf"
        },
        {
          "note": "Volume is geometry: square feet × depth in inches ÷ 12 = cubic feet, and 27 cubic feet make a cubic yard. Bag counts are rounded up.",
          "url": null
        }
      ],
      "caveat": "Rubber mulch does not settle the way wood mulch does, but it still gets kicked out from under swings and slide exits, where the handbook says to watch the depth most. The 6 inches are for public playgrounds; a garden bed has no minimum.",
      "reviewed": "2026-10-19",
      "page": "https://yardsneeded.com/rubber-mulch-calculator/"
    },
    {
      "id": "rafter-span",
      "material": "Rafter span",
      "sold_in": "feet and inches of span",
      "method": "rafter_span_table",
      "formula": "maximum rafter span (horizontal projection) = IRC 2021 Tables R802.4.1(1)-(8) [roof live load 20 psf or ground snow 30/50/70 psf, ceiling attached or not, spacing, species, grade, dead load 10/20 psf, size] × Table R802.4.1(9) factor for rafter ties at H_C/H_R (1/6 0.90, 1/5 0.83, 1/4 0.76, 1/3 0.67; the row at or above, no interpolation), rounded down to the inch; note b = over 26 ft; six cells misprinted in the 2021 IRC are read from the next stricter table",
      "options": [
        {
          "field": "Species",
          "value": "douglas-fir-larch",
          "label": "Douglas fir-larch"
        },
        {
          "field": "Species",
          "value": "hem-fir",
          "label": "Hem-fir"
        },
        {
          "field": "Species",
          "value": "southern-pine",
          "label": "Southern pine"
        },
        {
          "field": "Species",
          "value": "spruce-pine-fir",
          "label": "Spruce-pine-fir"
        },
        {
          "field": "Grade",
          "value": "SS",
          "label": "Select structural (SS)"
        },
        {
          "field": "Grade",
          "value": "#1",
          "label": "No. 1"
        },
        {
          "field": "Grade",
          "value": "#2",
          "label": "No. 2"
        },
        {
          "field": "Grade",
          "value": "#3",
          "label": "No. 3"
        },
        {
          "field": "Rafter size",
          "value": "2x4",
          "label": "2 × 4"
        },
        {
          "field": "Rafter size",
          "value": "2x6",
          "label": "2 × 6"
        },
        {
          "field": "Rafter size",
          "value": "2x8",
          "label": "2 × 8"
        },
        {
          "field": "Rafter size",
          "value": "2x10",
          "label": "2 × 10"
        },
        {
          "field": "Rafter size",
          "value": "2x12",
          "label": "2 × 12"
        },
        {
          "field": "Rafter spacing",
          "value": "12",
          "label": "12 in on center"
        },
        {
          "field": "Rafter spacing",
          "value": "16",
          "label": "16 in on center"
        },
        {
          "field": "Rafter spacing",
          "value": "19.2",
          "label": "19.2 in on center"
        },
        {
          "field": "Rafter spacing",
          "value": "24",
          "label": "24 in on center"
        },
        {
          "field": "Roof load",
          "value": "20",
          "label": "No snow — 20 psf roof live load"
        },
        {
          "field": "Roof load",
          "value": "30",
          "label": "30 psf ground snow"
        },
        {
          "field": "Roof load",
          "value": "50",
          "label": "50 psf ground snow"
        },
        {
          "field": "Roof load",
          "value": "70",
          "label": "70 psf ground snow"
        },
        {
          "field": "Ceiling",
          "value": "no",
          "label": "Not attached to the rafters (attic with ceiling joists)"
        },
        {
          "field": "Ceiling",
          "value": "si",
          "label": "Attached to the rafters (cathedral or vaulted)"
        },
        {
          "field": "Dead load",
          "value": "10",
          "label": "10 psf — asphalt shingles"
        },
        {
          "field": "Dead load",
          "value": "20",
          "label": "20 psf — heavier roofing"
        }
      ],
      "sources": [
        {
          "note": "Spans: IRC 2021 Tables R802.4.1(1) to R802.4.1(8), Rafter Spans for Common Lumber Species, one table per roof load (20 psf live, or 30, 50 or 70 psf ground snow) and ceiling (not attached, L/Δ = 180; attached, L/Δ = 240), measured along the horizontal projection; note b, «Span exceeds 26 feet in length». Table R802.4.1(9) multiplies them by 0.90, 0.83, 0.76 or 0.67 when the ties sit 1/6, 1/5, 1/4 or 1/3 of the way to the ridge. Read October 17, 2026, in the New Jersey edition, which does not amend R802.4.1.",
          "url": "https://up.codes/viewer/new_jersey/irc-2021/chapter/8/roof-ceiling-construction"
        },
        {
          "note": "Checked row by row on October 19, 2026, against the 2021 Seattle Residential Code, which prints the model tables without amendment: 511 of the 512 rows match, and the other is a typo in Seattle's PDF. Six cells are printed out of line in both, so in the 2021 IRC itself; the calculator reads the same cell from the next stricter table and says so.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter8.pdf"
        },
        {
          "note": "Between two rows of Table R802.4.1(9) the calculator takes the higher ratio, the smaller factor, and it rounds an adjusted span down to the whole inch.",
          "url": null
        }
      ],
      "caveat": "The tables cover rafters with ceiling joists or rafter ties at the bottom of the attic, or higher with the Table R802.4.1(9) factor up to a third of the rise. For other species, grades and loads the code refers to the AWC Span Tables for Joists and Rafters.",
      "reviewed": "2026-10-19",
      "page": "https://yardsneeded.com/rafter-span-calculator/"
    },
    {
      "id": "gutter-slope",
      "material": "Gutter slope",
      "sold_in": "inches",
      "method": "gutter_slope",
      "formula": "run to the downspout ft = gutter length (half of it with a downspout at each end); drop in = run ft × slope in per 10 ft ÷ 10, marked rounded up to the 1/16 in; flagged under the minimum of 1/4 in per 10 ft toward the downspout in DOE/NREL Standard Work Specification 2.0201.1c",
      "options": [
        {
          "field": "Downspouts",
          "value": "uno",
          "label": "One, at the low end"
        },
        {
          "field": "Downspouts",
          "value": "dos",
          "label": "One at each end, high point in the middle"
        }
      ],
      "sources": [
        {
          "note": "Minimum slope: the Standard Work Specifications for Home Energy Upgrades of the U.S. Department of Energy and NREL, detail 2.0201.1 Gutters, item 2.0201.1c: «Slope all gutters toward the downspout(s) a minimum of 1/4\" per 10 feet», with the objective «Ensure complete drainage». Item 2.0201.1a says to size gutters for the area drained and gives no table. Read October 20, 2026.",
          "url": "https://sws.nrel.gov/spec/202011"
        },
        {
          "note": "The rest is geometry: drop = run to the downspout in feet × slope per 10 feet ÷ 10, rounded up to the next 1/16 inch. With a downspout at each end the gutter falls from its middle, so the run is half its length.",
          "url": null
        }
      ],
      "caveat": "This sets the slope of a gutter, not its size: the work specification says to size gutters for the area they drain and gives no figure, so this page does not size them. Measure the drop on the top edge of the gutter, from the high end to the outlet.",
      "reviewed": "2026-10-20",
      "page": "https://yardsneeded.com/gutter-slope-calculator/"
    },
    {
      "id": "lime",
      "material": "Lime",
      "sold_in": "lb",
      "method": "lime_by_cce",
      "formula": "lb per 1,000 sq ft = soil test recommendation (lb per acre ÷ 43.56 when given per acre), which Penn State AASL bases on a CCE of 100%; product lb per 1,000 sq ft = that × 100 ÷ the CCE on the label; pounds = area sq ft ÷ 1000 × product rate, rounded up; bags = ceil(pounds ÷ bag lb); over 100 lb per 1,000 sq ft recommended, ceil(rec ÷ 100) applications 4 to 6 months apart",
      "options": [
        {
          "field": "Given",
          "value": "mil",
          "label": "per 1,000 sq ft"
        },
        {
          "field": "Given",
          "value": "acre",
          "label": "per acre"
        }
      ],
      "sources": [
        {
          "note": "Pounds of product: the Penn State Agricultural Analytical Services Laboratory sample soil test report for a home lawn. Its limestone recommendation assumes agricultural ground limestone with a CCE of 100%, and «Actual liming material required = (Soil test recommendation, lbs/1000 square feet) x 100 / CCE of liming material»; its example, 75 lb at a CCE of 80%, comes to 94 lb per 1,000 square feet. Above 100 lb per 1,000 square feet it splits the amount into 2 or more applications 4 to 6 months apart, and it calls fall application generally optimum. Read October 20, 2026.",
          "url": "https://agsci.psu.edu/aasl/soil-testing/fertility/handbooks/turf/forms/sample-soil-test-report-for-home-lawn-maintain"
        },
        {
          "note": "The rest is arithmetic: an acre is 43,560 square feet, so pounds per acre ÷ 43.56 = pounds per 1,000 square feet; pounds per 1,000 × square feet ÷ 1,000, rounded up to the pound; bags rounded up.",
          "url": null
        }
      ],
      "caveat": "The pounds start from your soil test: this page converts a recommendation, it does not make one, because the amount depends on the pH and buffer pH the lab measures. With no test there is no figure to start from.",
      "reviewed": "2026-10-20",
      "page": "https://yardsneeded.com/lime-calculator/"
    },
    {
      "id": "sealcoat",
      "material": "Sealcoat",
      "sold_in": "gallons",
      "method": "sealer_gallons",
      "formula": "gallons = ceil(area sq ft × coats ÷ 70), the low end of the 70-82 sq ft per gallon per coat of the SealMaster MasterSeal Ultra technical data sheet SMT-153 (ready to use, at least two coats), or ÷ the coverage of your own product; pails = ceil(gallons ÷ pail gallons)",
      "options": [],
      "sources": [
        {
          "note": "Coverage and coats: SealMaster's technical data sheet for MasterSeal Ultra Pavement Sealer (SMT-153, revised April 6, 2023), a ready-to-apply asphalt emulsion sealer that meets ASTM D8099: «One gallon of MasterSeal Ultra will cover approximately 70 - 82 square feet per gallon per coat», with a minimum of two coats and a third on high-traffic areas such as entrances, exits and drive lanes. Read October 20, 2026.",
          "url": "https://sealmaster.net/pdf/specification/Sealmaster%20spec%20sheets/masterseal-ultra-pavement-sealer.pdf"
        },
        {
          "note": "The rest is arithmetic: square feet × coats ÷ 70, the low end of the range so the last coat does not run short, rounded up to the gallon; pails rounded up.",
          "url": null
        }
      ],
      "caveat": "The 70 to 82 square feet are for a ready-to-use sealer. A concentrate that is mixed with water and sand on site covers a different area per gallon of concentrate: put the figure on its sheet in the optional field.",
      "reviewed": "2026-10-20",
      "page": "https://yardsneeded.com/sealcoat-calculator/"
    },
    {
      "id": "stucco",
      "material": "Stucco",
      "sold_in": "bags",
      "method": "bags_by_coverage_band",
      "formula": "bags = ceil(area sq ft ÷ the low end of the manufacturer coverage per bag (50 lb unless the row says otherwise) for the chosen row); polymeric sand rows from the Gator Maxx G2 data sheet by joint width (65-85 / 22-42 sq ft, pavers 2-3/8 in), thinset rows from the Custom Building Products PremiumPlus TDS-193 coverage chart by trowel (85-95 / 60-67 sq ft); stucco rows per 80 lb bag from the QUIKRETE Scratch and Brown Base Coat Stucco No. 1139 data sheet by base coat thickness (3/8 in 20-24, 1/2 in 15-18, 3/4 in 10-12 sq ft); or the coverage on your own bag",
      "options": [
        {
          "field": "Base coat thickness",
          "value": "quikrete-1139-3/8",
          "label": "3/8 in: 20-24 sq ft per 80 lb bag"
        },
        {
          "field": "Base coat thickness",
          "value": "quikrete-1139-1/2",
          "label": "1/2 in: 15-18 sq ft per 80 lb bag"
        },
        {
          "field": "Base coat thickness",
          "value": "quikrete-1139-3/4",
          "label": "3/4 in: 10-12 sq ft per 80 lb bag"
        }
      ],
      "sources": [
        {
          "note": "Coverage per bag: the QUIKRETE Scratch and Brown Base Coat Stucco data sheet (No. 1139, revised October 2021), a base coat plaster to ASTM C926 for the scratch and brown coats of a 3-coat job or the first coat of a 2-coat job. An 80 lb bag yields about 0.75 cubic feet and covers 20 to 24 square feet at 3/8 inch, 15 to 18 at 1/2 inch and 10 to 12 at 3/4 inch. Read October 20, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-Scratch%20and%20Brown%20Base%20Coat%20Stucco%20%201139.pdf"
        },
        {
          "note": "Thickness: Table R702.1(1) of the 2021 International Residential Code, cement plaster: at least 7/8 inch over wire lath outdoors, at least 1/2 inch on masonry walls, at most 7/8 inch on monolithic concrete walls; section R702.2.2 asks at least three coats over metal lath and two over other bases. Read in the 2021 Seattle Residential Code, chapter 7, which does not amend that table, October 20, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter7.pdf"
        },
        {
          "note": "The rest is arithmetic: square feet ÷ the low end of the chart at your thickness, rounded up, so the wall is not left short on the last bag.",
          "url": null
        }
      ],
      "caveat": "This counts the base coat only. The finish coat is a separate product whose coverage this page has not read, so it is not in the count; windows and doors stay in unless you take their area off the wall.",
      "reviewed": "2026-10-20",
      "page": "https://yardsneeded.com/stucco-calculator/"
    },
    {
      "id": "sandbag",
      "material": "Sandbag",
      "sold_in": "bags",
      "method": "sandbag_count",
      "formula": "pyramid: bags = ceil(wall length ft ÷ 100 × bags per 100 linear ft for the height row at or above: 1 ft 600, 2 ft 2,100, 3 ft 4,500, 4 ft 7,800, from the U.S. Army Corps of Engineers Northwestern Division pamphlet Sandbagging Techniques); base width ≈ courses × 2.5 ÷ 3 ft with 3 courses per ft; nothing past 4 ft. Single stack: courses = ceil(3 × height ft), bags = ceil(courses × length ft), 300 per 100 ft at 1 ft",
      "options": [
        {
          "field": "Stacking",
          "value": "piramide",
          "label": "Pyramid, the Corps method"
        },
        {
          "field": "Stacking",
          "value": "simple",
          "label": "Single stack, one bag wide"
        }
      ],
      "sources": [
        {
          "note": "Bags per length of wall: the U.S. Army Corps of Engineers Northwestern Division pamphlet Sandbagging Techniques (2004), table «Bags Required Per 100 Linear Feet of Levee»: 600 at 1 foot high, 2,100 at 2 feet, 4,500 at 3 feet and 7,800 at 4 feet; a single-width course 1 foot high takes 300. Its rule of thumb for the pyramid: 1 bag in length is about 1 foot, 3 bags in width about 2 1/2 feet and 3 bags in height about 1 foot, with as many rows at the base as there are courses. A single stack is generally not recommended above three courses, about 1 foot. Read October 20, 2026, in the copy hosted by Utah State University Extension.",
          "url": "https://extension.usu.edu/post-wildfire/files/USACE-Sandbag-Pamphlet.pdf"
        },
        {
          "note": "The rest is arithmetic: bags = length ÷ 100 × the row for the height, rounded up, with a height between rows read in the next row up; a single stack is 3 courses per foot of height and one bag per foot of length.",
          "url": null
        }
      ],
      "caveat": "The table stops at 4 feet and this page does not extrapolate past it. It counts bags, not the sand to fill them: the pamphlet gives no volume per bag, only that bags are filled one-half to two-thirds full.",
      "reviewed": "2026-10-20",
      "page": "https://yardsneeded.com/sandbag-calculator/"
    },
    {
      "id": "shiplap",
      "material": "Shiplap",
      "sold_in": "boards",
      "method": "shiplap_rows",
      "formula": "rows = ceil(wall height in ÷ exposed face in); linear ft = rows × wall length ft; boards = ceil(linear ft × (1 + waste) ÷ board length ft). The exposed face is measured on your boards; no width is assumed",
      "options": [
        {
          "field": "Board length",
          "value": 8,
          "label": "8 ft"
        },
        {
          "field": "Board length",
          "value": 10,
          "label": "10 ft"
        },
        {
          "field": "Board length",
          "value": 12,
          "label": "12 ft"
        },
        {
          "field": "Board length",
          "value": 16,
          "label": "16 ft"
        }
      ],
      "sources": [
        {
          "note": "A row of shiplap covers its exposed face, the part left showing once its lap hides under the next board. Rows = wall height in inches ÷ exposed face, rounded up, because the last row is ripped to fit and still takes a whole board; linear feet = rows × wall length; boards = linear feet × (1 + waste) ÷ board length, rounded up.",
          "url": null
        },
        {
          "note": "The exposed face and the board length are the ones you read off your own boards, so none of the figures is ours to source, and no width is assumed: the lap differs from one maker and profile to the next.",
          "url": null
        }
      ],
      "caveat": "This counts a solid wall. Take window and door widths off the wall length, or cover the scraps around them with the waste allowance; outside corners, trim and the ripped last row are not counted as separate pieces.",
      "reviewed": "2026-10-20",
      "page": "https://yardsneeded.com/shiplap-calculator/"
    },
    {
      "id": "baluster",
      "material": "Baluster",
      "sold_in": "balusters",
      "method": "baluster_spacing",
      "formula": "balusters per section = floor((space between posts in − gap limit in) ÷ (baluster width in + gap limit in)) + 1, the fewest that leave every gap under the limit; gap = (space − balusters × width) ÷ (balusters + 1). Gap limit: the 4 in sphere of IRC 2021 R312.1.3 for guards, 4 3/8 in on the open side of a stair, or a smaller gap of your own",
      "options": [
        {
          "field": "Where the guard is",
          "value": "guarda",
          "label": "Deck, porch or landing: gaps under 4 in"
        },
        {
          "field": "Where the guard is",
          "value": "escalera",
          "label": "Open side of a stair: gaps under 4 3/8 in"
        }
      ],
      "sources": [
        {
          "note": "Gap limits: 2021 International Residential Code, Section R312.1.3: «Required guards shall not have openings from the walking surface to the required guard height that allow passage of a sphere 4 inches (102 mm) in diameter»; on the open side of a stair the sphere is 4 3/8 inches, and the triangle formed by the riser, the tread and the bottom rail must stop a 6 inch sphere. Read in the 2021 Seattle Residential Code, where R312.1.3 carries no Washington amendment, and checked word for word against the 2021 IRC as adopted in New Jersey. Read October 21, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter3.pdf"
        },
        {
          "note": "Baluster width: you enter it. A 2 × 2 wood baluster is 1 1/2 inches dressed dry by PS 20-20, the American Softwood Lumber Standard, Table 3, which is the default here; metal and composite balusters vary by maker.",
          "url": "https://www.alsc.org/greenbook%20collection/ps20.pdf"
        },
        {
          "note": "The rest is arithmetic: the fewest balusters that leave every gap under the limit, n = floor((space − limit) ÷ (width + limit)) + 1, and the gap = (space − n × width) ÷ (n + 1). The spacer is that gap rounded down to the 1/16 inch.",
          "url": null
        }
      ],
      "caveat": "This spaces balusters; it does not set guard height or loads. The guard height of the 2021 IRC is in R312.1.2, and the copy read here carries a Washington amendment there, so it is not quoted. Measure the space between posts at the rail, inside face to inside face.",
      "reviewed": "2026-10-22",
      "page": "https://yardsneeded.com/baluster-calculator/"
    },
    {
      "id": "potting-soil",
      "material": "Potting soil",
      "sold_in": "bags",
      "method": "potting_soil_volume",
      "formula": "cu in per pot = π × (diameter ÷ 2)² × depth (round) or width² × depth (square), or the top of the ANSI Z60.2-2025 Table 1 range for a # container class; dry quarts = cu in ÷ 67.2 (NIST Handbook 130: bushel 2150.42 cu in ÷ 32); bags = ceil(total ÷ bag volume, 8 or 16 dry qt, or 1, 1.5 or 2 cu ft)",
      "options": [
        {
          "field": "Pot",
          "value": "medir",
          "label": "My pot, measured"
        },
        {
          "field": "Pot",
          "value": "#1",
          "label": "#1 nursery pot, the 1 gallon class"
        },
        {
          "field": "Pot",
          "value": "#2",
          "label": "#2 nursery pot, the 2 gallon class"
        },
        {
          "field": "Pot",
          "value": "#3",
          "label": "#3 nursery pot, the 3 gallon class"
        },
        {
          "field": "Pot",
          "value": "#5",
          "label": "#5 nursery pot, the 5 gallon class"
        },
        {
          "field": "Pot",
          "value": "#7",
          "label": "#7 nursery pot, the 7 gallon class"
        },
        {
          "field": "Pot",
          "value": "#10",
          "label": "#10 nursery pot, the 10 gallon class"
        },
        {
          "field": "Pot",
          "value": "#15",
          "label": "#15 nursery pot, the 15 gallon class"
        },
        {
          "field": "Pot",
          "value": "#20",
          "label": "#20 nursery pot, the 20 gallon class"
        },
        {
          "field": "Pot",
          "value": "#25",
          "label": "#25 nursery pot, the 25 gallon class"
        },
        {
          "field": "Shape of a measured pot",
          "value": "redonda",
          "label": "Round"
        },
        {
          "field": "Shape of a measured pot",
          "value": "cuadrada",
          "label": "Square"
        },
        {
          "field": "Bag size",
          "value": "8qt",
          "label": "8 qt"
        },
        {
          "field": "Bag size",
          "value": "16qt",
          "label": "16 qt"
        },
        {
          "field": "Bag size",
          "value": "1ft",
          "label": "1 cu ft"
        },
        {
          "field": "Bag size",
          "value": "1.5ft",
          "label": "1.5 cu ft"
        },
        {
          "field": "Bag size",
          "value": "2ft",
          "label": "2 cu ft"
        }
      ],
      "sources": [
        {
          "note": "Nursery pot classes: American Standard for Nursery Stock, ANSI Z60.2-2025 (AmericanHort, approved April 17, 2025), Table 1: a #1 container holds 152 to 251 cubic inches, #2 320 to 474, #3 628 to 742, #5 785 to 1,242, #7 1,337 to 1,790, #10 2,080 to 2,646, #15 2,768 to 3,696, #20 4,520 to 5,152 and #25 5,775 to 6,861. Containers sold with a # designation must fall in these ranges, and section 1.1.3.4 converts gallons × 231 = cubic inches. Read October 21, 2026.",
          "url": "https://americanhort.org/wp-content/uploads/2026/02/nursery-stock-standards.pdf"
        },
        {
          "note": "Bag quarts: NIST Handbook 130-2026, Uniform Packaging and Labeling Regulation, sells dry measure by the U.S. bushel of 2,150.42 cubic inches and its dry quart subdivisions: 2,150.42 ÷ 32 = 67.2 cubic inches, or 1.101 liters. A liquid quart is 57.75. An 8 qt bag holds 537.6 cubic inches, and a cubic foot is 25.7 dry quarts. Read October 21, 2026.",
          "url": "https://doi.org/10.6028/NIST.HB.130-2026"
        },
        {
          "note": "The rest is geometry: a round pot holds π × (diameter ÷ 2)² × depth and a square one width² × depth, in cubic inches; a nursery class is counted at the top of its range so the bags do not come up short.",
          "url": null
        }
      ],
      "caveat": "A tapered pot holds less than a cylinder of its top width: measure the diameter halfway down for a closer count. This counts the soil that fills the pot, not the settling after the first watering, which no standard sets.",
      "reviewed": "2026-10-22",
      "page": "https://yardsneeded.com/potting-soil-calculator/"
    },
    {
      "id": "attic-ventilation",
      "material": "Attic ventilation",
      "sold_in": "sq in",
      "method": "attic_net_free_area",
      "formula": "net free area sq in = ceil(attic floor sq ft ÷ 150 × 144), or ÷ 300 when both conditions of the IRC 2021 R806.2 exception are met; vents = ceil(half the area ÷ the net free area printed on one vent or one foot of continuous vent), low and high",
      "options": [
        {
          "field": "Rule",
          "value": "150",
          "label": "1/150, the rule"
        },
        {
          "field": "Rule",
          "value": "300",
          "label": "1/300, both exception conditions met"
        }
      ],
      "sources": [
        {
          "note": "Vent area: 2021 International Residential Code, Section R806.2: «The minimum net free ventilating area shall be 1/150 of the area of the vented space», or 1/300 when both conditions of its exception are met: in climate zones 6, 7 and 8, a Class I or II vapor retarder on the warm-in-winter side of the ceiling; and not less than 40 nor more than 50 percent of the required area in upper vents no more than 3 feet below the ridge, with the rest in the bottom third of the attic. R806.1 sets vent openings of 1/16 to 1/4 inch. Read in the 2021 Seattle Residential Code, where R806 carries no Washington amendment, and checked against the 2021 IRC as adopted in New Jersey. Read October 21, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter8.pdf"
        },
        {
          "note": "The rest is arithmetic: square feet of attic floor ÷ 150 (or 300), × 144 for square inches, rounded up; vents = half the area ÷ the net free area printed on your vent, low and high. Half and half is one way to meet the exception; under the 1/150 rule the code sets no split.",
          "url": null
        }
      ],
      "caveat": "Net free area is the open area of a vent once its louvers and screen are counted, not its outside size: read it on the product or its box. This page sizes the vent area, not the airflow of a powered fan.",
      "reviewed": "2026-10-22",
      "page": "https://yardsneeded.com/attic-ventilation-calculator/"
    },
    {
      "id": "soffit",
      "material": "Soffit",
      "sold_in": "soffit panels",
      "method": "soffit_panels",
      "formula": "pieces = ceil(eave length ft × 12 ÷ panel coverage width in); pieces per panel = floor(panel length ft × 12 ÷ soffit depth in); panels = ceil(pieces ÷ pieces per panel); fascia pieces = ceil(eave length ÷ fascia length)",
      "options": [],
      "sources": [
        {
          "note": "Soffit is counted in pieces, not square feet: each piece runs from the wall to the fascia and covers the panel's coverage width along the eave. Pieces = eave length in inches ÷ coverage width, rounded up; one panel yields its length ÷ the soffit depth, rounded down, and the rest is scrap; panels = pieces ÷ pieces per panel, rounded up.",
          "url": null
        },
        {
          "note": "The coverage width and the length are the ones printed on your panels, so none of the figures is ours to source: they differ by maker and profile. Fascia pieces = eave length ÷ fascia length, rounded up.",
          "url": null
        }
      ],
      "caveat": "This counts straight runs. Outside corners and rakes take miter cuts that can spoil a piece, and J-channel or F-channel is not counted here.",
      "reviewed": "2026-10-22",
      "page": "https://yardsneeded.com/soffit-calculator/"
    },
    {
      "id": "ice-and-water-shield",
      "material": "Ice and water shield",
      "sold_in": "rolls",
      "method": "ice_barrier_rolls",
      "formula": "width up the slope in = (overhang in + 24) × √(1 + (pitch ÷ 12)²), at least 36 in at 8/12 and over (IRC 2021 R905.1.2); courses = 1 + ceil((width − 36) ÷ 32.5) past one 36 in course; rolls = ceil((courses × eave length − 0.5) ÷ (roll length − 0.5)), with the 3.5 in side and 6 in end laps of the Grace Ice & Water Shield data sheet (rolls of 75, 66.6 or 36 ft)",
      "options": [
        {
          "field": "Roll",
          "value": "75",
          "label": "75 ft roll, 225 sq ft"
        },
        {
          "field": "Roll",
          "value": "66.6",
          "label": "66.6 ft roll, 200 sq ft"
        },
        {
          "field": "Roll",
          "value": "36",
          "label": "36 ft roll, 108 sq ft"
        }
      ],
      "sources": [
        {
          "note": "How far up: 2021 International Residential Code, Section R905.1.2: the ice barrier extends «from the lowest edges of all roof surfaces to a point not less than 24 inches (610 mm) inside the exterior wall line of the building», and on roofs of 8 in 12 or steeper it is also applied «not less than 36 inches (914 mm) measured along the roof slope from the eave edge». Read in the 2021 Seattle Residential Code and checked against the 2021 IRC as adopted in New Jersey, which changes where a barrier is required but not how far it runs. Read October 21, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter9.pdf"
        },
        {
          "note": "Rolls and laps: Grace Ice & Water Shield product data sheet (W. R. Grace, 2014): rolls 36 inches wide, 75 ft (225 sq ft), 66.6 ft (200 sq ft) and 36 ft (108 sq ft); side laps at least 3.5 inches and end laps at least 6 inches, so a second course adds 32.5 inches up the slope. Read October 21, 2026.",
          "url": "https://www.specifiedby.com/grace/grace-ice-and-water-shield/Grace_Grace-Ice-and-Water-Shield_Specifications_Data-Sheet.pdf"
        },
        {
          "note": "The rest is geometry: level width = overhang + 24 inches; up the slope = level width × √(1 + (rise ÷ 12)²), the roof pitch factor; rolls = (courses × eave length − 0.5 ft) ÷ (roll length − 0.5 ft), rounded up.",
          "url": null
        }
      ],
      "caveat": "Whether a roof needs an ice barrier at all is set by Table R301.2 of each jurisdiction; New Jersey, for one, ties it to a January average of 25°F or less. This page sizes the barrier at the eaves; valleys, rakes and penetrations are not counted.",
      "reviewed": "2026-10-22",
      "page": "https://yardsneeded.com/ice-and-water-shield-calculator/"
    },
    {
      "id": "metal-roofing",
      "material": "Metal roofing",
      "sold_in": "panels",
      "method": "metal_roof_panels",
      "formula": "panels per roof side = ceil(eave length ft × 12 ÷ 36), the 36 in net coverage of R-panel, PBR and Grandrib 3 data sheets (McElroy, Metal Sales, Fabral); pieces per run = ceil((side length − 0.5) ÷ (longest panel − 0.5)) with the 6 in end lap of Metal Sales PBR when the side is longer than the panel; squares = eave × side length × sides ÷ 100; screws = ceil(squares × 80), Fabral Grandrib 3. Flagged under 3:12 (lap sealant required) and under 1/2:12 (not allowed for lapped panels), IRC 2021 R905.10.2",
      "options": [],
      "sources": [
        {
          "note": "Coverage and screws: Fabral Grandrib 3 product specification 98-32-202L: «36\" Coverage», «80 SCREWS PER SQUARE RECOMMENDED», recommended pitch 2 1/2:12 and above. The McElroy R-Panel lists a «Cover Width 36\"» and the Metal Sales PBR-Panel 36 inch coverage for every gauge. Read October 23, 2026.",
          "url": "https://fabral.com/wp-content/uploads/2021/11/98-32-202L-GrandRib-LANCASTER-GR3-GR3-GRG.Product.Specification.pdf"
        },
        {
          "note": "End laps: Metal Sales PBR-Panel installation instructions (4/24): «Lap the highside panel over the eave panel a minimum of 6\"». Minimum recommended slope for PBR, 1:12. Read October 23, 2026.",
          "url": "https://www.buildsite.com/pdf/metalsales/PBR-Panel-Installation-Instructions-2969107.pdf"
        },
        {
          "note": "Minimum slope: 2021 International Residential Code R905.10.2, read in the 2021 Seattle Residential Code: 3 units in 12 for lapped, nonsoldered-seam metal roofs without lap sealant, 1/2 unit in 12 with applied lap sealant, 1/4 unit in 12 for standing-seam systems. Read October 23, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter9.pdf"
        },
        {
          "note": "The rest is arithmetic: runs per side = eave length × 12 ÷ 36, rounded up; pieces per run = (side length − 0.5 ft) ÷ (longest panel − 0.5 ft), rounded up; squares = roof area ÷ 100.",
          "url": null
        }
      ],
      "caveat": "The count is panels, not trim: ridge cap, eave and rake trim and closure strips come in their own lengths. The 80 screws per square is the Fabral figure for Grandrib 3; other profiles print their own pattern.",
      "reviewed": "2026-10-23",
      "page": "https://yardsneeded.com/metal-roofing-calculator/"
    },
    {
      "id": "pine-straw",
      "material": "Pine straw",
      "sold_in": "bales",
      "method": "pine_straw_bales",
      "formula": "pounds = area sq ft × 0.5 × depth in ÷ 3, from LSU AgCenter: half a pound per square foot gives a 3 inch layer, and a 25 lb bale covers 50 sq ft at 3 in or three times that at 1 in; bales = ceil(pounds ÷ bale weight lb), bales of 25 to 51 lb",
      "options": [],
      "sources": [
        {
          "note": "Rate and bales: LSU AgCenter, «Pine straw makes excellent mulch» (Allen D. Owings, March 30, 2009): an initial 3 inch layer for shrubs and trees; «One-half pound per square foot will give this desired depth»; «Most bales sold in Louisiana weigh 25-51 pounds and contain 3-6 cubic feet of mulch. A 25-pound, 3-cubic-foot bale will cover 50 square feet 3 inches deep»; a top-up at 1 inch, where one bale goes three times as far. Read October 23, 2026.",
          "url": "https://www.lsuagcenter.com/portals/communications/news/news_archive/2009/march/news_you_can_use/pine-straw-makes-excellent-mulch"
        },
        {
          "note": "Why the bale weight matters: Alabama Cooperative Extension System ANR-1336 (revised June 2023): «One bale of pine straw generally covers 50 square feet when applied to a 5-inch depth; however, pine straw bales are not always a consistent size in the marketplace», and pine straw settles after a rain. Read October 23, 2026.",
          "url": "https://www.aces.edu/blog/topics/landscaping/drought-tolerant-landscapes-for-alabama/"
        },
        {
          "note": "The rest is arithmetic: pounds = area × 0.5 × layer in ÷ 3; bales = pounds ÷ bale weight, rounded up.",
          "url": null
        }
      ],
      "caveat": "Bale size is the variable: Louisiana bales run 25 to 51 pounds, and the Alabama figure of 50 square feet at 5 inches is for a bale of unstated size. Weigh one bale, or read the label, and enter that.",
      "reviewed": "2026-10-23",
      "page": "https://yardsneeded.com/pine-straw-calculator/"
    },
    {
      "id": "lvl-beam",
      "material": "LVL beam",
      "sold_in": "in deep",
      "method": "lvl_beam_floor_table",
      "formula": "the smallest depth of 2.0E Microllam LVL in the chosen number of 1 3/4 in plies whose allowable total load (L/240) is at least the total plf and whose live load (L/360; total controls where marked *) is at least the live plf, in the row of the Weyerhaeuser TJ-9000 (July 2026) Floor—100% table at or above the span; minimum end and intermediate bearing from the same cell",
      "options": [
        {
          "field": "Plies of 1 3/4 in",
          "value": "1",
          "label": "1 ply, 1 3/4 in wide"
        },
        {
          "field": "Plies of 1 3/4 in",
          "value": "2",
          "label": "2 plies, 3 1/2 in wide"
        },
        {
          "field": "Plies of 1 3/4 in",
          "value": "3",
          "label": "3 plies, 5 1/4 in wide"
        }
      ],
      "sources": [
        {
          "note": "Load table: Weyerhaeuser TJ-9000 Specifier's Guide (July 2026), «2.0E Microllam LVL: Floor—100% (PLF)», pages 8 and 9: allowable total load at L/240 and live load at L/360 in pounds per linear foot, by span from 6 to 30 ft, 1 3/4 in plies (one ply 5 1/2 to 14 in deep, two and three plies 5 1/2 to 20 in), with the minimum end and intermediate bearing. Its own method: work out total and live load in plf, pick the span, and take a depth whose capacity exceeds both. Uniform loads, beam weight considered, the more restrictive of simple or continuous span. Read October 23, 2026.",
          "url": "https://www.weyerhaeuser.com/application/files/7917/8525/8572/TJ-9000_Specifiers_Guide_for_Trus_Joist_Beams_Headers_and_Columns.pdf"
        },
        {
          "note": "A span between two rows of the table is read at the next row up, the longer span; the table is not interpolated here.",
          "url": null
        }
      ],
      "caveat": "The loads in plf are yours to work out from the floor or roof the beam carries; this page reads the floor table, at 100% load duration, and not the snow or roof tables of the same guide. Beams 16 in deep and over come in two or more plies only.",
      "reviewed": "2026-10-23",
      "page": "https://yardsneeded.com/lvl-beam-calculator/"
    },
    {
      "id": "plant-spacing",
      "material": "Plant spacing",
      "sold_in": "plants",
      "method": "plant_spacing",
      "formula": "square or rectangular: plants = area sq ft × 144 ÷ (spacing in × row spacing in); triangular: rows at 0.866 × spacing, plants = area × 144 ÷ (spacing² × 0.866), rounded, as UGA Extension Bulletin 931 Table 31; per acre = 43,560 ÷ (in-row ft × between-row ft), UGA B931 and Penn State EE0127",
      "options": [
        {
          "field": "Pattern",
          "value": "triangular",
          "label": "Triangular (staggered rows)"
        },
        {
          "field": "Pattern",
          "value": "cuadrado",
          "label": "Square or rows"
        }
      ],
      "sources": [
        {
          "note": "Plants per 100 square feet: UGA Cooperative Extension Bulletin 931 (reviewed November 2024), Table 31: square spacing 4 in 900, 6 in 400, 8 in 225, 10 in 144, 12 in 100, 14 in 74; triangular 1,039, 462, 260, 166, 115 and 85, with rows 3.46 to 12.12 inches apart, which is 0.866 × the spacing (the bulletin prints «0.886», a typo its own rows do not follow). Per acre, page 32: 43,560 ÷ (distance in the row × distance between rows). Read October 23, 2026.",
          "url": "https://fieldreport.caes.uga.edu/wp-content/uploads/2025/08/B-931_6.pdf"
        },
        {
          "note": "Trees per acre: Penn State Extension, Forest Landowners Guide to Tree Planting Success (EE0127), Table 2: 6 by 6 ft 1,210 trees, 10 by 10 ft 436, by the same 43,560 rule. Read October 23, 2026.",
          "url": "https://efotg.sc.egov.usda.gov/references/Public/WV/ForestLandownersGuidetoTreePlantingSuccessPSU.pdf"
        },
        {
          "note": "The rest is geometry: square area per plant = spacing × row spacing; triangular = spacing² × √3 ÷ 2; plants = bed area ÷ area per plant, rounded.",
          "url": null
        }
      ],
      "caveat": "The spacing is yours: the plant tag or the grower gives it per plant. The count is for the bed area as entered, with plants at the spacing from the edge as well as from each other.",
      "reviewed": "2026-10-23",
      "page": "https://yardsneeded.com/plant-spacing-calculator/"
    },
    {
      "id": "crusher-run",
      "material": "Crusher run",
      "sold_in": "tons",
      "method": "crusher_run_tons",
      "formula": "cubic yards = length ft × width ft × compacted thickness in ÷ 12 ÷ 27; tons = cubic yards × 1.8 tons per cubic yard (Illinois DOT PPM 30-01, aggregate base) or × 1.944 (Alaska DOT&PF estimating factor, 144 lb per cubic foot)",
      "options": [
        {
          "field": "Tons per cubic yard in place",
          "value": 1.8,
          "label": "1.8 tons/yd³, Illinois DOT aggregate base"
        },
        {
          "field": "Tons per cubic yard in place",
          "value": 1.944,
          "label": "1.94 tons/yd³, Alaska DOT&PF, 144 lb/ft³"
        }
      ],
      "sources": [
        {
          "note": "Tons per cubic yard, compacted: Illinois DOT District 5 Plan Preparation Memorandum PPM 30-01 (revised April 1, 2016): aggregate base courses measured in tons «should be calculated in cubic yards and converted to tonnage by multiplying with a factor of 1.8». Read October 23, 2026.",
          "url": "https://apps.dot.illinois.gov/eplan/desenv/standards/District%205/D5PlanPrepMemos/Active%20Plan%20Prep%20Memos/30-01.pdf"
        },
        {
          "note": "A second factor: Alaska DOT&PF Table of Estimating Factors (2015), «Aggregate Base Course, Grading D-1 144 LB/C.F.», which is 1.944 short tons per cubic yard. Read October 23, 2026.",
          "url": "https://dot.alaska.gov/creg/design/highways/Materials/Estimating_Factors_2015.pdf"
        },
        {
          "note": "The rest is arithmetic: cubic yards = length ft × width ft × thickness in ÷ 12 ÷ 27; tons = cubic yards × tons per cubic yard; 1 short ton = 2,000 lb.",
          "url": null
        }
      ],
      "caveat": "These are tons for the base as compacted in place, the way both DOTs pay for it. Loose gravel weighs less per cubic yard (1.35 to 1.50 tons in the Army FM 5-434 table), so a loose-gravel figure orders a crusher run base short.",
      "reviewed": "2026-10-23",
      "page": "https://yardsneeded.com/crusher-run-calculator/"
    },
    {
      "id": "chain-link-fence",
      "material": "Chain link fence",
      "sold_in": "rolls",
      "method": "chain_link_materials",
      "formula": "fabric ft = fence length − gate openings; rolls = ceil(fabric ÷ 50); stretches = corners + gates + (end posts − 1); line posts = stretches × (ceil(fabric ÷ stretches ÷ 10) − 1), no more than 10 ft on center (CLFMI); terminal posts = ends + corners + 2 per gate; top rails = ceil(fabric ÷ 21); tension bars = 1 per end or gate post and 2 per corner post, tension bands 1 per foot of height per bar, brace bands and rail ends 1 per bar, ties 1 per foot of fabric (CLFMI step-by-step materials list)",
      "options": [],
      "sources": [
        {
          "note": "Materials list: Chain Link Fence Manufacturers Institute, Step by Step Method for Installing Your Own Chain Link Fence (rev. March 2018): fabric 50 feet per roll; line posts 7 to 10 ft apart; tension bar, 1 per end or gate post and 2 per corner post; brace band and rail end, 1 per tension bar; tension bands, 1 per foot of fence height on each bar; a carriage bolt per band; ties, 1 per foot of fence, 100 per bag. Read October 23, 2026.",
          "url": "https://chainlinkinfo.org/wp-content/uploads/2018/03/StepbyStepBrochure-rev-March-2018-WD.pdf"
        },
        {
          "note": "Spacing and rail: CLFMI Product Manual CLF-PM0610 (updated March 2017): line posts «set no greater than 10 feet on center between the terminal posts»; top rail in 21 ft lengths joined with sleeves at least 6 in long; fences 12 ft or higher need a mid rail. Read October 23, 2026.",
          "url": "https://chainlinkinfo.org/wp-content/uploads/2019/07/CLFMI-Product-Manual-revised-March-2017-1.pdf"
        },
        {
          "note": "The rest is arithmetic: stretches between terminal posts = corners + gates + end posts − 1; line posts = stretches × (stretch length ÷ 10, rounded up, − 1), with the stretches taken as equal; terminal posts = ends + corners + 2 per gate.",
          "url": null
        }
      ],
      "caveat": "Stretches are taken as equal; a short stretch next to a long one can need one line post more or less, so count those runs on their own if they differ much. Post depth and concrete depend on your frost line and soil.",
      "reviewed": "2026-10-23",
      "page": "https://yardsneeded.com/chain-link-fence-calculator/"
    },
    {
      "id": "wheelchair-ramp",
      "material": "Wheelchair ramp",
      "sold_in": "feet of ramp",
      "method": "wheelchair_ramp_length",
      "formula": "ramp ft = rise in × run per unit of rise ÷ 12, at 1:12 (2010 ADA Standards 405.2; IRC 2021 R311.8.1 at the required egress door) or 1:8 (IRC 2021 R311.8.1, other ramps); ADA runs = ceil(rise ÷ 30 in) (405.6) with a 60 in landing at the top and bottom of each run (405.7.3); IRC landings 36 in deep (R311.8.2); handrails when an ADA run rises more than 6 in (405.8) or an IRC ramp is steeper than 1:12 (R311.8.3)",
      "options": [
        {
          "field": "Rule",
          "value": "ada",
          "label": "ADA: public or commercial, 1:12"
        },
        {
          "field": "Rule",
          "value": "irc",
          "label": "Home, ramp at the required exit door, 1:12 (IRC)"
        },
        {
          "field": "Rule",
          "value": "irc8",
          "label": "Home, any other ramp, 1:8 (IRC)"
        }
      ],
      "sources": [
        {
          "note": "Slope, rise and landings: 2010 ADA Standards for Accessible Design, 405.2 «running slope not steeper than 1:12», 405.6 «The rise for any ramp run shall be 30 inches (760 mm) maximum», 405.7.3 landings «60 inches (1525 mm) long minimum», 405.7.4 60 × 60 in at a change in direction, 405.8 handrails on runs that rise more than 6 in, 505.4 handrails 34 to 38 in high. Read October 24, 2026.",
          "url": "https://www.ada.gov/law-and-regs/design-standards/2010-stds/"
        },
        {
          "note": "Ramps at a house: IRC 2021 R311.8, as printed in the 2021 Seattle Residential Code chapter 3 with no Washington amendment to it: 1:12 for a ramp serving the required egress door and 1:8 for other ramps (R311.8.1), a landing at least 36 in deep at the top and bottom (R311.8.2), a handrail on at least one side above 1:12 (R311.8.3). Read October 24, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter3.pdf"
        },
        {
          "note": "The rest is arithmetic: ramp ft = rise in × 12 ÷ 12 at 1:12 (× 8 ÷ 12 at 1:8); ADA runs = rise ÷ 30, rounded up, each with a landing at both ends; slope % = 100 ÷ 12, angle = atan(1 ÷ 12).",
          "url": null
        }
      ],
      "caveat": "The ramp length is the run measured level along the slope. Landings are as wide as the ramp, and an ADA landing where the ramp turns is 60 × 60 in, so a ramp that switches back takes more room than the straight length suggests.",
      "reviewed": "2026-10-24",
      "page": "https://yardsneeded.com/wheelchair-ramp-calculator/"
    },
    {
      "id": "drop-ceiling",
      "material": "Drop ceiling",
      "sold_in": "panels",
      "method": "suspended_ceiling_grid",
      "formula": "equal borders per Armstrong Suspended Ceilings Installation Instructions 3.2.1: full modules = floor(room in ÷ module), border = remainder ÷ 2, one full module less when the border is under 10 in; main beams 48 in apart along the room length, 12 ft pieces = rows × ceil(length ÷ 12); 4 ft cross tees every 24 in = cross lines × (rows + 1); 2 × 2 adds 2 ft tees at the midpoints; wall angle = ceil(perimeter ÷ 12); hanger wires = rows × (ceil(length ÷ 4) + 1), no more than 4 ft apart (5.5)",
      "options": [
        {
          "field": "Ceiling panel",
          "value": "2x4",
          "label": "2 × 4 ft panels"
        },
        {
          "field": "Ceiling panel",
          "value": "2x2",
          "label": "2 × 2 ft panels"
        }
      ],
      "sources": [
        {
          "note": "Grid and borders: Armstrong Suspended Ceilings Installation Instructions (BPLA-293022-324, 2024): main beams «spaced 48\" O.C.» and 4' cross tees «every 24\" O.C.» (3.1.1.1); for 2' × 2', 2' cross tees «at the midpoints of the 4' cross tees» (3.1.1.2); equal borders «no less than 10\" wide», adding a full panel to the remainder when they come out smaller (3.2.1); hanger wires «no more than 4' O.C. along the main beams» (5.5). Read October 24, 2026.",
          "url": "https://www.armstrongceilings.com/content/dam/armstrongceilings/commercial/north-america/installation-and-maintenance/suspended-ceilings-installation-instructions.pdf"
        },
        {
          "note": "Piece lengths: Armstrong Prelude XL 15/16\" Exposed Tee data sheet (BPCS-3344-226, 2026): 12' main beam 7301, 144 in; 4' cross tee XL7342, 48 in; 2' cross tee XL7328, 24 in; 12' hemmed angle molding 7800, 144 in. Read October 24, 2026.",
          "url": "https://www.armstrongceilings.com/content/dam/armstrongceilings/commercial/north-america/data-sheets/prelude-xl-data-sheet.pdf"
        },
        {
          "note": "The rest is arithmetic: full panels = room ÷ panel size; border = remainder ÷ 2, one panel fewer when that is under 10 in; panels = (full + 2 borders) each way; main beam rows on the 48 in lines, ceil(length ÷ 12) pieces per row; cross tee lines × (rows + 1) 4 ft tees; wall angle = perimeter ÷ 12; hanger wires = rows × (length ÷ 4 + 1).",
          "url": null
        }
      ],
      "caveat": "The counts take the main beams along the length of the room and do not carry a cut-off piece from one row into the next. Light fixtures, air diffusers and seismic or fire-rated ceilings change the grid, and are not counted here.",
      "reviewed": "2026-10-24",
      "page": "https://yardsneeded.com/drop-ceiling-calculator/"
    },
    {
      "id": "egress-window",
      "material": "Egress window",
      "sold_in": "sq ft",
      "method": "egress_window_check",
      "formula": "net clear opening sq ft = clear width in × clear height in ÷ 144, at least 5.7 sq ft (5 sq ft on a grade floor), height at least 24 in, width at least 20 in, sill at most 44 in above the floor (IRC 2021 R310.2.1 to R310.2.3); below grade, a window well of at least 9 sq ft and 36 in each way, with a ladder or steps when deeper than 44 in (R310.4.1, R310.4.2)",
      "options": [
        {
          "field": "Where the window is",
          "value": "sotano",
          "label": "Basement, below grade (window well)"
        },
        {
          "field": "Where the window is",
          "value": "piso",
          "label": "Main or upper floor"
        },
        {
          "field": "Where the window is",
          "value": "rasante",
          "label": "Grade floor (5 sq ft minimum)"
        }
      ],
      "sources": [
        {
          "note": "Opening: IRC 2021 R310.2.1 «a net clear opening of not less than 5.7 square feet», 5 square feet for grade-floor openings; R310.2.2 net clear height at least 24 inches and width at least 20 inches, «the result of normal operation of the opening»; R310.2.3 bottom of the clear opening «not greater than 44 inches (1118 mm) above the floor». As printed in the 2021 Seattle Residential Code, chapter 3, and identical in the IRC 2021 on UpCodes (New Jersey). Read October 24, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter3.pdf"
        },
        {
          "note": "Window well: IRC 2021 R310.4.1, at least 9 square feet with a horizontal projection and width of at least 36 inches; R310.4.2, a permanently affixed ladder or steps in wells deeper than 44 inches, rungs at least 12 in wide and no more than 18 in apart (R310.4.2.1), same Seattle chapter 3. Read October 24, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter3.pdf"
        },
        {
          "note": "The rest is arithmetic: square feet = clear width in × clear height in ÷ 144.",
          "url": null
        }
      ],
      "caveat": "Measure the opening with the window opened the normal way: a casement, a slider and a double-hung of the same frame size open to very different clear sizes, and the frame size on the label is not the clear opening.",
      "reviewed": "2026-10-24",
      "page": "https://yardsneeded.com/egress-window-calculator/"
    },
    {
      "id": "cinder-block-fill",
      "material": "Cinder block fill",
      "sold_in": "bags",
      "method": "block_grout_volume",
      "formula": "cu ft of grout = wall sq ft ÷ 100 × the CMHA TEK 04-02A Table 3 value for the block width and grouted cell spacing (two-core units, 3% waste included); cubic yards = cu ft ÷ 27; 80 lb bags = ceil(cu ft ÷ 0.66), the yield in Table 4",
      "options": [
        {
          "field": "Block width",
          "value": "6",
          "label": "6 in block"
        },
        {
          "field": "Block width",
          "value": "8",
          "label": "8 in block"
        },
        {
          "field": "Block width",
          "value": "10",
          "label": "10 in block"
        },
        {
          "field": "Block width",
          "value": "12",
          "label": "12 in block"
        },
        {
          "field": "Block width",
          "value": "14",
          "label": "14 in block"
        },
        {
          "field": "Grouted cells",
          "value": "8",
          "label": "Every cell, solid grouted"
        },
        {
          "field": "Grouted cells",
          "value": "16",
          "label": "Every other cell, 16 in"
        },
        {
          "field": "Grouted cells",
          "value": "24",
          "label": "Every 24 in (2 ft)"
        },
        {
          "field": "Grouted cells",
          "value": "32",
          "label": "Every 32 in"
        },
        {
          "field": "Grouted cells",
          "value": "40",
          "label": "Every 40 in"
        },
        {
          "field": "Grouted cells",
          "value": "48",
          "label": "Every 48 in (4 ft)"
        },
        {
          "field": "Grouted cells",
          "value": "56",
          "label": "Every 56 in"
        },
        {
          "field": "Grouted cells",
          "value": "64",
          "label": "Every 64 in"
        },
        {
          "field": "Grouted cells",
          "value": "72",
          "label": "Every 72 in (6 ft)"
        },
        {
          "field": "Grouted cells",
          "value": "80",
          "label": "Every 80 in"
        },
        {
          "field": "Grouted cells",
          "value": "88",
          "label": "Every 88 in"
        },
        {
          "field": "Grouted cells",
          "value": "96",
          "label": "Every 96 in (8 ft)"
        },
        {
          "field": "Grouted cells",
          "value": "104",
          "label": "Every 104 in"
        },
        {
          "field": "Grouted cells",
          "value": "112",
          "label": "Every 112 in"
        },
        {
          "field": "Grouted cells",
          "value": "120",
          "label": "Every 120 in (10 ft)"
        }
      ],
      "sources": [
        {
          "note": "Grout per 100 sq ft of wall: CMHA TEK 04-02A, Table 3 «Grout Volume Estimation for Hollow Single Wythe Concrete Masonry Walls», cubic feet by grout spacing (8 to 120 in) and wall width (6 to 14 in), assuming «two-core hollow concrete masonry units and 3% waste»; walls of 4 in units are not included because CMHA does not recommend grouting them. Read October 24, 2026.",
          "url": "https://www.cmha.org/resource/tek-04-02a/"
        },
        {
          "note": "Bags: CMHA TEK 04-02A, Table 4, an «80 lb (36.3 kg) bag yields approximately 0.66 ft3» of preblended grout and fills about 3.6, 2.7, 2.2 and 1.8 cores of 6, 8, 10 and 12 in block. Read October 24, 2026.",
          "url": "https://www.cmha.org/wp-content/uploads/2018/08/TEK-04-02A-Table-4.png"
        },
        {
          "note": "The rest is arithmetic: cu ft = wall sq ft ÷ 100 × the Table 3 value; cubic yards = cu ft ÷ 27; bags = cu ft ÷ 0.66, rounded up.",
          "url": null
        }
      ],
      "caveat": "Table 3 fills the vertical cells of hollow two-core units in a single wythe wall. Grouting a course horizontally, as in a bond beam, takes more grout on top of this.",
      "reviewed": "2026-10-24",
      "page": "https://yardsneeded.com/cinder-block-fill-calculator/"
    },
    {
      "id": "wood-weight",
      "material": "Wood weight",
      "sold_in": "lb",
      "method": "wood_weight",
      "formula": "lb = density lb per cu ft × actual thickness in × actual width in ÷ 144 × length ft × pieces; density from the Wood Handbook (FPL-GTR-190) Table 4-6b at the chosen moisture content, linearly interpolated between specific gravity columns, with the 12% (dry) or green specific gravity of the species in Table 5-3b; actual sizes from PS 20 Table 3, dry or green",
      "options": [
        {
          "field": "Species",
          "value": "douglas-fir",
          "label": "Douglas-fir (Coast)"
        },
        {
          "field": "Species",
          "value": "loblolly-pine",
          "label": "Loblolly pine (southern yellow pine)"
        },
        {
          "field": "Species",
          "value": "longleaf-pine",
          "label": "Longleaf pine"
        },
        {
          "field": "Species",
          "value": "shortleaf-pine",
          "label": "Shortleaf pine"
        },
        {
          "field": "Species",
          "value": "slash-pine",
          "label": "Slash pine"
        },
        {
          "field": "Species",
          "value": "ponderosa-pine",
          "label": "Ponderosa pine"
        },
        {
          "field": "Species",
          "value": "eastern-white-pine",
          "label": "Eastern white pine"
        },
        {
          "field": "Species",
          "value": "western-hemlock",
          "label": "Western hemlock"
        },
        {
          "field": "Species",
          "value": "western-larch",
          "label": "Western larch"
        },
        {
          "field": "Species",
          "value": "white-spruce",
          "label": "White spruce"
        },
        {
          "field": "Species",
          "value": "engelmann-spruce",
          "label": "Engelmann spruce"
        },
        {
          "field": "Species",
          "value": "balsam-fir",
          "label": "Balsam fir"
        },
        {
          "field": "Species",
          "value": "western-redcedar",
          "label": "Western redcedar"
        },
        {
          "field": "Species",
          "value": "redwood",
          "label": "Redwood (young-growth)"
        },
        {
          "field": "Species",
          "value": "yellow-poplar",
          "label": "Yellow-poplar"
        },
        {
          "field": "Species",
          "value": "red-maple",
          "label": "Red maple"
        },
        {
          "field": "Species",
          "value": "sugar-maple",
          "label": "Sugar maple"
        },
        {
          "field": "Species",
          "value": "northern-red-oak",
          "label": "Northern red oak"
        },
        {
          "field": "Species",
          "value": "white-oak",
          "label": "White oak"
        },
        {
          "field": "Species",
          "value": "black-cherry",
          "label": "Black cherry"
        },
        {
          "field": "Species",
          "value": "black-walnut",
          "label": "Black walnut"
        },
        {
          "field": "Species",
          "value": "white-ash",
          "label": "White ash"
        },
        {
          "field": "Species",
          "value": "yellow-birch",
          "label": "Yellow birch"
        },
        {
          "field": "Species",
          "value": "american-beech",
          "label": "American beech"
        },
        {
          "field": "Nominal thickness",
          "value": "1",
          "label": "1 in (1x boards)"
        },
        {
          "field": "Nominal thickness",
          "value": "2",
          "label": "2 in (2x framing)"
        },
        {
          "field": "Nominal thickness",
          "value": "3",
          "label": "3 in"
        },
        {
          "field": "Nominal thickness",
          "value": "4",
          "label": "4 in (4x4 posts)"
        },
        {
          "field": "Nominal width",
          "value": "2",
          "label": "2 in"
        },
        {
          "field": "Nominal width",
          "value": "3",
          "label": "3 in"
        },
        {
          "field": "Nominal width",
          "value": "4",
          "label": "4 in"
        },
        {
          "field": "Nominal width",
          "value": "6",
          "label": "6 in"
        },
        {
          "field": "Nominal width",
          "value": "8",
          "label": "8 in"
        },
        {
          "field": "Nominal width",
          "value": "10",
          "label": "10 in"
        },
        {
          "field": "Nominal width",
          "value": "12",
          "label": "12 in"
        },
        {
          "field": "Moisture",
          "value": "12",
          "label": "Dry, kiln dried or seasoned (12%)"
        },
        {
          "field": "Moisture",
          "value": "40",
          "label": "Green, 40% moisture"
        },
        {
          "field": "Moisture",
          "value": "60",
          "label": "Green, 60% moisture"
        },
        {
          "field": "Moisture",
          "value": "80",
          "label": "Green, 80% moisture"
        },
        {
          "field": "Moisture",
          "value": "100",
          "label": "Green, 100% moisture"
        }
      ],
      "sources": [
        {
          "note": "Density: USDA Wood Handbook (FPL-GTR-190), Table 4-6b «Density of wood as a function of specific gravity and moisture content», in lb per cubic foot with the water included, interpolated between specific gravity columns as the Handbook does. Specific gravity by species, green and at 12% moisture: Table 5-3b. Above about 30% moisture the specific gravity stops changing, so green wood uses the green figure. Read October 24, 2026.",
          "url": "https://research.fs.usda.gov/download/treesearch/37440.pdf"
        },
        {
          "note": "Actual sizes: PS 20-20 American Softwood Lumber Standard, Table 3, dry and green dressed sizes (a 2x4 is 1 1/2 × 3 1/2 in dry). Read October 2, 2026.",
          "url": "https://www.alsc.org/greenbook%20collection/ps20.pdf"
        },
        {
          "note": "The rest is arithmetic: pounds = lb per cu ft × actual thickness × actual width ÷ 144 × length ft × pieces.",
          "url": null
        }
      ],
      "caveat": "Figures are averages for clear wood of each species; a knotty or resin-soaked board can weigh more. The Wood Handbook gives no figure for pressure-treated lumber, so it is not one of the choices.",
      "reviewed": "2026-10-24",
      "page": "https://yardsneeded.com/wood-weight-calculator/"
    },
    {
      "id": "excavation",
      "material": "Excavation",
      "sold_in": "cubic yards",
      "method": "excavation_swell",
      "formula": "bank cubic yards = length ft × width ft × depth ft ÷ 27; loose cubic yards = bank × 1.11 (sand or gravel), 1.25 (common earth), 1.43 (clay) or 1.50 (blasted rock); compacted = bank × 0.95, 0.90, 0.90 or 1.30 (US Army FM 5-434 Table 1-1); truckloads = ceil(loose ÷ truck cubic yards)",
      "options": [
        {
          "field": "Soil",
          "value": "arena",
          "label": "Sand or gravel (× 1.11)"
        },
        {
          "field": "Soil",
          "value": "tierra",
          "label": "Common earth, loam (× 1.25)"
        },
        {
          "field": "Soil",
          "value": "arcilla",
          "label": "Clay (× 1.43)"
        },
        {
          "field": "Soil",
          "value": "roca",
          "label": "Blasted rock (× 1.50)"
        }
      ],
      "sources": [
        {
          "note": "Swell and compaction: US Army FM 5-434, Table 1-1, from bank (in place) to loose: sand or gravel 1.11, loam (common earth) 1.25, clay 1.43, blasted rock 1.50; from bank to compacted: 0.95, 0.90, 0.90 and 1.30. Its text: «the swell of dry clay is 40 percent, which means that 1 cubic yard of clay in the bank state will fill a space of 1.4 cubic yards in a loosened state». Read October 24, 2026.",
          "url": "https://www.globalsecurity.org/military/library/policy/army/fm/5-434/chap1.pdf"
        },
        {
          "note": "The rest is arithmetic: bank cubic yards = length × width × depth in feet ÷ 27; loose = bank × the soil factor; truckloads = loose ÷ truck cubic yards, rounded up.",
          "url": null
        }
      ],
      "caveat": "The factors are averages; FM 5-434 notes that grain size, moisture and compaction move them. Sloped or stepped trench walls dig out more than a square-sided hole of the same floor.",
      "reviewed": "2026-10-24",
      "page": "https://yardsneeded.com/excavation-calculator/"
    },
    {
      "id": "spiral-staircase",
      "material": "Spiral staircase",
      "sold_in": "risers",
      "method": "spiral_stair",
      "formula": "risers = ceil(floor to floor in ÷ 9.5), each = height ÷ risers; treads = risers − 1; walkline radius = center column in ÷ 2 + 12 (IRC 2021 R311.7.4), at most 24 1/2 in; tread depth on the walkline = 2π × walkline radius × degrees per tread ÷ 360, at least 6 3/4 in; clear width = (diameter − column) ÷ 2, at least 26 in; one full turn = 360 ÷ degrees per tread × riser, against the 6 ft 6 in headroom (R311.7.10.1)",
      "options": [],
      "sources": [
        {
          "note": "Spiral stairs: IRC 2021 R311.7.10.1, clear width «not less than 26 inches», walkline radius «not greater than 24-1/2 inches», each tread «not less than 6-3/4 inches» deep at the walkline, treads identical, rise «not more than 9-1/2 inches», headroom «not less than 6 feet 6 inches». The walkline is «located 12 inches (305 mm) from the inside of the turn» (R311.7.4). As printed in the 2021 Seattle Residential Code, chapter 3, and identical in the IRC 2021 on UpCodes (New Jersey). Read October 24, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter3.pdf"
        },
        {
          "note": "The rest is arithmetic: risers = floor to floor ÷ 9.5, rounded up; treads = risers − 1; walkline radius = column ÷ 2 + 12 in; tread depth there = 2π × radius × degrees ÷ 360; clear width = (diameter − column) ÷ 2; one full turn climbs 360 ÷ degrees × riser.",
          "url": null
        }
      ],
      "caveat": "The headroom check is one full turn of risers measured from the walking surface, before the thickness of the tread above. The clear width is taken from the column to the outside of the stair, and a handrail set inside that line narrows it.",
      "reviewed": "2026-10-24",
      "page": "https://yardsneeded.com/spiral-staircase-calculator/"
    },
    {
      "id": "grout",
      "material": "Tile grout",
      "sold_in": "bags",
      "method": "grout_by_manufacturer_chart",
      "formula": "lb (or gal) = area sq ft × the data sheet figure for the tile size and joint width: per-bag coverage from the MAPEI Ultracolor Plus FA, MAPEI Kerapoxy CQ, LATICRETE PermaColor (DS-254.3), CUSTOM Prism (SS160), TEC Power Grout 550 and Bostik TruColor charts; for a size or joint the chart does not list, lb per sq ft = 144 × (L + W) ÷ (L × W) × joint × tile thickness × k, k fitted to the median of that chart (gal for epoxy: exact joint volume ÷ 231); plus waste (LATICRETE: 10%); bought in the brand's own bag, box, kit or pail sizes with the least left over",
      "options": [
        {
          "field": "Grout",
          "value": "mapei-ultracolor",
          "label": "MAPEI Ultracolor Plus FA (10 or 25 lb bags)"
        },
        {
          "field": "Grout",
          "value": "mapei-kerapoxy",
          "label": "MAPEI Kerapoxy CQ epoxy (1 or 2 gal kits)"
        },
        {
          "field": "Grout",
          "value": "laticrete-permacolor",
          "label": "LATICRETE PermaColor (25 lb bags)"
        },
        {
          "field": "Grout",
          "value": "cbp-prism",
          "label": "CUSTOM Prism (17 lb boxes)"
        },
        {
          "field": "Grout",
          "value": "tec-power-grout",
          "label": "TEC Power Grout 550 (7, 10 or 25 lb bags)"
        },
        {
          "field": "Grout",
          "value": "bostik-trucolor",
          "label": "Bostik TruColor pre-mixed (9 or 18 lb pails)"
        }
      ],
      "sources": [
        {
          "note": "MAPEI Ultracolor Plus FA Technical Data Sheet (September 10, 2026): coverage per 10 lb for 16 tile sizes and joints from 1/16 to 3/4 in, e.g. 156 sq ft for 12 × 12 × 3/8 in tile at 1/8 in; bags of 10 and 25 lb. Read October 26, 2026.",
          "url": "https://cdnmedia.mapei.com/docs/librariesprovider67/products-documents/1_3000144_ultracolor-plus-fa_en-us_979a424a35724d82980fa0332f798319.pdf?sfvrsn=db70187f_0"
        },
        {
          "note": "MAPEI Kerapoxy CQ Technical Data Sheet (May 4, 2026): coverage per U.S. gallon for 15 tile sizes and joints from 1/16 to 3/8 in, e.g. 159 sq ft for 6 × 6 × 1/4 in tile at 1/8 in; kits of 1 and 2 gal.",
          "url": "https://www.buildsite.com/pdf/mapei/Kerapoxy-CQ-Product-Data-2964650.pdf"
        },
        {
          "note": "LATICRETE Data Sheet DS-254.3-1123: PermaColor Grout coverage per 25 lb bag, e.g. 804 sq ft for 24 × 24 × 3/8 in tile at 1/8 in, and «Add 10% for waste, spillage and clean-up, and another 10% - 15% when grouting unglazed quarry tile».",
          "url": "https://laticrete.com/~/media/files/support-and-downloads/marketing-support/grout-selector/ds2453-grout-card"
        },
        {
          "note": "Custom Building Products Prism sell sheet SS160 9/25R: coverage per 17 lb box, e.g. 348 sq ft for 12 × 12 × 3/8 in tile at 1/8 in; «17 lbs. covers the same area as a typical 25 lb. bag».",
          "url": "https://www.custombuildingproducts.com/wp-content/uploads/Prism_SellSheet_SS160_9-25_WEB.pdf"
        },
        {
          "note": "TEC Power Grout 550 Product Data Sheet DS550_R0826-20: coverage per pound, e.g. 14.58 sq ft for 12 × 12 × 3/8 in tile at 1/8 in; bags of 7, 10 and 25 lb.",
          "url": "https://www.tecspecialty.com/hbfuller-media/8587/pds_tec_550_powergrout_r0826.pdf"
        },
        {
          "note": "Bostik TruColor Technical Data Sheet (August 8, 2025): coverage per 9 lb and 18 lb unit, e.g. 126 sq ft per 9 lb for 12 × 12 × 3/8 in tile at 1/8 in. Its 3 × 6 and 4 × 4 in rows give twice what the joint volume allows in both charts, so they are not used.",
          "url": "https://www.buildsite.com/pdf/bostik/Bostik-TruColor-RapidCure-Premium-Pre-Mixed-Urethane-Grout-Product-Data-2973303.pdf"
        },
        {
          "note": "No brand prints a formula, only charts. When your tile and joint are on the chart, the chart figure is used as printed. When they are not, the joint volume (144 × (length + width) ÷ (length × width) × joint × thickness cubic inches per sq ft) is multiplied by a density fitted to that brand's chart, the median of its cells: 0.057 lb per cu in for Ultracolor Plus FA, 0.0551 PermaColor, 0.0417 Prism, 0.061 Power Grout, 0.0635 TruColor; Kerapoxy's chart matches the exact joint volume in gallons. That fit is ours, not the manufacturer's.",
          "url": null
        }
      ],
      "caveat": "The charts assume joints filled to the full tile thickness. Tiles with a pillowed or rounded edge, and stone set lower than its thickness, take less; unglazed quarry tile takes 10 to 15% more by LATICRETE's guideline.",
      "reviewed": "2026-10-26",
      "page": "https://yardsneeded.com/grout-calculator/"
    },
    {
      "id": "gutter-size",
      "material": "Gutter size",
      "sold_in": "gutter",
      "method": "gutter_size_ipc",
      "formula": "gpm = rainfall in/hr × roof area sq ft × 0.0104 (IPC 2021 Equation 11-1), with the 100-year 1-hour rainfall of NOAA Atlas 14 (IPC 1106.1) and the projected roof area plus half of any wall that sheds onto it (1106.4); gutter = the smallest in IPC Table 1106.6 at the chosen slope whose capacity is at least that gpm; each of n downspouts carries gpm ÷ n and takes the smallest leader in Table 1106.3 with that capacity",
      "options": [
        {
          "field": "Gutter slope",
          "value": "0.0625",
          "label": "1/16 in per ft (8 and 10 in half-round)"
        },
        {
          "field": "Gutter slope",
          "value": "0.125",
          "label": "1/8 in per ft (half-round)"
        },
        {
          "field": "Gutter slope",
          "value": "0.25",
          "label": "1/4 in per ft (rectangular)"
        },
        {
          "field": "Gutter slope",
          "value": "0.5",
          "label": "1/2 in per ft (rectangular)"
        }
      ],
      "sources": [
        {
          "note": "Flow and sizes: International Plumbing Code 2021, Section 1106, as adopted by Colorado. Equation 11-1: GPM = R × A × 0.0104, R the rainfall in inches per hour and A the roof area in square feet; R is the 100-year hourly rainfall rate (1106.1); half of any vertical wall that sheds onto the roof is added to the projected roof area (1106.4); Table 1106.6 gives gutter capacity by size and slope, e.g. 39 gpm for a 4 in half-round gutter and 110 gpm for a 6 in one at 1/8 in per ft; Table 1106.3 gives leader capacity, e.g. 92 gpm for a 3 in round, 2 × 4 or 2 1/2 × 3 in leader. Read October 26, 2026.",
          "url": "https://up.codes/viewer/colorado/ipc-2021/chapter/11/storm-drainage"
        },
        {
          "note": "Rain: NOAA Atlas 14 point precipitation frequency estimates, Precipitation Frequency Data Server, precipitation intensity, partial duration series, 60-minute duration, 100-year average recurrence interval; at each city center, e.g. Atlanta 3.25 in/hr, Houston 4.85, Chicago 3.08, Denver 2.26. Read October 26, 2026. Pick your own point on the map for your address.",
          "url": "https://hdsc.nws.noaa.gov/pfds/pfds_map_cont.html"
        },
        {
          "note": "The rest is arithmetic: roof area = gutter run × roof depth seen from above, plus half the wall; gpm per downspout = gpm ÷ downspouts; the gutter and leader are the smallest in each table that carry it.",
          "url": null
        }
      ],
      "caveat": "Table 1106.6 lists half-round gutters by diameter and rectangular ones by width × depth, at slopes from 1/16 to 1/2 in per ft. K-style gutters, the ones sold as 5 and 6 in, are not in the code table, so the page does not convert to them.",
      "reviewed": "2026-10-26",
      "page": "https://yardsneeded.com/gutter-size-calculator/"
    },
    {
      "id": "riprap",
      "material": "Riprap",
      "sold_in": "tons",
      "method": "riprap_tons_tdot",
      "formula": "cubic yards = length ft × width ft × layer ft ÷ 27, the layer of the TDOT Standard Specifications 2021 709.03 class (A-1 and A-2 1.5 ft, B 2.5 ft, C 3.5 ft; A-3 as shown on the plans); tons = cubic yards × 1.75 (TDOT Roadway Design Guidelines 4-709.05)",
      "options": [
        {
          "field": "Riprap class (TDOT 709.03)",
          "value": "A-1",
          "label": "Class A-1: 2 in to 1.25 ft stone, 1.5 ft layer"
        },
        {
          "field": "Riprap class (TDOT 709.03)",
          "value": "A-2",
          "label": "Class A-2: as A-1, or 1 ft of hand-placed stone"
        },
        {
          "field": "Riprap class (TDOT 709.03)",
          "value": "A-3",
          "label": "Class A-3: 2 to 6 in stone, layer from the plans"
        },
        {
          "field": "Riprap class (TDOT 709.03)",
          "value": "B",
          "label": "Class B: 3 in to 2.25 ft stone, 2.5 ft layer"
        },
        {
          "field": "Riprap class (TDOT 709.03)",
          "value": "C",
          "label": "Class C: 5 in to 3 ft stone, 3.5 ft layer"
        },
        {
          "field": "Tons per cubic yard",
          "value": 1.75,
          "label": "1.75 tons/yd³, TDOT estimating factor"
        }
      ],
      "sources": [
        {
          "note": "Classes and layers: Tennessee Department of Transportation, Standard Specifications for Road and Bridge Construction (January 1, 2021), 709.03. Machined riprap Class A-1 varies from 2 inches to 1.25 feet in a 1.5 foot layer; A-2 is identical, or 1 foot of hand-placed rubble stone instead; A-3 from 2 to 6 inches in the thickness shown on the plans; Class B from 3 inches to 2.25 feet in 2.5 feet; Class C from 5 inches to 3 feet in 3.5 feet. Read October 26, 2026.",
          "url": "https://www.tn.gov/content/dam/tn/tdot/construction/2021-standard-specifications/January_1_2021_Standard_Specifications.pdf"
        },
        {
          "note": "Tons: TDOT Roadway Design Guidelines, 4-709.05, «For estimating purposes, multiply cubic yards by 1.75 to convert to tons». TDOT's Structures Calculation Guide works it on a bridge apron: 2,914 sq ft of Class A-1 at 1.50 ft is 162 cubic yards and 283 tons.",
          "url": "https://www.tn.gov/content/dam/tn/tdot/roadway-design/documents/design_guidelines/DG-S4.pdf"
        },
        {
          "note": "The rest is arithmetic: cubic yards = length × width × layer in feet ÷ 27; tons = cubic yards × 1.75.",
          "url": null
        }
      ],
      "caveat": "The classes and the 1.75 factor are Tennessee DOT's; other state DOTs grade riprap with their own classes. The page works out the quantity for a class, not which class a channel needs: that comes from the flow velocity in a hydraulic design.",
      "reviewed": "2026-10-26",
      "page": "https://yardsneeded.com/riprap-calculator/"
    },
    {
      "id": "artificial-turf",
      "material": "Artificial turf",
      "sold_in": "linear ft",
      "method": "artificial_turf_rolls_infill",
      "formula": "pieces = ceil(width ÷ roll width) laid along the length, or ceil(length ÷ roll width) along the width, whichever buys fewer linear feet (then fewer seams); linear ft = pieces × piece length; rolls 15 ft wide and 100 ft long (Synthetic Grass Warehouse spec sheets); infill lb = lawn sq ft × 1.5-2.5 (SGW, 1.5-1.625 in pile; Envirofill 1-1.25 in pet or playground), 2.5-3.5 (Envirofill 1.5-1.75 in landscape) or 3.5-4.5 (Envirofill 1.875-2.25 in landscape)",
      "options": [
        {
          "field": "Pile height and infill rate",
          "value": "pet",
          "label": "1 to 1 1/4 in, pet or play: 1.5-2.5 lb/sq ft"
        },
        {
          "field": "Pile height and infill rate",
          "value": "sgw",
          "label": "1 1/2 to 1 5/8 in, SGW spec sheets: 1.5-2.5 lb/sq ft"
        },
        {
          "field": "Pile height and infill rate",
          "value": "land-15",
          "label": "1 1/2 to 1 3/4 in landscape: 2.5-3.5 lb/sq ft"
        },
        {
          "field": "Pile height and infill rate",
          "value": "land-19",
          "label": "1 7/8 to 2 1/4 in landscape: 3.5-4.5 lb/sq ft"
        }
      ],
      "sources": [
        {
          "note": "Rolls and infill on the turf spec sheets of Synthetic Grass Warehouse, Catalina and TigerTurf Majestic (REV112425): «Width: 15 Feet Length: 100 Feet» and particulate infill «1.5-2.5 Lbs Per Sq Ft» for a pile of about 1.50 and 1.625 inches. Read October 26, 2026.",
          "url": "https://sgw-media.s3.us-east-1.amazonaws.com/assets/spec-sheets/catalina-ss.pdf"
        },
        {
          "note": "Infill by pile height: Envirofill Installation Guidelines for landscape and recreational applications, depth and quantity chart: 1 to 1 1/4 in pet and playground turf 1.5 to 2.5 lb per sq ft, 1 1/2 to 1 3/4 in landscape 2.5 to 3.5 lb, 1 7/8 to 2 1/4 in landscape 3.5 to 4.5 lb; material loss «less than 1% if installed properly».",
          "url": "https://themotzgroup.com/wp-content/uploads/2022/09/Envirofill-Installation-Guidelines-for-Landscape-Applications.pdf"
        },
        {
          "note": "The rest is arithmetic: pieces = lawn width ÷ roll width rounded up, laid along the length, or the other way round, whichever buys fewer linear feet; seams = pieces − 1; infill = lawn sq ft × the rate, not the turf bought.",
          "url": null
        }
      ],
      "caveat": "Turf is cut from the roll in whole widths, so the linear feet buy more than the lawn: 540 sq ft for a 432 sq ft lawn here, trimmed off at the edges. The base under the turf and the nails along the seams are not counted.",
      "reviewed": "2026-10-26",
      "page": "https://yardsneeded.com/artificial-turf-calculator/"
    },
    {
      "id": "header-size",
      "material": "Header size",
      "sold_in": "header",
      "method": "header_span_irc",
      "formula": "the size with the least lumber (plies × depth, then fewer plies) whose maximum span in IRC 2021 Table R602.7(1) (exterior bearing walls, by load, ground snow load 30/50/70 psf and building width 12/24/36 ft) or R602.7(2) (interior bearing walls, by load and building width) is at least the opening; spans linearly interpolated between building widths (note c), with the jack stud count of the wider column; below 30 psf the 30 psf column (note e); spans of 2 × 8, 2 × 10 and 2 × 12 headers × 0.70 when the top is not laterally braced (note f)",
      "options": [
        {
          "field": "Wall and what the header carries",
          "value": "techo",
          "label": "Exterior: roof and ceiling"
        },
        {
          "field": "Wall and what the header carries",
          "value": "techo+1central",
          "label": "Exterior: roof, ceiling, one center-bearing floor"
        },
        {
          "field": "Wall and what the header carries",
          "value": "techo+1libre",
          "label": "Exterior: roof, ceiling, one clear-span floor"
        },
        {
          "field": "Wall and what the header carries",
          "value": "techo+2central",
          "label": "Exterior: roof, ceiling, two center-bearing floors"
        },
        {
          "field": "Wall and what the header carries",
          "value": "techo+2libre",
          "label": "Exterior: roof, ceiling, two clear-span floors"
        },
        {
          "field": "Wall and what the header carries",
          "value": "1planta",
          "label": "Interior bearing wall: one floor"
        },
        {
          "field": "Wall and what the header carries",
          "value": "2plantas",
          "label": "Interior bearing wall: two floors"
        },
        {
          "field": "Ground snow load, exterior walls",
          "value": "30",
          "label": "30 psf or less"
        },
        {
          "field": "Ground snow load, exterior walls",
          "value": "50",
          "label": "50 psf"
        },
        {
          "field": "Ground snow load, exterior walls",
          "value": "70",
          "label": "70 psf"
        },
        {
          "field": "Top of the header",
          "value": "si",
          "label": "Braced by joists or rafters framing in"
        },
        {
          "field": "Top of the header",
          "value": "no",
          "label": "Not braced, cripple studs on it (× 0.70)"
        }
      ],
      "sources": [
        {
          "note": "Spans and jack studs: International Residential Code 2021, Tables R602.7(1), exterior bearing walls (five loads from roof and ceiling to two clear-span floors, ground snow 30, 50 and 70 psf, building width 12, 24 and 36 ft), and R602.7(2), interior bearing walls (one or two floors), as printed in the 2021 Seattle Residential Code, which adopts them without a Seattle amendment. No. 2 Douglas fir-larch, hem-fir, Southern pine and spruce-pine-fir. Notes: widths in between may be interpolated; under 30 psf use the 30 psf column; 2 × 8 to 2 × 12 headers not braced on top × 0.70. Read October 26, 2026.",
          "url": "https://seattle.gov/documents/Departments/SDCI/Codes/SeattleResidentialCode/2021SRCChapter6.pdf"
        },
        {
          "note": "The rest is choosing: of the sizes whose span reaches the opening, the one with the least lumber, plies × depth, and then the fewer plies. Between two widths the span is interpolated in a straight line and the jack studs are those of the wider column.",
          "url": null
        }
      ],
      "caveat": "The tables cover sawn lumber, No. 2 grade, in a building no wider than 36 ft. LVL, glulam and steel headers, point loads from a girder truss or a post above, and other grades or species are outside them.",
      "reviewed": "2026-10-26",
      "page": "https://yardsneeded.com/header-size-calculator/"
    },
    {
      "id": "epoxy-floor",
      "material": "Epoxy floor",
      "sold_in": "kits",
      "method": "epoxy_floor_kits",
      "formula": "pouches = ceil(floor sq ft × coats ÷ 250) for Rust-Oleum EpoxyShield Water-Based (TDS ESH-39, practical coverage with 15% loss), split into 2.5 Car Kits of two pouches and a 1 Car Kit for an odd one; RockSolid Polycuramine pouches = ceil(sq ft × coats ÷ 200), or ÷ 250 at the top of its 200-250 sq ft range (TDS RSD-10); EpoxyShield Clear kits = ceil(sq ft ÷ 500) over a coated floor or ÷ 250 over bare concrete (sell sheet)",
      "options": [
        {
          "field": "Coating",
          "value": "epoxyshield",
          "label": "Rust-Oleum EpoxyShield Water-Based (250 sq ft per pouch)"
        },
        {
          "field": "Coating",
          "value": "rocksolid",
          "label": "Rust-Oleum RockSolid Polycuramine (200-250 sq ft per pouch)"
        },
        {
          "field": "Clear topcoat",
          "value": "no",
          "label": "None"
        },
        {
          "field": "Clear topcoat",
          "value": "pintado",
          "label": "EpoxyShield Clear over the color (500 sq ft per kit)"
        },
        {
          "field": "Clear topcoat",
          "value": "desnudo",
          "label": "EpoxyShield Clear alone on bare concrete (250 sq ft per kit)"
        }
      ],
      "sources": [
        {
          "note": "EpoxyShield Water-Based Epoxy Garage Floor Coating, Rust-Oleum technical data ESH-39 (Rev. 072121): practical coverage «Approximately 250 sq. ft. … per pouch» at the recommended film thickness, assuming 15% material loss; «2.5 Car Kit contains two burst pouches»; «Only one coat is necessary under most circumstances». The 2.5 Car Kit label: covers up to 450-500 sq ft. Read October 26, 2026.",
          "url": "https://www.rustoleum.com/-/media/DA74ED5C0FAC47AEAD3074F3522BA4CA.pdf"
        },
        {
          "note": "RockSolid Polycuramine Garage Floor Coating Kit, Rust-Oleum technical data RSD-10 (Rev. 031417): «Each Polycuramine pouch covers up to 200-250 square feet», a one coat system.",
          "url": "https://pdf.lowes.com/productdocuments/324ab187-b24a-49a4-a199-fbac66bdab54/08655817.pdf"
        },
        {
          "note": "Clear topcoat: Rust-Oleum EpoxyShield garage floor sell sheet, Clear Finish Floor Coating, «Covers up to 500 Sq. Ft. over coated concrete; Covers up to 250 Sq. Ft. over bare concrete».",
          "url": "https://www.rustoleum.com/-/media/9A5DED22F6884DF0B42918830A5DE9A5.pdf"
        },
        {
          "note": "The rest is arithmetic: pouches = floor sq ft × coats ÷ coverage, rounded up; EpoxyShield pouches in pairs to 2.5 Car Kits and an odd one to a 1 Car Kit.",
          "url": null
        }
      ],
      "caveat": "The coverage is for clean, etched concrete in sound condition, as both kits direct. RockSolid's sheet says rough or porous concrete takes more, which is why the count uses the low end, 200 sq ft per pouch.",
      "reviewed": "2026-10-26",
      "page": "https://yardsneeded.com/epoxy-floor-calculator/"
    },
    {
      "id": "stone-veneer",
      "material": "Stone veneer",
      "sold_in": "boxes",
      "method": "stone_veneer_boxes",
      "formula": "flats sq ft = (wall length × height − openings − corner linear ft × 0.5 (Ply Gem) or × 0.75 (Coronado)) × (1 + extra); Ply Gem boxes = ceil(flats ÷ 10) and corner boxes = ceil(corner ft × (1 + extra) ÷ 5); mortar bags = ceil((wall − openings) × 2 ÷ 17) for 80 lb or ÷ 13 for 60 lb bags of QUIKRETE Veneer Stone Mortar, a 1/2 in scratch coat plus a 1/2 in setting bed (MVMA, nominally 1 in together)",
      "options": [
        {
          "field": "Estimating method",
          "value": "plygem",
          "label": "Ply Gem: 1/2 sq ft per ft of corner, boxes of 10 sq ft and 5 ft"
        },
        {
          "field": "Estimating method",
          "value": "coronado",
          "label": "Coronado: 3/4 sq ft per ft of corner"
        },
        {
          "field": "Mortar bag",
          "value": "80",
          "label": "80 lb, 17 sq ft at 1/2 in"
        },
        {
          "field": "Mortar bag",
          "value": "60",
          "label": "60 lb, 13 sq ft at 1/2 in"
        }
      ],
      "sources": [
        {
          "note": "Ply Gem Stone Installation Guide, estimating steps 1 to 4: flats = width × height less openings, and «take half the number» of corner linear feet off; order 10% more square feet and linear feet; with a standard 1/2 inch grout joint, «flat stones are 10 square feet per box», 8.5 if dry stacked, and «All corner stones are 5 linear feet per box». Read October 26, 2026.",
          "url": "https://www.plygem.com/wp-content/uploads/shared/Widen%20Assets/Ply%20Gem%20Stone%20-%20Mortared/Installation%20Guides/Ply-Gem-Stone-Installation-Guide.pdf"
        },
        {
          "note": "Coronado Stone Products, Estimating Stone Veneer Quantities: «one linear foot of stone veneer corners consumes approximately 3/4 square foot of wall coverage», and 5 to 10 percent extra flats for cutting.",
          "url": "https://pdf.lowes.com/productdocuments/d3c23b86-294d-409b-9bdc-171fabe64cfc/08708706.pdf"
        },
        {
          "note": "Mortar layers: Masonry Veneer Manufacturers Association, Installation Guide for Adhered Manufactured Stone Veneer, 5th edition (2018): a nominal 1/2 in scratch coat, the back of each stone buttered 1/2 in, and scratch coat plus setting bed «nominally 1 in.»",
          "url": "https://floridabuilding.org/upload/PR_Instl_Docs/FL5625_R3_II_MVMA%20-%20Instllation%20Guide%20and%20Detailing%20Options%20for%20Compliance%20with%20ASTM%20C1780%20for%20ADhered%20Manufactured%20Stone%20,%205th%20edition,%202nd%20printing.pdf"
        },
        {
          "note": "Mortar bags: QUIKRETE Veneer Stone Mortar (No. 1137) data sheet: an 80 lb bag yields about 0.71 cu ft and covers about 17 sq ft as a scratch coat at 1/2 in; a 60 lb bag 0.53 cu ft and 13 sq ft.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-Veneer%20Stone%20Mortar%201137-80.pdf"
        },
        {
          "note": "The rest is arithmetic: boxes = square feet or linear feet with the extra ÷ the box, rounded up; mortar bags = wall less openings × 2 layers ÷ the bag's coverage at 1/2 in.",
          "url": null
        }
      ],
      "caveat": "The mortar count is the scratch coat and the setting bed; grouting the joints between stones takes more, and none of the four documents gives a figure for it. Dry-stacked Ply Gem flats cover 8.5 sq ft per box instead of 10.",
      "reviewed": "2026-10-26",
      "page": "https://yardsneeded.com/stone-veneer-calculator/"
    },
    {
      "id": "septic-tank-size",
      "material": "Septic tank size",
      "sold_in": "tank",
      "method": "septic_tank_ipsdc",
      "formula": "tank gallons = IPSDC 2021 Table 802.7.1 for the bedrooms (1 or 2: 750, 3: 1,000, 4: 1,200, 5: 1,425, 6: 1,650, 7: 1,875, 8: 2,100); absorption sq ft = bedrooms × Table 603.1 sq ft per bedroom for the percolation rate band (under 10, 10 to under 30, 30 to under 45, 45 to 60 min/in): trenches or pits 165, 250, 300, 330; beds 205, 315, 375, 415; slower than 60 min/in, no trench or bed (406.3)",
      "options": [
        {
          "field": "Drain field type",
          "value": "zanja",
          "label": "Trenches or seepage pits"
        },
        {
          "field": "Drain field type",
          "value": "lecho",
          "label": "Seepage bed"
        }
      ],
      "sources": [
        {
          "note": "Tank: International Private Sewage Disposal Code 2021, Section 802.7 and Table 802.7.1, as adopted by Alabama without amendments. Minimum liquid capacity 750 gallons; for one- and two-family dwellings 750 gallons for 1 or 2 bedrooms, 1,000 for 3, 1,200 for 4, 1,425 for 5, 1,650 for 6, 1,875 for 7 and 2,100 for 8. Read October 27, 2026.",
          "url": "https://up.codes/viewer/alabama/ipsdc-2021/chapter/8/tanks"
        },
        {
          "note": "Drain field: IPSDC 2021 Table 603.1, minimum absorption area per bedroom by percolation rate. Under 10 min/in 165 sq ft for trenches or pits and 205 for beds; 10 to under 30, 250 and 315; 30 to under 45, 300 and 375; 45 to 60, 330 and 415. Trenches and beds count bottom area, pits sidewall area. Read October 27, 2026.",
          "url": "https://up.codes/viewer/alabama/ipsdc-2021/chapter/6/soil-absorption-systems"
        },
        {
          "note": "Site: IPSDC 2021 Section 406.3, no trench or bed system where any of the three percolation tests is slower than 60 minutes per inch, and the slowest rate sizes the area; 406.2, at least 3 ft of soil between the bottom of the system and high ground water or bedrock. Read October 27, 2026.",
          "url": "https://up.codes/viewer/alabama/ipsdc-2021/chapter/4/site-evaluation-and-requirements"
        },
        {
          "note": "The rest is arithmetic: drain field sq ft = sq ft per bedroom × bedrooms.",
          "url": null
        }
      ],
      "caveat": "Table 802.7.1 stops at 8 bedrooms and covers one- and two-family dwellings; other buildings add capacity by use in Table 802.7.2. Pressure distribution systems are sized under chapter 7 of the code, not Table 603.1.",
      "reviewed": "2026-10-27",
      "page": "https://yardsneeded.com/septic-tank-size-calculator/"
    },
    {
      "id": "gas-pipe-sizing",
      "material": "Gas pipe sizing",
      "sold_in": "pipe",
      "method": "gas_pipe_ifgc_longest_length",
      "formula": "load = total Btu/h of the appliances on the section ÷ heating value Btu per cu ft = cfh (natural gas, 1,000 by default) or ÷ 1,000 = thousand Btu/h (propane); row = the longest length from the point of delivery to the most remote outlet, or the next longer row (IFGC 2021 402.4.1, Appendix A103.1); size = the smallest Schedule 40 pipe in that row of Table 402.4(2) (natural gas, under 2 psi, 0.5 in w.c. drop, 0.60 specific gravity) or Table 402.4(28) (undiluted propane, 11 in w.c., 0.5 in w.c. drop) whose capacity is at least the load",
      "options": [
        {
          "field": "Gas",
          "value": "natural",
          "label": "Natural gas, under 2 psi (Table 402.4(2))"
        },
        {
          "field": "Gas",
          "value": "propano",
          "label": "Propane, 11 in w.c. after the regulator (Table 402.4(28))"
        }
      ],
      "sources": [
        {
          "note": "Sizes: International Fuel Gas Code 2021, Section 402.4 and Tables 402.4(2) and 402.4(28), as adopted by New Jersey, matching the 2021 Seattle Fuel Gas Code and IRC Table G2413.4(1). Table 402.4(2): natural gas, Schedule 40 metallic pipe, under 2 psi, 0.5 in w.c. pressure drop, 0.60 specific gravity, e.g. 1/2 in carries 172 cfh at 10 ft and 72 at 50 ft, 3/4 in 199 at 30 ft. Table 402.4(28): undiluted propane at 11 in w.c., 0.5 in w.c. drop, in thousand Btu/h, e.g. 1/2 in 291 at 10 ft. 402.4.1: size each section with the longest length from the point of delivery to the most remote outlet and the load of that section. Read October 27, 2026.",
          "url": "https://up.codes/viewer/new_jersey/ifgc-2021/chapter/4/gas-piping-installations"
        },
        {
          "note": "Row and heating value: Appendix A of the 2021 Seattle Fuel Gas Code, the IFGC appendix, informative and not part of the code. A103.1: use the row of the measured length or the next longer length; A102.1: Btu/h ÷ the average heating value of the gas, which the gas supplier gives; the A106.1 example uses 1,000 Btu per cu ft. Read October 27, 2026.",
          "url": "https://www.seattle.gov/documents/departments/sdci/codes/fuelgascode/2021sfgcappendixa.pdf"
        },
        {
          "note": "The rest is arithmetic: cfh = Btu/h ÷ heating value for natural gas; thousand Btu/h = Btu/h ÷ 1,000 for propane.",
          "url": null
        }
      ],
      "caveat": "The two tables are for Schedule 40 metallic pipe: natural gas under 2 psi with a 0.5 in w.c. drop, and propane at 11 in w.c. past the second-stage regulator. CSST, copper and polyethylene, 2 psi systems and fittings counted as extra length use other tables; above 2,000 ft of elevation the flow is adjusted for altitude (402.2).",
      "reviewed": "2026-10-27",
      "page": "https://yardsneeded.com/gas-pipe-sizing-calculator/"
    },
    {
      "id": "bathroom-fan-cfm",
      "material": "Bathroom fan CFM",
      "sold_in": "fan",
      "method": "bathroom_fan_cfm_hvi_irc",
      "formula": "cfm = floor sq ft × 1 up to 100 sq ft (HVI); over 100 sq ft, 50 per toilet, shower or tub and 100 per jetted tub (HVI); never under 50 cfm intermittent, or 20 cfm for a fan running continuously (IRC 2021 Table M1505.4.4), rated at 0.25 in w.c. static pressure",
      "options": [
        {
          "field": "How the fan runs",
          "value": "intermitente",
          "label": "On a switch or timer (intermittent)"
        },
        {
          "field": "How the fan runs",
          "value": "continuo",
          "label": "All the time (continuous)"
        }
      ],
      "sources": [
        {
          "note": "Minimum: International Residential Code 2021, Table M1505.4.4, as adopted by Colorado without amendments: bathrooms and toilet rooms 50 cfm intermittent or 20 cfm continuous, the listed rate at a static pressure of at least 0.25 in w.c. (M1505.3); M1505.2: bathroom exhaust goes outdoors, never into an attic or crawl space. Read October 27, 2026.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/15/exhaust-systems"
        },
        {
          "note": "Rate: Home Ventilating Institute, Bathroom Ventilation. Up to 100 sq ft, 1 cfm per sq ft of floor, about eight air changes an hour; over 100 sq ft, by fixtures: toilet 50 cfm, shower 50, bathtub 50, jetted tub 100. Read October 27, 2026.",
          "url": "https://www.hvi.org/resources/publications/bathroom-ventilation/"
        },
        {
          "note": "HVI, How Much Ventilation Do I Need?: under 100 sq ft, 1 cfm per sq ft with a minimum of 50 cfm, and 20 cfm continuous in place of a 50 cfm intermittent fan. Read October 27, 2026.",
          "url": "https://www.hvi.org/resources/publications/home-ventilation-guide-articles/how-much-ventilation-do-i-need/"
        },
        {
          "note": "The rest is arithmetic: floor area = length × width; over 100 sq ft, the fixture rates added.",
          "url": null
        }
      ],
      "caveat": "Fan ratings are airflow at 0.25 in w.c. of static pressure, the point the IRC uses; a long or bent duct pushes the static pressure up and the airflow down. Steam rooms take a separate fan in the steam room (HVI).",
      "reviewed": "2026-10-27",
      "page": "https://yardsneeded.com/bathroom-fan-cfm-calculator/"
    },
    {
      "id": "drain-pipe-slope",
      "material": "Drain pipe slope",
      "sold_in": "pipe",
      "method": "drain_slope_ipc",
      "formula": "slope = the IPC 2021 Table 704.1 minimum for the pipe size (2 1/2 in or less 1/4 in per ft, 3 to 6 in 1/8, 8 in or larger 1/16); with drainage fixture units, the gentlest slope at or above that minimum whose Table 710.1(1) building drain limit carries them; fall in = run ft × slope, rounded up to the 1/16 in; percent = slope ÷ 12 × 100",
      "options": [
        {
          "field": "Pipe size",
          "value": "1.25",
          "label": "1 1/4 in"
        },
        {
          "field": "Pipe size",
          "value": "1.5",
          "label": "1 1/2 in"
        },
        {
          "field": "Pipe size",
          "value": "2",
          "label": "2 in"
        },
        {
          "field": "Pipe size",
          "value": "2.5",
          "label": "2 1/2 in"
        },
        {
          "field": "Pipe size",
          "value": "3",
          "label": "3 in"
        },
        {
          "field": "Pipe size",
          "value": "4",
          "label": "4 in"
        },
        {
          "field": "Pipe size",
          "value": "5",
          "label": "5 in"
        },
        {
          "field": "Pipe size",
          "value": "6",
          "label": "6 in"
        },
        {
          "field": "Pipe size",
          "value": "8",
          "label": "8 in"
        },
        {
          "field": "Pipe size",
          "value": "10",
          "label": "10 in"
        },
        {
          "field": "Pipe size",
          "value": "12",
          "label": "12 in"
        },
        {
          "field": "Pipe size",
          "value": "15",
          "label": "15 in"
        }
      ],
      "sources": [
        {
          "note": "Slope: International Plumbing Code 2021, Section 704.1 and Table 704.1, as adopted by Colorado, whose amendments to chapter 7 do not touch sections 704 or 710. Horizontal drainage pipe of 2 1/2 in or less at no less than 1/4 in per ft, 3 to 6 in at 1/8, 8 in or larger at 1/16; upstream of a grease interceptor, 1/4 in per ft (2-percent slope). Read October 27, 2026.",
          "url": "https://up.codes/viewer/colorado/ipc-2021/chapter/7/sanitary-drainage"
        },
        {
          "note": "Load: IPC 2021 Table 710.1(1), building drains and sewers, the most drainage fixture units by diameter and slope, e.g. 3 in carries 36 DFU at 1/8 in per ft, 42 at 1/4 and 50 at 1/2; 4 in carries 180, 216 and 250. Note a: a building drain serving a water closet is at least 3 in. Read October 27, 2026.",
          "url": "https://up.codes/viewer/colorado/ipc-2021/chapter/7/sanitary-drainage"
        },
        {
          "note": "The rest is arithmetic: fall in = run ft × slope in per ft, rounded up to the 1/16 in; percent grade = in per ft ÷ 12 × 100.",
          "url": null
        }
      ],
      "caveat": "The slopes are the IPC minimums. The Uniform Plumbing Code, used instead of the IPC in some states, is another code and is not included. The fixture unit check is for building drains and sewers; horizontal fixture branches use Table 710.1(2), with no slope column.",
      "reviewed": "2026-10-27",
      "page": "https://yardsneeded.com/drain-pipe-slope-calculator/"
    },
    {
      "id": "range-hood-cfm",
      "material": "Range hood CFM",
      "sold_in": "hood",
      "method": "range_hood_cfm_hvi_irc",
      "formula": "cfm = range width in ÷ 12 × 100 (wall) or 150 (island) recommended, × 40 or 50 at the least (HVI), never under the 100 cfm intermittent of IRC 2021 Table M1505.4.4, rounded up; over 400 cfm with a natural-draft fuel-burning appliance inside the air barrier, makeup air (IRC M1503.6)",
      "options": [
        {
          "field": "Where the range is",
          "value": "pared",
          "label": "Against a wall"
        },
        {
          "field": "Where the range is",
          "value": "isla",
          "label": "In an island"
        },
        {
          "field": "A natural-draft gas, oil or wood appliance inside the house",
          "value": "no",
          "label": "No, or only sealed or power-vented ones"
        },
        {
          "field": "A natural-draft gas, oil or wood appliance inside the house",
          "value": "si",
          "label": "Yes, e.g. an atmospheric water heater or furnace"
        }
      ],
      "sources": [
        {
          "note": "Rate: Home Ventilating Institute, How Much Ventilation Do I Need?, kitchen range hoods. Per linear foot of range, against a wall 100 cfm recommended and 40 at the least, in an island 150 and 50; a 30 in hood 250 and 100, 36 in 300 and 120, 48 in 400 and 160; over islands multiply by 1.5. Read October 27, 2026.",
          "url": "https://www.hvi.org/resources/publications/home-ventilation-guide-articles/how-much-ventilation-do-i-need/"
        },
        {
          "note": "Code: International Residential Code 2021, as adopted by Colorado without amendments. Table M1505.4.4: kitchens 100 cfm intermittent or 25 cfm continuous. M1503.6: where a fuel-burning appliance that is neither direct-vent nor mechanical-draft is inside the dwelling air barrier, an exhaust system over 400 cfm needs makeup air at about the exhaust rate. Read October 27, 2026.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/15/exhaust-systems"
        },
        {
          "note": "The rest is arithmetic: cfm = range width in ÷ 12 × the rate per foot, rounded up.",
          "url": null
        }
      ],
      "caveat": "The rates are for a canopy hood over the range. Downdraft exhausters and professional-style cooktops go by the range or cooktop maker, as HVI says. A recirculating hood moves no air outdoors.",
      "reviewed": "2026-10-27",
      "page": "https://yardsneeded.com/range-hood-cfm-calculator/"
    },
    {
      "id": "baseboard-heater",
      "material": "Baseboard heater",
      "sold_in": "heater",
      "method": "baseboard_heater_watts_cadet",
      "formula": "watts = room length ft × width ft × watts per sq ft (Cadet: 6 to 10), rounded up; heaters = the fewest pieces of the King K Series or Marley 2500 Series 240/208 V list whose catalog watts at the chosen voltage reach it, then the fewest watts and the shortest length; amps = watts ÷ volts; circuits = heaters packed largest first so no breaker carries more than 80% of its rating (Cadet Owner's Guide 720001 BB)",
      "options": [
        {
          "field": "Heater line",
          "value": "king",
          "label": "King K Series: 27 in to 8 ft"
        },
        {
          "field": "Heater line",
          "value": "marley",
          "label": "Marley 2500 Series: 24 to 96 in"
        },
        {
          "field": "Supply voltage",
          "value": "240",
          "label": "240 V"
        },
        {
          "field": "Supply voltage",
          "value": "208",
          "label": "208 V"
        },
        {
          "field": "Breaker",
          "value": "15",
          "label": "15 A"
        },
        {
          "field": "Breaker",
          "value": "20",
          "label": "20 A"
        },
        {
          "field": "Breaker",
          "value": "30",
          "label": "30 A"
        }
      ],
      "sources": [
        {
          "note": "Watts per sq ft: Cadet (Glen Dimplex Americas), Installing electric heaters: \"we recommend somewhere between 6 and 10 watts per square foot depending on your home's construction, if the heater is your only source of heat and what part of the country you live in.\" Read October 31, 2026.",
          "url": "https://www.cadetheat.com/en-us/articles/who-can-install-a-cadet-heater"
        },
        {
          "note": "Circuit: Cadet Owner's Guide, Electric Baseboard Heater (720001 BB, October 2023): heaters go on a circuit of their own, and the load on one breaker is limited to 80% of its rating or to the thermostat's maximum amps, whichever is lower. Read October 31, 2026.",
          "url": "https://www.cadetheat.com/sites/g/files/emiian441/files/2023-10/720001%20BB_22023-10-24_ENG.pdf"
        },
        {
          "note": "Heaters: King Electrical K Series, 240/208 V models: 500 W at 27 in, 750 W at 3 ft, 1,000 W at 4 ft, 1,250 W at 5 ft, 1,500 W at 6 ft, 2,000 and 2,400 W at 8 ft; dual-rated heaters give 25% less wattage at 208 V. Read October 31, 2026.",
          "url": "https://king-electric.com/product/model-k-series/"
        },
        {
          "note": "Heaters: Marley Engineered Products, Berko catalog, August 2026, 2500 Series 240/208 V models: 400 W at 24 in, 500 W at 30 in, 750 W at 36 in, 1,000 W at 48 in, 1,250 W at 60 in, 1,500 W at 72 in, 2,000 and 2,500 W at 96 in. Read October 31, 2026.",
          "url": "https://www.marleymep.com/wp-content/uploads/MEP-Berko-DigitalCatalog_2026-08-web.pdf"
        },
        {
          "note": "The rest is arithmetic: watts = length × width × watts per sq ft, rounded up; then the fewest catalog heaters whose watts at your voltage reach it; amps = watts ÷ volts.",
          "url": null
        }
      ],
      "caveat": "Watts per square foot is the one sizing input: Cadet's range already spans construction, region and whether the heaters are the only heat. Watts and lengths are the catalog's 240/208 V models; 120 V models are left out. The 80% check counts the heaters alone, on circuits that feed nothing else.",
      "reviewed": "2026-10-31",
      "page": "https://yardsneeded.com/baseboard-heater-calculator/"
    },
    {
      "id": "concrete-countertop",
      "material": "Concrete countertop",
      "sold_in": "bags",
      "method": "concrete_countertop_bags",
      "formula": "top sq ft = run 1 length × depth + run 2 length × depth − depth × depth where the runs meet in an L + island length × depth − sink cutout; cu ft = top × thickness in ÷ 12 + drop edge (front of the runs, in an L run 1 + run 2 − 2 × depth, plus the island perimeter) × drop in ÷ 12 × thickness in ÷ 12; bags = ceil(cu ft ÷ 0.6), the yield of an 80 lb bag of QUIKRETE Countertop Mix No. 1106-80 (data sheet); about 1 gallon of water per bag",
      "options": [
        {
          "field": "How the runs meet",
          "value": "l",
          "label": "L: corner shared, both measured along the wall"
        },
        {
          "field": "How the runs meet",
          "value": "aparte",
          "label": "Separate: galley or two walls"
        }
      ],
      "sources": [
        {
          "note": "Bag yield: QUIKRETE Countertop Mix, product No. 1106-80 (gray) and -81 (tint base), data sheet: \"Each 80 lb (36.3 kg) bag of QUIKRETE Countertop Mix will yield approximately 0.6 cu ft (17L) of mixed concrete.\" The same sheet gives about 1 gallon of water per bag, at least 1 cu ft of mixer capacity per bag, no more than 20 lb of glass or stone per bag, 6000 psi at 28 days, and forms left undisturbed for 18 or more hours. Read October 31, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-Countertop%20Mix%201106-80%20-81.pdf"
        },
        {
          "note": "The rest is geometry: top area = each run's length × depth, less one depth × depth corner square where two runs meet in an L, plus the island, less the sink cutout; volume = area × thickness, plus the drop edge as a leg as thick as the slab along the front of the runs and around the island; bags = volume ÷ 0.6, rounded up.",
          "url": null
        }
      ],
      "caveat": "Quikrete's data sheet sets no slab thickness and no reinforcement, so the thickness is yours to enter. In an L both runs are measured along the wall from the outside corner, which puts the corner square in both, so it is taken out once. The drop edge is the extra height below the slab at the front of the runs and on all four sides of an island, its leg as thick as the slab; run ends against a wall get none. For a U, enter the L, then the third run on its own measured from the front edge of the run it meets, and add the two cubic feet before dividing by 0.6.",
      "reviewed": "2026-10-31",
      "page": "https://yardsneeded.com/concrete-countertop-calculator/"
    },
    {
      "id": "i-joist-span",
      "material": "I-joist span",
      "sold_in": "feet and inches of span",
      "method": "i_joist_span_tj4000",
      "formula": "maximum clear span = Weyerhaeuser TJ-4000 (July 2025) page 7 Floor Span Tables cell [L/480 or L/360, 40 psf live with 10 or 20 psf dead, depth 9 1/2 to 16 in, TJI 110/210/230/360/560, 12/16/19.2/24 in on center], less 6 in (nails) or 12 in (proprietary fasteners) without subfloor adhesive; for a needed span, every cell at or above it, sorted by joist weight per sq ft of floor = lbs/ft (page 6) × 12 ÷ spacing",
      "options": [
        {
          "field": "Joist depth",
          "value": "9.5",
          "label": "9 1/2 in"
        },
        {
          "field": "Joist depth",
          "value": "11.875",
          "label": "11 7/8 in"
        },
        {
          "field": "Joist depth",
          "value": "14",
          "label": "14 in"
        },
        {
          "field": "Joist depth",
          "value": "16",
          "label": "16 in"
        },
        {
          "field": "TJI series",
          "value": "110",
          "label": "TJI 110 (1 3/4 in flange)"
        },
        {
          "field": "TJI series",
          "value": "210",
          "label": "TJI 210 (2 1/16 in flange)"
        },
        {
          "field": "TJI series",
          "value": "230",
          "label": "TJI 230 (2 5/16 in flange)"
        },
        {
          "field": "TJI series",
          "value": "360",
          "label": "TJI 360 (2 5/16 in flange)"
        },
        {
          "field": "TJI series",
          "value": "560",
          "label": "TJI 560 (3 1/2 in flange)"
        },
        {
          "field": "Joist spacing",
          "value": "12",
          "label": "12 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "16",
          "label": "16 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "19.2",
          "label": "19.2 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "24",
          "label": "24 in on center"
        },
        {
          "field": "Dead load",
          "value": "10",
          "label": "10 psf"
        },
        {
          "field": "Dead load",
          "value": "20",
          "label": "20 psf"
        },
        {
          "field": "Live load deflection limit",
          "value": "480",
          "label": "L/480 (stiffer floor)"
        },
        {
          "field": "Live load deflection limit",
          "value": "360",
          "label": "L/360 (code minimum)"
        },
        {
          "field": "Subfloor attachment",
          "value": "cola",
          "label": "Glued and nailed (the table)"
        },
        {
          "field": "Subfloor attachment",
          "value": "clavos",
          "label": "Nailed, no adhesive (−6 in)"
        },
        {
          "field": "Subfloor attachment",
          "value": "propietaria",
          "label": "Proprietary fasteners, no adhesive (−12 in)"
        }
      ],
      "sources": [
        {
          "note": "Spans: Weyerhaeuser Trus Joist TJI Joist Specifier's Guide TJ-4000, July 2025 edition, page 7, Floor Span Tables for 9 1/2 to 16 in TJI 110, 210, 230, 360 and 560 joists, printed in full below: L/480 and L/360 live load deflection, 40 psf live load with 10 or 20 psf dead load, at 12, 16, 19.2 and 24 in on center. Spans are the clear distance between supports, for uniform loads, the more restrictive of simple or continuous span, with a single layer of glue-nailed span-rated floor panels; without subfloor adhesive the guide takes 6 in off for nails and 12 in for proprietary fasteners. Joist weight per foot, page 6. Read October 31, 2026, and checked cell by cell against the PDF.",
          "url": "https://www.weyerhaeuser.com/application/files/5617/5451/8519/TJ-4000.pdf"
        },
        {
          "note": "Nothing is engineered here: the page reads the cell, takes off 6 or 12 in when there is no glue, and for a span you type lists every depth, series and spacing whose span is at least that long, ordered by pounds of joist per square foot of floor (weight per foot × 12 ÷ spacing).",
          "url": null
        }
      ],
      "caveat": "These are Weyerhaeuser's spans for its own TJI joists. LP SolidStart, Boise Cascade BCI and other I-joists carry their makers' tables, which differ. The table covers uniform floor loads of 40 psf live; a point load from a post, a bearing wall or a hot tub is outside it. The 18 to 24 in TJI depths are in a separate table of the same guide, at 25 psf dead load.",
      "reviewed": "2026-10-31",
      "page": "https://yardsneeded.com/i-joist-span-calculator/"
    },
    {
      "id": "ceiling-joist-span",
      "material": "Ceiling joist span",
      "sold_in": "feet and inches of span",
      "method": "ceiling_joist_span_table",
      "formula": "maximum span = IRC 2021 Table R802.5.1(1) (uninhabitable attic without storage, 10 psf live, 5 psf dead) or R802.5.1(2) (limited storage, 20 psf live, 10 psf dead) cell [L/240, spacing 12/16/19.2/24 in, species, grade, 2x4 to 2x10]; the attic is without storage up to 42 in of clear height between joists and rafters and has limited storage at 42 in or more (Table R301.5 notes b and g); note a = over 26 ft, no figure; for a needed span, every size and grade whose cell is at least that long; a lookup, no arithmetic",
      "options": [
        {
          "field": "Species",
          "value": "douglas-fir-larch",
          "label": "Douglas fir-larch"
        },
        {
          "field": "Species",
          "value": "hem-fir",
          "label": "Hem-fir"
        },
        {
          "field": "Species",
          "value": "southern-pine",
          "label": "Southern pine"
        },
        {
          "field": "Species",
          "value": "spruce-pine-fir",
          "label": "Spruce-pine-fir"
        },
        {
          "field": "Grade",
          "value": "SS",
          "label": "Select structural (SS)"
        },
        {
          "field": "Grade",
          "value": "#1",
          "label": "No. 1"
        },
        {
          "field": "Grade",
          "value": "#2",
          "label": "No. 2"
        },
        {
          "field": "Grade",
          "value": "#3",
          "label": "No. 3"
        },
        {
          "field": "Joist size",
          "value": "2x4",
          "label": "2 × 4"
        },
        {
          "field": "Joist size",
          "value": "2x6",
          "label": "2 × 6"
        },
        {
          "field": "Joist size",
          "value": "2x8",
          "label": "2 × 8"
        },
        {
          "field": "Joist size",
          "value": "2x10",
          "label": "2 × 10"
        },
        {
          "field": "Joist spacing",
          "value": "12",
          "label": "12 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "16",
          "label": "16 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "19.2",
          "label": "19.2 in on center"
        },
        {
          "field": "Joist spacing",
          "value": "24",
          "label": "24 in on center"
        },
        {
          "field": "Attic above",
          "value": "sin",
          "label": "No storage — 42 in or less of clear height (10 psf)"
        },
        {
          "field": "Attic above",
          "value": "limitado",
          "label": "Limited storage — 42 in or more of clear height (20 psf)"
        }
      ],
      "sources": [
        {
          "note": "Spans: 2021 International Residential Code, Section R802.5.1 and Tables R802.5.1(1), Ceiling Joist Spans for Common Lumber Species under uninhabitable attics without storage (10 psf live load, 5 psf dead load), and R802.5.1(2), the same under attics with limited storage (20 psf live load, 10 psf dead load), printed in full below. Both hold deflection to L/240, and note a marks every span over 26 ft. Read October 31, 2026, in the code text published by UpCodes, after a cell by cell match with the model text in the 2021 Seattle Residential Code.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/8/roof-ceiling-construction"
        },
        {
          "note": "Which table: IRC 2021 Table R301.5, notes b and g. An attic with 42 in or less of clear height between joists and rafters is without storage; with 42 in or more, or two or more adjacent trusses with room for a 42 by 24 in rectangle, it has limited storage. Read October 31, 2026.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/3/building-planning"
        },
        {
          "note": "Nothing here is calculated: the page reads the cell for your attic, spacing, species, grade and size, and for a span you type it lists every size and grade at your spacing whose cell reaches it.",
          "url": null
        }
      ],
      "caveat": "These tables size joists that carry a ceiling and an attic nobody lives in. A habitable attic, or one reached by fixed stairs, takes 30 psf in Table R301.5 and is framed as a floor, from the floor joist tables of Section R502.3.1. For other species, grades and loads, Section R802.5.1 points to the AWC Span Tables for Joists and Rafters.",
      "reviewed": "2026-10-31",
      "page": "https://yardsneeded.com/ceiling-joist-span-calculator/"
    },
    {
      "id": "pool-filter-sand",
      "material": "Pool filter sand",
      "sold_in": "pounds and bags",
      "method": "pool_filter_sand_by_model",
      "formula": "pounds = the sand capacity printed for the filter model (Hayward ProSeries owner's manual IS210TS RevA, Specifications; Pentair Sand Dollar brochure P1-041), or by tank diameter the listed model within 1/2 in of it (Hayward diameter = the number in the model code); between two listed diameters, both figures, not interpolated; bags = ceil(pounds ÷ bag weight); No. 20 silica sand, 0.45 to 0.55 mm",
      "options": [
        {
          "field": "Or your filter model",
          "value": "diametro",
          "label": "Go by the tank diameter"
        },
        {
          "field": "Or your filter model",
          "value": "S144T",
          "label": "Hayward S144T (14 in)"
        },
        {
          "field": "Or your filter model",
          "value": "S166T",
          "label": "Hayward S166T (16 in)"
        },
        {
          "field": "Or your filter model",
          "value": "S180T",
          "label": "Hayward S180T (18 in)"
        },
        {
          "field": "Or your filter model",
          "value": "S210T",
          "label": "Hayward S210T or S210T2 (21 in)"
        },
        {
          "field": "Or your filter model",
          "value": "S220T",
          "label": "Hayward S220T or S220T2 (22 in)"
        },
        {
          "field": "Or your filter model",
          "value": "S244T",
          "label": "Hayward S244T or S244T2 (24 in)"
        },
        {
          "field": "Or your filter model",
          "value": "S270T",
          "label": "Hayward S270T or S270T2 (27 in)"
        },
        {
          "field": "Or your filter model",
          "value": "S310T2",
          "label": "Hayward S310T2 (31 in)"
        },
        {
          "field": "Or your filter model",
          "value": "S360T2",
          "label": "Hayward S360T2 (36 in)"
        },
        {
          "field": "Or your filter model",
          "value": "SD 35",
          "label": "Pentair Sand Dollar SD 35 (16.5 in)"
        },
        {
          "field": "Or your filter model",
          "value": "SD 40",
          "label": "Pentair Sand Dollar SD 40 (19.5 in)"
        },
        {
          "field": "Or your filter model",
          "value": "SD 60",
          "label": "Pentair Sand Dollar SD 60 (22.5 in)"
        },
        {
          "field": "Or your filter model",
          "value": "SD 70",
          "label": "Pentair Sand Dollar SD 70 (24 in)"
        },
        {
          "field": "Or your filter model",
          "value": "SD 80",
          "label": "Pentair Sand Dollar SD 80 (26 in)"
        }
      ],
      "sources": [
        {
          "note": "Hayward: ProSeries High-Rate Sand Filters owner's manual, document IS210TS RevA, Specifications table. Filter sand by model: S144T 50 lb, S166T 100, S180T 150, S210T and S210T2 200, S220T and S220T2 250, S244T and S244T2 300, S270T and S270T2 350, S310T2 500 and S360T2 700 lb, 0.45 to 0.55 mm, “also known as No. 20 Silica Pool”. The tank diameter is the number in the model code, which the 16, 18, 21, 22, 24, 27, 31 and 36 in lateral assemblies in the same manual's parts list match. The sand level stays at least 10 in from the top. Read October 31, 2026, and checked again November 1, 2026.",
          "url": "https://commerce.hayward-pool-assets.com/magento/akeneo/W3S270T/manuals/IS210TSRevA_547c.pdf"
        },
        {
          "note": "Pentair: Sand Dollar top mount filter brochure P1-041: SD 35, 16.50 in, 100 lb; SD 40, 19.50 in, 150 lb; SD 60, 22.50 in, 250 lb; SD 70, 24.00 in, 300 lb; SD 80, 26.00 in, 350 lb; “Use standard #20 silica sand”. Read October 31, 2026.",
          "url": "https://www.pentair.com/content/dam/extranet/nam/pentair-pool/residential/filters/sand-dollar/sand-dollar-top-mount-filter-brochure-english.pdf"
        },
        {
          "note": "Grade: Pentair's sand filter installation and user's guide, P/N 152006: No. 20 standard silica sand, uniformity coefficient 1.75 or less, .018 to .022 in (.45 to .55 mm), in the amount on the filter's name plate. Read October 31, 2026.",
          "url": "https://www.pentair.com/content/dam/extranet/nam/pentair-pool/pool-manuals/filters/Sand_Filter_Installation_and_Users_Guide_English_Spanish_French.pdf"
        },
        {
          "note": "Bags are the pounds divided by the weight printed on your bag, rounded up. Between two listed tank sizes the page gives both figures and does not interpolate.",
          "url": null
        }
      ],
      "caveat": "Only Hayward ProSeries and Pentair Sand Dollar tanks are listed, the two manuals read for this page. Intex, Bestway and other brands are not in them, and glass or zeolite media are not silica sand, so their pounds are not these.",
      "reviewed": "2026-11-01",
      "page": "https://yardsneeded.com/pool-filter-sand-calculator/"
    },
    {
      "id": "concrete-footing",
      "material": "Concrete footing",
      "sold_in": "inches of footing and cubic yards",
      "method": "wall_footing_irc_r403_1",
      "formula": "W × T = IRC 2021 Table R403.1(1) cell for roof live or ground snow load, stories and foundation type at the soil bearing value (Table R401.4.1 class, or a soil report); between soil columns, width interpolated linearly (note a) and rounded up to the inch, thickness the larger of the two; over 4,000 psf, the 4,000 column; building width over 32 ft: +2 in W and +1 in T per 4 ft or part of 4 ft (note c); under 32 ft: −2 in W and −1 in T per full 4 ft (note d); never under 12 × 6 in (R403.1.1); concrete cu yd = length ft × W/12 × T/12 ÷ 27; bags = ceil(cu ft ÷ bag yield)",
      "options": [
        {
          "field": "Roof live or ground snow load",
          "value": "20",
          "label": "20 psf roof live or 25 psf ground snow"
        },
        {
          "field": "Roof live or ground snow load",
          "value": "30",
          "label": "30 psf ground snow"
        },
        {
          "field": "Roof live or ground snow load",
          "value": "50",
          "label": "50 psf ground snow"
        },
        {
          "field": "Roof live or ground snow load",
          "value": "70",
          "label": "70 psf ground snow"
        },
        {
          "field": "Stories",
          "value": "1",
          "label": "1 story"
        },
        {
          "field": "Stories",
          "value": "2",
          "label": "2 stories"
        },
        {
          "field": "Stories",
          "value": "3",
          "label": "3 stories"
        },
        {
          "field": "Foundation",
          "value": "losa",
          "label": "Slab-on-grade"
        },
        {
          "field": "Foundation",
          "value": "camara",
          "label": "Crawl space"
        },
        {
          "field": "Foundation",
          "value": "sotano",
          "label": "Basement"
        },
        {
          "field": "Soil",
          "value": "1500",
          "label": "Clay or silt (CL, ML, MH, CH): 1,500 psf"
        },
        {
          "field": "Soil",
          "value": "2000",
          "label": "Sand, silty or clayey sand or gravel (SW, SP, SM, SC, GM, GC): 2,000 psf"
        },
        {
          "field": "Soil",
          "value": "3000",
          "label": "Sandy gravel or gravel (GW, GP): 3,000 psf"
        },
        {
          "field": "Soil",
          "value": "4000",
          "label": "Sedimentary or foliated rock: 4,000 psf"
        },
        {
          "field": "Soil",
          "value": "12000",
          "label": "Crystalline bedrock: 12,000 psf"
        },
        {
          "field": "Bag size",
          "value": "0.3",
          "label": "40 lb — 0.30 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.375",
          "label": "50 lb — 0.375 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.45",
          "label": "60 lb — 0.45 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.6",
          "label": "80 lb — 0.60 cu ft"
        },
        {
          "field": "Bag size",
          "value": "0.675",
          "label": "90 lb — 0.675 cu ft"
        }
      ],
      "sources": [
        {
          "note": "Footing size: 2021 International Residential Code, Table R403.1(1), Minimum Width and Thickness for Concrete Footings for Light-Frame Construction, printed in full below: width × thickness in inches by roof live or ground snow load, stories, slab, crawl space or basement, and soil bearing value from 1,500 to 4,000 psf. Note a permits interpolating the width between soil columns and forbids extrapolating; notes c and d add 2 in of width and 1 in of thickness for every 4 ft of building width over 32 ft, and allow the same off under 32 ft. Section R403.1.1 sets 12 in wide and 6 in thick as the floor. Read October 31, 2026, in the code text published by UpCodes, after a cell by cell match with the 2021 Seattle Residential Code, and checked again November 1, 2026.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/4/foundations"
        },
        {
          "note": "Soil: IRC 2021 Table R401.4.1, Presumptive Load-Bearing Values of Foundation Materials: clay and silt (CL, ML, MH, CH) 1,500 psf; sand, silty or clayey sand and silty or clayey gravel (SW, SP, SM, SC, GM, GC) 2,000 psf; sandy gravel and gravel (GW, GP) 3,000 psf; sedimentary and foliated rock 4,000 psf; crystalline bedrock 12,000 psf. Below 1,500 psf a soils investigation sets the value. Depth: Section R403.1.4 puts exterior footings at least 12 in below undisturbed ground, and R403.1.4.1 below the frost line of Table R301.2 unless otherwise protected. Read October 31, 2026.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/4/foundations"
        },
        {
          "note": "Bag yields: Quikrete Concrete Mix technical data sheet, document 1101. A 40 lb bag yields 0.30 cu ft, 50 lb 0.375, 60 lb 0.45, 80 lb 0.60 and 90 lb 0.675. Read October 12, 2026.",
          "url": "https://www.quikrete.com/PDFs/DATA_SHEET-CONCRETE%20MIX%201101.pdf"
        },
        {
          "note": "Choices this calculator makes where the code leaves room: an interpolated width is rounded up to the whole inch and takes the larger thickness of the two columns; over 32 ft a part of 4 ft counts as a full step, under 32 ft only full steps come off; over 4,000 psf it reads the 4,000 psf column. Concrete is length × width × thickness, 27 cu ft to the cubic yard, bags rounded up.",
          "url": null
        }
      ],
      "caveat": "Table R403.1(1) is for light-frame walls. Brick veneer or lath and plaster go by Table R403.1(2), and concrete or masonry walls by Table R403.1(3), which this page does not read. A pier or column footing is sized by its tributary load instead, and for a deck post that is the deck footing calculator.",
      "reviewed": "2026-11-01",
      "page": "https://yardsneeded.com/concrete-footing-calculator/"
    },
    {
      "id": "conduit-fill",
      "material": "Conduit fill",
      "sold_in": "wires per conduit",
      "method": "conduit_fill_irc_e3904_6",
      "formula": "maximum conductors = IRC 2021 Table E3904.6(1) to (10) cell [tubing type, trade size 3/8 to 2 in, insulation group THHN/THWN-2, XHHW, TW/THW, RHW with cover, size 14 AWG to 4/0], conductors of one size and type only; minimum size for N wires = the smallest trade size whose cell is N or more",
      "options": [
        {
          "field": "Conduit or tubing",
          "value": "EMT",
          "label": "EMT, electrical metallic tubing"
        },
        {
          "field": "Conduit or tubing",
          "value": "PVC-40",
          "label": "PVC Schedule 40"
        },
        {
          "field": "Conduit or tubing",
          "value": "PVC-80",
          "label": "PVC Schedule 80"
        },
        {
          "field": "Conduit or tubing",
          "value": "ENT",
          "label": "ENT, smurf tube"
        },
        {
          "field": "Conduit or tubing",
          "value": "FMC",
          "label": "FMC, flexible metal (Greenfield)"
        },
        {
          "field": "Conduit or tubing",
          "value": "LFMC",
          "label": "LFMC, liquidtight flexible metal"
        },
        {
          "field": "Conduit or tubing",
          "value": "FNMC-B",
          "label": "Liquidtight flexible nonmetallic, FNMC-B"
        },
        {
          "field": "Conduit or tubing",
          "value": "FNMC-A",
          "label": "Liquidtight flexible nonmetallic, FNMC-A"
        },
        {
          "field": "Conduit or tubing",
          "value": "IMC",
          "label": "IMC, intermediate metal"
        },
        {
          "field": "Conduit or tubing",
          "value": "RMC",
          "label": "RMC, rigid metal"
        },
        {
          "field": "Trade size",
          "value": "3/8",
          "label": "3/8 in (FNMC only)"
        },
        {
          "field": "Trade size",
          "value": "1/2",
          "label": "1/2 in"
        },
        {
          "field": "Trade size",
          "value": "3/4",
          "label": "3/4 in"
        },
        {
          "field": "Trade size",
          "value": "1",
          "label": "1 in"
        },
        {
          "field": "Trade size",
          "value": "1 1/4",
          "label": "1 1/4 in"
        },
        {
          "field": "Trade size",
          "value": "1 1/2",
          "label": "1 1/2 in"
        },
        {
          "field": "Trade size",
          "value": "2",
          "label": "2 in"
        },
        {
          "field": "Wire type",
          "value": "thhn",
          "label": "THHN, THWN or THWN-2"
        },
        {
          "field": "Wire type",
          "value": "xhhw",
          "label": "XHHW or XHHW-2"
        },
        {
          "field": "Wire type",
          "value": "thw",
          "label": "TW, THW, THHW or THW-2"
        },
        {
          "field": "Wire type",
          "value": "rhw",
          "label": "RHH, RHW or RHW-2 with outer covering"
        },
        {
          "field": "Wire size",
          "value": "14",
          "label": "14 AWG"
        },
        {
          "field": "Wire size",
          "value": "12",
          "label": "12 AWG"
        },
        {
          "field": "Wire size",
          "value": "10",
          "label": "10 AWG"
        },
        {
          "field": "Wire size",
          "value": "8",
          "label": "8 AWG"
        },
        {
          "field": "Wire size",
          "value": "6",
          "label": "6 AWG"
        },
        {
          "field": "Wire size",
          "value": "4",
          "label": "4 AWG"
        },
        {
          "field": "Wire size",
          "value": "3",
          "label": "3 AWG"
        },
        {
          "field": "Wire size",
          "value": "2",
          "label": "2 AWG"
        },
        {
          "field": "Wire size",
          "value": "1",
          "label": "1 AWG"
        },
        {
          "field": "Wire size",
          "value": "1/0",
          "label": "1/0 AWG"
        },
        {
          "field": "Wire size",
          "value": "2/0",
          "label": "2/0 AWG"
        },
        {
          "field": "Wire size",
          "value": "3/0",
          "label": "3/0 AWG"
        },
        {
          "field": "Wire size",
          "value": "4/0",
          "label": "4/0 AWG"
        }
      ],
      "sources": [
        {
          "note": "IRC 2021 Section E3904.6: “The maximum number of conductors installed in conduit or tubing shall be in accordance with Tables E3904.6(1) through E3904.6(10).” The ten tables are EMT, ENT, FMC, IMC, FNMC-B, FNMC-A, LFMC, RMC, PVC Schedule 80 and PVC Schedule 40, trade sizes 1/2 to 2 in (3/8 in for FNMC), 14 AWG to 4/0. Read November 3, 2026, in the Colorado adoption, and checked row by row the same day against the Utah adoption: identical.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/39/power-and-lighting-distribution"
        },
        {
          "note": "TW and THW from 14 to 8 AWG come from the row printed as TW, THHW, THW, THW-2; from 6 AWG up, from the row shared with RHH and RHW without outer covering. Where the published table repeats a size with two different counts or leaves it out (4/0 TW and RHW in FMC, 2/0 and 4/0 THHN in IMC), or prints a count that breaks its row (10 AWG RHW in FMC reads 14 in 1/2 in and 5 in 3/4 in; 8 AWG RHW in FNMC-B reads 1 in 2 in), the page gives no count.",
          "url": null
        },
        {
          "note": "Minimum size for a number of wires: the smallest trade size of the same conduit whose count is that number or more.",
          "url": null
        }
      ],
      "caveat": "The tables are for wires of one size and one type. Mixed sizes in one conduit need the wire and conduit areas of NEC Chapter 9, Tables 4 and 5, which the IRC does not print, so they are not in this calculator. Neither are data cable or conduit over 2 in.",
      "reviewed": "2026-11-03",
      "page": "https://yardsneeded.com/conduit-fill-calculator/"
    },
    {
      "id": "wire-size",
      "material": "Wire size",
      "sold_in": "wire gauge",
      "method": "wire_size_irc_e3705",
      "formula": "temperature column = the lower of the insulation rating (NM and UF 60 °C by E3705.4.4; THHN 90 °C) and the terminals (60 °C for circuits of 100 A or less, 75 °C over, E3705.4.1-4.2, or 75 °C where equipment is marked); size = the smallest in Table E3705.1 whose ampacity in that column is at least the amps and whose Table E3705.5.3 breaker limit (Cu 14/12/10 AWG 15/20/30 A, Al 12/10/8 AWG 15/25/30 A) is not under them",
      "options": [
        {
          "field": "Metal",
          "value": "cu",
          "label": "Copper"
        },
        {
          "field": "Metal",
          "value": "al",
          "label": "Aluminum or copper-clad aluminum"
        },
        {
          "field": "Cable or wire",
          "value": "nm",
          "label": "NM cable (Romex), NM-B"
        },
        {
          "field": "Cable or wire",
          "value": "uf",
          "label": "UF cable, underground feeder"
        },
        {
          "field": "Cable or wire",
          "value": "thhn",
          "label": "THHN or THWN-2 wires in conduit"
        },
        {
          "field": "Cable or wire",
          "value": "thwn",
          "label": "THWN, THW or XHHW wires"
        },
        {
          "field": "Breaker and equipment terminals",
          "value": "codigo",
          "label": "By the code: 60 °C up to 100 A, 75 °C over"
        },
        {
          "field": "Breaker and equipment terminals",
          "value": "75",
          "label": "Marked 75 °C (check the label)"
        }
      ],
      "sources": [
        {
          "note": "IRC 2021 Table E3705.1: allowable ampacity of copper and aluminum conductors 14 AWG to 900 kcmil at 60 °C (Types TW, UF), 75 °C (RHW, THHW, THW, THWN, USE, XHHW) and 90 °C (RHW-2, THHN, THHW, THW-2, THWN-2, XHHW, XHHW-2, USE-2). Read November 3, 2026, in the Colorado adoption, and checked the same day in the Virginia adoption.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/37/branch-circuit-and-feeder-requirements"
        },
        {
          "note": "Section E3705.4.4: “The allowable ampacity of Types NM and NMC cable shall not exceed that of 60°C (140°F) rated conductors.” Section E3705.4.1: terminals of circuits rated 100 amperes or less use the 60 °C ampacity unless the equipment is marked otherwise; E3705.4.2: over 100 amperes, 75 °C.",
          "url": "https://up.codes/viewer/colorado/irc-2021/chapter/37/branch-circuit-and-feeder-requirements"
        },
        {
          "note": "Table E3705.5.3: the largest breaker on 14, 12 and 10 AWG copper is 15, 20 and 30 A, and on 12, 10 and 8 AWG aluminum 15, 25 and 30 A. The column used is the lower of the wire's rating and the terminals'; the size is the smallest that reaches the amps in that column without passing its breaker limit.",
          "url": null
        }
      ],
      "caveat": "The ampacities are for up to three current-carrying conductors at 30 °C (86 °F). Hotter spaces and bundles of more conductors take the factors of Sections E3705.2 and E3705.3, voltage drop over long runs needs conductor resistances the IRC does not print, and dwelling services sized by the 83 percent rule of Table E3603.1 are not in this calculator.",
      "reviewed": "2026-11-03",
      "page": "https://yardsneeded.com/wire-size-calculator/"
    },
    {
      "id": "pool-volume",
      "material": "Pool volume",
      "sold_in": "gallons",
      "method": "pool_gallons_nist",
      "formula": "gallons = water surface (rectangle L × W; round π/4 × D²; oval with straight sides (L − W) × W + π/4 × W²) × average of shallow and deep depth in ft × 1,728 ÷ 231",
      "options": [
        {
          "field": "Shape",
          "value": "rectangular",
          "label": "Rectangle"
        },
        {
          "field": "Shape",
          "value": "redonda",
          "label": "Round (length = diameter)"
        },
        {
          "field": "Shape",
          "value": "oval",
          "label": "Oval with straight sides"
        }
      ],
      "sources": [
        {
          "note": "NIST Handbook 44-2026, Appendix C: “4 quarts = 1 gallon (gal) = 231 cubic inches”, “1 728 cubic inches (in3) = 1 cubic foot (ft3)” and, in the liquid volume table, 1 cubic foot = 7.480 519 gallons. Read November 3, 2026.",
          "url": "https://nvlpubs.nist.gov/nistpubs/hb/2026/NIST.HB.44-2026.pdf"
        },
        {
          "note": "Water surface: rectangle, length × width; round, π ÷ 4 × diameter²; oval with straight sides and round ends, (length − width) × width + π ÷ 4 × width². Depth: the average of the shallow and the deep end, exact for a floor that slopes evenly from one to the other.",
          "url": null
        }
      ],
      "caveat": "Kidney and free form pools have no single formula: measure them as rectangles and circles that add up to the outline and add the gallons. A pool with a hopper or a sudden drop to the deep end holds more than the average of the two depths.",
      "reviewed": "2026-11-03",
      "page": "https://yardsneeded.com/pool-volume-calculator/"
    },
    {
      "id": "pool-salt",
      "material": "Pool salt",
      "sold_in": "pounds and bags",
      "method": "pool_salt_by_cell_maker",
      "formula": "Hayward AquaRite: lb = gallons × (target − current ppm) ÷ 120,000, target 3,200 ppm; Pentair IntelliChlor: lb = gallons × 3.785411784 × (target − current ppm) ÷ 1,000,000 × 2.20462, target 3,600 ppm; rounded up; bags = lb ÷ bag weight, rounded up",
      "options": [
        {
          "field": "Salt cell",
          "value": "hayward",
          "label": "Hayward AquaRite (3,200 ppm)"
        },
        {
          "field": "Salt cell",
          "value": "pentair",
          "label": "Pentair IntelliChlor (3,600 ppm)"
        }
      ],
      "sources": [
        {
          "note": "Hayward: AquaRite owner's manual 092538 RevD: “The ideal salt level is between 2700-3400 ppm (parts per million) with 3200 ppm being optimal”, salt “usually available in 40-80 lb. bags”, and the table of pounds of salt needed for 3,200 ppm from 8,000 to 40,000 gallons, which is gallons × ppm to add ÷ 120,000 (20,000 gallons from 0 ppm: 533 lb). Read November 3, 2026.",
          "url": "https://hayward.com/media/akeneo_connector/asset_files/0/9/092538_RevD_b778.pdf"
        },
        {
          "note": "Pentair: IntelliChlor IC15, IC20, IC40 and IC60 installation and user's guide, P/N 520589 Rev. R 8/7/23: “Salt: 3600 - 4500 ppm (ideal 3600 ppm)”, and Table 2, pounds of salt to reach 3,600 ppm, 10,000 to 60,000 gallons (10,000 gallons from 0 ppm: 300.43 lb), which is gallons × 3.785 × ppm to add ÷ 1,000,000 kg in pounds. Read November 3, 2026.",
          "url": "https://www.pentair.com/content/dam/extranet/nam/pentair-pool/residential/sanitizers/intellichlor/intellichlor-installation-users-guide-ic15-ic20-ic40-ic60.pdf"
        },
        {
          "note": "Each cell keeps its own maker's target and table; they are not averaged. Pounds are rounded up to the whole pound and bags are the pounds divided by the weight on your bag, rounded up.",
          "url": null
        }
      ],
      "caveat": "Only Hayward AquaRite and Pentair IntelliChlor cells are in it, the two manuals read for this page. Other cells set their own target in their manual. Pentair asks for salt that is at least 99.8 percent sodium chloride, non-iodized and without anti-caking agents.",
      "reviewed": "2026-11-03",
      "page": "https://yardsneeded.com/pool-salt-calculator/"
    },
    {
      "id": "ac-btu",
      "material": "AC BTU",
      "sold_in": "BTU per hour",
      "method": "room_ac_btu_energy_star",
      "formula": "BTU per hour = ENERGY STAR chart row for the room area (a row runs from its figure up to the next, not including it); heavily shaded × 0.9 or very sunny × 1.1; + 600 per regular occupant over two; + 4,000 in a kitchen; 8 ft ceiling",
      "options": [
        {
          "field": "Sun",
          "value": "normal",
          "label": "Neither very sunny nor heavily shaded"
        },
        {
          "field": "Sun",
          "value": "sol",
          "label": "Very sunny"
        },
        {
          "field": "Sun",
          "value": "sombra",
          "label": "Heavily shaded"
        },
        {
          "field": "Kitchen",
          "value": "no",
          "label": "No"
        },
        {
          "field": "Kitchen",
          "value": "si",
          "label": "Yes, the unit cools a kitchen"
        }
      ],
      "sources": [
        {
          "note": "ENERGY STAR: Room Air Conditioners, “Properly Sized Room Air Conditioners”: 100 up to 150 sq ft, 5,000 BTU per hour; 150 up to 250, 6,000; 250 up to 300, 7,000; 300 up to 350, 8,000; 350 up to 400, 9,000; 400 up to 450, 10,000; 450 up to 550, 12,000; 550 up to 700, 14,000; 700 up to 1,000, 18,000; 1,000 up to 1,200, 21,000; 1,200 up to 1,400, 23,000; 1,400 up to 1,500, 24,000; 1,500 up to 2,000, 30,000; 2,000 up to 2,500, 34,000, for an 8 ft ceiling. Read November 3, 2026.",
          "url": "https://www.energystar.gov/products/room_air_conditioners"
        },
        {
          "note": "ENERGY STAR adjustments: “If the room is heavily shaded, reduce capacity by 10 percent.” “If the room is very sunny, increase capacity by 10 percent.” “If more than two people regularly occupy the room, add 600 BTUs for each additional person.” “If the unit is used in a kitchen, increase capacity by 4,000 BTUs.”",
          "url": "https://www.energystar.gov/products/room_air_conditioners"
        },
        {
          "note": "Where the chart leaves it open, this page decides and says so: a row runs from its figure up to the next without including it (150 sq ft is the 150 up to 250 row), the percent goes first and the additions after, and under 100 sq ft it uses the smallest row.",
          "url": null
        }
      ],
      "caveat": "The chart is for room air conditioners and an 8 ft ceiling. It says nothing about mini splits or central air for a whole house, and it stops at 2,500 sq ft, so neither is in this calculator.",
      "reviewed": "2026-11-03",
      "page": "https://yardsneeded.com/ac-btu-calculator/"
    },
    {
      "id": "expansion-tank",
      "material": "Expansion tank",
      "sold_in": "gallons of tank volume",
      "method": "expansion_tank_amtrol",
      "formula": "expanded gal = heater gal × AMTROL Table 1 expansion factor for the heater setting from 40°F water (100°F .0062, 120°F .0100, 130°F .0124, 140°F .0150, 150°F .0179, 160°F .0209, 170°F .0242, 180°F .0276), to the tenth; design pressure factor = (max psi + 14.7) ÷ (max psi − line psi), to the tenth (Table 2); tank volume gal = expanded × factor, to the tenth; air charge = static line pressure",
      "options": [
        {
          "field": "Water heater setting",
          "value": "100",
          "label": "100°F"
        },
        {
          "field": "Water heater setting",
          "value": "120",
          "label": "120°F"
        },
        {
          "field": "Water heater setting",
          "value": "130",
          "label": "130°F"
        },
        {
          "field": "Water heater setting",
          "value": "140",
          "label": "140°F"
        },
        {
          "field": "Water heater setting",
          "value": "150",
          "label": "150°F"
        },
        {
          "field": "Water heater setting",
          "value": "160",
          "label": "160°F"
        },
        {
          "field": "Water heater setting",
          "value": "170",
          "label": "170°F"
        },
        {
          "field": "Water heater setting",
          "value": "180",
          "label": "180°F"
        }
      ],
      "sources": [
        {
          "note": "AMTROL, Sizing the Therm-X-Trol, Table 1 Expansion Factor, based on 40°F incoming water: 100°F .0062, 120°F .0100, 130°F .0124, 140°F .0150, 150°F .0179, 160°F .0209, 170°F .0242, 180°F .0276. “Tv = Design Pressure Factor x expanded water.” Read November 7, 2026.",
          "url": "https://res.cloudinary.com/dzhpkjoqj/Amtrol/9017-112-03_19-MC10007-Sizing-TXT_cepv3g.pdf"
        },
        {
          "note": "AMTROL, Table 2: DPF = (Max. Allow. Pressure + 14.7) ÷ (Max. Allow. Pressure − Line Pressure), “For conditions not shown in table, use equation.” “The Therm-X-Trol air pressure should be equal to static line pressure.” “Standard Therm-X-Trol tanks are shipped at 40 psi.”",
          "url": "https://res.cloudinary.com/dzhpkjoqj/Amtrol/9017-112-03_19-MC10007-Sizing-TXT_cepv3g.pdf"
        },
        {
          "note": "As on the AMTROL worksheet, the expanded water and the pressure factor are rounded to the tenth before multiplying; its own example, 240 gallons at 150°F with 125 and 60 psi, gives 4.3 × 2.1 = 9.0 gallons here too. Only the Table 1 temperatures are offered: they are not interpolated.",
          "url": null
        }
      ],
      "caveat": "AMTROL's factors start from 40°F incoming water, so warmer water expands less than shown. A tank has to meet both figures, the total volume and the expanded water it accepts, so check both on the model's data sheet.",
      "reviewed": "2026-11-07",
      "page": "https://yardsneeded.com/expansion-tank-calculator/"
    },
    {
      "id": "tankless-water-heater-size",
      "material": "Tankless water heater size",
      "sold_in": "gpm at a temperature rise",
      "method": "tankless_gpm_rise_doe",
      "formula": "gpm = showers × shower gpm (2.5 default) + tubs × 4.0 + kitchen sinks × 2.5 + laundry sinks × 4.0 + dishwashers × 1.9 (DOE Building America 2012 Table 2, ASPE 2006; tub at the top of 2.4-4.0); rise °F = hot water temperature (120 default) − incoming water temperature",
      "options": [],
      "sources": [
        {
          "note": "DOE Building America, Measure Guideline: Transitioning to a Tankless Water Heater, 2012: “The size is based on the maximum temperature rise … needed and the maximum flow rate (gpm) demanded,” the rise running from the cold inlet to the hot outlet. “The desired output temperature is 120°F for most uses.” Table 2 (ASPE 2006): bathtub 2.4 to 4.0 gpm, shower 2.5, kitchen sink 2.5, laundry sink 4.0, dishwasher 1.9. Read November 7, 2026.",
          "url": "https://www1.eere.energy.gov/buildings/publications/pdfs/building_america/measure_guide_tanklesswh.pdf"
        },
        {
          "note": "10 CFR 430.32(p): showerheads made after January 1, 1994, at most 2.5 gallons per minute at a flowing pressure of 80 psi; 430.32(o): lavatory and kitchen faucets 2.2 gpm at 60 psi. Read November 7, 2026.",
          "url": "https://www.law.cornell.edu/cfr/text/10/430.32"
        },
        {
          "note": "A tub is counted at 4.0 gpm, the top of its 2.4 to 4.0 range, because the heater is sized for the peak. The page gives the flow and the rise, the two numbers a maker's flow chart is read with, as the guide sizes by them.",
          "url": null
        }
      ],
      "caveat": "The guide takes the incoming temperature from your water utility as a minimum value, so the coldest month sizes the heater. Faucets made since 1994 are capped at 2.2 gpm at 60 psi (10 CFR 430.32), under the 2.5 gpm the chart gives a kitchen sink.",
      "reviewed": "2026-11-07",
      "page": "https://yardsneeded.com/tankless-water-heater-size-calculator/"
    },
    {
      "id": "ceiling-fan-size",
      "material": "Ceiling fan size",
      "sold_in": "inches of blade span",
      "method": "ceiling_fan_size_energy_star",
      "formula": "blade span = ENERGY STAR / American Lighting Association 2003 row for length × width: up to 75 sq ft 29-36 in, 76-144 sq ft 36-42 in, 144-225 sq ft 44 in, 225-400 sq ft 50-54 in (144 and 225 on both rows); ceiling under 8 ft hugger mount, 8 to 9 ft standard 3-5 in downrod, 9 ft or more drop = ceiling − 9 to ceiling − 8 ft; blades at least 7 ft above the floor and 18 in from the walls",
      "options": [],
      "sources": [
        {
          "note": "ENERGY STAR, Ceiling Fan Basics, suggested fan size: up to 75 sq ft, 29 to 36 in; 76 to 144 sq ft, 36 to 42 in; 144 to 225 sq ft, 44 in; 225 to 400 sq ft, 50 to 54 in (American Lighting Association, 2003). Read November 7, 2026.",
          "url": "https://www.energystar.gov/products/ceiling_fans/ceiling_fan_basics"
        },
        {
          "note": "ENERGY STAR mounting: “at least 7 feet above the floor and 18 inches from the walls. If ceiling height allows, install the fan 8 - 9 feet above the floor for optimal airflow.” “Standard mounts come with a 3 – 5 inch downrod.” “Downrods can be purchased from 6 inches (9 ft ceiling) to 120 inches (20 ft ceiling).” “Hugger fans are ideal for rooms that have ceilings under 8 feet.”",
          "url": "https://www.energystar.gov/products/ceiling_fans/ceiling_fan_basics"
        },
        {
          "note": "Where the chart leaves it open, this page decides and says so: a room of exactly 144 or 225 sq ft sits on two rows and gets both, between 75 and 76 sq ft it takes the 76 to 144 row, and the drop from the ceiling is the ceiling height less 8 to 9 ft.",
          "url": null
        }
      ],
      "caveat": "The chart stops at 400 sq ft, a 20 × 20 ft room, and so does this calculator. Under 8 ft a hugger fan sits flush, and ENERGY STAR notes it moves less air than a regular fan because its blades are closer to the ceiling.",
      "reviewed": "2026-11-07",
      "page": "https://yardsneeded.com/ceiling-fan-size-calculator/"
    },
    {
      "id": "dehumidifier-size",
      "material": "Dehumidifier size",
      "sold_in": "pints per day",
      "method": "dehumidifier_pints_energy_star",
      "formula": "pints per day = ENERGY STAR row for the condition or measured relative humidity (50-75% 20-30, 75-90% 25-40, 90-100% 30-50 under 2,000 sq ft; 30+, 40+, 50+ at 2,000 sq ft or more); 75 and 90% take the wetter row; below 65°F a low temperature model",
      "options": [
        {
          "field": "How damp it is",
          "value": "humedo",
          "label": "Slightly to moderately damp: musty smell now and then (50-75%)"
        },
        {
          "field": "How damp it is",
          "value": "muy",
          "label": "Very damp: smells damp, damp spots on walls and floor (75-90%)"
        },
        {
          "field": "How damp it is",
          "value": "mojado",
          "label": "Wet: walls or floor sweat, seepage, laundry drying (90-100%)"
        }
      ],
      "sources": [
        {
          "note": "ENERGY STAR, Dehumidifiers, recommended capacity range in pints per day, small to medium room (under 2,000 sq ft) and large room (over 2,000 sq ft): slightly to moderately damp, 50 to 75% relative humidity, 20 to 30 and 30+; very damp, 75 to 90%, 25 to 40 and 40+; wet, 90 to 100%, 30 to 50 and 50+. Read November 7, 2026.",
          "url": "https://www.energystar.gov/products/dehumidifiers"
        },
        {
          "note": "ENERGY STAR: “Use the charts below to estimate the minimum capacity for your portable dehumidifier.” “It’s better to oversize than undersize!” Where temperatures typically fall below 65°F, consider a product specified for use at lower temperatures.",
          "url": "https://www.energystar.gov/products/dehumidifiers"
        },
        {
          "note": "A humidity of exactly 75 or 90 percent is on two rows, and exactly 2,000 sq ft on both room sizes: this page takes the wetter row and the large room, as the guide says to oversize rather than undersize. A humidity you measured picks the row over the description.",
          "url": null
        }
      ],
      "caveat": "The chart is for portable dehumidifiers; ENERGY STAR sizes whole home units in a separate guide. It also notes that capacity options have changed with a new DOE rating method: the pints here are the current ratings.",
      "reviewed": "2026-11-07",
      "page": "https://yardsneeded.com/dehumidifier-size-calculator/"
    },
    {
      "id": "water-heater-size",
      "material": "Water heater size",
      "sold_in": "gallons of first hour rating",
      "method": "water_heater_fhr_ahri",
      "formula": "peak hour gallons = Σ uses in the busiest hour × AHRI gallons per use (shower 20, bath 20, shave 2, hand and face wash 4, shampoo 4, hand dishwashing 4, dishwasher 14, food preparation 5, clothes washer 32); first hour rating at least that",
      "options": [],
      "sources": [
        {
          "note": "AHRI, Worksheet for Estimating Peak Hour Demand/First Hour Rating, average gallons of hot water per use: shower 20, bath 20, shaving 2, hands and face washing 4, hair shampoo 4, hand dishwashing 4, automatic dishwasher 14, food preparation 5, wringer clothes washer 26, automatic clothes washer 32. Read November 7, 2026.",
          "url": "https://www.ahrinet.org/sites/default/files/2022-10/Water%20Heater%20worksheet.pdf"
        },
        {
          "note": "AHRI's example: 3 showers 60, 1 shave 2, 1 shampoo 4, 1 hand dishwashing 4, “Peak Hour Demand = 70.” “The above worksheet assumes no water conservation measures.”",
          "url": "https://www.ahrinet.org/sites/default/files/2022-10/Water%20Heater%20worksheet.pdf"
        },
        {
          "note": "The wringer washer, 26 gallons, is on the worksheet but not in the calculator. Every gallon figure here is AHRI's; none comes from another method.",
          "url": null
        }
      ],
      "caveat": "The worksheet assumes no water conservation measures, so low flow showerheads use less than it counts. A first hour rating is the figure for a tank water heater; a tankless one is sized by flow and temperature rise instead.",
      "reviewed": "2026-11-07",
      "page": "https://yardsneeded.com/water-heater-size-calculator/"
    }
  ]
}
