# Guesstimation

Fermi calculations, calculation hacks, principled estimates, informed guesses

April 9, 2024 — April 15, 2024

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. (Harte 1988; Mahajan 2010; Swartz 2003).

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 Python or Julia)
- A programming language for anything other than estimation.
- A visually-driven tool. (See Guesstimate and 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
```

### 3.3 Enterprise probabilistic spreadsheets

Enterprise versions of guesstimate. I have not used these.

## 4 References

*Consider a Spherical Cow: A Course in Environmental Problem Solving*.

*How to Measure Anything: Finding the Value of Intangibles in Business*.

*Street-Fighting Mathematics: The Art of Educated Guessing and Opportunistic Problem Solving*.

*Back-of-the-Envelope Physics*.