Static sample of a fictional company. Figures frozen from the live pipeline on Nov 3, 2026; this page never reads or writes a database.
Two systems that disagree. One revenue number finance can trust.
An ERPNext instance and a legacy CSV export spell customers differently, format dates differently and sometimes disagree on totals. This pipeline merges both into one canonical model, holds back bad records, and proves the result against the source every day.
Revenue by month
As of Oct 16, 2026. October is hatched: half a month never passes for a whole one.
- ERPNext
- Legacy export
Show the numbers
| Month | ERPNext | Legacy | Total |
|---|---|---|---|
| Jan 2026 | $46,665.00 | $6,730.05 | $53,395.05 |
| Feb 2026 | $48,456.00 | $7,723.12 | $56,179.12 |
| Mar 2026 | $48,748.00 | $8,506.45 | $57,254.45 |
| Apr 2026 | $47,980.00 | $10,161.46 | $58,141.46 |
| May 2026 | $48,690.00 | $10,988.47 | $59,678.47 |
| Jun 2026 | $45,147.00 | $10,963.50 | $56,110.50 |
| Jul 2026 | $43,737.00 | $13,820.64 | $57,557.64 |
| Aug 2026 | $43,393.00 | $13,372.71 | $56,765.71 |
| Sep 2026 | $43,752.00 | $14,580.36 | $58,332.36 |
| Oct 2026 (partial) | $46,096.00 | $13,069.07 | $59,165.07 |
How a record gets here
Every invoice takes the same path, whichever system it came from.
Top customers
Different spellings in each system resolve to one customer through a versioned mapping.
Quarantine
Bad records wait here with a reason instead of being summed into the totals.
Held documents: UB-26084, UB-26077, UB-26023, UB-26016, UB-26010, UB-26005
Sync health when the snapshot was taken
- ERPNext last successful sync
- Nov 1, 2026
- Legacy export, newest file
- Oct 16, 2026
- Queue: pending messages
- 0
- Dead-letter queue
- 0
Reconciled: ERPNext $462,664.00 = stored $462,664.00, 0 unexplained
The whole system is open source
Adapters, quarantine rules, queue and workers, reconciliation, the signed-in dashboard, 1,000+ tests and the spec-driven documents behind every decision. Clone it and run it locally.