Home / Blog / Understanding Jitter
Performance 9 min read

Why Your Ping Is Good but You Still Lag: Understanding Jitter

Your ping says 25ms. Your speed test says 300 Mbps. So why does your voice sound like a broken robot on every call? The answer is the metric nobody talks about.

Healthy Network Team Network Engineers & macOS Developers

What Is Jitter?

Jitter is the variation in latency between consecutive packets. It measures how consistent your connection is, not how fast it is. A connection with low latency but high jitter delivers an unpredictable, stuttering experience, even though the “average” numbers look fine on paper.

Think of a metronome that’s supposed to tick exactly once per second. If it ticks at 1.0s, 1.0s, 1.0s, that’s zero jitter, perfectly consistent. If it ticks at 0.8s, 1.3s, 0.6s, 1.4s, that’s high jitter, wildly inconsistent. The average might still be 1.0s, but the rhythm is broken. Your ear would notice instantly. Your network applications notice too.

As a simplified illustration: if packet 1 takes 20ms, packet 2 takes 25ms, and packet 3 takes 18ms, the variation between consecutive packets is |25–20| = 5ms and |18–25| = 7ms, giving a rough jitter of about 6ms. The formal definition in RFC 3550 uses an exponentially weighted moving average rather than a simple mean, but the core idea is the same: it’s not the latency itself that matters. It’s how much each measurement differs from the one before it.

The easiest way to understand the impact is to compare two connections side by side:

Low Jitter Connection
Latency: 30ms, 31ms, 29ms, 30ms, 32ms. Average: 30ms. Jitter: ~1ms. Packets arrive like clockwork. Audio is crystal clear. Video is smooth.
High Jitter Connection
Latency: 15ms, 85ms, 22ms, 150ms, 10ms, 95ms. Average: 63ms. Jitter: ~55ms. Packets arrive at unpredictable intervals. Audio stutters. Video tears. The average latency looks “okay” but the experience is terrible.

Notice that the high-jitter connection actually has some packets that arrive faster than the low-jitter one (10ms vs 30ms). But consistency trumps raw speed for anything real-time. A steady 30ms is infinitely better than an erratic 63ms average.

Why Ping Alone Is Misleading

When you run ping 1.1.1.1, you get an average round-trip time. Say it’s 25ms. That sounds great. But that average hides everything important about your connection’s consistency.

An average of 25ms could mean two very different things: every packet took exactly 25ms (perfect, 0 jitter), or packets alternated between 5ms and 45ms (high jitter, terrible for calls). The number “25ms” tells you nothing about which scenario you’re in.

The ping command does report a stddev (standard deviation) value in its summary line, which is a rough proxy for jitter. But few people know to look at it, and it’s not the same as true inter-packet jitter. Standard deviation measures overall spread across all samples; inter-packet jitter (per RFC 3550) measures variation between consecutive packets, which more closely reflects what real-time applications experience.

Speed tests are even worse. They don’t report jitter at all. They measure throughput and sometimes show a single latency number: the first ping, measured before the load test even begins. That idle-latency number is essentially meaningless for predicting real-time application quality.

The core problem is that real-time applications don’t experience “average latency.” They experience every single packet. If 90% of packets arrive in 20ms but 10% take 200ms, the average says “38ms” while your ear hears constant glitching. The codec expects a packet every 20ms. When one arrives 200ms late, that’s a gap of 180ms, enough to produce an audible stutter, a robotic distortion, or a complete dropout.

This is why someone can have “good ping” (low average latency) but still experience lag. The variation between packets, jitter, is what kills the experience, and neither ping nor speed tests surface it clearly.

How Jitter Affects Real Applications

Different applications have different tolerances for jitter, but all real-time applications suffer when packet timing becomes unpredictable:

Video Calls (Zoom, Teams, Meet)
VoIP codecs like Opus expect packets at regular intervals (typically every 20ms). When jitter is high, packets arrive in unpredictable bursts. The receiving client uses a “jitter buffer,” a small queue that holds packets to smooth out variation. But the buffer has limits. If jitter exceeds the buffer size, audio glitches occur: robotic voice, words cut off mid-syllable, and that dreaded “can you repeat that?” Low jitter (<15ms) means a small buffer works fine. High jitter (>40ms) overwhelms the buffer.
Gaming
Online games send position updates at fixed intervals (commonly 20–128 times per second, with competitive shooters like Valorant targeting 128). High jitter means these updates arrive irregularly: your character moves smoothly, then jumps, then is smooth again. This is “rubber-banding.” In competitive shooters, jitter makes aim feel inconsistent. Your crosshair is where you put it, but the server received your position data late, so your shot registers differently than what you saw. Gamers often obsess over ping but ignore jitter, which is frequently the real culprit behind “I swear I hit that shot.”
Streaming and Music
Adaptive bitrate streaming (Netflix, YouTube, Spotify) adjusts quality based on network conditions. High jitter causes the algorithm to constantly switch between quality levels: the video gets sharp, then blurry, then sharp again. For live music or podcast production over the internet, jitter above 20ms introduces audible timing drift between participants.

