Independent guide · we don’t clean ducts

Duct Cleaning Cost Calculator

Direct answer

Enter your home size, vent counts and a few details about the ductwork, and this calculator returns a low, typical and high planning figure. It averages the two pricing methods the industry actually publishes — per vent and per square foot — adds a flat amount for each heating and cooling system beyond the first, then applies a single combined job-difficulty adjustment that is capped. It is an editorial planning model, not a quote, and it deliberately adds nothing for suspected mold.

Estimate your duct cleaning cost

Nothing is stored and no email address is required. Every field is optional except home size — leave a field alone and the calculator uses a typical value.

Optional add-ons

How to count your supply and return vents

This is the input that most changes your result, and it is the one people get wrong. It takes about ten minutes and a phone.

Turn the system on first

Set the thermostat so the blower runs continuously — most thermostats have a fan setting of “on” as opposed to “auto.” Every vent in the house is now either pushing air out or pulling air in, which makes them trivial to tell apart. Hold a single sheet of tissue paper up to each one. If it blows away from the vent, that is a supply. If it sticks to the vent, that is a return.

Counting supply vents

Supply vents deliver conditioned air to rooms. They are usually the smaller openings, and they usually have adjustable louvers or a lever you can slide to close them — that adjustable cover is properly called a register.

  • Walk every room and count every opening, including ones you never think about: hallways, closets with a vent, bathrooms, laundry rooms, the landing at the top of the stairs.
  • Large rooms frequently have two or three. Count them separately, because the contractor will.
  • Check the floor and the ceiling and the low wall positions. Many homes mix them, especially after a remodel.
  • Include the basement and any finished attic or bonus room. Include a heated garage if it is on the same system.
  • In an unfinished basement, look for open duct branches ending in a floor boot above you — those are supplies to the floor above and are already counted from upstairs. Do not count them twice.
  • A rough sanity check: most homes have between one and one and a half supply vents per room. A 1,800 square foot house typically lands somewhere around 10 to 14.

Counting return vents

Return vents pull air back to the air handler. They are the ones people forget, and they cost more to clean.

  • Returns are noticeably larger than supplies and usually have a fixed cover with no damper — that fixed cover is a grille.
  • Look in central hallways, at the top or bottom of stairs, and in the wall or ceiling near the thermostat. Many single-system homes have exactly one large central return.
  • If a grille has a filter sitting directly behind it, it is a return. That is the most reliable single tell in the house.
  • Two-story homes often have one return per floor. Some homes have a return in each bedroom.
  • Most homes have between one and four. If you counted zero, look again near the air handler itself, where the return may enter through a filter cabinet rather than a wall grille.

Three things that look like vents and are not

Bathroom exhaust fans vent outdoors and are not connected to your heating and cooling ductwork. Range hoods are the same. Dryer vents are a separate duct entirely — a genuine fire-safety concern, but a different service, priced separately as an add-on in this calculator, and worth deciding on its own evidence rather than as a bundle. None of these belongs in your supply or return count.

Counting heating and cooling systems

Count air handlers or furnaces, not thermostats. Two thermostats can control a single system through zoning dampers, and that is one system, not two. Look for a second furnace or air handler in a second location — an attic unit serving an upper floor alongside a basement unit is the common pattern. A separate mini-split head on a wall is usually ductless and is not part of a duct cleaning job at all — which is one of the reasons an apartment or a condominium may have nothing here to price.

Get this right, but do not agonize over it. The calculator adds a flat $150 to $350 for each system beyond the first, rather than multiplying your whole estimate, because your vent count has already told it how much ductwork there is. What a second system genuinely adds is a second air handler, blower and coil to clean, plus a second setup. Contractors still quote per system, so the number matters on the phone even where it moves our estimate less than you might expect.

What the estimate includes and what it does not

Scope of the planning estimate this calculator produces
Included in the estimateNot included
Cleaning of supply and return ductwork for the number of systems you enter Mold remediation. Deliberately excluded — see below
Adjustment for home size, stories, access, duct construction and soiling level Duct repair, replacement, or replacing wet fiberglass duct liner
Duct sanitizing, if you check that box Duct sealing — a different service with a different purpose
Dryer vent cleaning at the same visit, if you check that box Any regional adjustment. We have not researched local pricing
A $200 floor reflecting the only published minimum service charge Coil or blower cleaning billed as separate line items, and HVAC repairs

