Skip to content
The TestTiesIn RivanePublished October 11, 2026

If two bank lines share an amount, let the reference decide.

Most advice on bank matching rules is about how many days to allow. We ran six rules on the same eleven statement lines, and the setting that decided the result was what the rule does when two entries fit.

Eleven statement lines to test.

Ask what date range to use for auto-matching and you will get a number. NetSuite’s built in rules use three days and then ninety. A recent NetSuite guide suggests five days for checks and two for ACH and wires. Those are sensible numbers. What the guides leave out is what happens when two entries fit the rule, and in a real month that is most of the trouble.

Here are eleven lines from an example operating account. The book date is when the entry was posted in the ledger. Two things make the month ordinary rather than tidy: Customer C’s receipt was posted a week after the money landed, and Customer B’s receipt of 1,200, posted on day 5, never reached the bank this month.

Example statement lines and the book entry each one truly belongs to. Dollars. The reference is what the bank line carries and what the book entry carries. Customer B's 1,200 receipt, posted on day 5, is in the books but not on the statement.
Statement lineAmountBank dayBook dayReference
Office rent(12,000)11none
Software subscription(899)21none
Customer A, annual plan1,20043INV-2201
Customer C, annual plan1,200613INV-2215
Contractor X(4,500)1110BILL-310
Contractor Y(4,500)1110BILL-311
Check 1041 clears(2,350)1621041
Supplier ACH(2,350)1615BILL-318
Customer D, wire3,0002120INV-2230
Customer E, wire3,0002724INV-2236
Bank fee(35)28not bookednone
Example statement lines and the book entry each one truly belongs to. Dollars. The reference is what the bank line carries and what the book entry carries. Customer B's 1,200 receipt, posted on day 5, is in the books but not on the statement.

Six rules, same month.

Every rule requires an exact amount. “Refuse any tie” means a match is made only when the statement line has one candidate and that candidate fits no other statement line. “Closest date” means the rule picks the nearest entry and moves on.

The eleven example lines under six rules. Windows count days either side of the bank date. The bank fee has no book entry under any rule, which is the right outcome. Our calculations.
RuleMatched rightMatched wrongSent to reviewNo candidate
1. Exact amount, same day only10010
2. Within 1 day, refuse any tie3062
3. Within 3 days, refuse any tie2081
4. Within 10 days, refuse any tie2081
5. Within 3 days, take the closest date7202
6. Reference first, then rule 310001
The eleven example lines under six rules. Windows count days either side of the bank date. The bank fee has no book entry under any rule, which is the right outcome. Our calculations.
Eleven statement lines under six matching rulesSame day only matches 1 line right. Within 1 day refusing ties matches 3 right and sends 6 to review. Within 3 days refusing ties matches 2 right and sends 8 to review. Within 10 days refusing ties matches 2 right and sends 8 to review. Within 3 days taking the closest date matches 7 right and 2 wrong. Reference first matches 10 right. The rest have no candidate.ELEVEN LINES, SIX RULES.Matched rightMatched wrongSent to review1. Same day only1 / 0 / 02. 1 day, refuse ties3 / 0 / 63. 3 days, refuse ties2 / 0 / 84. 10 days, refuse ties2 / 0 / 85. 3 days, closest date7 / 2 / 06. Reference first10 / 0 / 0
Example statement lines from one month. Figures are right, wrong and sent to review; the remainder of the eleven have no candidate. Our calculations.

Going from one day to ten did not add one correct match. It brought more same amount entries into range: the three 1,200 receipts, the two 3,000 wires, the check and the ACH for 2,350. Every one of those became a tie.

The closest date rule looks far better, seven matches and nothing to review, until you check the two it got wrong. Customer C’s 1,200 was matched to Customer B’s receipt, the only 1,200 entry close by. The account still balances, so nothing looks wrong, but Customer B now shows as paid when the money never came, and Customer C’s entry sits unmatched as if it were in transit. The cleared check was matched to the supplier ACH, so check 1041 stays on the outstanding list after it has cleared.

What the big systems do with a tie.

NetSuite’s system rules run in a fixed order: transaction number and amount, the same with prefixes and leading zeros removed, then amount within three days, then amount within ninety. The three day rule accepts a book entry dated the same day or up to two days before the bank line. When a rule finds two or more possible matches it does not match automatically, unless enriched bank data separates them, and a person picks.

