Brian Lovin
/
Hacker News
Daily Digest email

Get the top HN stories in your inbox every day.

toyg

Looks good but the real problem, as for 90% of similar programs, is the volume of necessary data-entry. Paid-for options like YNAB, nowadays, can fetch transactions from many mainstream US/EU banks and credit providers. Without that sort of feature, it's a real drudge to keep up entering every single expense.

scotttopic

I look at this from the opposite perspective. Seven years of YNAB4 trained me to include manual entry of every transaction, assigning categories, splitting it as necessary, etc right there at the moment I make the purchase. It's baked into my process, as that was one of the core components that the old YNAB taught. At this point I could never trust an automated system for everyday purchases, where it couldn't accurately know how to split transactions, or where to assign things (although scheduled bills I do input as recurring transactions so to an extent I do have some automation).

For example, take a trip to Walmart where you purchased things that cross like 3 or 4 categories. With a system relying on importing data from your bank, a couple days after the transaction posts you'll have this generic assignment to Walmart, and you must then try and remember how to split it (eg between Groceries, Clothes, Technology etc). Instead, I have my transaction manually sorted in my YNAB app before I've even left the store.

equinoxmist

I thought this would be a problem for me and resisted using imports in YNAB... I changed to using it and I found I was more likely to actually keep on top of my budget knowing I didn't have to login to 2/3 different systems to start entering every transaction.

rco8786

> For example, take a trip to Walmart where you purchased things that cross like 3 or 4 categories.

I'm still waiting for the next step in these apps, where I connect my account to Walmart/Amazon/Target/etc and it can do item/category breakdowns automatically based on the actual line items in the order.

Otherwise, I am with you. I use a much simpler system without categories but I manually enter every dollar I spend right when I spend it.

yencabulator

It seems the companies are actively trying to avoid that.

Amazon order confirmation emails used to list the products. Now they don't. Some other company might use that information, so the user can't have it.

JC5

This depends on how you look at financing and budgeting (duh). But Firefly III was originally designed (by me) to lower your running expenses. It doesn't feature a lot cool budget automation because that leads to more charts but less money.

The original idea was to make it hard (or at least with some friction) to create transactions. This also excluded any way of importing data. That way you feel your transactions twice. Once when you spend the money, and twice when you have to enter it.

Making you finances tangible is a very good way of spending less money. Importing all your shit just gives GIGO but with nicer graphics.

sverhagen

To ask something that now seems obvious... in your experience, doesn't that friction just drive people away from the program? That seems to me the natural response.

JC5

Firefly III is missing plenty of features (see below). I started Firefly III with a single user (me) and everything else is a bonus.

https://docs.firefly-iii.org/firefly-iii/about-firefly-iii/w...

I will admit that I caved under pressure and built the Firefly III Data Importer:

https://github.com/firefly-iii/data-importer

Helmut10001

Nice, came here to says thanks for the explanation! I was following Firefly III since a couple of years, already installed a test version on a local VM. I set up auto-pull for 2 of my 6 bank accounts, this did not work well (some transactions were missing, e.g. credit cards). I haven't found the time to proceed deeper.

For my partner and me, I keep an OpenOffice spreadsheet were I enter all expenses, so we know who owes whom how much. Also, I scan all my receipts and they are automatically renamed and moved based on patterns (paperless-ng).

I agree to your argument, seeing all your expenses in this way helps keeping a connection to how much is spend. I yet need to combine my two systems with firefly.

jeffwass

Can you clarify what you mean by scanning receipts?

Do you scan (presumably photo with phone?) and then autodetermine the cost and maybe even some sub-category breakouts?

sbehere

The data entry problem can be solved in some cases by fetching transaction data automatically using OFX from supporting institutions. Python’s OfxTools [1] works quite well for this. Quite a few large institutions in the USA support this (e.g. Amex, Chase) while some don’t (Bank of America). For the latter, transaction data can nevertheless be downloaded in ofx/qfx or csv format from the web interface, which can then be auto imported.

Once the transaction data is available, it is trivial to auto categorize it and create dashboards. I’ve blogged about my own process/tools for that here [2]

1: https://ofxtools.readthedocs.io/en/latest/client.html

2: https://sagar.se/blog/where-is-the-money/

kleebeesh

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 for each CSV format. I took five minutes to set that up the first time I imported CSVs and just keeping using the same settings.

I upload all of my transactions once a month and it takes about an hour to download them, import them, and categorize all of them (I also have a bunch of rules to auto-categorize, but there are inevitably a dozen or so bespoke transactions).

I've found that any of the solutions built on top of syncing backends like Plaid inevitably have issues: duplicates, missing txs, debit/credit mixed up. I even built my own custom Plaid-to-Firefly syncer at one point and found the data quality was very mixed, even when all my accounts are at major US banks. The data-importer takes some more up-front work, but it's more secure, way more predictable, and generally a solved problem.

ncallaway

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, but I might take a look at this later as an option).

zzyzxd

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.

bozhark

What a nuisance

1123581321

