EDORA Learn β Pipelines
Community-Based Alternatives to Detention (ATD Framework)
Pipeline 03A
Transparency note: program reporting frequencies differ by provider; we pool to quarterly intervals and mark any definition or funding-related series breaks. Small-n results are suppressed for confidentiality.
Overview
Community-based alternatives to detention (ATDs) provide structured supervision and supports for youth who would otherwise be held in secure facilities pending adjudication or disposition. ATDs aim to reduce unnecessary detention while maintaining accountability and ensuring appearance in court. This page outlines the program framework, data elements, and evaluation conventions used across jurisdictions.
What We Track
Program Types
- Evening Reporting Centers
- Day Reporting / Intensive Case Management
- Shelter / Respite (short-term)
- Electronic Monitoring (GPS / app-based)
- Community-based supervision / mentoring
Eligibility & Referral
- Criteria at intake or detention hearing documented
- Risk tool cutoffs and charge exclusions recorded
- Judicial/probation overrides logged with rationale & approver
Participation & Dosage
- Enrolled count and start dates
- Average days in program; contact intensity (visits/week)
- Attendance rate and missed-contact tracking
Outcomes
- New-law vs. technical violations during supervision window
- Court appearance compliance / FTA rate
- Status at closure: completed / neutral exit / unsuccessful
Cost & Capacity
- Program slots and utilization (avg. enrolled Γ· capacity)
- Cost per participant (by program type)
- Detention days avoided proxy (ADP diverted Γ per-diem)
Simple Flow
- Referral received at intake or detention hearing; screen for ATD eligibility
- Apply risk cutoffs & charge exclusions; note capacity limits
- Program assignment based on capacity, geography, supervision need
- Confirm transportation feasibility and language access
- Set expected contact intensity and schedule
- Engagement period tracked via attendance, curfew compliance, services
- Record missed contacts/alerts; apply graduated responses
- Progress review for compliance and risk reduction
- Adjust plan or step-down; document violations or early exits
- Completion or closure with status, LOS, and 30/90-day outcomes
- Compute appearance rate, violation rate, ADP diverted
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 program assignment was authorized/recorded. |
jurisdiction_code | string | β | β | County/parish/circuit or standardized local code. |
location_site_id | string | β | Program site/office 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. | |
atd_type_code | enum | β | atd_types.yml#type(5)
| Program type (evening_reporting, day_reporting, shelter_respite, electronic_monitoring, community_supervision). |
atd_program_id | string | β | Program identifier (join to program dimension for name, location, capacity). | |
referral_context_code | enum | β | atd_referral_contexts.yml#context(3)
| Where/when the ATD assignment originated (intake, detention_hearing, review_hearing). |
risk_tool_name | enum | instruments.yml#risk_tool_name(2)
| Risk tool informing eligibility/cutoffs (RAI, YLS/CMI, local_RAI). | |
risk_tool_version | string | β | Version string/number for the risk tool used. | |
risk_cutpoint_set_key | enum | cutpoint_sets.yml#set_key(2)
| Named threshold set applied for eligibility. | |
charge_exclusion_codes | array<string> | charge_exclusions.yml#exclusion(5)
| Charge disqualifiers present; semicolon-delimited in CSV. | |
eligibility_result_code | enum | β | atd_eligibility.yml#result(4)
| eligible, ineligible_safety, ineligible_statute, capacity_block. |
override_flag | boolean | β | Judicial/probation override used contrary to guidance. | |
override_reason_code | enum | overrides.yml#reason(4)
| Rationale for override; approver captured in audit trail. | |
override_approver_staff_id | string | β | Staff ID of override approver. | |
enroll_datetime | datetime | β | β | Program enrollment/start timestamp. |
expected_contact_intensity_per_week | number | β | Planned contacts/visits per week. | |
curfew_required_flag | boolean | β | Curfew condition required as part of ATD. | |
language_access_flag | boolean | β | Language access provided for youth/caregiver. | |
transportation_feasible_flag | boolean | β | Transportation/route feasible for attending program. | |
attendance_scheduled_count | integer | β | Number of scheduled touchpoints during episode (contacts/visits). | |
attendance_attended_count | integer | β | Number of attended touchpoints. | |
missed_contact_count | integer | β | Missed contacts/alerts during the episode. | |
violation_event_count_new_law | integer | β | Count of alleged new-law violations during episode window. | |
violation_event_count_technical | integer | β | Count of technical violations during episode window. | |
appearances_scheduled_count | integer | β | Number of court appearances scheduled in episode window. | |
appearances_missed_count | integer | β | Number of missed court appearances (FTA incidents) in episode window. | |
program_capacity_snapshot | integer | β | Program capacity on the date of assignment. | |
program_cost_per_participant | number | β | Cost per participant for the episodeβs program type (local budgeting figure). | |
detention_per_diem_rate | number | β | Local detention per-diem at the time (for upstream βdays avoidedβ proxy; not computed here). | |
completion_status_code | enum | β | completion_statuses.yml#status(3)
| Completed, neutral_exit, or unsuccessful. |
completion_datetime | datetime | β | β | Program episode end timestamp. |
unsuccessful_reason_code | enum | failure_reasons.yml#reason(3)
| If unsuccessful, reason (new_offense, noncompliance, withdrawal). | |
routed_to_next_node_code | enum | next_routes.yml#route(3)
| Routing after closure (continue_detention, step_down, case_review, other). | |
Download CSVwhat_we_track.csv |
Data & Methods
ATD metrics use referral-based denominators. Key performance indicators include appearance rate, violation rate, and average daily population (ADP) diverted from secure detention. Program-level capacity is calculated as average enrolled Γ· total slots. Outcome rates use exposure-adjusted denominators described in Denominators & Exposure Time. When programs or risk cutoffs change, we mark series breaks. Data standards align with Data Quality & Validation and Cross-Jurisdiction Comparability. Cost benchmarks follow analytic guidance in Aggregation & Scale Effects.