You are declining good borrowers right now — and you can't see it
Somewhere in your pipeline right now, a bankable borrower is being declined and a bad one approved because your system read one line on a statement backwards. It doesn't throw an error. It just quietly costs you. Here's the unglamorous problem at the front of every loan, and why the lenders who get it wrong never find out.
Here is an uncomfortable possibility for any lender running automated underwriting today: somewhere in your pipeline, right now, a perfectly bankable borrower is being declined and a bad one approved because of a single line on a statement your system read backwards. You will never see it happen. It doesn't throw an error. It just quietly costs you the good loan and hands you the bad one, over and over, at the speed of automation. That failure has a specific, unglamorous cause, and almost nobody talks about it.
The Paybill Problem
Ask anyone who's built a lending pipeline where the real work is, and they rarely say the credit decision. They say everything before it turning raw bank and M-PESA statements into numbers you can trust. It's the chokepoint at the front of every loan, and it's where more pipelines quietly break than anywhere else.
The hardest question on the whole statement is often just: which way did the money go?
On an M-PESA statement, the same paybill or till number can mean opposite things for two different borrowers. For a shopkeeper, money to a supplier's paybill is an expense. For that supplier, the identical line is income. The description alone won't tell you. A human analyst resolves it by reading context but a system scoring thousands of statements can't, and when it guesses wrong, the error doesn't stay small.
Get the direction of enough transactions backwards and you don't just misread a number you invert the borrower's entire cash-flow picture. Income looks like spending. A healthy business looks distressed; a struggling one looks bankable. This is exactly where generic extraction tools break, and it's the failure quietly poisoning a lot of automated underwriting today: the decision at the end can only ever be as good as the direction calls at the start. Most lenders relying on off-the-shelf extraction have no idea how often theirs are wrong.
What one wrong direction call actually costs
This isn't theoretical. In one real case, correctly resolving transaction direction moved a borrower's debt-service coverage ratio from −7.21 to +1.09 the difference between a wrongful decline and a correct approval. One borrower. One mechanism. Two completely opposite lending outcomes.
Now multiply that across a portfolio, across a year, running silently. Every wrongful decline is a good customer you sent to a competitor. Every wrongful approval is a loss you booked without knowing why. Neither shows up as an error in your system. That's what makes it dangerous, you can't fix a leak you can't see.
How VALR-Extract closes it
We didn't solve this by making the model guess better. We made it stop guessing.
VALR-Extract uses a proprietary balance-aware method: it reconciles every transaction against the running balance on the statement. When the change in balance matches the transaction amount, direction is derived from the arithmetic the math overrides any assumption the model might make from a misleading description. If the balance fell by exactly the transaction amount, that money went out. No description can flip it.
The second mechanism is quieter but just as decisive: guaranteed-valid output, every time. Every statement produces structured, syntactically valid data no parse failures, ever. Your downstream systems never have to handle "the extraction broke on this one," because it doesn't happen. We didn't reduce that class of failure. We eliminated it.
But can a small model you own really keep up?
The fair challenge. It's one thing to run privately on your own GPU; it's another to match the best AI in the world. So we tested VALR-Extract head-to-head against GPT-5.6-sol, Claude Opus 4.7, and Gemini 3.5 Flash; identical statements, same ground truth.
On statements resembling its training data, everything scored effectively perfectly. That's not the real test. The real test is statements in layouts the model has never seen, genuinely unfamiliar formats, which in production is most of them. That's what separates a model that learned the task from one that just memorized formats.
On that decisive set, VALR-Extract scored 0.998 frontier parity with GPT-5.6-sol, Claude Opus 4.7, and Gemini 3.5 Flash on layouts it had never encountered, from a GPU in your own server room. A model that only performs on familiar formats is a liability the first time a new bank's statement lands. One that learned the underlying task holds up on the statement it's never seen.
And because it runs on-box, with no network round-trip, in our testing it produces a statement's structured data faster than the frontier APIs even respond. On a single GPU it sustains roughly nine statements per second in batch throughput no rate-limited API will sell you. Re-scoring your entire back book stops being a budget line you have to justify and becomes an afternoon's work.
The question this leaves on your desk
Every lender running automated underwriting is already making direction calls on every statement the only question is how many they're getting wrong, and whether they'll ever know. The ones who fixed this aren't just more accurate on paper. They're keeping the good borrowers everyone else is quietly turning away, and refusing the bad loans everyone else is quietly booking. That edge doesn't announce itself. It just shows up, quarter after quarter, in whose portfolio performs and whose doesn't.
Getting the extraction right isn't the glamorous part of AI-native lending. It's the part that decides whether everything after it is trustworthy and whether the borrower you just declined should have walked out with a loan.
Next in this series: what ownership of the whole system actually means, the total cost of every decision over time, and why the lenders who own their AI are on a curve their rented competitors can't catch.
Enjoyed this article?
Subscribe to get our latest insights on SME credit risk and portfolio management delivered to your inbox.


