> ## Content Index
> Fetch the complete content index at: https://ksnk.media/llms.txt
> Use this file to discover other available public pages before exploring further.

# She reconciled with a ruler. Earning her trust was harder than the algorithm.
- URL: https://ksnk.media/she-reconciled-with-a-ruler-earning-her-trust-was-harder-than-the-algorithm/
- Published: 2026-04-14T07:00:00.000Z
- Updated: 2026-05-28T09:57:11.000Z
- Description: 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.
- Author: Aleksandr Kosenko
- Tags: Build, Manage, Build in public, Productivity systems, Soft skills, Client engagement techniques

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.