Catching the same entry being posted twice — a common and consequential error that balance checks do not catch, since a duplicate is internally valid.
Similarity matching over amount, account, period, narrative and preparer within a time window
pandas; RapidFuzz for narrative similarity