Wheel travel divided by shock travel (Avg: 2.0 – 3.0).
Approx. 50-60% for most street bikes.
Street / Touring (Comfort)
Sport / Standard (Balanced)
Track / Racing (Stiff)
Please enter valid numerical values for all fields.
Recommended Rear Spring Rate
—
Metric (kg/mm)
—
Imperial (lbs/in)
—
Newton (N/mm)
30%
Target Race Sag
*Values are estimates based on linear spring physics. Always verify with specific model charts.
Understanding Motorcycle Spring Rates
Choosing the correct spring rate is the foundation of motorcycle suspension tuning. Whether you are upgrading your suspension with Eibach springs for track performance or street comfort, the goal is to support the total mass of the bike and rider while maintaining the correct geometry.
How This Calculation Works
This calculator determines the ideal spring stiffness required to hold the motorcycle and rider at the optimal "Race Sag" (typically 30-33% of suspension travel). The calculation accounts for several mechanical factors:
Sprung Weight: The calculated load on the rear shock, combining the bike's rear weight bias and the rider's weight (positioned primarily over the rear).
Leverage Ratio: Most motorcycles use a linkage system where the rear wheel moves further than the shock shaft. A ratio of 2:1 means the wheel moves 2 inches for every 1 inch the shock compresses. This multiplies the force on the spring.
Shock Stroke: The physical travel distance of the shock absorber itself, which is crucial for determining how much the spring must compress.
Why Specific Spring Rates Matter
An incorrect spring rate compromises handling and safety:
Too Soft: The bike sits too low (excessive sag), reducing cornering clearance and causing the suspension to bottom out over bumps. This leads to instability and poor steering response.
Too Stiff: The suspension will not compress enough to absorb road irregularities, causing the tire to skip over bumps and reducing traction. The ride will feel harsh and uncomfortable.
Metric vs. Imperial Conversion
Spring rates are commonly listed in three units depending on the manufacturer and region. Eibach typically uses metric or imperial depending on the application.
kg/mm: Kilograms per millimeter. Common for Japanese and European bikes.
lbs/in: Pounds per inch. Common for American V-Twins and older suspension systems.
N/mm: Newtons per millimeter. The scientific standard (1 kg/mm ≈ 9.807 N/mm).
Measuring Your Leverage Ratio
If you do not know your bike's specific leverage ratio, you can estimate it by dividing your total Rear Wheel Travel by your Shock Stroke. For example, if your rear wheel moves 5 inches (127mm) and your shock shaft travels 2.5 inches (63.5mm), your ratio is 2.0.
function calculateSpringRate() {
// 1. Get input values
var riderWeight = document.getElementById("riderWeight").value;
var bikeWeight = document.getElementById("bikeWeight").value;
var shockStroke = document.getElementById("shockStroke").value;
var leverageRatio = document.getElementById("leverageRatio").value;
var rearBias = document.getElementById("rearBias").value;
var styleModifier = document.getElementById("ridingStyle").value;
var errorMsg = document.getElementById("errorMsg");
var resultArea = document.getElementById("result-area");
// 2. Validate inputs
if (riderWeight === "" || bikeWeight === "" || shockStroke === "" || leverageRatio === "" || rearBias === "") {
errorMsg.style.display = "block";
resultArea.style.display = "none";
return;
}
// Convert strings to floats
var rider = parseFloat(riderWeight);
var bike = parseFloat(bikeWeight);
var stroke = parseFloat(shockStroke);
var ratio = parseFloat(leverageRatio);
var bias = parseFloat(rearBias) / 100; // Convert percentage to decimal
var modifier = parseFloat(styleModifier);
if (isNaN(rider) || isNaN(bike) || isNaN(stroke) || isNaN(ratio) || isNaN(bias)) {
errorMsg.style.display = "block";
resultArea.style.display = "none";
return;
}
errorMsg.style.display = "none";
// 3. Calculation Logic
// Step A: Determine Total Sprung Mass on Rear
// We subtract approx 30lbs for unsprung weight (wheel, brake, swingarm, chain) from bike total
var unsprungWeightEstimate = 30;
var sprungBikeWeight = bike – unsprungWeightEstimate;
// Calculate portion of bike weight on rear
var bikeRearWeight = sprungBikeWeight * bias;
// Calculate portion of rider weight on rear (Riders sit mostly on the rear, approx 65-70%)
var riderRearWeight = rider * 0.70;
var totalRearLoad = bikeRearWeight + riderRearWeight;
// Step B: Calculate Force applied to the shock shaft
// Force = Weight * Leverage Ratio
var forceOnShock = totalRearLoad * ratio;
// Step C: Determine Target Sag Distance
// Standard Race Sag is typically 30% to 33% of the stroke
// We use 33% as a baseline for calculation, modified by the "Style" input
// If style is stiff (Track), we essentially want a spring that requires more force for the same sag,
// or rather, we multiply the final rate.
var targetSagPercent = 0.33;
var sagDistance = stroke * targetSagPercent;
// Step D: Calculate Spring Rate
// K = Force / Distance
// This calculates the rate needed to support the STATIC sag.
// However, linear springs are usually selected so that:
// (ForceOnShock) / Rate = SagDistance.
// This is a simplification. A more accurate tuner method estimates:
// Rate = (ForceOnShock) / (Stroke * 0.5) for total bottoming resistance?
// No, let's stick to the Sag method which is the industry standard for initial selection.
var calculatedRateLbs = (forceOnShock / sagDistance) * modifier;
// 4. Conversions
// 1 lb/in = 0.0178579673 kg/mm
// 1 kg/mm = 55.9974 lbs/in
var rateKg = calculatedRateLbs / 56.0;
var rateN = rateKg * 9.807;
// 5. Update UI
document.getElementById("resKg").innerHTML = rateKg.toFixed(1) + " kg/mm";
document.getElementById("resLbs").innerHTML = Math.round(calculatedRateLbs) + " lbs/in";
document.getElementById("resN").innerHTML = Math.round(rateN) + " N/mm";
resultArea.style.display = "block";
// Simple animation effect
resultArea.scrollIntoView({behavior: "smooth"});
}