How many test questions had at least one accepted provision within the first K retrieved passages. Here, 20 of 20 target provisions appeared in the top six.
A clearer view of the law
A clearer view of Indian tax law.
Ask a question to find relevant provisions and receive an answer grounded in the law.
A few places to start
Document understanding
A clearer view of your document.
Upload a tax document to extract its text, prepare a concise summary, identify financial details, and retrieve relevant provisions from the tax-law corpus.
Private workspace
Sign in to analyze a document
Your files and summaries are associated with your account. The application keeps uploaded file contents in temporary storage only. Account access and saved summaries require PostgreSQL to be running with the project migrations applied.
Secure upload
Choose a document to analyze
The existing NLP pipeline extracts text, summarizes it, identifies entities, and queries the tax-law RAG system for detected deduction sections. PDF, TXT, MD, or CSV · up to 20 MB.
Document summary
Extracted from document
Key details
Retrieved from tax law
Related provisions
Summaries and extracted entities describe the uploaded document. Tax insights come from the indexed law corpus and may be marked insufficiently grounded when retrieved provisions do not support an answer.
The people behind the work
Meet our team.
Fiduciary Lens is a course project built by Group 11 for Natural Language Processing.
Course faculty
Faculty guide
Group 11
Team members
Measured, with context
How the system was evaluated.
Measured on the current indexed corpus
Tax-law retrieval benchmark
This benchmark checks whether the hybrid search returns relevant statutory provisions near the top of its results. It evaluates the retriever and its grounding threshold together; it does not call the answer-generation LLM.
How to read these measures
Rewards finding an accepted provision early: each question contributes 1 ÷ its first correct rank, or zero when none appears. The mean here is 0.917.
The proportion of five unrelated control prompts rejected by the embedding cosine grounding threshold. This small control set is not a comprehensive safety or domain-classification test.
Component-by-component results
Models and pipeline methods
The cards identify each model or algorithm used in retrieval, answer generation, and document analysis. A measured score is shown only where the repository has a reproducible evaluation. “Not benchmarked” means no valid performance score is available; it does not mean zero performance.
Scoring logic checks · no live model calls
LLM evaluation harness
Five automated tests exercise the answer-scoring functions with fixed examples and a mocked provider response. The tests confirm that the checks behave as coded; they are not five successful live LLM answers and do not benchmark the configured OpenRouter model.
Measures token overlap between answer sentences and retrieved excerpts. The harness expects at least 0.70; this lexical heuristic is not a semantic fact-checker.
Measures overlap between non-stopword question terms and answer terms. The harness expects at least 0.50; it does not judge correctness.
Checks expected citation text in the answer or source labels, plus simple refusal/disclaimer markers. These are rule checks, not legal validation.
Source-level explainability
Why these provisions were retrieved
Expand “Why this source ranked” on a cited source in chat or document insights to inspect its score breakdown. The breakdown comes from the actual search candidate pool for that request.
This is a transparent decomposition of the existing retrieval score, not SHAP or LIME and not an explanation of the language model’s internal reasoning. The full method, equations, and limitations are documented in Model Evaluation and XAI.
Read the results in context