One scope question the calculator cannot answer for you: whether a given contractor’s price includes the air handler, blower and evaporator coil. That single distinction is the main reason published averages disagree by hundreds of dollars, and we explain it in full on the main cost page. Everything else we publish about pricing — the mold-cost refusal, the methodology, the short answers — is collected in the cost section.

The rates this calculator uses

Every rate below is either sourced or explicitly marked as our assumption. Nothing is hidden in the JavaScript.

Rates used by the DuctCleaning.ws cost calculator, and the evidence behind each
InputRate usedEvidence
Each supply vent$25 – $50Published by Angi, HomeAdvisor, Fixr, This Old House, Forbes, NerdWallet and Today’s Homeowner. The best-supported figure in the published record.
Each return vent$40 – $75Published by This Old House and Fixr only. Two sources.
Per square foot (cross-check)$0.15 – $0.30 normally; $0.40 only on hard jobsPublished range across Angi, Fixr, This Old House, HomeGuide and Forbes. Sources describe $0.40 as the top end for large or difficult jobs, so we apply it only when the inputs describe one — difficult access, heavy contamination, or 3,000+ sq ft. Applying it to every job and then adding a difficulty adjustment on top counted difficulty twice.
Minimum job charge$200Published by Forbes Home only. Stanley Steemer confirms minimums exist but publishes no figure.
Each additional system+$150 – $350 (flat)Editorial assumption. Deliberately a flat addition, not a multiplier. Your vent counts already cover the whole house, so the ductwork is already priced; a second system adds another air handler, blower and coil to clean, plus setup. Multiplying would count the same house twice.
Two or more stories+10% – +15%Editorial assumption. Only Today’s Homeowner tables a story effect (about ×1.4), but that figure is confounded with home size, which this calculator already counts. We use a smaller factor to avoid double-counting.
Difficult access+20%Editorial assumption. Four sources say difficult access raises cost; none publishes a number.
Flexible or fiberglass-lined duct+10%Editorial assumption. Four sources say flexible duct takes more care; none publishes a differential.
Heavier contamination+15% – +35%Editorial assumption. Sources agree heavier soiling costs more; none quantifies it.
How those four difficulty factors combineAdded, then capped at +60%Editorial method. Stories, access, duct construction and contamination all describe the same thing — how awkward the job is. Multiplying them together compounds into figures no published source supports, so we add them and cap the total at +60%.
Duct sanitizing add-on+$75 – $250Forbes ($75–$150), Bob Vila ($100–$250), Housecall Pro ($75–$200).
Dryer vent at the same visit+$40 – $100Forbes bundled pricing. Standalone dryer vent cleaning costs more, roughly $100–$200.
Suspected moldNo price addedDeliberate. Published “mold” figures span $500–$10,000 across eight sources — a twentyfold spread — and they describe whole-house mold remediation, not a duct-cleaning add-on. Quoting a number here would be false precision.

One row in that table needs its condition spelled out. The per-square-foot rate is $0.15 to $0.30 on an ordinary job. The $0.40 top end is reserved for large or difficult jobs, which is the condition the published sources attach to it, and this calculator applies it only where your own inputs describe such a job: difficult access, heavy contamination, or a home of 3,000 square feet or more. On every other job the high rate is $0.30. Why that condition was added on 15 August 2026 is set out on the methodology page.

Worked examples

These three examples use the exact model above, with the arithmetic shown so you can check it by hand. All figures are example calculations, not quotes. Example calculation

First correction, 15 August 2026: how systems and difficulty are applied

Two parts of this model used to work differently, and every example below has been recalculated. Additional systems used to multiply the estimate — ×1.70 for a second system — and now add a flat $150 to $350 instead, because the calculator already asks for every vent in the house and multiplying counted the same ductwork a second time. The four job-difficulty factors used to be multiplied together, and are now added and capped at +60%, because compounding them produced totals nothing in the published record supports. The methodology page sets out both changes and the reasoning.

