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.