02 / Decision reference

Choice, Score & Noul.

Jev exposes exactly three native decision primitives: Choice, Score, and Noul. All evaluations execute across a shared contextual state block within a single request.

Every primitive is non-autoregressive and mathematically bounded. Choosing the correct primitive depends strictly on whether your decision is categorical, an ordered continuum, or a binary proposition.

Which kind of decision?

01 / Pick one option

Choice

When the outcome is one option out of several distinct, mutually exclusive actions (e.g., routing queues, category classification, triage status).

Rule: Options have no intrinsic mathematical order.
02 / Measure a degree

Score

When measuring intensity, priority, risk levels, or quality tiers where level 3 is strictly greater than level 2.

Rule: Rubric must define 2 to 10 ascending levels.
03 / Test a statement

Noul

When asserting whether a specific factual statement about the state is true or false (e.g. policy violations, identity verification, fraud flags).

Rule: Binary condition returning P(True) probability float.

Schema examples below illustrate request and response shapes; they are not measured benchmark results.

Primitive Selection Matrix

PrimitiveDecision TopologyHard ConstraintsOutput StructureConfidence Field?
ChoiceDiscrete categorical selection from closed setMax 255 choicesSelected choice string + full probability distributionYes (float)
ScoreOrdered ordinal rubric evaluation2 to 10 defined levelsProbability-weighted continuous float (can land between levels)Yes (float)
NoulBinary proposition truth verificationSingle declarative statementProbability float [0.0, 1.0]No (P(True) is the uncertainty)
Primitive 01

Choice: Categorical Selection

Selects a single label from an unordered list of up to 255 predefined choices. Returns the winning choice, an overall model confidence score, and the complete probability distribution across all provided choices.

Choice request
// Question definition inside request "questions" object
{
  "intent_classification": {
    "type": "choice",
    "instructions": "Determine primary user request intent",
    "criteria": {
      "billing_inquiry": "Questions regarding invoices, charges, or subscription tier changes",
      "technical_support": "Error reports, bug inquiries, or connectivity issues",
      "account_cancellation": "Explicit requests to close account or terminate services",
      "feature_request": "Suggestions or requests for new product capabilities",
      "sales_contact": "Inquiries regarding enterprise licensing or custom SLAs"
    }
  }
}
Choice response
// Returned inside response "answers" object
{
  "intent_classification": {
    "type": "choice",
    "choice": "technical_support",
    "confidence": 0.942,
    "probabilities": {
      "billing_inquiry": 0.015,
      "technical_support": 0.942,
      "account_cancellation": 0.003,
      "feature_request": 0.028,
      "sales_contact": 0.012
    }
  }
}
Primitive 02

Score: Ordered Rubric Evaluation

Evaluates state against an ordered rubric containing between 2 and 10 levels. Rather than forcing a discrete integer label, Jev computes a probability-weighted continuous float score across the distribution of levels. The returned score may land between levels (e.g. 3.42) reflecting uncertainty between adjacent criteria.

Score request
// Question definition inside request "questions" object
{
  "lead_qualification": {
    "type": "score",
    "instructions": "Score inbound enterprise lead suitability based on company size, budget, and urgency",
    "criteria": [
      "Individual hobbyist or student; no commercial budget",
      "Small team (<20 staff); self-service tier",
      "Mid-market (20-250 staff); evaluated budget available",
      "Enterprise (>250 staff); dedicated procurement and immediate timeline"
    ]
  }
}
Score response
// Returned inside response "answers" object
{
  "lead_qualification": {
    "type": "score",
    "score": 3.42,
    "confidence": 0.887,
    "legend": {
      "0": "Individual hobbyist or student; no commercial budget",
      "1": "Small team (<20 staff); self-service tier",
      "2": "Mid-market (20-250 staff); evaluated budget available",
      "3": "Enterprise (>250 staff); dedicated procurement and immediate timeline"
    },
    "probabilities": {
      "0": 0.002,
      "1": 0.071,
      "2": 0.435,
      "3": 0.492
    }
  }
}
Primitive 03

Noul: Binary Proposition Truth Probability

Evaluates whether a single declarative statement holds true given the provided state. Noul returns a continuous probability float from 0.0 (definitively false / no) to 1.0 (definitively true / yes). TypeSafe trains Jev to optimize output probabilities against empirical outcomes using RLCD (see RLCD reference).

Why is there no separate confidence score for Noul? In a binary proposition, the probability P(True) directly expresses the model's output degree of belief. A probability of 0.50 represents maximum uncertainty, whereas 0.01 and 0.99 represent high certainty in falsehood or truth respectively.

Interpreting Continuous Probabilities & Workload-Specific Thresholds

Because Noul produces a continuous value between 0.0 and 1.0 rather than a binary boolean, downstream systems must decide how to map probabilities to actions. There is no universal threshold (such as 0.80 or 0.95) that fits all applications:

•Cost asymmetry governs cutoffs: If a false positive is catastrophic (e.g. auto-banning an account or executing a financial transfer), the automation threshold must be set very high or backed by human verification. If a false negative is acceptable (e.g. showing an optional suggestion banner), a lower cutoff can be chosen.
•Empirical validation required: Calibration means that across large cohorts of predictions scored at 0.90, approximately 90% should be true. It does not mean any individual decision is guaranteed to be correct. Teams should measure accuracy and set thresholds against their own labeled domain dataset.

For complete implementation patterns showing how to gate automated execution, model fallback, and human review using calibrated outputs, see our guide on the Model Routing Task.

Noul request
// Question definition inside request "questions" object
{
  "claim_verified": {
    "type": "noul",
    "instructions": "The user submitted a valid government-issued photo ID with matching date of birth."
  }
}
Noul response
// Returned inside response "answers" object
{
  "claim_verified": {
    "type": "noul",
    "noul": 0.984
  }
}

Parallel Evaluation Across Multiple Primitives

You are not restricted to one primitive per API request. A single request can include any combination of Choice, Score, and Noul questions inside the keyed questions object. Jev evaluates all questions in parallel against the shared state block, paying the state token cost only once across the entire batch.