Cable Category Speed & Distance Calculator

ANALife Services AuthorityNational Calculator Authority›Cable Category Speed & Distance Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Cable Category Speed & Distance Calculator

Determine the maximum supported speed and transmission distance for standard Ethernet cable categories (Cat5e through Cat8), and estimate signal attenuation over a given run length.

Cable Category

Cat5e (100 MHz) Cat6 (250 MHz) Cat6a (500 MHz) Cat7 (600 MHz) Cat7a (1000 MHz) Cat8 (2000 MHz)

Cable Run Length (meters)

Desired Speed Standard

Auto (use category maximum) 10 Mbps (10BASE-T) 100 Mbps (Fast Ethernet) 1 Gbps (Gigabit Ethernet) 2.5 Gbps (NBASE-T) 5 Gbps (NBASE-T) 10 Gbps (10GBASE-T) 25 Gbps 40 Gbps

Ambient Temperature (°C)

Calculate

// ── Cable category specifications database ────────────────────────────────── // Sources: TIA-568-C.2, ISO/IEC 11801, IEEE 802.3 const CAB_SPECS = { cat5e: { label: "Cat5e", bandwidth_mhz: 100, max_speed_mbps: 1000, max_distance_m: { 10: 100, 100: 100, 1000: 100 }, default_max_dist: 100, attenuation_db_per_100m_at_100mhz: 22.0, // TIA-568-C.2 worst-case velocity_factor: 0.64, pairs: 4, speeds_supported: [10, 100, 1000] }, cat6: { label: "Cat6", bandwidth_mhz: 250, max_speed_mbps: 1000, max_distance_m: { 10: 100, 100: 100, 1000: 100, 10000: 55 }, default_max_dist: 100, attenuation_db_per_100m_at_100mhz: 19.8, velocity_factor: 0.65, pairs: 4, speeds_supported: [10, 100, 1000, 10000] }, cat6a: { label: "Cat6a", bandwidth_mhz: 500, max_speed_mbps: 10000, max_distance_m: { 10: 100, 100: 100, 1000: 100, 10000: 100 }, default_max_dist: 100, attenuation_db_per_100m_at_100mhz: 17.4, velocity_factor: 0.67, pairs: 4, speeds_supported: [10, 100, 1000, 10000] }, cat7: { label: "Cat7", bandwidth_mhz: 600, max_speed_mbps: 10000, max_distance_m: { 10: 100, 100: 100, 1000: 100, 10000: 100 }, default_max_dist: 100, attenuation_db_per_100m_at_100mhz: 15.4, velocity_factor: 0.68, pairs: 4, speeds_supported: [10, 100, 1000, 10000] }, cat7a: { label: "Cat7a", bandwidth_mhz: 1000, max_speed_mbps: 10000, max_distance_m: { 10: 100, 100: 100, 1000: 100, 10000: 100 }, default_max_dist: 100, attenuation_db_per_100m_at_100mhz: 13.2, velocity_factor: 0.69, pairs: 4, speeds_supported: [10, 100, 1000, 10000] }, cat8: { label: "Cat8", bandwidth_mhz: 2000, max_speed_mbps: 40000, max_distance_m: { 10: 100, 100: 100, 1000: 100, 10000: 30, 25000: 30, 40000: 30 }, default_max_dist: 30, attenuation_db_per_100m_at_100mhz: 11.0, velocity_factor: 0.71, pairs: 4, speeds_supported: [10, 100, 1000, 10000, 25000, 40000] } };

// Speed labels const CAB_SPEED_LABELS = { 10: "10 Mbps (10BASE-T)", 100: "100 Mbps (Fast Ethernet)", 1000: "1 Gbps (Gigabit Ethernet)", 2500: "2.5 Gbps (NBASE-T)", 5000: "5 Gbps (NBASE-T)", 10000: "10 Gbps (10GBASE-T)", 25000: "25 Gbps", 40000: "40 Gbps" };

// ── Attenuation model ─────────────────────────────────────────────────────── // Attenuation scales with sqrt(f) for skin-effect dominated cables. // A(f, L) = A_ref * sqrt(f / f_ref) * (L / 100) // Temperature correction: +0.4% per °C above 20°C (TIA-568-C.2 §6.3) function cabAttenuation(spec, freq_mhz, length_m, temp_c) { const f_ref = 100; // MHz reference const a_ref = spec.attenuation_db_per_100m_at_100mhz; const temp_factor = 1 + 0.004 * (temp_c - 20); const attenuation = a_ref * Math.sqrt(freq_mhz / f_ref) * (length_m / 100) * temp_factor; return attenuation; }

