# Guesstimation

Fermi calculations, calculation hacks, principled estimates, informed guesses

April 9, 2024 — April 15, 2024

computers are awful
faster pussycat
number crunching
office
Monte Carlo
UI

Tools for back-of-envelope calculations under uncertainty, but principled. Some of these are essentially probabilistic spreadsheets.

## 1 Entry level: Fermi calculations

Fermi calculations are rough estimates, named after the physicist Enrico Fermi. The Wikipedia page is a portal of sorts to the whole field.

Many people have written fun guides to Fermi calculations. .

Relatively few address the problem of uncertainty in the inputs, but Hubbard (2014) does, and I recommend it highly.

## 2 Guesstimate

Guesstimate is a probabilistic spreadsheet, which does Monte Carlo error estimation. (source, Blog post).

For a good worked example, see Elizabeth’s blog.

## 3 Squiggle

### 3.1 What Squiggle Is

• A simple programming language for doing math with probability distributions.
• An embeddable language that can be used in Javascript applications.
• A tool to encode functions as forecasts that can be embedded in other applications.

### 3.2 What Squiggle Is Not

• A complete replacement for enterprise Risk Analysis tools.[…]
• A probabilistic programming language. Squiggle does not support Bayesian inference.
• A tool for substantial data analysis. (See programming languages like Pythonor Julia )
• A programming language for anything other than estimation.
• A visually-driven tool. (See Guesstimateand Causal)

The listed strengths are:

• Simple and readable syntax, especially for dealing with probabilistic math.…
• Optimized for using some numeric and symbolic approaches, not just Monte Carlo.
• Embeddable in Javascript.

The last one sounds useful.

It looks like this:

``````//Here, you're expressing a 90% confidence that the value is between 8.1 and 8.4 Million.
populationOfNewYork2022 = 8.1M to 8.4M

proportionOfPopulationWithPianos = {
// This is a block.
percentage = 0.2 to 1 // Block body can declare local variables.
percentToRatio = 0.01
percentage * percentToRatio // Final expression of a block is the block’s value.
}

pianoTunersPerPiano = {
pianosPerPianoTuner = 2k to 50k
1 / pianosPerPianoTuner
}

totalTunersIn2022 = populationOfNewYork2022 * proportionOfPopulationWithPianos *
pianoTunersPerPiano``````