EDORA Learn β Pipelines
Case Closure & Record Sealing (End of Pipeline)
Pipeline 11
Transparency note: sealing/expungement processes can remove historical records unevenly across cohorts. We annotate series breaks and apply small-n suppression where post-sealing counts become sparse.
Overview
The end of a youthβs formal involvement is marked by case closure and, in many jurisdictions, eventual eligibility for record sealing or expungement. Closure can follow successful completion, early termination for compliance, administrative dismissal, or revocation pathways that lead to new orders. This page documents observable closure criteria and the steps required to restrict public access to records, emphasizing implications for time-series and longitudinal studies.
What We Track
Closure Status
- Status coded: successful completion / early termination / neutral exit / revocation
- Program completion verified (provider confirmation attached)
- Restitution status recorded (paid/plan/waived) at exit
Documentation
- Final case plan review completed (goals met/partially met/unmet)
- Discharge summary filed (services, outcomes, recommendations)
- Outstanding obligations logged (fees, community service) with next-step instructions
- Youth/caregiver notification delivered (date, method, language)
Sealing / Expungement Pathways
- Eligibility criteria captured: age, offense class, waiting period, no new adjudications
- Pathway type: petition-based vs. automatic; required forms & timelines listed
Access Controls
- Scope of sealing recorded: court / law enforcement / education systems
- Dissemination limits enforced (who can view; purpose restrictions)
- Retention/destruction schedules applied (dates, system owners)
Data Implications
- Recidivism and follow-up indicators adjusted for sealed/expunged cases (censoring flags)
- Cohort linkage rules updated (privacy-preserving IDs; match failure rates noted)
- Public reporting baselines documented; series breaks marked when sealing laws change
Typical Flow
- Pre-closure review of conditions, restitution, and program completion
- Prepare discharge summary; confirm outstanding obligations & instructions
- Case closure recorded with status code; notify youth/caregiver
- Provide documentation in preferred language; schedule optional exit conference
- Eligibility clock for sealing/expungement starts per statute
- Track waiting period and disqualifying events; send reminders when eligible
- Petition & order (or automatic sealing)
- File petition (if required); implement access restrictions across systems on order
- Post-closure follow-up for analytics (as allowed)
- Use privacy-preserving linkage; annotate coverage gaps from sealing or migration
Fields
Field | Type | Required | Codeset | Description |
---|---|---|---|---|
pipeline_place_id | uuid | β | β | Unique identifier for this case closure / sealing record. |
pipeline_stage_id | enum | β | stages.yml#stage_key(8)
| One of the canonical stages; here = reentry_aftercare. |
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 | β | Closing officer / coordinator (ID only). | |
occurred_datetime | datetime | β | β | Timestamp of closure action (or sealing order if that is the anchor). |
jurisdiction_code | string | β | β | County/parish/circuit or standardized local code. |
legal_case_id | string | β | Court case/docket identifier, if tracked. | |
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 (statute/policy/system change). | |
case_exit_date | date | β | β | Date of formal case closure or end of jurisdiction. |
closure_status_code | enum | β | closure_statuses.yml#status(4)
| successful_completion, early_termination, neutral_exit, revocation. |
program_completion_verified_flag | boolean | β | True if provider completion confirmation is attached. | |
restitution_status_code | enum | restitution_statuses.yml#statusβ οΈ using restitution_statuses.yml#outcome(4)
| paid, active_plan, waived, outstanding, not_applicable. | |
final_plan_outcome_code | enum | β missing in _index.yml | goals_met, partially_met, unmet, not_applicable. | |
discharge_summary_filed_flag | boolean | β | True if discharge summary filed to case record. | |
outstanding_obligation_codes | array<string> | outstanding_obligation_types.yml#type(5)
| Unresolved items (fees, community_service, other); semicolon-delimited. | |
notification_method_code | enum | communication_modalities.yml#modality(9)
| Method used to notify youth/caregiver. | |
notification_date | date | β | Date notification delivered. | |
notification_language_code | enum | β missing in _index.yml | Preferred language for closure notification. | |
sealing_eligibility_status_code | enum | sealing_eligibility_statuses.yml#status(4)
| eligible, not_yet_eligible, ineligible, under_review. | |
eligibility_basis_codes | array<string> | sealing_eligibility_bases.yml#basis(5)
| Basis satisfied (age, offense_class, waiting_period, no_new_adjudications); semicolon-delimited. | |
pathway_type_code | enum | sealing_pathway_types.yml#type(2)
| petition_based, automatic. | |
waiting_period_end_date | date | β | Date when statutory waiting period ends. | |
petition_filed_date | date | β | Date sealing/expungement petition filed (if required). | |
sealing_order_date | date | β | Date court issued sealing/expungement order. | |
sealing_scope_codes | array<string> | sealing_scope_entities.yml#entity(9)
| Systems covered (court, law_enforcement, education, other); semicolon-delimited. | |
dissemination_limit_role_codes | array<string> | dissemination_limit_roles.yml#role(7)
| Who may view sealed records and for what purpose; semicolon-delimited. | |
retention_action_code | enum | retention_actions.yml#action(4)
| seal, expunge, archive_restricted, destroy_after_date. | |
retention_action_date | date | β | Date the retention action was applied. | |
retention_scheduled_destruction_date | date | β | Date scheduled for destruction if applicable. | |
access_log_reference_id | string | β | Reference to access/transport log entry for sealing action. | |
censoring_applies_flag | boolean | β | True if post-closure data must be censored due to sealing/expungement. | |
censoring_effective_datetime | datetime | β | Timestamp after which outcomes are censored. | |
privacy_linkage_id_available_flag | boolean | β | True if privacy-preserving linkage (hashed UID) remains available. | |
linkage_match_method_code | enum | matching_methods.yml#method(3)
| deterministic, probabilistic, clerical_review. | |
linkage_match_score | number | β | Probabilistic score (if applicable). | |
linkage_outcome_code | enum | match_outcomes.yml#outcome(6)
| auto_match, clerical_queue, confirmed_match, confirmed_no_match. | |
Download CSVwhat_we_track.csv |
Data & Methods
Closure metrics use disposition- or supervision-based denominators with time-at-risk adjustment to the date of closure. Sealing/expungement indicators are captured as status flags with order dates. When access restrictions remove historical records, we mark series breaks and provide footnotes on coverage loss. Cross-system linkage follows governance and disclosure rules; see Data Governance & Ethical Integration, Data Privacy & Disclosure Control, and Longitudinal Tracking & Cohort Linkage. Series-break handling and small-n rules follow Series Breaks & Definition Changes and Suppression & Small-n.