Second correction, 15 August 2026: the $0.40 square-foot rate was being applied to every job

A second double-count, found in the same review and structurally identical to the first. The model took $0.40 per square foot as the top of its range on every job — but $0.40 is documented as the rate for large or difficult jobs — and then applied a job-difficulty adjustment of up to +60% on top of it. Difficulty was being counted twice, once inside the rate and once outside it.

The high square-foot rate is now $0.30 on an ordinary job, and $0.40 only where the job is genuinely hard: difficult access, or heavy contamination, or 3,000 square feet and above. Small and typical homes came down as a result — the 1,000 square foot example below moved from $280 typical to $250, and the 1,800 square foot example from $640 to $580. Large and difficult jobs are unchanged, because they were the jobs the $0.40 rate was always meant for.

The fix carries a new judgment of its own, and it should be named rather than buried: we had to decide what counts as “hard.” Difficult access, heavy contamination and 3,000 square feet are our thresholds, not anyone’s published test, and a house at 2,900 square feet with awkward-but-not-difficult access sits just outside them. The methodology page sets out both corrections in full.

Example 1 — small home, 1,000 sq ft, one system

Six supply vents, one return, one story, easy access (open basement, exposed runs), rigid sheet metal duct, light contamination.

  • Per-vent method: (6 × $25) + (1 × $40) = $190 low; (6 × $50) + (1 × $75) = $375 high.
  • Per-square-foot method: easy access, light soiling and 1,000 square feet, so this is not a hard job and the high rate is $0.30 rather than $0.40. 1,000 × $0.15 = $150 low; 1,000 × $0.30 = $300 high.
  • Average the two methods: low ($190 + $150) ÷ 2 = $170; high ($375 + $300) ÷ 2 = $337.50.
  • One system, so nothing is added for extra equipment.
  • Difficulty: 1 + 0 (one story) − 0.05 (easy access) + 0 (rigid duct) + 0 (light soiling) = 0.95. Low: $170 × 0.95 = $161.50. High: $337.50 × 0.95 = $320.63.
  • The low end falls below the $200 minimum job charge, so it is floored: low becomes $200.
  • Typical = $200 + 0.45 × ($320.63 − $200) = $200 + $54.28 = $254.28.

Result: $200 low, $250 typical, $320 high.

Note what happened at the bottom. Published square-footage tables cheerfully produce $150 for a house this size. No contractor will send a truck for that, which is why the floor exists — and why small-home figures in published cost tables should be read with suspicion.

Example 2 — typical home, 1,800 sq ft, one system

Ten supply vents, two returns, two stories, typical access, flexible duct, moderate contamination (pets and some renovation dust).

  • Per-vent method: (10 × $25) + (2 × $40) = $330 low; (10 × $50) + (2 × $75) = $650 high.
  • Per-square-foot method: typical access, moderate soiling and under 3,000 square feet, so again the high rate is $0.30. 1,800 × $0.15 = $270 low; 1,800 × $0.30 = $540 high.
  • Average: low ($330 + $270) ÷ 2 = $300; high ($650 + $540) ÷ 2 = $595.
  • One system, so nothing is added for extra equipment.
  • Difficulty: 1 + 0.10 (two stories) + 0 (typical access) + 0.10 (flexible duct) + 0.15 (moderate soiling) = 1.35, below the +60% cap.
  • Low: $300 × 1.35 = $405. High: $595 × 1.35 = $803.25.
  • Above the $200 floor, so no adjustment.
  • Typical = $405 + 0.45 × ($803.25 − $405) = $405 + $179.21 = $584.21.
  • Everything is rounded to the nearest $10, so the $405 low is displayed as $410.

Result: $410 low, $580 typical, $800 high.

Example 3 — large home, 3,000 sq ft, two systems

