Cut the workload, not the flow

Aria finances invoices. A supplier is paid now for an invoice their own customer will settle in 30 or 60 days.

Between the customer paying and the supplier being able to finance the next invoice sits reconciliation: matching the payments we get from customers to the invoices we financed. Until that matching is made in full, the money has arrived yet nothing has moved. Traditionally, that decision was a person's job. An ops agent read a bank label, an amount and a date, and went looking for the loan it closed.

We built the matching, then removed most of it

An engineer and I built matching on the data already carried by the invoice. We kept a person in the loop to approve what the system proposed rather than to find it. Ops stopped searching and started confirming. That is a different job, and a much faster one.

A draft reconciliation: the repayments received from one supplier's customer on the left, the invoices they are being set against on the right, an auto-matched invoice offered for one click, and a running balance that has to reach zero before it can be confirmed. Fixture brands and amounts.A draft reconciliation: the repayments received from one supplier's customer on the left, the invoices they are being set against on the right, an auto-matched invoice offered for one click, and a running balance that has to reach zero before it can be confirmed. Fixture brands and amounts.
Repayment matching
Repayment matching

The second change was structural, and definitely more impactful. Invoice payments were collected on a single client, holding many suppliers. Every payment landed in a pool where any loan was a candidate. We started issuing an account per supplier instead. A payment now arrives somewhere that already narrows what it can belong to, which removes candidates before anyone looks at them rather than ranking them more cleverly afterwards.

Clients noticed before anything measured it

In early 2026, reconciliations were not the top of our priorities. We saw volumes rising and we wanted to help ops team handle it. Yet we heard back from clients that the impact was larger than expected. Money was no longer stuck somewhere unexplained, and there was more room to finance the next invoice.

That was enough for the work to stop being a line on somebody's roadmap. This is how I started running a team of 3 owning reconciliation and cash recovery.

Two incoming payments drawn as flows into the invoices they repay, one of them split across two invoices and leaving a remainder that closes nothing. Fixture references and amounts.Two incoming payments drawn as flows into the invoices they repay, one of them split across two invoices and leaving a remainder that closes nothing. Fixture references and amounts.
Payment allocation
Payment allocation

A queue is a supplier who cannot finance today

Each supplier has a ceiling on how much financing can be running at once. A loan occupies part of that ceiling until a repayment matches it in full. Matching releases the ceiling, the ceiling releases financing, and Aria pays the next invoice.

So a repayment sitting unmatched in an internal queue is not an ops inconvenience. It is a supplier who has been repaid by their customer and still cannot finance anything today, looking at a limit they believe they already cleared. That is what the clients had described back to us, before there was a number for it.

Back home