🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.🚧 Designers never finish their own portfolio. This one ships rough on purpose and gets better in public. If something looks half-done, it probably is, and I'm on it.
Open menu
Switch to Darkhello@product.inc

Draw the certainty boundary

Tags: forecasts, charts, uncertainty

Two numbers rendered identically make the same claim about how they are known. If one was measured and the other was inferred by a model, the interface has said something false β€” and it has said it in the visual channel, where a caption cannot reach.

The label is not in the channel being read

People read tables and charts by scanning shape, position and weight. Text is a different pass, made later and often not at all.

So "(est.)" beside a number is genuinely present and genuinely unread. So is a footnote, a legend entry, and a sentence under the chart title. They satisfy the author's sense of having disclosed it, which is the thing that makes them dangerous: the obligation feels discharged and nothing has been communicated.

Epistemic status has to be carried by the rendering. Not because labels are bad, but because the reader is not in the part of the interface where the label lives at the moment they form the belief.

Reserve one property, and don't spend it twice

Pick a single visual property and let it mean how well this is known, then never use it for anything else in that view.

Hatching, opacity, texture, a dashed stroke β€” these work because they are otherwise unemployed. Colour usually does not, because colour is already carrying category almost everywhere, and asking it to carry two orthogonal meanings produces a chart where nobody can tell whether green means revenue or means confident.

Two things fall out of choosing deliberately:

Draw the boundary, not just the two regions

This is the part usually missed. Styling the known region one way and the inferred region another leaves the reader to infer where one became the other, and the eye will put it in the wrong place β€” usually later than it belongs, because the last real value is the one that looks most authoritative.

The transition is a feature of the data and deserves a mark. A vertical rule at "today". A visible seam where the record stops. Something that answers when did you stop knowing this as a position rather than as an inference from texture.

Precision is a certainty claim

A forecast quoted to two decimal places asserts more than any model producing it can support, and it does so in a channel people read very well: significant figures.

Match precision to certainty. Round forecasts harder than actuals, and be willing to round them a lot β€” a projected balance of "about Β£2.4m" is more honest and more useful than Β£2,417,338.41, which invites a conversation about the 41 pence.

The fork: mark it, or don't show it

Rendering diagram…

The left branch is the one worth pausing on. Marking is not always sufficient β€” for a number that will be acted on regardless, a visual distinction can be a way of feeling responsible while changing nothing. Sometimes the honest answer is that the inferred value does not belong on that screen at all, and putting it behind a deliberate step is better design than rendering it beautifully hatched.

Grounded in

Nakatomi's treasury view, where the product is the projection rather than the ledger β€” a controller opens it to find out what is about to happen, not what happened.

Actuals render solid and the forecast renders hatched, so the seam between them is visible without being read about. And the balance line turns red the moment it crosses minimum need, which adds the third thing a forecast has to carry: not just what is known and what is guessed, but the one point in the guess that requires somebody to do something. A projection nobody has to act on is a chart; the threshold is what makes it a product.

Anti-patterns

The smallest version worth building

Choose the property. Apply it to every inferred value in the view, including the ones in tables and the ones in prose. Put a rule at the seam. Round the inferred values harder than the recorded ones.

That is an afternoon, and it is the difference between a forecast a reader can calibrate against and one they will quote back to you in a meeting as though you had measured it.