// ── Propagation delay ─────────────────────────────────────────────────────── // t_prop = L / (VF * c) [nanoseconds] // c = 2.998e8 m/s function cabPropDelay(vf, length_m) { const c = 2.998e8; // m/s return (length_m / (vf * c)) * 1e9; // ns }

// ── Maximum distance for a given speed ───────────────────────────────────── function cabMaxDistForSpeed(spec, speed_mbps) { if (spec.max_distance_m[speed_mbps] !== undefined) { return spec.max_distance_m[speed_mbps]; } // If speed not in table, check if it's within category bandwidth // Use conservative 100 m for speeds within bandwidth, else not supported if (speed_mbps 2000) errors.push("Cable run length must be ≤ 2000 m."); if (isNaN(tempRaw)) errors.push("Temperature must be a valid number."); if (tempRaw 75) errors.push("Temperature must be between −20 °C and 75 °C.");

if (errors.length > 0) { resultDiv.style.display = "block"; resultDiv.innerHTML = "Input Error:" + errors.map(e => "").join("") + ""; return; }

const spec = CAB_SPECS[cat]; const length = lengthRaw; const temp = tempRaw;

// ── Determine effective speed ──────────────────────────────────────────── let effectiveSpeed; if (speedSel === "auto") { effectiveSpeed = spec.max_speed_mbps; } else { effectiveSpeed = parseInt(speedSel); if (!spec.speeds_supported.includes(effectiveSpeed)) { resultDiv.style.display = "block"; resultDiv.innerHTML = "Speed Not Supported: " + spec.label + " does not support " + CAB_SPEED_LABELS[effectiveSpeed] + "."; return; } }

// ── Max distance for chosen speed ──────────────────────────────────────── const maxDist = cabMaxDistForSpeed(spec, effectiveSpeed);

// ── Distance feasibility ───────────────────────────────────────────────── const distOk = length 20 dB, signal quality degrades significantly const MAX_ATTEN_DB = 20.0; // practical limit for reliable link const attenPenalty = Math.min(atten_100 / MAX_ATTEN_DB, 1.0); const estimatedThroughput = effectiveSpeed * (1 - attenPenalty * 0.15); // up to 15% overhead

// ── Supported speeds at this length ────────────────────────────────────── const supportedSpeeds = spec.speeds_supported.filter(s => { const md = cabMaxDistForSpeed(spec, s); return length { if (s >= 1000) return (s / 1000).toFixed(s % 1000 === 0 ? 0 : 1) + " Gbps"; return s + " Mbps"; };

const supportedList = supportedSpeeds.length > 0
? supportedSpeeds.map(s => "").join("")
"";

resultDiv.style.display = "block"; resultDiv.innerHTML = ` ### Results for ${spec.label} — ${length} m Run

${statusText} Maximum distance for ${CAB_SPEED_LABELS[effectiveSpeed]}: ${maxDist} m ${!distOk ? "Reduce cable length or use a lower speed standard / active repeater." : ""}

ParameterValue Cable Category${spec.label} Bandwidth${spec.bandwidth_mhz} MHz Cable Run Length${length.toFixed(1)} m Ambient Temperature${temp} °C Selected Speed${CAB_SPEED_LABELS[effectiveSpeed]} Max Distance @ Selected Speed${maxDist} m Attenuation @ 100 MHz${atten_100.toFixed(2)} dB Attenuation @ ${spec.bandwidth_mhz} MHz (bandwidth)${atten_bw.toFixed(2)} dB One-Way Propagation Delay${propDelay.toFixed(2)} ns Round-Trip Delay${rtDelay.toFixed(2)} ns Velocity Factor${spec.velocity_factor} Estimated Practical Throughput~${speedFmt(Math.round(estimatedThroughput))}

#### Speeds Supported at ${length.toFixed(1)} m

${supportedList} `; }

// Initialise dropdown state on load cabUpdateSpecs();

#### Formulas Used

Attenuation (dB):

A(f, L, T) = Aref × √(f / fref) × (L / 100) × [1 + 0.004 × (T − 20)]

Propagation Delay (ns):

tprop = L / (VF × c) × 10⁹

Maximum Distance is taken directly from IEEE 802.3 and TIA-568 channel length limits per speed standard.

#### Assumptions & References

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References