Mtb Coil Spring Rate Calculator

MTB Coil Spring Rate Calculator .mtb-calc-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; background: #f9f9f9; border: 1px solid #e0e0e0; border-radius: 8px; } .mtb-calc-row { display: flex; flex-wrap: wrap; margin-bottom: 20px; gap: 20px; } .mtb-calc-col { flex: 1; min-width: 250px; } .mtb-label { display: block; margin-bottom: 8px; font-weight: 600; color: #333; } .mtb-input { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 16px; box-sizing: border-box; } .mtb-select { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 16px; background-color: white; box-sizing: border-box; } .mtb-btn { background-color: #d32f2f; color: white; padding: 15px 30px; border: none; border-radius: 4px; font-size: 18px; font-weight: bold; cursor: pointer; width: 100%; transition: background 0.3s; } .mtb-btn:hover { background-color: #b71c1c; } .mtb-result-box { background-color: #fff; padding: 25px; border-left: 5px solid #d32f2f; margin-top: 25px; display: none; box-shadow: 0 2px 5px rgba(0,0,0,0.05); } .result-header { font-size: 1.2rem; color: #666; margin: 0 0 10px 0; } .result-value { font-size: 2.5rem; font-weight: 800; color: #333; margin-bottom: 5px; } .result-sub { font-size: 1rem; color: #555; margin-top: 5px; } .spring-options { display: flex; gap: 15px; margin-top: 20px; padding-top: 20px; border-top: 1px solid #eee; } .spring-option { flex: 1; background: #f0f0f0; padding: 15px; border-radius: 4px; text-align: center; } .spring-option strong { display: block; font-size: 1.2rem; margin-bottom: 5px; } .info-section { margin-top: 40px; line-height: 1.6; color: #444; } .info-section h2 { color: #222; border-bottom: 2px solid #ddd; padding-bottom: 10px; margin-top: 30px; } .info-section h3 { color: #333; margin-top: 25px; } .info-section table { width: 100%; border-collapse: collapse; margin: 20px 0; } .info-section th, .info-section td { border: 1px solid #ddd; padding: 10px; text-align: left; } .info-section th { background-color: #f5f5f5; }

MTB Coil Spring Rate Calculator

Include helmet, shoes, pack & gear.
Check your shock markings (e.g., 230×60).
25% (Firm / XC) 28% (All Mountain) 30% (Standard Enduro) 33% (Plush / DH)

Ideal Spring Rate

0 lbs/in
Based on a leverage ratio of 0.0:1
Softer Option 0 lbs/in More Compliance
Recommended 0 lbs/in Best Baseline
Stiffer Option 0 lbs/in Big Hits / Aggressive

*Standard springs come in 50lb increments. Results assume a typical rear weight bias of 67%.

Understanding Coil Spring Rates

Choosing the correct coil spring rate is the single most important step in setting up a coil shock on your mountain bike. Unlike air shocks, where you can simply grab a pump to adjust sag, coil shocks require the physical spring to match your body weight and bike kinematics.

How This Calculator Works

This calculator uses a physics-based approach considering your weight, the bike's mechanical leverage ratio, and your desired sag point. The formula used is:

Spring Rate = (Weight × Bias × Leverage Ratio) / (Stroke_in × Sag%)

Where Bias is the rear weight distribution (typically 65-70% for mountain bikes) and Leverage Ratio is the Wheel Travel divided by the Shock Stroke.

Input Guide

  • Total Rider Weight: Do not use your "morning bathroom scale" weight. Put on your helmet, shoes, hydration pack, and riding kit. This usually adds 10-15 lbs.
  • Frame Travel: The vertical distance the rear wheel moves (in millimeters). Check your bike manufacturer's spec sheet.
  • Shock Stroke: The amount the shock shaft compresses. This is the second number in metric shock sizing (e.g., in a 230×60 shock, 60mm is the stroke).
  • Sag: The amount the bike compresses under your body weight alone.
    • 25%: Firm feel, better pedaling efficiency, less sensitive to small bumps.
    • 30%: The industry standard for Enduro/Trail. Good balance of grip and support.
    • 33%+: Very plush, maximum grip, used mostly for Downhill (DH) applications.

