Learn
Lesson · Capacity Estimation · The check

Triangulating an Estimate

An estimate cannot be checked by redoing it. It is checked by reaching the same quantity along a route that shares no assumption with the first, and then asking whether the two answers agree — where “agree” means inside the interval the inputs earned, not “close”. The failure mode is specific and common: a second route that borrows a factor from the first cannot contradict it, because a shared factor cancels out of the ratio between them.

route A 500 000 uploaders · 20 photos · 2 MB = 2.0·10¹³ B/day route B 10 000 000 objects · 1.8 MB = 1.8·10¹³ B/day A / B = 10/9 = 1.1111 band from Orders of Magnitude: ÷8 … ×8 10/9 lies inside the band, so the routes agree a factor in BOTH chains cancels: the ratio cannot move
Two routes, one ratio, and the band it has to fall in

Core ideas

What this lesson establishes

One hard idea — independence is what makes a check a check — stated three ways: what a second route has to avoid, what agreement has to mean, and what a shared factor does to the arithmetic.

1

A check is a route that shares no assumption with the first

Route A goes from people: uploaders, photos each, bytes each. Route B goes from the object store: objects written, mean size measured on disk. They arrive at the same quantity — bytes uploaded per day — through different data, and that is the only property that makes the second one informative. Redoing the same multiplication more carefully is not a check; it is the same claim, twice.

2

Agreement is a claim about a band, not about closeness

2.0·10¹³ against 1.8·10¹³ is a ratio of 10/9. Whether that counts as agreement depends entirely on how well the inputs were known: against the ÷8 … ×8 band that three ±2× factors earn, it is comfortable agreement; against factors known to a few percent it would be a serious disagreement. The band comes from “Orders of Magnitude”, and without it the word agree means nothing.

3

A shared factor cancels and therefore cannot be contradicted

Give route B the same 2 MB per photo that route A assumed, and the two answers become 2.0·10¹³ and 2.0·10¹³ and the ratio becomes exactly 1 — for every possible value of that factor. A quantity that appears in both products divides out of their quotient, so no value of it could ever make the check fail. An agreement nothing could have broken has tested nothing.

The material

Two routes to one number, and what makes the second one a check

Why a second route is the only available check, what agreement has to mean, and how a shared factor makes the whole exercise empty.

Definition · Triangulation

To triangulate an estimate is to compute the same quantity by a second route whose factors are independent of the first — no factor appears in both chains — and to compare the two answers by their ratio. The estimates agree when the ratio lies within the band ÷k … ×k that the inputs’ half-widths earn.

The reason a second route is the only check available is that nothing else can fail. The arithmetic can be verified by redoing it, and the units can be verified by writing them down, and neither of those can tell you that a factor was wrong. An assumption is only testable against evidence that did not come from it.

route A · from the people daily uploaders 500 000 × photos per person per day 20 × bytes per photo 2 000 000 = 20 000 000 000 000 B/day route B · from the object store objects written per day 10 000 000 × mean object size on disk 1 800 000 = 18 000 000 000 000 B/day A / B = 20/18 = 10/9 = 1.1111 band = ÷8 … ×8 1/8 ≤ 10/9 ≤ 8 inside

The two routes share no factor. Route A rests on a guess about how many photos a person uploads and on an assumed size per photo; route B rests on an object count and a mean size measured on disk. Drag the assumed size per photo in the lab and route A moves while route B stays exactly where the measurement put it, which is precisely what makes the comparison capable of failing.

Example · The same check, sabotaged

Now give route B the assumed 2 MB per photo instead of the measured 1.8 MB. Both routes now say 2.0·10¹³ bytes a day, the ratio is exactly 1, and the check looks better than it did. It is worth nothing: the shared factor divides out of the quotient, so the ratio stays at 1 whatever value that factor takes. The lab marks the shared row in red and reports the verdict as “no check made”, which is the accurate description.

Why a cancelling factor is invisible from the inside

A fake check does not look like a failure; it looks like an unusually good result. That is what makes it worth a lesson. The test is mechanical rather than intuitive: list the factors of both chains and look for a name appearing twice. If one does, the agreement carries no information about it, and the honest move is to say which factor remains untested rather than to report the ratio.

The lab makes the mechanism visible by letting you drag the shared factor. With independent routes the ratio moves and the check can fail; with the factor shared the ratio does not move at all, however far the slider goes. A quantity no possible value of which could change the outcome has not been tested.

What the band is, and where it comes from

The band is the half-width of the estimate, computed in “Orders of Magnitude”: three factors known to ±2× give ÷8 … ×8. Two routes whose answers differ by 10/9 are well inside that and are telling the same story to the accuracy anyone claimed. Two routes differing by 20× are not, and no amount of explaining will make them.

So the band has to be fixed before the two answers are compared, and it has to come from the inputs rather than from the results. Widening k after seeing a disagreement is the same defect as a shared factor, arriving a step later: it makes the check unfailable after the fact.

When they do not agree

A disagreement outside the band is the useful outcome, not the failed one. It means one of the assumptions is wrong, and it usually says which: the factors the two routes do not share are the suspects, and the one the two routes disagree about most is the place to go and measure. Rechecking the multiplication is the wrong response, because the multiplication was never the part carrying the uncertainty.

