johannesgerer / buchhaltung

Smart tools for the ledger universe
http://johannesgerer.com/buchhaltung
MIT License
97 stars 8 forks source link

Interactive `match` and `add` #27

Open ohbadiah opened 6 years ago

ohbadiah commented 6 years ago

I find I prefer to book transactions as I match them, rather than going through an entire match and then adding each one. That seems to require the following workflow:

  1. Come upon a transaction during match that needs to be booked
  2. Match it, then save and exit
  3. Run add, typing in the amount from the transaction and selecting the transaction from the menu
  4. Book the transaction
  5. C-c C-c in order to exit, ignoring warning message
  6. Start up match again

This workflow is okay, but it would be really nice if it were streamlined, even to the point of booking and matching in the same interactive buchhaltung process.

varac commented 6 years ago

+1 for this.

This looks very similar to #16.

johannesgerer commented 6 years ago

Yes, I understand why you find these 6 steps cumbersome. Both match and add are designed for to process many transactions in a row. Switching between them slows things down.

Do you think your workflow could be modified to first run match on all transactions and then add?

johannesgerer commented 6 years ago

Having said that, I think stream-lining is a good idea and user's input is exactly the reason why I open-sources this in the first place. It may be interesting to collect everybody's way of doing things (conceptually) and then try to distil a better user-interface from that...

varac commented 6 years ago

I'd also prefer to combine match+add functionality.

When I encounter a transaction that is unclear, I need to figure out what it is about during buchhaltung match in the first place. Then I want to add some information right away so I don't need to go this process a second time when I start wondering about it during a later buchhaltung add. Thinking twice about a transaction is not a nice workflow.

ohbadiah commented 6 years ago

Here is, I think, the root of the problem: OFX is (in my experience) unworkable. In my experience, finding settings that work for a given bank is like trying to roll a 5 on a six-sided die. Therefore, update cannot be used to get electronic transactions. Therefore, CSV files must be manually downloaded and imported into the ledger. Therefore, frequently importing transactions from American banks into my ledger is impractical. You Europeans have it very nice, I think.

It might be possible for me to do match and add in separate passes if I did so frequently, so that the total number of transactions is small enough for the context to stay in my head between passes. But most often I've been bringing in dozens of transactions at a time, even in excess of a hundred. As @varac alluded, the process of remembering or deducing the details of a transaction takes a good deal of energy, and once the details are remembered, it's desirable to record them immediately.

Despite the cumbersome nature of my six-step workflow, it wasn't until I arrived at it that I thought I had "figured out" what buchhaltung is supposed to be.