Why are some of my transactions getting matched incorrectly in YNAB?
YNAB has a matching algorithm that will essentially try to match a completed transaction with a pending one. YNAB calls these pending transactions 'user entered transactions'. They are identified as having no originating import ID in YNAB and this can happen in two ways - either you entered the transaction manually by typing it into YNAB or BudgetSync sent a 'pending' transaction over from your bank. Either way, YNAB sees them as 'user entered' and therefore considers them eligible for 'matching'.
When matching, YNAB looks at transactions with the same amount and with a date +/-10 days from the imported transaction date. If it finds a match it places a small chain link icon next to it and asks you to approve.
At this point, you can either approve the match (thus forever agreeing that the transactions are one and the same) or 'unmatch' it thus telling YNAB that they made a mistake and the match was incorrect.
When syncing from Revolt, the most common occurrence of this is when you have auto-topup enabled. As an example, Revolut auto-tops up your account by €100 on Monday. BudgetSync sends that transaction to YNAB and it happily creates it in your budget account. By Wednesday, you've done some spending and Revolut auto-tops up your account by another €100. BudgeSync merrily sends this second auto-topup to YNAB but low and behold you see it was matched with Monday's transaction resulting in your budget's balance looking misleadingly high by exactly €100.
To resolve this, simply click the little chain link in YNAB and then click 'Unmatch Transaction'.
The ongoing discussion here is that the auto topup is NOT a pending transaction and therefore has a transaction id and should not be matched by YNAB. For now, it is and needs to be unmatched manually to ensure your budget properly reflects the top up.