Skip to content
in/guard/out
in/guard/out

Fact-checking

Every answer, checked against its source.

A confidently wrong answer is the most expensive thing an LLM produces: a wrong number in a report, a fabricated fact to a customer, a decision made on invented data. in/guard/out fact-checks every response before your app shows it to anyone.

The mistakes that matter are quiet

  1. 01

    A figure drifts from the source

    The source says $1.8M; the answer says $1.9M. Nothing about the sentence looks wrong.

  2. 02

    The maths doesn’t add up

    $2.4M plus $1.8M becomes $4.5M – stated with full confidence.

  3. 03

    A trend is stated backwards

    “Up 14%”, when the numbers actually went down.

  4. 04

    A claim nothing supports

    A date, a name or a fact that appears nowhere in the material the model was given.

How an answer gets checked

The first and most important pass is plain computation, so it costs nothing and can’t hallucinate about hallucinations.

  1. 1Your model

    The answer comes back

    in/guard/out sees what the model was given, and what it wrote back.

  2. 2in/guard/out

    Figures and maths are pulled out

    Every number, total and stated trend in the answer is found and paired with the source.

  3. 3in/guard/out

    Recomputed and matched

    Arithmetic is redone and each figure compared with the source – no model involved. An optional judge reviews what maths can’t check.

    recomputematch figuresdirectionjudge
  4. 4Your app

    Fixed or flagged

    Where the source pins the right value, your app gets the corrected answer. Anything else is flagged with the evidence – or blocked, if you choose.

The answer, marked up with what was caught.

Fact-checking that just says “suspicious” is useless to an editor or an engineer. Every finding here is specific: the exact figure that drifted from the source, the arithmetic that does not add up, the trend stated backwards, the claim the material cannot support – each tagged with which layer caught it.

Deterministic findings come from recomputation, not opinion. Judge findings quote the claim. The same report your reviewers see in the dashboard is recorded on the request, so an audit six months later shows exactly what was checked and what was found.

Grounding report4 caught
Source the user provided

July revenue: $2.4M · August revenue: $1.8M · Prior quarter total: $4.6M

What the model answered

Combined July–August revenue was $4.5M1, and August alone reached $1.9M2. That’s up 14%3on the prior quarter – the strongest stretch since the firm was founded in 17984.

  • 1DeterministicArithmetic – 2.4 + 1.8 = 4.2 – the model said 4.5.
  • 2DeterministicAltered figure – August is $1.8M in the source, not $1.9M.
  • 3DeterministicContradiction – “up 14%” but $4.6M → $4.2M is a decrease.
  • 4JudgeUnsupported claim – “Founded in 1798” appears nowhere in the source.

An honest “I don’t know” or a clearly hedged estimate isn’tflagged – only unhedged certainty the source can’t support.

What’s included – cheapest check first

“Hallucination” is not one thing, so in/guard/out checks in layers – starting with checks that cost nothing, and escalating only when a claim actually needs judgment or outside evidence.

Deterministic

Numeric grounding

zero model cost

Recomputes every arithmetic claim, flags figures that drift from the source, and catches directional contradictions – “up 12%” when the numbers went down. It runs inline, with no extra model round-trip.

LLM judge

Fact & consistency check

one guard-model call

A guard model catches what arithmetic can’t: internal contradictions, claims false by common world knowledge, and overconfident extrapolation. An honest “I don’t know” isn’t punished – only unhedged certainty without support.

External grounding

Check against a source of truth

opt-in, priced per run

When a claim needs outside verification, ground it against an independent source – each sub-call metered into the request and the run.

  • →RAG – your vector store (pgvector)
  • →Web search – live results via Bright Data
  • →Consilium – a second model as a critic
  • →Private data (MCP) – check a claim against a private source Soon

Re-checked on every revision.

Research and reporting rarely fail at publication – they fail at revision. New data lands, sections get rewritten, and a stale figure or an edit-introduced contradiction slips into version three. Because every pass through in/guard/out is verified against current sources, re-checking an updated report is not a special workflow. It is just the next request.

Fact-checking for research & editorial →

Verification beats model tier.

Each new frontier model tends to cost more than the last – and even frontier models are not 100% safe on hallucinations. Checking the output is what actually closes the gap, whichever model produced it. That is what makes a cost-effective model safe to run: the guarantees come from the checks, not the tier.

Pricing →

Frequently asked questions

How is this different from asking another LLM to review the answer?

The first layer is not an LLM at all: it recomputes arithmetic, matches every figure to the source, and checks stated directions against the underlying values – deterministically. Judges and retrieval only run on top of that, so the foundation of the verdict can’t itself hallucinate.

Can it fix a wrong answer, not just flag it?

Where a safe fix exists, yes. In Fix & log mode wrong arithmetic is repaired in place before your app receives the response. Findings with no single safe rewrite – contradictions, unsupported claims – are flagged with the evidence, and Block mode stops them outright.

What happens when a report is updated?

Every revision that passes through in/guard/out is verified against its current sources, exactly like a first draft. Re-checking on update is the normal path – which is how stale figures and edit-introduced contradictions get caught before version three ships.

Does it punish the model for saying “I don’t know”?

The opposite. The fact-check judge is instructed to reward honesty: a hedged estimate or an explicit “I don’t know” isn’t flagged. Only unhedged certainty the source cannot support is.

What does fact-checking cost per request?

The deterministic pass adds no model tokens. Each opt-in layer – judge, RAG, web search, consilium – is metered, and every guard sub-call is priced into the request, so the dashboard shows the measured cost of checking on your own traffic.

Fact-check your own traffic.

Run in Fix & log mode and read the grounding reports – see what your models get wrong before you decide what to block.