Recurring income detection groups a borrower's deposits by who paid them and how often they arrive, then reports each source with its cadence and average amount. It works well for payroll, benefits and steady client retainers. It struggles with irregular payers, renamed employers and scheduled transfers, so an underwriter still confirms each source before it counts.
How does recurring income detection group deposits into sources?
Recurring income detection treats two deposits as one source when they share a payer and arrive on a pattern. It reads the payer from the description text, groups similar descriptions, then checks the gaps between dates. A group with regular gaps and similar amounts becomes a recurring source. A group without a pattern stays as separate deposits.
The process has three steps:
- Normalize the description. Strip dates, reference numbers and trace codes so "PAYROLL ACME CORP 0315 PPD ID 99812" and "PAYROLL ACME CORP 0329 PPD ID 99812" become the same payer.
- Group by payer. Put every deposit with the same normalized payer into one bucket.
- Test the timing. Measure the days between deposits in each bucket. Roughly seven, fourteen, fifteen or thirty days apart suggests weekly, biweekly, semimonthly or monthly pay.
Amount matters less than timing. A salaried employee's deposits are nearly identical, but an hourly worker's vary every pay period. A good grouping accepts amount variation and reports it, rather than splitting one employer into several sources because the checks differ.
The output is a short list instead of a long ledger. Where the statements had sixty deposit lines, the reviewer now sees four or five sources, each with a count, a cadence, an average and a first and last date.
Payer names and cadence in recurring income detection
Payer names are the weakest input to recurring income detection, because banks and payroll processors print them inconsistently. Cadence is the strongest, because pay schedules are regular even when the text is not. Good detection leans on the schedule to confirm a name match, and flags groups where the two disagree.
Why payer names drift
- Payroll processors. An employer that changes processors mid-year shows up under a new name, even though the job did not change.
- Truncation. Banks cut descriptions to a fixed length, so a long company name ends at different letters on different statements.
- Bank mergers. A borrower's own bank can change how it prints ACH descriptions after a conversion.
- Mobile deposits. A deposited check shows no payer at all, only "MOBILE DEPOSIT".
Reading the cadence
Common pay schedules leave clear fingerprints:
| Cadence | Typical gap | Deposits per year | What to watch |
|---|---|---|---|
| Weekly | 7 days | 52 | Holiday weeks shift a deposit by a day |
| Biweekly | 14 days | 26 | Two months a year carry three paychecks |
| Semimonthly | 15th and last day | 24 | Weekends move the date earlier |
| Monthly | About 30 days | 12 | Benefits often land on a fixed weekday |
The biweekly row causes a classic averaging error. A month with three paychecks looks like a raise, and a lookback that happens to include both three-check months inflates the monthly average. Computing income from the annual cadence, rather than from calendar months alone, avoids it.
Six months of deposits grouped into recurring income sources
The table below is an example for a fictional borrower who works part time for a school district and runs a small bookkeeping practice. All names and amounts are made up. It shows how six months of deposits group into sources, and what a reviewer decided about each.
| Source as detected | Cadence | Deposits | Average amount | Range | Reviewer verdict |
|---|---|---|---|---|---|
| PAYROLL LAKEVIEW USD | Biweekly | 13 | 1,184.50 | 1,150.00 to 1,220.00 | Counts, matches pay stub |
| ACH CREDIT DUNMORE DENTAL | Monthly | 6 | 850.00 | 850.00 | Counts, client retainer |
| ACH CREDIT PIKE FLOORING | Monthly | 4 | 600.00 | 600.00 | Counts with note, client started in month 3 |
| STRIPE TRANSFER | Irregular | 9 | 412.30 | 95.00 to 1,040.00 | Counts as business receipts, not as a recurring source |
| TRANSFER FROM SAV 5520 | Monthly | 6 | 500.00 | 500.00 | Excluded, own savings account |
| MOBILE DEPOSIT | Irregular | 3 | 1,700.00 | 900.00 to 2,600.00 | Held, borrower to explain |
Several lessons sit in this one table. The payroll source has thirteen deposits in six months, which is right for a biweekly schedule. The Pike Flooring retainer is regular but only four months old, so it may count under some programs and not under others. The Stripe payouts are real business income but have no cadence, so they belong in the deposit total rather than in a recurring source. The savings transfer is perfectly regular and is not income at all.
That last row is why detection alone never decides qualifying income. Regularity is evidence of a pattern, not evidence of earnings.
Where does recurring income detection misfire on irregular payers?
Recurring income detection misfires when real income has no schedule or when the schedule changes. Commission checks, gig platform payouts, seasonal work and clients who pay late all produce real income that a timing-based grouping either splits apart or drops. The result understates income that a person reading the same statements would count.
The usual patterns:
- Commissions and bonuses. A salesperson gets a base on a schedule and commissions when deals close. The base groups cleanly. The commissions look like one-off large deposits.
- Gig payouts. Delivery and ride platforms pay daily, weekly or on demand, and the borrower may switch between options. The payer is consistent but the timing is not.
- Seasonal income. A landscaper or tax preparer earns most of the year's income in a few months. A six-month lookback can miss the season entirely or catch only the peak.
- Late-paying clients. A consultant with net-60 terms receives payments on the client's schedule, not the borrower's.
- Job changes. A new employer starts a new source partway through the lookback. Detection shows two short sources instead of one continuous income.
The fix is not to make detection looser. Loose grouping merges unrelated deposits and invents patterns. The better approach reports these deposits honestly as irregular, so the reviewer can apply the program's rules for variable income. The comparison of bank statement income and tax return income shows why variable earners are often judged on a longer view of deposits rather than on the regular sources alone.
Scheduled deposits that are not recurring income
The opposite error groups a regular deposit that is not income. Automatic transfers from savings, a partner's monthly contribution, a roommate's rent share and repeating loan draws all arrive on schedule and can look exactly like a paycheck. Counting them overstates what the borrower earns.
Common examples:
- Own-account transfers. A standing transfer from savings to checking on the first of each month. Easy to exclude when the savings statement is in the file, easy to miss when it is not.
- Household contributions. A spouse or partner who is not on the loan sends a fixed amount each month. Some programs treat this as non-borrower household income, most do not count it toward qualifying income.
- Rent from a roommate. Regular, but usually not usable unless the program allows boarder income and the paperwork supports it.
- Line of credit draws. A business owner who draws from a line each month to cover payroll creates a scheduled deposit that is debt, not revenue.
- Payment app round trips. Money sent to a friend and returned on a schedule, often to split shared bills.
Each of these needs a label other than "income" before averages are computed. Detection should still group them, because the grouping is useful evidence. It just has to stop short of calling them earnings.
Recurring income sources an underwriter should confirm
An underwriter should confirm three things for each recurring source: who the payer is, whether the pattern will continue, and whether the program allows that income type. The statement shows the money landing. Pay stubs, award letters, contracts or client invoices show why it lands and for how long.
A short checklist per source:
- Identify the payer. Match the description to an employer, agency or client named in the application.
- Check the length. Count months of history. Many programs want a source to be in place for a set period before it counts.
- Check the trend. Compare early and late months. A source that has fallen by a third is not the same as a steady one, even if the average looks fine.
- Match a document. Tie payroll to stubs, benefits to award letters and retainers to a contract or invoice history.
- Look for an end date. Contracts expire, benefits can stop at a certain age and part-time school jobs may pause in summer.
- Record the decision. Note which sources count, which do not and why.
Credit unions that lend to members with several small income streams meet this checklist often. The guide to bank statement analysis for credit unions covers how member files differ, including statements from accounts held at other institutions.
Testing recurring income detection on closed loan files
The fair test of recurring income detection uses closed files where an underwriter already identified every source by hand. Run the same statements through the tool, then compare source lists line by line. Count sources the tool missed, sources it invented and sources it split or merged incorrectly.
Pick test files that stress the feature rather than flatter it:
- A biweekly earner whose lookback includes a three-paycheck month.
- A borrower who changed employers or payroll processors partway through.
- A self-employed borrower with three or more retainer clients and some one-off work.
- A file with a standing savings transfer, and a second version of the same file without the savings statement.
- A commission or gig earner.
Score each file on the source list first and the average second. A tool can reach the right average by accident, with one error cancelling another, and that luck will not hold on the next file. The plan for a bank statement analysis pilot explains how to pick files and set a pass bar before a contract is signed, and the checklist for choosing a bank statement analyzer lists the other features worth testing in the same run.
TrueBankFlow groups deposits from the same source on a regular schedule and shows each group's cadence and average amount, with the lines behind it, so the reviewer decides what counts. Lending teams can ask for a setup slot through the get started page.