I appreciate the breakdown but I think you’re out of touch with how easy auto-import has become for most PF software users. They just see whatever new transactions have come in, as often as they care to look at their budgets. Like checking email.

kleebeesh

Maybe out of touch. I've used them all (Mint, ynab, pocketsmith, buxfer, some google-sheets-based app, probably tried a dozen others). All of the auto-sync features had obvious bugs. It works for a few months and then you end up with junk data. But if it works for you, carry on!

supernovae

this sounds like such a pain in the ass just to do my finances when other tools do it all for me…

kleebeesh

I guess it comes down to the tradeoffs you're willing to accept for privacy. I personally find it quite sketchy that Plaid takes your username and password to your literal money and then does some opaque screen-scraping just to grab your transactions. I also spent a lot of time working with their API and it did not inspire confidence.

rmesters

Here's two free solutions you can use for bank data sync (Nordigen & Saltedge): https://docs.firefly-iii.org/data-importer/install/nordigen-...

ywain

Unfortunately neither of these work in the US. Salt Edge supposedly supports US banks but when I reached out to them a few weeks ago (specifically for the purpose of using them with Firefly III) this was their reply:

> We regret to inform you that temporarily Salt Edge does not provide its services on the USA market.

_zoltan_

now you know how I feel when I want to use some US bases service.

in theory interactive brokers could link in my accounts but since I'm based in Switzerland this doesn't work. Sad. :)

emiller88

Agreed. I've found https://lunchmoney.app/ really nice.

tjbiddle

I'm a hugeeee LunchMoney fan. It's a solo dev and she does great! Hooked a few friends on it as well. This has been a lifesaver for insight into my financials and it's super flexible.

jonhohle

Bummer that it’s subscription only.

I switched from a decade old spreadsheet to YNAB. Then it went subscription and online only. It relied on the Adobe Air runtime which stopped working in macOS several years ago (32-bit only).

I haven’t looked at firefly yet, but I really want something that allows me to forecast expenses, and realize them as they occur and automatically adjust forecasts accordingly.

Buttons840

Most of these work be giving the application your bank credentials, right? This probably violates the terms and conditions of your bank and gives the application unrestricted access to your account.

PandawanFr

Afaik most use something like Plaid which works with the banks to get this data appropriately.

encryptluks2

Plaid does the opposite. It scrapes using your banks credentials.

rmesters

Depends. There's a bunch of providers (eg Yodlee) that ask for bank credentials (previously on HN https://news.ycombinator.com/item?id=18655712) Akoya in US and most European providers use real bank APIs.

wolverine876

As of several years ago, banks would provide csv files of transactions to customers. That's still more work than the paid options, but much less than individual transactions.

I suppose something like Firefly could create a module (or even sell one) that is preconfigured, and updated, with the best method for each bank - download csv, api, scrape, etc. In fact, they could charge for that service and fund development.

kailanb

I recently discovered PocketSmith[0] which is not free nor open-source, but I have found it to be the easiest to keep up to date. It automatically pulls transactions from most banks and credit providers, which I've been unable to replicate with other solutions.

[0]: https://www.pocketsmith.com/

bjeanes

Yeah I use them too. I keep meaning to set up Firefly III to try it but Pocketsmith _has_ been really good. For a period of time I had accounts in a couple of countries and it was one of the few tools which let me get a multi-currency view of all my finances across the globe. Highly recommend.

constantlm

+1 on the Pocketsmith recommendation. I've tried several others (YNAB, Lunchmoney, etc.) and I've been using Pocketsmith consistently over the past three years. It has integrations with just about anything, has support for crypto, etc. and their support is top notch.

resonious

I wish this site was more clear about which banks exactly are supported by bank feeds. It seems right now like I have to buy the service before I know if I can even use the bank feeds feature.

skoskie

It’s also one of the few that does a good job of forecasting balances.

PopAlongKid

To more accurately forecast a balance, why not just enter transactions with future dates and estimated amounts? Then a balance report with the same future date will be a good forecast.

sirsinsalot

I applaud the effort, but sometimes think apps like this when they promote self-hosting should have a mode of installation and operation that acts more or less like a desktop application.

TehShrike

My first thought when I saw "self-hosted" was "I wonder if I can pay a monthly fee to some other HN reader to get them to deal with the annoyance of hosting for me"

ocdtrekkie

FWIW, Firefly III has an old Sandstorm package, but it isn't currently maintained so it's a fair bit out of date. We aim for "like installing an app on your phone".

The problem here is ultimately on the platform your app runs on, not the app itself. If web servers are hard to spin up, so too are web apps.

prepend

They have a docker instal option. Granted it’s a bit of overkill but you can run it like desktop software.

sirsinsalot

I mean, a windows installer (or RPM) that doesn't require a background process so that more people can access the value of the software. Even Flatpak or something if we are talking Linux specific.

Having Docker and other "enthusiast" methods of running software makes it less accessible. Having a web-stack as the goto method of writing software doesn't make sense if it limits the audience that would gain value from it.

