Send both halves
The answer and the spans you retrieved for it. Margin does not need your prompt, your weights or your vector store.
Margin reads an answer and its retrieved context together, then highlights each assertion by what actually backs it. Supported in green. Stretched in orange. Invented out of nothing in red.
The tray
A grounding score is a number you have to take on faith. A mark is a thing you can point at, argue with, and send to whoever wrote the retrieval.
Every token traceable to a retrieved span. Quote it in a report.
Supported, but reworded far enough that the wording is the model's.
A source is adjacent but does not carry the claim as stated.
Nothing in the context says this. The interesting ones live here.
A marked answer
The same answer your model produced, with a verdict on every claim. Pick one to read the span it was checked against.
and has supplied the eastern districts ever since. , which is when the current capacity figure dates from.
, and .
On paper
Invented product, invented figures. Nothing here was measured.
How it works
The answer and the spans you retrieved for it. Margin does not need your prompt, your weights or your vector store.
The answer is split into assertions, each with a verdict, a confidence and the span offsets it was checked against.
Render the marks for a human, or fail the response in CI when anything comes back unsupported. Same payload either way.
The payload
Each claim comes back with its verdict, a confidence, and character offsets into the span it was checked against: the spans you sent, not a copy we made.
The run as a whole gets a gate: pass if nothing is unsupported, fail if anything is. Wire that to CI and stop reading.
{
"run": "4c1f",
"gate": "fail",← one red is enough
"claims": [
{
"text": "commissioned in 1936",
"verdict": "grounded",
"confidence": 0.97,
"span": { "id": 2, "start": 118, "end": 171 }
↑ offsets into span 2, as you sent it
},
{
"text": "second intake by 2031",
"verdict": "unsupported",
"confidence": 0.91,
"span": null← nothing to point at
}
]
}
Where it goes
If someone downstream will repeat it, whether a customer, a lawyer or a dashboard, it is worth knowing which parts were actually in the source.
Catch the refund policy the model invented before a customer quotes it back at your team.
Every citation checked against the document it says it came from, down to the passage.
Answers about your own wiki, held to your own wiki, not to what the model remembers about companies like yours.
Grounding as a per-claim metric, so a regression points at the sentence that broke instead of a score that dipped.
Margin notes
No. It reads two things: the answer, and the spans you retrieved for it. Whatever produced them is your business.
Anything that could be true or false on its own. A sentence with three assertions comes back as three claims, each with its own verdict.
Yes, and it says how sure it is. Stretched exists because the line between supported and not is sometimes genuinely fuzzy; better to show you the fuzz than hide it in a score.
This is a demo of an invented product, so it has nothing to keep. A real one should answer this question in its first paragraph, not its last.
Send one answer through it and see how much of it survives.
Get a key