Banking & Chart of Accounts · Reshaped

Search transactions across all bank accounts

Filed as “Bank Reconciliation: Search for transactions across all accounts”

The walkthrough

61.7 seconds. Captions are burned in; an .srt and .vtt sit beside the file.

The friction, as reported

“Can we have the ability to search for a transaction , by amount , payee or description across all bank accounts. Rather than having to go into each bank account and sort dates etc and than search.”

Verbatim from the Xero Product Ideas board. Reproduced as a contiguous extract and checked against the harvested record.

What the walkthrough shows

  1. The search gains a scope. It covers 6 of 8 accounts.
  2. Two are withheld by your user role, and both are named.
  3. A silently filtered search would read as an empty one.
  4. One search. Three hits, in three different accounts.
  5. The Account column says where each one lives.
  6. The 1,240.00 was sitting in Petty Cash all along.
  7. Each result opens its own account. None offers to match.
  8. Matching here would post the money to the wrong account.
  9. Director's Loan and Payroll stay hidden. The search says so.

The assessment

The opportunity, in a different shape.

Searching all accounts is a promise the permission model cannot keep.

Searching every account you are entitled to, and naming the ones held back, can.

The reasoning

The job is real and well evidenced. The proposed form is wrong in two specific ways.

It has to be permission-filtered, and a silently filtered search is worse than no search. If a bookkeeper searches all accounts, gets nothing, and the transaction was sitting in an account their role hides, they will conclude it does not exist and go and create it. Silent filtering converts a permission boundary into a data-integrity bug.

It should not live in Find & Match, where a cross-account hit is a matching footgun. Matching there would post the money to the wrong account.

The better form defaults to every account the current user is entitled to — not “all accounts”, which is a promise the permission model cannot keep. Every result row carries its Account. The search states its own scope on screen: six of eight accounts, two hidden by your user role. That last part is the design payload of the whole idea and it is the thing the literal request omits.

Whether the two hidden accounts should be named or merely counted is a genuine open question. Naming them tells the user what they are missing so they can go and ask for it. That is an argument rather than a settled fact, and it should be decided rather than defaulted.

out/rec-search-all-accounts-full.mp4 61.7 seconds 9 captions Original idea on the board →