Why seventy reports, and why I bothered
I own a coffee roastery and tasting room in Observatory, Cape Town. We sell bags of beans over the counter, run a small wholesale line to three restaurants in the city, and take walk-in payments on a Yoco card reader and SnapScan QR code stuck to the counter. Most days it's straightforward: I pour the Yoco CSV and SnapScan Excel file into a spreadsheet at closing, check the totals against the cash float, done.
Then load-shedding hit us five times in one week in March. The Yoco reader died mid-transaction twice. SnapScan payments came through but didn't print receipts. A customer paid R340 by EFT because both systems were down, and I wrote it on a Post-it note that later fell behind the grinder. By Friday I had seven days of reports that didn't match the bank statement, duplicate entries where customers retried a payment, and three missing EFT deposits I'd promised to chase but couldn't remember who'd sent them.
I'd been using Claude Sonnet 4.5 on Kryotta to draft wholesale emails, so I tried uploading one messy Yoco CSV to see if it could spot the duplicates. It did. Then I fed it a SnapScan report with two missing reference numbers, and it explained the gap in a way that made sense to my bookkeeper, who doesn't speak AI. I got curious. I pulled every daily report from the previous ten weeks—seventy in total—and ran them through Claude and Gemini to see which one caught errors faster, explained discrepancies more clearly, and handled the Afrikaans notes my accountant sometimes adds to the EFT column.
This isn't a formal study. It's seventy real reports, two models, and a lot of notes in a Google Sheet. But the patterns were obvious enough that I now use one model for quick scans and the other when I need to explain a mismatch to someone who isn't me.
Claude catches formatting errors and duplicate transaction IDs in one pass
Yoco CSVs are clean until they aren't. Most days you get a tidy row per transaction: timestamp, amount, card type, settlement batch. But when the reader loses signal mid-swipe, you sometimes get two rows for the same sale—same timestamp, same amount, different transaction IDs. One settled, one marked "failed" in a column you don't notice unless you're looking.
I uploaded a week's worth of Yoco reports to Claude Sonnet 4.5 and asked it to flag duplicates. It found eleven in the first pass, listed them by transaction ID, and grouped them by date so I could cross-check the paper receipts. Prompt: "Check this Yoco CSV for duplicate payments—same amount and timestamp within 60 seconds, even if the transaction ID differs. List any you find with the date, amount, and both IDs."
Gemini Flash found nine of the same eleven but missed two where the amounts were identical and the timestamps were 58 seconds apart. It's faster—answered in about four seconds vs Claude's seven—but the two it missed were both failed retries that had settled on the second attempt, and I would have chased the customer for double payment if I hadn't caught them. For a quick morning scan Gemini's fine, but when I'm reconciling after a load-shedding week and I know there are duplicates hiding, I use Claude.
Claude also caught a formatting error in a SnapScan export where one cell had merged two rows of data—R180 and R220 concatenated into "R180R220"—because I'd opened the Excel file on my phone, edited a note, and saved it. Gemini read it as one transaction for R180 and ignored the rest. Claude flagged it as "malformed currency value" and suggested I re-export. Small thing, but it saved me 40 minutes of manual checking.
Gemini explains discrepancies in plain Afrikaans and English, which matters when your bookkeeper asks questions
My accountant is based in Stellenbosch and keeps notes in Afrikaans on the EFT tab of our reconciliation sheet. When a payment doesn't match, she'll write "Klant het verkeerde bedrag gestuur" or "Verwysing ontbreek" next to the row, and I need to translate that into something I can investigate.
I uploaded a SnapScan report with three missing EFT deposits and a note in Afrikaans: "Twee betalings van R450—een het deurkom, een nie." I asked Gemini Pro to explain the discrepancy in English. It replied: "Two payments of R450 were expected; one came through, one didn't. Check your bank statement for a pending EFT or ask the customer to resend proof of payment." Clear, accurate, helpful.
I tried the same prompt with Claude. It translated the note correctly but gave me a longer explanation about how EFT delays work and suggested I wait 24 hours before following up. Technically right, but my bookkeeper wanted a yes-or-no answer: is the payment missing or not? Gemini gave me that in one sentence.
Gemini's also faster when you're working offline. I downloaded seventy reports as PDFs during load-shedding, uploaded them to Kryotta on my phone using the last bar of LTE, and queued up three prompts before the power came back. Gemini Flash processed all three in under a minute. Claude took longer but caught an extra duplicate I'd missed. If you're reconciling in real time and need a quick answer before the next outage, Gemini's the better pick.
Use Claude for EFT matching when reference numbers are incomplete or missing
EFT payments are where everything falls apart. A customer sends R680 with the reference "Coffee" instead of their invoice number. Another pays R1,200 but splits it across two transfers—R800 on Monday, R400 on Wednesday—and only the first one has a reference. A third uses their company name in the reference field, but we invoiced them under the director's personal name, so the bank statement and the invoice don't match.
I asked Claude to cross-reference a week of EFT deposits against our invoice list and flag anything that didn't match by reference number. Prompt: "Here's a list of EFT payments from our bank statement and a list of unpaid invoices. Match them by reference number where possible. For any payment that doesn't match, suggest likely invoices based on amount and date within three days."
Claude matched 22 out of 28 payments automatically and suggested possible matches for the remaining six. One was the split payment I mentioned—it linked both transfers to the same invoice because the amounts added up and the dates were two days apart. Another was the "Coffee" reference; Claude matched it to an invoice for R680 issued the day before. I confirmed both with the customers over WhatsApp, marked them paid, done.
Gemini matched 20 out of 28 and didn't suggest likely candidates for the unmatched ones. It just listed them as "no reference found" and told me to contact the customers. Accurate, but not as useful when you're trying to close the books on a Friday afternoon and you don't want to send eight "please resend proof of payment" messages.
Gemini's better for daily scans; Claude's better for month-end reconciliation
Here's the checklist I've landed on after seventy reports:
Use Gemini Flash for daily reconciliation when you're checking yesterday's Yoco and SnapScan reports before you open the shop. It's fast, catches obvious duplicates, and gives you a plain-English summary you can forward to your bookkeeper. Prompt: "Scan this Yoco CSV for duplicate transaction IDs and any payments marked 'failed' that might have settled twice. List them by date and amount."
Use Claude Sonnet 4.5 for weekly or month-end reconciliation when you need to match EFT deposits to invoices, explain discrepancies to your accountant, or dig into a messy week of reports after load-shedding. It's slower but more thorough, and it'll catch the edge cases Gemini misses. Prompt: "Cross-reference these EFT payments against this invoice list. Match by reference number, then by amount and date within 72 hours. Flag anything unmatched and suggest likely invoices."
Use Gemini Pro when your bookkeeper's notes are in Afrikaans and you need a quick translation with context. It handles code-switching better than Claude and doesn't add extra explanation you didn't ask for.
Use Claude when a payment's missing and you need to reconstruct what happened—customer retried a card payment, the first attempt failed but settled anyway, now they're asking why they were charged twice. Claude will walk you through the transaction log, explain which ID settled and which didn't, and draft the apology message you need to send.
Two workflows: one for load-shedding chaos, one for normal weeks
Normal week: Export Yoco and SnapScan at closing. Upload both to Gemini Flash with the prompt "Check for duplicates and flag any failed payments that might have settled." Takes 30 seconds. If it finds nothing, you're done. If it flags something, open the report in Claude and ask it to explain.
Load-shedding week: Wait until power's back and you have all the reports. Upload the full week to Claude with your bank statement and invoice list. Prompt: "Reconcile these Yoco, SnapScan, and EFT payments against this invoice list. Match by reference, then by amount and date. List unmatched payments and suggest likely invoices." Takes three minutes, catches everything, saves you an hour of manual checking.
I keep both models open in separate tabs on Kryotta. Gemini for the quick morning scan, Claude for the deep dive when something doesn't add up. Neither is perfect—Claude occasionally over-explains, Gemini occasionally under-explains—but together they've turned a two-hour Friday reconciliation into a 20-minute task, even when the power's been out half the week.
Questions people ask
Can I upload a month's worth of reports at once, or will the models get confused?
Claude handles up to about 40 daily reports in one upload before it starts missing details. Gemini's limit is closer to 20. If you're reconciling a full month, break it into weeks and upload each week separately.
What if my Yoco CSV has Afrikaans column headers?
Both models handle it fine. Claude's slightly better at inferring what "Bedrag" or "Datum" means if the formatting's inconsistent, but Gemini's faster. If you're in a hurry, use Gemini; if accuracy matters more, use Claude.
Do I need to clean up the reports before uploading, or can I just drag the raw CSV in?
Raw is fine for both models. Claude will tell you if there's a formatting error; Gemini will try to work around it. I've uploaded reports with merged cells, missing headers, and random notes in the margin, and both handled them without crashing.
Which model's cheaper if I'm reconciling daily?
Gemini Flash costs less per query on Kryotta, so if you're scanning reports every morning it'll save you a few rand over the month. Claude Sonnet 4.5 costs more but you'll use it less often—only when something's wrong. I spend about R80 a month on both, which is less than I used to pay my bookkeeper for the same task.
I'm not saying AI replaces a good accountant—it doesn't, and mine still reviews everything at month-end. But it's turned payment reconciliation from a thing I dread into a thing I can do in the gap between the morning rush and the lunch prep, even when the power's been out and the reports are a mess. If you're using Yoco or SnapScan and you're still reconciling by hand, try one of these workflows. Start with Gemini for a week, then add Claude when you hit something complicated. You'll know within three days which one fits your process, and you'll get those Friday afternoons back.
Try both models on the same report at Kryotta—upload once, compare the outputs side by side, and pick the one that makes sense for your business.



