Claim support check
Checks whether supplied documents, messages or records support a claim. Returns supported, unsupported or unclear.
Example
Context
- setting
- The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.
- evidence
- - {"source":"purchase order","text":"Purchase order 4471, issued 3 February 2026 to Calder Timber, for 120 oak boards at 18.50 each, delivery by 28 February 2026."} - {"source":"delivery note","text":"Delivery note for purchase order 4471, signed at the loading bay on 26 February 2026. Received 120 oak boards, no damage noted."}
Input
Calder Timber delivered the full order for purchase order 4471 before the agreed date.
- Answer (JSON)
- value supported, confidence 0.615
- Top options
- supported 0.615
- unsupported 0.383
- unclear 0.002
The delivery records show the full order arrived before the agreed date, so the claim is supported.
import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.entails.entails", context={ "setting": "The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.", "evidence": [ { "source": "purchase order", "text": "Purchase order 4471, issued 3 February 2026 to Calder Timber, for 120 oak boards at 18.50 each, delivery by 28 February 2026.", }, { "source": "delivery note", "text": "Delivery note for purchase order 4471, signed at the loading bay on 26 February 2026. Received 120 oak boards, no damage noted.", }, ], }) decision = decide("Calder Timber delivered the full order for purchase order 4471 before the agreed date.") print(decision.value, decision.confidence)
More examples
Claimed delivery date the note contradictsanswer unsupported · confidence 0.893
Context
- setting
- The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.
- evidence
- - {"source":"purchase order","text":"Purchase order 4502, issued 1 September 2026 to Calder Timber, for 80 walnut boards at 24.00 each, delivery by 30 September 2026."} - {"source":"delivery note","text":"Delivery note for purchase order 4502. Date of delivery 19 October 2026. Received 80 walnut boards."}
Input
Calder Timber delivered purchase order 4502 on or before 30 September 2026.
- Answer (JSON)
- value unsupported, confidence 0.893
- Top options
- unsupported 0.893
- supported 0.106
- unclear 0.001
The boards were due by 30 September and the delivery note is dated 19 October, so the claim is
unsupported.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.entails.entails", context={ "setting": "The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.", "evidence": [ { "source": "purchase order", "text": "Purchase order 4502, issued 1 September 2026 to Calder Timber, for 80 walnut boards at 24.00 each, delivery by 30 September 2026.", }, { "source": "delivery note", "text": "Delivery note for purchase order 4502. Date of delivery 19 October 2026. Received 80 walnut boards.", }, ], }) decision = decide("Calder Timber delivered purchase order 4502 on or before 30 September 2026.") print(decision.value, decision.confidence)
Invoice total worked out from the orderanswer supported · confidence 0.559
Context
- setting
- The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.
- evidence
- - {"source":"purchase order","text":"Purchase order 4471, issued 3 February 2026 to Calder Timber, for 120 oak boards at 18.50 each, delivery by 28 February 2026."} - {"source":"delivery note","text":"Delivery note for purchase order 4471, signed on 26 February 2026. Received 120 oak boards, no damage noted."}
Input
At the order's price, the 120 boards delivered come to 2,220.00.
- Answer (JSON)
- value supported, confidence 0.559
- Top options
- supported 0.559
- unsupported 0.441
- unclear 0
120 boards at 18.50 each come to 2,220.00, which follows from the order by simple arithmetic, so the claim is
supported.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.entails.entails", context={ "setting": "The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.", "evidence": [ { "source": "purchase order", "text": "Purchase order 4471, issued 3 February 2026 to Calder Timber, for 120 oak boards at 18.50 each, delivery by 28 February 2026.", }, { "source": "delivery note", "text": "Delivery note for purchase order 4471, signed on 26 February 2026. Received 120 oak boards, no damage noted.", }, ], }) decision = decide("At the order's price, the 120 boards delivered come to 2,220.00.") print(decision.value, decision.confidence)
Discount the evidence never mentionsanswer unsupported · confidence 0.998
Context
- setting
- The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.
- evidence
- - {"source":"purchase order","text":"Purchase order 4471, issued 3 February 2026 to Calder Timber, for 120 oak boards at 18.50 each, delivery by 28 February 2026. Payment within 30 days of delivery."}
Input
Calder Timber agreed a 5% discount for payment within 10 days.
- Answer (JSON)
- value unsupported, confidence 0.998
- Top options
- unsupported 0.998
- supported 0.002
- unclear 0.001
The order says nothing about an early-payment discount, so the claim is
unsupported.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.entails.entails", context={ "setting": "The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.", "evidence": [ { "source": "purchase order", "text": "Purchase order 4471, issued 3 February 2026 to Calder Timber, for 120 oak boards at 18.50 each, delivery by 28 February 2026. Payment within 30 days of delivery.", }, ], }) decision = decide("Calder Timber agreed a 5% discount for payment within 10 days.") print(decision.value, decision.confidence)
Payment in full, from two recordsanswer supported · confidence 0.886
Context
- setting
- The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.
- evidence
- - {"source":"invoice","text":"Calder Timber invoice CT-9031 for purchase order 4471, total 2,220.00, due 28 March 2026."} - {"source":"bank statement","text":"12 March 2026, payment to Calder Timber, reference CT-9031, 2,220.00."}
Input
Invoice CT-9031 was paid in full before its due date.
- Answer (JSON)
- value supported, confidence 0.886
- Top options
- supported 0.886
- unsupported 0.114
- unclear 0
The invoice and the bank statement together show 2,220.00 paid on 12 March, before the 28 March due date, so the claim is
supported.import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.entails.entails", context={ "setting": "The accounts payable team of a mid-sized furniture maker checks supplier claims before paying.", "evidence": [ { "source": "invoice", "text": "Calder Timber invoice CT-9031 for purchase order 4471, total 2,220.00, due 28 March 2026.", }, { "source": "bank statement", "text": "12 March 2026, payment to Calder Timber, reference CT-9031, 2,220.00.", }, ], }) decision = decide("Invoice CT-9031 was paid in full before its due date.") print(decision.value, decision.confidence)
Use when
- You need to verify a statement against the evidence available before acting on it.
Avoid when
- The answer requires facts outside the supplied evidence; this adapter uses only the evidence provided.
Context and input
| Field | Kind | Description |
|---|---|---|
claim | input | The claim to check against the evidence, one sentence. |
setting | context | Who is asking: a sentence naming the team and organisation the evidence comes from. |
evidence | context | The evidence: a list of documents, messages or records, each with `source` and `text`. |
Functions
| Key | Interface | Instructions | Labels |
|---|---|---|---|
| entails | classify | Does the evidence support the claim? Answer supported when the evidence, read plainly, establishes the claim, including what follows from it by simple arithmetic, by comparing dates or by combining two pieces of evidence. Answer unsupported when the evidence contradicts the claim or does not contain what the claim needs. Answer unclear only when the evidence speaks to the claim but leaves it genuinely open: for example a range or vague date that could go either way, sources that disagree with no sign of which is right, a cause that is only suspected or implied, or a person or record the evidence leaves ambiguous. | supported, unclear, unsupported |
How it was measured
Test accuracy: the share of test rows whose top answer was right.
- 93.7% on public benchmarks: 500 rows of SNLI and 500 of VitaminC (1,000 rows). public benchmark
- 97.8% on the in-house test (2,000 rows). in-house: same generator as the training data
- 98.5% on the in-house test in domains never seen in training (2,000 rows). in-house: same generator as the training data
When confident
From the calibration set: at or above the threshold confidence, how often the answer is right, and how often the adapter is that confident. Below it, escalate.
| Function | Right when confident | Confident on | Threshold | Calibration rows |
|---|---|---|---|---|
| entails | 98.5% | 100.0% | 0.52 | 2,000 |
Base: Jeff v1.4. Adapter trained: 25 October 2026.
Base
jeff-base v1.4
Call it
jeff.reasoning.entails.entails, with placeholders for its input and context.
import os import jeff with jeff.Jeff.remote("https://api.jeffhub.ai", token=os.environ["JEFF_API_KEY"], timeout_s=30) as client: decide = client.function("jeff.reasoning.entails.entails", context={ "setting": "<setting>", "evidence": "<evidence>", }) decision = decide("<claim>") print(decision.value, decision.confidence)
Download
Weights: mstrasser/jeff-adapter-entails (v1.4)
Licence: Apache-2.0