Post #5 · Coverage & fair fights

We asked four students to write 110 questions. Our system could express 10.

Every agent benchmark has a dirty secret: the people who wrote the tasks knew what the system could do. Ours included. So we ran the experiment that hurts — we handed four students a plain-language description of two datasets, deliberately withheld the operator list, and asked them to write whatever questions they actually wanted answered.

10 of 110 questions were expressible in our thirteen-operator algebra. The other 98 are a measured, prioritized to-do list.

What people actually ask

The gaps were not random. Tagging every inexpressible question with its missing capabilities (tags overlap, so counts exceed 98):

Missing capabilityQuestions blockedBlocked by this alone
Grouped / distinct aggregation ("which account sent the most…")7630
Arithmetic beyond count/sum/min/max (ratios, medians, %)272
Property-filtered patterns (rating-sign in motifs)202
Calendar semantics (weekday, hour-of-day)182

One operator family — grouped aggregation — would make 30 more questions expressible on its own. Nothing else comes close. That is what workload-driven interface design looks like: not a designer's intuition about what agents need, but a count of what real questions break on.

Two findings we didn't pay for

The students misjudged the data. Several questions target months before the log begins — a good system should answer zero there, not hallucinate, and it should expose its time range so an agent can tell "no matching events" from "outside coverage." Sharper: even after reading our two-clock explanation, some writers anchored transaction time to event years. The database did not exist in 2013; its beliefs began at ingest. Storing two clocks is not enough — the interface has to teach them.

The fairest fight we ever staged

The same review cycle produced our favorite baseline: give the same model direct SQL access to the identical bi-temporal store our operators run on, schema and temporal semantics documented in the prompt. No information asymmetry left. Three things happened:

Correction probes
0.85–0.92
matched us everywhere. History, not the interface, decides whether belief-state questions are answerable.
Compositional workload
+0.124
our margin on CollegeMsg (CI [+0.07, +0.18]). Where one query can't carry the computation, the contracted plan wins.

And on a flat rating schema (Bitcoin-OTC), SQL generation tied us outright — 0.340 vs 0.309, confidence interval spanning zero. We put that number in the paper with pleasure. The operator interface is not universally better; it is better exactly where computation composes, and it is the only configuration whose every emitted claim is checked against a deterministic trace. SQL answered 94% of tasks and was right 30% of the time; we answered 71% and were right 55% of the time.

Receipts. Study protocol, raw questions, hand-audited classification, and frozen gold: benchmarks/independent-v1/ and decisions D-025–D-027 in the repo. The five scoreable expressible questions ran verbatim against every system; nobody did well, and only our system knew when to say nothing.