{
  "slug": "ductwork-replacement-cost",
  "title": "Ductwork Replacement Cost Calculator",
  "heading": "Ductwork Replacement Cost Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/ductwork-replacement-cost",
  "summary": "Whole-home duct replacement cost by linear feet, register count, and access difficulty.",
  "description": "Replacing ductwork is priced by linear feet of trunk and branch runs plus a per-register charge for boots, grilles, and balancing. The biggest swing factor is access: an open basement or unfinished attic is straightforward, while running new duct through finished walls and tight crawl spaces can double the labor. Material choice matters too — insulated flex is fastest and cheapest for branch runs, sheet metal costs more but performs better in high-static systems and lasts far longer. This calculator prices duct runs, registers, sealing, and optional drywall repair. 2026 US national averages run roughly $25-$55 per linear foot installed, so a typical 1,800 square foot home replacement often lands between $6,000 and $14,000.",
  "formula": "Cost = (Duct LF × Rate × Material Factor × Access Factor) + (Registers × Register Cost) + Sealing + Drywall Repair.",
  "dateModified": "2026-09-06",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=ductwork-replacement-cost",
  "inputs": [
    {
      "id": "ductFt",
      "label": "Total duct run",
      "kind": "number",
      "hint": null,
      "default": 220,
      "unit": "linear ft",
      "min": 20,
      "max": 2000
    },
    {
      "id": "rate",
      "label": "Base rate per linear ft",
      "kind": "number",
      "hint": null,
      "default": 30,
      "unit": "$",
      "min": 10,
      "max": 90
    },
    {
      "id": "material",
      "label": "Duct material",
      "kind": "select",
      "hint": null,
      "default": "1",
      "options": [
        {
          "value": "0.85",
          "label": "Insulated flex"
        },
        {
          "value": "1",
          "label": "Mixed flex + metal trunk"
        },
        {
          "value": "1.35",
          "label": "All sheet metal"
        }
      ]
    },
    {
      "id": "access",
      "label": "Access",
      "kind": "select",
      "hint": null,
      "default": "1",
      "options": [
        {
          "value": "0.9",
          "label": "Open basement / unfinished attic"
        },
        {
          "value": "1",
          "label": "Typical mixed access"
        },
        {
          "value": "1.4",
          "label": "Crawl space or finished walls"
        }
      ]
    },
    {
      "id": "registers",
      "label": "Supply + return registers",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": null,
      "min": 1,
      "max": 60
    },
    {
      "id": "registerCost",
      "label": "Cost per register (boot + grille)",
      "kind": "number",
      "hint": null,
      "default": 110,
      "unit": "$",
      "min": 30,
      "max": 400
    },
    {
      "id": "drywall",
      "label": "Drywall / finish repair",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": "$",
      "min": 0,
      "max": 6000
    }
  ],
  "outputs": [
    {
      "id": "totalCost",
      "label": "Total ductwork replacement cost",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "ductCost",
      "label": "Duct runs",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "registerTotal",
      "label": "Registers, boots, grilles",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "sealing",
      "label": "Mastic sealing + testing",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "perFoot",
      "label": "Cost per linear ft",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Total duct run: 220 linear ft",
      "Base rate per linear ft: 30 $",
      "Duct material: Mixed flex + metal trunk",
      "Access: Typical mixed access",
      "Supply + return registers: 12",
      "Cost per register (boot + grille): 110 $",
      "Drywall / finish repair: 0 $"
    ],
    "outputs": [
      "Total ductwork replacement cost: $8,470",
      "Duct runs: $6,600",
      "Registers, boots, grilles: $1,320",
      "Mastic sealing + testing: $550",
      "Cost per linear ft: $38.50"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter total duct run (linear ft).",
      "Enter base rate per linear ft ($).",
      "Enter duct material.",
      "Enter access.",
      "Enter supply + return registers.",
      "Enter cost per register (boot + grille) ($).",
      "Enter drywall / finish repair ($).",
      "Read your total ductwork replacement cost on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "ductFt": 130,
        "rate": 30,
        "material": "1",
        "access": "1",
        "registers": 7,
        "registerCost": 65,
        "drywall": 0
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "ductFt": 220,
        "rate": 30,
        "material": "1",
        "access": "1",
        "registers": 12,
        "registerCost": 110,
        "drywall": 0
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "ductFt": 350,
        "rate": 30,
        "material": "1",
        "access": "1",
        "registers": 19,
        "registerCost": 175,
        "drywall": 0
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Do I need to replace all the ductwork?",
      "a": "Often not. If the trunk lines are sound sheet metal, replacing only failing flex branches, sealing joints with mastic, and adding returns delivers most of the performance gain for a fraction of the cost."
    },
    {
      "q": "How do I know my ducts are the problem?",
      "a": "Rooms that never reach setpoint, high energy bills with a healthy system, visible disconnected flex in the attic, and a failed duct leakage test all point at distribution rather than equipment."
    },
    {
      "q": "Should duct replacement happen with a new furnace or AC?",
      "a": "If both are due, yes — the contractor is already in the system, and matching duct sizing to the new equipment's airflow is the only way to get the efficiency you paid for."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/attic-blown-in-insulation-cost",
    "https://www.revenuelab.fyi/toolbox/crawl-space-encapsulation-cost"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Ductwork Replacement Cost Calculator (https://www.revenuelab.fyi/toolbox/ductwork-replacement-cost)"
}