Selecting the correct wire size is crucial for electrical safety, system efficiency, and preventing equipment damage. An undersized wire can overheat, leading to insulation breakdown, fire hazards, and wasted energy due to excessive voltage drop. An oversized wire, while safe, can be more costly and difficult to install.
This calculator helps determine the appropriate wire size (gauge) based on several key factors:
Current (Amps): The maximum electrical current the circuit will carry. This is determined by the load (e.g., appliance, motor). Exceeding the ampacity (current-carrying capacity) of a wire is a primary safety concern.
Allowable Voltage Drop: The maximum acceptable decrease in voltage from the source to the load. Excessive voltage drop can cause equipment to malfunction or operate inefficiently. A common rule of thumb is to limit voltage drop to 3% for branch circuits and 5% for feeders, but local codes may specify different limits.
Conductor Material: Copper is the most common material due to its excellent conductivity. Aluminum is lighter and less expensive but requires larger gauge wires for the same conductivity and has different connection requirements.
Insulation Temperature Rating: The maximum temperature the wire's insulation can withstand. Higher temperature ratings (e.g., 90°C) often allow for higher ampacity in the same wire size compared to lower temperature ratings (e.g., 60°C), but the ampacity must be limited by the temperature rating of the terminals it connects to (often 60°C or 75°C).
Wire Length: Longer wire runs result in greater voltage drop.
The Underlying Math
Wire size selection primarily involves two considerations: ampacity and voltage drop.
1. Ampacity:
This refers to the maximum current a conductor can carry continuously under specific conditions without exceeding its temperature rating. Ampacity charts, such as those found in the National Electrical Code (NEC) Table 310.15(B)(16) for general use, provide this information. The calculator uses these tables as a basis. However, adjustments for ambient temperature, conduit fill, and terminal temperature ratings may be necessary in real-world installations, and these are often simplified or considered by specific terminal ratings in this calculator.
2. Voltage Drop:
The formula for voltage drop in AC circuits is approximately:
$VD = (2 \times K \times L \times I) / CM$
Where:
$VD$ = Voltage Drop (in Volts)
$K$ = Resistivity of the conductor (approx. 12.9 ohm-cmil/ft for copper, 21.2 ohm-cmil/ft for aluminum at 75°C)
$L$ = Length of the circuit (one way, in feet)
$I$ = Current (in Amps)
$CM$ = Circular Mils area of the conductor (from wire gauge tables)
This formula is often rearranged to find the required conductor size (CM) for a desired voltage drop:
$CM = (2 \times K \times L \times I) / VD_{max}$
Where $VD_{max}$ is the maximum allowable voltage drop in Volts ($VD_{max} = Allowable\_Voltage\_Drop\_Percent \times Source\_Voltage$).
The calculator first determines the minimum wire size based on ampacity requirements, then checks if that size meets the voltage drop requirements. If not, it selects a larger wire size until both conditions are met. The values used for K are typical approximations. For precise calculations, consult relevant electrical codes and standards.
Use Cases
This calculator is useful for:
Homeowners planning new circuits or extending existing ones.
Electricians and DIY enthusiasts verifying wire sizes for safety and performance.
Determining wire sizes for lighting circuits, power outlets, appliances, and low-voltage control systems.
Ensuring compliance with electrical codes and preventing common electrical issues.
Disclaimer: This calculator provides an estimate for educational and planning purposes. Always consult the National Electrical Code (NEC) or your local electrical code, and consider consulting a qualified electrician for critical installations. Factors like conduit fill, specific installation methods, and ambient temperatures can affect the actual required wire size.
function calculateWireSize() {
var currentAmps = parseFloat(document.getElementById("currentAmps").value);
var voltageDropPercent = parseFloat(document.getElementById("voltageDrop").value);
var wireMaterial = document.getElementById("wireMaterial").value;
var insulationTemp = parseInt(document.getElementById("insulationTemp").value);
var wireLength = parseFloat(document.getElementById("wireLength").value);
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = "Your required wire size will appear here.";
// Basic validation
if (isNaN(currentAmps) || currentAmps <= 0 ||
isNaN(voltageDropPercent) || voltageDropPercent <= 0 ||
isNaN(wireLength) || wireLength <= 0) {
resultDiv.innerHTML = "Please enter valid positive numbers for all fields.";
return;
}
// — Constants and Data (Simplified for common use, based on NEC approximations) —
// Resistivity (K) in ohm-cmil/ft at ~75°C
var K_values = {
copper: 12.9,
aluminum: 21.2
};
// Ampacity tables (Simplified – This would typically be a large lookup based on NEC tables)
// Format: { AWG: { '60': ampacity, '75': ampacity, '90': ampacity } }
// Values are illustrative and simplified. Real NEC tables are more detailed.
var ampacity_data = {
'14': { '60': 20, '75': 25, '90': 30 },
'12': { '60': 25, '75': 30, '90': 35 },
'10': { '60': 30, '75': 35, '90': 40 },
'8': { '60': 40, '75': 50, '90': 55 },
'6': { '60': 55, '75': 65, '90': 75 },
'4': { '60': 70, '75': 85, '90': 95 },
'3': { '60': 80, '75': 100, '90': 110 },
'2': { '60': 95, '75': 115, '90': 125 },
'1': { '60': 100, '75': 130, '90': 145 },
'1/0′:{ '60': 115, '75': 150, '90': 175 },
'2/0′:{ '60': 130, '75': 175, '90': 200 },
'3/0′:{ '60': 150, '75': 200, '90': 230 },
'4/0′:{ '60': 175, '75': 230, '90': 260 }
};
// Circular Mils (CM) for each AWG size
var cm_data = {
'14': 4110,
'12': 6530,
'10': 10380,
'8': 16510,
'6': 26240,
'4': 41740,
'3': 52620,
'2': 66360,
'1': 83690,
'1/0':105600,
'2/0':133100,
'3/0':167800,
'4/0':211600
};
var K = K_values[wireMaterial];
var available_sizes = Object.keys(ampacity_data).sort(function(a, b) {
// Custom sort for AWG sizes (numeric part first, then handle fractions)
var numA = parseFloat(a.replace('/', '.'));
var numB = parseFloat(b.replace('/', '.'));
if (!isNaN(numA) && !isNaN(numB)) return numA – numB;
return a.localeCompare(b);
});
var required_size_awg = null;
var vd_volts_max = 120 * (voltageDropPercent / 100); // Assuming 120V for VD calculation basis
if(isNaN(vd_volts_max) || vd_volts_max <= 0) vd_volts_max = 3.6; // Default to 3% of 120V if calculation fails
// — Calculation Logic —
var selected_insulation_temp_str = String(insulationTemp);
// 1. Determine minimum size based on ampacity and insulation temp
for (var i = 0; i = currentAmps) {
// Found a size that meets ampacity. Now check voltage drop.
var cm = cm_data[awg];
if (cm) {
var voltage_drop = (2 * K * wireLength * currentAmps) / cm;
if (voltage_drop <= vd_volts_max) {
required_size_awg = awg;
break; // Found the smallest size that meets both
}
}
}
}
// If no size found in the loop, we might need a larger one or the input is extreme
if (!required_size_awg) {
// Check the largest available size for ampacity first
var largest_awg = available_sizes[available_sizes.length – 1];
var largest_ampacity = ampacity_data[largest_awg][selected_insulation_temp_str] || ampacity_data[largest_awg]['60'];
if (largest_ampacity < currentAmps) {
resultDiv.innerHTML = "Current is too high for available wire sizes. Consult an electrician.";
return;
}
// If largest size meets ampacity, find the smallest size that also meets VD
for (var i = 0; i = currentAmps) {
if (cm) {
var voltage_drop = (2 * K * wireLength * currentAmps) / cm;
if (voltage_drop <= vd_volts_max) {
required_size_awg = awg;
break;
}
}
}
}
}
// — Display Result —
if (required_size_awg) {
var final_result_html = "Required Wire Size: " + required_size_awg + " AWG (" + wireMaterial.charAt(0).toUpperCase() + wireMaterial.slice(1) + ")";
var final_cm = cm_data[required_size_awg];
var final_ampacity = ampacity_data[required_size_awg][selected_insulation_temp_str] || ampacity_data[required_size_awg]['60'];
var final_voltage_drop = (2 * K * wireLength * currentAmps) / final_cm;
final_result_html += "Based on Ampacity: " + currentAmps + " A (minimum required capacity: " + final_ampacity + " A)";
final_result_html += "Estimated Voltage Drop: " + final_voltage_drop.toFixed(2) + " V (" + (final_voltage_drop / 120 * 100).toFixed(2) + "% of 120V)"; // Assuming 120V source for % VD
resultDiv.innerHTML = final_result_html;
} else {
resultDiv.innerHTML = "Could not determine a suitable wire size. Check your inputs or consult an electrician.";
}
}