Eighteen supply vents, four returns, two systems, two stories, difficult access (attic runs and a tight crawlspace), flexible duct, light contamination.

  • Per-vent method: (18 × $25) + (4 × $40) = $610 low; (18 × $50) + (4 × $75) = $1,200 high.
  • Per-square-foot method: this job is hard — difficult access, and 3,000 square feet — so the high rate is $0.40. 3,000 × $0.15 = $450 low; 3,000 × $0.40 = $1,200 high.
  • Average: low ($610 + $450) ÷ 2 = $530; high ($1,200 + $1,200) ÷ 2 = $1,200.
  • One additional system: +$150 to the low and +$350 to the high, giving $680 and $1,550. This is added before the difficulty adjustment, and it is a flat figure rather than a multiplier.
  • Difficulty: 1 + 0.10 (two stories) + 0.20 (difficult access) + 0.10 (flexible duct) + 0 (light soiling) = 1.40, below the +60% cap.
  • Low: $680 × 1.40 = $952. High: $1,550 × 1.40 = $2,170.
  • Typical = $952 + 0.45 × ($2,170 − $952) = $952 + $548.10 = $1,500.10.

Result: $950 low, $1,500 typical, $2,170 high.

That typical figure is worth holding against the only per-system range anyone publishes. The U.S. Environmental Protection Agency (EPA) gives $450 to $1,000 per heating and cooling system Single source, which implies roughly $900 to $2,000 for a two-system home, and $1,500 sits inside it. The model this calculator used until 15 August 2026 multiplied by system count and returned a $2,050 typical for the same inputs — above that band, for a house whose extra cost is one more air handler rather than one more house.

The difficulty factors are added and capped, and all four of them are our judgment

Take the same house with typical access and rigid duct instead. The difficulty adjustment falls from 1.40 to 1.10 and the estimate becomes $750 low, $1,180 typical, $1,710 high Example calculation. The square-foot rate stays at $0.40 here, because a 3,000 square foot home counts as a large job whatever the access is like. Two inputs that no published source prices at all moved the typical figure by $320. That is the real size of our assumption, and you should discount the result accordingly.

Now push every input to its worst setting: 3,000 sq ft, 18 supplies and 4 returns, three systems, three stories, difficult access, flexible duct, heavy contamination. The four difficulty percentages sum to +80%, but the model caps the combined adjustment at +60%, producing $1,330 low, $2,100 typical, $3,040 high Example calculation. Without that cap our assumptions stack into a number nothing in the published record supports. When the cap is reached, the tool says so in its explanation of your estimate rather than hiding it. Why we cap it, and why the cap is itself a judgment call.

When the tool warns that your estimate is above the published band

If the typical figure comes out above $1,000 multiplied by the number of systems you entered, the calculator displays a caution alongside the result. None of the examples above triggers it, including the worst case. This one does: a 3,000 square foot home with 18 supplies and 4 returns, one system, two stories, difficult access, flexible duct and heavy contamination returns $850 low, $1,330 typical, $1,920 high Example calculation, and $1,330 is above the $1,000 single-system ceiling.

The warning tells you three things. That $450 to $1,000 per system is the only per-system band anyone publishes, that it comes from EPA and has been unchanged since at least January 2021, and that a result above it should be read as a rough ceiling rather than as what you should expect to pay. At that level, two or three itemized written quotes are worth more than any calculator — including this one. A quote well below the range is not automatically wrong either; it may simply cover less of the system, and the questions that reveal which it is are the fastest way to find out.

There is a fair objection to that threshold, and it deserves answering rather than ignoring: this calculator refuses to multiply by system count, so why does its own sanity check multiply $1,000 by the number of systems? Because the two numbers are built differently. EPA quotes a complete job per system, so a house with two systems is two of those jobs, and the sum of them is what EPA’s figure implies for that house. This calculator starts from every vent in the house at once, so the ductwork is already counted in full and only the extra equipment is added on top. Comparing our whole-house total against the sum of EPA’s per-system jobs is therefore a comparison of two totals for the same house — a legitimate cross-check, and not the same operation as the per-system multiplier we rejected inside the model. The warning text in the tool makes the same point where you actually meet it.

