Skip to content

Project: [Enterprise Agents] - [TaxMind] #161

Description

@arorarajat9

Track

Enterprise Agents (M365 Agents Toolkit)

Project Name

TaxMind

GitHub Username

@arorarajat9

Repository URL

https://github.com/arorarajat9/taxmind

Project Description

TaxMind helps Indian small businesses (kirana / retail stores) with GST filing — a task that normally costs days of manual Excel reconciliation and ₹2,000–5,000 per month in CA fees.

Upload a sales register, purchase register, and GSTR-2A and TaxMind:

  1. Ingests messy Excel — misaligned columns, mixed date formats, Hindi or English headers — and maps it onto a GST business ontology.
  2. Reconciles purchases against GSTR-2A (matched / mismatched / missing) and computes ITC at risk.
  3. Flags blocked ITC under Section 17(5) — and every flag carries the exact cited GST Act section + snippet retrieved from a knowledge base (e.g. catering → 17(5)(b)(i), construction → 17(5)(d)). No citation, no assertion; low confidence → "consult a CA".
  4. Detects anomalies — duplicates, missing/invalid GSTINs, future-dated invoices.
  5. Generates GSTR-1 & GSTR-3B summaries plus a filing-ready Excel workbook.
  6. Keeps a human in the loop — it prepares filings, never auto-submits to GSTN. Every decision lands in a cited audit trail.

How the Microsoft IQ stack is the hero:

  • Foundry IQ (Azure AI Search agentic retrieval) grounds every compliance flag in the cited GST Act text.
  • A Fabric IQ–style typed ontology lets the agent reason in GST language (ITCClaim, TaxLiability, Invoice, Supplier) instead of raw columns.
  • The Microsoft Agent Framework orchestrates four specialist agents: reconcile → ITC eligibility → anomaly → return generation.

Built with a provider abstraction: runs fully offline in local mode (bundled public GST Act text) for reproducible evaluation, and upgrades to live Azure / Foundry IQ via a single .env with zero code changes.

All demo data is synthetic; only public GST Act / CBIC material is used.

Demo Video or Screenshots

Dashboard screenshot: https://github.com/arorarajat9/taxmind/blob/main/demo/assets/dashboard.png
Walkthrough: https://github.com/arorarajat9/taxmind/blob/main/demo/walkthrough.md
Demo video script: https://github.com/arorarajat9/taxmind/blob/main/demo/video-script.md

Primary Programming Language

Python

Key Technologies Used

  • Microsoft Agent Framework (multi-agent orchestration: reconcile → ITC eligibility → anomaly → return generation)
  • Foundry IQ / Azure AI Search (agentic retrieval — grounds every flag in cited GST Act text)
  • Fabric IQ–style typed ontology (Invoice, Supplier, PurchaseEntry, ITCClaim, TaxLiability via pydantic)
  • Azure OpenAI (GPT-4o) for LLM-assisted column mapping (with deterministic rule-based fallback)
  • FastAPI backend, Next.js 14 + Tailwind + Recharts frontend
  • pandas / openpyxl for messy-Excel ingestion; Azure Blob Storage for knowledge sources
  • GitHub Copilot in VS Code

Submission Type

Individual

Team Members

No response

Submission Requirements

  • My project meets the track-specific challenge requirements
  • My repository includes a comprehensive README.md with setup instructions
  • My code does not contain hardcoded API keys or secrets
  • I have included demo materials (video or screenshots)
  • My project is my own work with proper attribution for any third-party code
  • I agree to the Code of Conduct
  • I have read and agree to the Disclaimer
  • My submission does NOT contain any confidential, proprietary, or sensitive information
  • I confirm I have the rights to submit this content and grant the necessary licenses

Quick Setup Summary

TaxMind runs fully on localhost — no Azure account, no API keys required.

Prerequisites: Python 3.11+ and Node.js 18+

make setup # one-time: Python venv + deps, frontend deps, and synthetic kirana demo data
make demo # runs the full pipeline in the terminal — reconciliation, cited
# Section 17(5) blocked-ITC flags, GSTR-1/3B summaries, and a
# filing-ready Excel workbook written to ./output/
make dev # starts FastAPI backend + Next.js dashboard together → http://localhost:3000
make test # acceptance test suite

No make? See the manual steps in README.md (pip install -r requirements.txt → generate data → run pipeline).

Optional Azure / Foundry IQ upgrade: copy .env.example to .env, fill in your Azure
OpenAI + AI Search + Foundry IQ values, and the app auto-detects and switches to
live Foundry IQ agentic retrieval — zero code changes. Full instructions in README.md
and docs/azure-setup.md.

Technical Highlights

  • Grounded compliance, not guesses: every blocked-ITC flag carries the exact cited GST Act section + snippet retrieved from Foundry IQ (e.g. catering → 17(5)(b)(i), construction → 17(5)(d)). When retrieval confidence is low, the agent says "not certain — consult a CA" instead of hallucinating a rule.
  • Provider abstraction: one interface, two backends auto-selected from .env. Local mode (bundled public GST Act + deterministic reasoning) makes the demo reproducible with zero keys; Azure mode swaps in real Foundry IQ + Azure OpenAI with no code changes. The same cited {section, snippet, source} shape flows through either path.
  • Reasons in GST language via a Fabric IQ–style typed ontology (ITCClaim, TaxLiability) rather than raw spreadsheet columns.
  • Robust messy-Excel ingestion: header-row detection, mixed date formats, Hindi/English headers, NaN-safe GSTIN handling so blank GSTINs don't misclassify B2C sales as B2B.
  • Human-in-the-loop by design: prepares filings + a cited audit trail, never auto-submits to GSTN.

Challenges & Learnings

  • Grounding over fluency: the hard part wasn't generating answers but refusing to assert anything without a citation, and degrading gracefully (fall back to "consult a CA") when retrieval confidence is low.
  • Building for two runtimes: designing a single interface that runs identically offline (for reproducible evaluation) and on live Azure / Foundry IQ taught me a lot about clean provider abstraction.
  • GST domain nuance: e.g. food/catering is blocked under 17(5) but resale food inventory keeps its ITC — encoding that distinction correctly mattered for real-world accuracy.
  • Real Excel is hostile: misaligned columns, mixed locales, and NaN values required defensive parsing to avoid silent misclassification.

Contact Information

rajatarora9645@gmail.com

Country/Region

India

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions