Live data from Hacker News

Firefly III: A free and open-source finance manager

firefly-iii.org

121–130 of 135 posts

Re: Firefly III: A free and open-source finance manager

#121

Earlier quoted context omitted.

I've been using firefly over two years now. Data entry has not been been a problem: * Run the data-importer as a separate container. Takes maybe 20 minutes to configure correctly if you already know docker and docker-compose. * Download the transactions as CSVs from each of my 5 or so credit card and bank accounts that get regular use. * Upload them through the data-importer. It lets you configure and save settings f…

I just never could bring myself to enter my bank password into Plaid. Sure “everyone does it”, but most banks have disclaimers in their terms of service that if you lose money because your password was compromised through password sharing they aren’t liable for that loss. I instead built a series of playwright scripts to automate signing into my bank accounts and downloading the CV, then importing (to lunch money, bu…

Chase is the only US bank I know that provides a proper API for plaid to connect to (plaid redirects you to chase.com for login, you acknowledge, and then give plaid an oauth token for read-only access). I don't have an impression that chase is particular tech-savvy comparing to other banks and I wonder why other banks cannot support this.

Re: Firefly III: A free and open-source finance manager

#122
Unfortunately Firefly is not really a double-entry bookkeeping system. There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry. Both is equally bad in my opinion. I think a much better solution would be to differentiate between my accounts and 3rd party accounts.

Also, what I was struggeling with (and not only in Firefly, but all budgeting apps) was the sometimes significant delay between the purchase and the bank transaction. In addition there is the issue with split transactions from imported transactions. Basically manual data entry is too much work and automated data entry is too faulty. I roughly sketched a process in my head which could solve that.

It basically disinguishes between manually added information and bank information. Both is stored and then combined to one transaction. This closes the gap between the bank domain and the "user domain".

1. Let the importer bring in all the bank transactions with the date, the transaction is executed. Display on the right.

2. On the left there are manually entered transactions, possibly with split transactions.

3. Now you make matches.

4. If there is no manual entry, you can add some information like splitting the transaction, add a date you did the purchase, etc. by clicking on the bank transaction.

5. All the above could be automated by rules. Like making matches, giving it a pretty name, assigning a category, etc.

6. Last step: Manually sign off all the matches. If a time period has only signed off transactions it gets a "true" designation otherwise a "preliminary".

Happy to hear about your thoughts on that!

Re: Firefly III: A free and open-source finance manager

#123
post #120

Earlier quoted context omitted.

Can you share a link to the talk? Would enjoy listening to it

Of course! As I recall the morale of the story is "just get started". The site started with an Excel spreadsheet he was selling to his neighbors haha. https://youtube.com/watch?v=jw8N7YrBM4o

Thanks - Yeah I've been looking for a YNAB like tool but for investments and I haven't been able to find one I like and I've looked at all of them.

Started building my own so I'm interested to see what he says.

Re: Firefly III: A free and open-source finance manager

#124

Unfortunately Firefly is not really a double-entry bookkeeping system. There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry. Both is equally bad in my opinion. I think a mu…

> There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain

Sure, but that doesn't make it any less of a double-entry bookkeeping system.

> Now I can either create the furniture store as both source and destination account or delete the first entry. Both is equally bad in my opinion.

The first is correct bookkeeping. The second is bad.

Regarding the process you suggest, each step in your workflow is a massive undertaking to build. And it serves exactly one (1) user for whom the workflow fits: you.

It's how I started Firefly III: solving my own problem. So I guess you know what to do ;)

Re: Firefly III: A free and open-source finance manager

#125
post #121

Earlier quoted context omitted.

I just never could bring myself to enter my bank password into Plaid. Sure “everyone does it”, but most banks have disclaimers in their terms of service that if you lose money because your password was compromised through password sharing they aren’t liable for that loss. I instead built a series of playwright scripts to automate signing into my bank accounts and downloading the CV, then importing (to lunch money, bu…

Chase is the only US bank I know that provides a proper API for plaid to connect to (plaid redirects you to chase.com for login, you acknowledge, and then give plaid an oauth token for read-only access). I don't have an impression that chase is particular tech-savvy comparing to other banks and I wonder why other banks cannot support this.

The EU has an open banking API regulation that requires banks to make such an API available, without having to do password sharing.

https://www.bloomberg.com/professional/blog/europes-new-api-...

There's no reason (beyond the general dysfunction of our legislature) that the US couldn't pass a similar law. Failing to do so is holding back out banking industry and making us all dramatically less secure.

We desperately need to mandate banks provide this kind of access. It's absolutely ludicrous that I don't have a way to give various services READ-ONLY access to my bank account information. It seems intolerable to me that I would have to give WRITE access to Plaid for them to enable someone to categorize my transactions.

Re: Firefly III: A free and open-source finance manager

#126
post #124

Unfortunately Firefly is not really a double-entry bookkeeping system. There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry. Both is equally bad in my opinion. I think a mu…

> There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain Sure, but that doesn't make it any less of a double-entry bookkeeping system. > Now I can either create the furniture store as both source and destination account or delete the first entry. Both is equally bad in my opinion. The first is correct bookkeeping. The second is bad. Rega…

>> There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain

> Sure, but that doesn't make it any less of a double-entry bookkeeping system.

Maybe let me formulate it a bit more diplomatic: It is not what I would expect from a double-entry bookkeeping system. Personally I find one account for each person more intuitive. There may be reasons for not doing this but they are not clear to me yet.

> Regarding the process you suggest, each step in your workflow is a massive undertaking to build. And it serves exactly one (1) user for whom the workflow fits: you.

> It's how I started Firefly III: solving my own problem. So I guess you know what to do ;)

I know that implementing this process is not walk in the park. Please don't see it as a request for you to implement that particular feature because I need it. But for me this would solve an issue I had with all of the personal finance tools. Therefor I wrote down my thoughts, maybe they resonate with someone and it results in a fruitful discussion. Or maybe someone had similar thoughts...

Re: Firefly III: A free and open-source finance manager

#127

Unfortunately Firefly is not really a double-entry bookkeeping system. There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry. Both is equally bad in my opinion. I think a mu…

> There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry.

The use of expense and revenue accounts is standard, but I find it surprising that you can't enter a negative amount for a payment. There isn't even a "return" transaction type with a similar effect. That's how I would handle returns in my own accounting software (HLedger): Original payment, $100 from checking (asset) to merchant (expense). Return, $-100 from checking to merchant, with a comment identifying the original transaction. It doesn't make sense to have separate "Furniture Store" expense and "Furniture Store Return" income accounts—that does not provide accurate income & expense reporting. Logically, after the return you have no expense or income related to that purchase.

Of course HLedger, being much less opinionated, doesn't actually care about "source" and "destination" accounts—that's a matter of how you interpret them. IMHO it's far easier to just think of the accounting system as a single directed graph where nodes are accounts and edges are transactions. A "negative" edge is just a transfer in the opposite direction.

This does mean that the income/revenue accounts have negative balances, which can be counter-intuitive, but it makes sense once you learn to think of the income account balances as reflecting changes in the source of money (i.e., $-100 in an "employer" income account means your employer has $100 less because they it to paid your asset account) rather than the amount of income you've received. Likewise, a positive balance in an expense account means that the recipient of that money has more because of your payment, not that you do. Assets and liabilities are your accounts and sum to your net worth; the equity accounts, which I would define to including income and expense accounts, belong to your counterparties, and are relative rather than absolute since they only reflect the transactions which are relevant to you.

> Also, what I was struggeling with (and not only in Firefly, but all budgeting apps) was the sometimes significant delay between the purchase and the bank transaction.

HLedger addresses this by tracking two separate dates for each transaction, with options to choose which one to use for a given report. This can cause some issues with balance assertions which lie between the two dates, though, so I just use a priority system—the date my bank shows is always "right" even if the transaction occurred some days prior. It would be nice to be able to set a date for each account, which would probably fix the balance assertion issue, but then you could have transactions which didn't balance (sum to zero) for certain intervals. (Perhaps this is acceptable as long as the transaction eventually balances?) HLedger, like most other accounting software, also tracks flags for pending and cleared transaction which can be used in reports and queries.

Re: Firefly III: A free and open-source finance manager

#128

Unfortunately Firefly is not really a double-entry bookkeeping system. There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry. Both is equally bad in my opinion. I think a mu…

> There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry. The use of expense and revenue accounts is standard, but I find it surprising that you can't enter a negative amount…

Recent discussion of "two dates" vs "per-account dates": https://www.reddit.com/r/plaintextaccounting/comments/uy5nlh...

Re: Firefly III: A free and open-source finance manager

#129

Is double-entry still needed? I feel that it muddles storage logic with business logic. If it's an error-detecting raid1 storage system, can't we just use raid1 storage configurations separately from the application?

I learned both single and double entry bookkeeping and double entry just makes much more sense.

In practice most computer-based accounting packages only simulate the appearance of a double-entry bookkeeping system. In traditional double-entry bookkeeping one must manually enter the data for each transaction into multiple journals: a minimum of twice, or more than twice for split transactions. This is what allows the journals to be cross-checked for consistency. The reports produced by computer-based "double-entry" systems will always be consistent, however, because they're really just different views of the same set of multi-account transactions recorded in a general ledger rather than distinct single-sided transactions recorded in account-specific journals.

"General-ledger accounting" (for lack of a better term) is superior in terms of having a single source of truth, but not very practical for manual accounting since all the transactions are mixed together. The introduction of computers changed all that by making it easy to generate targeted reports from the general ledger.

Re: Firefly III: A free and open-source finance manager

#130

Earlier quoted context omitted.

> There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry. The use of expense and revenue accounts is standard, but I find it surprising that you can't enter a negative amount…

Recent discussion of "two dates" vs "per-account dates": https://www.reddit.com/r/plaintextaccounting/comments/uy5nlh...

Thanks for mentioning that. It looks like there is support in HLedger for per-posting / per-account dates via `date:` tags[0]; I'm not sure how I missed that before. For the auxiliary dates, I suppose one could just ignore balance assertions when using the `--date2` option, but IMHO it would be better to set a posting date for the bank account for when the transfer cleared rather than an auxiliary date on the transaction as a whole. The expense account would then show when the expense was incurred, and the bank account would show when it cleared. Usually only the latter would have a balance assertion.

[0] https://hledger.org/1.25/hledger.html#posting-dates

Post reply on HN