Research · Article

Undertrial Liberty Priority System (ULPS): why courts need a transparent sort for prolonged custody

13 August 2026 · Legal Articles · Research

Desk readingBrowser voice · educational note · not a recording
ULPS — Undertrial Liberty Priority System. Education desk research graphic.
ULPS — Undertrial Liberty Priority System. Education desk research graphic.

Desk article · education. India’s prisons remain crowded with people who have not been convicted. They are called undertrials. The Constitution, the criminal procedure code now restated in the Bharatiya Nagarik Suraksha Sanhita (BNSS), Under Trial Review Committees, legal-services institutions, and eCourts systems all speak to their liberty. Yet a District Judge opening tomorrow’s cause list still often sees files ordered by filing habit, police station, or adjournment inertia — not by how long a human being has already spent in a cell waiting for a trial that may not have begun.

This article introduces the Undertrial Liberty Priority System (ULPS): an open research framework and reference algorithm for identifying, sorting, and notifying Indian criminal cases where an accused remains in judicial custody for prolonged periods — including two-year and five-year calendar thresholds — with stagnant or unstarted trial progress, and/or with no High Court or Supreme Court listing that would bring superior-court eyes to the file. ULPS is designed to be explainable in a courtroom corridor. It is not a bail calculator, not a guilt predictor, and not legal advice.

Citable scholarly record: DOI 10.5281/zenodo.21917435 · Zenodo record v1.1.0
Open reference code: github.com/advkumaradesh/undertrial-liberty-priority-system
Author ORCID: 0009-0000-7383-1508

Why this work exists

Prolonged pre-trial detention is not a diary inconvenience. It is a liberty injury. Indian constitutional law has long treated the right to life under Article 21 as including a right to speedy trial. Classic lines of authority — beginning with cases such as Hussainara Khatoon and continuing through modern bail and undertrial jurisprudence, including structured bail discussion in Satender Kumar Antil — insist that the State cannot treat jail as a waiting room without justification.

Statute followed doctrine. The older CrPC section 436A created a fractional ceiling on undertrial detention tied to the maximum imprisonment for the offence. From 1 July 2024, BNSS section 479 carries the modern framework: release pathways after detention reaching one-half of the maximum period in ordinary eligible cases, and one-third for first-time offenders, with carve-outs that must be read carefully (including offences where death or life imprisonment is specified). Jail Superintendents have been reminded — including through Ministry of Home Affairs advisories and Supreme Court implementation directions — that applications to the concerned court are not optional paperwork when thresholds are met.

Institutions followed statute. Under Trial Review Committees (UTRCs), coordinated through the legal-services architecture, sit at district level to review undertrials. eCourts Case Information Systems store CNRs, stages, and next dates. Prison systems and ICJS bridges try to connect custody with case status. Legal-aid rolls try to spot the unrepresented.

So why rebuild anything? Because norms without a daily sort still leave people invisible. UTRCs meet periodically while jail inflow is continuous. CIS screens optimise scheduling, not liberty harm. Superior courts cannot supervise a name that never appears on a High Court or Supreme Court cause list because no bail, habeas, or speedy-trial petition was ever filed. Manual Excel sheets vary by district. Opaque “AI risk scores” cannot be defended when a judicial officer is asked, in plain language: why is this name at the top?

ULPS answers that question with named facts: custody days, last effective hearing gap, statutory fraction where known, and presence or absence of HC/SC linkage. Version 1.1.0 adds Quantitative Analysis — prevalence, percentiles, cohorts, dual-signal rates, and a Liberty Backlog Index (LBI) — so a district can watch its backlog as a number that moves, not only as anecdotes.

Figure: four liberty signals — calendar custody, BNSS fraction, trial stagnation, and superior-court silence.
Figure: four liberty signals — calendar custody, BNSS fraction, trial stagnation, and superior-court silence.

What ULPS actually does

ULPS evaluates one accused linked to one trial-court case. If the person is in custody, it derives custody days from the custody start date, measures stagnation from the last effective hearing (or from custody start if trial has not commenced), and — where maximum sentence data exists and carve-outs do not apply — computes the custody fraction of the maximum sentence for BNSS 479-style alerts.

It emits court-readable codes rather than mysterious scores alone:

  • RED-5Y / RED-2Y — custody at or beyond five years / two years. These are administrative red lines for mention boards and UTRC packets even when statutory fractions differ by offence.
  • STAT-479 / NEAR-479 — fractional threshold met, or within about thirty days of it, for eligible cases.
  • STAGNANT — trial not commenced, or no effective hearing for 180 days or more while custody continues.
  • NO-HCSC — two or more years in custody with no linked High Court or Supreme Court case identifier or listing.

A transparent score from 0 to 100 combines those signals. Sort order prefers statutory and five-year severity, then score, then custody days. The point is not mathematical mystique. The point is that a court master can print a one-page rationale under each name.

