JevLLMAI

Jev explained: LLMs write answers, Jev scores your options

Jev is TypeSafe's AI model for decisions, not for writing. You give it a text and questions with fixed answer options, and it tells you how likely each option is.

By Rahmatullah Musawi · · updated 8 October 2026 · 5 min read

Key points

  • Jev answers typed questions about a text with a probability for every option, and writes no text.[1] [2]
  • It has three question types: Choice (pick one), Score (ordered levels) and Noul (yes or no).[3] [4] [5]

When software uses a large language model (LLM) such as GPT or Claude to make a decision, it has to get a text-generating system to output a structured answer and then parse that answer back.1 In TypeSafe's own test, the LLMs' answers also moved from run to run, even at temperature 0.6

Jev, a model from TypeSafe, takes a different route. You send it some context and a list of questions with fixed answer options. It returns a probability for every option.

TopicSigmoid and softmax functions: how they work and when to use each describes two functions that turn the scores of a model into probabilities.

How Jev differs from an LLM

TypeSafe calls Jev a System One model, a name taken from Daniel Kahneman's book Thinking, Fast and Slow.7 8 Kahneman describes two ways of thinking. System 1 is fast and automatic, like reading a billboard or driving on an empty road; System 2 is slow and takes effort, like multiplying two-digit numbers or parking in a tight space.9

The same picture fits a software system. Routine decisions with fixed answer options can go to a fast model like Jev, while tasks that need writing or step-by-step reasoning go to an LLM. How much effort the LLM spends can be set as well: Claude, for example, has an effort setting that trades thoroughness against the number of tokens it spends.10

Jev replaces the prompt-and-parse step, in which code asks an LLM a narrow question and extracts a label from its answer.11 The main differences side by side:

Generative LLMJev
How it answersGenerates one token at a time8Generates all outputs in a single query8; each question is evaluated independently12
What comes backGenerated text, such as structured output in JSON, which code has to parse113Typed values and probabilities, and no generated text2
How it tells you how sure it isOnly if asked: in TypeSafe's test, each LLM had to write a number between 0 and 1 as part of its answer6A probability comes with every answer. Jev is trained to be calibrated, which means: of the answers it gives a probability of 0.2, about 20% should turn out true14
A known weaknessOn judgment calls, the tested LLMs disagreed with themselves from run to run6Without an "unknown" option, it still picked an answer on questions it could not answer15

How to read Jev's answers

Jev has three question types: Noul5, Choice3 and Score4. The example shows one question of each type about one support ticket, with Jev's answers.

One support ticket, three questions and Jev's answers
Each question hangs from the ticket in the colour of its type. The answer chip shows Jev's pick, filled by its probability. A confidence summarizes how concentrated the probabilities are on one option; a score is the probability-weighted position on the scale of levels.
Ticket

"My checkout page shows a blank screen after I click Pay. I have tried two browsers."16

  • Noul · yes or noIs the customer reporting a software defect?Jev is pretty sure that the ticket reports a defect.
    yes0.96
  • Choice · pick oneWhich team should own this ticket?frontend 0.22 · account 0.00 · confidence 0.67
    payments0.78
  • Score · ordered levelsHow urgent is this ticket?levels 0 and 1: 0.00 · score 1.99 · confidence 0.99
    level 2 · blocking revenue right now1.00
Show the code: request and response
Request
curl https://openrouter.ai/api/alpha/decisions \  -H "Authorization: Bearer $OPENROUTER_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "model": "typesafe/jev-1.13",    "state": {      "customer_tier": "enterprise",      "ticket": "My checkout page shows a blank screen after I click Pay. I have tried two browsers."    },    "questions": {      "is_bug": {        "type": "noul",        "instructions": "Is the customer reporting a software defect?",        "criteria": {          "true": "The customer describes broken or unexpected product behavior.",          "false": "The customer is asking a question or requesting a feature."        }      },      "team": {        "type": "choice",        "instructions": "Which team should own this ticket?",        "criteria": {          "payments": "Checkout, billing, or payment processing issues.",          "frontend": "Rendering, layout, or browser compatibility issues.",          "account": "Login, permissions, or profile issues."        }      },      "urgency": {        "type": "score",        "instructions": "How urgent is this ticket?",        "criteria": [          "Can wait for the next release",          "Should be fixed this week",          "Blocking revenue right now"        ]      }    }  }'
Response
{  "id": "gen-dec-1790015143-AIaTutprXsJ5EwohRSjb",  "model": "typesafe/jev-1.13-20260917",  "provider": "TypeSafe",  "answers": {    "is_bug": { "type": "noul", "noul": 0.96 },    "team": {      "type": "choice",      "choice": "payments",      "confidence": 0.67,      "probabilities": { "payments": 0.78, "frontend": 0.22, "account": 0 }    },    "urgency": {      "type": "score",      "score": 1.99,      "confidence": 0.99,      "probabilities": { "0": 0, "1": 0, "2": 1 },      "legend": {        "0": "Can wait for the next release",        "1": "Should be fixed this week",        "2": "Blocking revenue right now"      }    }  },  "usage": { "input_tokens": 476, "output_tokens": 70, "cost": 0.000019992 }}

Source: OpenRouter's Jev tutorial, which also has the request in Python and TypeScript.

The confidence of 0.67 follows from the largest probability. For three options, TypeSafe's demo approximates it as (3 × largest probability − 1) / 2, and (3 × 0.78 − 1) / 2 = 0.67.17

Speed and cost

In TypeSafe's own test, Jev was about 16 times faster than Claude Haiku 4.5 and about 42 times cheaper per call.6

