Skip to content
jeff.reasoning.entailsv1.4.0

Claim support check

Checks whether supplied documents, messages or records support a claim. Returns supported, unsupported or unclear.

Open in playground

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
  1. supported 0.615
  2. unsupported 0.383
  3. unclear 0.002

The delivery records show the full order arrived before the agreed date, so the claim is supported.

Open in playground

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
    1. unsupported 0.893
    2. supported 0.106
    3. unclear 0.001

    The boards were due by 30 September and the delivery note is dated 19 October, so the claim is unsupported.

    Open in playground

    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
    1. supported 0.559
    2. unsupported 0.441
    3. 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.

    Open in playground

    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
    1. unsupported 0.998
    2. supported 0.002
    3. unclear 0.001

    The order says nothing about an early-payment discount, so the claim is unsupported.

    Open in playground

    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
    1. supported 0.886
    2. unsupported 0.114
    3. 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.

    Open in playground

    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

FieldKindDescription
claim
inputThe claim to check against the evidence, one sentence.
setting
contextWho is asking: a sentence naming the team and organisation the evidence comes from.
evidence
contextThe evidence: a list of documents, messages or records, each with `source` and `text`.

Functions

KeyInterfaceInstructionsLabels
entailsclassifyDoes 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.

FunctionRight when confidentConfident onThresholdCalibration rows
entails98.5%100.0%0.522,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