Skip to main content
Routing happens in two stages:
  1. Per-charge routing. Each charge is scored on Reportability and Identity Match and assigned a routing.queue.
  2. Hierarchical rollup. Charge-level queues bubble up into case_queue, court_queue, and the top-level search_queue using a fixed precedence.

Queue Categories

Every queue field in the response — per-charge routing.queue, case_queue, court_queue, and search_queue — uses these values:

Charge-Level Routing Matrix

Routing is driven by whether the identity matches the candidate (id_match.is_match) and the charge’s reportability:

Overrides

Exclusion Filter: If any cited_rules entry contains EXCLUSION_FILTER, the charge is forced to Not Reportable and routed directly to Automation, bypassing the matrix. Validation Issues: Data-quality issues at candidate, case-subject, case, or offense level (surfaced in the response under validation.issues.errors) can force identity or reportability to Not Enough Info, routing the charge to Insufficient Data.

Per-Charge Routing Fields

Each charge in the response includes a routing object:

Hierarchical Queue Rollup

In addition to the per-charge routing.queue, the response surfaces aggregated queues at each level of the decision hierarchy:

Precedence

Rollup uses this fixed precedence (highest priority first):
  1. Insufficient Data — if any child queue is Insufficient Data, the parent is Insufficient Data
  2. Auditor — otherwise, if any child queue is Auditor, the parent is Auditor
  3. Automation — parent is Automation only when every child is Automation
In other words: a single charge missing data is enough to mark the whole case (and therefore court and search) as Insufficient Data. A single charge needing audit is enough to escalate the whole case. The full search rolls up to Automation only when there is nothing that needs human eyes anywhere in the record.

Worked example

A search with three charges: …rolls up to case_queue: Auditorcourt_queue: Auditorsearch_queue: Auditor. If charge C is instead Insufficient Data, the whole search becomes search_queue: Insufficient Data. If all three charges are Automation, the search rolls up to search_queue: Automation.
Use the per-charge routing.queue to drive per-offense behavior in your system. Use case_queue, court_queue, or search_queue when you need a single workflow decision at the case, court, or whole-search level without iterating over every charge.
  • Evaluate — Single record evaluation with full response structure
  • Glossary — Decision values and compliance terminology