Concepts

The core idea: every prediction returns a type that tells you what to do — not just what the model thinks the answer is.

The three output types

CLASS

The model has decisive evidence for exactly one class. The evidence margin between the top class and the runner-up is large enough to commit. Action: auto-decide.

{
  "type": "CLASS",
  "class_": "approve",
  "alternatives": [],
  "margin": 7,
  "action": "commit"
}

When the model returns CLASS, it's correct 99.2% of the time (across benchmark datasets). This is the prediction you can act on without human review.

POSSIBILITIES

Evidence supports 2–3 classes but can't decisively separate them. The model narrows the options. Action: human picks from a shortlist.

{
  "type": "POSSIBILITIES",
  "class_": null,
  "alternatives": ["approve", "deny"],
  "margin": 0,
  "action": "narrow"
}

POSSIBILITIES is not a failure — it's a precise statement: "I can rule out most classes, but not all." A human reviewing 2 options is faster than reviewing 10.

UNDETERMINED

Not enough evidence to support any class. The model abstains rather than guessing. Action: route to a specialist.

{
  "type": "UNDETERMINED",
  "class_": null,
  "alternatives": [],
  "margin": 0,
  "action": "abstain"
}

This is the prediction that traditional classifiers get dangerously wrong — they'd return 60% confidence and let you decide what to do with it. The model tells you before you waste time.

How it works

The engine evaluates evidence for and against each class independently using two separate streams. This is different from a confidence score, which collapses everything into a single number.

AspectConfidence scoreTyped uncertainty
OutputSingle number (0–1)Type + evidence breakdown
Evidence modelOne value (overloaded)Two streams (support / against)
Conflict handlingAveraged awayDetected and resolved
Actionable?You decide the thresholdThe system tells you what to do

Evidence breakdown

Every prediction includes per-class evidence counts showing how many rules supported or opposed each class:

"evidence": {
  "approve":  {"support": 7, "against": 0},
  "deny":     {"support": 3, "against": 4},
  "review":   {"support": 1, "against": 6}
}

support = number of rules with evidence for this class. against = number with evidence against. The gap between support and against for the top class is the margin.

Cost-aware actions

Pass a cost parameter to get an explicit action recommendation. The cost represents how many correct auto-decisions are worth one wrong auto-decision.

# cost=10 means: a wrong commit is 10x worse than a missed auto-decision
result = predict(sample, cost=10)
result["action"]  # "commit", "narrow", or "abstain"
TypeActionMeaning
CLASScommitSafe to auto-decide
POSSIBILITIESnarrowHuman picks from shortlist
UNDETERMINEDabstainRoute to specialist

Margin and support

margin is the difference in evidence between the top class and the runner-up. Higher margin = more decisive. support is the raw evidence count for the committed class. total_evidence is the total number of rules that fired.

A high margin with low total evidence means the model is decisive but working with limited data. A low margin with high total evidence means the model has seen a lot but the evidence is split.