Skip to content
CodeStoa
AI Engineering · AI ModelsIntermediate

Jev Explained: A Decision Model vs an LLM

An LLM writes an answer word by word. A decision model like Jev picks one answer from your list and says how sure it is, so software can act on every event. Here's how, and what's still unproven.

7 min readPublished
0:00 / 8:02

Before you start

This is the first lesson in the AI Models module, and it stands alone. It assumes three things:

  • You know what an LLM is, and that it writes its answer one token (a word or part of a word) at a time.
  • You've seen structured output: asking an LLM to reply in JSON so code can read the answer.
  • You're comfortable with a probability or confidence score: a number from 0 to 1 for how sure something is.

If you want a refresher on checking whether a model's answers are right, the LLM Evals lessons cover it, especially LLM Eval Methods.

Two questions for every bike listing

Alex runs a small second-hand bike marketplace. Before any listing goes live, Alex needs two answers about it: which category it belongs in (road, mountain, kids or parts) and whether it looks like a scam. Thousands of listings arrive a day, and sellers expect to see theirs live within seconds.

Alex's first version asks an LLM. A seller posts "Child seat for a rear rack, fits most bikes, £35", and the LLM writes back: "This is a child seat, so the kids category fits best, and nothing about it suggests a scam." With structured output it can return {"category": "kids", "scam": "no"} instead. Either way it works, but each answer takes a while to write, every token costs money, and there's no reliable number telling Alex how sure the model was. Alex can't tell the easy listings from the doubtful ones.

What Alex really wants is not a writer. They want something that looks at the listing, picks one answer from their list, and says how sure it is.

What a decision model is

A decision model is handed three things: a question, a fixed list of allowed answers, and the context to decide on. It returns one of those answers plus a confidence score. It doesn't write a sentence for you to parse: what comes back is one of your own labels, which code can use as it is.

  • Listing text (context) to Decision model (e.g. Jev)
  • Which category? (question) to Decision model (e.g. Jev)
  • road, mountain, kids… (allowed answers) to Decision model (e.g. Jev)
  • Decision model (e.g. Jev) to kids · 0.94 (category + score)
  • kids · 0.94 (category + score) to Publish (confidence ≥ 0.9)
  • kids · 0.94 (category + score) to Send to Alex (confidence < 0.9)
The listing goes in with a question and Alex's four categories; one category and a score come out, and their rule does the rest.

Jev, launched in September 2026 by TypeSafe AI, is a worked example. TypeSafe calls it a "System One model", a nod to the fast, intuitive kind of thinking psychologists call System 1: quick judgements, not long reasoning.

How Jev works: known, claimed and guessed

Much of what's said about Jev comes from TypeSafe itself, so it helps to sort every claim by how sure we can be of it.

  • Launched Sept 2026; picks from your options and returns a confidence

    Status
    Reported at launch
    What it means for Alex
    Alex gets kids and 0.94, not a sentence
  • Whole answer in one pass, not word by word (non-autoregressive)

    Status
    Vendor-claimed
    What it means for Alex
    Speed doesn't grow with answer length
  • Output constrained to your schema

    Status
    Vendor-claimed
    What it means for Alex
    No parsing, no made-up categories
  • Several questions answered in one call

    Status
    Vendor-claimed
    What it means for Alex
    Category and scam check together
  • Trained with RLCD and synthetic data

    Status
    Vendor-claimed
    What it means for Alex
    Explains the calibration claim; not verified
  • Encoder-like, or a decoder with a scoring head

    Status
    Inferred, unknown
    What it means for Alex
    Nothing Alex can rely on yet
  • How much world knowledge it has

    Status
    Unknown
    What it means for Alex
    Pass it every fact it needs
Reported at launch means consistently reported by the press, but still from TypeSafe's description, not independent tests. Vendor-claimed means only TypeSafe says so; inferred means outside guesses.

RLCD stands for Reinforcement Learning for Calibrated Decisions. Its goal is the most useful property here: calibration. A calibrated model's confidence means what it says. Take every listing it scored around 0.8: about 80% of those answers should be right. If only 60% are, the score is flattering itself, and a threshold built on it lets mistakes through.

That's TypeSafe's claim. Alex can test it herself: label a few hundred past listings by hand, group the model's answers by confidence, and check the hit rate in each group.

Six listings, one threshold

