Hiring BarSupport
← All calculators

Back-of-the-envelope calculator

Turn daily users, actions and payload sizes into average and peak QPS, storage per day and year with replication, and bandwidth in and out.

Inputs

Reads plus writes
10 means ten reads per write
Bytes stored per write
Bytes sent per read
Busiest hour ÷ daily average

Results

Traffic

Average write QPS
21018.2M writes/day
Peak write QPS
631
Average read QPS
2,104182M reads/day
Peak read QPS
6,313

Storage

New data per day
18.2 GB54.5 GB with ×3 replication
Per year (replicated)
19.9 TB
Over 5 years (replicated)
99.5 TB

Bandwidth

Ingress, average
210 KB/s1.68 Mbps · peak 5.05 Mbps
Egress, average
10.5 MB/s84.2 Mbps · peak 253 Mbps

How this is calculated

Requests
requests/day = DAU × actions, split by the ratio: writes = requests ÷ (1 + ratio), reads are the rest.
QPS
QPS = per-day ÷ 86,400 and peak = QPS × peak factor. For mental maths, a day is about 10⁵ seconds, so 1M a day is roughly 12 per second.
Storage
per day = writes/day × write payload × replication, then × 365 and × retention years. Indexes, compaction headroom and backups are on top of this.
Bandwidth
in = write QPS × write payload, out = read QPS × read response. Bits are bytes × 8. Replication traffic between nodes is extra.
Units
Decimal: 1 KB = 1,000 bytes, 1 TB = 10¹² bytes. Round freely; the goal is the order of magnitude.

What to say in the interview

  • “With 10M daily users doing 20 actions each, that’s about 200M requests a day, roughly 210 writes and 2,104 reads per second on average, and 6,313 reads per second at a 3× peak.”
  • “At 1 KB per write we add about 18.2 GB a day, 19.9 TB a year once it’s replicated 3 ways, so 99.5 TB over 5 years. That tells me whether this fits on one machine or needs partitioning.”
  • “It’s 10:1 read-heavy, so I’ll design the read path first: caching and read replicas buy more than tuning writes.”
  1. Loading the index…