One last piece of procedure, which is a fact about the order you do things in rather than about arithmetic. Build the second route before looking at the first answer again. A route constructed with the target number in mind will reach it, by a series of small and individually defensible choices, and the resulting agreement will be as empty as a shared factor and much harder to see.

Interactive

Triangulating an estimate

Two routes, one ratio, and the factor that would make it meaningless

Two routes to one numberand whether their agreement means anything
inside the banda factor both routes sharethe band “Orders of Magnitude” gave

Method

Checking an estimate you have just made

Fix the band, build a route that could disagree, compare last.

1

Write down the band before you start the second route

It comes from the half-widths of the first route’s factors: three at ±2× give ÷8 … ×8. Fixing k in advance is what stops the comparison from being adjusted to fit whatever comes out, which is the most comfortable way to fail this lesson.

2

Build the second route from different evidence, before looking back

Different data, different people, a different part of the system. Do not consult the first answer while doing it — a chain built toward a known number reaches it, one defensible choice at a time, and the agreement means nothing afterwards.

3

List both chains and look for a name that appears twice

Mechanical, and quicker than reasoning about it. Any factor common to both products cancels out of their ratio, so it cannot be contradicted by the comparison. If one shows up, say so and name it as untested rather than reporting the ratio as a check.

4

Take the ratio, and compare it against the band you fixed

A ÷ B, against ÷k … ×k. Inside the band the routes agree to the accuracy the inputs claimed; outside it they do not, and the band does not get widened at this point.

5

On a disagreement, go after the factor rather than the arithmetic

The multiplication is not where the uncertainty was. Compare the factors the two routes do not share, find the one they most disagree about, and measure that. A disagreement that identifies a factor is the most useful thing an estimate can produce.

Routes, ratios and bands

Score 0 / 0

Bytes uploaded a day, from the people and from the object store

Two routes to one quantity, the ratio between them, and then the same comparison with one factor shared.

band, fixed first: three factors at ±2× ⟹ ÷8 … ×8 route A · from the people 500 000 uploaders × 20 photos/day × 2 000 000 B = 20 000 000 000 000 B/day route B · from the object store 10 000 000 objects/day × 1 800 000 B measured on disk = 18 000 000 000 000 B/day A / B = 20/18 = 10/9 = 1.1111 1/8 ≤ 10/9 ≤ 8 agree shared factors: none the routes are independent now let route B borrow route A's 2 000 000 B per photo: 10 000 000 × 2 000 000 = 20 000 000 000 000 B/day A / B = 1 exactly, for ANY value shared factors: bytes per photo verdict: no check made

The last block is the one to sit with. The ratio did not merely come out well, it came out at exactly 1, and it will come out at exactly 1 for every possible value of the shared factor. Nothing about that comparison could have gone wrong, which is the same as saying nothing about it was a test.

The independent version can fail, and that is its entire value. Move the assumed bytes per photo in the lab and route A moves while route B stays put; push it far enough and the ratio leaves the band, at which point you have learnt that the assumption is incompatible with what the object store measured.

For a faded rehearsal, take the lab’s requests-a-day example: daily active users times sessions each times requests per session, against sessions counted in the access log times requests per session counted in the log. The supplied first move is to fix the band before computing anything. Then decide, before you look at the verdict, whether those two routes are independent — the phrase “requests per session” appears in both, and the question is whether the two figures came from the same place.

Common mistakes

1
Calling a second route a check when it shares a factorBoth chains multiply by the same assumed bytes per photo, the answers come out at 2.0·10¹³ apiece, the ratio is exactly 1, and the estimate looks confirmed. The shared factor cancels out of the quotient, so the ratio would have been 1 for any value of it. Nothing could have failed, so nothing was tested — and a fake check does not feel like a failure, it feels like an unusually clean result.
2
Deciding agreement by how close the numbers look2.0·10¹³ against 1.8·10¹³ is agreement or disagreement depending entirely on what was claimed about the inputs. Three factors at ±2× earn a ÷8 … ×8 band, inside which 10/9 is unremarkable; factors known to a few percent would make the same ratio a serious problem. Fix the band from the half-widths before comparing, and never widen it after seeing the ratio.
3
Treating a disagreement as a mistake to be foundTwo routes outside the band are not evidence of a slip in the arithmetic; they are evidence that an assumption is wrong, which is the most valuable thing an estimate can tell you. The productive response is to list the factors the routes do not share and go after the one they most disagree about. Rechecking the multiplications confirms both answers and leaves the actual finding unexamined.

Check your understanding

✓
Finish when a second route that borrows a factor from the first reads as no check at all.

You should be able to build an independent second route to a quantity you have estimated, fix the agreement band from the half-widths before comparing, detect a shared factor by inspection of the two chains, and say what a disagreement identifies rather than what it invalidates.

Note: That is capacity: a rate, the four things it sizes, and a way of checking any of them. “Latency and the Tail” asks the other question about the same request — not how many arrive, but how long one takes — and it begins where this course ended, with the ratio that says a packet crossing a continent costs three hundred round trips inside a datacentre.

Kept in this browser only, for you. Nothing is sent anywhere and nothing checks it. Carry it to another device.

Feedback and recommendations

Something to change about this lesson? Write it down, tick it off when it is handled, and export the list when you want to act on it. Kept in this browser only: nothing is sent anywhere, and nobody is notified.

No recommendations yet for this lesson.