Positions typed by cadence
Daily and weekly debits count as advances and go toward stacking. Monthly fixed payments are treated as term loans and counted as debt service. Payee names change, payment rhythm does not.
Upload the PDF and get every recurring debit typed by payment cadence, burden measured against true revenue, daily balance behaviour, and the transactions behind each number. The read stays yours.
A merchant deposits $144,776 in February. Some of it is card settlement and customer ACH. Some of it is an advance that funded on the fourteenth. Some of it is the owner moving money in from savings to cover a Wednesday debit run.
Only the first is trade. Strip out $1,041 of advance proceeds and $23,380 of own-account transfers and true revenue is $120,355. The same $27,754 of position payments now reads 23.1% instead of 19.2%.
Measure against everything that lands in the account and a stacked merchant reads as moderately loaded. That difference is the whole job.
Everything below is read from the merchant's own statements, and every number links back to the transactions behind it.
Daily and weekly debits count as advances and go toward stacking. Monthly fixed payments are treated as term loans and counted as debt service. Payee names change, payment rhythm does not.
Advances, own-account transfers, refunds and returned items come out before the division, so the ratio reflects what the business actually earns rather than what passed through the account.
Scheduled payments derived from each position's own rhythm, set against what cleared and what came back. A position slipping its rhythm shows here first.
Closing balance for every day, days under your threshold, negative days, and the weekday the debits cluster on.
Metadata, balance chain, timestamps, fonts, round-amount deposits and duplicate rows. Deterministic, so the same file returns the same result.
Click any figure and land on the transactions that produced it, with dates and amounts. Nothing is derived from a source you cannot inspect.
Text-based or scanned, from any major US bank. Every transaction and daily balance is parsed, and you can correct anything before you work.
Positions with cadence and burden, true revenue with what was removed and why, balance behaviour, and the document checks. Open any number to see the rows underneath.
Export the read alongside the file. Weeks later, when the decision gets questioned, the reasoning is still attached to it.
There is no model quietly deciding the file. The report does not say fund or pass, and nothing is labelled high risk. You get the positions, the burden, the balance behaviour, the document checks, and the rows behind all of it.
That matters when you have to explain a decision to a credit committee weeks later. A number you can trace to eleven specific debits survives that conversation. A score does not.
About the figures on this page. They come from one real Bank of America statement for February 2026, merchant anonymised: 74 transactions, $144,776 in deposits, $161,316 in debits, $120,355 of true revenue, four positions carrying $27,754 of debt service.
Payee identity is the first signal but not the deciding one. A payee that debits every Tuesday for a similar amount is typed as an advance whether or not the name is familiar. Interval regularity settles it, because funders lower payments during a restructure and amount alone is unreliable.
By matching the counterparty against the account holder and the description pattern. They are excluded from revenue on the way in and from operating outflow on the way out, so the ratio is not inflated on either side.
No. The six checks read the document itself. To confirm the account, match the statement against a bank-verified source such as a direct bank connection.
Yes, and you should be able to see why it was typed that way. Every position opens onto its own payments with dates and amounts, so you can judge the rhythm yourself.
It is held for review rather than folded into burden. One payment is not yet a pattern, and guessing at it would move a ratio you rely on.
Upload a statement you have already underwritten. If it surfaces something you missed, that is the answer. If it does not, you have lost four minutes.