Skip to main content

Core Components

Provides an interactive, step-by-step user interface. Users select their company, define filters, and upload files.Supports two modes:
  • Single Processing Mode — processes one company’s inputs for a specific location
  • State Consolidation Mode — merges multiple locations/companies for a state into a single sheet, with Document Summaries (e.g. cancelled invoice counts)
Instead of hardcoded rules, each company (e.g. Britannia, Godrej, Sunpure) has its own SOP configuration file inside the sops/ directory.The SOP controls:
  • Which files are required for upload
  • Standard column definitions
  • Custom logic rules
The main application flow never changes — only the injected SOP does.
  • Fast, memory-efficient Excel/CSV parsing via pd.read_excel and pd.read_csv
  • Column standardization — maps varying vendor column names to a standard set
  • VLOOKUP-style matching using dictionaries and Series.map() — avoids JOIN operations that could accidentally duplicate rows
Automatically maps shorthand units in raw data (e.g. PCS, KG, Ltr) to standardized full-form outputs required by downstream GST systems.

Design Rules

RuleDescription
No DeduplicationDuplicate rows in the input Bill Details are strictly preserved in the output
Row Cardinality CheckOutput row count must exactly match the input Bill Details file
Lookup StrategyNo table merges — missing lookup values result in empty or UNREGISTERED fields, never extra rows
Preservation of TotalsTaxable amounts and taxes are taken directly from inputs — no overriding calculations