EDORA Learn β Pipelines
Youth Assessment and Screening Instruments (Applied Across Pipelines)
Pipeline 02C
Transparency note: tool versions and scoring thresholds change periodically. All results are tagged with version dates, and series breaks are annotated where thresholds or scoring logic are revised.
Overview
Validated instruments help translate subjective observations into structured indicators of risk, need, and protective factors. They are applied at multiple pointsβintake screening, detention decision, case planning, and reentry reviewβ to support consistency and transparency in decision-making. This page summarizes how tools are chosen, applied, and maintained across the youth justice pipeline.
What We Track
Screening vs. Assessment
- Use brief screening tools for triage / immediate decision
- MAYSI-2
- CRAFFT
- Use full assessments for case planning and supervision levels
- YLS/CMI
- SAVRY
Domains Covered
- Risk of reoffending
- Criminogenic needs
- Strengths & protective factors
- Behavioral health (MH/SUD, trauma)
- Family & educational supports
Scoring & Version Control
- Record instrument name & version (with effective dates)
- Document item counts & scoring thresholds (cut points)
- Log overrides or manual edits with rationale & approver
Integration into Case Planning
- Map scores β goals and service referrals
- Set supervision levels aligned to assessed risk/needs
- Schedule review dates and reassessment cadence
Validation & Drift Monitoring
- Conduct periodic recalibration and subgroup validity checks
- Monitor score drift and tool performance over time
- Mark series breaks when thresholds or scoring logic change
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 administering or recording the tool. | |
occurred_datetime | datetime | β | β | Timestamp when the instrument was administered or scored. |
jurisdiction_code | string | β | β | County/parish/circuit or standardized local code. |
location_site_id | string | β | Site/facility/office identifier. | |
actor_role_code | enum | roles.yml#actor_role(7)
| Role primarily responsible for this action. | |
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. | |
instrument_key | enum | β | instruments.yml#instrument_keyβ οΈ using instruments.yml#risk_tool_name(2)
| Canonical instrument identifier (MAYSI_2, CRAFFT, YLS_CMI, SAVRY). |
instrument_type_code | enum | β | instrument_types.yml#type(2)
| screening or assessment. |
instrument_version | string | β | β | Version string/number (e.g., v4.0) as provided by vendor or policy memo. |
instrument_version_effective_date | date | β | Date version took effect locally (used for series break annotation). | |
administration_context_code | enum | admin_contexts.yml#context(5)
| Where/why applied (intake_triage, detention_screen, case_planning, reentry_review, violation_review). | |
items_total_count | integer | β | Total number of items/questions expected for this instrument version. | |
items_missing_count | integer | β | Number of items missing/skipped. | |
score_raw_total | number | β | Raw total score (or instrument-level computed score). | |
score_category_code | enum | score_categories.yml#category(6)
| Standardized bucket for the instrument (e.g., low/moderate/high; or negative/flag/severe). | |
cutpoint_set_key | enum | cutpoint_sets.yml#set_key(2)
| Named set of thresholds used for categorization (aligns to version/policy window). | |
domain_flags | array<string> | domains.yml#domain(7)
| List of domains flagged by this administration (semicolon-delimited in CSV). | |
safety_flag | boolean | β | Immediate safety concern triggered (e.g., self-harm risk). | |
immediate_action_code | enum | immediate_actions.yml#action(4)
| Action taken when safety_flag = true (on_call_clinician, emergency_transport, heightened_observation). | |
mapped_supervision_level_code | enum | supervision_levels.yml#level(4)
| Supervision level mapped from assessment (policy-driven mapping table). | |
service_referral_codes | array<string> | service_referrals.yml#service(6)
| Services recommended/aligned to needs (semicolon-delimited in CSV). | |
override_flag | boolean | β | Judgment differed from tool guidance. | |
override_reason_code | enum | overrides.yml#reason(4)
| Rationale for override (policy exception, safety exception, etc.). | |
override_approver_staff_id | string | β | Approver identifier for override per policy. | |
override_datetime | datetime | β | Timestamp when override was authorized. | |
reassessment_due_date | date | β | Next scheduled review per cadence. | |
reassessment_reason_code | enum | reassessment_reasons.yml#reason(4)
| Reason for reassessment (routine_cadence, transition_event, violation, court_review). | |
Download CSVwhat_we_track.csv |
Typical Flow
- Screen at intake using short tools for immediate triage or detention decision
- Apply MAYSI-2 / CRAFFT; note tool version and missing items
- Escalate any safety flags for rapid response
- Conduct full assessment after referral or adjudication to guide case planning
- Use YLS/CMI or SAVRY; capture domain scores and overall risk
- Set initial supervision level and service recommendations
- Document overrides when judgment differs from tool guidance
- Provide rationale and approver; set review date
- Review and update assessments periodically or after events (violations, transitions)
- Adhere to reassessment cadence; update plan and supervision level
- Reassess validity across cohorts for equity monitoring
- Track predictive accuracy and subgroup parity; mark series breaks as needed
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 administering or recording the tool. | |
occurred_datetime | datetime | β | β | Timestamp when the instrument was administered or scored. |
jurisdiction_code | string | β | β | County/parish/circuit or standardized local code. |
location_site_id | string | β | Site/facility/office identifier. | |
actor_role_code | enum | roles.yml#actor_role(7)
| Role primarily responsible for this action. | |
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. | |
instrument_key | enum | β | instruments.yml#instrument_keyβ οΈ using instruments.yml#risk_tool_name(2)
| Canonical instrument identifier (MAYSI_2, CRAFFT, YLS_CMI, SAVRY). |
instrument_type_code | enum | β | instrument_types.yml#type(2)
| screening or assessment. |
instrument_version | string | β | β | Version string/number (e.g., v4.0) as provided by vendor or policy memo. |
instrument_version_effective_date | date | β | Date version took effect locally (used for series break annotation). | |
administration_context_code | enum | admin_contexts.yml#context(5)
| Where/why applied (intake_triage, detention_screen, case_planning, reentry_review, violation_review). | |
items_total_count | integer | β | Total number of items/questions expected for this instrument version. | |
items_missing_count | integer | β | Number of items missing/skipped. | |
score_raw_total | number | β | Raw total score (or instrument-level computed score). | |
score_category_code | enum | score_categories.yml#category(6)
| Standardized bucket for the instrument (e.g., low/moderate/high; or negative/flag/severe). | |
cutpoint_set_key | enum | cutpoint_sets.yml#set_key(2)
| Named set of thresholds used for categorization (aligns to version/policy window). | |
domain_flags | array<string> | domains.yml#domain(7)
| List of domains flagged by this administration (semicolon-delimited in CSV). | |
safety_flag | boolean | β | Immediate safety concern triggered (e.g., self-harm risk). | |
immediate_action_code | enum | immediate_actions.yml#action(4)
| Action taken when safety_flag = true (on_call_clinician, emergency_transport, heightened_observation). | |
mapped_supervision_level_code | enum | supervision_levels.yml#level(4)
| Supervision level mapped from assessment (policy-driven mapping table). | |
service_referral_codes | array<string> | service_referrals.yml#service(6)
| Services recommended/aligned to needs (semicolon-delimited in CSV). | |
override_flag | boolean | β | Judgment differed from tool guidance. | |
override_reason_code | enum | overrides.yml#reason(4)
| Rationale for override (policy exception, safety exception, etc.). | |
override_approver_staff_id | string | β | Approver identifier for override per policy. | |
override_datetime | datetime | β | Timestamp when override was authorized. | |
reassessment_due_date | date | β | Next scheduled review per cadence. | |
reassessment_reason_code | enum | reassessment_reasons.yml#reason(4)
| Reason for reassessment (routine_cadence, transition_event, violation, court_review). | |
Download CSVwhat_we_track.csv |
Data & Methods
Instrument data are stored as item-level responses or summary scores. Version and date fields are mandatory for reproducibility. Overrides are binary indicators with text notes. Aggregated metrics include completion rates, average scores, and cross-domain correlations. Validation studies follow conventions from Risk Assessment Tools and handle small-cell results per Suppression & Small-n. When thresholds change or instruments are replaced, we flag series breaks in accordance with Series Breaks & Definition Changes.