Decision Tier

Level 1 101 · about 15 minutes

Decision models 101

A decision model reads natural language and returns typed answers with probabilities instead of generated text. You decide the possible answers ahead of time. The model tells you which one fits and how sure it is.

The one-paragraph definition

You send two things: a state (the text or JSON you want judged: an email, a support ticket, a dashboard as JSON) and one or more questions, each with its answer space spelled out. You get back one typed answer per question. Nothing else comes back: no explanation, no reply, no code. TypeSafe, which makes Jev, calls this class of model System One, after Daniel Kahneman's fast, intuitive System 1. Language models are the slow, deliberate System 2.

Three kinds of question

Three illustrated cards. Choice: a fork in a path with three signposts and bars of different heights. Noul: a switch with a gauge near 0.9, yes or no as a probability. Score: a five-step staircase with a marker between steps three and four. Banner: typed answers, not paragraphs.
TypeAsksYou defineYou get back
ChoiceWhich of these fits?Named options, each with a descriptionThe top option, a probability for every option, and a confidence
NoulIs this true?A proposition, optionally what yes and no meanThe probability that the answer is yes (0 to 1)
ScoreWhere on this scale?2 to 10 ordered levelsA probability-weighted position that can land between levels, plus the distribution

"Noul" is TypeSafe's name for a yes/no question answered as a probability. OpenAI's Decisions API calls the same thing a predicate.

What a call looks like

This is Jev's HTTP shape (POST /v1/systemone). The other decision models use the same idea with different field names; see adapters.

{
  "model": "jev-1.13.0",
  "state": "Help! My payouts have been failing for 3 days.",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Which team should handle this?",
      "criteria": {
        "billing":   "Payments, invoicing, refunds",
        "technical": "Bugs, outages, integrations",
        "sales":     "Pricing, upgrades, new accounts"
      }
    },
    "is_urgent": { "type": "noul", "instructions": "Does this convey urgency?" }
  }
}
{
  "model": "jev-1.13.0",
  "answers": {
    "department": { "type": "choice", "choice": "billing",
                    "probabilities": { "billing": 0.88, "technical": 0.12, "sales": 0.0 },
                    "confidence": 0.81 },
    "is_urgent":  { "type": "noul", "noul": 0.95 }
  }
}

Notice what your code can do with that: route on choice, page someone if is_urgent is over a line, and send anything with low confidence to a reviewer. No parsing of prose, ever.

How it differs from a language model

Decision modelLanguage model (LLM)
OutputTyped answers you definedText (or JSON it writes)
ProbabilitiesTrained for calibration against outcomesIf you ask for one, it's a number the model writes down
RepeatabilitySame request, same answer (Jev and the Decisions API both re-asked identically)Re-asks vary: Haiku 5.5 gave identical answers on a third of re-asks
SpeedAbout 0.3–0.6 s per request hostedSeconds to minutes
PriceInput tokens only, output free. Jev: $0.042 per millionInput and output. Haiku 5.5: $0.10 / $0.50 per million; Opus 5.5: $4 / $20
Can it explain, write, plan, use tools?NoYes

That last row is the point. A decision model is not a cheaper LLM. It's a different tool for a narrower job: bounded judgments, where the answers can be listed ahead of time and nobody needs an essay.

Probability, confidence and acting on them

A probability is the model's estimate for one answer. Confidence summarizes a whole Choice or Score distribution: it's 0 when every option is equally likely and 1 when one option has all the weight. For a Choice with n options and a top probability p, TypeSafe defines it as (n·p − 1) / (n − 1).

Calibrated means that across many answers given at 0.8, about 80% turn out right. That's a property of groups, not a promise about any single answer. Calibration is what makes a threshold mean something: "act alone above 0.8" becomes a statement about how often you'll be wrong.

Try it: route a support ticket

Drag the weights to reshape the model's answer, then set the line above which code acts alone.

Top choice
—
Confidence
—

What it's good at, and what it isn't

Good at

  • Common-sense judgment on text: "is someone waiting on a reply?" (AUC 0.986 on a real inbox)
  • Picking among named options: "is this a deadline, an event, an offer, or nothing?" (0.980)
  • Matching: "is this message about the same matter as this open record?" (0.980)
  • Many questions over one state in one request, for fractions of a cent

Not good at

  • Measuring. Score ranks but doesn't size amounts (Spearman 0.28). Extract the numbers and do the arithmetic in code.
  • Dates and math. Extract the parts and compare in code.
  • Knowing what isn't in the state: who you know, what's already open, what you've ruled before.
  • Reading your intent. It answers the question you wrote, literally.
  • Generating anything. Use an LLM.

Where it sits

Both of our projects converged on the same shape. Each tier handles what it can and passes up what it can't:

TierSpeedJobPasses up when
Guards (code)~1 sSafety only: stop or protect, never decideNever; they act and log
CodePer stepExtract state, list legal options, plan from data, verify outcomes, apply policies with computable answersA step can't be found, or verification fails
Decision model~0.5–5 s, fractions of a centNarrow judgments with no computable answerIts own checks fire (novelty, doubt), or the failure isn't transient
LLMMinutes, woken by eventsInspects, decides, and fixes the cause in a lower tierReal money, accounts, irreversible actions, preferences
HumanHoursPreferences, approvals, gray-zone rulings—

Who makes them

As of October 2026: Jev from TypeSafe (hosted; the first of the class), OpenAI's Decisions API (gpt-6-luna, public beta), and open-weight options you can run yourself, such as APUS-OpenJev (4B) and AWS's Strands Decider (2B). You can also ask a small general LLM like Claude Haiku 5.5 to fill in the same answer shapes. Each has a different cost, speed and quality profile; see Four ways compared.

Next: 201 covers how to phrase questions so the answers are worth having, and how to use the answers once you have them.