This calculator helps you determine the appropriate spring rate for your motocross bike's suspension based on rider weight and bike geometry. Proper spring rate is crucial for optimal handling, traction, and rider comfort.
Typically 33% for motocross (front and rear).
Measure the total travel of your front forks (e.g., 300mm).
Measure the total travel of your rear shock (e.g., 310mm).
function calculateSpringRate() {
var riderWeight = parseFloat(document.getElementById("riderWeight").value);
var staticSagPercentage = parseFloat(document.getElementById("staticSagPercentage").value);
var forkTravel = parseFloat(document.getElementById("forkTravel").value);
var shockTravel = parseFloat(document.getElementById("shockTravel").value);
var resultDiv = document.getElementById("result");
resultDiv.innerHTML = ""; // Clear previous results
if (isNaN(riderWeight) || isNaN(staticSagPercentage) || isNaN(forkTravel) || isNaN(shockTravel)) {
resultDiv.innerHTML = "Please enter valid numbers for all fields.";
return;
}
if (riderWeight <= 0 || staticSagPercentage 100 || forkTravel <= 0 || shockTravel <= 0) {
resultDiv.innerHTML = "Please enter positive values for all fields, and sag between 1% and 100%.";
return;
}
// — Calculations —
// This is a simplified calculation. Actual spring rates depend on many factors like linkage ratios,
// valving, riding style, and terrain. Consult a suspension tuner for precise setup.
// Calculate target static sag in mm
var targetStaticSagFront = forkTravel * (staticSagPercentage / 100);
var targetStaticSagRear = shockTravel * (staticSagPercentage / 100);
// A very rough estimation of spring rate based on rider weight and sag.
// This often involves using a spring rate chart or a more complex formula
// that accounts for leverage ratios and the spring's free length.
// For this calculator, we'll provide a guideline based on a common assumption
// that approximately 10-15mm of sag per 20kg of rider weight is a starting point.
// This is a HIGHLY simplified model.
// Approximate force needed to achieve sag (in kg-force for simplicity, though spring rates are typically N/mm or lb/in)
var requiredForceFront_kg = riderWeight * (staticSagPercentage / 100); // Very simplified
var requiredForceRear_kg = riderWeight * (staticSagPercentage / 100); // Very simplified
// Spring rate is Force / Displacement. Here, we are approximating the force
// required and the displacement is the sag itself.
// This is NOT a direct calculation of K = F/x for the spring itself, but an approximation.
// In reality, the spring rate K is what causes the sag X when a force F is applied.
// So, K = F/X. We are approximating F by rider weight and X by sag.
// Let's use a more common approach where spring rate is estimated by:
// Spring Rate (N/mm) = (Rider Weight (kg) * 9.81 m/s²) / (Sag (mm))
// We'll convert kg to lbs for common spring rate units (lb/in) later.
var riderWeight_N = riderWeight * 9.81; // Convert kg to Newtons
var frontSpringRate_N_per_mm = isNaN(targetStaticSagFront) || targetStaticSagFront === 0 ? 0 : riderWeight_N / targetStaticSagFront;
var rearSpringRate_N_per_mm = isNaN(targetStaticSagRear) || targetStaticSagRear === 0 ? 0 : riderWeight_N / targetStaticSagRear;
// Convert N/mm to lb/in (1 N/mm ≈ 5.71 lb/in)
var conversionFactor = 5.71;
var frontSpringRate_lb_per_in = frontSpringRate_N_per_mm * conversionFactor;
var rearSpringRate_lb_per_in = rearSpringRate_N_per_mm * conversionFactor;
// Display results
resultDiv.innerHTML = "Estimated Spring Rates:" +
"Front Fork: " + frontSpringRate_lb_per_in.toFixed(1) + " lb/in (approx. " + frontSpringRate_N_per_mm.toFixed(1) + " N/mm)" +
"Rear Shock: " + rearSpringRate_lb_per_in.toFixed(1) + " lb/in (approx. " + rearSpringRate_N_per_mm.toFixed(1) + " N/mm)" +
"Note: These are estimations. Consult a suspension professional for precise tuning based on your bike model, riding style, and terrain.";
}