EDORA
Skip to content

EDORA Learn β€” Pipelines

Electronic Monitoring & Location-Based Conditions (ATD Modality)

Pipeline 03B

Transparency note: EM cohorts can be small and device/vendor changes create definition shifts in alert logic; we pool low-n cells and mark series breaks when hardware, software, or policy thresholds change.

Overview

Electronic monitoring (EM)β€”including GPS ankle devices or app-based geofencingβ€”is used in some jurisdictions as an alternative to secure detention. Conditions typically include curfew windows, exclusion zones (e.g., schools, retail areas), or stay-away orders. This page documents where EM fits in the pipeline, what data are generated, and how compliance and responses are measured neutrally across sites.

What We Track

Eligibility & Criteria

  • Decision rules for assigning EM (risk score, offense type, prior history)
  • Contraindications (housing instability, medical needs, device incompatibility)
  • Overrides documented with rationale & approver

Device Setup & Data

  • Install date/time; device type & version
  • Sampling interval / ping cadence configured
  • Battery/charge events captured
  • Geofence definitions:
    • Curfew windows
    • Exclusion zones
    • Inclusion zones (school, work)

Compliance Metrics

  • Percent of curfew hours compliant
  • Alert counts by type (strap tamper, low battery, zone entry/exit)
  • Average time-to-acknowledge alert
  • False alert rate (vendor logic/version aware)

Responses & Escalation

  • Graduated responses (warning β†’ schedule change β†’ ATD switch β†’ petition to revoke)
  • Proportionality & consistency checks (grid fidelity)
  • Action/outcome logged with timestamps

Equity, Accuracy & Privacy

  • Performance by subgroup & geography (entry, alerts, responses)
  • Device reliability & version changes tracked (series breaks)
  • Data retention & access controls (who can view, how long)

Simple Flow

  1. Assignment at initial hearing or intake diversion decision; conditions & zones defined
    • Confirm eligibility and explain expectations in plain language
  2. Installation & orientation with youth/caregiver; confirm consent & contact protocols
    • Set geofences, curfew windows, and alert routing
    • Test device; verify contact escalation pathways
  3. Monitoring of curfew windows and zones; alerts routed to officer/provider per on-call schedule
    • Log alert types, acknowledge times, and any false-alert flags
  4. Response workflow based on severity/frequency; document actions & outcomes
    • Apply graduated grid; record proportionality and overrides
  5. Review & step-down after a defined compliance period
    • Remove device or transition to lighter ATD; close episode with status
Schema source: electronic-monitoring

Fields

FieldTypeRequiredCodesetDescription
pipeline_place_iduuidβœ…β€”Unique identifier for this pipeline place row.
pipeline_stage_idenumβœ…
stages.yml#stage_key(8)
  • intake
  • detention
  • adjudication
  • disposition
  • supervision
  • commitment_and_placement
  • reentry
  • closure
One of the 8 canonical stages.
pipeline_place_keyenumβœ…
pipeline_places.yml#place_key(45)
  • intake
  • pre_petition_diversion_and_deflection
  • diversion
  • youth_assessment_tools
  • prosecutorial_screening
  • status_offenses
  • adjudication
  • case_planning
  • family_engagement
  • case_timeliness
  • language_access
  • restorative_justice
  • detention_screening
  • community_atds
  • electronic_monitoring
  • court_appearance_and_fta
  • initial_hearing
  • pretrial_supervision
  • probation
  • intensive_supervision
  • …and 25 more
Canonical key for this place (maps to route/slug).
youth_idstringβœ…β€”Salted/hashed or state UID. No plaintext PII.
staff_idstringβ€”Staff primary actor for this place, if applicable.
occurred_datetimedatetimeβœ…β€”Timestamp when EM assignment was authorized/recorded.
jurisdiction_codestringβœ…β€”County/parish/circuit or standardized local code.
location_site_idstringβ€”Program office or installation site identifier.
actor_role_codeenum
roles.yml#actor_role(7)
  • Intake_Officer
  • Prosecutor
  • Defender
  • Probation_Officer
  • Case_Manager
  • Facility_Staff
  • Coach_Reentry
Role primarily responsible for this place.
legal_case_idstringβ€”Docket/case identifier if already created.
source_systemstringβœ…β€”Origin system name.
source_filestringβ€”Source batch/file id if flatfile.
extract_run_idstringβ€”ETL run id for lineage.
series_break_flagbooleanβ€”Comparability break applies to this row.
series_break_reasonenum
series_breaks.yml#reason(4)
  • definition_change
  • vendor_change
  • coverage_change
  • policy_change
Reason for break when flagged.
referral_context_codeenumβœ…
atd_referral_contexts.yml#context(3)
  • intake
  • detention_hearing
  • review_hearing
