Scenario Summary
Scenario 1 — Single Offense, Not Reportable
Search ID:40929433 | Candidate: Ebony Ferrell | State: TX | Type: USA_CRIMINAL_PLUS
A single speeding charge auto-cleared by traffic exclusion rules. Simplest possible path.
What to Assert:
decision.record_decision=NOT_REPORTABLEdecision.search_queue=Automation- 1 court, 1 case, 1 offense
case_decision=NOT_REPORTABLE,case_queue=Automationcharge_decision=NOT_REPORTABLE,needs_human_review=falserouting.queue=Automation,routing.is_automatable=truecited_rulesincludesGENERAL_TRAFFIC_NON_REPORT,EXCLUSION_FILTER_CHARGEid_match.is_match=true,match_score=0.85
Sample Response (condensed)
Sample Response (condensed)
Scenario 2 — Multiple Offenses, All Not Reportable
Search ID:40832032 | Candidate: Erline Lacombe | State: FL | Type: USA_CRIMINAL_OFFENDER
Three charges across three court searches — a traffic violation (guilty but old), and two battery charges with “No Information” dispositions. All cleared by rules.
What to Assert:
decision.record_decision=NOT_REPORTABLEdecision.search_queue=Automation- 3 courts, 3 cases, 3 offenses — all
NOT_REPORTABLE/Automation - Different rules applied per charge: traffic rules vs. disposition-based rules
id_match.match_score=0.85on all cases
Sample Response (condensed)
Sample Response (condensed)
Scenario 3 — Dismissed Traffic Charges, Low Identity
Search ID:41537337 | Candidate: Brian Briley | State: KS | Type: USA_CRIMINAL_OFFENDER
Four dismissed traffic charges across two court searches. Identity match is Not Enough Info (40%) — only DOB matched, name did not. All charges still routed to Automation because they are Not Reportable regardless of identity level.
What to Assert:
decision.record_decision=NOT_REPORTABLEdecision.search_queue=Automationid_match.is_match=false,match_score=0.40routing.identity_level=Not Enough Infoon all offenses- All 4 offenses:
charge_decision=NOT_REPORTABLE,routing.queue=Automation
Sample Response (condensed)
Sample Response (condensed)
Scenario 4 — Mixed Cases: Reportable + Not Reportable
Search ID:41991032 | Candidate: Michealah Hartman | State: IA | Type: County_criminal
Five cases under one court search. One DUI conviction is REPORTABLE (Auditor queue), four traffic charges are NOT_REPORTABLE (Automation). The single reportable case escalates the entire search to REPORTABLE / Auditor.
What to Assert:
decision.record_decision=REPORTABLE(escalated by 1 reportable case)decision.search_queue=Auditor(Auditor > Automation in rollup)- Case
08291 OWIN027732:case_decision=REPORTABLE,case_queue=Auditor - Other 4 cases:
case_decision=NOT_REPORTABLE,case_queue=Automation - Reportable offense:
cited_rulesincludesGENERAL_DUI_MISD_REPORTABLE
Sample Response (condensed)
Sample Response (condensed)
Scenario 5 — Reportable with Multiple Convictions
Search ID:41274791 | Candidate: Vanessa Stanley | State: CA | Type: County_criminal
Three guilty charges in Colorado — Disturbing the Peace, Assault, and Public Fighting. All are reportable under state-specific rules with legal citations.
What to Assert:
decision.record_decision=REPORTABLEdecision.search_queue=Auditor- All 3 offenses:
charge_decision=REPORTABLE cited_rulesincludes state-specificCO_CONV_NO_STATE_LIMITcitationspopulated with Colorado statute referencesrouting.reportability=Not Enough Info(insufficient reportability data despite conviction)
Sample Response (condensed)
Sample Response (condensed)
Scenario 6 — Insufficient Data, Medium Identity
Search ID:41002798 | Candidate: TIM TAYLOR | State: KS | Type: County_criminal
Identity match is Medium (80%, below the 85% threshold) with identity_insufficient: true. Mixed offense decisions — some reportable (guilty pleas), some dismissed. The insufficient identity data escalates the reportable charges to Insufficient Data queue.
What to Assert:
decision.record_decision=MANUAL_REVIEWdecision.search_queue=Insufficient Dataid_match.is_match=false,match_score=0.80,identity_insufficient=trueon reportable charges- Reportable charges →
routing.queue=Insufficient Data(because identity is insufficient) - Dismissed charges →
routing.queue=Automation(Not Reportable bypasses identity concern) routing.identity_level=Not Enough Infoon reportable charges,Mediumon dismissed charges
Sample Response (condensed)
Sample Response (condensed)
Scenario 7 — Insufficient Reportability Data
Search ID:40697757 | Candidate: Bryanna Carr | State: NC | Type: USA_CRIMINAL
Identity qualifies as a match (85%) but offense data is too sparse — charges are “Not Specified” with missing dispositions. The engine cannot determine reportability, so charges go to MANUAL_REVIEW and route to Auditor.
What to Assert:
decision.record_decision=REPORTABLEdecision.search_queue=Auditorid_match.is_match=true,match_score=0.85charge_decision=MANUAL_REVIEW(not enough info to auto-decide)routing.reportability=Not Enough Inforouting.reportability_insufficient=truecited_rules=[](no rules could be applied)validation.issues.errorscount = 16 (extensive missing data)
Sample Response (condensed)
Sample Response (condensed)
Error and Edge-Case Scenarios
Input Validation Errors (HTTP 422)
cases[] Behavior
Processing Failures — Court Search ID / Offense ID Count Mismatch (HTTP 500 on /evaluate)
Authentication Errors (HTTP 401/403)
Rate Limiting (HTTP 429)
Rate limits are enforced per API key. Include retry logic with exponential backoff for 429 responses. Contact the AI Team for your account’s specific limit.
Identity Match and Routing Impact
Identity matching determines who the record belongs to. The identity score directly controls which routing queue a charge is assigned to.Identity-to-Routing Matrix
Routing is driven by whether the identity matches the candidate (is_match) and the charge’s reportability:
How Identity Score is Calculated
Common Score Scenarios
Identity Impact in Our Samples
Search Type Differences
Theubs_search_type field in the response reflects the type of search that was requested. The response format is identical across all types.
Rationale Structure Guide
Each offense in the response includes arationale field (human-readable text) and a cited_rules array (machine-readable rule identifiers). Your back-office can aggregate these to build case-level summaries.
Per-Offense Fields
Building a Case-Level Rationale
To build the format:Example — Scenario 4 (Mixed Decisions)
From search41991032, case 08291 OWIN027732:
08291 NTA0064479:
Queue Rollup Logic
Offense-level queues roll up to case, court, and search level using a fixed precedence.Precedence (highest wins)
- Insufficient Data — if any child queue is Insufficient Data, the parent is Insufficient Data
- Auditor — if any child queue is Auditor, the parent is Auditor
- Automation — parent is Automation only when every child is Automation
Rollup Examples from Our Samples
Scenario 4 — One reportable escalates the whole search:Field Reference
Response Envelope
Decision Fields
Offense Fields
Validation Fields
Decision Flow
Related
- Evaluate Endpoint — Full API reference for
/evaluate - Routing & Queues — Detailed routing matrix and rollup logic
- Identity Matching Logic — Field-level matching rules and scoring
- Authentication — API key and JWT setup
- Error Handling — Error response formats
