In this note
- A blank, a zero, a sentence and a spinner each lie differently
- The guidance says to communicate uncertainty, and we think the gap is earlier
- Three gaps open while the source is being read
- Two gaps open when figures are put together
- Two gaps are the limits of the system itself
- The seven states, in one table
- The state goes where the value would have been, in words
- What to check in any product that uses a model
Every system that reads documents, applies rules or calls a model reaches a point where it does not have the answer. What it puts on the screen at that point is a design decision, and we think it is usually made by accident: an empty cell, a zero, a fluent sentence, a spinner. Each tells the reader something, and what it tells them is rarely true.
Our view, from the products we build and run, is that “we do not know” is not one state. We count seven, each with a different cause and a different next step for the reader. An interface is honest only when it says which one it is in, in words, where the value would have been.
This note sets out the seven, each shown in a product of ours and quoted from its own public pages as read on 3 October 2026.
A blank, a zero, a sentence and a spinner each lie differently
A blank cell says nothing, so the reader supplies the meaning: no charge, not applicable, still loading, broken. A zero is worse, because it is a value and it goes into the total. The page for Rateslip (opens in a new tab), our product for comparing supplier documents, gives the common case. A freight line of ₹0.00 “usually means the buyer is arranging it, not that it is free”.
A confident sentence lies by tone. Nielsen Norman Group describes the output of language models as “unerringly confident, regardless of the accuracy of the response” (opens in a new tab), so nothing marks the sentences that were filled in. A spinner lies about time. It says the same thing whether the work is running, queued or dead.
In all four cases the system and the reader carry on as if nothing had happened. Google’s People + AI Guidebook calls this a background error (opens in a new tab), where “neither the user nor the system register an error”, and notes that user feedback is unlikely to reveal it. Nobody reports a zero that looked like a price.
The guidance says to communicate uncertainty, and we think the gap is earlier
The first consideration in Google’s chapter on explanation is “Help users calibrate their trust” (opens in a new tab). Microsoft’s Guidelines for Human-AI Interaction (opens in a new tab) include “Make clear how well the system can do what it can do”.
The usual implementations are a disclaimer, a citation and a confidence score, and the same sources are candid about each. A generic warning on every screen becomes, in Nielsen Norman Group’s words, “background clutter in the interface” (opens in a new tab). Its research found that “people rarely click citation links” (opens in a new tab), so an answer that looks well cited earns trust that is rarely checked. On confidence scores, Google’s guidebook warns of “a risk that confidence displays will be distracting, or worse, misinterpreted”.
We think the gap is earlier than any of these. In software that handles documents, rules and money, most of what gets filed under uncertainty is not a probability. It is a specific fact about the work: this page was not read, this figure is not printed, these two things are not alike. A percentage cannot carry that, and neither can a sentence at the foot of the screen. A model can produce a fluent value for any of the seven states below unless the system around it is built to stop.
Three gaps open while the source is being read
Not read. The system has not looked at this part: not yet, or it cannot. Done badly, this is the endless spinner, or an empty result that looks the same as a clean one. Redact PDF (opens in a new tab) searches a document’s text layer, so its Find panel “cannot see a scanned page that has none”, and it names those pages. In its export report, a page rebuilt as an image has no text, so finding nothing there “is trivially true and proves nothing” (opens in a new tab); the report shows those pages and asks the person to look. On Rateslip, a document whose reading never started “waits with a Read button”. The reader needs to know which part is unread and what would get it read.
Not in the source. The system looked, and the source does not say. Done badly, the cell is blank or zero, or it is filled from somewhere plausible. Rateslip’s rule is that a cost the page does not print “stays unpriced: never zero, never borrowed from another document”. On one test document its reading says “No price is printed for this item”. The reader needs the missing thing named, because the next step is to ask whoever wrote the document.
The source disagrees with itself. The system looked and found two answers. Done badly, it picks one quietly, or averages them. Rateslip compares the printed page with the text hidden inside the file, and where they differ it “shows both values, computes no landed cost from either, and says why”. Its example is labelled “Landed cost not computed · this file disagrees with itself”. The reader needs both values and where each sits, because only a person can say which is right.
Two gaps open when figures are put together
Not comparable. Each figure is known. The relation between them is not. Done badly, this is a ranking, because a ranking is what a comparison tool is for. Rateslip checks two documents key by key, and when one key differs it shows both landed figures, each marked “shown, not ranked”, under a verdict such as “Not comparable · delivered to different places”. Every check is listed, its page says, “not only the first that fails”. The reader needs the term that differs, since that is the question to take back to the supplier. Another note covers this state at length.
Worked out, not read. The figure is not printed anywhere. The system derived it, under assumptions. Done badly, a derived number looks identical to an observed one, and an estimate looks like an answer. Rateslip marks a derived quantity as “computed from the printed count and size”. The Capital Gains Tax Calculator (opens in a new tab) has a panel headed “Show your work”, each step with the rule applied and its citation. Under the result it says “An estimate, not tax advice”, with a list of what it leaves out. WageCalcs (opens in a new tab) applies the federal rule and the state’s, and sets the result out like a pay stub: “You can check every figure by hand”. The reader needs the working and the exclusions at the result itself.
We think a model should not be the one working it out. Rateslip’s page is blunt: “The model reads. It never does the sums.”
Two gaps are the limits of the system itself
Checked, this far. The system verified something, to a certain depth, on a certain date. Done badly, this is a green tick or the word “verified”. WageCalcs gives every state’s overtime rule a column headed “Checked against” (opens in a new tab). Its values are “Full text” and “Excerpts”, and the page says what each means and when the rules were last checked. Redact PDF reads its exported file back, and the report states its own limit on screen. The tool’s page on testing its claims gives the reason: “a proof that quietly stops short is worse than no proof at all”. The reader needs what was checked, against what, and when.
Not covered. The case is outside what the system does. Done badly, the option is absent, and absence reads as an answer. The Capital Gains Tax Calculator keeps the states it cannot yet compute in its list, disabled, “so a missing state is never mistaken for one with no tax”. A state that really has none is written out: Texas reads “No state tax”. Redact PDF’s page says password-protected files are “refused rather than half-processed”, and Rateslip’s has a section titled “What Rateslip does not do yet”. The reader needs to be told the limit is the tool’s, so they go elsewhere and do not trust a silence.
The seven states, in one table
The seven, side by side.
| State | What the reader needs | The honest form |
|---|---|---|
| Not read | Which part, and what would get it read | The unread part named, with an action; never an endless spinner |
| Not in the source | What is missing, so they can ask for it | A word of its own, such as unpriced; never zero, never a borrowed value |
| The source disagrees with itself | Both values, and where each one sits | Both shown, neither used, the reason stated |
| Not comparable | Which term differs | Each figure shown, no rank, every check listed |
| Worked out, not read | The working, and what was left out | The steps and their rules, and the exclusions, at the result |
| Checked, this far | What was checked, against what, and when | The depth and date of the check, beside the claim |
| Not covered | That the limit is the tool’s | The option kept visible and marked unavailable, or a refusal with its reason |
Each row ends in something the reader can do, and we think that is the test of an honest state. Google’s guidebook asks the same of a result a system cannot give: “Explain why a certain result couldn’t be given and provide alternative paths forward.”
Two limits of this evidence. Of the four products, only Rateslip’s page describes a model at work; the other three describe code that runs in the browser. And Rateslip keeps the region of the page each figure was read from, but drawing that region on the page image is, its page says, “the next piece of work”.
The state goes where the value would have been, in words
A state that is true and out of sight does little. Nielsen Norman Group advises placing a source “directly next to the specific claim or sentence” it supports, and we think a gap deserves the same position. Rateslip’s page sets “page 1 · reconciled” directly after a landed figure, and “shown, not ranked” in the same position when it will not rank.
The wording should be tested. In an experiment with 404 participants, Kim and colleagues (opens in a new tab) found that first-person expressions of uncertainty lowered agreement with a system’s answers and raised accuracy. Impersonal phrasing had weaker effects that were not statistically significant. They conclude that “the precise language used matters”. The states above are not hedges, though. “Unpriced” and “not comparable” are facts about a document, stated flat.
A state shown only by colour is not shown to everyone. WCAG 2.2’s success criterion 1.4.1, Use of Color (opens in a new tab), at Level A, requires that colour is not “the only visual means of conveying information”. A state also tends to arrive after the page has loaded, when a read finishes or a check completes. Where that change is a status message, criterion 4.1.3, Status Messages (opens in a new tab), at Level AA, applies: it has to be exposed so that assistive technology can present it “without receiving focus”. We make no conformance claim for any product in this note. The point is narrower: the honest form and the accessible form are the same form. Text, in place, announced when it changes.
What to check in any product that uses a model
- Find a value the system could not have known, and look at what the screen shows. A blank, a zero or a fluent sentence is a finding.
- Count the not-known states. One catch-all, such as “N/A” or “Error”, means the kinds have been merged.
- For any figure, ask whether it was read or worked out, and whether the working opens from the figure itself.
- Give it two things that should not be compared. Does it rank them?
- Give it a source that contradicts itself. Does it choose?
- Look for the written list of what it does not cover, and for options that vanish where they should show as unavailable.
- For every “checked” or “verified”, ask against what, how thoroughly, and on what date.
- View it without colour, then run one flow with a screen reader. Each state should still be there, in words.
- Ask which steps a model performs and which run as code. A check in code can name what failed.
Our service pages say the same in fewer words. The Design page says a component library comes with every state defined, the disabled, error, empty and loading ones included. The AI Systems page says that when retrieval comes back empty or thin, a system reports the gap and does not fill it. This note is the longer version of those lines: “empty” is not one state, and each gap has a name. Rateslip is on /work; the other three tools are in Kordal Labs.
Sources
- People + AI Guidebook, “Explainability + Trust” (calibrating trust; confidence displays) (opens in a new tab)Google PAIR. Accessed 3 Oct 2026
- People + AI Guidebook, “Errors + Graceful Failure” (background errors; low confidence and paths forward) (opens in a new tab)Google PAIR. Accessed 3 Oct 2026
- HAX Design Library, the 18 Guidelines for Human-AI Interaction (Guideline 2) (opens in a new tab)Microsoft, HAX Toolkit. Accessed 3 Oct 2026
- AI Chatbots Discourage Error Checking, by Pavel Samsonov (16 May 2025) (opens in a new tab)Nielsen Norman Group. Accessed 3 Oct 2026
- AI Hallucinations: What Designers Need to Know, by Page Laubheimer (7 February 2025) (opens in a new tab)Nielsen Norman Group. Accessed 3 Oct 2026
- Explainable AI in Chat Interfaces, by Megan Chan (12 December 2025) (opens in a new tab)Nielsen Norman Group. Accessed 3 Oct 2026
- “I’m Not Sure, But…”: Examining the Impact of Large Language Models’ Uncertainty Expression on User Reliance and Trust, by Kim, Liao, Vorvoreanu, Ballard and Wortman Vaughan (FAccT 2024) (opens in a new tab)arXiv. Accessed 3 Oct 2026
- Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation, 12 December 2024 (Success Criteria 1.4.1 and 4.1.3, with their levels) (opens in a new tab)W3C. Accessed 3 Oct 2026
- Understanding Success Criterion 1.4.1: Use of Color (opens in a new tab)W3C Web Accessibility Initiative. Accessed 3 Oct 2026
- Understanding Success Criterion 4.1.3: Status Messages (opens in a new tab)W3C Web Accessibility Initiative. Accessed 3 Oct 2026
- Rateslip, the product page (“What Rateslip does”, “Why Rateslip reads the page, not the file”, “Comparable, or a stated reason”, “What Rateslip does not do yet”) (opens in a new tab)Kordal Systems. Accessed 3 Oct 2026
- Zero-Trust PDF Studio (Redact PDF), the tool’s page (“Finding what to remove”, “What it does not handle”) (opens in a new tab)Kordal Systems. Accessed 3 Oct 2026
- Zero-Trust PDF Studio, “Check these claims” (reviewed 29 September 2026) (opens in a new tab)Kordal Systems. Accessed 3 Oct 2026
- 2026 Capital Gains Tax Calculator, the tool’s page (“Why are some states unavailable?”, “Show your work”, “State capital gains tax”) (opens in a new tab)Kordal Systems. Accessed 3 Oct 2026
- WageCalcs, the home page (opens in a new tab)Kordal Systems. Accessed 3 Oct 2026
- WageCalcs, “Overtime laws by state” (“Every state’s rule”, “How each rule was checked”) (opens in a new tab)Kordal Systems. Accessed 3 Oct 2026
On this site
Useful notes, by email.
When a note is published, one email, with the note. Product engineering, AI systems and the decisions behind what Kordal builds. Nothing else is sent to this list.