Borrower statements, checked against their own totals.
LedgerBox extracts every row from a borrower's statement and runs seven arithmetic checks against the statement's own printed totals. A document that fails one is held, with the failed check and the row named.
It produces no authenticity score, calculates no income, and never contacts the bank.
What gets checked
Every check compares the extracted rows against a figure the document printed for itself. Each one names the row it failed on, so a held document comes back with a location rather than a verdict.
-
The balance chain
Each row's running balance must follow from the row before it. A break in the chain is located to the row, not reported as a total that does not add up.
-
Transaction totals
Deposits and withdrawals are summed and compared against the totals the statement prints for itself.
-
Opening to closing
The opening balance plus the transactions must equal the printed closing balance.
-
Account match
The account named on each page is the account the document claims to be about.
-
Date continuity
Transaction dates fall inside the statement period, and the period itself is continuous.
-
Duplicates
The same transaction appearing twice is flagged rather than counted twice.
-
Open flags
A document with an unresolved flag does not pass. The reason is named and the checks run again after each edit.
The same checks run on every statement, whoever sent it. How the checks work
What LedgerBox does not do
There is no authenticity score
LedgerBox does not produce a number, a rating, or a verdict on whether a bank issued the document. Arithmetic that adds up means the figures are internally consistent. A competently fabricated statement is internally consistent too.
There is no income calculation
LedgerBox returns the rows and the checks. Qualifying income is a lending judgment made against your own guidelines, and LedgerBox neither computes it nor suggests it.
There is no human review
No person at LedgerBox reads a borrower's documents, and no third party does. A row marked for review waits for your underwriter.
There is no source verification
LedgerBox reads the document it is given. It does not contact the bank, connect to the borrower's account, or compare against anything the institution holds.
On what the category's techniques do and do not establish: Document fraud detection, and what it can prove
The documents in a lending file
-
Bank statements
Every transaction as a row, with the seven checks run against the statement's own printed totals. Scans and photographs read the same way as digital PDFs.
-
Pay stubs
Employer, period, gross, deductions, and net, with gross minus deductions checked against the printed net.
-
W-2 and 1099 forms
Every wage and withholding box, each labeled with its statutory number. Only the last four digits of any SSN or recipient TIN are read.
-
Brokerage statements
Holdings, activity, and realized gains, for a file where assets rather than income are the question.
The tax transcript request that sits alongside them: Form 4506-C explained
How the documents arrive
One portal link per borrower, with files landing in that borrower's folder. A borrower who has nothing to upload can be sent a request naming the documents you need, and reminders go out without anybody chasing.
Every uploaded file is scanned for malware, and a file that comes back malicious is deleted rather than left for somebody to open. Documents are encrypted in transit and at rest, isolated per organization, and never used to train a model.
For a loan origination system rather than a person, the REST API returns the rows and the verification state together, so the receiving system can tell a verified row from one that needs review.
Lender questions
Does LedgerBox tell me whether a statement is fake?
No. It checks whether the statement's own arithmetic holds and flags what does not. A statement that fails those checks has a real problem; a statement that passes has consistent figures, which is not the same as a statement the bank issued.
What happens to a document that fails a check?
LedgerBox holds it and names the check that failed and the row it failed on. After an edit the checks run again, so a document either passes or stays held.
Are uploaded files scanned for malware?
Yes. Every uploaded file is scanned, and a file that comes back malicious is deleted rather than quarantined for someone to open later.
Can borrowers upload directly?
Yes, through the client portal: one link per borrower, files landing in that borrower's folder. Documents are encrypted in transit and at rest, isolated per organization, and never used to train a model.
Do you calculate qualifying income?
No. LedgerBox returns the rows and the checks, and the income calculation is made by your team against your own guidelines.
Is there an API?
Yes. The REST API accepts a document and returns the structured rows and the verification state, and every response carries the flags, so a system reading it can tell verified rows from rows needing review.
Upload a borrower statement. See what the checks say.
Every row extracted and the arithmetic checked against the statement's own totals. No card required.