Order-Of-Magnitude Mental Arithmetic: Basics


In "Order-of-Magnitude Mental Arithmetic: Motivation", I talked about how working with order-of-magnitude values might help with internalizing a rough sort of the numerical mental models that experts develop over the course of extensive experience. The mechanics of this are simple, but are worth going over deliberately.

The first thing we need to be able to do is to identify the order-of-magnitude of a given number. For some numbers, this is trivial: the order-of-magnitude of 1,000,000 is \(10^6\). We're actually going to write that as \(E6\), both to distinguish it from the actual number \(10^6\) and to get our brain to treat it as an atomic value instead of an operation on the numbers 10 and 6. This notation comes from how we sometimes write scientific notation as \(1.0E6\).

So we can do this for powers of 10 easily enough, but what about any other random number? Say, what is the order-of-magnitude of 42? Well, it's probably either 10 or 100, i.e. \(E1\) or \(E2\). But this is the first example of a shift in thinking when using order-of-magnitude values. Normally we think in terms of distance, so for example if I'm on the stretch of road between Lakeview, Oregon, and Winnemucca, Nevada that has no gas stations and I want to know which direction to go, then I naturally head towards the closest one.

In fact, usually what you do in your head is not calculate the distance to both and compare them, but calculate (or estimate) the midpoint between them and go towards the one that's on the same side of it as you are. So in the case of 42 where we're trying to figure out which order-of-magnitude value is a better representative, we would take the midpoint of 10 and 100: 55 and see that we're on the same side of 55 as 10 is.

But let's propose a different analogy: let's say you want to understand whether a salary of $42,000 is more like a salary of $1,000 or a salary of $100,000. This is clearly a different type of question, that is, it's a question of scale, not of distance.

So how do we find the midpoint in terms of scale? In terms of distance, we know there is a number we can add to the starting point that gets us to the midpoint, then if we add it again we get to the end. If we're thinking in terms of scale rather than distance, we do the same thing, but we multiply instead of add.

Since \(1,000 * 10 * 10 = 100,000\), our midpoint is 10,000 and so we see that $42,000 is closer to $100,000 in scale even though it is closer to $1,000 in terms of distance.

This case is a little easier to see since 1k and 100k (\(E3\) and \(E5\)) are two orders-of-magnitude apart, and so it seems natural that the midpoint of scale between them would be 10k \((E4)\). But if we want to choose the most representative order-of-magnitude for any arbitrary value, we need to know the midpoint between any two adjacent orders-of-magnitude. This way we can quickly choose the best of the two for any given value between them.

Let's take the example of 1 \((E0)\) and 10 \((E1)\) and use our method to get the midpoint in scale between them. Since \(1*10 = 10\), the two halves of our journey are \(1*\sqrt{10} * \sqrt{10} = 10\), and so our midpoint is \(1 * \sqrt{10} = \sqrt{10} \approx 3.16\). The neat thing is that all other adjacent orders-of-magnitude look pretty much the same, so \(10 * \sqrt{10} * \sqrt{10} = 100\) and the midpoint is \(\approx 31.6\).

This is why, in terms of scale, 4 is closer to 10 than it is to 1. So when we're deciding which order-of-magnitude best represents a value we need to take that into account.

Then the process of determining a value's order-of-magnitude is easy enough you can quickly get comfortable enough with it to do it without really thinking:

  1. Look at the leading significant digit and see what order-of-magnitude it would be if it was 1 and all other digits zero
  2. If the most significant digit was in the ones' place, would the value be greater than \(\sqrt{10} \approx 3.16\)? If so, add one to the order-of-magnitude since we want to round up rather than down in that case.
Value Leading digit = 1 Rounding Order-of-Magnitude
4,000,000 \(1,000,000 \sim E6\) \(4 \ge 3.16\) \(E7\)
2 \(1\sim E0\) \(2 \ngeq 3.16\) \(E0\)
78 \(10 \sim E1\) \(7.8 \ge 3.16\) \(E2\)
0.5 \(0.1 \sim E^-1\) \(5 \ge 3.16\) \(E0\)
\(7.5E19\) \(1.0E19 \sim E19\) \(7.5 \ge 3.16\) \(E20\)
\(4.8 \times 10^{-7}\) \(1.0 \times 10^{-7} \sim E^-7\) \(4.8 \ge 3.1\) \(E^-6\)
\(\pi \approx 3.14\) \(1.00 \sim E0\) \(3.14 \ngeq 3.16\) \(E0\)

That's it, but if you want an explicit formula, it's just this: \(v \sim E \left[ round(log_{10}(v)) \right]\)


This is the 'Mental Arithmetic' part, and it's incredibly easy thanks to the magic of logarithms: When you multiply two values, say 100 \((E2)\) and 100 million \((E8)\), the resulting order-of-magnitude is the sum of the two: 10 billion \((E10)\). And division is just as easy since dividing by a number is just subtracting its order-of-magnitude, so \(100 \ million / 100 \sim E \left[ 8 - 2 \right] \sim E6\).

Let's look at an example: How long does it take for light to get from the sun to Earth? Well Earth's orbit is about \(1.496 \times 10^8 km \sim E11 \ m\). And the speed of light is \(2.99 \times 10^8 m/s \sim E8 \ m/s\). Since we want the time it takes, we want a value with units of seconds which would be given by \(\frac{E11 \ m}{E8 \ m/s} \sim E \left[ 11 - 8 \right] \ s \sim E3 \ s\). If we check the actual time it's \(499 \ s \sim E3 \ s\), so we're right where we want to be.


Pretty much any useful calculation is going to have some physical units attached to it. In fact, because the calculations themselves are typically so easy, most of the heavy lifting is done in Dimensional Analysis. This means we need to pick units. The units themselves don't matter so much because nearly any value we could come across in any given unit will still be a manageable number (the mass of the Milky Way is \(E46 \ carats\) by the way). But having consistency can make it a lot easier to adapt values across contexts. Because of this, I suggest sticking with the SI base units and derived units whenever practical. But of course, there are likely situations where that would be cumbersome or confusing so use your judgement.

One cool thing is that to do unit conversions you just end up adding a constant. Say you keep on running into values given in light years but you want to keep track of it on your already-familiar order-of-magnitude scale. Since a light year is \(9.46 \times 10^{12} \ km \sim E16 \ m\), any time we see light year, we can take the order-of-magnitude of the value and add 16 to get it in metres. So now if you see that the Milky Way disk is 185 kly in diameter, you can mentally note it as \(E21 \ m\). And it is indeed, at \(1.75 \times 10^{21} \ m\). Now if you want to remember that value for more than just a passing note, it's best to do the conversion and take the order-of-magnitude after that or you risk losing accuracy.


Once you get the basic concept the mechanics of doing this are incredibly easy, so I'd like to explore all the interesting applications of this I can.