{
  "id": "duct-size",
  "version": "4c339de4f6aa",
  "status": "published",
  "name": "Duct Size Calculator",
  "question": "What duct size do I need?",
  "summary": "Duct calculator: the round duct size for an airflow in CFM by the equal-friction method or a target velocity, with the velocity, the friction rate and the equivalent rectangular duct.",
  "category": "construction",
  "subcategory": "materials",
  "url": "https://www.acalculator.org/construction/duct-size-calculator",
  "markdown": "https://www.acalculator.org/construction/duct-size-calculator.md",
  "kind": "function",
  "method": "Velocity method: D = √(4Q ÷ (πV)). Friction method: the D where f × ρ ÷ 2 × V² ÷ D equals the friction rate, with V = 4Q ÷ (πD²) and f from Colebrook–White. Rectangle: b with 1.30 (ab)^0.625 ÷ (a + b)^0.25 = D.",
  "assumptions": [
    "Standard air at 20 °C: density 1.2041 kg/m³, kinematic viscosity 15.06 × 10⁻⁶ m²/s.",
    "Round galvanized steel duct, absolute roughness 0.15 mm. Flex duct is rougher and needs a larger size.",
    "Straight duct only: fittings add pressure drop, which the friction rate you choose has to allow for."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "cfm": {
        "title": "Airflow (CFM)",
        "description": "The air the duct must carry, in cubic feet per minute.",
        "type": "number",
        "minimum": 1,
        "maximum": 1000000
      },
      "by": {
        "title": "Size by",
        "description": "A friction rate (equal friction), or a target air velocity.",
        "type": "string",
        "enum": [
          "friction",
          "velocity"
        ]
      },
      "fr": {
        "title": "Friction rate, in. w.c. per 100 ft",
        "description": "The pressure drop allowed per 100 ft of straight duct, in inches of water; 0.08 to 0.1 is usual for homes.",
        "type": "number",
        "minimum": 0.001,
        "maximum": 10
      },
      "v": {
        "title": "Velocity, ft/min",
        "description": "The air speed you want in the duct, in feet per minute.",
        "type": "number",
        "minimum": 10,
        "maximum": 20000
      },
      "a": {
        "title": "Rectangular duct side",
        "description": "One side of a rectangular duct, to find the other side with the same friction. Leave empty to skip.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.01,
        "maximum": 5
      }
    }
  },
  "outputs": {
    "diameter": {
      "label": "Round duct diameter",
      "description": "The exact diameter for the airflow.",
      "format": "quantity",
      "unit": "in"
    },
    "roundUp": {
      "label": "Next whole inch",
      "description": "The diameter rounded up to a whole inch.",
      "format": "integer"
    },
    "velocity": {
      "label": "Velocity",
      "description": "Airflow ÷ the duct area, in feet per minute.",
      "format": "number"
    },
    "rate": {
      "label": "Friction rate",
      "description": "The pressure drop per 100 ft at this diameter, in inches of water.",
      "format": "number"
    },
    "pam": {
      "label": "Friction rate, Pa/m",
      "description": "The same pressure drop in pascals per metre.",
      "format": "number"
    },
    "reynolds": {
      "label": "Reynolds number",
      "description": "Velocity × diameter ÷ kinematic viscosity.",
      "format": "number"
    },
    "other": {
      "label": "Other rectangular side",
      "description": "The side b that gives the round diameter by the Huebscher formula with the side you typed.",
      "format": "quantity",
      "unit": "in"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "cfm": 400,
      "by": "friction",
      "fr": 0.08,
      "v": 700
    },
    "outputs": {
      "diameter": 0.25938623805204636,
      "roundUp": 11,
      "velocity": 703.2442247108152,
      "rate": 0.07999999999999992,
      "pam": 0.653776666666666,
      "reynolds": 61530.69849324016
    },
    "text": "Use a 10.21 in round duct (11 in rounded up): 703 ft/min at 0.08 in. w.c. per 100 ft."
  },
  "examples": [
    {
      "given": {
        "cfm": 400,
        "by": "friction",
        "fr": 0.08
      },
      "expect": {
        "diameter": 0.25938623805204636,
        "roundUp": 11
      },
      "source": "Wikipedia, Darcy–Weisbach equation (Δp ÷ L = f × ρ ÷ 2 × V² ÷ D), https://en.wikipedia.org/wiki/Darcy%E2%80%93Weisbach_equation, and Darcy friction factor formulae (Colebrook–White, f = 64 ÷ Re below Re 2,300), https://en.wikipedia.org/wiki/Darcy_friction_factor_formulae (retrieved 2026-10-03); Wikipedia, Density of air (1.2041 kg/m³ at 20 °C, 101.325 kPa), https://en.wikipedia.org/wiki/Density_of_air; Engineering ToolBox, Air – Dynamic and Kinematic Viscosity (15.06 × 10⁻⁶ m²/s at 20 °C), https://www.engineeringtoolbox.com/air-absolute-kinematic-viscosity-d_601.html; Engineering ToolBox, Surface Roughness of Ventilation Ducts (galvanized steel 0.15 mm), https://www.engineeringtoolbox.com/surface-roughness-ventilation-ducts-d_209.html (retrieved 2026-10-03); Python 3 bisection with Colebrook, written from content.mdx (docs/progress/WP-102/xcheck.py): 10.2121 in",
      "tolerance": 1e-9
    },
    {
      "given": {
        "cfm": 100,
        "by": "friction",
        "fr": 0.08
      },
      "expect": {
        "diameter": 0.15463656047193047,
        "roundUp": 7
      },
      "source": "Wikipedia, Darcy–Weisbach equation (Δp ÷ L = f × ρ ÷ 2 × V² ÷ D), https://en.wikipedia.org/wiki/Darcy%E2%80%93Weisbach_equation, and Darcy friction factor formulae (Colebrook–White, f = 64 ÷ Re below Re 2,300), https://en.wikipedia.org/wiki/Darcy_friction_factor_formulae (retrieved 2026-10-03); Wikipedia, Density of air (1.2041 kg/m³ at 20 °C, 101.325 kPa), https://en.wikipedia.org/wiki/Density_of_air; Engineering ToolBox, Air – Dynamic and Kinematic Viscosity (15.06 × 10⁻⁶ m²/s at 20 °C), https://www.engineeringtoolbox.com/air-absolute-kinematic-viscosity-d_601.html; Engineering ToolBox, Surface Roughness of Ventilation Ducts (galvanized steel 0.15 mm), https://www.engineeringtoolbox.com/surface-roughness-ventilation-ducts-d_209.html (retrieved 2026-10-03); Python 3 bisection with Colebrook, written from content.mdx (docs/progress/WP-102/xcheck.py): 6.0881 in",
      "tolerance": 1e-9
    },
    {
      "given": {
        "cfm": 400,
        "by": "velocity",
        "v": 700,
        "a": 0.254
      },
      "expect": {
        "diameter": 0.2599866198250679,
        "v": 700,
        "other": 0.2229248585480042
      },
      "source": "Wikipedia, Darcy–Weisbach equation (Δp ÷ L = f × ρ ÷ 2 × V² ÷ D), https://en.wikipedia.org/wiki/Darcy%E2%80%93Weisbach_equation, and Darcy friction factor formulae (Colebrook–White, f = 64 ÷ Re below Re 2,300), https://en.wikipedia.org/wiki/Darcy_friction_factor_formulae (retrieved 2026-10-03); Engineering ToolBox, Equivalent Diameter (Huebscher: de = 1.30 (a b)^0.625 ÷ (a + b)^0.25; 300 × 500 mm gives 420 mm), https://www.engineeringtoolbox.com/equivalent-diameter-d_205.html (retrieved 2026-10-03); hand calculation in content.mdx: area 400 ÷ 700 = 0.5714 ft²; √(4 × 0.5714 ÷ π) = 0.853 ft = 10.24 in; Huebscher with a = 10 in gives b = 8.78 in",
      "tolerance": 1e-9
    }
  ],
  "sources": [
    "Wikipedia, Darcy–Weisbach equation: Δp ÷ L = f × ρ ÷ 2 × V² ÷ D, retrieved 2026-10-03. https://en.wikipedia.org/wiki/Darcy%E2%80%93Weisbach_equation",
    "Wikipedia, Darcy friction factor formulae: Colebrook–White 1/√f = −2 log(ε ÷ 3.7D + 2.51 ÷ (Re √f)); laminar f = 64 ÷ Re below about Re 2,300, retrieved 2026-10-03. https://en.wikipedia.org/wiki/Darcy_friction_factor_formulae",
    "Wikipedia, Density of air: dry air 1.2041 kg/m³ at 20 °C and 101.325 kPa, retrieved 2026-10-03. https://en.wikipedia.org/wiki/Density_of_air",
    "Engineering ToolBox, Air – Dynamic and Kinematic Viscosity: 15.06 × 10⁻⁶ m²/s at 20 °C, retrieved 2026-10-03. https://www.engineeringtoolbox.com/air-absolute-kinematic-viscosity-d_601.html",
    "Engineering ToolBox, Surface Roughness of Ventilation Ducts: galvanized steel 0.15 mm, retrieved 2026-10-03. https://www.engineeringtoolbox.com/surface-roughness-ventilation-ducts-d_209.html",
    "Engineering ToolBox, Equivalent Diameter: Huebscher de = 1.30 (a b)^0.625 ÷ (a + b)^0.25; 300 × 500 mm gives 420 mm, retrieved 2026-10-03. https://www.engineeringtoolbox.com/equivalent-diameter-d_205.html"
  ],
  "related": [
    "cfm",
    "btu",
    "pipe-volume"
  ],
  "changelog": []
}
