Skip to content

The Assumption You Never Wrote Down Is the Bill You Haven't Paid Yet

Every model rests on things nobody checks: that inputs stay clean, that volumes stay small, that formats never change. This page looks at what those assumptions cost when they turn out wrong.

Why assumptions are cheaper to make than to keep

Every model needs assumptions because nobody can specify every condition in advance. You assume the data arrives in a certain format, that a person will check it if something looks odd, that the volume next year resembles the volume this year. Making an assumption costs almost nothing at design time. It is a sentence, sometimes not even written down, just understood by whoever built the thing.

The cost appears later, and it appears somewhere else. A model built on an unstated assumption works fine until the assumption stops holding, and then someone has to notice the failure, trace it back to its cause, and rebuild the part that broke. That work is almost always more expensive than writing the assumption down would have been, because it happens under pressure, after something has already gone wrong, rather than calmly during design.

Where assumptions like to hide

Assumptions rarely announce themselves. They live in default values, in the shape of a sample dataset used for testing, in a colleague's private knowledge that never made it into documentation. A model tested only on typical cases carries a buried assumption that typical cases are all that matter. A model that ignores time zones carries an assumption that everyone involved shares one clock.

The common thread is that these assumptions are invisible while they hold true. Nobody budgets for fixing an assumption that has never failed. That is exactly what makes the eventual cost feel unfair when it lands: the model looked complete, the assumption was never listed as a risk, and yet the bill arrives regardless. Naming assumptions during design does not remove this risk, but it moves the cost of discovering them from an emergency to a planning conversation.

What changes the size of the eventual cost

Some assumptions fail quietly and cheaply; a rounding assumption might introduce a small, tolerable error that nobody notices for years. Others fail loudly and expensively: an assumption that a supplier's data feed would never change format, broken all at once, can halt processing until someone rewrites the part of the model that depended on it. The difference is usually how deeply the assumption is embedded and how many other parts of the model depend on it holding.

Assumptions near the edge of a model, close to where data enters or leaves, tend to be cheaper to fix because changing them touches less of the system. Assumptions buried in the core logic, the kind that shaped early structural choices, are expensive to unwind because everything built afterward leaned on them. This is why reviewing assumptions early, before a model grows around them, is one of the few genuinely low-cost forms of risk reduction available.

What people get wrong about hidden costs

The most common mistake is treating an assumption's silence as evidence of its soundness. If a model has run for years without the assumption causing a visible problem, it is tempting to conclude the assumption was safe all along. Often it simply had not yet met the condition that would break it. Long uneventful periods can make hidden costs feel theoretical right up until they are not.

A second mistake is confusing documentation with correctness. Writing an assumption down does not make it true, but it does make its failure diagnosable in hours rather than weeks. The value of surfacing assumptions is not that it prevents every future cost; it is that it turns an untraceable failure into a traceable one, which is usually the largest part of what makes hidden costs expensive in the first place.

Trade-off

Surfacing an Assumption Now vs. Discovering It Later

ApproachWhat it costs up frontWhat it costs when reality shifts
Documented and reviewed assumptionTime spent listing conditions and edge cases during designFix is targeted; the failing assumption is already named and its scope understood
Assumption embedded silently in logicNothing extra at design time; the model ships fasterDiagnosis takes far longer; nobody remembers the assumption existed
Assumption tested against edge casesExtra design and testing effort before deploymentFailures are rarer and smaller because more conditions were anticipated
Assumption never revisited after launchNo ongoing review costDrift accumulates unnoticed until a single event forces an expensive rebuild
Assumption re-checked on a fixed scheduleRecurring but modest cost of periodic reviewMost failures are caught before they compound, keeping fixes small
Common questions

Assumptions and Their Costs, Answered Plainly

How do I find the assumptions hiding in an existing model?

Ask what the model would do with an input it has never seen: a missing field, a value outside the expected range, a format from a different source. Wherever the answer is unclear or the model was never tested that way, an unstated assumption is likely sitting underneath.

Are all hidden assumptions worth fixing?

No. Some assumptions are safe enough that documenting and monitoring them costs less than removing them. The point is not to eliminate every assumption but to know which ones exist and roughly what would happen if each one failed, so the response is planned rather than improvised.

Why do hidden costs from assumptions tend to appear all at once?

Because the underlying condition often holds steadily and then crosses a threshold, such as a data volume finally exceeding what a fixed-size structure can handle. The model looks stable right up until the threshold is crossed, at which point the failure appears sudden even though the risk had been building for a long time.

Does more testing eliminate hidden costs from assumptions?

It reduces them but cannot eliminate them, because testing can only check conditions someone thought to test. Assumptions that nobody considered worth testing are, by definition, the ones most likely to remain hidden. Broader review of the assumptions themselves, not only more test cases, closes more of this gap.

Who ends up paying when an assumption fails?

Often not the person who made the assumption. The cost frequently lands on whoever operates or maintains the model later, which is part of why assumptions are easy to under-price at design time: the person deciding not to document one is rarely the person who will pay for that decision.

Is it cheaper to build a model with fewer assumptions from the start?

Not necessarily. Reducing assumptions usually means adding checks, validations, and handling for more cases, which raises the up-front cost. The more realistic goal is matching the number and depth of assumptions to how costly each one would be if it turned out wrong.