The mathematics, in full
Every formula the pages use, in the order the model runs them, each followed by a worked example at the current scenario. Nothing is fitted; every constant is on the Assumptions page.
Scenarios
Test
Share
Inputs are set on the Simulator page. This page reads the current scenario; the scenario buttons above switch presets here too.
1. Pricing the sentence
Everything starts from a number the accused can compute in advance.
Final Score = 5 + aggravating − mitigating, kept in [0, 10]
band(Final Score): 0–2 → Q1, (2, 4] → Q2, (4, 6] → Q3, (6, 8] → Q4, (8, 10] → Q5
S₀ = min + (max − min) × position(band), with position = 0.10, 0.30, 0.50, 0.70, 0.90
Rules 5–7 for the score, Rule 9 for the band, Rule 8 for the range (no minimum means zero; life deemed 20 years). The band midpoint stands in for the band range.
S_plea = min( S₀ × (1 − r_stage), ceiling_stage ), r = ⅓, ¼, ⅒ by stage
ceiling_stage = min( A3 fraction × max, s.293 fraction ) (A3: ¼ max at Stage 1, ½ at Stage 2; s.293: ⅙ max or ¼ min for a first offender)
if Final Score > 8: S_plea = S₀ (Item B3)
Rule 13(2) gives the reduction; Item A3 the ceiling; the enacted s.293 fraction is never exceeded. Without the Guidelines, S_plea is the s.293 fraction of an unknown S₀.
S_agg = sentence( Final Score + B2 points ) only when a false denial is judicially recorded
A plea of not guilty adds nothing; that is the bright line between an aggravator and the right of defence.
2. The accused's decision
Costs are in effective years of imprisonment so that prison, stigma, legal cost and waiting can be added. The accused picks the cheaper side.
Plead = max(0, S_plea − served) + K′
Contest = δT · p · ( max(0, S − served − custody_ahead) + K ) + c_L + custody_ahead
custody_ahead = min( T, s.479 threshold − served ) for an undertrial, 0 on bail or after the Item V1 release
For a guilty accused p = p_G and S = S_agg; for an innocent accused p = p_I and S = S₀. K′ = 0 under a stigma-free disposition. Custody served is set off under s.468 and counted once. The summary perjury term, if the advanced switch is on, is added undiscounted.
appeal weight = (1 − a·q_a) · [ (1 − a) + a·( σ·δT_a + (1 − σ) ) ]
Contest = δT · appeal weight · p · (…) + c_L + p·a·c_a + custody_ahead
a is the share of convictions appealed, q_a the share of appeals that succeed (1.5× for the innocent, capped), T_a the appeal duration, σ the share of sentences suspended pending appeal (s.430). A plea judgment is not appealable (s.297), so the plea side carries no appeal term. Appeals lengthen the delay and lower the expected punishment, both in delay's favour.
trial penalty = S₀ / S_plea; with the aggravator, S_agg / S_plea
Reported on the Simulator and the audit. Moderate up to 2×, high to 4×, severe beyond; the laboratory result (Dervan and Edkins 2013) is that more than half of innocent participants accepted a deal when the alternative was a larger uncertain penalty.
IC_G: Plead_G < Contest_G IR_I: Contest_I < Plead_I, on bail and in custody
The first says the guilty prefer truth; the second says the innocent never gain by pleading. Both must hold at once for a separating equilibrium.
δ_i = δ ± 0.07, p_i = p ± 0.15, K_i = K × [0.5, 1.5], 60 low-discrepancy draws per segment
plea rate = Σ_segments w_seg × share_seg(plead) × availability, availability = eligible × awareness × (1 − hold-out)
segments: guilty/innocent × bail/custody, with weights g(1−u), g·u, (1−g)(1−u), (1−g)·u
The plea rate is a share of a heterogeneous population, not a logistic curve: no slope or offset is fitted. Truthful pleas come from the guilty segments; coerced pleas from the innocent ones.
3. The complainant, and the conviction probability that follows
persist(T) iff p_base · (V + comp) · δT ≥ c_A · T + compromise
s(T) = share of complainants (V_i, c_A,i drawn in [0.3, 1.7] × value) who persist
h(T) = hostile share of present witnesses = 50% if a bribe or threat works at wait T, else 5%
p_G(T) = p_base × [ s(1 − h) + (1 − s)·ρ + s·h·ρ ], ρ = share provable from the record (0.8 with E2, 0.1 without)
The same bribe test as the witness module: willingness to pay δT·Δp·(S_agg + K) against q_W·F plus a reservation; a threat works when its effective harm exceeds q_W·F. A witness on the manual setting bypasses all of this.
Funnel per 10,000 FIRs: charge-sheeted = c · 10,000; pleas = r · cs; contested = cs − pleas
withdrawn = contested · (1 − s)(1 − ρ); tried = contested − withdrawn; convicted = p_base · [ (1 − h)·s + (1 − s)·ρ + h·s·ρ ] · contested
4. Witnesses and conspirators
bribe clears iff δT · Δp_G · (S_agg + K) ≥ q_W · F + reservation; threat works iff threat × (1 − protection) > q_W · F
Δp_G is 0.45 when the recorded statement is lost and 0.05 when it stands as evidence (Item E2). q_W·F is zero until Items F1–F6 exist, and is not discounted because the summary trial is swift.
silence = δT · p_sil · (S₀ + K); cooperate at position i = δT · [ (1 − c_i)·S₀ + K·1(c_i < 1) ] + detention_i
hold-out = δT · p_test · ( sentence(score + C2 points) + K ); silence is stable iff cooperate₁ ≥ silence
Detention is the s.343(4) custody of an approver (zero under Item D4); the kingpin's credit is capped under Item R3. Credits run c₁ > c₂ > c₃, so the ladder is a race.
5. The docket
Trial duration is an output. Each year the court works through queues measured in trial-equivalents.
C = capacity × N trial-equivalents per year; T_fresh = 0.5 + queue_fresh / C_fresh; T_legacy = 0.5 + stock_legacy / (C_legacy + spare)
r = plea rate at T_fresh, s = s(T_fresh); contested = N(1 − r); withdrawn = contested(1 − s)(1 − ρ); to trial = contested − withdrawn
queue_fresh += to trial + pleas·H_plea/H + inquiries·H_inq/H + withdrawn·H_wd/H; inquiries = to trial · α(1 − λ), capped by Item R5
stock_legacy −= exits + pleas_legacy + disposals, exits = stock × [1 − s(T_legacy)1/T_legacy] × (1 − ρ_legacy), ρ_legacy = 0.1
Two-track: a share of C is reserved for fresh filings and the remainder, plus whatever the fresh list does not use, goes to the legacy stock; unused legacy capacity returns to the fresh list. Single queue: capacity is shared in proportion to what is waiting. Legacy cases predate audio-video recording, so the record rarely survives their witnesses.
clearance rate = (pleas + withdrawn + fresh trial disposals) / N; hours saved = 1 − hours used / (N · H)
5b. Prisons and money
undertrial beds = u·N·[ r·t_plea + (1 − r)·custody_ahead ]
plea beds = pleas · S_plea · served · (1 − ν·1[S_plea ≤ ν_max]) · 1[band > presumption]; trial beds = convictions_trial · S_agg · served · (1 − ν·1[S_agg ≤ ν_max]) · 1[band_agg > presumption]
K′ = 0 under V5; = ρ_nc · K when the first-offender presumption covers the band; = K otherwise
convictions_trial = contested · [ g·effective·p_base + (1 − g)·p_I ] · (1 − a·q_a)
cost = beds × rupees per inmate-year + N · hours per case × rupees per judicial hour
Bed-years per year in steady state equal beds. ν is the share of short sentences served non-custodially and ν_max the ceiling below which that applies. Rates are placeholders for the State's budget figures.
6. Break-even, bounds and calibration
p_G* = min p such that Contest_G(p, T) > Plead_G; T* = max T such that Contest_G(p_G, T) > Plead_G (bisection, median accused)
range = [ plea rate at every assumed constant shifted by its half-range against the result, … shifted in favour ]
fingerprint = FNV-1a hash of the full input set, 8 hex characters
Calibration is a check, not a fit: the status-quo scenario is run with no target and compared with the observed 0.11% plea rate, the 89% clearance rate and NCRB conviction rates on the Assumptions page.