A citation is a claim.
Nothing checks it.

Tribute checks it. It retrieves sources, writes an answer, then removes each source and regenerates, measuring which ones the answer actually depended on, not which ones got a footnote.

A live run searches, generates, and ablates. It needs search + model keys. Or read a worked example: · · · .

The method

  1. 01

    Remove

    Take the finished answer and the sources behind it. Pull one source and regenerate the answer without it.

  2. 02

    Measure

    Read how much of the answer collapses, averaged over every subset of sources (Shapley), so three sources sharing a fact each keep credit instead of all scoring zero. That collapse is the source's causal contribution.

  3. 03

    Compare

    Set what the model cited against what actually moved the answer. A source cited but inert, or uncited but load-bearing, is flagged. The gap between the two is the whole point.

Three questions, often confused

ContributiveTribute
per answer, remove-and-regenerate: did this source cause it.
Parametrice.g. ProRata
training-time influence of a corpus on the model, in aggregate.
Corroborativee.g. RAGAS
does the answer merely agree with a source (NLI).

NLI proves consistency, not dependency.

Tribute audits answers built over sources in a pipeline you control, not a live X-ray into a hosted chatbot's black box.