Skip to main content
One signal is usually enough. At rollup levels, queue and decision are paired (AutomationNOT_REPORTABLE, AuditorREPORTABLE, Insufficient DataMANUAL_REVIEW), so do not branch twice on both for the same if/else. How queues are assigned and rolled up: Routing & Queues.
Use when you consume queue (alone or with decision). Rollup priority: Insufficient Data > Auditor > Automation. One charge in Insufficient Data escalates the case, court, and search.
Use when you consume decision (alone or with queue). At aggregated levels (record_decision, court_decision, case_decision), decision mirrors queue: Per-charge charge_decision works the same way for offense-level reportability. Note: identity match can change queue relative to a naive decision-only rule — if your workflow is desk/routing based, prefer the queue tables instead.

Using rationale, cited_rules, and citations

These live on each offense under decision.court_decisions[].case_decisions[].offenses[]: For Auditor / REPORTABLE paths, treat these three fields as the default audit packet alongside identity match (id_match) and routing detail. For Automation / NOT_REPORTABLE, you usually do not need a human to read them — still persist them for audit trails. For Insufficient Data / MANUAL_REVIEW, prefer validation.issues for what is missing; use rationale for the narrative why automation stopped.

Resubmit vs human review

Resubmission is optional. Most integrations send one evaluate and stop. Details: Resubmission Workflow.