Napkin Math

Quick estimation with human-readable rounding using ‘as napkin’.

From testdata/eval/success/features/napkin.cm.

Basic Numbers #

as napkin rounds to 2 significant figures and adds human-readable suffixes.

small_num = 47 as napkin
medium_num = 8734 as napkin
Results
small_num = 47 as napkin47
medium_num = 8734 as napkin8.7K

Thousands #

thousands = 347234 as napkin
twelve_k = 12500 as napkin
Results
thousands = 347234 as napkin350K
twelve_k = 12500 as napkin13K

Millions #

million = 1234567 as napkin
two_million = 2347000 as napkin
Results
million = 1234567 as napkin1.2M
two_million = 2347000 as napkin2.3M

Billions #

billion = 1500000000 as napkin
five_b = 5000000000 as napkin
Results
billion = 1500000000 as napkin1.5B
five_b = 5000000000 as napkin5B

Trillions #

trillion = 1234000000000 as napkin
Results
trillion = 1234000000000 as napkin1.2T

Negative Numbers #

neg_million = -1234567 as napkin
neg_thousand = -8734 as napkin
Results
neg_million = -1234567 as napkin-1.2M
neg_thousand = -8734 as napkin-8.7K

With Quantities #

bandwidth = (100 MB/s * 3600) as napkin
storage = (10 TB + 5 TB) as napkin
Results
bandwidth = (100 MB/s * 3600) as napkin352 GB/s
storage = (10 TB + 5 TB) as napkin~15 TB

In Calculations #

load = 10000 req/s as napkin
capacity = 450 req/s as napkin
Results
load = 10000 req/s as napkin10K req/s
capacity = 450 req/s as napkin450 req/s

What This Demonstrates #

  • as napkin rounds to 2 significant figures
  • Human-readable suffixes: K, M, B, T
  • Works with negative numbers
  • Works with unit quantities and rates
  • Useful for quick estimation and back-of-envelope calculations