Here's one morning's sample. Alex asks both questions about every listing and uses one rule: if the lower of the two confidences is under 0.9, a person checks it. Otherwise a scam is blocked and everything else is published.

  • Carbon road bike, 54 cm, £850

    Category
    road 0.97
    Scam?
    no 0.95
    Lowest confidence
    0.95
    Action
    Publish
  • Kids' 16-inch bike, £40

    Category
    kids 0.98
    Scam?
    no 0.97
    Lowest confidence
    0.97
    Action
    Publish
  • New e-MTB £300, bank transfer only

    Category
    mountain 0.93
    Scam?
    yes 0.96
    Lowest confidence
    0.93
    Action
    Block
  • Pair of 700c wheels, £120

    Category
    parts 0.94
    Scam?
    no 0.92
    Lowest confidence
    0.92
    Action
    Publish
  • Vintage frame, price on WhatsApp

    Category
    parts 0.58
    Scam?
    no 0.71
    Lowest confidence
    0.58
    Action
    Review
  • Child seat for a rear rack, £35

    Category
    kids 0.94
    Scam?
    no 0.97
    Lowest confidence
    0.94
    Action
    Publish
Illustrative answers, not real Jev output. The vintage frame lands under the threshold; the child seat is confidently in the wrong category.

The code below runs that rule. decide is a stub standing in for a real decision-model API: it looks answers up in a table, so the sketch runs with no network. Notice the check that the answer is one of the options: that's the guarantee you're paying for.

triage.py
# A stand-in for a decision model's API: no network, the answers are canned.
CATEGORY = "Which category is this listing?"
SCAM = "Does this listing look like a scam?"

CANNED = {
    "Carbon road bike, 54 cm": {CATEGORY: ("road", 0.97), SCAM: ("no", 0.95)},
    "Kids' 16-inch bike": {CATEGORY: ("kids", 0.98), SCAM: ("no", 0.97)},
    "New e-MTB, bank transfer only": {CATEGORY: ("mountain", 0.93), SCAM: ("yes", 0.96)},
    "Pair of 700c wheels": {CATEGORY: ("parts", 0.94), SCAM: ("no", 0.92)},
    "Vintage frame, price on WhatsApp": {CATEGORY: ("parts", 0.58), SCAM: ("no", 0.71)},
    "Child seat for a rear rack": {CATEGORY: ("kids", 0.94), SCAM: ("no", 0.97)},
}

def decide(question, options, context):
    """Return one of `options` and a confidence. Here: a lookup, not a model."""
    answer, confidence = CANNED[context][question]
    assert answer in options  # it can only pick from the list
    return answer, confidence

THRESHOLD = 0.9
for listing in CANNED:
    category, c1 = decide(CATEGORY, ["road", "mountain", "kids", "parts"], listing)
    scam, c2 = decide(SCAM, ["yes", "no"], listing)
    if min(c1, c2) < THRESHOLD:
        action = "review"  # a person looks at it
    elif scam == "yes":
        action = "block"
    else:
        action = "publish"
    print(f"{action:<8} {listing:<33} {category:<9} scam={scam} ({min(c1, c2):.2f})")
Two questions per listing, one threshold, three outcomes.

Now a back-of-the-envelope for cost. Assume 50,000 listings a day, 300 input tokens each, both questions in one call. The decision-model price is TypeSafe's published figure; the LLM price is an assumption for comparison, not a specific model.

  • Input tokens a day

    Working
    50,000 × 300
    Result
    15 million
  • Decision model (vendor price)

    Working
    15 × $0.042, output free
    Result
    about $0.63 a day
  • LLM input (assume $1 per million)

    Working
    15 × $1
    Result
    $15 a day
  • LLM output (assume 50 tokens, $4 per million)

    Working
    50,000 × 50 = 2.5M → 2.5 × $4
    Result
    $10 a day
  • Difference

    Working
    $25 vs $0.63
    Result
    about 40× cheaper
Illustrative only. Real ratios depend on the LLM, the prompt and how much it writes.

TypeSafe reports about 70 to 500 milliseconds per decision. Its headline figures are up to about 193 times faster and about 444 times cheaper than LLMs, best-case results from its own internal tests; other coverage quotes different ranges, and there's no independent evaluation yet. Measure on your own traffic before trusting any of them.

Decision model or LLM?

Start from Alex's budget. Sellers expect a listing to go live in about a second, and Alex pays for every check. An LLM with structured output gets the labels right too, but it spends time and tokens writing them, and it leaves Alex no trustworthy number for sorting sure answers from shaky ones. A decision model promises the opposite on all three: a vendor-quoted fraction of a second, a price low enough to check every listing, edit and message instead of a sample, and a score Alex can turn straight into a routing rule.

Good fits are small, frequent decisions with a known list of answers:

  • Checks on everything: scam, spam and policy questions on every listing, edit and buyer message, not on a sample.
  • Free text into fields: a seller's description becomes a condition label (new, good or worn) the search filters can use.
  • One step at a time: a large model plans a job such as re-pricing stale listings, and a cheap decision checks each step (is this comparable listing a close match?).
  • Many decisions a second: TypeSafe's own demo has Jev playing the game Doom at about ten decisions a second.

