System Design Capacity Estimation Cheat Sheet

System Design Capacity Estimation Sheet

System design capacity estimation is not about perfect arithmetic—it is about showing you size components before you invent them. This cheat sheet gives you a repeatable back-of-envelope flow, talk tracks, and the mistakes that make estimates look fake.

Why interviewers ask for numbers

They want to see whether you:

A wrong number with clear assumptions beats a precise number from nowhere.

The five-number starter pack

Write these on the board early:

  1. DAU / MAU (or active devices)
  2. Read/write ratio
  3. Peak QPS (not only average)
  4. Payload size (avg request/response or object size)
  5. Retention (how long data lives)

Talk track:

“I’ll assume 10M DAU, 1:9 write/read, peak 10× average, 2 KB average object, 1 year retention—call out if you want different assumptions.”

Invite correction. Collaboration is part of the grade.

Core formulas (memorize the shape)

Average QPS

QPS ≈ (DAU × actions_per_user_per_day) / 86400

Peak QPS

Peak ≈ average × peak_factor   # often 3–10×; state your factor

Storage

Storage ≈ objects_per_day × bytes_per_object × retention_days × replication_factor

Bandwidth

Egress ≈ QPS × response_bytes
Ingress ≈ QPS_write × request_bytes

Machines (very rough)

Instances ≈ Peak_QPS / QPS_per_instance   # with headroom 2–3×

Say headroom out loud. Pure 100% utilization is not a plan.

Order-of-magnitude shortcuts

ApproxHandy anchor
10^5 ≈ seconds/day~86,400 s/day
1M users × 10 actions ≈ 10M events/day~100+ QPS average before peak factor
1 KB × 1M = 1 GBstorage intuition
1 Gbps ≈ 125 MB/sNIC ceiling reminder

Round aggressively: “about 200 QPS” not “187.3 QPS.”

Worked mini-example (photo metadata service)

Assumptions: 5M DAU, each uploads 0.2 photos/day average, reads 20× writes, photo metadata 1 KB, blobs elsewhere, retain metadata 5 years, peak 5×.

Then justify: cache hot reads; object store for blobs; DB for metadata.

What estimates should unlock in the design

Estimate resultDesign implication
Read-heavy QPSCache, CDN, read replicas
Write spikesQueue, batching, write-ahead patterns
Huge cold storageObject store / tiering
High egressCDN, compression, regionalization
Tiny QPSAvoid over-sharding theater

If you estimate 50 QPS and propose 64 shards, expect pushback—good.

Peak events and batch jobs

Not all load is user QPS. Call out separately:

Talk track:

“User peak is about 1.2k read QPS; notification fan-out is async via a queue so it won’t multiply API QPS directly.”

If fan-out is synchronous, your estimate must include it—or you redesign it to be async.

Common mistakes

First five minutes flow

  1. Clarify product actions that generate load
  2. Lock assumptions with the interviewer
  3. Compute QPS → storage → bandwidth (pick the relevant ones)
  4. Circle the bottleneck guess
  5. Start the architecture with that bottleneck in mind

Freeze recovery

  1. Stop drawing boxes
  2. Write DAU and actions/day
  3. Do QPS only—ignore storage until QPS lands
  4. Round to one significant figure
  5. Ask interviewer if assumptions are OK

Talk track:

“I’m going to land peak read QPS first; that drives cache and API tier sizing.”

Soft practice note

Capacity math is a calm ritual you can rehearse. If you want a Chrome side panel to practice saying assumptions → formulas → design implications under time pressure, Luna Interview supports that rehearsal loop. Use it to build fluency—not to fake production experience or to violate interview rules.

Day-of checklist

Estimate to decide—not to decorate the whiteboard.