EDORA Learn β Pipelines
Detention Decisions & Alternatives (Pipeline Node)
Pipeline 03
Transparency note: county-level detention counts can be sparse; we pool across months/quarters and mark any series breaks caused by statute or instrument changes.
Overview
Detention is a short-term, pre-adjudication hold used for a subset of youth based on risk and statutory criteria. Jurisdictions increasingly apply detention risk instruments to guide release versus hold decisions and to match youth to alternatives when safe. This page situates detention within the pipeline and documents measurable elements such as screening, timeliness, average length of stay, and exit pathways.
What We Track
Eligibility & Screening
- Check statutory disqualifiers (offense class, warrants, supervision status)
- Apply detention risk instrument (tool name & version); record score & cut points
- Log overrides to instrument guidance with rationale & approver
Timeliness
- Measure admission β initial hearing hours (target: 24β48)
- Record counsel presence/appointment at hearing (Y/N)
- Track continuances (reason codes, added days)
Alternatives to Detention (ATDs)
- Capture assignment and utilization (enrolled Γ· capacity)
- Program types:
- Evening/Day Reporting
- Electronic Monitoring
- Shelter/Respite
- Community-based supervision
Length of Stay & Exits
- Report episode-level ALOS and medians/IQR (reduce skew)
- Exit types: release, release to ATD, transfer, petition filed, dismissal/decline
- Track readmissions within 30 days
Equity & Geography
- Compute rate ratios by race/ethnicity and urban/rural (admissions, ATD use, exits)
- Monitor instrument calibration & drift (AUC, Brier, subgroup fit) over time
Typical Flow
- Admission from referral/intake with initial risk screen & legal criteria check
- Run detention risk instrument; verify statutory disqualifiers
- Open episode; start timeliness clock
- Initial hearing within 24β48 hours; record counsel and continuances
- Confirm counsel present/appointed
- Document any continuance and reasons
- Decision: release, release to ATD, or continue detention with review
- If release: set conditions and ATD as needed
- If continued hold: schedule next review; log override if deviating from tool
- Review & monitoring: reassess risk, track conditions, document overrides
- Check compliance with orders/ATD conditions
- Re-run or update risk assessment on material changes
- Exit to community/ATD, transfer post-adjudication, or dismissal/decline
- Close episode with exit reason; compute LOS
- If transfer/commitment: hand off to placement/reentry teams
Fields
Field | Type | Required | Codeset | Description |
---|---|---|---|---|
pipeline_place_id | uuid | β | β | Unique identifier for this pipeline place row. |
pipeline_stage_id | enum | β | stages.yml#stage_key(8)
| One of the 8 canonical stages. |
pipeline_place_key | enum | β | pipeline_places.yml#place_key(45)
| Canonical key for this place (maps to route/slug). |
youth_id | string | β | β | Salted/hashed or state UID. No plaintext PII. |
staff_id | string | β | Staff primary actor for this place, if applicable. | |
occurred_datetime | datetime | β | β | Timestamp when screening decision (recommendation) was finalized. |
jurisdiction_code | string | β | β | County/parish/circuit or standardized local code. |
location_site_id | string | β | Detention facility/booking site identifier. | |
actor_role_code | enum | roles.yml#actor_role(7)
| Role primarily responsible for this place. | |
legal_case_id | string | β | Docket/case identifier if already created. | |
source_system | string | β | β | Origin system name. |
source_file | string | β | Source batch/file id if flatfile. | |
extract_run_id | string | β | ETL run id for lineage. | |
series_break_flag | boolean | β | Comparability break applies to this row. | |
series_break_reason | enum | series_breaks.yml#reason(4)
| Reason for break when flagged. | |
legal_disqualifier_codes | array<string> | detention_disqualifiers.yml#disqualifier(3)
| Statutory disqualifiers present (offense_class, active_warrant, on_supervision). CSV: semicolon-delimited. | |
risk_tool_name | enum | β | instruments.yml#risk_tool_name(2)
| Detention risk instrument administered (e.g., RAI variant, YLS/CMI where used). |
risk_tool_version | string | β | β | Version string/number for the detention instrument. |
risk_total_score | number | β | Total score output by the detention instrument. | |
risk_cutpoint_set_key | enum | cutpoint_sets.yml#set_key(2)
| Named set of thresholds used to translate scores to guidance. | |
risk_guidance_code | enum | detention_guidance.yml#guidance(3)
| Instrumentβs recommended action bucket (release, atd, hold). | |
detention_decision_code | enum | β | detention_decisions.yml#decision(3)
| Final decision at screening (release, release_to_atd, continue_detention). |
override_flag | boolean | β | Decision deviated from instrument guidance. | |
override_reason_code | enum | overrides.yml#reason(4)
| Rationale for override; approver stored in audit trails. | |
detention_admission_datetime | datetime | β | Timestamp youth admitted/booked to detention. | |
initial_hearing_datetime | datetime | β | Timestamp of first detention/initial appearance hearing. | |
counsel_present_flag | boolean | β | Counsel present/appointed at initial hearing. | |
continuance_count | integer | β | Number of continuances recorded before disposition/next major decision. | |
continuance_reason_codes | array<string> | continuance_reasons.yml#reason(13)
| Reasons for continuances; semicolon-delimited in CSV. | |
atd_assigned_flag | boolean | β | True if assigned to an ATD instead of continued detention. | |
atd_type_code | enum | atd_types.yml#type(5)
| ATD type selected (evening_reporting, day_reporting, electronic_monitoring, shelter_respite, community_supervision). | |
atd_program_id | string | β | Program identifier (join to program dimension for capacity roster). | |
atd_enroll_datetime | datetime | β | Timestamp youth was enrolled/activated in the ATD program. | |
atd_capacity_snapshot | integer | β | Program capacity at time of assignment (optional snapshot for utilization). | |
detention_release_datetime | datetime | β | Timestamp youth was released from detention (or transferred). | |
detention_exit_code | enum | detention_exits.yml#exit(5)
| Exit outcome (release, release_to_atd, transfer, petition_filed, dismissal_decline). | |
readmission_followup_window_code | enum | followup_windows.yml#window(4)
| Window used for readmission check (e.g., days_30). | |
readmission_check_datetime | datetime | β | Timestamp when readmission check executed. | |
readmitted_within_window_flag | boolean | β | True if youth admitted to detention again within the follow-up window. | |
readmission_reference_id | string | β | Identifier of the subsequent detention episode detected. | |
Download CSVwhat_we_track.csv |
Data & Methods
Detention metrics use episode-based denominators (admissions) and track time-to-event outcomes such as hours to hearing and days to release. Average length of stay (ALOS) is reported with medians and IQRs to reduce skew from long stays. Where instruments or statutes change, we mark series breaks and avoid naΓ―ve pre/post comparisons. Small-n suppression follows rules in Suppression & Small-n and trend cautions follow Time Series & Seasonality.