Vichara: Appellate Judgment Prediction and Explanation for the Indian Judicial System
Organizations: TCS Research
Abstract
In jurisdictions like India, where courts face an extensive backlog of cases, artificial intelligence offers transformative potential for legal judgment prediction. A critical subset of this backlog comprises appellate cases, which are formal decisions issued by higher courts reviewing the rulings of lower courts. To this end, we present Vichara, a novel framework tailored to the Indian judicial system that predicts and explains appellate judgments. Vichara processes English-language appellate case proceeding documents and decomposes them into decision points. Decision points are discrete legal determinations that encapsulate the legal issue, deciding authority, outcome, reasoning, and temporal context. The structured representation isolates the core determinations and their context, enabling accurate predictions and interpretable explanations. Vichara's explanations follow a structured format inspired by the IRAC (Issue-Rule-Application-Conclusion) framework and adapted for Indian legal reasoning. This enhances interpretability, allowing legal professionals to assess the soundness of predictions efficiently. We evaluate Vichara on two datasets, PredEx and the expert-annotated subset of the Indian Legal Documents Corpus (ILDC_expert), using four large language models: GPT-4o mini, Llama-3.1-8B, Mistral-7B, and Qwen2.5-7B. Vichara surpasses existing judgment prediction benchmarks on both datasets, with GPT-4o mini achieving the highest performance (F1: 81.5 on PredEx, 80.3 on ILDC_expert), followed by Llama-3.1-8B. Human evaluation of the generated explanations across Clarity, Linking, and Usefulness metrics highlights GPT-4o mini's superior interpretability.
Figures & tables
| Model | PredEx | ILDC_expert | ||||||
|---|---|---|---|---|---|---|---|---|
| Accuracy | Macro Precision | Macro Recall | Macro F1 | Accuracy | Macro Precision | Macro Recall | Macro F1 | |
| GPT-4o mini | 81.62 ± 0.41 | 81.57 ± 0.43 | 81.45 ± 0.40 | 81.50 ± 0.42 | 80.36 ± 0.37 | 81.25 ± 0.34 | 80.65 ± 0.36 | 80.30 ± 0.35 |
| Llama-3.1-8B | 76.93 ± 0.49 | 76.75 ± 0.51 | 76.60 ± 0.48 | 76.66 ± 0.50 | 78.57 ± 0.42 | 78.71 ± 0.40 | 78.42 ± 0.39 | 78.46 ± 0.41 |
| Mistral-7B | 69.41 ± 0.55 | 69.21 ± 0.53 | 69.00 ± 0.52 | 69.04 ± 0.54 | 75.00 ± 0.46 | 75.48 ± 0.44 | 75.22 ± 0.43 | 74.97 ± 0.45 |
| Qwen2.5-7B | 71.73 ± 0.50 | 70.06 ± 0.52 | 71.97 ± 0.48 | 72.10 ± 0.51 | 76.79 ± 0.44 | 78.48 ± 0.42 | 77.20 ± 0.45 | 76.60 ± 0.43 |
| INLegalLlama ( Nigam et al. 2025 ) | 76.05 | 76.23 | 76.05 | 76.01 | 72.23 | 73.01 | 72.23 | 71.98 |
| Clarity | Linking | Usefulness | |
|---|---|---|---|
| GPT-4o mini | 4.57 ± 0.22 | 4.96 ± 0.21 | 4.37 ± 0.18 |
| Llama-3.1-8B | 3.43 ± 0.30 | 3.77 ± 0.25 | 3.29 ± 0.28 |
| Mistral-7B | 4.11 ± 0.27 | 4.44 ± 0.22 | 3.85 ± 0.24 |
| Qwen2.5-7B | 3.44 ± 0.26 | 3.29 ± 0.31 | 3.33 ± 0.29 |
| Models | Lexical Based Evaluation (%) | Semantic Evaluation (%) | ||||||
|---|---|---|---|---|---|---|---|---|
| Rouge-1 | Rouge-2 | Rouge-L | BLEU | METEOR | BERTScore(F1) | BLANC | ||
| PredEx | ||||||||
| GPT-4o mini | 38.60 ± 0.42 | 14.52 ± 0.33 | 19.35 ± 0.29 | 3.24 ± 0.15 | 21.87 ± 0.31 | 82.79 ± 0.38 | 13.48 ± 0.21 | |
| Llama-3.1-8B | 32.14 ± 0.40 | 14.10 ± 0.30 | 17.49 ± 0.25 | 3.06 ± 0.12 | 19.06 ± 0.28 | 81.55 ± 0.36 | 12.44 ± 0.20 | |
| Mistral-7B | 35.75 ± 0.41 | 15.53 ± 0.32 | 18.80 ± 0.27 | 2.74 ± 0.13 | 20.61 ± 0.30 | 82.90 ± 0.37 | 13.41 ± 0.22 | |
| Qwen2.5-7B | 38.70 ± 0.43 | 15.80 ± 0.34 | 19.49 ± 0.30 | 7.06 ± 0.25 | 23.77 ± 0.35 | 81.66 ± 0.38 | 13.59 ± 0.23 | |
| Configuration | Accuracy | Macro F1 | Clarity | Linking | Usefulness |
|---|---|---|---|---|---|
| Full Vichara (All Stages) | 80.36 0.37 | 81.25 0.34 | 4.57 0.22 | 4.96 0.21 | 4.37 0.18 |
| Without Rhetorical Role Classification | 79.12 0.45 | 78.85 0.41 | 4.32 0.28 | 4.66 0.24 | 4.21 0.25 |
| Without Case Context Construction | 77.84 0.52 | 77.40 0.47 | 4.21 0.31 | 4.55 0.26 | 4.18 0.20 |
| Without Decision Point Extraction | 71.65 0.61 | 70.92 0.57 | 3.80 0.35 | 4.10 0.28 | 3.95 0.33 |
| Without Present Court Ruling Generation | 73.22 0.54 | 72.86 0.49 | 3.95 0.30 | 4.20 0.27 | 4.00 0.29 |
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
| Step | Prompt |
|---|---|
| Case Context Construction | You are a legal assistant helping summarize appeal case details. Given the following facts from an appeal case document, extract the following information about the current appeal only: 1. Appellants – the persons or entities filing the current appeal. If their name is not mentioned, write what they are referred to as in the text (e.g., "the petitioner", "the appellant"). 2. Respondents – the persons or entities against whom the current appeal is filed. If their name is not mentioned, write what they are referred to as in the text (e.g., "respondent 1", "the respondent-Management"). 3. Issue – the main legal or factual issue being disputed in the current appeal. 4. Appellant’s Stance (in the current appeal) – clearly state what the appellant is arguing for or seeking in the present appeal. 5. Respondent’s Stance (in the current appeal) – clearly state what the respondent is arguing for or seeking in the present appeal. 6. Present Court – the court deciding the present appeal (e.g., Supreme Court of India, High Court of Bombay). ### Important instructions: - Do NOT assume the appellant is the party introduced first. Carefully check who has filed the current appeal. - Do NOT summarize or include opinions or findings of lower courts unless those are being specifically challenged in this appeal. - Focus on the actual parties to the legal dispute. - Do NOT invent names or facts. If something is not mentioned, leave it as an empty string. - Use only the output format specified below. ### Output Format: {{ "appellants": "<name or description of appellant>", "respondents": "<name or description of respondent>", "issue": "<brief summary of the legal/factual issue>", "appellant_stance": "<stance of the appellant>", "respondent_stance": "<stance of the respondent>", "present_court": "<name of the court currently deciding the appeal>" }} ### Facts: <{facts}> |
| Decision Point Extraction | You are a legal assistant tasked with extracting all decision points from an excerpt of a court case proceeding. Decision points are discrete legal determinations made at different stages throughout the case. Given the following text and the present court, extract all identifiable decision points and output them in strict JSON format as a list of objects. Each decision point object should include: - "issue": the legal issue or question being addressed - "decision_maker": the court or authority that made the decision (e.g., Supreme Court, Trial Court, High Court) - "outcome": the result or resolution of the issue - "time": (optional) the date or timeframe of the decision if mentioned - "reasoning": (optional) summary of the Court’s reasoning, including references to statutes, arguments, facts, or precedents - "present_court_decision": true if the "decision_maker" is the same as the present court provided, otherwise false ### Important instructions: - Do not include any extra text or explanation. - Do not assume or hallucinate decision makers. - Do NOT include triple backticks (“‘). ### Output Format: [{ "issue": "<string>", "decision_maker": "<string>", "outcome": "<string>", "time": "<string or null>", "reasoning": "<string or null>", "present_court_decision": <true or false> }] ### Input: Present Court: "<{present_court}>" Text: <{group_text}> |
| Step | Prompt |
| Present Court Ruling Generation | Your goal is to identify the final ruling of the present court in this appeal — that is, what the present court ultimately decided and ordered. ### Case Context: Below is the context of the case, which clearly identifies: - Who the appellant is (the party who filed the appeal) - Who the respondent is (the party defending against the appeal) - What the main issue of the appeal is. - Appellant’s Stance (in the current appeal) – What the appellant is arguing for or seeking in the present appeal - Respondent’s Stance (in the current appeal) – What the respondent is arguing for or seeking in the present appeal Please pay close attention to this information, it overrides any assumptions you might make from the decision points. If the appellants, respondents or the issue of the appeal are not mentioned in the context, ONLY then infer these from the decision points. <{context}> — ### Decision Points: Decision points are key legal determinations made at different stages throughout the case. The below decision points collectively summarize the key determinations the present court made throughout the case. <{present_court_points}> — ### Final Statements from the Present Court: This section contains the last official statements or conclusions made by the present court in this appeal. These are the most authoritative and conclusive indication of the court’s final position and must be treated as such. <{final_statement}> — ### Your Task: 1. Provide a comprehensive explanation of the final ruling, including: - Specific reliefs granted or denied - Any orders or directions issued - The court’s reasoning and key factors considered - Relevant timelines or compliance expectations 2. Focus on the decision points to determine what the present court considered during this appeal. 3. Use the Final Statements from the Present Court to determine what the court ultimately ruled. — ### Important: - Do not confuse appellants and respondents. Use the parties as stated in the case context. - Respond clearly and concisely. - Do NOT state whether the appeal was granted or dismissed. Your response should only describe the final ruling of the present court. — ### Output Format: Final Ruling: <Provide a detailed and comprehensive explanation of the present court’s final decision in the appeal.> |
| Step | Prompt |
|---|---|
| Judgment Prediction | You are a legal assistant helping to analyze the outcome of an appeal. Your task is to determine whether the present court’s final ruling aligns with what the appellant was seeking in this appeal. ### Case Context: The context below includes: - Appellants: The appellant (party who filed the appeal) - Respondents: The respondent (party defending the appeal) - Issue: The main issue - Appellant’s Stance: What the appellant is seeking in the current appeal - Respondent’s Stance: What the respondent is seeking in the current appeal - Present Court: The court deciding the present appeal. <{context}> — ### Final Court Ruling: <{court_ruling}> — ### Your Task: - If the court fully or partially granted what the appellant was seeking, output: ‘Prediction: 1‘ - If the court did not grant what the appellant was seeking, output: ‘Prediction: 0‘ — ### Output Format: Prediction: <0 or 1> |
| Structured Explanation Generation | You are a legal assistant. Your task is to generate a structured legal explanation for the court’s predicted decision in this appeal case. You are given: - The case context including appellant, respondent, issue, stances, and the court deciding the appeal - The final court ruling from the present court - A set of decision points extracted from the case. A decision point refers to a key moment in the case where a specific issue was considered, a responsible authority or decision-maker evaluated it, and a determination or outcome was reached. - The predicted outcome of the appeal Generate a structured explanation with the following sections: — Facts of the Case: [A brief summary of the background, parties involved, and what led to the appeal.] Legal Issue(s) Presented: [The legal question(s) the court had to decide.] Applicable Law and Precedents: [Key statutes, constitutional provisions, or case law relied on.] Analysis / Reasoning: [A logical application of law to facts, showing why the court ruled the way it did.] Predicted Conclusion: [Restate the predicted outcome using legal terminology (e.g., ’Appeal Allowed’ or ’Dismissed’).] — ### Case Context: <{context}> ### Final Court Ruling: <{court_ruling}> ### Decision Points: <{decision_points_text}> ### Predicted Outcome: <{predicted_outcome}> |
Legal Judgment Prediction
Legal judgment prediction uses computational models to forecast court outcomes from case facts, legal arguments, statutes, and precedents.
See all 28 papers