{
  "slug": "bandwidth-for-n-users",
  "title": "Bandwidth Needed for N Concurrent Users",
  "heading": "Bandwidth Requirement Calculator for Concurrent Users",
  "category": "math",
  "url": "https://www.revenuelab.fyi/toolbox/bandwidth-for-n-users",
  "summary": "Size your uplink for a target number of simultaneous users.",
  "description": "Sizing bandwidth for concurrent users is a capacity-planning problem, not just multiplication — you need per-user bandwidth, expected concurrency (not total user count), and a safety headroom margin to absorb bursts and avoid running at 100% utilization, which causes latency spikes and packet loss well before you technically hit the ceiling. This calculator multiplies per-user bandwidth by concurrent users, adds your headroom percentage, and reports the required link speed in Mbps and Gbps. It also reports the theoretical max concurrent users your current link could support, so you can check existing infrastructure against a growth target. A commonly cited network engineering rule of thumb is to provision for no more than 70-80% sustained utilization on any link, since queuing delay rises sharply as utilization approaches 100% — this tool bakes that in as the default headroom.",
  "formula": "Required bandwidth = concurrent users × per-user bandwidth × (1 + headroom%).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=bandwidth-for-n-users",
  "inputs": [
    {
      "id": "concurrentUsers",
      "label": "Peak concurrent users",
      "kind": "number",
      "hint": null,
      "default": 500,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "perUserMbps",
      "label": "Bandwidth per user",
      "kind": "number",
      "hint": null,
      "default": 5,
      "unit": "Mbps",
      "min": 0.01,
      "max": null
    },
    {
      "id": "headroomPct",
      "label": "Headroom / burst margin",
      "kind": "number",
      "hint": null,
      "default": 30,
      "unit": "%",
      "min": 0,
      "max": 200
    },
    {
      "id": "existingLinkMbps",
      "label": "Existing link capacity (optional)",
      "kind": "number",
      "hint": null,
      "default": 1000,
      "unit": "Mbps",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "requiredMbps",
      "label": "Required bandwidth",
      "format": "number",
      "hint": null,
      "primary": true
    },
    {
      "id": "requiredGbps",
      "label": "In Gbps",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "maxUsersOnExisting",
      "label": "Max users your existing link supports",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "utilizationOfExisting",
      "label": "Utilization of existing link at target load",
      "format": "percent",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Peak concurrent users: 500",
      "Bandwidth per user: 5 Mbps",
      "Headroom / burst margin: 30 %",
      "Existing link capacity (optional): 1000 Mbps"
    ],
    "outputs": [
      "Required bandwidth: 3,250",
      "In Gbps: 3.25",
      "Max users your existing link supports: 154",
      "Utilization of existing link at target load: 325.0%"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter peak concurrent users.",
      "Enter bandwidth per user (Mbps).",
      "Enter headroom / burst margin (%).",
      "Enter existing link capacity (optional) (Mbps).",
      "Read your required bandwidth on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "concurrentUsers": 300,
        "perUserMbps": 3,
        "headroomPct": 20,
        "existingLinkMbps": 600
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "concurrentUsers": 500,
        "perUserMbps": 5,
        "headroomPct": 30,
        "existingLinkMbps": 1000
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "concurrentUsers": 800,
        "perUserMbps": 8,
        "headroomPct": 50,
        "existingLinkMbps": 1600
      }
    }
  ],
  "limitations": [
    "Results are rounded for display; the underlying calculation keeps full precision.",
    "Very large or very small inputs may hit floating-point limits in the browser.",
    "Inputs outside the accepted range are clamped rather than rejected."
  ],
  "faq": [
    {
      "q": "What per-user bandwidth should I assume?",
      "a": "It depends entirely on workload: basic web browsing needs roughly 1-2 Mbps per user, SD video conferencing 2-4 Mbps, HD video conferencing 4-8 Mbps, and 4K video streaming 25 Mbps or more. Measure real per-user usage from existing traffic logs if you have them; guessing from generic averages is the most common source of under- or over-provisioning."
    },
    {
      "q": "Should I size for concurrent users or total registered users?",
      "a": "Always concurrent (simultaneously active) users, never total registered accounts — the two can differ by 5-20x depending on the product. If you don't have real concurrency data yet, a common starting estimate for consumer apps is 10-20% of daily active users online at the peak hour, but validate this against real traffic as soon as you have it."
    },
    {
      "q": "Why not just provision for 100% of link capacity?",
      "a": "Network queuing theory shows latency and packet loss rise non-linearly as utilization approaches 100%, because burst traffic has no slack to absorb — a link running at 95% average utilization will see far worse latency spikes during traffic bursts than one running at 70%. The headroom percentage in this calculator exists specifically to keep sustained utilization in the safe range."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/data-transfer-time-calculator",
    "https://www.revenuelab.fyi/toolbox/video-streaming-storage-calculator",
    "https://www.revenuelab.fyi/toolbox/cloud-egress-cost"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Bandwidth Needed for N Concurrent Users (https://www.revenuelab.fyi/toolbox/bandwidth-for-n-users)"
}