datumwise

The Ladder

One way to judge every answer to the wrong-numbers problem. Including ours.

The most common question we get is some form of "how is this different from X?" — a semantic layer, a text-to-SQL agent, a modeling language, a metrics store. It deserves a better answer than a feature table. It deserves a measuring stick — one that applies to us with exactly the force it applies to everyone else.

Here it is. It starts from the one fact nobody in this industry disputes anymore: analytical systems produce wrong numbers that arrive without errors — silently. The question that separates solutions is not whether they know this. Everyone knows this now. The question is: when a failure comes, what fate does it meet?

One question, five fates

Do not picture a scale. Picture a gauntlet — the gates one question passes through on its way to becoming a number. Take an ordinary one: average order value, by month. Walk it in.

Before the first gate, some failures simply cannot enter. In an honest architecture, the join that silently triples revenue has no way to be written — the backend delivers columns and never combines them, so there is no sequence of operations that multiplies. The failure isn't caught; it was never expressible, the way a type system makes certain bugs unwritable.

Then why not build the whole system this way — every failure impossible? Because making all error unwritable takes a power we should decline even if we had it. Most failure shapes sit one honest choice away from a legitimate question, and a language in which you cannot err is a language in which you can barely speak. Only failures with no legitimate twin earn the top treatment — no honest question was ever answered by a silent triple-count, so that door can be bricked shut at no cost to anyone. The rest of the doors stay open, and the gates begin. Even the omnipotent option, famously, left people the freedom to make mistakes. So must we.

Gate one: is it meaningful here? A question can be perfectly well-formed and still mean nothing in this data. Linguists have a famous sentence for this — colorless green ideas sleep furiously — flawless grammar, empty meaning, and natural language has to tolerate it. We don't. Ask for a rate over a population where its ingredients don't live, and the request is grammatical, expressible — and not meaningfully executable in this Manifold. It gets refused: stopped before anything runs, with the reason and the nearest legitimate alternatives. Natural grammar admits nonsense because it must. A grammar over declared data doesn't, because it needn't. watch it refuse — one tap in the demo →

Gate two: does it mean exactly one thing? Average order value, by month is meaningful — that's the trouble. It is meaningful several ways, and the ways live in different places. Averaged over what — orders, customers, days? That question was settled the day the metric was declared: to this system, aov is not a name to read meaning into. It is a formula — revenue over orders — inspectable in the Explorer, riding on nothing as fragile as a string. The pooled monthly rate, or the mean of daily rates? That question lives in the gap between your sentence and any expression — they are two different computations, and no grammar can hear which one you said, because you said neither. The asking belongs to the moment of translation, and the Manifold is what arms it: a translator that can see aov is a ratio of aggregates knows there is a question to ask before any expression exists. And some ambiguity survives into the expression itself: a rate whose ingredients live in two different populations is ambiguous in structure, however carefully the question was phrased. There the system must not pick — not even the popular reading. It gets asked back: the legal readings are enumerated, each a real, runnable alternative, and the one party who knows what was meant chooses. watch it ask back — one tap in the demo →

Stay on this rung a moment, because it is the strange one. Every other rung is prophylactic or confessional — it prevents a number, or it flags one. Asking back is curative: the failure is converted into a question before any number exists, and what eventually serves is the answer you actually meant. It is the only rung that ends with the right number. It is also the rung an architecture can't fake — in the place where structure can see: knowing that you must ask is a completeness check only a grammar can run, and knowing the full set of legal readings is an enumeration only an algebra can make. A model can ask on instinct, and sometimes does. Instinct doesn't know when it's needed, and doesn't know when its list is complete. The division of labor is exact: where the ambiguity is visible in the expression, the grammar asks; where it lives between your sentence and the expression, the asking belongs to the translator — and the Manifold's describe surface is what turns a translator's instinct into knowledge.

Gate three: does the answer make analytical sense? The question is meaningful, single, and legal; it executes; a number exists. And still the result may carry an assumption a careful analyst would want said aloud — the frame spans two populations; the value came from a cache as of this morning; the estimate has a known error. The number serves, and the assumption rides with it, structured, on the wire: material ones in your face, the rest filed for audit. It gets labeled — not as apology, as completeness. watch it disclose — one tap in the demo →

