datumwise

First Principles — Analytics

Data · Certainty · Intelligence

datumwise develops first-principles foundations, languages, and systems for analytics across data, certainty, and intelligence.

Last Tuesday it rained.

You have fifty-two shops. Somebody is going to ask you, before lunch, what fraction of them sold an umbrella.

It is a completely ordinary question. Take a moment with it anyway.

What you actually have

52
shops on the roster
3
shut for refurbishment — nothing was ever going to be sold there
49
open for business
8
of those open shops had a dead till feed and sent you nothing at all
41
shops whose day you can actually see
6
of those forty-one reported selling an umbrella

None of this is disputed. Everyone in the room agrees on every line.

So: six out of what?

There is only one decision left in the whole problem. Make it.

Choose the population you mean

what came back

this was your choice

14.6%

of the shops that were reporting

A single number, and a true one. It describes the shops whose tills happened to be working — a population that exists because eight machines broke.

this was your choice

12.2% to28.6%

of the shops that were open

Not a number. A range sixteen points wide, and nothing in the data can narrow it.

this was your choice

11.5% to26.9%

of every shop you have

Not a number. A range sixteen points wide, and nothing in the data can narrow it.

Silence is not zero.

The eight shops you cannot see did not tell you they sold nothing. They did not tell you anything. Any number of them, up to all eight, may have sold an umbrella — so the true count is somewhere between six and fourteen, and six is only where it starts.

You were choosing a denominator. That was never the hard part. The hard part is that for two of those three choices you do not possess the numerator, and you were about to divide anyway.

Nothing here is a bug. Every number is correct, every record is intact, and the division is available whenever you want it.

Arithmetic will happily continue.

This won't.

Something can decline.

The request below is not about umbrellas. It is about stock, in a small declared world that ships inside the software. But it is the same kind of question as the one you just had: the arithmetic is available and the meaning is not.

asked

SELECT stock.sum AT {store*cal.month}

answered

refuse

blocked_reduction

'stock.sum' reduces by 'sum' across blocked lineage 'calendar' — 'sum' is declared BLOCKED along 'calendar', so this reduction has no lawful reading at store*cal.month; per-bucket totals do not reconcile along this axis. Generating a new family does not create the permission: the declared reducer needs the same authority the declaration withholds.

instead

  • use a reducer that IS applicable along 'calendar' (e.g. '.last' for a stock collapsed over time)
  • address at an anchor that does not cross 'calendar'

manifold cascadia · columna 0.18.1 · contract 4 — produced by running the shipped package at build time, not written by hand

Nothing was broken. Every number it needed was present and every one of them was correct. It declined because the result would not have meant anything — and then it named the law that stopped it, and what it would have accepted instead.

That is the difference, and it is smaller and stranger than a feature. Not a faster answer. An answer that knows what it is an answer about.

If that landed

There is a shorter, stranger version of this problem that starts one step further back — at a single number, on a plinth, with nothing attached to it at all.

When is it data? — a four-minute walk

and the full account of what a population is, and when a number exists

The Theory of Data v6.1 · 2026-08-19 · with proofs

This is one problem out of several, and not the hardest. The others are where we think analytics actually begins — Foundations.

Columna has three parts. The Manifold is a data model that holds what your data means — declared by a person, then checked against the data itself before it serves. FrameQL is a query language that can only ask for meaning the Manifold declares. The engine serves nothing the model can't defend. Behind the model stands a published theory with a proved kernel — a growing fragment of its laws are machine-checked theorems, not house style.

Every answer comes back in one of four moods: serve (the number), disclose (the number and the assumptions it rides on), clarify (the question has more than one legitimate answer — choose), or refuse (the data does not define this — here's why). The same contract reaches a Python caller, an HTTP client, and an AI agent over MCP.

It is Apache-2.0, developed in the open, and currently at 0.18.1.


Where to go

In the order a reader usually wants them.

Or just browse: a few pieces worth reading, and where each one opens.

  1. The Theory of Data in One Afternoon start here the whole idea in one sitting, from a cold start — the failures you have already debugged, the world they imply, and the queries that fall out of them. No prior reading needed.
  2. 1
    Never Let Your Agent Touch the Database the position: why the model should never hold your database credentials, and what to put between them.
  3. 2
    Run the demo install, and a clarify, a refuse, and a disclose print on your machine as wire JSON.
  4. 3
    Read the case a complete worked example: a realistic warehouse, the Manifold that serves it, and recorded agent transcripts.
  5. 4
    Learn the framework what Columna, FrameQL, and a Manifold are; the three manuals; the live Explorer.
  6. 5
    Read the argument the eight-minute case for why this exists, with two live exhibits.
  7. 6
    Positions every stance we hold, with its evidence and its paper edition.
  8. 7
    Research the current source estate: every deposited work with its current record, the normative references, the machine evidence, the teaching surfaces, and what we know is broken. Read here where the text is here.

datumwise builds and stewards Columna: Huayin Wang (research), Irena Wang (engineering). It is an independent open-source research project.

We are taking three design partners for real-world deployments — contact@datumwise.ai.