Unofficial guide · Jev / TypeSafe

Noul vs Choice vs Score: how to pick the right Jev question type

By Ben (BenX) · Published · Last checked against official sources

Jev from TypeSafe AI answers three typed question types. Use a Noul when you need the probability that a yes/no statement is true, a Choice to pick exactly one option from a fixed, unordered set, and a Score to place something on ordered levels you describe.

Independent guide. aiedu.guide is not affiliated with TypeSafe AI or Jev, and is not endorsed or sponsored by either. Product names belong to their owners, and the public sources we checked are listed at the end.

No affiliate links on this page. See our disclosure.

What are Noul, Choice and Score in Jev?

Short answer: They are the three question types, which TypeSafe calls "AI primitives", that you can put in a Jev request. Each returns a typed answer your code can branch on: noul (0 to 1), choice with probabilities, or score on your levels.

All three share two fields, type and instructions, and each adds its own criteria. instructions can be a string, an object or an array.

NoulChoiceScore
Question it answersIs this true?Which one of these?Which level?
type"noul""choice""score"
criteriaOptional: what a yes (true) and a no (false) meanRequired: a map of option → description (null allowed)An ordered array of level descriptions
LimitsNone documentedUp to 255 optionsAt least 2 levels; the API accepts up to 10
Answer fieldsnoulchoice, probabilities (sum to 1, up to rounding), confidencescore, legend, probabilities, confidence
Has confidence?No: the noul value itself carries the certaintyYesYes

Source: TypeSafe's API reference and Primitives pages, checked 25 Sep 2026.

How many options can a Choice have? Up to 255 per Choice, according to TypeSafe's API reference. Add an other option if your list might not cover every input. TypeSafe's classification cookbook adds a practical note: a Choice "works reliably up to roughly 240 options", which is below that hard maximum.

How many levels can a Score have? A Score needs at least two levels, and the API accepts up to 10. The returned score can fall between levels. Levels are numbered 0 to n-1 by their position in the array.

Which Jev question type should I use?

Short answer: Match the shape of the answer: a yes/no goes to a Noul, one of several unordered options to a Choice, and a position you can describe level by level to a Score. If several labels can apply at once, ask one Noul per label.

Work through these in order:

  1. Does the task need written text, arithmetic or counting? Read when Jev is the wrong tool before going further.
  2. Is it a clean yes/no where the probability itself is useful? Use a Noul.
  3. Can several labels be true at once? Use one Noul per label, not a Choice.
  4. Is exactly one of a known set correct, with no order between the options? Use a Choice, and add other or none of the above if the list may not cover every case.
  5. Is it "how much" or "how severe", and can you describe each level as a situation? Use a Score.

When should I use a Noul?

Short answer: For one yes/no condition where the probability itself is the useful signal, such as "is a refund requested?" or "is personal data present?". Phrase it so that a high value means yes.

A Noul is a yes/no question type. Jev returns noul, the probability (0 to 1) that the answer is yes. TypeSafe's API reference shows no separate confidence field for it.

TypeSafe's two writing rules for a Noul: ask one yes/no question per Noul, and word it so a high value means yes. criteria is optional. Use it when "yes" or "no" needs spelling out.

