Standard allowance for flanges, seams, and waste (typically 10-20%).
Enter price to estimate total material cost.
Total Estimated Weight
0.00 kg
Total Surface Area
0.00 m²
Weight per Meter
0.00 kg/m
Estimated Material Cost
0.00
Formula: Area × Thickness × Density × (1 + Waste%)
Weight Comparison by Material
Comparison of your calculated duct dimensions across different common HVAC materials.
Weight Breakdown by Length
Length
Weight (kg)
Surface Area (m²)
Est. Cost
Projections based on current dimensions and material settings.
What is a Duct Weight Calculator in kg?
A duct weight calculator in kg is an essential engineering tool used by HVAC contractors, mechanical engineers, and estimators to determine the total mass of sheet metal required for a ventilation system. By inputting dimensions, material type, and gauge thickness, professionals can calculate the exact weight in kilograms.
Accurate weight calculation is critical for structural engineering (ensuring the building can support the ductwork), logistics planning (shipping and handling), and precise cost estimation. Unlike generic volume calculators, a specialized duct weight calculator accounts for the specific density of materials like galvanized steel, stainless steel, or aluminum, and includes allowances for seams and waste.
Who should use this tool? HVAC estimators, project managers, structural engineers, and sheet metal fabricators looking to optimize material orders and ensure structural safety.
Duct Weight Formula and Mathematical Explanation
The core physics behind the duct weight calculator in kg relies on determining the volume of the material used and multiplying it by its density. The calculation involves three main steps:
1. Calculate Surface Area (A)
First, we determine the unfolded surface area of the duct in square meters (m²).
Scenario: Calculating the load for a round stainless steel exhaust duct.
Shape: Round
Diameter: 500mm
Length: 10 meters
Material: Stainless Steel (18 Gauge / ~1.2mm)
Result: Using the calculator, the surface area is approximately 15.7 m². With the higher density of stainless steel and thicker gauge, the total weight comes out significantly higher per meter than standard HVAC ducting.
How to Use This Duct Weight Calculator
Select Shape: Choose between Rectangular or Round ductwork.
Choose Material: Select the material type (e.g., Galvanized Steel). This sets the density automatically.
Select Gauge: Choose the sheet metal gauge. Lower gauge numbers indicate thicker metal.
Enter Dimensions: Input width/height or diameter in millimeters (mm).
Enter Length: Input the total run length in meters.
Adjust Waste: Add a percentage for seams, flanges, and scrap (standard is 15%).
Review Results: The calculator instantly updates the total weight in kg and the surface area.
Key Factors That Affect Duct Weight Results
Understanding these factors helps in creating more accurate estimates for your duct weight calculator in kg results:
Material Density: Aluminum is roughly one-third the weight of steel. Switching materials can drastically reduce structural load but may increase cost.
Gauge Thickness: A change from 26 gauge (0.55mm) to 20 gauge (1.0mm) nearly doubles the weight. SMACNA standards dictate gauge based on duct size and pressure class.
Seam & Joint Type: Slip and Drive joints add less weight than 4-bolt flange systems. The "Waste %" input accounts for this overlap.
Insulation: This calculator computes bare metal weight. Internal liner or external wrap adds significant weight (approx 1.5-3 kg/m²) that must be calculated separately.
Reinforcement: Large ducts require angle iron reinforcement to prevent drumming, which adds to the total static load.
Scrap Factor: In fabrication, rectangular ducts often result in off-cuts. While this doesn't affect the installed weight, it affects the purchasing weight (cost).
Frequently Asked Questions (FAQ)
1. What is the standard density of galvanized steel for ducts?
The standard density used for galvanized steel in HVAC calculations is approximately 7850 kg/m³.
3. Does this calculator include the weight of insulation?
No, this tool calculates the bare metal weight. Insulation weight should be added separately based on the surface area result.
4. Why is the waste factor important?
Ducts are not continuous tubes; they have seams, flanges, and joints. A 10-20% waste factor accounts for the metal overlapping at these connections.
5. Can I use this for spiral ducts?
Yes, select "Round Duct". Spiral ducts are geometrically cylinders, though the spiral seam adds slightly more weight (covered by the waste factor).
6. How accurate is the cost estimation?
The cost is a raw material estimate based on weight. It does not include fabrication labor, shop overhead, or installation costs.
7. What is the difference between black steel and galvanized?
Black steel is uncoated and used for high-temperature or welded applications (like kitchen exhaust). Galvanized has a zinc coating for corrosion resistance. Their densities are very similar.
8. How does pressure class affect weight?
Higher pressure classes (e.g., 4″ w.g.) require thicker gauges and more reinforcement, significantly increasing the weight per meter.
Related Tools and Internal Resources
HVAC Load Calculator – Calculate heating and cooling loads for sizing equipment.
// Global Variables for Chart
var weightChartCanvas = document.getElementById('weightChart');
var ctx = weightChartCanvas.getContext('2d');
// Initialization
window.onload = function() {
updateGaugeOptions();
calculateDuctWeight();
};
// Data for Gauges (Thickness in mm)
var gaugeData = {
'26': 0.55,
'24': 0.70,
'22': 0.85,
'20': 1.00,
'18': 1.31,
'16': 1.61
};
// Data for Densities (kg/m3)
var densityData = {
'galvanized': 7850,
'stainless': 7930,
'aluminum': 2700,
'blacksteel': 7850
};
function updateGaugeOptions() {
var material = document.getElementById('material').value;
var gaugeSelect = document.getElementById('gauge');
gaugeSelect.innerHTML = "; // Clear existing
// Aluminum uses different standard thicknesses usually, but for simplicity in this tool
// we will use standard sheet metal gauges mapped to mm, noting that Al is often specified in mm directly.
// We will stick to the gauge keys for consistency.
var gauges = ['26', '24', '22', '20', '18', '16'];
for (var i = 0; i < gauges.length; i++) {
var g = gauges[i];
var mm = gaugeData[g];
var option = document.createElement('option');
option.value = mm;
option.text = g + " Gauge (" + mm + " mm)";
if (g === '24') option.selected = true; // Default
gaugeSelect.appendChild(option);
}
}
function toggleDimensions() {
var shape = document.getElementById('ductShape').value;
var rectInputs = document.getElementById('rectInputs');
var roundInputs = document.getElementById('roundInputs');
if (shape === 'rectangular') {
rectInputs.style.display = 'block';
roundInputs.style.display = 'none';
} else {
rectInputs.style.display = 'none';
roundInputs.style.display = 'block';
}
calculateDuctWeight();
}
function calculateDuctWeight() {
// 1. Get Inputs
var shape = document.getElementById('ductShape').value;
var material = document.getElementById('material').value;
var thickness = parseFloat(document.getElementById('gauge').value) / 1000; // convert mm to m
var length = parseFloat(document.getElementById('ductLength').value);
var waste = parseFloat(document.getElementById('wasteFactor').value);
var price = parseFloat(document.getElementById('pricePerKg').value);
// 2. Validate Inputs
var isValid = true;
// Reset errors
document.getElementById('errLength').style.display = 'none';
document.getElementById('errWidth').style.display = 'none';
document.getElementById('errHeight').style.display = 'none';
document.getElementById('errDiameter').style.display = 'none';
if (isNaN(length) || length < 0) {
document.getElementById('errLength').style.display = 'block';
isValid = false;
}
var perimeter = 0; // in meters
var area = 0; // in m2
if (shape === 'rectangular') {
var width = parseFloat(document.getElementById('ductWidth').value);
var height = parseFloat(document.getElementById('ductHeight').value);
if (isNaN(width) || width < 0) {
document.getElementById('errWidth').style.display = 'block';
isValid = false;
}
if (isNaN(height) || height < 0) {
document.getElementById('errHeight').style.display = 'block';
isValid = false;
}
if (isValid) {
// Perimeter = 2 * (w + h) / 1000 to convert mm to m
perimeter = 2 * (width + height) / 1000;
}
} else {
var diameter = parseFloat(document.getElementById('ductDiameter').value);
if (isNaN(diameter) || diameter < 0) {
document.getElementById('errDiameter').style.display = 'block';
isValid = false;
}
if (isValid) {
// Perimeter = PI * d / 1000
perimeter = Math.PI * diameter / 1000;
}
}
if (!isValid) return;
// 3. Calculations
area = perimeter * length;
var density = densityData[material];
// Volume = Area * Thickness
// Weight = Volume * Density * (1 + waste/100)
var baseWeight = area * thickness * density;
var totalWeight = baseWeight * (1 + (waste / 100));
var weightPerMeter = totalWeight / length;
var totalCost = totalWeight * price;
// 4. Update UI
document.getElementById('resultWeight').innerText = totalWeight.toFixed(2) + " kg";
document.getElementById('resultArea').innerText = area.toFixed(2) + " m²";
document.getElementById('resultPerMeter').innerText = weightPerMeter.toFixed(2) + " kg/m";
document.getElementById('resultCost').innerText = isNaN(totalCost) ? "0.00" : totalCost.toFixed(2);
// 5. Update Table
updateBreakdownTable(perimeter, thickness, density, waste, price);
// 6. Update Chart
drawChart(totalWeight, area, thickness, waste);
}
function updateBreakdownTable(perimeter, thickness, density, waste, price) {
var tbody = document.getElementById('breakdownTableBody');
tbody.innerHTML = "";
var lengths = [1, 5, 10, 25];
for (var i = 0; i < lengths.length; i++) {
var l = lengths[i];
var a = perimeter * l;
var w = a * thickness * density * (1 + (waste / 100));
var c = w * price;
var row = "
" +
"
" + l + " meters
" +
"
" + w.toFixed(2) + "
" +
"
" + a.toFixed(2) + "
" +
"
" + (isNaN(c) ? "-" : c.toFixed(2)) + "
" +
"
";
tbody.innerHTML += row;
}
}
function drawChart(currentWeight, area, thickness, waste) {
// Clear canvas
ctx.clearRect(0, 0, weightChartCanvas.width, weightChartCanvas.height);
// Set dimensions for high DPI
var dpr = window.devicePixelRatio || 1;
var rect = weightChartCanvas.getBoundingClientRect();
weightChartCanvas.width = rect.width * dpr;
weightChartCanvas.height = 300 * dpr;
ctx.scale(dpr, dpr);
// Calculate weights for all materials for comparison
var materials = ['galvanized', 'stainless', 'aluminum', 'blacksteel'];
var labels = ['Galvanized', 'Stainless', 'Aluminum', 'Black Steel'];
var colors = ['#004a99', '#6c757d', '#28a745', '#343a40'];
var values = [];
var maxVal = 0;
for (var i = 0; i maxVal) maxVal = w;
}
// Draw Bars
var chartHeight = 250;
var chartWidth = rect.width;
var barWidth = 50;
var gap = (chartWidth – (barWidth * materials.length)) / (materials.length + 1);
var bottomY = 270;
// Axis line
ctx.beginPath();
ctx.moveTo(30, bottomY);
ctx.lineTo(chartWidth – 10, bottomY);
ctx.strokeStyle = "#ccc";
ctx.stroke();
for (var i = 0; i < values.length; i++) {
var val = values[i];
var barHeight = (val / maxVal) * 200;
var x = gap + (i * (barWidth + gap));
var y = bottomY – barHeight;
// Bar
ctx.fillStyle = colors[i];
ctx.fillRect(x, y, barWidth, barHeight);
// Value Label
ctx.fillStyle = "#000";
ctx.font = "bold 12px Arial";
ctx.textAlign = "center";
ctx.fillText(Math.round(val) + " kg", x + (barWidth/2), y – 10);
// X Axis Label
ctx.fillStyle = "#555";
ctx.font = "12px Arial";
ctx.fillText(labels[i], x + (barWidth/2), bottomY + 20);
}
}
function resetCalculator() {
document.getElementById('ductShape').value = 'rectangular';
document.getElementById('material').value = 'galvanized';
document.getElementById('ductWidth').value = '500';
document.getElementById('ductHeight').value = '300';
document.getElementById('ductDiameter').value = '400';
document.getElementById('ductLength').value = '10';
document.getElementById('wasteFactor').value = '15';
document.getElementById('pricePerKg').value = '2.50';
toggleDimensions();
updateGaugeOptions();
calculateDuctWeight();
}
function copyResults() {
var w = document.getElementById('resultWeight').innerText;
var a = document.getElementById('resultArea').innerText;
var c = document.getElementById('resultCost').innerText;
var mat = document.getElementById('material');
var matText = mat.options[mat.selectedIndex].text;
var text = "Duct Weight Calculation:\n" +
"Material: " + matText + "\n" +
"Total Weight: " + w + "\n" +
"Surface Area: " + a + "\n" +
"Est. Cost: " + c;
var tempInput = document.createElement("textarea");
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
var btn = document.querySelector('.btn-copy');
var originalText = btn.innerText;
btn.innerText = "Copied!";
setTimeout(function(){ btn.innerText = originalText; }, 2000);
}
// Handle window resize for chart
window.onresize = function() {
calculateDuctWeight();
};