EasyRecon: Offline GST Reconciliation Tool for Chartered AccountantsRecord inserted or updated successfully.
AI & Accounting

EasyRecon: Offline GST Reconciliation Tool for Chartered Accountants

Author : CA Ashwini Hegde

Watch on Youtube

1. Problem Statement

Reconciliation of GSTR-2A, GSTR-2B, and the purchase register is traditionally a manual, time-consuming, and error-prone task. Chartered Accountants and finance teams often struggle with inconsistent data formats, bulk entries, and tracking eligible ITC. This results in inefficiency, compliance risks, and financial discrepancies.

2. Development

To address the pressing challenges faced by Chartered Accountants in the manual reconciliation of GST data, a Python-based desktop application named EasyRecon was conceptualized and developed. This tool was built specifically with CA workflows in mind, combining domain knowledge with technological efficiency.

EasyRecon is an intuitive, offline solution designed to:

- Eliminate manual data cleaning and matching

- Standardize formats from GSTN downloads and client purchase registers

- Automate reconciliation using intelligent logic

- Deliver results in real-time through a sleek, user-friendly GUI

The tool leverages powerful Python libraries like pandas for data processing, customtkinter for GUI design, and openpyxl for seamless Excel export. It is fully packaged into a `.exe` file for offline use using PyInstaller, ensuring maximum data privacy and portability.

With the motto "Built by a CA, for CAs," the tool reflects real-world problem-solving for faster, more accurate GST compliance.

3. Tool Startup Interface


Figure 1: Welcome screen of EasyRecon – a simple, intuitive GUI for GST Reconciliation.

The tool opens with a sleek interface offering options to clean files, reconcile 2A vs 2B, compare with purchase register, and perform cross verification. A green call-to-action button makes it easy to launch the main reconciliation interface.

4. Present Capabilities of the Tool

- Offline desktop application built using Python and CustomTkinter

- Accepts GSTR-2A, GSTR-2B, and Purchase Register (Excel format)

- Cleans each file to standardize headers and structure

- Matches invoices based on GSTIN and Invoice Number

- Assigns status: Matched, Mismatched (value), or Missing

- Outputs Excel reports with:

 - Cleaned tabs (2A, 2B, Books)

 - Reconciliation sheet with status

 - Summary tab with totals and charts

5. Screenshot of the Reconciliation Tool Interface




Figure 2: Screenshot of the EasyRecon interface showing tabbed layout for file cleaning, 2A vs 2B reconciliation, and cross-verification.

The interface uses tabbed navigation, enabling users to move from file cleaning to reconciliation steps with ease. Each step includes specific buttons to process input files.

6. Reconciliation Function – Python Code Snippet


def reconcile_invoices(df_2a, df_2b):

   df_2a["key"] = df_2a["GSTIN"].str.strip() + "_" + df_2a["Invoice Number"].str.strip()

   df_2b["key"] = df_2b["GSTIN"].str.strip() + "_" + df_2b["Invoice Number"].str.strip()

   merged = df_2b.merge(df_2a, on="key", how="left", suffixes=("_2b", "_2a"))

   def get_status(row):

       if pd.isna(row["Invoice Value_2a"]):

           return "Missing in 2A"

       elif abs(row["Invoice Value_2a"] - row["Invoice Value_2b"]) > 1:

           return "Mismatch in Value"

       else:

           return "Matched"

   merged["Match Status"] = merged.apply(get_status, axis=1)

   return merged

7. GUI Code Snippet (CustomTkinter Frontend)


import customtkinter as ctk

app = ctk.CTk()

app.title("EasyRecon – Your Struggle Ends Here!")

ctk.CTkLabel(app, text="EasyRecon – GST Reconciliation Made Effortless", font=("Arial", 20, "bold")).pack(pady=10)

ctk.CTkLabel(app, text="Built by a CA, for CAs – CA Ashwini Hegde", font=("Arial", 14)).pack()

ctk.CTkLabel(app, text="✓ Clean GSTR-2A / 2B  ✓ Reconcile Effortlessly  ✓ Spot Mismatches Instantly", font=("Arial", 12)).pack(pady=5)

ctk.CTkButton(app, text="🚀 Launch GST Tool", fg_color="green", command=launch_tool).pack(pady=20)

app.mainloop()

8. Future Scope

- AI-assisted Matching for fuzzy data

- Auto-email of reconciliation summaries

- Cloud dashboard for multi-client use

- ERP integration (Tally, Zoho, Busy)

- GSTN API validation support

- Built-in analytics with compliance alerts

8A. Challenges Faced During Development

- Data format variability across clients

- Matching tolerance logic implementation

- `.exe` packaging with full stability

- Simple yet efficient UI creation using CustomTkinter

8B. Visual Roadmap of Tool Evolution


Current Features:

- GSTR-2A & 2B Cleaning

- Purchase Register Cleaning

- 2A vs 2B Matching

- Books vs GST Reconciliation

- Excel Output with Statuses & Summary Charts

Next in Line:

- AI-based Fuzzy Matching

- Auto Email of Reconciliations

- ERP (Tally/Zoho) Integration

Future Vision:

- GSTN API Validation

- Client/Branch Login on Cloud

- Predictive Compliance Dashboard with Alerts

9. Conclusion

This tool has been designed to support Chartered Accountants in reducing manual work and improving compliance accuracy. With a clean interface and robust backend logic, EasyRecon empowers professionals to complete GST reconciliations faster and more reliably. It stands as a testament to how automation can enhance traditional finance functions.

It is built by a CA, for CAs – with the goal of simplifying GST compliance through practical, offline, and intuitive automation.