Methodology
Parcha publishes claims about real institutions and, rarely, real people. The rules below are versioned with the data; any change to them is itself a public commit.
Inclusion Criteria
Policy version 1.0 — committed before any record. Changes to this policy require a public changelog entry.
What enters the register
An incident qualifies for the register when all of the following hold:
- It concerns a listed examination — a public examination conducted by or for a government body in India: university/professional entrances (NEET, JEE, CUET…), recruitment examinations (UPSC, SSC, IBPS, RRB, State PSCs, police, teacher recruitment…), school board examinations, scholarship and licensing examinations.
- It involves a documented compromise of question paper confidentiality or examination integrity — leak of a question paper before or during the examination, organised solver/impersonation operations, or mass digital compromise of the examination system. (Result-rigging and recruitment-list scams are recorded only where they are part of an examination-integrity case.)
- It is anchored to at least one official trace — a registered FIR, a court order, a gazette notification, an official cancellation notice by the exam body, a parliamentary record, or an RTI reply. Where no FIR exists yet, an official cancellation/postponement notice citing a leak qualifies the incident at status
ALLEGED.
What the rule deliberately ignores
- The party in government, the state, and the identity of the exam body. The rule is mechanical; politics does not enter the gate.
- Severity. A leak affecting one district qualifies exactly like a leak affecting two million candidates. Scale is recorded as data, not used as a filter.
What stays out
- Rumoured leaks with no official trace (logged internally as drafts, never published).
- Generic cheating by individual candidates (copying, single impersonations) with no organised or systemic dimension.
- Allegations made only on social media or only by political parties.
Status on entry
Every incident enters at the furthest documented point of its legal lifecycle (see docs/STATUS_ENUM.md) and at a confidence level assigned mechanically by sourcing tier (see docs/SOURCE_TIERS.md).
Source Tiers & Confidence Levels
Every claim on the register links to a source. Sources are classified mechanically:
Tier 1 — sufficient alone
Court orders and judgments (verified against eCourts/Indian Kanoon by CNR or case number); certified FIR copies (verified against state police portals); chargesheets; gazette notifications; RTI replies bearing a registration number; parliamentary questions and answers; official press releases and notices of the exam body, police, or investigating agency (CBI/ED/STF/SOG/EOU/SIT).
Tier 2 — two independent required
Reports from established news organizations with named reporters. "Independent" means different parent companies and non-identical copy — two outlets running the same agency wire count as one source.
Tier 3 — never sufficient for publication
Single news reports; anonymous-source-only stories; social media; YouTube; claims by coaching institutes; political party statements. Tier 3 material may open an internal draft; it never appears on the public site as fact.
Never acceptable
WhatsApp forwards, Telegram screenshots of "leaked papers", anonymous tips without documents, AI-generated summaries of any of the above.
Confidence levels (assigned mechanically)
| Level | Rule | Display |
|---|---|---|
| A | Every material claim anchored to Tier 1 | Standard |
| B | Core facts Tier 1; peripheral facts (e.g., candidates affected) Tier 2 | Standard |
| C | Core facts established only at Tier 2 | Published with a visible "no primary documents verified yet" banner |
| below C | — | Does not publish |
Archival rule
Every source is archived: news URLs require an archive.org snapshot (archive_url); documents are stored as PDFs in this repository with SHA-256 hashes recorded in the database.
MVP seeding note
The initial corpus is seeded primarily from Tier-2 press documentation of officially confirmed actions (FIRs, cancellation notices, arrests reported by investigating agencies). Incidents whose core facts await Tier-1 registry verification are published at confidence C with the banner, per this policy. Registry verification (eCourts CNR resolution) is the standing first work-queue item.
EventStatus Enum
The lifecycle of every incident maps one-to-one onto stages of India's criminal procedure (CrPC/BNSS). incidents.current_status is a derived cache of the furthest documented point on the docket spine. STALLED is computed (no documented docket movement for 18 months), never asserted editorially.
| Status | Legal meaning | Plain meaning (Hindi gloss) |
|---|---|---|
ALLEGED |
Official cancellation/postponement or credible reporting exists; no FIR traced yet | "Khabar hai, par abhi koi police case nahin" |
FIR_REGISTERED |
FIR under IPC/BNS sections registered; number on record | "Police case shuru ho gaya" |
ARRESTS_MADE |
At least one arrest recorded against the FIR | "Kuchh log pakde gaye" |
CHARGESHEET_FILED |
Police filed final report u/s 173 CrPC / 193 BNSS | "Police ne court ko saboot de diye" |
CLOSURE_REPORT |
Police filed a closure/untraced report | "Police keh rahi hai case band karo" |
COGNIZANCE_TAKEN |
Magistrate took cognizance; the case is now the court's | "Court ne case apne haath mein le liya" |
TRIAL_ONGOING |
Charges framed; evidence stage in progress | "Mukadma chal raha hai" |
CONVICTED |
At least one accused convicted by trial court | "Saza hui" |
ACQUITTED |
All tried accused acquitted | "Sab chhoot gaye" |
DISCHARGED |
Accused discharged pre-trial | "Trial se pehle hi case khatam" |
QUASHED |
High Court quashed the FIR/proceedings u/s 482 CrPC | "Bade court ne case radd kar diya" |
APPEAL_PENDING |
Trial verdict under appeal | "Faisle ke khilaf appeal chal rahi hai" |
STALLED |
Auto-applied: no documented docket movement for 18 months | "18 mahine se kuchh nahin hua" |
Rules
- Per-accused granularity —
incident_actors.legal_statuscarries each person's individual status; the incident-level value is only the furthest point the case has reached. - Terminal vs living —
CONVICTED,ACQUITTED,DISCHARGED,QUASHEDare terminal only after appeal windows close; everything else accrues Stall Clock time. - STALLED is arithmetic — set from
data_quality.last_docket_movementby the build pipeline, with the trigger date displayed.
Naming Policy
Policy version 1.0 — committed before any record.
Parcha records people only as the legal record describes them. This policy is enforced structurally: the database schema and CI gates make a non-compliant actor record unpublishable.
The gate
A person may be named on the register only if all of the following hold:
- The name appears verbatim in an official public document — an FIR, a chargesheet, a court order or judgment, a gazette notification, or an official press release of an investigating agency. News reports alone never justify naming a person, regardless of how many outlets carry the name.
- The record stores
naming_document_source_id— the specific document that names the person. The schema marks this columnNOT NULL; CI blocks publication without it. - The person carries an exact legal status label (
NAMED_IN_FIR,ARRESTED,CHARGESHEETED,CONVICTED,ACQUITTED,DISCHARGED…) with a status date. We never use status words the documents do not support. - Every page naming a person whose status is non-terminal displays: "An accused person is presumed innocent until proven guilty."
Language rules
- Banned vocabulary on all actor and incident records: mastermind, kingpin, scamster, mafia, racketeer, tainted, disgraced and all other adjectives of guilt. The CI linter rejects them.
- We describe roles in neutral occupational terms (
exam_body_official,middleman,solver,candidate). - Departmental actions (suspension, revocation of suspension, transfer, dismissal, retirement during proceedings) are recorded with dates and sources — including reinstatements.
Symmetry rule
Exonerating updates (bail, discharge, acquittal, quashing) are processed at equal or higher priority than incriminating ones. The public correction log is the proof of compliance.
MVP seeding note
In the initial corpus, actor records are seeded only for cases with terminal judicial outcomes documented in published court judgments. All other incidents are published at incident level without named individuals until Tier-1 naming documents are verified per this policy.
Correction & Dispute Policy
Policy version 1.0 — committed before any record.
Principles
- Nothing is ever silently changed. Every correction is appended, dated, and attributed. The Git history of this repository is the public, tamper-evident audit trail.
- Annotation, not deletion. Records found wrong are corrected with a visible correction note. Records removed under a binding court order are replaced by a notice citing the order number and date — which is itself a sourced record.
- Documents beat assertions. A dispute accompanied by an official document (e.g., a discharge order we missed) is a gift and is fast-tracked.
How to dispute a record
- Open an issue using the Dispute a record template in this repository, or email the address on the site footer.
- Identify the page, the specific claim, and (if available) the document that contradicts it.
Our commitments
| Step | Deadline |
|---|---|
| Acknowledgement of dispute | 72 hours |
| Resolution or interim "disputed" annotation on the record | 14 days |
| Court-document-backed corrections (acquittal, discharge, quashing) | 72 hours |
Outcomes
- Record stands — our response is published on the dispute ticket.
- Record corrected — correction note appended to the page and to
CORRECTIONS.md; the old text remains visible in Git history. - Record disputed — while re-verification is in progress, the page displays a dispute banner and
data_quality.open_disputesis incremented.
Legal demands
We comply with binding orders of competent courts by annotating the affected record with the order's number and date. We publish every legal notice we receive. We do not act on informal pressure; informal demands are logged.
The Accountability Gap Index
Every incident is scored 0–7. One point per milestone, and a point is awarded only when the register holds a dated document for it:
| # | Milestone | Rule |
|---|---|---|
| 1 | FIR within 30 days | First FIR_REGISTERED action dated ≤ 30 days after the leak date (or surfaced date when no leak date is documented) |
| 2 | Charge sheet within 180 days | First CHARGESHEET_FILED dated ≤ 180 days after the first FIR |
| 3 | Any conviction | At least one CONVICTED action on the docket |
| 4 | Exam cancelled & fully re-held | A re_exam record with outcome exam_cancelled_full and an execution date |
| 5 | Fee refund documented | fee_refund_documented: true in the economic-loss record |
| 6 | Official permanently removed | A dismissal/removal/dissolution/conviction of an official — suspension alone scores nothing |
| 7 | Reform gazette-notified | A structural reform with a gazette reference — an announcement alone scores nothing |
The score is computed at build time from the structured docket, never hand-entered. A low score is not an editorial judgement; it is an arithmetic description of what the documents do not contain. The national average shown in the hero is the unweighted mean across all published incidents.
Deliberate strictness: suspensions, committees, and announcements — the standard theatre of response — score zero. Only completed, documented accountability scores.
What a leak costs candidates
Where an exam was cancelled, the register estimates the fee burn: candidates × the published examination fee for the cancelled sitting. The workings are printed on every case page that carries a figure — no number appears without its arithmetic.
Rules:
- Figures are labelled estimated wherever any input is an estimate (e.g. blended fee categories).
- The fee used is the published general-category fee from the official notification or information bulletin, cited on the case page.
- Travel, accommodation, coaching extensions and lost earnings are excluded unless a sourced estimate exists — which means every figure shown is a floor, not a ceiling.
- "Fee refund documented" is recorded per case. As of this writing, no incident in this register documents one.
- Where the loss was of a different kind (e.g. court-ordered salary recovery from invalid appointees), the case page says so in words instead of forcing a fee figure.
The parliamentary record
The /parliament page lists Parliamentary Questions about exam leaks only when the official answer document on
sansad.in has been verified and archived. It is a growing directory, not a census; the headline percentages
describe the verified set.
Each answer is classified:
- Substantive — confirms the facts and identifies responsibility or concrete remedial action.
- Partial — confirms facts (cases, agencies, committees) but assigns no responsibility.
- Deflection — answers a different question, typically by pointing to state jurisdiction.
- Denial — asserts that no incident occurred. Where the register holds documents contradicting the assertion's scope, the listing says so.
The question's asker, house, number and date come from the answer PDF itself. Nothing is paraphrased without the document being linked and archived alongside.
Repeat-network edge rules
The /gangs page connects incidents only where the connection itself is documented:
- An edge between two incidents requires a charge sheet, remand record, or named police case file stating that the same person or circuit served both. Press speculation about "links" draws no edge.
- The anchor node of each network is described by role and case record, never by name — the register's naming policy applies with full force here, even where the press has published names freely. A name would appear only behind a tier-1 court or official document, and on the case page, not the network graph.
- Interstate scope is recorded from the investigating agency's own description of the network's operations.
- Networks are deliberately under-drawn. Absence of an edge means absence of a document, not absence of a connection.
After the suspension
Suspension is the system's loudest and cheapest response — and where most reporting stops. The "After the suspension" block on case pages tracks what the record says happened next to suspended or implicated officials:
- Recorded events: reinstated, transferred, promoted, retired in service, dismissed/removed, termination pending, suspension continuing with no dismissal recorded, no departmental action recorded.
- Every entry cites the order, court record, or official statement it rests on. Where the trail simply goes silent, the entry says that — silence after suspension is itself a finding.
- The ⚑ flag marks an official who returned to, or never left, the ministry or body whose examination leaked.
- Officials are recorded at position level. Personal names obey the same naming gate as everywhere else in the register.
The same evidentiary rules govern the investigation trail: every SIT, inquiry committee or special probe announced for a case is listed with its formation date and the status of its report. Where a report has never been made public, a counter shows the days elapsed — those clocks run until the document appears.