Skip to content
Midmire
← All insights
June 28, 20266 min read

Most HVAC software still sizes ducts wrong. Here's what right looks like.

A 5-inch duct for 110 CFM isn't a typo — it's what velocity-only sizing produces. Why rule-of-thumb duct sizing keeps failing, and what proper ACCA Manual J and Manual D actually take.

HVACDuct designEngineering

Ask a typical piece of contractor software to size a duct and you'll usually get one of two things: a lookup against a friction chart, or a number backed out of velocity alone. Both can produce something like a 5-inch duct for 110 CFM — a spec that looks fine on a screen and causes callbacks in the field.

Sizing ducts correctly is one of the few things HVAC software could genuinely get right. Most of it doesn't.

Velocity isn't the whole story

"Size by velocity" is the shortcut most people learn: pick a target velocity, back into a duct size. It's quick, and it's wrong often enough to matter. Velocity describes how fast air moves through a duct. It says nothing about whether the system as a whole can push the required airflow to every room. Two runs at the same velocity behave very differently once you account for length, fittings, and the static pressure the equipment has to overcome.

Airflow is a pressure budget

Getting duct sizing right means treating the whole system as a pressure budget.

It starts with the load. A Manual J calculation establishes how much heating and cooling — and therefore how much airflow — each room needs, from real inputs: window U-factor and SHGC, orientation and solar gain, insulation, infiltration.

From there you size for a friction rate, not a velocity. Manual D's equal-friction method distributes the available static pressure across the whole duct system so every run gets its share, with a velocity cap so air never moves fast enough to become noise. And it accounts for total static pressure: every elbow, boot, and length of run costs pressure. Ignore that, and the fan can't deliver the airflow the load calc called for — the rooms furthest from the air handler starve.

Why most software avoids it

Because it's hard. A real Manual J/D engine is a genuine piece of engineering, not a chart lookup. Most contractor platforms handle the quotes and invoices and leave sizing to a rule of thumb or a separate tool — software that runs the business but not the work.

What doing it properly looks like

We built this into a contractor platform recently: an equal-friction Manual D engine with a velocity cap and total-system static-pressure loss, fed by a per-room Manual J load calc, and backed by an automated test suite and rendered PDF proofs so the numbers are checkable rather than trusted. An auto-routing step keeps it usable — place the air handler and supply boots, and the system produces a correctly-sized trunk-and-branch layout for supply and return. The engineering is there; the person using it just sees a clean design. There's more on that build in the HVAC platform case study.

It shows up as callbacks

Correct sizing isn't academic. It's the difference between a system that's quiet and comfortable and one that produces complaints, warranty visits, and "the back bedroom is always hot." Each of those costs a contractor time and trust.

The methods aren't a secret — ACCA published them decades ago. The rule of thumb survives because building the real thing is harder, not because it works.

Want this kind of thinking on your product?

We design, build, and grow software end-to-end. Tell us what you're working on.