Phase 3 (POC Complete)
Audit Standardizer is a local, AI-assisted prototype designed to make procurement audits faster, more consistent, and easier to test.
The tool standardizes heterogeneous audit Excel files into a minimal Standard Data Model (SDM v1) using human-confirmed AI mappings, then runs repeatable audit checks on the standardized data.
This project is intentionally a Proof of Concept (POC):
- Focused on validating workflow, control, and audit logic
- Not intended as a production system
- No model training, no cloud storage, no client data retention
-
Ingests heterogeneous Excel audit files (POs, invoices, GRNs, vendors, PRs)
-
Allows users to label each sheet by audit role
-
Generates a structured Microsoft Copilot prompt using:
- column headers
- sample rows
-
Requires manual confirmation of Copilot’s JSON mapping
-
Produces standardized Excel copies (headers only, data preserved)
-
Runs multiple procurement audit checks
-
Outputs:
- individual exception reports
- a consolidated audit summary
-
Can be used via:
- Jupyter Notebook (engine-first, audit-friendly)
- Streamlit UI (interactive demo)
All execution is local.
SDM v1 is header-level only and exists solely to provide a common vocabulary for audit checks.
purchase_requisitions
- pr_number (required)
- pr_date (required)
- department (optional)
- requester (optional)
purchase_orders
- po_number (required)
- po_date (required)
- vendor_id (required)
- po_total_amount (required)
- pr_number (optional)
- currency (optional)
goods_received_notes
- grn_number (required)
- po_number (required)
- grn_date (required)
- received_total_amount (optional)
invoices
- invoice_number (required)
- po_number (required)
- invoice_date (required)
- invoice_total_amount (required)
- vendor_id (optional)
vendors
- vendor_id (required)
- vendor_name (required)
- bank_account (required)
- bank_name (optional)
- swift (optional)
SDM v1 does not enforce business correctness. It enables reuse of audit logic across audits.
| Check | Purpose | Required Data |
|---|---|---|
| Invoice Before PO | Flags invoices issued before PO approval | PO, Invoice |
| 3-Way Match | PO ↔ GRN ↔ Invoice consistency | PO, GRN, Invoice |
| Procurement Cycle Time | PR → GRN lead time analysis | PR (optional), PO, GRN |
| Vendor Bank Anomaly Review | Detects shared / multiple bank accounts | Vendor Master |
| Splitting of Purchases | Detects threshold circumvention | PO, Vendor |
All thresholds (amounts, days, windows) are manual audit parameters, not queried from data.
- CLI-based workflow
- Initial SDM v0
- Single audit check (Invoice Before PO)
- Purpose: validate feasibility
- Streamlit UI added
- Human-in-the-loop Copilot mapping
- End-to-end demo readiness
- SDM upgraded to SDM v1
- Multiple PO-related audit checks added
- Old CLI engine removed
- Jupyter Notebook introduced for controlled execution
- UI updated to support SDM v1
- Persistent check results
- Summary + packaged exception reports
- Improved parameter handling
- UI refinements
- Data consistency fixes
- Documentation update
- Packaging and handover readiness
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt-
Open the provided notebook
-
Follow step-by-step execution:
- load audit folder
- generate Copilot prompts
- paste mappings
- standardize data
- run checks
-
Produces summary + exception outputs
streamlit run app.py- Human-in-the-loop by design
- No black-box automation
- Local execution only
- Audit-friendly reproducibility
- Checks written once, reused everywhere
This tool is meant to assist auditors, not replace judgment.