The common thread across all these applications: they expect data to arrive at regular, predictable intervals. Jitter breaks that expectation. The higher the jitter, the larger the buffer needed to compensate, and larger buffers mean more latency, creating a vicious cycle where the “fix” for jitter introduces its own delay.

What Causes High Jitter on Mac?

Wi-Fi Congestion

This is the number one cause. Wi-Fi is a shared medium, and your Mac competes with every other device for airtime. When your neighbors’ routers are on the same channel, your Mac must wait for clear airtime before transmitting. The wait time varies unpredictably, creating jitter.

The 2.4 GHz band is particularly bad because there are only 3 non-overlapping channels in most regions. In a dense apartment building, dozens of networks may be fighting over those same 3 channels. The 5 GHz band offers many more channels and significantly less interference, which is why switching bands is often the single most effective jitter reduction.

AWDL (AirDrop) Interference

Apple’s AWDL (Apple Wireless Direct Link) protocol periodically forces your Wi-Fi radio to hop channels to scan for nearby AirDrop-capable devices. Each channel hop introduces a latency spike of 50–200ms at regular intervals. This creates a distinctive pattern of jitter: mostly low, with periodic sharp spikes every few seconds. See our AWDL deep-dive for the full technical explanation and mitigation steps.

Bufferbloat

When your connection is under load, oversized router buffers cause latency to swing wildly. Idle: 20ms. Someone starts uploading: 500ms. Upload finishes: back to 20ms. This variation is jitter: massive, load-dependent jitter that correlates directly with network utilization. If your jitter spikes only when the network is busy, bufferbloat is the likely cause. See our bufferbloat guide for testing and fixes.

ISP Congestion

During peak hours, ISP routers handle more traffic than optimal. Routing paths change, queues grow and shrink, and your packets take different amounts of time to traverse the network. The telltale sign: jitter is low in the morning and high in the evening (7–10 PM), when everyone in your neighborhood is streaming simultaneously. If the pattern is consistent, your ISP may be throttling your connection during peak hours.

VPN Overhead

VPN encryption adds processing time that varies based on current CPU load and server utilization. Packets are encrypted, encapsulated, sent through a tunnel, decapsulated, and decrypted. Each step adds variable latency. Different VPN protocols have different jitter characteristics: WireGuard tends to have low, consistent overhead, while OpenVPN is higher and more variable due to its userspace implementation and TCP fallback behavior.

Background Processes on macOS

Spotlight indexing, Time Machine backups, iCloud sync, and macOS software updates can consume both CPU and network resources simultaneously. When these processes burst, they create temporary congestion on your local network and compete with your applications for Wi-Fi airtime. Unlike a steady download, background processes send data in intermittent bursts, creating spikes of jitter that appear and disappear unpredictably.

How to Measure Jitter on macOS

Method 1: Terminal Ping (Manual Calculation)

Run a sustained ping test against a reliable target:

ping -c 100 1.1.1.1

At the end, look for the stddev value in the summary line. A stddev above 10ms suggests noticeable jitter. For example, a summary of round-trip min/avg/max/stddev = 18.2/25.4/142.7/28.1 ms tells you the average is 25ms but the standard deviation is 28ms, meaning individual packets are varying wildly.

Limitation: stddev measures overall spread across all samples, not inter-packet variation. True jitter (as defined by RFC 3550) measures variation between consecutive packets. Still, a high stddev strongly correlates with high jitter. For more precision, you’d need to capture timestamps and calculate inter-packet differences, which is impractical to do manually on a regular basis.

Method 2: Continuous Monitoring

Calculating jitter manually from Terminal output is tedious and imprecise. Healthy Network measures true inter-packet jitter continuously and displays it alongside latency and packet loss in your menu bar. The dashboard shows current jitter, historical trends, and threshold-based alerts, so you know instantly when your connection becomes unstable.

Method 3: Network Quality Tool (macOS 12+)

macOS Monterey and later include a built-in network quality tool:

networkQuality -v

This runs an Apple-hosted speed and responsiveness test. The “Responsiveness” score (measured in RPM, or Round-trips Per Minute) is an inverse measure of latency-under-load, which correlates with jitter. Higher RPM = better. Apple categorizes responsiveness as Low, Medium, or High. Generally, scores below ~200 RPM are Low, Medium extends up to roughly 1,000 RPM, and High is above that, though Apple has not published exact cutoff numbers.

Limitation: this is a point-in-time test, not continuous monitoring. It tells you how your connection performs right now, but jitter fluctuates throughout the day based on Wi-Fi congestion, ISP load, and background processes. A single test can’t capture these patterns.

How to Reduce Jitter

Switch to 5 GHz (or 6 GHz) Wi-Fi

The 5 GHz band has more available channels and less interference from neighboring networks. If your router broadcasts both bands, make sure your Mac is connected to the 5 GHz SSID. Check in System Settings → Wi-Fi → hover over the connected network to see the channel and band. Wi-Fi 6E routers offer the 6 GHz band with even less congestion. If your Mac supports it, this is the best wireless option for low jitter.

Use Ethernet for Critical Tasks

