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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions