Turn an HVAC duct sizing spreadsheet into a phone calculator

Quick answer

Equal friction sizing finds the round duct whose friction loss per meter equals your design rate: Darcy-Weisbach with a Colebrook or Altshul-Tsal friction factor, then Huebscher's 1.30 × (ab)^0.625 / (a + b)^0.25 for a rectangle. An AI can rewrite the sheet, Goal Seek included, as one HTML file you test and publish.

A working example: change any value. It computes in your browser and sends nothing.

For your team only, publish it on a private link or behind a password, both with Pro.

Make your team's version

Convika's AI rewrites this calculator from what you write. You try it on your phone before you keep it, with no account.

Say what yours needs: your units, your stocked sizes, your friction rates and velocity limits, your company's name. Up to 8,000 characters.

You don't need an account to try it. The preview works for 3 minutes once it's ready.

On this page

The duct sizing workbook has a friction chart pasted in, a Goal Seek someone has to remember to run, and a fitting table copied from a handbook years ago. The installer on site wants one answer: what size for this branch, round or 250 mm deep. This guide gives you the formulas a duct sizing sheet uses, with units, limits, and sources, the solver that replaces Goal Seek, worked examples checked against published ones, the prompt that turns the sheet into one HTML file, SI and IP test cases, and how to give the site team the link. Sources were read on November 6, 2026.

The formulas are standard, but your firm's friction rate, velocity limits, and fitting data are its own. Check the page's results against your own sheet and design standard before anyone sizes from it.

What equal friction sizing computes

Equal friction sizing picks one friction loss per length for the whole low-pressure system and sizes every section to it. For each section's airflow, the sheet finds the round diameter whose friction loss per meter (or per 100 ft) equals the design rate, rounds it up to a size you can buy, checks the velocity, and converts it to a rectangle if the ceiling needs one. The fittings then add their own losses.

The US Department of Veterans Affairs' HVAC Design Manual (revised March 1, 2024) sets this out for its own buildings: "Use equal friction method for sizing low-pressure ductwork," and "Both maximum air velocity and maximum static pressure drop shall be maintained when sizing ductwork." Its Table 3-3 gives the limits:

DuctMaximum air velocityMaximum static pressure drop
Low pressure supply, return, relief, exhaust1,500 fpm [8 m/s]0.08 in. of water/100 ft [0.66 Pa/m]
Medium/high pressure supply2,500 fpm [13 m/s]0.20 in. of water/100 ft [1.64 Pa/m]
Transfer air duct750 fpm [4 m/s]0.04 in. of water/100 ft [0.33 Pa/m]

The manual adds that "The above sizing criteria can be altered to suit the project location." The examples on this page use the low-pressure row; put your own rate and limit in the calculator as inputs, not constants.

The formulas, with units and sources

QuantityFormulaUnitsSource
Friction loss, SIΔp = (f × L / D) × ρ V² / 2Pa; L and D in m; ρ in kg/m³; V in m/sASHRAE Fundamentals, Duct Design, as reprinted by LBNL
Friction loss, IPΔp = (12 f × L / D) × ρ (V / 1097)²in. of water; L in ft; D in in.; ρ in lb/ft³; V in fpmAs above
Friction factorColebrook: 1/√f = −2 log₁₀(ε / (3.7 D) + 2.51 / (Re √f))f, ε/D and Re have no unitsColebrook (1939)
Friction factorAltshul-Tsal: f′ = 0.11 (ε/D + 68/Re)^0.25; f = f′ if f′ ≥ 0.018, else 0.85 f′ + 0.0028IP: 12ε/D with ε in ft and D in in.ASHRAE, as reprinted by LBNL; Tsal (1989)
Reynolds numberRe = V × D / νν in m²/s
Air pressure at elevationp = 101,325 × (1 − 0.0065 H / 288.15)^5.25588Pa; H the elevation in mU.S. Standard Atmosphere, 1976, eq. 33a
Air densityρ = p / (287.05 × T)kg/m³; T in KIdeal gas, constants from the same
Air viscosityμ = 1.458 × 10⁻⁶ × T^1.5 / (T + 110.4)Pa·s; T in KU.S. Standard Atmosphere, 1976, eq. 51
Rectangle to roundDe = 1.30 × (a b)^0.625 / (a + b)^0.25same unit as a and bHuebscher (1948)
Fitting lossΔp = C × ρ V² / 2PaASHRAE; OSHA

