Metric Equivalent: 0 N/mm
Racing Standard: 0 kg/mm
What is Spring Rate?
Spring rate (often denoted as k) is a measure of the stiffness of a coil spring. It represents the amount of force required to compress the spring by one unit of measurement. For example, if a spring has a rate of 500 lb/in, it requires 500 pounds of force to compress the spring by 1 inch.
The Spring Rate Formula
This calculator uses the standard mechanical engineering formula for helical compression springs based on Hooke's Law and shear modulus geometry:
k = (G × d⁴) / (8 × n × D³)
Where:
G = Shear Modulus of the material (e.g., 11,500,000 psi for steel).
d = Wire Diameter (thickness of the wire itself).
n = Number of Active Coils (coils free to deflect).
D = Mean Coil Diameter (Outer Diameter – Wire Diameter).
Why Spring Rate Matters
Automotive Suspension: A higher spring rate reduces body roll and prevents bottoming out under heavy loads, but can result in a harsher ride. A lower rate offers comfort but may sacrifice handling precision.
Industrial Machinery: Correct spring rates ensure that valves close with the necessary force and that vibration isolators function correctly.
Active Coils vs. Total Coils
When measuring your spring, do not simply count every loop. "Active Coils" are the coils that are free to move. For standard compression springs with closed and ground ends, the active coil count is usually the Total Coils minus 2.
Imperial vs. Metric Conversion
Spring rates are commonly expressed in three ways depending on your location and industry:
lb/in: Standard in the US (NASCAR, Drag Racing).
kg/mm: Standard in Japanese/European aftermarket (Coilovers, JDM).
N/mm: Standard in OEM Engineering and Physics.
Conversion Factor: 1 lb/in ≈ 0.0179 kg/mm.
function calculateSpringRate() {
// 1. Get Input Values
var d = parseFloat(document.getElementById('wireDiameter').value);
var OD = parseFloat(document.getElementById('outerDiameter').value);
var n = parseFloat(document.getElementById('activeCoils').value);
var G = parseFloat(document.getElementById('materialType').value);
// 2. Select Output Elements
var resultBox = document.getElementById('resultBox');
var errorDisplay = document.getElementById('errorDisplay');
var resultImperial = document.getElementById('resultImperial');
var resultMetric = document.getElementById('resultMetric');
var resultKgMm = document.getElementById('resultKgMm');
// 3. Reset UI
errorDisplay.style.display = 'none';
resultBox.style.display = 'none';
// 4. Validation Logic
if (isNaN(d) || isNaN(OD) || isNaN(n) || d <= 0 || OD <= 0 || n = OD) {
errorDisplay.innerText = "Wire Diameter (d) cannot be larger than or equal to Outer Diameter (OD).";
errorDisplay.style.display = 'block';
return;
}
// 5. Calculation Logic
// Calculate Mean Diameter (D)
var D = OD – d;
// Formula: k = (G * d^4) / (8 * n * D^3)
var numerator = G * Math.pow(d, 4);
var denominator = 8 * n * Math.pow(D, 3);
var springRateLbsIn = numerator / denominator;
// Conversions
// 1 lb/in = 0.175127 N/mm
var springRateNmm = springRateLbsIn * 0.175127;
// 1 lb/in = 0.017858 kg/mm
var springRateKgMm = springRateLbsIn * 0.017858;
// 6. Output Formatting
resultImperial.innerText = springRateLbsIn.toFixed(2) + " lb/in";
resultMetric.innerText = springRateNmm.toFixed(2) + " N/mm";
resultKgMm.innerText = springRateKgMm.toFixed(2) + " kg/mm";
// 7. Show Result
resultBox.style.display = 'block';
}