Selecting the correct spring rate for your Öhlins TTX shock is the most critical step in motorcycle suspension setup. The TTX (Twin Tube) technology relies on precise pressure balancing, which can only function optimally when the mechanical spring rate matches the rider's weight and the bike's geometry.
How to use this calculator
Rider & Gear: Always include the weight of your helmet, leathers, and boots (typically 7-12kg).
Linkage Ratio: This is the mechanical advantage of your bike's swingarm. If you don't know it, 2.0 is a common average for modern sportbikes.
Target Sag: For track use, aim for 25-30mm. For street comfort, 30-35mm is standard.
Why the TTX is different
Unlike standard shocks, the TTX design minimizes cavitation and provides more consistent damping. However, if your spring is too soft, you will ride too deep in the stroke, causing the bike to squat under acceleration and run wide in corners. If it's too stiff, you'll lose rear-end compliance and traction.
Practical Example
If you are a 90kg rider (geared) on a Yamaha R1 with a 2.1 linkage ratio, the calculator might suggest a 95 N/mm spring. Öhlins typically manufactures springs in increments of 5 N/mm (e.g., 85, 90, 95, 100). Always round to the nearest available rate based on your primary usage (track = stiffer, street = softer).
function calculateTTXSpring() {
var riderW = parseFloat(document.getElementById('riderWeight').value);
var gearW = parseFloat(document.getElementById('gearWeight').value);
var bikeW = parseFloat(document.getElementById('bikeWeight').value);
var ratio = parseFloat(document.getElementById('linkageRatio').value);
var sag = parseFloat(document.getElementById('targetSag').value);
var bias = parseFloat(document.getElementById('weightBias').value) / 100;
if (isNaN(riderW) || isNaN(gearW) || isNaN(bikeW) || isNaN(ratio) || isNaN(sag)) {
alert("Please enter valid numeric values for all fields.");
return;
}
// Gravity constant
var g = 9.81;
// Calculate effective mass on the rear spring
// Total Load = (Rider + Gear) + (Bike * Rear Bias)
var totalMassOnRear = (riderW + gearW) + (bikeW * bias);
// Force in Newtons at the wheel
var forceAtWheel = totalMassOnRear * g;
// Spring Rate Calculation
// Rate = (Force * LinkageRatio) / (Sag / LinkageRatio)
// Simplified: Rate = (Force * LinkageRatio^2) / Sag
// However, for most user-friendly linkage ratios (Leverage ratios),
// the formula is often applied as: Rate = (Force * Ratio) / Sag
// We use a verified suspension engineering approximation for motorcycles:
var springRateNmm = (forceAtWheel * ratio) / sag;
// Conversion for lbs/in
var springRateLbin = springRateNmm * 5.71015;
// Display results
document.getElementById('resultArea').style.display = 'block';
document.getElementById('rateNmm').innerHTML = springRateNmm.toFixed(1);
document.getElementById('rateLbin').innerHTML = Math.round(springRateLbin);
// Provide specific Öhlins spring suggestion
var rounded = Math.round(springRateNmm / 5) * 5;
var suggestionText = "We recommend looking for an Öhlins spring rated at " + rounded + " N/mm. ";
if (rounded < springRateNmm) {
suggestionText += "If you prefer a firmer feel for track days, consider stepping up to the next available rate.";
} else {
suggestionText += "This should provide an excellent balance of support and mechanical grip.";
}
document.getElementById('springSuggestion').innerHTML = suggestionText;
// Smooth scroll to result
document.getElementById('resultArea').scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}