Friction loss in a straight duct

Air in a duct follows the Darcy-Weisbach equation, the same one used for water in a pipe. Lawrence Berkeley National Laboratory's paper on flexible ducts (LBNL-49012, HVAC&R Research) reprints it from the 2001 ASHRAE Fundamentals, which for flex duct "suggests the use of the Darcy friction loss equation (Equation 1) with the Altshul-Tsal equation of friction factor (Equation 2)". Autodesk's duct sizing uses the same pair for round, rectangular, and oval ducts. In SI, Δp = (f L / D) × ρ V² / 2; in IP, Δp = (12 f L / D) × ρ (V / 1097)², with D in inches. The 12 turns inches into feet, and 1097 turns fpm and lb/ft³ into inches of water. ASHRAE's current edition keeps duct design in Chapter 21, "Duct Design," of the 2025 Fundamentals; ASHRAE sells it, so this page quotes the readable reprints.

For a rectangular duct, size the round duct first and convert it with Huebscher's equivalent diameter below. Autodesk's documentation for its duct sizing does the same: "To size friction for the rectangular or oval duct, the calculations use the equivalent round duct diameter and its velocity."

The friction factor: Colebrook or Altshul-Tsal

  • Colebrook (C. F. Colebrook, "Turbulent flow in pipes, with particular reference to the transition region between the smooth and rough pipe laws," Journal of the Institution of Civil Engineers, 1939) is implicit: f appears on both sides, so it needs iteration. Starting from a reasonable guess, a simple loop on x = 1/√f, x ← −2 log₁₀(ε / (3.7 D) + 2.51 x / Re), settles to a change under 10⁻¹² in 9 steps for this page's 28 in. example.
  • Altshul-Tsal is explicit, which is why sheets like it. The LBNL paper warns that it "is not applicable to the high roughness region (on a Moody chart) where the friction factor becomes independent of the Reynolds Number". On galvanized duct at the flows on this page, it lands within −0.3% to +1.2% of Colebrook:
Flow, round sizeReColebrook fAltshul-Tsal fDifference
0.05 m³/s, 100 mm42,2720.024340.02462+1.2%
0.3 m³/s, 250 mm101,4530.019690.01971+0.1%
1.0 m³/s, 450 mm187,8760.017250.01720−0.3%
3.0 m³/s, 800 mm317,0410.015420.01537−0.3%

Air at 20 °C and sea level, ε = 0.09 mm. Pick the one your sheet uses, so the test cases match.

Roughness. The friction factor depends on ε, the duct's absolute roughness. A Farmingdale State College course example takes "medium smooth galvanized steel" as ε = 0.0036 in. (0.09 mm, 0.0003 ft). Flexible duct is far rougher: the LBNL paper reports ASHRAE's range for fully extended flex as 0.0035 to 0.015 ft (1.0 to 4.6 mm), says values across that range move the pressure drop by 30%, and found that compressing flex duct raises it much further. Put roughness in the file as a table by material.

Air density and viscosity at your temperature and elevation