And past the last gate — one more honesty, about us. There is a failure family no gate can reach: whether the question you asked is the question you meant. Whether refunds belong in "revenue" is a fact about your business, not your query — no checker can rule on it, ours included, because ruling would require knowing your intent. We decline the omnipotent option at the top of the ladder; at the bottom, we simply lack the omniscient one. For that family, labeled is not the consolation rung. It is the highest rung that exists — for everyone, permanently.

Between the omnipotence we refuse and the omniscience we lack, three rungs remain — refuse, ask, disclose — and those three are exactly what honesty looks like for a machine.

So, the five fates, top to bottom:

If those middle three sound familiar, they should: they are the system's own answer vocabulary — refuse, clarify, disclose — which is no coincidence. The moods are the rungs, seen from inside a single query's journey. And the stick, in one sentence: a solution's worth is the set of failures it moves up the ladder.

The research states the rungs formally — inexpressible, certifiable, disclosable-only — in The Silent Seam.

What kinds of failure are there?

Fates need patients. At the resolution this page needs, the silent failures of analytics sort into six bands, in three groups. (The full-resolution map is the Silent Failure Atlas: sixty-seven modes, nine families, graded against everyone including us. This page is the teaching zoom; the Atlas is the reference zoom.)

Failures of form — these live inside the computation, where a grammar can reach them. They can climb all the way:

The boundary band — one band, sitting exactly on the seam between form and meaning:

Failures of meaning — these live between the person and the question, where no apparatus reaches:

The technology patterns

Now the columns. What follows places patterns, not products — you will recognize your stack without our naming it, and the recognition is yours to make. One name appears below, for one reason that will be obvious.

The bare agent. A capable model pointed at a warehouse — text-to-SQL, with or without schema in the prompt. Every band stays silent. This is not a criticism of the models: a perfectly accurate reader of an under-specified question still has to pick. It is a statement about where the fix cannot live.

The documented catalog. The serious answer most of the industry gives: governed views encoding one authoritative definition per metric, documentation and labels describing every dataset, lineage, access control — the well-run semantic layer. Credit where due: this genuinely moves drift up the ladder. One definition, encoded once, consumed everywhere, is a real fix for two-dashboards-two-numbers.

But watch what carries the correctness: prose and names, read by the same fallible semantic engine the layer was built to protect you from. A view freezes a metric's grain and resolution into SQL text; the documentation describes the freeze; and underdetermined questions — one governed name, several legitimate numbers — have nowhere to go. We measured exactly this: nine models, identical well-documented schemas, one shot each — and entire failure families failed identically across every model tested, regardless of vendor or scale. More documentation did not fix it. Better models did not fix it. And half of every model's silent failures weren't arithmetic at all: the model named the right hazard in prose, then filed it under the wrong category. Disclosure without structure. the benchmark →

A newer sub-pattern deserves its own sentence: some catalogs now mine query logs for implicit definitions — if most queries filter a certain way, surface that as the candidate meaning. This promotes consensus to canon. But if the popular query divides by the wrong thing, consensus is how the wrong thing becomes official. Consensus is not correctness. Only a grammar knows the difference.

The redesigned language. Some projects rethink the query language itself, and the best of them make the analyst's intent dramatically more expressible than SQL ever did — a real contribution, respectfully noted. But expressiveness governs how you ask, not what is legal to compute; beneath the better language, the container model persists. A better grammar of the question is not a grammar of legality — and notably, nothing forces the choice: a lovely question language could sit above a legality grammar.

The pattern-licensed accelerator. Every mature platform pre-computes rollups and answers from them, increasingly automatically — watching your query patterns and materializing what's popular. A genuine performance layer. But notice what licenses each shortcut: observed pattern, not proof of legality. Whether a cached rollup may lawfully serve a given question is exactly the rollup reuse band — and popularity cannot close it. (Our own answer — a navigator whose every cache hit is a theorem application — is on our roadmap, not in the shipped engine. The ladder grades shipped things. So should you. the roadmap note →)