Where/when EM assignment originated (intake, detention_hearing, review_hearing).
assignment_reason_codeenum
em_assignment_reasons.yml#reason(4)
  • pretrial_condition
  • step_down_from_detention
  • graduated_response
  • other
Pretrial_condition, step_down_from_detention, graduated_response, other.
atd_program_idstringβ€”Program identifier when EM is delivered via an ATD program.
risk_tool_nameenum
instruments.yml#risk_tool_name(2)
  • YLS_CMI
  • SAVRY
Risk tool informing eligibility/cutoffs (RAI variant, etc.).
risk_tool_versionstringβ€”Version string/number for the risk tool used.
risk_cutpoint_set_keyenum
cutpoint_sets.yml#set_key(2)
  • default_vendor_set
  • local_policy_set_YYYYMMDD
Named threshold set applied for eligibility.
charge_exclusion_codesarray<string
charge_exclusions.yml#exclusion(5)
  • violent_offense
  • weapon_involved
  • sex_offense
  • no_contact_order
  • supervision_violation_severe
Charge disqualifiers present; semicolon-delimited in CSV.
override_flagbooleanβ€”Judicial/probation override used contrary to guidance.
override_reason_codeenum
overrides.yml#reason(4)
  • safety_exception
  • capacity_constraint
  • policy_exception
  • supervisor_override
Rationale for override; approver captured in audit trail.
override_approver_staff_idstringβ€”Staff ID of override approver.
device_type_codeenumβœ…
em_device_types.yml#device_type(3)
  • gps
  • radio_frequency
  • smartphone_app
gps, radio_frequency, smartphone_app.
device_vendor_codeenum
em_device_vendors.yml#vendor(3)
  • vendor_a
  • vendor_b
  • vendor_c
Vendor code (do not store serials or MAC addresses here).
device_install_datetimedatetimeβœ…β€”Installation/activation timestamp.
device_remove_datetimedatetimeβ€”Removal/deactivation timestamp.
grace_period_minutesintegerβ€”Configured grace period for alerts at assignment time.
curfew_start_timetimeβ€”Daily curfew start (local time), if imposed.
curfew_end_timetimeβ€”Daily curfew end (local time), if imposed.
geofence_zone_codesarray<string>
geofence_zones.yml#zone(4)
  • school_exclusion
  • victim_exclusion
  • home_inclusion
  • court_inclusion
Assigned exclusion or inclusion zones; semicolon-delimited in CSV.
alert_count_totalintegerβ€”Total device alerts during the episode window.
alert_count_low_batteryintegerβ€”Count of low-battery alerts.
alert_count_strap_tamperintegerβ€”Count of strap-tamper alerts.
alert_count_zone_violationintegerβ€”Count of zone/curfew violations.
alert_count_signal_lossintegerβ€”Count of prolonged signal-loss alerts.
data_gap_minutes_totalintegerβ€”Total minutes of missing telemetry (vendor outage/device offline).
response_action_codesarray<string>
graduated_responses.yml#action(5)
  • contact_attempt
  • home_visit
  • step_up
  • violation_report
  • program_review
Actions taken in response to alerts (contact_attempt, home_visit, step_up, violation_report); semicolon-delimited in CSV.
appearances_scheduled_countintegerβ€”Court appearances scheduled during EM episode.
appearances_missed_countintegerβ€”Missed court appearances (FTAs) during EM episode.
violation_event_count_new_lawintegerβ€”New-law violation events during EM episode.
violation_event_count_technicalintegerβ€”Technical violations (curfew/zone/monitoring conditions).
completion_status_codeenumβœ…
completion_statuses.yml#status(3)
  • successful
  • neutral_exit
  • failure
completed, neutral_exit, or unsuccessful.
completion_datetimedatetimeβœ…β€”Episode end timestamp.
unsuccessful_reason_codeenum
failure_reasons.yml#reason(3)
  • new_offense
  • withdrawal
  • noncompliance
If unsuccessful, reason (new_offense, noncompliance, withdrawal).
routed_to_next_node_codeenum
next_routes.yml#route(3)
  • prosecutorial_screening
  • petition
  • other
Routing after closure (continue_detention, step_down, case_review, other).
Download CSVwhat_we_track.csv

Data & Methods

EM indicators use assignment-based denominators. Compliance is measured as compliant hours Γ· total required curfew hours, plus alert rates per 100 monitored hours. Time-to-response is captured from alert timestamp to action recorded. Device/version fields are mandatory to separate hardware/software effects; when vendors or thresholds change, we mark series breaks. Classification of responses follows Technical Violations vs. New Offenses. Privacy and retention practices are documented per Data Privacy & Disclosure Control, and cross-site comparability follows Cross-Jurisdiction Comparability.

Related