I say this as someone who professionally maintains a web application that comes with a Windows installer, macOS traditional installation and a Linux RPM. All with desktop icons and it being pretty invisible to the user that it is a web application aside from the HTML-looking UI style.

The software is for personal finance, it isn't for a niche that makes the install/access method particuarly sane. If it were software for managing a cluster of X-thing or something ... maybe.

plater

"a web application that comes with a Windows installer, macOS traditional installation and a Linux RPM".

I'm curious; how do you implement this (I assume you do not use Electron)?

Wouldn't a PWA (installed PWA) make the web app integrate the way you say with desktop icons, separate window, drag & drop etc?

ocdtrekkie

But that approach doesn't work if you intend for people to be able to access it from their mobile app, multiple PCs, etc.

Slapping a web server into a local desktop install and calling it good basically removes the vast majority of benefits of it being a web app.

herdst

Agree, ive installed this in the past and it was a pain in the ass. If i ever did budgeting/financial tracking again i would use a paid option

Phelinofist

That was also my gripe with Firefly III. I liked the looks of it but the setup was a PITA

ashton314

https://moneywell.app is still my favorite: event-based budgeting, automatic transaction import, buy-once run-locally forever. It’s perfect. macOS only unfortunately but I highly recommend.

Edit: not a shill, just happy. :) The killer feature for me is the event-driven budgeting: you load in your expenses and note when they occur, and MoneyWell figures out how much to allocate to the corresponding envelope automatically. So nice. Anyone else know of another PF system that does that?

anthropodie

Another finance manager recently open sourced https://actualbudget.com/

xthrowawayxx

This is great! I've been using Firefly III for years. However it consumes a good chunk of time to keep up to date at a line item resolution with many cards and accounts across countries as I've not automated any of it.

candiddevmike

If you're looking for budgeting like old YNAB and a general household management solution, checkout Homechart: https://homechart.app

BbzzbB

I listened to a talk by YNAB's creator last year (about development not the program itself). Didn't realize until this thread how popular it is.

bern4444

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

BbzzbB

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

kkfx

Honestly seems a bit confusing to me...

The dashboard is a bit configurable, ok, so I can cut things I do not want but a default with just balance/all translations scrollable, the latest visible/stock option with mean price paid and actual value, optional widgets for other financial means (raw materials and their value, currencies etc) would be far nicer than a big load of graphs...

Ease to add transactions is not much a thing since at least personally all must come from external sources like bank exports in ofx/qif/sv etc with manually just tagging, description etc and a merging feature for upcoming transactions when the date is due to merge them with the actual new entry from the bank, so better import/export (i.e. woob integration for banks who do not offer exporting) would be very nice.

Generally graphs are nice but data in tabular form + operations on such tables are much more useful, especially if can be done with a programming language like "hey, that's the table, now you can generate new ones with some query language and lisp/python/ as you wish, just add a "programmed entry" and you get input in sv form for code, SQL-alike for query DSL, output view as a table for sv data or graph or raw at your option.

Surely the last paragraph might not appeal end users, but a user who self-host likely use/can use/dream such features...

erulabs

Firefly III is excellent - there was a lot of excitement for Actual budget the other week (which is also excellent) but firefly has been a solid self hosted finance tool for years.

We have a one click installer for kubernetes over at https://kubesail.com/template/erulabs/firefly-iii if anyone is interested in self hosting this!

yessirwhatever

I found out about Firefly III a couple of weeks ago and wanted to try, but it seemed a bit more than what I needed. That's when I found out about Actual, which does seem to be an interesting solution. My issue with it is that they seem to have made the web version (intentionally?) not compatible with mobile, and their iPhone app requires a subscription of ~$10 a month. At first I thought I'd give it a try then felt sort of cheated. I don't mind paying for a solution but this seems like a shady way to charge money for me. Also I'm not a fan of subscription.

Anyway, I gave Firefly III a try and now I'm very happy that I did. I think those extra features that seemed too complicated at first are proving to be pretty useful.

brunoqc

actual is "going open-source", but "Unfortunately, the mobile apps are going to be deprecated"

https://actualbudget.com/open-source

funnym0nk3y

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!

JC5

> 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 ;)

funnym0nk3y

>> 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...

nybble41

> 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.

simonmic

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

nybble41

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

muznar

I literally had to reinstall this to a new free instance on Saturday after getting my instance deleted accidentally.

I have been tracking and exporting backups of my finances using Firefly since 2020. I am young, my finances are nothing fancy, they are mostly credit card purchases, my salary, and my rent.

I love the flexibility of personally serving this on a dedicated server. Similar to the other commenter it consumes a lot of my time too. I tried to automate by writing small custom shortcuts in Apple Shortcuts for repeated things like posting a grocery purchase. Firefly has a comprehensive API, I have widgets on my homescreen showing my credit card balances at all times etc.

I like knowing how much I spend on grocery each month, how much I spent clothing last year vs this year, the effect of having a Costco membership. It is fun and I am sure in the next 10 years it will be so much more interesting looking at data from early years.

Daily Digest email

Get the top HN stories in your inbox every day.

Firefly III: A free and open-source finance manager - Hacker News