Dynamics 365 Finance takes the other default: a matching rule matches the first bank document that meets its criteria. A parameter in Cash and bank management makes several documents that match on amount go to manual matching instead. If you run advanced bank reconciliation, check how that parameter is set.

Oracle Cash Management counts date tolerance in days before and after the statement line, requires an exact match when no tolerance is set, and allows an amount tolerance only in one to one matching. Business Central asks for a transaction date tolerance in days when you run Match Automatically, and searches only the posting date if you leave it at zero.

Let the reference go first.

Rule 6 matched every line that had a book entry, with no ties left over, because each repeated amount carried a different reference. Two receipts of 1,200 are a tie; INV-2201 and INV-2215 are not. NetSuite’s own system rules also run the transaction number checks first.

The references you control are the easy ones: check numbers, and the bill or payment run number you put in the remittance field of every ACH and wire you send. Customer receipts are harder, because not every customer quotes an invoice number. That is where refusing ties does its work. The cost is a short review queue, and the queue doubles as a list of the customers to ask for a reference.

A rule set you can defend.

  • Pass one, reference. Match on an exact amount and an exact reference: the check number, the payment run or bill number you put on outgoing payments, and the invoice number when a customer quotes it. Auto-match these.
  • Pass two, amount and date. Exact amount, a window of one to three days either side, auto-matched only when there is exactly one candidate on both sides. Anything with a second candidate goes to a person.
  • Pass three, suggestions. Wider windows, for checks in particular, offered as suggestions and never applied on their own.
  • Amount tolerance: zero. Use a rule that posts known bank fees instead, and keep any tolerance for foreign currency rounding on a separate rule.
  • Lines with no candidate are not failures. A bank fee or interest credit has no book entry yet, and the right outcome is to post one.

Then test it on a real month you have already reconciled by hand. Count the right matches, the wrong ones, and the ties. A rule that produces no ties on a month with recurring amounts is choosing for you somewhere.

How Rivane matches today.

In Rivane, a statement line is matched to the cash line of a posted journal entry on the bank’s ledger account. The amount must be equal and in the same currency. Entries dated the same day or one day apart are matched automatically; two to five days apart, they are offered as suggestions for a person to accept. Each match records whether it was automatic or manual, its confidence band and reason, and who made it and when, and undoing it is recorded too.

Rivane bank matching, as built

# How Rivane matches a statement line today.
# Fixed values, not configurable yet.

compare      statement line amount
   with      the cash line of a posted journal entry
             on the bank's ledger account
amount       must be equal, same currency
date gap     0 to 1 day     automatic match
             2 to 5 days    suggested, a person accepts
rank         date gap, then payee name similarity
same score   lowest internal entry ID
reference    not used for matching yet
pairing      one statement line to one journal entry
each match   records type, band, reason, who, when

Some limits to plan around, as built today. The window is fixed, not a setting. The reference on the statement line is not used for matching yet, so rule 6 cannot be set up. Candidates are ranked by date gap and payee name, and when two still score the same, the tie is settled by internal entry ID without a flag. Nothing checks whether the same entry also fits another statement line, so on the example above the two lines that rule 5 got wrong would also be matched automatically, since each had a single 1 day candidate. Each journal entry pairs with one statement line, so a deposit covering several receipts is matched by hand. If your month has many recurring amounts, sample the automatic matches against the remittance until reference matching ships.

Keep the evidence your auditor will ask for.

  • The rules in force, in the order they run, with the date each took effect.
  • For every match: which rule made it, automatic or by a person, who and when.
  • A monthly sample of automatic matches checked against the remittance, with the wrong matches found and the rule that made each one.
  • The list of ties sent to review and how each was resolved, which is also the list that tells you where references are missing.

Decide the tie rule before the window.

Pick a short window and stop worrying about it. The decisions that change the result are whether references are matched first and whether a tie goes to a person. On this example, those two settings were the difference between ten right matches and two quiet wrong ones.

To see how bank lines, journal entries and the review queue fit together in Rivane, look at reconciliation in Rivane.

Sources

A note on how this was researched. The NetSuite, Oracle and Microsoft behaviour comes from each vendor’s own documentation, read in the page, and may differ by release; test any rule in a sandbox first. The statement lines are an example, and every figure was calculated in a script, which you can repeat with a spreadsheet. The Rivane section describes the matching engine as built today, checked against the code rather than marketing copy.

On embedded social posts: we looked for public posts from vendors or practitioners on bank matching windows and ties and found none we could verify as current, relevant and authentic, so this article uses ordinary citations instead.