Hello everyone, I am still pretty new to beancount (I started my adventure around a month ago) and I am still tuning my importers and my ledger.
When writing importers for my banks, I realized that they often provide multiple dates for one transaction, e.g. "booking date" and "purchase date"), and I was wondering which I should choose as the date for the transaction entry. Also, I was wondering if one of them is better, or whether it is just a preference (e.g. if I would like to open source / share the importers, should it be an option to choose one or the other, or can I just choose one of them). Let me describe situation with UBS bank statement - they provide 3 dates: "booking date", "trade date", "value date". Here is my current understanding of them: - booking date - a day when bank puts a transaction into their books. Most of the time (always?) it is greater or equal to the other two dates. I also believe it has the nice property that once there is a transaction with date X, then later imports (new transactions) will never have a date X or before (which makes "balance" entries stable and never brake). - trade/value date - I believe this is the date when the trade actually occurred. For example if I bought something on Saturday, the day will be Saturday but it can be booked on following Monday. The only difference between trade and value date I found was when there is a "e-bill" (a way in Switzerland to automatically pay bills). In this case "trade date" will have a date when the transaction first shows in the bank account "e.g. 2021-01-29", but then the value date is when the transaction was scheduled for (e.g. first of the month, 2021-02-01). Booking date seems to also match 2021-02-01 for those transactions (but I only have few of those, so I am not sure if they will always match). There is one more difference, when importing transaction, one can choose them to sort them either by "booking date" or "trade date" - there is no way to sort them by "value date" (import contains the "balance" column, that I could use to generate automatic "balance" entry). Currently, I am using "value date" because it represents the actual date of the trade (which helps me to remember what the transaction was for, if the default bank transaction description is not clear), and it also properly dates the periodic transactions that happen on e.g. first of the month (makes sure there is always 1 transaction for rent in a given month). I am also consider using "booking date" (and saving "value date" somewhere in the default description), so that I can automatically insert "balance" entries, and those entries should almost never break with the new import. UBS credit card importer has very similar issue, the data contains two dates: "booking date" and "purchase date" that have similar properties to the above one. Small note I want to add here is a refund scenario. If I purchased something on 2021-03-15, and then I return it, it is possible that return will be processed much later (even 2 months later), so it could be booked on "2021-05-15", but it would still have purchase date "2021-03-15" (which means if I have any "balance" entries in my ledger, they all break and I have to manually adjust them). Does anyone has similar issues? Any recommendations? Is it a personal decision (some people prefer one or the other), or is there a better choice (or something that should be at least considered a default / best practice)? I would love to hear from others! Thanks, Tomasz -- You received this message because you are subscribed to the Google Groups "Beancount" group. To unsubscribe from this group and stop receiving emails from it, send an email to beancount+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/d2d384f1-8658-4268-9b66-ba5e63d13433n%40googlegroups.com.