A sheet built on "standard air" fixes ρ at 1.2 kg/m³ or 0.075 lb/ft³. OSHA's ventilation chapter defines standard air as "Dry air at 68° F (20° C), 29.92 in Hg (760 mm Hg)," with "a density of 0.075 lb/cu ft." For a site at elevation or air far from 20 °C, compute it:

  • Pressure. The U.S. Standard Atmosphere, 1976 (NOAA, NASA, and the US Air Force) gives pressure through the lowest layer as its equation 33a, P = P_b × [T_b / (T_b + L_b (H − H_b))]^(g₀ M₀ / (R* L_b)), with P₀ = 101,325 Pa, T₀ = 288.15 K, and a lapse rate of −6.5 K/km. Written out: p = 101,325 × (1 − 0.0065 H / 288.15)^5.25588 Pa. The Standard's H is geopotential height, within 1 m of the elevation up to 2,500 m, so this page, its prompt, and its test cases take H as the elevation in meters.
  • Density. ρ = p / (R T) for dry air, with R = R* / M₀ = 8,314.32 / 28.9644 = 287.05 J/(kg·K) and T in kelvin.
  • Viscosity. Equation 51 of the same document: μ = β T^1.5 / (T + S), with β = 1.458 × 10⁻⁶ and S = 110.4 K. Kinematic viscosity is ν = μ / ρ.
AirPressureDensityKinematic viscosity
20 °C, sea level101.33 kPa1.204 kg/m³ (0.0752 lb/ft³)1.506 × 10⁻⁵ m²/s
35 °C, sea level101.33 kPa1.146 kg/m³1.645 × 10⁻⁵ m²/s
20 °C, 1,609 m (one mile)83.43 kPa0.991 kg/m³1.829 × 10⁻⁵ m²/s
20 °C, 2,500 m74.68 kPa0.888 kg/m³2.043 × 10⁻⁵ m²/s

Thinner air loses less pressure for the same volume flow: a 500 mm duct carrying 1.0 m³/s loses 0.543 Pa/m at sea level and 0.460 Pa/m at 1,609 m, 15% less. The fan also moves less air by mass at altitude, which the heating and cooling side of your sheet may already correct for; keep that correction as it is.

Rectangular and flat oval ducts

Huebscher's equation (R. G. Huebscher, 1948) gives the round diameter with the same friction loss as an a × b rectangle carrying the same airflow: De = 1.30 × (a b)^0.625 / (a + b)^0.25. Engineering ToolBox works the example: a 300 mm × 500 mm duct "= 420 mm." The formula takes any unit, as long as a and b share it. Engineers Edge describes it as the relationship "used to determine size equivalency based on equal flow, resistance, and length."

  • It isn't the hydraulic diameter. 2ab / (a + b) for the same duct is 375 mm. Mix the two up and the sheet and the page disagree.
  • It isn't equal area. The rectangle is larger than its equivalent round, so its air moves slower: 0.5 m³/s is 3.98 m/s in a 400 mm round and 3.59 m/s in the 557 × 250 mm rectangle that matches it.
  • Solving for a side is a second Goal Seek. For a fixed depth, the page finds the width whose De equals the round size; a 400 mm round at 250 mm depth needs 556.9 mm of width, or 450.9 mm at 300 mm.
  • Flat oval uses De = 1.55 × A^0.625 / P^0.25, with A and P the duct's area and perimeter (Heyt and Diaz, per Engineering ToolBox). Applied to a rectangle, that form gives 1.55 / 2^0.25 = 1.3034 in place of 1.30, which is why the Farmingdale course's table lists a 22 × 30 in. duct at 28.1 in. where Huebscher gives 28.0.

Velocity limits

Size by friction, then check velocity: a section passes only if both hold. At the VA's low-pressure 0.66 Pa/m, a round duct for 4 m³/s runs at 7.73 m/s, under 8 m/s; at 5 m³/s, friction alone gives 883 mm and 8.16 m/s, so the velocity limit takes over and sets 892 mm. In IP at 0.08 in./100 ft, velocity passes 1,500 fpm between 6,000 cfm (1,394 fpm in 28.1 in.) and 10,000 cfm (1,578 fpm). Show the velocity in every result, with which limit decided the size.

Fittings: C times the velocity pressure

Each elbow, tee, transition, and damper adds a loss of Δp = C × p_v, with C the fitting's loss coefficient and p_v = ρ V² / 2 its velocity pressure (in IP, ρ × (V / 1097)², which for 0.075 lb/ft³ is the familiar (V / 4005)²). OSHA's ventilation chapter writes the same pattern for a hood: "Hood entry loss (He) is calculated according to the following equation: He = (K)(VP)," with K the loss factor and VP the velocity pressure in the duct.