Keep the LLM when you need written text, an explanation, open-ended answers or multi-step reasoning. And know the downsides:

  • No independent benchmarks yet: the speed, cost and calibration claims are the vendor's.
  • Text only, and no web search: it decides only on what you pass it. If the scam signal is "this seller was banned last week", put that fact in the context.
  • No explanation, just an answer and a probability. Alex can't show a seller why their listing was held.
  • Reported weak at counting: do exact arithmetic and comparisons in code, so "is the price below 20% of retail?" never reaches the model.
  • Security is contested: one security vendor, HiddenLayer, says Jev is more open to some attacks than LLMs are; TypeSafe hadn't responded when the report came out. Treat it as one vendor's claim, and test your own inputs.
  • Early access, a single vendor, and no published weights or architecture details: pricing and behaviour can change.

Expert corner, and where this may go

The real design choice is the threshold. Raise it to 0.95 and fewer mistakes are published, but more listings wait for a person. Lower it to 0.8 and the queue shrinks while errors grow. Pick it from your own calibration check, and set it per question: a wrong category costs little, a missed scam costs a buyer their money, so the scam question deserves a stricter bar.

At scale, watch for drift. New scam patterns change what listings look like, and confidence that was calibrated last month may not be today. Keep sampling auto-published listings for human review, and track the hit rate per confidence band over time.

In a system design interview, "design moderation for a marketplace with a million listings a day" fits this shape: a cheap classifier on every item, a confidence threshold, a human queue for the uncertain band, and a bigger model only where you need explanations. Mention that the threshold sets the size of the human queue, and you can estimate that queue from the share of listings below it.

One sentence to remember: an LLM writes an answer, a decision model picks one from your list with a confidence, and that confidence is what lets you act on every event automatically.

Summary

Key takeaways

  • A decision model takes a question, a fixed list of answers and some context, and returns one answer plus a confidence.
  • Staying inside your list doesn't make the choice right: the child seat lands in kids at 0.94.
  • Calibrated means a 0.8 confidence is right about 80% of the time; check that on your own labelled data.
  • Jev's speed and cost figures are TypeSafe's own; independent benchmarks are still limited.
  • Use a decision model for frequent, small choices with known answers, and an LLM when you need text or reasoning.
  • An LLM writes an answer, a decision model picks one with a confidence, and that confidence lets you act on every event.

Practice

Check your understanding

Question 1

01Alex's decision model labels a child seat as kids with 0.94 confidence, but their team files seats under parts. What does this show?

Question 2

02A model gave 200 answers with confidence near 0.9, and 140 were right. What's true?

Question 3

03Which of these is a vendor claim about Jev rather than an independently confirmed fact?

Question 4

04Alex wants to block listings priced below 20% of the bike's retail value. Where should that check go?

Question 5

05Alex raises the threshold from 0.9 to 0.97. What's the main effect?

0 of 5 answered

Finished this lesson?

Mark it done to track your progress. Saved in this browser only.

FAQ

Frequently asked questions

What is Jev from TypeSafe AI?

Jev is a decision model launched in September 2026. Instead of writing text, it picks one answer from a list you supply and returns a confidence score. TypeSafe calls it a "System One model".

Is a decision model better than an LLM with structured output?

Not better at everything. An LLM with structured output can make the same choices. A decision model aims to be faster, cheaper per decision and to give a calibrated confidence, but those claims come from the vendor and should be measured on your own data.

What does a calibrated confidence score mean?

Among all answers a calibrated model gives with about 0.8 confidence, about 80% are correct. That makes the score safe to use as a threshold for automatic actions.

Can Jev search the web or explain its answer?

No. It decides only on the text you pass it and returns an answer and a probability, without an explanation. Put every fact it needs into the context.

  • 7:12

    AI Engineering Beginner 6 min read

    LLM Eval Methods: Code Checks, Human Review and LLM-as-Judge

    An eval method is the procedure that turns one output into a verdict. See code, a judge model and a person each judge the same five customer emails, and learn when each one is the right tool.

    Oct 23, 2026

  • 6:28

    AI Engineering Beginner 4 min read

    LLM Evals: Why "It Looks Good" Isn't Enough

    LLM evals are systematic, repeatable tests that judge an LLM app against clear criteria. Learn why spot checks fail, how evals differ from classic tests, and the workflow to run them.

    Oct 19, 2026

  • 5:38

    AI Engineering Beginner 6 min read

    Failure Points in LLM Applications: Where RAG Apps Break

    A RAG chatbot can fail in its retriever, its generator, the flow between them or the app as a whole. Follow one customer's question to see why checking only the final answer can't tell you which part broke.

    Oct 22, 2026