Identify potential Purchase Order splitting cases from a PO dump using a rolling date window and a configurable approval matrix.
This tool scans a Purchase Order dump and flags cases where a single requirement may have been broken into multiple smaller POs to the same supplier — possibly to keep individual PO values under an approval authority limit.
| PO Date | Supplier | PO Value |
|---|---|---|
| 13-Mar | NARENDRA TRADING | 24,100 |
| 13-Mar | NARENDRA TRADING | 95,000 |
| 14-Mar | NARENDRA TRADING | 102,000 |
| 16-Mar | NARENDRA TRADING | 51,000 |
| 18-Mar | NARENDRA TRADING | 14,250 |
With a ±3 day window, all five POs fall within overlapping windows of each other and are merged into a single case, PS-001, instead of five separate exceptions. The aggregate value (₹2,86,350) is then checked against the approval matrix to see if it required a higher approval level than the largest individual PO did on its own.
LOW The aggregate value falls in the same approval band as the highest single PO — no real escalation.
MEDIUM The aggregate value crosses into a higher approval band, but only marginally (under 25% over the lower band's ceiling).
HIGH The aggregate value crosses well into a higher approval band (25%+ over), indicating a likely deliberate split.
What counts as a "case"?
A group of two or more POs to the same supplier whose dates fall within overlapping rolling windows of each other. Single, isolated POs are never flagged.
How does the rolling window work?
For every PO, the tool checks PO Date − N days to PO Date + N days for other POs from the same supplier. If windows overlap (even in a chain), all those POs are merged into one case.
What is Approval Escalation?
It occurs when the aggregate value of a case requires a higher approval authority than the highest individual PO in that case would have required on its own.
Can I use my own approval matrix?
Yes. You can type it in manually or upload an Excel file with From Amount, To Amount and Approval Level columns.
Is my PO data uploaded anywhere?
No. All processing happens entirely in your browser — no data is sent to any server.