When the bank message starts with "other:" (case-insensitive), inference does not look for a month, neither in the text nor from the payment date. The trimmed message is written to Purpose, so reconcile books the payment as an "other" transaction for the person instead of a monthly fee. Messages containing "other:" elsewhere are unchanged. - matching.IsOtherPurpose / is_other_purpose shared by inference and reconcile - reconcile applies the rule to rows not yet processed by inference - no person found: Purpose is still written, row shows as unmatched - implemented in Go and legacy Python; four new parity fixtures Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
37 lines
787 B
JSON
37 lines
787 B
JSON
{
|
|
"case": "other_prefix",
|
|
"func": "scripts.match_payments.infer_transaction_details",
|
|
"captured_at": "2026-10-08",
|
|
"input": {
|
|
"tx": {
|
|
"sender": "Jana Novakova",
|
|
"message": "other: tournament leden 2026",
|
|
"user_id": "",
|
|
"date": {
|
|
"type": "string",
|
|
"value": "2026-04-15"
|
|
}
|
|
},
|
|
"member_names": [
|
|
"Alžběta Testovická",
|
|
"Tomáš Fiktivný (Tov)",
|
|
"Pavel Smutný (Štrúdl)",
|
|
"Jana Nováková",
|
|
"Adam Novák"
|
|
],
|
|
"default_year": 2026
|
|
},
|
|
"output": {
|
|
"matches": [
|
|
{
|
|
"name": "Jana Nováková",
|
|
"confidence": "auto"
|
|
}
|
|
],
|
|
"months": [
|
|
"other: tournament leden 2026"
|
|
],
|
|
"search_text": "Jana Novakova other: tournament leden 2026 "
|
|
}
|
|
}
|