Cable Category Speed & Distance Calculator
ANA›Life Services Authority›National 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)]
- Aref = worst-case insertion loss at 100 MHz per 100 m (TIA-568-C.2)
- f = frequency of interest (MHz); fref = 100 MHz
- L = cable length (m); T = ambient temperature (°C)
Propagation Delay (ns):
tprop = L / (VF × c) × 10⁹
- VF = velocity factor (fraction of speed of light in the dielectric)
- c = 2.998 × 10⁸ m/s
Maximum Distance is taken directly from IEEE 802.3 and TIA-568 channel length limits per speed standard.
#### Assumptions & References
- Attenuation values are worst-case channel limits from TIA-568-C.2 and ISO/IEC 11801:2017.
- Maximum distances follow IEEE 802.3 (10BASE-T through 40GBASE-T) permanent link / channel specifications.
- Cat8 is limited to 30 m for 10/25/40 Gbps per ANSI/TIA-568-C.2-1 and IEEE 802.3bq.
- Cat6 supports 10 Gbps up to 55 m (IEEE 802.3an); Cat6a extends this to 100 m.
More Calculators
- Fence Panel Quantity Calculator
- Disaster Recovery Cost Estimator
- Emergency Supply Duration Calculator
- Fence Cost Estimator
- Estate Tax Liability Estimator
- Beneficiary Inheritance Tax Estimator
- Flooring Square Footage Calculator
- Subcontractor vs Employee Cost Comparison Calculator
- Circuit Breaker Size Calculator
- Transformer KVA Sizing Calculator
- Labor Cost Estimator for Electrical Jobs
- Empire State Prevailing Wage Calculator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...