The C values themselves come from a table: your firm's, SMACNA's, or ASHRAE's Duct Fitting Database, which "includes loss coefficient tables for more than 200 round, rectangular, and flat oval duct fittings." At 6 m/s and standard air, p_v = 21.67 Pa, so a fitting with C = 0.25 costs 5.42 Pa.

ASHRAE's bookstore pages carry its AI policy notice: "ASHRAE prohibits the entry of content from any ASHRAE publication or related ASHRAE intellectual property (IP) into any AI tool, including but not limited to ChatGPT. Additionally, creating derivative works of ASHRAE IP using AI is also prohibited without express written permission from ASHRAE." (Full policy.) Keep anything copied from an ASHRAE publication out of the prompt, fitting tables, roughness tables, and charts included. The prompt below holds only the formulas written out on this page, credited to their authors (Darcy and Weisbach, Colebrook, Altshul and Tsal, Huebscher, and the U.S. Standard Atmosphere), and no ASHRAE text or tables; whether ASHRAE data can go on a page other people open depends on ASHRAE's terms and your license.

Goal Seek becomes a solver in the page

The sheet's diameter usually comes from Goal Seek: set the friction cell to the design rate by changing the diameter cell. Microsoft's help says Goal Seek "works only with one variable input value," and it's a command you run: the cell keeps the number from the last run until someone runs it again. The Colebrook cell is often a circular reference with iterative calculation turned on, which Microsoft notes "can iterate indefinitely. However, you can control the maximum number of iterations and the amount of acceptable change."

In the page, both become loops that run on every input change:

  • Diameter. Friction loss per meter falls as the diameter grows, so bisection always converges. Start between 20 mm and 5 m, halve the interval until it's under 0.01 mm, and stop at 100 steps if it ever doesn't. That's 19 halvings for every case on this page.
  • Colebrook. Loop on x = 1/√f until the change is under 10⁻¹⁰, with a cap of 50 steps.
  • The other side of a rectangle. The same bisection on Huebscher's equation.

Ask for the solver's tolerance and step count to be shown under the result, so anyone checking it sees how the number was found.

Worked examples, checked against published ones

A short Node.js script computed each case with the formulas above.

