Calculate the ideal spring rate for your mountain bike based on your weight, bike geometry, and desired sag.
Total weight including helmet, pads, shoes, and pack.
The total vertical travel of the rear axle.
The amount the shock shaft compresses (e.g., 57.5, 60, 65).
25% (Firm / XC / Slopestyle)
28% (All-Mountain / Trail)
30% (Enduro / Standard)
33% (Plush / DH)
Percentage of travel used by just your body weight.
Recommended Spring Rate0 lbs/in
Calculated Ideal Rate:0 lbs/in
Leverage Ratio:0.0 : 1
Spring Compression at Sag:0 mm
How to Choose the Correct MTB Spring Rate
Setting up a coil shock on a mountain bike requires physics, not guesswork. Unlike air shocks where you can adjust pressure with a pump, coil shocks require physical springs with specific "rates." The spring rate (measured in lbs/in) determines how much force is required to compress the spring by one inch.
1. Why Spring Rate Matters
The correct spring rate ensures your suspension operates in the "sweet spot."
Too Soft: The bike will sit too low in its travel (excessive sag), pedal poorly, wallow in corners, and bottom out harshly on impacts.
Too Firm: You will struggle to use full travel, the ride will feel harsh and chattery, and traction will be reduced as the wheel won't track the ground effectively.
2. Input Definitions
To use this calculator effectively, ensure your inputs are accurate:
Rider Weight: Do not use your "morning bathroom scale" weight. Weigh yourself fully kitted with your helmet, shoes, hydration pack, and protective gear. This often adds 10-15 lbs to your base weight.
Rear Wheel Travel: This is the manufacturer's specified travel for the frame (e.g., 150mm or 170mm).
Shock Stroke: This is the specific length of the shaft travel on your shock. Common metric sizes include 55mm, 60mm, and 65mm. Note: This is NOT the eye-to-eye length.
Sag: This is personal preference and frame-dependent.
25%: Firm feel, better pedaling efficiency, common for jump lines.
30%: The industry standard for Enduro and Trail bikes, offering a balance of grip and support.
33%+: Very plush, typically reserved for Downhill (DH) bikes.
3. Understanding the Calculation
This calculator determines your bike's average Leverage Ratio (Wheel Travel รท Shock Stroke) and applies a rear-weight bias (typically ~67% of rider weight on the rear wheel for modern geometry). It then uses Hooke's Law to determine the spring stiffness required to support that weight at the specific sag point.
Pro Tip: Springs are typically sold in 50lb increments (e.g., 400, 450, 500 lbs/in). If your calculated result falls exactly between two sizes (e.g., 425 lbs/in), aggressive riders typically round up (450), while riders seeking comfort round down (400) and add a few turns of preload.
function calculateSpringRate() {
// 1. Get Inputs
var weightInput = document.getElementById("riderWeight").value;
var travelInput = document.getElementById("wheelTravel").value;
var strokeInput = document.getElementById("shockStroke").value;
var sagInput = document.getElementById("desiredSag").value;
// 2. Validation
if (weightInput === "" || travelInput === "" || strokeInput === "" || weightInput <= 0 || travelInput <= 0 || strokeInput <= 0) {
alert("Please enter valid positive numbers for Weight, Travel, and Stroke.");
return;
}
// 3. Convert Types
var riderWeightLbs = parseFloat(weightInput);
var travelMm = parseFloat(travelInput);
var strokeMm = parseFloat(strokeInput);
var sagPercent = parseFloat(sagInput);
// 4. Constants & Unit Conversion
// Convert mm to inches for the standard Imperial spring formula
var travelInch = travelMm / 25.4;
var strokeInch = strokeMm / 25.4;
var sagDecimal = sagPercent / 100;
// Rear Weight Bias (Approximation)
// Most modern enduro/trail bikes have a weight distribution of approx 65-70% on the rear when in the attack position or climbing.
// We use 0.67 (67%) as a safe median for calculation.
var rearBias = 0.67;
// 5. Logic Calculation
// Leverage Ratio = Wheel Travel / Shock Stroke
var leverageRatio = travelInch / strokeInch;
// Force on rear wheel = Rider Weight * Bias
// Force on shock = (Force on rear wheel) * Leverage Ratio
// Spring Rate k = Force on shock / Spring Compression amount
// Compression amount at sag = Stroke * SagDecimal
// Combined Formula: k = (Weight * Bias * Leverage) / (Stroke * Sag)
// Simplified: k = (Weight * Bias * Travel) / (Stroke^2 * Sag)
var numerator = riderWeightLbs * rearBias * travelInch;
var denominator = (strokeInch * strokeInch) * sagDecimal;
var rawSpringRate = numerator / denominator;
// 6. Rounding to Nearest Standard Spring (25 lb increments usually, but sold in 50s usually)
// Let's round to nearest 50 for the "Recommended" and show exact for "Calculated"
var recommendedSpringRate = Math.round(rawSpringRate / 50) * 50;
// Calculate Sag Compression in mm for display
var sagMm = strokeMm * sagDecimal;
// 7. Display Results
document.getElementById("calcResult").innerText = recommendedSpringRate + " lbs";
document.getElementById("exactRate").innerText = Math.round(rawSpringRate) + " lbs/in";
document.getElementById("leverageRatio").innerText = leverageRatio.toFixed(2) + " : 1";
document.getElementById("sagCompression").innerText = sagMm.toFixed(1) + " mm";
// Show result box
var resultBox = document.getElementById("resultBox");
resultBox.className = "results-box visible";
// Scroll to results on mobile
if(window.innerWidth < 768) {
resultBox.scrollIntoView({behavior: 'smooth'});
}
}