# Ductulator — SOURCES.md

Dated 2026-10-25. Workspace build, not published yet.

## Equations (as implemented in index.html)

- **Round duct, ASHRAE equal-friction equation** (galvanized steel, standard
  air 0.075 lb/ft³), solved for diameter:
  `d = (0.109136 × Q^1.9 / fr)^(1/5.02)`
  where d = inside diameter (inches), Q = airflow (CFM), fr = friction rate
  (in. wg per 100 ft). Inverted to check an existing duct:
  `fr = 0.109136 × Q^1.9 / d^5.02`.
- **Rectangular equivalent diameter, Huebscher equation** (equal friction):
  `Deq = 1.30 × (a × b)^0.625 / (a + b)^0.25`
  where a, b = rectangular sides (inches). Rectangular results on the page
  use Deq in the ASHRAE equation — not the equal-area diameter.
- **Velocity:** `FPM = CFM / area (ft²)`; round area = π(d/2)²/144,
  rectangular area = w×h/144.
- **Rectangular height solve:** the page bisects on h until
  Deq(width, h) equals the required round diameter, then rounds h UP to the
  next whole inch and recomputes velocity/friction from the rounded size.

## Defaults and targets (as implemented)

- **Friction rate:** residential band 0.08–0.10 in. wg/100 ft; ACCA Manual D
  default 0.08. Page default 0.08, with presets: supply 0.10, return 0.08.
- **Velocity targets:** supply trunk 700–900 FPM; supply branch ~600 FPM;
  return 500–700 FPM (return grille under 400 FPM). Flag: above 900 FPM =
  noise risk at any duct type.
- **Aspect ratio:** warn above 4:1. Rectangular friction runs roughly
  15–25% above a round duct of the same area — the Huebscher equivalent
  diameter already adjusts for this; it is why a 6×10 in duct (60 in²,
  equal-area round ≈ 8.7 in) performs like an 8.4 in round duct by
  Huebscher, not an 8.7 in one. (A published blog figure of 7.2 in for
  this size does not match the Huebscher equation and is not used.)
- **Standard round sizes stocked on the page (inches):**
  4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 36, 40, 42, 48.
  Sizing always rounds UP to the next stocked size so friction stays at or
  below target.
- **Flex-duct rule (field rule, labeled as such on the page):** flex sizes
  one standard size above the galvanized result at the same friction.
  Rationale: flex roughness (~3.0 mm) vs galvanized (~0.15 mm) in
  Darcy-Weisbach terms sizes larger; the page implements the practical
  next-size-up rule rather than a full roughness model, and tells the user
  to pull flex tight and support it (compressed/sagging flex is rougher
  than modeled).

## Verification anchors (checked 2026-10-25 with node, same formulas)

- 6 in round, 100 CFM → friction ≈ 0.085 in. wg/100 ft. **Verifies**
  (published chart point, ductsizecalc.com).
- 800 CFM at 800 FPM → area 1.00 ft² → round diameter 13.54 in. **Verifies**
  (pure geometry: √(4/π)×12).
- 22×16 in rectangular at 3,000 CFM → velocity ≈ 1,228 FPM. **Verifies**
  (published example velocity).
- 3,000 CFM at 0.08 in. wg/100 ft → round diameter ≈ 22.0 in. A published
  blog example claimed ~20 in; that claim does NOT verify against the
  ASHRAE equation (20 in at 3,000 CFM gives ≈ 0.130, not 0.08). The page
  uses the equation, not the blog figure.
- 10 in round at 600 CFM: a published blog example claimed ≈ 830 FPM at
  ≈ 0.08. That claim does NOT verify: velocity = 600 / (π×25/144) =
  ≈ 1,100 FPM, and friction from the ASHRAE equation ≈ 0.20 in. wg/100 ft.
  The consistent size for 600 CFM at 0.08 is 12 in round (≈ 764 FPM).
  The page uses geometry + the equation, not the blog figure.
- Cross-check of the equation itself: 1,000 CFM at 0.10 in. wg/100 ft →
  ≈ 13.9 in (standard chart value ≈ 14 in). **Verifies.**

## Honesty limits (also stated on the page)

This sizes a duct run; it does not design the system. Total external
static pressure, fittings (a 90° elbow ≈ 25 ft equivalent length), and the
equipment's rated ESP still govern. Whole-house design needs a full ACCA
Manual D (fittings, total effective length, every run). Results are
planning values at standard air density; altitude and temperature shift
real friction.
