
A citation is an artifact you can open, not a sentence about one
Most systems that claim to cite sources are producing citation-shaped text. The model writes a paragraph, then writes a plausible reference beside it, and the reference is generated by the same process that produced the claim. Nothing was checked. The output simply looks like the output of something that checks.
A real citation is an artifact that existed before the answer did, and that survives being opened. For a number, the artifact is the query: which tables, which filters, which date range, run against which database. For a fact about the world, the artifact is the document the fact appears in, reachable by a link. The test is not whether a source is named. It is whether you can open the source and find the claim sitting in it.
Two ways an answer goes wrong, and only one of them looks wrong
Remembered instead of retrieved
The model answers from training rather than from your data or the current record. Often close, occasionally wrong in the specific way that matters, and never reproducible. This is the failure that survives review, because a remembered fact reads exactly like a checked one.
Retrieved but unreadable
The system did the work and then hid it. A chart with no query underneath asks for trust it has not earned, and the reviewer is left arguing about a conclusion instead of inspecting a join.
The second failure is a design choice and can be fixed by showing the work. The first one has to be designed out before the answer is produced, which means retrieval or execution comes first and the language model gets to phrase the result, not source it.
In SQL, the query is the citation
Ask Chion a question in plain English and the answer is a chart with the read-only SELECT that produced it printed underneath. That query is the citation. You can read it, copy it into your own client, and get the same rows back, which is what separates a number you can put in front of a leadership team from a number you hope is right.
The guardrails are the boring part and they are the reason the citation means anything: Read-only SELECT. AES-256-GCM credential vault. 1,000-row cap. Immutable audit log. Raw rows never leave for the LLM. The model proposes SQL against a typed contract built from your real schema; the validator rejects anything that is not a read; your database executes it. For the mechanism in full, see what a verified SQL agent does, or the full security model.
The same artifact travels. Chion compiles the queries a team has verified into skills that run in other agents, which is how the citation survives leaving the product that produced it. That path is covered in run Chion skills inside Claude Code.
In photographs, the public record is the citation
Analytics has no monopoly on this problem. Point a general assistant at a photograph of an old building and it will name it, date it, and tell you who built it, in the same even tone whether it knows or is reconstructing something plausible from a facade. The failure mode is identical to the remembered number, and it is harder to catch, because almost nobody fact-checks a paragraph about a church.
Lensmark is the same contract applied to that subject. You photograph a landmark, an artwork, or a museum object, and it returns what the thing is and the history behind it: when it went up, who made it, why it mattered. A name is only released when independent identifiers agree on it. Every date and attribution traces back to a retrieved source, and the sources stay attached to the answer so you can open them. When nothing confirms the subject, that is what comes back, which is the part a system built to always answer cannot do.
Different evidence store, identical discipline. One reads a database that belongs to your team, the other reads a public record that belongs to everyone, and both refuse to state what they cannot show.
Four questions that separate a grounded answer from a fluent one
Can you open what the answer was built from?
A citation you cannot click is decoration. The query, the row count, or the source document has to be one interaction away, not summarized back to you in prose.
Does the evidence come back with the answer, or after you ask?
Systems that produce the receipt only when challenged were not grounded in the first place. The receipt is generated by the same pass that produced the claim, or it is reconstruction.
What happens when the evidence is thin?
A grounded system has a way to say so. If every question gets a confident paragraph, confidence is decoration too.
Would the same input produce the same answer tomorrow?
Retrieved evidence is stable and diffable. Remembered evidence drifts with the model, and you find out during the meeting where someone checks the number.
Quick reference
- AI that cites its sources ships the artifact the answer came from, not a sentence describing one.
- A citation is real when you can open it and find the claim inside it.
- Retrieval is the mechanism; citation is the contract. A system can retrieve and still answer from memory.
- In analytics the artifact is a verified read-only SELECT, printed under the chart it produced.
- In photo identification the artifact is the retrieved record, linked so the reader can check the date themselves.
- A grounded system can say it does not know. A fluent one cannot.
Frequently asked
What does it mean for AI to cite its sources?
It means the answer ships with the artifact it was derived from, and that artifact is inspectable. For a number, that is the exact query that produced it against a named database. For a historical or factual claim, that is the retrieved document the claim appears in, linked so the reader can open it. A footnote generated after the fact from model memory is not a citation.
Is a citation the same thing as retrieval-augmented generation?
No. Retrieval is the mechanism; citation is the contract. A system can retrieve documents and still answer from what the model already believed, which is why the honest test is whether every claim in the output can be traced to something the system actually fetched or executed.
Why not just ask the model to add sources?
Because the model will comply. Asked for citations, a language model produces citation-shaped text, and the shape is the part it is best at. The source has to be attached by the system that did the retrieving or the executing, not requested from the layer that is being checked.
How does Chion cite a number?
Chion generates a read-only SELECT, validates it in three layers before execution, runs it against your PostgreSQL database, and renders the chart with that exact SQL visible underneath. The citation is the query. If it looks wrong, you read it, run it yourself, and disagree with something specific.
Does this cost more than an ungrounded answer?
It costs a retrieval or an execution you would otherwise skip. The comparison worth making is not against a cheap answer, it is against the meeting where someone asks where a number came from and the honest reply is that nobody can tell.
Put the query back under the number
Connect a read-only Postgres role and ask a question in plain English. The chart comes back with the SQL that produced it, so the next person who asks where the number came from gets an answer they can run.