A USB-C to Ethernet adapter eliminates wireless jitter entirely. Ethernet jitter is typically < 1ms on a local network, orders of magnitude better than even good Wi-Fi. Keep an adapter in your bag for important calls and plug in when stability matters. The difference is immediately noticeable. See our Ethernet vs. Wi-Fi 6E latency comparison for real-world benchmarks.

Change Your Wi-Fi Channel

If neighboring networks are on the same channel, your Mac competes for airtime on every transmission. Hold Option + click the Wi-Fi icon in the menu bar, then select “Open Wireless Diagnostics” → Window → Scan to see which channels are congested. (Note: this may be deprecated in newer macOS versions.) Alternatively, the command sudo wdutil info shows your current channel and noise levels. Switch your router to the least congested channel in its admin settings.

Fix Bufferbloat

If jitter appears mainly during heavy network usage, the cause is likely bufferbloat. Enable SQM (Smart Queue Management) on your router. See our bufferbloat guide for detailed instructions. Quick test: run networkQuality while someone else streams video. If RPM drops dramatically, bufferbloat is the issue.

Reduce AWDL Activity

Disable AirDrop when not in use by going to System Settings → General → AirDrop & Handoff and setting it to “No One.” This prevents your Wi-Fi radio from periodically hopping channels to scan for nearby devices. See our AWDL deep-dive for the full set of mitigation steps.

Pause Background Syncs

Before important calls or gaming sessions, take a moment to reduce background network activity:

  • Pause iCloud sync (System Settings → Apple ID → iCloud)
  • Defer Time Machine backups until after your session
  • Quit Dropbox, OneDrive, and Google Drive temporarily
  • Check Activity Monitor → Network tab for unexpected upload or download activity

Background processes send data in bursts, and each burst creates a jitter spike. Eliminating these bursts during latency-sensitive tasks can dramatically improve consistency.

Optimize Router QoS

If your router supports Quality of Service, prioritize UDP traffic for real-time applications. Zoom uses UDP ports 8801–8810; Discord uses UDP on various ports. Some modern routers auto-detect VoIP traffic and prioritize it automatically. Check your router’s documentation for available QoS options. Proper QoS ensures that real-time packets are transmitted first, even when the network is under load.

What’s a “Good” Jitter Value?

What counts as “acceptable” jitter depends entirely on what you’re doing. Here are the thresholds by use case:

Gaming (Competitive)
Target: < 5ms jitter. Competitive shooters and fighting games require extremely consistent input delivery. Even 10ms jitter can cause noticeable hit registration variance.
Video Calls (Zoom, Teams)
Target: < 15ms jitter. VoIP jitter buffers can handle up to 15ms comfortably. Between 15–40ms, audio quality degrades. Above 40ms, calls become unreliable with frequent robotic voice artifacts.
Streaming (Netflix, YouTube)
Target: < 30ms jitter. Adaptive bitrate algorithms handle moderate jitter well by buffering ahead. You’ll only notice issues above 30ms as frequent quality switching.
Browsing & Email
Target: < 50ms jitter. Web browsing is tolerant of jitter because HTTP requests are not time-sensitive. Pages may load slightly inconsistently, but it’s rarely noticeable.

Healthy Network lets you set custom threshold presets for your primary use case (Gaming, Video Calls, Streaming, or Browsing) and alerts you when jitter exceeds your threshold. This way you don’t need to memorize numbers; the app tells you when your connection isn’t meeting the standard your activity requires.

Frequently Asked Questions

Is jitter the same as packet loss?

No, they’re different problems with different causes. Jitter means packets arrive at varying intervals: some fast, some slow, but they all arrive. Packet loss means packets don’t arrive at all. However, high jitter often accompanies packet loss because the same conditions that cause variable latency (congestion, interference) also cause drops. A connection can have high jitter with zero packet loss, which still degrades real-time applications.

Can my ISP fix jitter?

It depends on the cause. If jitter is due to ISP network congestion (worse during peak hours), your ISP can potentially fix it by upgrading infrastructure, but they rarely prioritize this unless you escalate with data. If jitter is caused by Wi-Fi interference, bufferbloat, or AWDL on your Mac, your ISP can’t help because the problem is local. Use a monitoring tool to determine where the jitter originates: if it’s present even when pinging your router, the issue is local.

Does a VPN reduce jitter?

Usually no. VPNs typically increase jitter because they add encryption overhead and route traffic through an additional server. The extra processing time varies based on server load, adding variability. However, in rare cases where your ISP is throttling specific traffic (like gaming or streaming), a VPN can reduce jitter by preventing the ISP from identifying and deprioritizing that traffic.

What jitter is acceptable for Zoom?

Zoom officially recommends jitter below 40ms, but in practice, audio quality starts degrading noticeably above 15ms. For consistent, professional-quality calls with no audio artifacts, aim for under 10ms. Check your jitter before joining important calls. If it’s above 20ms, consider switching to Ethernet or troubleshooting before the meeting starts.

The metric your speed test doesn’t show

Healthy Network monitors jitter alongside latency and packet loss, continuously from your menu bar. Set your threshold, get alerted, and know your connection is stable before the call starts.

Download for Mac
All articles