CaseResult herePublished
6,000 cfm, 28 in. round, 80 ft, ε 0.0036 in., standard air, Colebrook1,403 fpm, Re 336,618, f 0.01544, 0.065 in. of water (0.081 in./100 ft)1,400 fpm, Re 337,000, f 0.0155, 0.064 in. of water; 0.08 in./100 ft from the ASHRAE friction chart (Farmingdale State College)
Same duct, Altshul-Tsalf 0.01541, 0.0649 in. of water
300 × 500 mm rectangleDe 420.0 mm420 mm (Engineering ToolBox)
22 × 30 in. rectangleDe 28.0 in. (28.07 with the 1.55 form)28.1 in. (Farmingdale State College's table)
Velocity pressure at 1,400 fpm, 0.075 lb/ft³0.1222 in. of water by ρ (V / 1097)²(V / 4005)² = 0.1222

The course's Reynolds number uses its shortcut for standard air, Re = 8.6 × V × D with V in fpm and D in inches. The script works from ρ, μ, and SI units, which is why its figures differ in the third digit.

Sizing at the VA's low-pressure rate, galvanized steel (ε = 0.09 mm), 20 °C:

AirflowExact round sizeSize pickedVelocityFriction in the size picked
0.5 m³/s370.2 mm400 mm3.98 m/s0.452 Pa/m
1.0 m³/s480.5 mm500 mm5.09 m/s0.543 Pa/m
2.0 m³/s624.2 mm650 mm6.03 m/s0.541 Pa/m
1.0 m³/s at 1,609 m464.6 mm500 mm5.09 m/s0.460 Pa/m
400 cfm10.14 in.11 in.606 fpm0.054 in./100 ft
1,000 cfm14.29 in.15 in.815 fpm0.063 in./100 ft
2,000 cfm18.55 in.19 in.1,016 fpm0.071 in./100 ft
4,000 cfm24.10 in.25 in.1,173 fpm0.067 in./100 ft

The sizes picked are the next 50 mm or 1 in. step, for the example; put the sizes you actually stock in the file. Altshul-Tsal gives 369.8, 480.2, and 623.9 mm for the first three rows.

The prompt for ChatGPT, Claude, or Gemini

Two limits of a page on Convika shape the prompt. It runs the page's own scripts, inline or from an https:// address, but not eval or new Function, so a formula-parser library that turns text into code won't run: ask for plain functions. And its scripts' fetch and XHR requests reach only the page's own address on Free; Pro and MAX add the analytics tools Convika supports and up to 20 hosts you list for your own ad network. So the page can't read a live spreadsheet or a manufacturer's fitting data: the tables go into the file.

Paste the prompt with your own defaults, formulas, and tables. It builds three tabs (sizing, checking a given duct, and fittings), so the same page runs every test case below. Name every input with its unit: a factor of 12 between inches and feet, or 1,000 between L/s and m³/s, is the usual first mismatch.

Rewrite my duct sizing spreadsheet as one HTML file that works on a phone.

Three tabs that share the units and air inputs:
1. Size a duct: airflow and design friction rate -> round size and rectangle
2. Check a duct: airflow, a round diameter or a rectangle a × b, and a length
   -> velocity, Re, f, friction per length and over the length
3. Fittings: a velocity (from tab 2, or typed in) and a list of fittings with C
   -> velocity pressure and the loss of each

Shared inputs (name, unit, default):
- Units: SI or IP; the switch converts every input and result
- Air temperature: 20 °C; site elevation: 0 m
- Duct material: galvanized steel (roughness 0.09 mm), or a roughness typed in

Size tab inputs:
- Airflow: 1.0 m³/s (IP: cfm)
- Design friction rate: 0.66 Pa/m (IP: in. of water per 100 ft)
- Maximum velocity: 8 m/s (IP: fpm)
- Round sizes I stock: [list]
- Rectangle depth (optional): 250 mm

Formulas (keep them exactly as written):
- p = 101325 × (1 − 0.0065 × H / 288.15)^5.25588 Pa, with H the elevation in m;
  ρ = p / (287.05 × T); μ = 1.458e-6 × T^1.5 / (T + 110.4); ν = μ / ρ; T in kelvin
- V = Q / (π D² / 4); Re = V × D / ν
- Colebrook: 1/√f = −2 log10(ε / (3.7 D) + 2.51 / (Re √f)); iterate on 1/√f
  until the change is under 1e-10, at most 50 steps. Use Math.log10.
- Friction per meter = (f / D) × ρ × V² / 2
- Size tab:
  - Friction D: bisection on D between 0.02 and 5 m until the interval is under
    0.01 mm, at most 100 steps, so friction per meter equals the design rate.
    This replaces my sheet's Goal Seek.
  - Velocity D = √(4 × Q / (π × maximum velocity))
  - Required D = the larger of the two. Say which limit decided.
  - Pick the first stocked size at or above the required D; show its velocity
    and friction per meter.
  - If a depth is given: bisection on the width so that
    1.30 × (a × b)^0.625 / (a + b)^0.25 equals the size picked; show the
    rectangle's velocity, Q / (a × b).
- Check tab: for a rectangle, De = 1.30 × (a × b)^0.625 / (a + b)^0.25, and the
  friction uses a round duct of diameter De carrying the same Q. Also show Q / (a × b).
- Fittings tab: velocity pressure = ρ × V² / 2; loss = C × velocity pressure for
  each fitting, and the total.

Tables (write them into the file as constants):
- Roughness, mm: galvanized steel 0.09; [add yours]
- Fitting coefficients: leave the table empty; I'll fill it in.

Rules:
- Plain JavaScript functions inside the file. No eval, no new Function, no formula
  parser library, no fetch or other network requests.
- Refuse a blank input with a message, instead of computing with 0. Airflow,
  friction rate, maximum velocity, diameter, rectangle sides, length, and velocity
  must be above zero; roughness and C may be 0; elevation and temperature may be 0
  or below. The rectangle depth is the one field that may be left blank.
- Under each result, show ρ, ν, V, Re, f, and friction per length; on the size tab,
  also the friction D, the velocity D, the solver's step count, and which limit decided.
- Label every input with its unit; use inputmode="decimal" on number fields.
- Show "v1, checked against [sheet name] on [date]" at the bottom of the page.
- Add a "Run test cases" button that runs the cases below on their tabs and shows
  pass or fail for each, to 0.1 mm, 0.01 in., 0.001 in. of water, or 0.01 Pa.

Test cases:
[paste the test table]

If your sheet uses Altshul-Tsal, replace the Colebrook line with: "f′ = 0.11 × (ε / D + 68 / Re)^0.25; f = f′ if f′ ≥ 0.018, otherwise f = 0.85 × f′ + 0.0028."

Test cases, SI and IP

Run these in the sheet and in the page. Each row names the tab it runs on. Unless the row says otherwise: air at 20 °C (68 °F) and sea level, galvanized steel (ε = 0.09 mm), and Colebrook.

#TabInputsExpected
1Size0.5 m³/s, 0.66 Pa/m, 8 m/s, sizes every 50 mm from 100 mm, depth 250 mmFriction D 370.2 mm (Altshul-Tsal: 369.8 mm); velocity D 282.1 mm; friction decides; picks 400 mm at 3.98 m/s; rectangle 556.9 × 250 mm at 3.59 m/s
2Size1.0 m³/s, 0.66 Pa/m, 8 m/sFriction D 480.5 mm; velocity D 398.9 mm; friction decides
3Size1.0 m³/s, 0.66 Pa/m, 8 m/s, elevation 1,609 mρ 0.991 kg/m³; friction D 464.6 mm
4Size5.0 m³/s, 0.66 Pa/m, 8 m/sFriction D 883.1 mm, at 8.16 m/s; velocity D 892.1 mm; velocity decides
5Size, IP1,000 cfm, 0.08 in. of water per 100 ft, 1,500 fpm, ε 0.0003 ftFriction D 14.29 in.; velocity D 11.06 in.; friction decides
6Check, IP6,000 cfm, 28 in. round, 80 ft, ε 0.0036 in.1,403 fpm; f 0.01544; 0.065 in. of water
7Check0.5 m³/s, rectangle 300 × 500 mm, 10 mDe 420.0 mm; 3.33 m/s in the rectangle; 0.356 Pa/m; 3.56 Pa over 10 m
8FittingsVelocity typed in: 6 m/s; one fitting, C = 0.25Velocity pressure 21.67 Pa; loss 5.42 Pa

Add your own at the edges: the smallest and largest airflow you size, a flow that lands exactly on a stocked size, a blank input, and the IP and SI versions of the same duct, which must agree after conversion. How to check an AI-made page before you send it covers the rest of the page.

Where a sheet and its JavaScript drift apart

  • Logarithms. Excel's LOG with no base "is assumed to be 10." JavaScript's Math.log "returns the natural logarithm (base e)." A Colebrook line moved over as Math.log gives a friction factor about a fifth of the right one (0.0033 against 0.0155 in the 28 in. example). It must be Math.log10.
  • Goal Seek's last run. A sheet's diameter cell holds the value from the last time someone ran Goal Seek. If the page and the sheet disagree, rerun Goal Seek before blaming the page.
  • Units. in. of water per 100 ft against Pa/m; cfm against L/s against m³/s against m³/h; inches against feet in the IP Darcy formula. Ask the page to show every input converted to SI under the result while you test.
  • Fixed density. A sheet built on 0.075 lb/ft³ won't match a page that computes air at 35 °C. For the test, set the page to 20 °C and sea level, or to the sheet's density.
  • Rounding up. Excel's CEILING or MROUND and a lookup to the next stocked size must pick the same size as the page. Test with a flow whose exact size falls between two stocked sizes.
  • Equivalent and hydraulic diameter. A sheet that converts with 2ab / (a + b) instead of Huebscher's equation treats a 300 × 500 mm duct as a 375 mm round instead of 420 mm, 11% apart.

Ways to put a duct calculator on the site team's phones

Each cell comes from the vendor's own page, read on November 6, 2026.

OptionWhose formulas and tablesCan the people who use it see or change your formulas?Where it runsUpdating it
The workbook in Excel on the phoneYoursYes: whoever has the file has the formulasExcel for iOS runs no VBA macros (Microsoft's platform table)Send the file again
ASHRAE Duct Fitting DatabaseASHRAE's fitting coefficientsNot your formulasCloud access "by annual subscription"; a Lite app "FREE from the Apple App Store" for "select" fittings, "in both I-P and SI units"ASHRAE's
ASHRAE Duct Size CalculatorASHRAE TC 5.2 and the Air Distribution Institute's: "a quick reference tool for approximating duct sizes"Not your formulasListed in ASHRAE's bookstoreASHRAE's
CalcappYours, rebuilt with Calcapp formulas that "use names instead of cell references"They can't change them: "Nobody can mess up your formulas"A Calcapp app, "installed on your phone or embedded in your website"In Calcapp's designer
AppizyYours: you upload the Excel fileThey can't see them: "Your formulas execute server-side"Appizy's servers"Upload a new version of your Excel file and republish"
An HTML file your AI writes, on ConvikaYours, rewritten as JavaScriptThey can read them in the page source; only you can change themThe phone's browser, from a linkA new version at the same link

ASHRAE's tools give you ASHRAE's data and method, not your sheet's. Appizy keeps the workbook as the engine on its servers; ask whether your Goal Seek or iterative calculation carries over before you convert. Calcapp has you rebuild the logic in its designer. The HTML route keeps your formulas and your tables, replaces Goal Seek with a solver that runs on every change, and costs nothing to try; the math travels with the page, so anyone who opens it can read it.

Publish the calculator for your site team in 5 steps

1. Put the file in your account

Sign up at app.convika.com with no credit card, click Upload an HTML file, drop the .html file the AI gave you (up to 2 MB), and click Create my preview. The box below works without an account, but its preview turns scripts off, so the solver won't run there. Click Keep this page — free, no card under it to move the file into an account, where the preview runs scripts.

2. Run the test cases on the preview

Open the preview on your own phone and run the SI and IP cases. Then use it the way the installer will: one thumb, gloves off, in a ceiling void. The airflow field should bring up the number pad, the result should show the round size, the rectangle, and the velocity without scrolling, and the units switch should convert, not reset. Send the AI any case that fails with both answers, and upload the corrected file as a new version.

3. Choose who can open it and publish

Click Publish page. Under Who can open this page?, pick one:

  • Public: "Anyone with the link can open it. It may show up in search results and in Convika's gallery." Free, with the Convika bar. The first time, click Publish free.
  • Private link (Pro): "Anyone with the link can open it, with no password or account. It stays out of search results and out of the gallery." A forwarded link opens it too: it keeps the page out of search results, not out of reach.
  • Only people with the password (Pro): Convika's server checks the password before it sends the page. Read how a page password works.

A private link or a password opens an order for Pro monthly: free for 1 day with a card, then $12 a month. Pro also has 3 members in a workspace.

Send the live address to the site team, or print its QR code for the site office wall. Each installer can add it to the home screen so it opens like an app. It opens from its link, so the phone needs a connection to load it; Convika doesn't make a page work offline.

When the design rate, the stocked sizes, or the fitting table changes, have the AI change the file, run the test cases again, and upload it on the page's screen with Upload a new version. Click Publish v2 at the same link (with your number). Everyone with the link gets the new version, and the old one stays in the page's history. Keep one address per tool and the version number in the page. Updating a page without changing its link walks through it.

A new Free workspace keeps 1 live page at a time. A second tool, such as a voltage drop calculator for the electricians, is a different page: Light, an add-on to Free, keeps up to 5 live pages for $3 a month through Publish this page too, with Light, and Pro keeps 100. Each page has its own visitor stats.

Frequently asked questions

How do I size a duct in Excel?

Compute the friction loss per length from Darcy-Weisbach with a Colebrook or Altshul-Tsal friction factor, then use Goal Seek on the diameter until the friction equals your design rate, such as 0.66 Pa/m or 0.08 in./100 ft. Round up to a stocked size, check the velocity, and convert to a rectangle with Huebscher's equation.

What friction rate should I use for duct sizing?

Use your design standard's. The US VA's HVAC Design Manual, for example, sets 0.08 in. of water per 100 ft (0.66 Pa/m) and 1,500 fpm (8 m/s) for low-pressure ducts, 0.20 in./100 ft and 2,500 fpm for medium and high pressure, and adds that the criteria "can be altered to suit the project location."

How do I convert a round duct size to rectangular?

Use Huebscher's equation, De = 1.30 × (a b)^0.625 / (a + b)^0.25, and solve for the side you don't know. A 400 mm round at 250 mm depth needs a 557 mm wide rectangle. The rectangle has more area than the round, so its velocity is lower.

Can ChatGPT replace Goal Seek in my duct sizing sheet?

Yes. Ask for a bisection solver in plain JavaScript with a tolerance and a step cap, as in the prompt above. It runs on every input change, so the diameter is never left over from an old run. Check it against the sheet with the test cases before anyone uses it.

Can I use CIBSE data in the same calculator?

Yes, as long as the formulas match. CIBSE Guide C has a chapter on the "Flow of Fluids in Pipes and Ducts," which this page doesn't quote. Put CIBSE's roughness, design rates, and fitting factors into the file's tables in place of the ones here, and test against your CIBSE-based sheet.

Why doesn't my calculator match the ductulator or the friction chart?

A friction chart and a ductulator are read by eye and assume standard air and one roughness. Compare at 20 °C, sea level, and galvanized steel first. The 28 in. example on this page computes 0.081 in./100 ft where the chart reads 0.08.

Does altitude change the duct size?

Yes, a little. For the same volume flow, air at 1,609 m is 18% less dense, and the same duct loses about 15% less pressure; 1.0 m³/s at 0.66 Pa/m sizes to 464.6 mm there against 480.5 mm at sea level. Put temperature and elevation in the calculator as inputs.

Can I put ASHRAE's fitting tables in the calculator?

Not through an AI chat. ASHRAE's AI policy prohibits entering content from its publications "into any AI tool, including but not limited to ChatGPT," and "creating derivative works of ASHRAE IP using AI" without its written permission. Give the AI only the formulas; whether ASHRAE's tables can go into a page others open depends on ASHRAE's terms and your license.

Sources

Next step

How to check that an AI-made calculator matches your Excel sheet

Run the same input sets through Excel and the AI's page, compare to a stated tolerance, and find the places where Excel and JavaScript round differently.

Related articles

More calculators built from Excel sheets

AI Skill Pod

Share AI skills with your team, the easy way

Everyone uses your team's skills in their own ChatGPT, Claude or Gemini, on any plan. Send one invite link. Free to start.

Start free on AI Skill Pod⁠

AI Skill Pod is made by the team behind Convika.

Share this article

Put your duct sizing sheet on the site team's phones

Say what your site team's version needs: your units, your stocked sizes, your friction rate and velocity limits. The AI rewrites the calculator above, you run the test cases on your phone, then keep it with a free account and send one link.

Make my team's version

Free plan: no credit card. A private link or a password comes with Pro, $12 a month.