She reconciled with a ruler. Earning her trust was harder than the algorithm.

A ruler, a pencil, and a finger tracing each line—until an algorithm from 1955 turned daily reconciliation into a puzzle game that's 94% solved before she sits down.

A ruler and pencil illustrating the challenge of building trust.

A ruler. A pencil. A stack of papers. The daily POS report, statements from three banks, seven restaurants. The accountant traces her finger along each line, marks it, moves to the next. Loses her place — starts over. This amount doesn't match any receipt, and then it turns out it's three receipts plus a tip. That one — a refund processed through a different terminal.

Regular work. Every single day.

Now she plays a puzzle game at her computer.


When POS data loads into the system automatically — pulled from Agora's live database every five minutes — all the accountant has to do is upload the bank statements. Math handles the rest.

First layer: exact matching. Amount matches, timestamps within half an hour — done, pair found. The simplest and the most satisfying layer: it alone closes out the bulk of transactions.

Whatever's left goes into the Hungarian algorithm. Combinatorial optimization, circa 1955. The system builds a matrix — every receipt × every bank transaction — scores each pair on similarity, and finds the globally optimal assignment. Not "best match for this receipt" but "best assignment of all pairs at once." A greedy algorithm might steal a perfect match from its neighbor. The Hungarian doesn't.

Next up — groups. Subset sum: three POS receipts for €12, €8, and €15 — could that be one bank transaction for €35? The system tests combinations and finds exact matches. Works the other direction too — one POS payment, three separate bank charges.

And finally — detective work. Six search types for everything still unmatched: extended time window up to 24 hours, tip detection up to 30%, fuzzy matching with a ±€2 tolerance, groups of up to four transactions, reverse groups, cross-day matches.

Every potential pair gets a score from 0 to 1. Above 0.90 — the system confirms it automatically. Between 0.45 and 0.90 — it suggests the pair to the accountant. Below that — it stays hidden, so the interface doesn't turn into noise.

Five layers, simple to complex — each one picks up what the previous one missed. The accountant sees none of this machinery. For her, it's a progress bar that says every morning: 94% done, six pairs left.


After the algorithms finish their run, the accountant is left with a small handful. The system shows a progress bar — typically 90–95% is already reconciled automatically. The rest lives in a tab called "Resolver," and that's where the puzzle begins.

Cards on the screen. Bank transactions without a match on the left, POS receipts on the right. The system nudges: these three receipts — €12, €8, and €15 — look like they belong to this card payment of €35. Or: the card charge is €47.50, but the receipt says €41.30 — the gap looks like a tip. Accept? Reject?

It's like a puzzle game on your phone. Figure out what connects to what and why. Oh, found it — these three receipts add up to that total, and the difference was left as a tip. Hit "accept," the progress bar crawls to 100%, day closed.

Paper and a ruler vs. a puzzle with buttons. Same result. The process — from different universes.


At first, she was skeptical as hell. (If you're reading this — don't take offense, I'm just adding some spice.) Obviously — not everything worked right out of the gate. We moved in iterations: I'd demo it, she'd try it, find the bugs, I'd fix them. Four versions total. Each one simpler than the last. In the final version, I deleted 770 lines of code because it turned out they weren't needed.

But people get used to good things fast — it's like an elevator in your building. First week you're thrilled. A month later you're pissed it's too slow. Now she demands things she couldn't have dreamed of before. And demands them like they're obvious.

She nitpicks bugs — fairly, with good reason. But behind those nitpicks is something simple: she can't imagine going back. The best compliment a product can get isn't "thank you." It's "why is this button the wrong color."


I knew the system worked. Algorithms converged, matching closed 95%, the code got cleaner. Technically — everything checked out.

But the real high didn't come from code. It came when she expressed genuine excitement for the first time. Not a polite "yeah, it's handy." Real excitement.

I can tell myself I'm good at what I do. But I build things for people, to make their lives better. If they don't need it or don't want it — even if it's objectively ten times better — there's nothing I can do about that. The high comes when other people get a kick out of what I made.

Five algorithms, four versions, 770 deleted lines. And the measure of it all — the face of an accountant who doesn't reach for a ruler anymore.