The worked examples side by side, with the square-foot rate, the flat system addition and the combined difficulty adjustment shown separately Example calculation
Scenario Vents (supply / return) Systems High sq-ft rate used Added for extra systems Combined difficulty Low Typical High
1,000 sq ft, simple, easy access 6 / 11$0.30 (not a hard job)None×0.95, then floored at the $200 minimum $200$250$320
1,800 sq ft, typical 10 / 21$0.30 (not a hard job)None×1.35 (+10% stories, +10% flex duct, +15% soiling) $410$580$800
3,000 sq ft, difficult 18 / 42$0.40 (large and difficult)+$150 low / +$350 high×1.40 (+10% stories, +20% access, +10% flex duct) $950$1,500$2,170
3,000 sq ft, straightforward 18 / 42$0.40 (large)+$150 low / +$350 high×1.10 (+10% stories only) $750$1,180$1,710
Every input at its worst 18 / 43$0.40 (large and difficult)+$300 low / +$700 high+80% requested, capped at ×1.60 $1,330$2,100$3,040
The tool’s own default settings, 1,800 sq ft 10 / 21$0.30 (not a hard job)None×1.03 (duct construction not known) $310$450$610

The last row is a check on the whole model rather than an example. Left entirely at its defaults, the calculator returns $310 to $610, which sits inside the $300 to $700 planning range we publish for a single-system home and that Fixr publishes independently Editorial estimate. That range is a published total, and this model never takes totals as inputs — only per-vent and per-square-foot rates — so the agreement is a real check rather than an artifact of construction. Nothing was tuned to produce it. Before the 15 August 2026 correction the same defaults returned $310 to $710; the top end has come in by $100 and now sits about $90 below Fixr’s ceiling, which is what you would expect from a model that no longer treats an ordinary house as a difficult job.

What to do with the number once you have it

  1. Check whether you need the service at all. A planning figure is not a reason to buy. EPA recommends cleaning as needed rather than on a schedule, and identifies three conditions that justify it: substantial visible mold on hard duct surfaces, vermin infestation, or debris actually being blown into rooms from supply registers. Work through that question first.
  2. Use it as a plausibility filter, not a target. A quote inside your range is plausible. A quote far below it is the one to interrogate, not the one to book.
  3. Take your vent count to the phone call. “Eleven supplies, two returns, one system, ducts in a crawlspace” turns a vague conversation into a comparable quote in about thirty seconds.
  4. Ask each contractor to confirm scope in writing — specifically whether the air handler, blower and coil are included, and what the vent count in their price is. Our question list is built for exactly this call.
  5. Compare scopes before you compare prices. Two quotes that differ by $400 are often two different jobs.

What this cannot see

Everything this tool does not know, collected in one place rather than scattered through the page. All of it is structural rather than fixable.

The underlying data is thinner than it looks. Fifteen publications carry duct cleaning prices, and they trace back to about three independent origins. This calculator is built on the best-supported slice of that record — per-vent and per-square-foot rates — but “best supported” here means seven publications repeating one arithmetic convention, not seven surveys.

Several inputs have no published price at all. Duct accessibility, duct construction and contamination severity are agreed by every source to move the price, and quantified by none of them. The percentages this calculator applies for those are ours, and so is the decision to add them together and cap the total at +60% rather than let them compound. So is the rule deciding which jobs are hard enough to earn the $0.40 square-foot rate. We have marked them as assumptions in the rate table rather than presenting them as market data.

You can see the size of that assumption. Strip the difficulty adjustment out of the second worked example above and the same 1,800 square foot house returns $300 to $600, with a typical of about $430 rather than $580. Three of the four factors that produced that difference have no published dollar basis at all. The gap between $430 and $580 is our judgment, not a market measurement.

The one check the model passes is a single data point. The default settings landing inside the $300 to $700 planning range is reassuring, and it is one agreement with one independent source. It is not a validation, and we would not present it as one.

No estimate can see your house. A contractor standing in your basement knows things the calculator cannot: whether the trunk line can be reached without cutting an access opening, whether the return drop is choked, whether the coil is fouled, whether the previous owner’s renovation dumped drywall dust into an unsealed system. Those observations are what a real quote is for. The model also assumes site-built ductwork, which is why manufactured homes get their own page rather than a checkbox here.

The honest use of a number like this is to walk into the conversation knowing roughly what to expect, and to notice immediately when something is off. That is a real benefit. It is just a smaller one than a precise-looking dollar figure implies.

What to do next

Sources & references