Napkin Math is a reference collection of techniques and numbers for estimating system performance from first-principles calculations.
The project addresses the need to quickly reason about system behavior without detailed benchmarking or simulation. It provides curated hardware performance numbers—such as memory read speeds and disk I/O throughput—alongside estimation techniques that let developers compose these primitives to answer larger questions about system capacity and cost. For instance, you can estimate storage costs for application logging by combining per-operation latencies with expected request rates. The approach treats these numbers as rounded figures optimized for mental math rather than false precision.
The tool suits engineers who need to make architectural decisions or capacity planning estimates without access to production data or time for extensive measurement. It works best for back-of-the-envelope calculations during design phases or when evaluating whether a proposed system is feasible. The project emphasizes learning the skill through practice; it provides a newsletter with estimation problems and an archive of worked examples to build facility with these techniques.
The project maintains a curated set of performance numbers that are periodically re-measured and validated on current hardware to keep them representative. The maintainer actively updates the numbers as hardware evolves and as more accurate measurement techniques become available, treating the collection as a living reference rather than static documentation.