System Latency
Synonyms: response time, system delay, lag, load time, perceived latency
Definition
Use cases
- "Did my click even register?" A checkout button with no instant state change gets tapped twice, and now you have duplicate orders. Flip the button to a loading state on tap, before the server replies.
- The frozen feed. A blank white screen during a 3-second fetch reads as a crash, so people refresh and make it worse. A skeleton screen shows the layout right away and they wait instead of rage-quitting.
- AI chat lag. An LLM takes 8 seconds and the user thinks nothing happened. Streaming tokens word by word holds attention, even though total time is identical.
How it's used in practice
- Set a latency budget per interaction: under 100ms for taps, under 1s for transitions, visible feedback past 1s.
- Acknowledge instantly: fire a state change (spinner, disabled button, optimistic update) within 100ms of the action, before data returns.
- Match the loader to the wait: spinner under 1s, skeleton or progress bar for longer, step count ("Uploading 3 of 12") for multi-second jobs.
- Measure real numbers: pull field data from Core Web Vitals (LCP, INP) and test on a throttled mid-range phone, not your fast laptop.
Challenges & limitations
- Some latency is out of your hands. Slow networks, third-party APIs, and model inference times cap how fast you can ever go. Design hides the wait, it doesn't delete it.
- Fake progress backfires. Timer-based bars that aren't tied to real work lose trust the moment users watch them stall at 90%.
- Lab speed lies. A page can pass Core Web Vitals in testing and still drag on a user's three-year-old phone with 15 tabs open.
Free resources
- NN/g: Response Time Limits — Jakob Nielsen's foundational 0.1s / 1s / 10s thresholds and what users feel at each.
- NN/g: Powers of 10 — Time Scales in UX — how perception of speed shifts across millisecond to multi-second waits.
- NN/g: Website Response Times — eyetracking-backed look at how slow pages change user behavior.

