Bulk operations — 50 at a time, never silent
Both bulk actions on the Transactions tab accept up to 50 transactions per request:
- Bulk clear marks selected transactions as booked. The response is never a bare "done" — every transaction that couldn't be cleared comes back with its reason: receipt required, already cleared, open client query skipped (unless you explicitly include it), ignored, or not found. You always know what happened to each row.
- Bulk categorize sets one category across the selection, with per-row safety checks: transactions that inherit their category from a matched invoice are skipped rather than overwritten, and a category that doesn't fit a row's money direction is skipped rather than mis-booked. Each row gets its own audit entry, and your corrections feed the category-learning loop — see how matching learns from you.
Smart cohorts — the two patterns that distort a P&L
Above the queue, TaxItEasy surfaces two detected groups as cohort cards. Detection is read-only — nothing is booked until you review.
Internal transfers
Money moved between the client's own accounts shows up as two transactions: money out of one account, money in on another. Booked naively, the same euro inflates both income and expenses.
- Detection: two open transactions on different own accounts, equal amount with opposite sign, within ±3 days.
- Confidence: High when one leg's counterparty IBAN names the other leg's specific account; Medium when only a distinctive mirror description links them.
- Review: the card ("Internal transfers · N") opens an overlay showing each suspected pair side by side — money out next to money in, with counterparty, account, date, amount, a confidence badge, and a net-zero line. Per pair you choose Confirm or Not a transfer. A Confirm all (N) button exists, but only after everything is visible — never blind bulk-clearing.
- Result: confirmed pairs are categorized as "Internal transfer (non-P&L)" and cleared.
Private deposits
The owner putting personal money into the business isn't revenue — but it arrives looking exactly like revenue.
- Detection: money-in with no matched invoice whose text contains an owner-capital keyword — 13 tokens in German and English, such as "owner deposit", "capital contribution", "director loan". Always Medium confidence, deliberately: hiding real revenue by mistake would understate tax, so the system never claims certainty here.
- Review: the card ("Private deposits · N") opens single-transaction cards; per deposit you choose Hide or Not a deposit, with a Hide all (N) option.
- Result: hidden deposits are categorized as "Owner capital / private deposit (non-P&L)" and cleared.
If a transaction matches both patterns, it surfaces only as a transfer — the structural two-leg signal outranks a keyword hit.
Why "non-P&L" matters
Both resolution categories are excluded from profit-and-loss totals: they map to equity and bank movements, not income or expense. That's the whole point of the feature — without it, an account transfer inflates both sides of the P&L, and an owner deposit overstates revenue. Resolving cohorts is often the single biggest accuracy jump in a new client's books.
One limitation to know
Dismissals — "Not a transfer" and "Not a deposit" — are stored for your browser session only. After a reload, dismissed pairs and deposits reappear in the cohort cards. Confirmations and hides are real bookings and persist normally; it's only the "no, ignore this suggestion" answers that don't survive a refresh yet.
Related
- The transaction work queue, explained — where cohort cards live
- Booking transactions for your clients — single-transaction booking and suggestions
- Period checklist and VAT return prep — cohorts as a fast path to a clean period