Operations
Ten thousand lines agree. Twenty-three need you.
ERP, orders and payments matched against each other on a schedule — with a reason attached to every exception, and a person deciding only the ones that need deciding.
Where this starts
Three systems hold the same transaction in three shapes. Every close, someone exports all of them, pastes them side by side, and sorts until the columns line up.
What made it hard
The matching is not the hard part — the leftovers are. A payment short by $450 could be an instalment, a fee, a refund or an error, and telling them apart means reading months of history for one customer.
How it works
Rules clear whatever is unambiguous. The model pairs the rest and says what it matched on, then explains each remaining gap from that customer's own history. Only the judgement calls reach the queue, and what you approve there is what posts.
Step through a run
Pick a close and follow what the system did with it — including the twenty-three items it refused to clear on its own.
Pick a sample
Three systems are read at once
Open items from the ERP, orders from the order system, transactions from the payment provider — pulled on a schedule, not exported by hand into a spreadsheet.
Receivables ↔ payments
Read from
ERP · receivables
ar.open_item
9,992 rows
Order system
oms.order
10,110 rows
Payment provider
pay.transaction
9,864 rows
JLM reconciliation
- Rule matching
- AI matching
- Exception analysis
- Period
- 2026-08-01 — 2026-08-31
- Last loaded
- Sep 1, 2026, 02:10
A recorded run on sample statements. Not customer data. Matching tolerances and the auto-clear threshold are set per company.
What it runs on
- Rule engine
- AI matching
- Exception analysis
- Review queue
- ERP write-back
Still reconciling in a spreadsheet?
Tell us which two systems never agree. We will tell you how much of the gap can close on its own, and what has to stay with a person.
Talk to us