Benjamin-eecs/openrsi-commit-runtime-assets
0168
1diff --git a/CHANGELOG.md b/CHANGELOG.md2index dd4e67c..043c5f1 1006443--- a/CHANGELOG.md4+++ b/CHANGELOG.md5@@ -89,6 +89,13 @@ parser tuned to their template family.6 positive-units branch of `get_transaction_type`. Acts as a7 self-validating safety net for the entire transaction stream,8 not just the Franklin case.9+- **Failed-SIP `Payment not received` rows** are now classified as10+ `REVERSAL` instead of `REDEMPTION`. These carry negative units (the11+ provisional purchase is being undone) with a correct sign, so the12+ running-balance validator leaves them untouched — only the13+ description keyword distinguishes them, and it was missing from the14+ reversal pattern. Misclassifying them as redemptions injected a15+ phantom capital-gains event into the gains analysis.16 - **Stamp-duty allocation on split lots.** When a single purchase17 lot is consumed across N disposals the `FIFOUnits.sell` re-queue18 carried the *full* original stamp duty on every remaining slice,19diff --git a/casparser/parsers/_classify.py b/casparser/parsers/_classify.py20index 972e11c..c9046ee 10064421--- a/casparser/parsers/_classify.py22+++ b/casparser/parsers/_classify.py23@@ -75,7 +75,8 @@ def get_transaction_type(24 txn_type = TransactionType.PURCHASE25 elif units < 0:26 if re.search(27- r"reversal|rejection|dishonoured|mismatch|insufficient\s+balance",28+ r"reversal|rejection|dishonoured|mismatch|insufficient\s+balance|"29+ r"payment\s+not\s+received",30 description,31 re.I,32 ):33 