K-tech Spring Weight Calculator

K-Tech Spring Weight Calculator | Professional Suspension Tuning Tool :root { –primary-color: #004a99; –secondary-color: #003366; –success-color: #28a745; –bg-color: #f8f9fa; –text-color: #333; –border-color: #dee2e6; –white: #ffffff; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; line-height: 1.6; color: var(–text-color); background-color: var(–bg-color); } .container { max-width: 960px; margin: 0 auto; padding: 20px; } header { text-align: center; margin-bottom: 40px; padding: 40px 0; background: var(–primary-color); color: var(–white); border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } h1 { font-size: 2.5rem; margin-bottom: 10px; } .subtitle { font-size: 1.1rem; opacity: 0.9; } /* Calculator Styles */ .calc-wrapper { background: var(–white); padding: 30px; border-radius: 8px; box-shadow: 0 2px 15px rgba(0,0,0,0.05); margin-bottom: 50px; border: 1px solid var(–border-color); } .input-section { margin-bottom: 30px; } .input-group { margin-bottom: 20px; } label { display: block; font-weight: 600; margin-bottom: 8px; color: var(–secondary-color); } input[type="number"], select { width: 100%; padding: 12px; border: 1px solid var(–border-color); border-radius: 4px; font-size: 16px; transition: border-color 0.3s; } input[type="number"]:focus, select:focus { outline: none; border-color: var(–primary-color); box-shadow: 0 0 0 3px rgba(0, 74, 153, 0.1); } .helper-text { font-size: 0.85rem; color: #6c757d; margin-top: 5px; } .error-msg { color: #dc3545; font-size: 0.85rem; margin-top: 5px; display: none; } .btn-group { display: flex; gap: 15px; margin-top: 25px; } button { padding: 12px 24px; border: none; border-radius: 4px; font-size: 16px; font-weight: 600; cursor: pointer; transition: background-color 0.2s; } .btn-reset { background-color: #6c757d; color: white; } .btn-copy { background-color: var(–success-color); color: white; } button:hover { opacity: 0.9; } /* Results Styles */ .results-section { background-color: #f1f8ff; padding: 25px; border-radius: 6px; border-left: 5px solid var(–primary-color); margin-top: 30px; } .main-result { text-align: center; margin-bottom: 25px; padding-bottom: 20px; border-bottom: 1px solid #d1e3f5; } .result-label { font-size: 1.1rem; color: var(–secondary-color); margin-bottom: 10px; } .result-value { font-size: 2.5rem; font-weight: 700; color: var(–primary-color); } .result-unit { font-size: 1.2rem; color: #666; } .intermediate-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; margin-bottom: 25px; } .int-item { background: white; padding: 15px; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.05); } .int-label { font-size: 0.9rem; color: #666; margin-bottom: 5px; } .int-value { font-size: 1.2rem; font-weight: 600; color: var(–text-color); } .formula-explanation { font-size: 0.9rem; background: #fff3cd; padding: 15px; border-radius: 4px; color: #856404; margin-top: 20px; } /* Table & Chart */ .data-visuals { margin-top: 40px; } table { width: 100%; border-collapse: collapse; margin-bottom: 30px; background: white; } th, td { padding: 12px; text-align: left; border-bottom: 1px solid var(–border-color); } th { background-color: var(–primary-color); color: white; } .chart-container { position: relative; height: 300px; width: 100%; background: white; border: 1px solid var(–border-color); border-radius: 4px; padding: 10px; } /* Article Styles */ article { background: var(–white); padding: 40px; border-radius: 8px; box-shadow: 0 2px 15px rgba(0,0,0,0.05); } h2 { color: var(–primary-color); margin-top: 40px; margin-bottom: 20px; font-size: 1.8rem; border-bottom: 2px solid #eee; padding-bottom: 10px; } h3 { color: var(–secondary-color); margin-top: 25px; margin-bottom: 15px; font-size: 1.4rem; } p { margin-bottom: 15px; font-size: 1.05rem; } ul, ol { margin-bottom: 20px; padding-left: 25px; } li { margin-bottom: 8px; } .faq-item { margin-bottom: 20px; border-bottom: 1px solid #eee; padding-bottom: 20px; } .faq-question { font-weight: 700; color: var(–primary-color); margin-bottom: 10px; display: block; } .internal-links { background: #f8f9fa; padding: 20px; border-radius: 6px; margin-top: 30px; } .internal-links a { color: var(–primary-color); text-decoration: none; font-weight: 600; } .internal-links a:hover { text-decoration: underline; } footer { text-align: center; margin-top: 50px; padding: 20px; color: #666; font-size: 0.9rem; } @media (max-width: 600px) { h1 { font-size: 2rem; } .calc-wrapper { padding: 20px; } .btn-group { flex-direction: column; } .intermediate-grid { grid-template-columns: 1fr; } }

K-Tech Spring Weight Calculator

Professional Suspension Tuning & Spring Rate Estimation

Enter your weight including full riding gear (helmet, boots, suit).
Please enter a valid weight (40-200kg).
Sport / Superbike (600cc – 1000cc) Naked / Streetfighter Adventure / Touring Motocross / Enduro
Select the category that best matches your motorcycle.
Street / Road Use (Standard) Track Day / Racing (Stiffer) Touring / Comfort (Softer)
Affects the stiffness calculation for performance vs comfort.
Recommended Fork Spring Rate
9.5 N/mm
Shock Spring Rate
95 N/mm
Target Static Sag (F)
25-30 mm
Target Rider Sag (F)
35-40 mm
Calculation Logic: Based on a standard 75kg rider baseline. Fork rate adjusts by approx 0.05 N/mm per kg deviation. Shock rate adjusts by approx 0.5 N/mm per kg deviation. Track usage adds ~5% stiffness; Comfort removes ~5%.

Spring Rate vs. Rider Weight Projection

Chart shows estimated Fork Spring Rate (N/mm) as rider weight increases for the selected bike type.

Recommended Sag Settings Reference

Discipline Static Sag (Front) Rider Sag (Front) Rider Sag (Rear)

Mastering Suspension: The K-Tech Spring Weight Calculator Guide

Suspension is arguably the most critical component of motorcycle performance, yet it is often the most overlooked. Whether you are shaving seconds off lap times at the track or seeking a plush ride for cross-country touring, the foundation of your setup is the spring rate. This k-tech spring weight calculator guide is designed to help you understand, calculate, and select the correct springs for your specific weight and riding style.

What is a K-Tech Spring Weight Calculator?

A spring weight calculator (often referred to as a spring rate calculator) is a tool used to determine the ideal stiffness of the coil springs inside your motorcycle's forks and rear shock. "K-Tech" refers to one of the premier manufacturers of high-performance suspension components, known for their precision engineering in racing series worldwide.

The calculator takes your rider weight—including all protective gear—and your motorcycle's characteristics to recommend a spring rate measured in Newtons per millimeter (N/mm) or Kilograms per millimeter (kg/mm). Using the correct spring rate ensures the suspension operates in the middle of its stroke, providing maximum traction, stability, and comfort.

Who should use this?

  • Track Riders: Who need precise handling and resistance to bottoming out under heavy braking.
  • Street Riders: Who find their stock suspension too harsh or too soft.
  • Adventure Riders: Who carry heavy luggage and need to compensate for the extra load.

Spring Rate Formula and Mathematical Explanation

Suspension springs follow Hooke's Law, which states that the force ($F$) needed to extend or compress a spring by some distance ($x$) scales linearly with that distance.

The formula is: F = k * x

Where:

  • F = Force applied (Weight of rider + bike)
  • k = Spring Rate (Stiffness constant)
  • x = Displacement (Sag)

Variables Table

Variable Meaning Unit Typical Range (Sportbike)
Spring Rate (Fork) Stiffness of front springs N/mm 8.0 – 11.0 N/mm
Spring Rate (Shock) Stiffness of rear spring N/mm 80 – 120 N/mm
Rider Sag Compression with rider on bike mm 30 – 40 mm
Static Sag Compression under bike weight only mm 10 – 30 mm

Practical Examples (Real-World Use Cases)

Example 1: The Track Day Enthusiast

Scenario: Mark rides a Yamaha R6. He weighs 85kg and wears a full leather suit (approx. 8kg). Total weight: 93kg. He rides exclusively on the track.

  • Input: 93kg, Sport Bike, Track Discipline.
  • Stock Spring: Usually setup for a 75kg rider (~9.0 N/mm).
  • Calculation: The extra weight requires a stiffer spring to prevent excessive dive during braking.
  • Result: The calculator recommends a 10.0 N/mm fork spring and a 105 N/mm rear shock spring. This keeps the bike stable under high G-forces.

Example 2: The Lightweight Commuter

Scenario: Sarah rides a Kawasaki Ninja 400. She weighs 55kg with gear. She finds the ride harsh and the bike doesn't settle into corners.

  • Input: 55kg, Sport/Street, Comfort Discipline.
  • Stock Spring: Often too stiff for light riders on entry-level bikes.
  • Calculation: The calculator identifies that she is significantly under the standard weight.
  • Result: A softer 7.5 N/mm fork spring is recommended. This allows the suspension to compress properly over bumps, improving grip and comfort.

How to Use This K-Tech Spring Weight Calculator

  1. Weigh Yourself Correctly: Do not guess. Put on your helmet, jacket, boots, and gloves. Stand on a scale. This is your "Rider Weight."
  2. Select Your Bike Type: Different bikes have different weight distributions. A motocross bike is lighter than an adventure bike, requiring different baseline calculations.
  3. Choose Your Discipline:
    • Select Street for a balance of performance and pothole absorption.
    • Select Track for stiffer support during aggressive braking and cornering.
    • Select Comfort if you prioritize a plush ride over cornering speed.
  4. Analyze the Results: Look at the recommended N/mm value. Compare this to your stock springs (check your owner's manual). If the difference is more than 0.5 N/mm, a spring swap is highly recommended.

Key Factors That Affect Spring Weight Results

While rider weight is the primary variable, several other factors influence the final decision on spring rates:

1. Motorcycle Geometry and Linkage

The rear shock usually connects to the swingarm via a linkage system. This creates a leverage ratio. A bike with a linear linkage might need a different spring rate compared to one with a progressive linkage, even for the same rider weight.

2. Unsprung Weight

Heavy wheels or tires increase unsprung mass. While the spring supports the sprung mass (chassis + rider), the ratio between sprung and unsprung mass affects how the suspension reacts to bumps.

3. Riding Pace

Faster riders generate higher G-forces. A professional racer brakes harder than a novice, transferring more weight to the front wheel. Consequently, faster riders generally require stiffer springs than slower riders of the same weight.

4. Oil Level (Air Gap)

In forks, the air gap above the oil acts as a secondary air spring. Reducing the air gap (adding oil) increases bottoming resistance at the end of the stroke, which can fine-tune a spring that is slightly too soft.

5. Preload Adjustments

Preload does not change the spring rate (stiffness); it only changes the ride height and initial sag. If you have to max out your preload to get the correct sag, your spring is too soft. If you have zero preload and still have too little sag, your spring is too stiff.

6. Friction (Stiction)

Old seals or bushings create friction, which can mask incorrect spring rates by preventing the suspension from moving freely. Always ensure your suspension is serviced before measuring sag.

Frequently Asked Questions (FAQ)

What is the difference between N/mm and kg/mm?

They are units of stiffness. 1 kg/mm is approximately equal to 9.8 N/mm. European manufacturers (like K-Tech, Öhlins) often use N/mm, while Japanese manufacturers often use kg/mm.

Can I just increase preload instead of changing springs?

No. Preload only adjusts the starting position of the suspension (sag). It does not make the spring stiffer. If your spring is too soft, adding preload might get the ride height correct, but the bike will still dive excessively under braking.

How do I know if my spring is too hard?

If you cannot achieve the target "Rider Sag" (e.g., 35mm) without removing all preload, or if the bike feels harsh and chatters over small bumps, the spring is likely too stiff.

Does this calculator work for progressive springs?

This calculator provides a rate for linear springs, which are preferred for track and high-performance riding. Progressive springs change rate as they compress and are harder to calculate a single value for.

What is "Free Sag" or "Static Sag"?

This is how much the bike settles under its own weight without the rider. It is a crucial diagnostic tool. If you have correct Rider Sag but zero Free Sag, your spring is too soft (and you've over-compensated with preload).

Should I change fork and shock springs together?

Ideally, yes. A balanced bike is essential. Having a stiff front and soft rear (or vice versa) will cause the bike to "pitch" unpredictably during transitions.

How accurate is this calculator?

This tool provides a high-confidence estimation based on standard linkage ratios. For professional racing, on-track data acquisition and specific linkage analysis are required for the final 1% of tuning.

Does fork oil weight affect spring rate?

No. Fork oil viscosity affects damping (how fast the spring compresses and rebounds), not the spring rate itself.

Related Tools and Internal Resources

// Initialize calculator on load window.onload = function() { calculateSpringRate(); updateSagTable(); }; function calculateSpringRate() { // 1. Get Inputs var weightInput = document.getElementById('riderWeight'); var bikeType = document.getElementById('bikeType').value; var ridingStyle = document.getElementById('ridingStyle').value; var weightError = document.getElementById('weightError'); var weight = parseFloat(weightInput.value); // 2. Validation if (isNaN(weight) || weight 200) { weightError.style.display = 'block'; return; // Stop calculation if invalid } else { weightError.style.display = 'none'; } // 3. Base Logic (Simulation of K-Tech / Generic Physics) // Baseline: 75kg rider // Sportbike Base: Fork 9.0 N/mm, Shock 95 N/mm var baseFork = 9.0; var baseShock = 95.0; var forkRatePerKg = 0.05; // 0.5 N/mm per 10kg var shockRatePerKg = 0.6; // 6.0 N/mm per 10kg (approx linkage ratio 1:2 to 1:3) // Adjust Base based on Bike Type if (bikeType === 'naked') { baseFork = 8.5; baseShock = 90.0; } else if (bikeType === 'adventure') { baseFork = 6.0; // Long travel needs softer rate baseShock = 85.0; forkRatePerKg = 0.04; } else if (bikeType === 'motocross') { baseFork = 4.4; // Very different for offroad baseShock = 52.0; forkRatePerKg = 0.02; shockRatePerKg = 0.3; } // Calculate Raw Rates var weightDiff = weight – 75; var calcFork = baseFork + (weightDiff * forkRatePerKg); var calcShock = baseShock + (weightDiff * shockRatePerKg); // Apply Riding Style Modifiers var styleMultiplier = 1.0; if (ridingStyle === 'track') { styleMultiplier = 1.05; // 5% stiffer } else if (ridingStyle === 'comfort') { styleMultiplier = 0.95; // 5% softer } calcFork = calcFork * styleMultiplier; calcShock = calcShock * styleMultiplier; // Rounding calcFork = Math.round(calcFork * 10) / 10; // 1 decimal calcShock = Math.round(calcShock / 5) * 5; // Round to nearest 5 for shock // 4. Calculate Target Sags based on Discipline var staticSag = "25-30 mm"; var riderSag = "35-40 mm"; if (bikeType === 'motocross' || bikeType === 'adventure') { staticSag = "30-40 mm"; riderSag = "70-85 mm"; // Long travel bikes have more sag } else if (ridingStyle === 'track') { staticSag = "20-25 mm"; riderSag = "30-35 mm"; } // 5. Update DOM document.getElementById('forkResult').innerText = calcFork.toFixed(1); document.getElementById('shockResult').innerText = calcShock + " N/mm"; document.getElementById('staticSagResult').innerText = staticSag; document.getElementById('riderSagResult').innerText = riderSag; // 6. Update Chart drawChart(bikeType, ridingStyle); } function resetCalculator() { document.getElementById('riderWeight').value = 80; document.getElementById('bikeType').value = 'sport'; document.getElementById('ridingStyle').value = 'street'; calculateSpringRate(); } function copyResults() { var fork = document.getElementById('forkResult').innerText; var shock = document.getElementById('shockResult').innerText; var weight = document.getElementById('riderWeight').value; var text = "K-Tech Spring Weight Calculation:\n"; text += "Rider Weight: " + weight + " kg\n"; text += "Recommended Fork Rate: " + fork + " N/mm\n"; text += "Recommended Shock Rate: " + shock + "\n"; navigator.clipboard.writeText(text).then(function() { var btn = document.querySelector('.btn-copy'); var originalText = btn.innerText; btn.innerText = "Copied!"; setTimeout(function() { btn.innerText = originalText; }, 2000); }); } function updateSagTable() { var tbody = document.getElementById('sagTableBody'); var data = [ { type: "Street / Sport", static: "25-30 mm", riderF: "35-40 mm", riderR: "30-40 mm" }, { type: "Track / Race", static: "20-25 mm", riderF: "30-35 mm", riderR: "25-30 mm" }, { type: "Adventure / Touring", static: "30-40 mm", riderF: "45-55 mm", riderR: "40-50 mm" }, { type: "Motocross", static: "30-40 mm", riderF: "70-85 mm", riderR: "95-105 mm" } ]; var html = ""; for (var i = 0; i < data.length; i++) { html += ""; html += "" + data[i].type + ""; html += "" + data[i].static + ""; html += "" + data[i].riderF + ""; html += "" + data[i].riderR + ""; html += ""; } tbody.innerHTML = html; } function drawChart(bikeType, ridingStyle) { var canvas = document.getElementById('springChart'); var ctx = canvas.getContext('2d'); // Handle High DPI var dpr = window.devicePixelRatio || 1; var rect = canvas.getBoundingClientRect(); canvas.width = rect.width * dpr; canvas.height = rect.height * dpr; ctx.scale(dpr, dpr); var width = rect.width; var height = rect.height; var padding = 40; // Clear canvas ctx.clearRect(0, 0, width, height); // Data Generation for Chart (Weight 50kg to 120kg) var weights = [50, 60, 70, 80, 90, 100, 110, 120]; var rates = []; // Re-use logic for chart data points var baseFork = 9.0; var ratePerKg = 0.05; if (bikeType === 'naked') baseFork = 8.5; if (bikeType === 'adventure') { baseFork = 6.0; ratePerKg = 0.04; } if (bikeType === 'motocross') { baseFork = 4.4; ratePerKg = 0.02; } var multiplier = (ridingStyle === 'track') ? 1.05 : (ridingStyle === 'comfort' ? 0.95 : 1.0); var maxRate = 0; var minRate = 100; for (var i = 0; i maxRate) maxRate = r; if (r < minRate) minRate = r; } // Add padding to Y axis maxRate = maxRate + 0.5; minRate = minRate – 0.5; // Draw Axes ctx.beginPath(); ctx.strokeStyle = '#ccc'; ctx.lineWidth = 1; // Y Axis ctx.moveTo(padding, padding); ctx.lineTo(padding, height – padding); // X Axis ctx.moveTo(padding, height – padding); ctx.lineTo(width – padding, height – padding); ctx.stroke(); // Draw Grid & Labels ctx.fillStyle = '#666'; ctx.font = '10px Arial'; ctx.textAlign = 'center'; // X Labels (Weights) var xStep = (width – 2 * padding) / (weights.length – 1); for (var i = 0; i < weights.length; i++) { var x = padding + (i * xStep); ctx.fillText(weights[i] + 'kg', x, height – padding + 15); } // Y Labels (Rates) ctx.textAlign = 'right'; var yRange = maxRate – minRate; for (var i = 0; i <= 5; i++) { var val = minRate + (yRange * (i / 5)); var y = (height – padding) – ((val – minRate) / yRange) * (height – 2 * padding); ctx.fillText(val.toFixed(1), padding – 5, y + 3); // Grid line ctx.beginPath(); ctx.strokeStyle = '#eee'; ctx.moveTo(padding, y); ctx.lineTo(width – padding, y); ctx.stroke(); } // Draw Line ctx.beginPath(); ctx.strokeStyle = '#004a99'; ctx.lineWidth = 3; for (var i = 0; i < rates.length; i++) { var x = padding + (i * xStep); var y = (height – padding) – ((rates[i] – minRate) / yRange) * (height – 2 * padding); if (i === 0) ctx.moveTo(x, y); else ctx.lineTo(x, y); } ctx.stroke(); // Draw Points ctx.fillStyle = '#fff'; ctx.strokeStyle = '#004a99'; ctx.lineWidth = 2; for (var i = 0; i < rates.length; i++) { var x = padding + (i * xStep); var y = (height – padding) – ((rates[i] – minRate) / yRange) * (height – 2 * padding); ctx.beginPath(); ctx.arc(x, y, 4, 0, Math.PI * 2); ctx.fill(); ctx.stroke(); } }

Leave a Comment