Standard vs. Calculated Rates

Your calculated "Ideal Rate" might be 432 lbs/in, but springs are typically manufactured in 50 lb increments (e.g., 400, 450, 500). If you fall between sizes:

Condition Recommendation
Aggressive / Jump Lines Round Up (Stiffer). Prevents bottom-outs on hard landings.
Technical / Roots / Wet Round Down (Softer). Improves traction and wheel tracking.
Preload Adjuster You can add up to 2 turns of preload to a softer spring to fine-tune sag, but never preload a spring more than 2-3 turns.
function calculateSpringRate() { // 1. Get Inputs var weightInput = document.getElementById("riderWeight").value; var travelInput = document.getElementById("rearTravel").value; var strokeInput = document.getElementById("shockStroke").value; var sagInput = document.getElementById("desiredSag").value; // 2. Validate Inputs if (weightInput === "" || travelInput === "" || strokeInput === "") { alert("Please fill in all fields (Weight, Travel, and Stroke)."); return; } var weight = parseFloat(weightInput); var travelMM = parseFloat(travelInput); var strokeMM = parseFloat(strokeInput); var sagPercent = parseFloat(sagInput); if (isNaN(weight) || isNaN(travelMM) || isNaN(strokeMM) || weight <= 0 || strokeMM <= 0) { alert("Please enter valid positive numbers."); return; } // 3. Constants and Conversions // Convert MM to Inches for the calculation (Spring rates are Lbs/Inch) var strokeInches = strokeMM / 25.4; var travelInches = travelMM / 25.4; // Rear Weight Bias: Percentage of weight on rear wheel while standing in "attack position" // 67% (0.67) is a widely accepted industry standard for modern geometry var rearBias = 0.67; // 4. Calculate Leverage Ratio var leverageRatio = travelMM / strokeMM; // 5. Calculate Required Spring Rate // Formula: k = (RiderWeight * Bias * Leverage) / (StrokeInches * SagDecimal) // Explanation: // Force on Wheel = Weight * Bias // Force on Shock = Force on Wheel * LeverageRatio // Sag Displacement (inches) = StrokeInches * (SagPercent / 100) // Spring Rate = Force on Shock / Sag Displacement var forceOnWheel = weight * rearBias; var forceOnShock = forceOnWheel * leverageRatio; var sagDisplacement = strokeInches * (sagPercent / 100); var idealRate = forceOnShock / sagDisplacement; // 6. Calculate Standard Spring Options (Nearest 50lbs) // Springs usually come in 25lb or 50lb increments. We will use 50lb for general recommendation. var roundedRate = Math.round(idealRate / 50) * 50; var softOption = Math.floor(idealRate / 50) * 50; var stiffOption = Math.ceil(idealRate / 50) * 50; // Handle case where ideal is exactly a multiple of 50 if (softOption === stiffOption) { softOption -= 50; stiffOption += 50; } // 7. Update DOM document.getElementById("idealRateDisplay").innerHTML = Math.round(idealRate) + " lbs/in"; document.getElementById("leverageDisplay").innerText = leverageRatio.toFixed(2); document.getElementById("softOption").innerText = softOption + " lbs"; document.getElementById("stiffOption").innerText = stiffOption + " lbs"; // Logic for "Recommended" // If the ideal rate is closer to the stiff option, recommend stiff, otherwise soft. var distToSoft = Math.abs(idealRate – softOption); var distToStiff = Math.abs(idealRate – stiffOption); var recommended = (distToStiff < distToSoft) ? stiffOption : softOption; document.getElementById("recOption").innerText = recommended + " lbs"; // Show result box document.getElementById("results").style.display = "block"; // Scroll to results document.getElementById("results").scrollIntoView({ behavior: 'smooth' }); }

Leave a Comment