Skip to contents

Six lightweight callables mirroring the Python module morie.otis: regional-placement matrices, alert-state combo encoding, regional volatility, restrictive-confinement trends, descriptive statistics, and a partialled-out Plug-in DML (PLR) ATE/ATT estimator. Each public callable returns a named list with classes c("morie_otis_result", "morie_rich_result", "list") carrying summary_lines, optional tables, a plain-language interpretation, and machine-readable payload entries.

Usage

morie_otis_regional_placement(...)

morie_otis_alert_state_combo(...)

morie_otis_volatility(...)

morie_otis_rc_trends(...)

morie_otis_descriptives(...)

morie_otis_dml(...)

Arguments

...

Arguments forwarded verbatim to the canonical short-named OTIS primitive (e.g. morie_otis_rplace, morie_otis_astcmb, morie_otis_volat, morie_otis_rctrnd, morie_otis_otdesc). See those functions for full per-primitive argument lists.

Details

Data sources: anonymized Ontario MCSCS placement records released under the Jahn v. Ontario (2020) settlement. The canonical OTIS table has 76,934 rows (FY 2022/23 – 2024/25). See morie_otis_load in otis_analyze.R for the canonical loader.

Year-lock invariant

OTIS UniqueIndividual_ID (format YYYY-XXXXX-AA) is randomly reassigned every fiscal year and re-randomized per dataset file even within a year. The variable_taxonomy.R registry enforces cross_year_safe = FALSE for this column. Every aggregation below operates within EndFiscalYear; cross-year joins on the ID are forbidden by design.

References

Ontario Ministry of the Solicitor General (2025). Restrictive Confinement Detailed Dataset. https://data.ontario.ca.

Jahn v. Ontario (2020). Settlement Agreement – Inmate Data Disclosure.

Chernozhukov, V. et al. (2018). Double/debiased machine learning for treatment and structural parameters. Econometrics Journal, 21(1), C1-C68.