Problem solving · should-tier · asked at Amazon, Apple, Google, Meta, Microsoft, Netflix

Convert DAU to Concurrent Users

easyestimation

Problem

A product reports 100 million daily active users. Estimate how many users are connected at the same moment on average, and how many at the daily peak. Then explain why the ratio between DAU and concurrent users is what it is, and what would move it.

Extend it: if each connected user holds one persistent WebSocket connection, and a single server can hold ~50,000 idle connections, how many connection servers does the product need?

  • State the session-length assumption explicitly; it is the whole estimate.
  • Give average and peak concurrency, and the peak-to-average ratio you used.
  • Round to one significant figure; the method matters more than the digits.

Examples

Inputs to state before you multiply anything:

  • Time on the product per user per day: 30 minutes, possibly split across several sessions. A social feed app is 30-60 min; a utility app is 5 min; a game is 60-120 min for active players.
  • Distribution across the day: usage is concentrated in waking hours and peaks in the evening. For a single-country product, a peak-to-average ratio of 3× is fair; for a global product spread across time zones, 1.5-2×.
  • Connection behavior: the app holds a connection open only while the user is actively using it; background connections (push notifications) are handled by the platform's push service, not by your servers. If the interviewer says "the connection stays open in the background," concurrency jumps toward the number of installed devices, and you should say so.
  • Per-server connection limit: 50,000 mostly-idle connections is a reasonable figure for a tuned server; memory per connection (tens of KB for buffers and TLS state) and file descriptor limits set the ceiling, not CPU.

Hints

  1. Concurrent users is a rate-times-duration quantity: if every user spends 30 minutes a day on the product, what fraction of the day is any one user "present"?
  2. Little's law applies directly: average number in the system = arrival rate × average time in system. Arrivals are sessions per day; time in system is session length.
  3. The peak is higher than the average by the same factor that traffic is peaky. Apply it last.

Last reviewed 8 September 2026