Measured time and cost of one call, and what Jev costs at your volume
TypeSafe's test: one call with 14 yes/no questions about one insurance claim, 15 runs per model, LLMs at temperature 0.6 The boxes at the foot of a ticket say how many times Jev's time and cost a model needs.
One full turn = 2 seconds1,780 ms since the calls started
Jev
Time per call111 ms
Cost per call$0.000043
1.0× the time1.0× the cost
GPT-5.4 mini
Time per call1,405 ms
Cost per call$0.001089
12.7× the time25.6× the cost
Claude Haiku 4.5
Time per call1,780 ms
Cost per call$0.001798
16.0× the time42.2× the cost
Jev at your volumeset the two values
500
10,000
Price$0.042 per million input tokens; output tokens are free.18
Jev costs
Per day$0.21
Per 30 days$6.30
Requests per $147,619

Three things to keep in mind when reading these numbers:

Where Jev fits

Jev is suited to routing, classification, verification and ranking: any point in an app where a predictable typed answer matters more than generated text.11 Here are a few examples of Jev use cases:

FieldJob
Customer supportSending each ticket to the right team
AI model routingLetting Jev answer, and sending only its unsure cases to a larger LLM (DeepSeek V4-Pro)
Intent routingRouting a query automatically when confidence is above a threshold
TaggingGiving each tweet a topic

How to build with Jev

In an app that uses Jev, your code stays in charge. It controls the order of the steps, applies the fixed rules and carries out the actions. Jev is called only where a step needs common sense or has to interpret unstructured data, for example to answer: "Does the refund policy support the refund requested in the ticket?"20

Example: a refund request in four steps
A support ticket asks for a refund. Jev is one step in the pipeline, and your code controls it. The numbers match the notes.
YOUR CODEREFUND REQUESTCode checksorder, amount1Code actswith thresholds3Jev callyes/no2ApproveAsk a personBlockReview and tuneafter a few weeks4policy wording
  1. Code checks firstKeep deterministic work in code, such as checking that the order is on the ticket and the amount fits.
  2. One Jev callNarrow questions that each test one thing, evaluated in parallel.
  3. Code acts on the answersDifferent actions for confident and unconfident answers. Thresholds scale with risk.
  4. Review and tuneAfter a few weeks, look at what people approved and rejected, and tighten the policy wording.
Sources for the four steps: 20 12 17 21

Here is that pattern in practice. Take a support agent that is allowed to issue refunds. Before a refund goes out, code checks that the order is on the ticket and that the amount fits what is left to refund. Then Jev answers three yes/no questions: did the customer ask for a refund, is it the order the customer writes about, and does the refund policy cover it?21

The code then applies one rule: it approves the refund when every answer is at least 0.9, blocks it when any answer is at most 0.1, and sends everything else to a person.21 The figure shows four such refunds.

Four refund requests and what happens to each
For each refund, Jev answers the three yes/no questions with a probability, and code turns the three probabilities into a decision. The rule stands first. In each answer, the filled part shows the probability.
The rule: code turns three probabilities into one decision
Blockif any answer is at most 0.10
A person reviewseverything in between
Approveif all three answers are at least 0.90
The four refunds, Jev's answers and the decisions at the thresholds 0.10 and 0.90 are the published results; each request cost under $0.0001 and returned in under 600 ms.21 The refund policy in the example includes: "Late delivery: if the order arrived more than 5 days after the promised date, refund the shipping fee, or the full order if the customer no longer wants the items. Damaged or defective items: full refund of the item price, no return required."

An AI agent can sort its own commands in the same three ways.

TopicWhat is Hermes Agent? describes how one agent decides which commands pass, which are blocked and which need a person's approval.

One caution before relying on such thresholds. TypeSafe says Jev "can't hallucinate" and never makes type errors.8 It can still be wrong: in an independent audit, Jev without an "unknown" option still picked an answer for questions it could not answer, and got none of them right.15 So label 100 to 200 of your own items by hand and measure before you set thresholds.22

Limits

The bottom line

Jev returns typed answers with probabilities instead of text. In TypeSafe's own test it did that about 16 times faster and 42 times cheaper than a small LLM. The sources agree on how to use it: keep deterministic work in code, offer an "unknown" option, and measure on your own labelled items before you set thresholds. It does not write text, and it is unreliable with maths, counting and dates.

Sources

  1. Introduction TypeSafe docs
  2. API reference TypeSafe docs
  3. Choice TypeSafe docs
  4. Score TypeSafe docs
  5. Noul TypeSafe docs
  6. Self-consistency: nouls (cookbook) TypeSafe docs
  7. System One TypeSafe docs
  8. Introducing System One models and Jev TypeSafe blog
  9. Thinking, Fast and Slow Wikipedia
  10. Effort Claude Platform docs
  11. Jev on OpenRouter OpenRouter docs
  12. Primitives (questions) TypeSafe docs
  13. Structured outputs Anthropic docs
  14. AI primer: calibrated decisions vs generated text TypeSafe docs
  15. Jev calibration audit (KoBBQ) Independent test, GitHub
  16. Tutorial: make your first decision call OpenRouter docs
  17. Confidence TypeSafe docs
  18. Models: pricing, limits, context TypeSafe docs
  19. Parallel questions (cookbook) TypeSafe docs
  20. How to build with TypeSafe TypeSafe docs
  21. Gate agent tool calls with Jev OpenRouter cookbook
  22. Classify and tag text at scale with Jev OpenRouter cookbook
  23. Jev 1.13 jaggedness (known weaknesses) TypeSafe docs

Written by Rahmatullah Musawi with the help of an AI assistant.