EDORA Learn — Pipelines
Family Engagement & Youth Voice (Participation Across the Pipeline)
Pipeline 04B
Transparency note: participation measures can be sparse in small jurisdictions and may be affected by documentation practices. We pool low-n cells and annotate series breaks when notice or consent procedures change.
Overview
Families and youth influence outcomes when they are informed, present, and invited to shape decisions. Engagement spans intake interviews, detention reviews, case planning conferences, court hearings, placement meetings, and reentry planning. This page describes observable elements of participation and how agencies can track inclusion, language access, and feedback loops in a consistent way across jurisdictions.
What We Track
Participation at Decision Points
- Attendance or documented outreach for:
- Intake
- Initial hearing
- Case plan meetings
- Placement reviews
- Reentry sessions
- Multiple outreach attempts logged (timestamps, modality)
Informed Consent & Rights Education
- Plain-language rights/conditions delivered (language noted)
- Signed consent/authorization forms for services & data sharing
- Youth-friendly explanation of conditions (acknowledgment captured)
Cadence & Accessibility
- Meeting frequency set & followed (actual vs. planned)
- Evening/weekend availability or remote options offered
- Supports arranged: transportation, childcare, interpreter
Youth Voice in Plans
- Youth-stated goals captured in plan
- Preference alignment documented (services, schedules, providers)
- Disagreements recorded with rationale & next-step options
Feedback & Grievance
- Concerns/complaints logged (topic, date, channel)
- Response timelines tracked; resolutions recorded
- Appeal pathways explained; status updated
Typical Flow
- Notify & invite families and youth for each key event
- Provide rights education; offer interpreter and access supports
- Gather input on goals, barriers, preferences
- Record youth-stated objectives and preferred options
- Hold meetings at accessible times/locations (or remotely)
- Capture attendance; note accommodations used (transport, childcare, interpreter)
- Document decisions, including departures from preferences with reasons
- Save next steps, responsible parties, and dates
- Close the loop with summaries and grievance/appeal options
- Send recap in preferred language and modality; track acknowledgment
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 primarily responsible for the engagement. | |
occurred_datetime | datetime | ✅ | — | Timestamp of the engagement (meeting, outreach, education, or grievance milestone). |
jurisdiction_code | string | ✅ | — | County/parish/circuit or standardized local code. |
legal_case_id | string | — | Case/docket identifier. | |
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. | |
decision_point_code | enum | ✅ | decision_points.yml#point(6)
| Intake, initial_hearing, case_plan_meeting, placement_review, reentry_session, other_pipeline_event. |
modality_code | enum | communication_modalities.yml#modality(9)
| in_person, phone, video, sms, email, mail, portal. | |
attendance_status_code | enum | attendance_status.yml#status(7)
| attended, excused_absence, no_show, outreach_only. | |
outreach_attempt_count | integer | — | Total attempts logged leading up to this event. | |
outreach_modality_codes | array<string> | communication_modalities.yml#modality(9)
| Modalities used across attempts; semicolon-delimited. | |
outreach_attempt_timestamps | array<datetime> | — | Attempt timestamps; semicolon-delimited (order-preserved). | |
rights_language_code | enum | language_codes.yml#lang⚠️ using language_codes.yml#code(7)
| Language used for rights/conditions explanation. | |
notice_method_code | enum | notice_methods.yml#method(6)
| How rights/conditions were delivered. | |
youth_acknowledgment_code | enum | acknowledgment_types.yml#type(5)
| signed, verbal, refused, not_present, not_required. | |
caregiver_acknowledgment_code | enum | acknowledgment_types.yml#type(5)
| signed, verbal, refused, not_present, not_required. | |
consent_type_codes | array<string> | consent_types.yml#type⚠️ using consent_types.yml#Type(5)
| Services/data sharing authorizations requested. | |
consent_status_code | enum | consent_status.yml#status(5)
| granted, partial, denied, pending, expired. | |
consent_datetime | datetime | — | Timestamp of consent status capture. | |
planned_meeting_frequency_code | enum | meeting_frequencies.yml#freq(5)
| Planned cadence for engagement. | |
actual_meeting_frequency_code | enum | meeting_frequencies.yml#freq(5)
| Realized cadence (periodic roll-up or at closure). | |
accessibility_option_codes | array<string> | accessibility_options.yml#option(3)
| evening_hours, weekend_hours, remote_option. | |
support_type_codes | array<string> | support_types.yml#type(4)
| transportation, childcare, interpreter, technology_support. | |
interpreter_language_code | enum | language_codes.yml#lang⚠️ using language_codes.yml#code(7)
| Language provided by interpreter, if any. | |
youth_goal_present_flag | boolean | — | At least one youth-stated goal captured this event. | |
preference_alignment_code | enum | alignment_levels.yml#level(4)
| high_alignment, partial_alignment, low_alignment, unknown. | |
disagreement_flag | boolean | — | Youth/caregiver disagreement recorded for this decision. | |
disagreement_reason_code | enum | disagreement_reasons.yml#reason(6)
| Category for disagreement rationale. | |
grievance_flag | boolean | — | This event logs a concern/complaint. | |
grievance_topic_codes | array<string> | grievance_topics.yml#topic(7)
| Topics for the concern; semicolon-delimited. | |
grievance_channel_code | enum | channels.yml#channel(6)
| intake, hotline, portal, email, in_person, other. | |
grievance_datetime | datetime | — | When the concern was submitted. | |
response_due_date | date | — | Target date to respond/acknowledge the concern. | |
response_outcome_code | enum | response_outcomes.yml#outcome(4)
| resolved, partially_resolved, unresolved, withdrawn. | |
appeal_offered_flag | boolean | — | Appeal pathway was explained/offered. | |
appeal_status_code | enum | appeal_statuses.yml#status(6)
| not_applicable, initiated, in_review, upheld, modified, denied. | |
Download CSVwhat_we_track.csv |
Data & Methods
Engagement indicators use event-based denominators (e.g., number of eligible meetings). Attendance is binary with role codes (youth, caregiver, advocate). Consent is captured as signed/declined with date/time stamps. Language access is measured by interpreter requested/provided and translated materials used. To compare across sites, we standardize meeting types and reporting intervals, mark series breaks when notice or consent protocols change, and apply small-n suppression per Suppression & Small-n. For cross-agency consistency and privacy, see Data Governance & Ethical Integration, Metadata & Documentation, and Cross-Jurisdiction Comparability.