The fast pipe. A different layer entirely, included because of a name: Columnar (columnar.tech) builds Arrow-native connectivity that moves columnar data between systems dramatically faster than the row-oriented standards it replaces. Excellent work, one letter from our name, and not on this ladder at all: connectivity determines how fast a number arrives, not whether it was the right number. They move columns fast; we govern what columns say. If anything, the two compose.

The closed estate. At the highest end, the most commercially successful version of the diagnosis: a model cannot be trusted with a business's numbers until something anchors it to that business's actual world. Right about the disease — billions of dollars right. The cure is an estate: closed, bespoke, ungradeable from outside. Ours is the opposite wager: that the load-bearing part of "anchoring" is small enough to be an open algebra — checkable by anyone, owned by no one.

The map

Rungs, bands, patterns. Put them together and the landscape stops being a debate and becomes a picture:

failure band the bare agent the documented catalog the redesigned language the pattern-licensed accelerator the grammar layer
failures of form
fan-out silent silent1 refused2 can't be written
aggregation legality silent silent3 silent refused
drift silent refused4 refused5 can't be written6
rollup reuse silent silent7 refused by proof — roadmap
the boundary band
underdetermined questions silent8 silent silent asked back11
failures of meaning
unspoken intent & world-truth silent labeled9 silent labeled10
can't be written refused asked back labeled silent roadmap not its job
  1. curation reduces exposure; nothing rules.
  2. partial — symmetric-aggregate handling catches some.
  3. prose warnings, unenforced.
  4. refused by governance process, not by a checker.
  5. definitions-as-code reduce forks.
  6. nothing operational rides on names, so divergence has no carrier.
  7. licensed by usage pattern, not proof.
  8. sometimes asks on instinct — untriggered by structure, incomplete alternatives, unreliable under pressure.
  9. wiki prose, unstructured.
  10. structured disclosure — the shared ceiling, ours included.
  11. the structurally visible portion of the band; sentence-level underdetermination is resolved at declaration or at translation — see gate two.

Three things to read off the picture. The red concentrates in one row: underdetermined questions go silent everywhere — everywhere but one cell, because asking back is the rung that requires the algebra. The bottom row is the same color for us and for the best of the catalogs — the ceiling is shared, and a comparison page that pretended otherwise would be lying about its own author. And our column is not monochrome: a roadmap-hatched cell, a shared amber floor — the mixture is what makes the rest believable. Each cell's claim links to its evidence: the demo's moods by deep link, the benchmark, the papers, the Atlas family, the roadmap note. Nothing here asks to be believed.

Before the first question

The map grades what happens to a question once it is asked. But the best-run catalogs do a second job the map doesn't measure, and it deserves honest credit: they help people understand the data before forming a question at all. That job matters — most wrong questions are asked against an imagined dataset — and it deserves a better instrument than a directory of tables.

Ours is the Manifold Explorer, and it is live on this site's demo right now. A catalog shows you the containers: tables, schemas, column names, prose about tables — and leaves you to strip the storage away to find the substance. The Explorer shows the substance directly: each measure's universe and family, its operators — the movements the column may legally make — the formulas of the derived, and the walls themselves, the barred directions, shown before you walk into them. A catalog tells you a column exists. The Explorer tells you what it says, of what, and what may lawfully be asked of it. browse the demo Manifold →

Which completes the measuring stick. The ladder measures the fate of failures once born; orientation reduces how many are born at all. A solution's worth is the set of failures it moves up the ladder — and the set it prevents from being born.

Beside, not against

Keep your semantic layer — it solves drift, and drift is real. Keep your warehouse — we never compute where your data could. Keep your fast pipes. The grammar layer is the layer underneath all of them that was never built: small, closed, checkable — the part of correctness that should never have been asked of names, documentation, or consensus in the first place.

And if you think we've placed a pattern wrongly — including ours — the Atlas is open, the benchmark is public, and the demo refuses to lie on our behalf. Bring the failure mode.