KaizoCoreKaizoCore docs

Decision scores

The exact score-to-decision mapping, and how a decision can move outside it.

The five bands

Score rangeDecision
0 – 25ALLOW
26 – 45ALLOW_WATCH
46 – 62SOFT_CHALLENGE
63 – 74REVIEW
75 – 100BLOCK

ALLOW_WATCH is functionally identical to ALLOW for your integration — proceed normally — but signals internally that this traffic is worth keeping an eye on in aggregate.

Why BLOCK is hard to reach on deterministic rules alone

By design. The seven-layer rule engine, run without any ML fusion contribution, tops out well under the BLOCK line even with every layer's strongest rule firing simultaneously — deliberately, so that no combination of purely static, deterministic signals can hard-block a session on their own. Reliably crossing into BLOCK requires either a specific hard identity fact (a Tor exit node plus a known-bad TLS fingerprint, for example, via the invisible edge layer) or genuine behavioral/ML confidence contributing real weight. See The scoring engine for the exact math.

What can move a decision outside the score bands

Three mechanisms apply on top of the score-to-band mapping, all escalation-only — none of them can downgrade a decision the score already earned:

  1. Per-action thresholds — see Event types.
  2. Policy engine overrides — a challenge or deny override on a fired rule.
  3. The late GHOST override — high-confidence uncanny-valley timing forces BLOCK regardless of the numeric score. See Session modes.

shadow_routed

Independent of the decision itself, a response may have shadow_routed: true — meaning this session was additionally logged to an internal review queue (MIRROR for borderline scores, GHOST for high-confidence blocks) for analysis. This never changes what your integration receives; it's purely for KaizoCore's own model improvement and your dashboard's Shadow Queue view.

On this page