An illustrative question (our example, using the field names from TypeSafe's API reference):

"questions": {
  "refund_requested": {
    "type": "noul",
    "instructions": "The customer is asking for a refund",
    "criteria": {
      "true": "The message asks for money back",
      "false": "The message does not ask for money back"
    }
  }
}

In the SDKs, the helpers are Noul(instructions=..., criteria=NoulCriteria(true=..., false=...)) in Python and noul(instructions?, criteria?) in JavaScript.

When should I use a Choice?

Short answer: When exactly one option from a known set is right and the options have no order, such as which team should handle a ticket. List every option, and include an other or none of the above option.

A Choice returns three things: choice (the highest-probability option), probabilities (one value per option, summing to 1, up to rounding) and confidence (0 to 1).

Don't trim the list to save money. TypeSafe publishes no per-question-type price: Jev is charged per input token ($0.042 per million), output tokens are free, and extra options only add input tokens.

Question IDs are for your code. TypeSafe says they are not sent to the model, so put the meaning in instructions and in the option descriptions, not in the ID.

"questions": {
  "department": {
    "type": "choice",
    "instructions": "Which team should handle this",
    "criteria": {
      "billing": "Payment or subscription issues",
      "technical": "Bugs or integration problems",
      "sales": "Pricing or account questions",
      "other": null
    }
  }
}

When should I use a Score?

Short answer: When the answer is a position on an ordered scale you can describe in steps, such as how frustrated a customer is. The returned score can land between two levels.

TypeSafe's advice for Score levels is to "describe situations, not degrees", and to keep each Score to one dimension. The answer includes score (a probability-weighted mean of the level numbers), a legend that maps level numbers to your descriptions, probabilities per level, and confidence. In the Python SDK, probabilities and legend are keyed by integer rather than string.

"questions": {
  "frustration": {
    "type": "score",
    "instructions": "How frustrated the customer appears",
    "criteria": [
      "Calm, just stating facts",
      "Frustrated but civil",
      "Very angry, strong language"
    ]
  }
}

Don't read a score as an exact measurement. TypeSafe's jaggedness page for jev-1.13 says its score levels "are weak in numerical calibration", so don't interpolate between levels to compute an exact magnitude.

Is a Noul the same as a yes/no Choice?

Short answer: No. TypeSafe shows the two can give very different numbers for the same question, so they are not interchangeable and a threshold tuned on one does not carry over to the other.

Can you use a yes/no Choice instead of a Noul? You can, but the numbers are not interchangeable. TypeSafe shows the same question giving different values, so don't reuse thresholds across the two.

On its jev-1.13 jaggedness page (last reviewed 17 Sep 2026), TypeSafe asks one question both ways. The Noul returned 0.22. The yes/no Choice put 0.01 on "yes". TypeSafe files this under structural invariants that the model does not guarantee.

Rule of thumb: don't reuse a Noul threshold on a Choice, or the other way round.

Should I use a Noul or a Score to measure "how much"?

Short answer: Use a Score. A Noul of 0.5 means yes and no are equally likely; it does not mean "medium".

TypeSafe's wording: "A Noul value of 0.5 means the model gives yes and no equal probability." A Noul answers whether something is true. A Score answers how far along your scale it is.

A Noul of 0.5 does not mean "medium". It means yes and no are about equally likely. To measure degree, use a Score with described levels.

Should I use one Choice or several Nouls for tagging?

Short answer: Use a Choice when exactly one label applies, because it returns one winner and its probabilities sum to 1, up to rounding. Use one Noul per tag when any number of tags can apply, because each question is answered on its own.

One ChoiceOne Noul per tag
Labels per inputExactly oneZero, one or several
What the numbers meanprobabilities across the options sum to 1, up to roundingEach noul is its own probability of yes, so several can be high or all can be low
Certainty signalconfidenceThe noul value itself
Uncovered inputsAdd an other optionEvery tag can simply come back low

TypeSafe's API reference describes Choice probabilities as "floats that sum to 1". The AI SDK docs add that TypeSafe rounds them to two decimals, so they "may not add up to exactly one".

Which field do I threshold for each question type?

Short answer: For a Noul, threshold noul directly. For a Choice, act on choice and gate on confidence (optionally with that option's entry in probabilities); for a Score, set a cutoff on score and check confidence.

TypeField to thresholdAlso check
NoulnoulNothing else: TypeSafe's API reference lists no confidence for a Noul
ChoiceconfidenceThe selected option's value in probabilities
Scorescore (on your level scale, 0 to n-1)confidence

To see these fields in a real response, see our full Jev response example. TypeSafe publishes no single cutoff for any of them. For the method, see how to choose Jev confidence thresholds.

Can I ask Noul, Choice and Score questions in one request?

Short answer: Yes. All questions share the state and are answered independently in one call.

TypeSafe evaluates the questions in a request in parallel, and no question sees another's answer. If one question depends on another's result, ask it in a second request. Each extra question only adds input tokens. Our guide to your first Jev API call shows a request with one question of each type.

What mistakes make Jev question types misbehave?

Short answer: The common ones are hiding two conditions in one Noul, wording a Noul so a high value means no, leaving out an other option, and reading a Score or a Noul as an exact measurement. Each has a direct fix.

  • Two conditions in one Noul. Split them. TypeSafe: "Ask one yes/no question per Noul."
  • Inverted wording. "Is the message free of personal data?" makes a high value mean no. Ask "Does the message contain personal data?" instead.
  • No other option in a Choice. Without one, an input that fits nothing still gets forced into your list.
  • A Score that mixes dimensions, or levels written as degrees ("a bit", "very") rather than situations.
  • Interpolating a magnitude from score. It is a position on your levels, not a measurement.
  • Reading a Noul of 0.5 as "medium". It means yes and no are equally likely.
  • Reusing thresholds between a Noul and a Choice.

TypeSafe also publishes a wider list of jev-1.13 weak spots. We summarize it in when Jev is the wrong tool.

What are these question types called on OpenRouter, Vercel and Cloudflare?

Short answer: They keep the names noul, choice and score wherever TypeSafe's own request format is used. Vercel's /v1/evaluate endpoint and the AI SDK call the yes/no type boolean and return probability instead of noul.

Channel / surfaceYes/no typeYes/no answer field
TypeSafe APInoulnoul
OpenRouter (Decisions API and System One API)noulnoul
Vercel AI Gateway, TypeSafe-compatible path (/typesafe)noulnoul
Vercel AI Gateway /v1/evaluate and AI SDK experimental_evaluatebooleanprobability
Cloudflare Workers AInoulnoul

Is boolean the same as noul? Yes, it is the same concept under a different name. Vercel's /v1/evaluate and the AI SDK use boolean and return probability. TypeSafe's own format uses noul.

Model IDs, endpoints and where confidence lives differ too. See Jev model IDs and field names on each channel.

FAQ

What is a Noul in Jev?

A Noul is a yes/no question type. Jev returns noul, the probability (0 to 1) that the answer is yes. TypeSafe's API reference shows no separate confidence field for it.

How many options can a Jev Choice have?

Up to 255 per Choice, according to TypeSafe's API reference. Add an other option if your list might not cover every input.

How many levels can a Jev Score have?

A Score needs at least two levels, and the API accepts up to 10. The returned score can fall between levels.

Does a Noul of 0.5 mean "medium"?

A Noul of 0.5 does not mean "medium". It means yes and no are about equally likely. To measure degree, use a Score with described levels.

Can I use a Choice with yes/no options instead of a Noul?

You can, but the numbers are not interchangeable. TypeSafe shows the same question giving different values, so don't reuse thresholds across the two.

Is boolean the same as noul?

Yes, it is the same concept under a different name. Vercel's /v1/evaluate and the AI SDK use boolean and return probability. TypeSafe's own format uses noul.

Can one Jev request mix all three types?

Yes. All questions share the state and are answered independently in one call.

Next steps

Official sources

Facts on this page come from these pages. Jev launched in September 2026 and details change quickly, so check the official page before you rely on a number.

Checked 25 September 2026