Concurrent vs Consecutive Sentencing — Methodology
This page explains how the cohort displayed on /concurrent-consecutive is computed. The estimate is a snapshot derived from public OSCN/ODOC records, projected through HB1792 earned-credit rules and the 85% Truth-in-Sentencing (TIS) statute (21 O.S. § 13.1).
1. Source data + filter scope
Each row is a single sentenced person with at least two consecutive Oklahoma felony judgments. Filters: post-1950 first sentencing date, valid OK statute, valid DOB, age 0–120, vendor_status indicating in-custody. Out-of-state and non-felony cases are excluded. The 25,294-row population reflects this filter — it does not match ODOC's official active-inmate count, which uses different inclusion criteria.
2. HB1792 sub-class assignment (21 O.S. § 12.1)
Each conviction is assigned a sub-class from the HB1792 taxonomy: Y, A1, A2, A3, B1–B6, C1, C2, D1–D3 (15 keys). The sub-class drives the earned-credit-per-month rate. When the analyzer cannot confidently assign a class (offense text ambiguous), the rate is set conservatively to 0 — biasing eligible-for-relief downward. The class_unknown_rate badge surfaces this as a percentage.
3. 85% Truth-in-Sentencing floor (21 O.S. § 13.1)
Convictions for the listed violent offenses must serve at least 85% of the imposed term before earned credits apply. The eligible-time computation enforces this floor. Solem v. Helm proportionality serves as the lower bound: even when statutory math would 'free' a person, the rendered figure does not net below time already served.
4. Binding-required + concurrent-vs-consecutive logic
For each consecutive chain we compute the binding-required time (the maximum effective_required across the chain). The cohort 'over-served' figure is years_served minus the longest single binding-required term — i.e., what the offender would have served had the chain been concurrent rather than consecutive.
5. Privacy: k-floor anonymization
Any breakdown row whose freed-eligible count is below 30 is rendered as the opaque '<30' band rather than a precise number. This prevents re-identification of small county/race/gender intersections. The total population count is published unbanded since it's already a public aggregate.
Known limitations
- The filter scope (vendor_status='ACTIVE') may include people on supervised release / parole; an audit is filed (#23) to compare against ODOC's strict-incarcerated definition.
- When HB1792 sub-class is missing, the 0-credit rate biases the eligible-for-relief figure downward — actual eligibility is likely larger.
- Solem floor applies to the earned-time projection but not to underlying sentence math; corner cases of mixed violent + non-violent chains may need caseworker review.
- Anomaly rows (~7.8%) are flagged but not excluded; users should treat per-row claims as analytical estimates, not legal opinions.