Equally important is what ULPS refuses to do. It does not grant bail. It does not deny bail. It does not predict conviction. It does not scrape private case PDFs for public shaming. It does not replace UTRC deliberation. It ranks and notifies so human institutions can act earlier.

Why it is useful

First, it converts constitutional anxiety into an operational queue. Article 21 is not self-executing at 10:30 a.m. when twenty matters are called. A liberty-first list changes which file is opened before lunch.

Second, it keeps statute and calendar in the same frame. A case may be RED-5Y yet outside BNSS 479 because of a life-imprisonment carve-out. Another may be STAT-479 at eleven months on a short-maximum offence. Treating those as the same problem produces wrong remedies. ULPS keeps the labels separate so the remedy can match the signal.

Third, it treats superior-court silence as a first-class fact. Long custody with no HC/SC identifier is not “no problem upstairs.” It is often unreviewed liberty risk. Legal-services panels can use the NO-HCSC band as a filing camp list, not as a conclusion that bail must be granted.

Fourth, Quantitative Analysis gives administrators a KPI. The Liberty Backlog Index weights prolonged custody, stagnation, HC/SC silence, and statutory eligibility in published proportions. A district can track whether last quarter’s UTRC work moved the index — or only moved paper.

Fifth, open publication with a Zenodo DOI protects scholarly and institutional memory. Courts and researchers can cite 10.5281/zenodo.21917435 instead of reinventing an undocumented spreadsheet each year.

Figure: where ULPS sits — extracts in, ranked packets out to judges, UTRCs, prisons, and legal services.
Figure: where ULPS sits — extracts in, ranked packets out to judges, UTRCs, prisons, and legal services.

Where it can be used

ULPS belongs on authorised systems: court networks, prison headquarters environments, and legal-services offices that already lawfully hold custody and case extracts. It is not a public website feature for naming undertrials.

Concrete placements include trial-court and sessions court masters’ rooms, where a nightly or weekly liberty board can sit beside the ordinary diary; UTRC secretariats preparing the next sitting, where ranked packets with reasons replace unsorted dumps; prison statistical cells supporting Jail Superintendent applications under BNSS 479 and near-threshold pre-alerts; District and State Legal Services Authority desks matching long-custody, weakly represented, or NO-HCSC files to duty counsel; judicial academies and LL.M. clinics teaching undertrial procedure with reproducible methods and synthetic demo data; and eCourts / ICJS integration projects that need a documented algebra rather than a vendor black box.

Policy and academic settings can use the Zenodo deposit as the citable specification when comparing district dashboards or proposing standing-order language that defines what counts as an “effective hearing” locally.

Who can use it

Judicial officers and court staff can use ULPS as an augment — a board that suggests order of attention without pretending to decide liberty. UTRC members — District Judge chair, prosecution, prison, and legal-services representatives — can use the ranked packet as a shared agenda. Jail Superintendents and prison IT cells can use STAT-479 and NEAR-479 bands to organise applications. Legal Services Authority panels and duty counsel can use NO-HCSC and unrepresented flags to plan superior-court filings where facts justify them. Law students, researchers, and court-administration trainees can use the open repository and synthetic samples to learn the method without touching live identities. Civic-tech builders working under court authorisation can implement the reference Python package or re-implement the rules in their stack, so long as access control and privacy remain non-negotiable.

Who should not treat ULPS as a toy: anyone hoping for an automatic release order, anyone hoping to publish prisoner names for engagement, and anyone hoping to outsource judicial conscience to a score.

How to start without theatre

Begin with a minimum extract: custody flag and start date, trial commenced or not, last effective hearing date, maximum sentence years where known, death-or-life carve-out flag, first-time-offender flag, representation flag, and any HC/SC identifier. Define “effective hearing” in a short standing note — witness examination counts; empty adjournments do not. Run the open ulps rank and ulps analyze tools on a sanitized extract inside the court or prison network. Hand the top band to the court master and UTRC secretary the same morning. Measure LBI monthly. Adjust local definitions in writing when you must; do not silently change thresholds.

The reference implementation and research text live on GitHub and on Zenodo. Prefer the DOI in citations. Prefer the repository for code, issues, and later versions. Prefer human judgment for every individual file.

Takeaways for the education desk

  • Undertrial harm is often an information and sorting problem as much as a statutory gap.
  • Calendar thresholds, BNSS fractions, stagnation, and superior-court silence are different signals — keep them labelled.
  • Tools should feed courts and UTRCs; they should not replace them.
  • Cite the work: doi.org/10.5281/zenodo.21917435.
  • Confirm operative orders, BNSS text, and the facts of any individual case on official sources before acting.

Educational note only. Not legal advice. Not solicitation under Bar Council of India Rules. Nothing on this page creates an advocate–client relationship. Access to the education desk is free; nothing is sold here.

Author: Advocate Adesh Kumar, Delhi High Court · ORCID 0009-0000-7383-1508 · Research & software: Zenodo 21917435 · GitHub ULPS

Educational content only. Not legal advice. Not solicitation under Bar Council of India rules.

← All Articles