I am interested in knowing what people normally want to understand about their finances
PS: Please avoid editing the demo data. Download and run locally if you want to edit.
Do people who use this kind of software manually enter every transaction they do every day, or something?
I wrote my own idempotent parser before this existed but would give this a try first
Yes, exactly that. You can do automatic imports of your bank statements but that's arguably more hassle.
It takes 10 minutes at the end of my day to record all my transactions and it gives me a complete understanding of where my money is going.
I’d love to be able to do this, but realistically (for me), I’d need something that works reliably on my worst days. If I’m out late, on vacation for a few days, dealing with some on-call thing all night, etc., I don’t want to be beholden to a 10-minute per day commitment that accumulates linearly. Discipline can only get me so far in the face of chaos—automation can take me the rest of the way there.
For all the concerns and problems over tools like Mint, having all 10-20 accounts we have automatically sync their data into the system makes it so much easier to manage.
For longer term accounts like my 401k, IRAs, and brokerage accounts, I track money going in our out but only update the gains/losses every 6 months or annually on Dec 31st.
And then there's e.g., "Amazon Transaction AB2314ACWERF" which could be a new Fridge ("Household Appliances"), a 3D Printer ("Hobby Expenses"), a video game ("Entertainment Expenses"), or a giant double-headed adult massager ("Fax Machine Maintenance") - but the bank statement wouldn't have enough information.
I created an internal rails clone of financier.io and just created a spreadsheet web area i could copy/paste mass transactions in so i could add a batch at a time ( I suppose I could upload a csv also, but the problem is every bank has different formats)
I am not sure if it will work with bulk import though. It's easy to spot mistakes with single entry, hard to do when you have lot of them
So far every time I've relied on automatic categorization for this sort of thing it fails horribly. I don't think I've used anything that's GPT based though.
But for a few months now I've been thinking an OSS service that does this might be great for such OSS projects. Maybe I'll eventually start it.
This way, I would log every transaction immediately rather than wait until I get home.
I thought this would be fairly straightforward but it's been anything but that - what few open formats there were for this thing are all being sun-setted and most US based banks seem to only allow API access of any kind to established companies. The only real option is to go through Plaid which still seems to require initiating a business relationship with them to get through all the red tape.
For whatever reason, if your in the US, real time syncing of this sort of thing just isn't an option at the personal level.
Only other solution I can think of at this point is to manually scrape with a puppeteer script.
But to your point, it’s still a lot of customization and manual work, I never keep up with it for more than a month or two
I currently use YNAB4, and I've assigned categories to Payees, so when it sees a transaction to e.g., my local Pub, it knows to categorize it as Food. For stuff like Amazon or eBay, I need to manually categorize each transaction, but that takes a minute or two.
Technically, I might be able to get something similar by using some website to download everything, but honestly I don't trust them. I don't want all of my banking, investment, and spending information consolidated in one place for some tech bro douche bag to sell off to some richer fucks and then lose it to some hackers.
So the question is, would it make sense to have a Plaid plugin for this? Obviously because they are a 3rd party, it negates some of the benefits, but I simply cannot use this system manually because I have so many accounts. Maybe one workaround is to pull from Tiller (which uses plaid), then export a csv/excel.
Any chance there's a good plan in place to get automated data imports working, even if we need a 3rd party to do it?
I've personally used SimpleFIN to provide automatic imports in my own personal, kind-of selfhostable personal finance tool [1].
But connecting to Chase.com using plaid pulls in transaction statement is still information poor. The obvious consequence of this is that budget information is not correctly reflected in Mint(that info is actually in my Amazon.com silo). The only way to fix this rn is sadly manually.
As a tangent, I do feel though that LLM agents that can one day act on individuals behalf, reading info and making this manual job far more easier in absence of any govt regulations.
I ended up long down the rabbit hole with auto-downloading Amazon orders (originally with https://github.com/jbms/finance-dl, but then my own custom scraping) and importing and matching them up with credit card transactions using beancount-import (https://github.com/jbms/beancount-import).
This ultimately resulted in me spending a lot less on Amazon - to the point that now doing it manually wouldn't be too bad...
They do this lack of info lift and then recommend category splits.
Last time I looked at this, I thought it was stated that the free/sandbox tier is not guaranteed to have the same SLA as the production environment. But I can't find this in the documentation anywhere.
It's by far the best household bookkeeping tool I've ever used, but it won't ever get updates again (running it in a VM just so I can make sure I will always be able to run it), and it would be nice to have something that can track stocks and maybe even foreign currency - but for now, I would be happy with something that can just replace YNAB4.
The lack of Quicken OFX Import is a bummer :( But if the CSV import is good, it would still work. (As much of a pain as OFX is to implement for developers, especially since there's at least two major versions, it is pretty widely supported by US banks to download my transaction history)
Will probably give it a spin on the weekend, since the demo actually looks promising!
I may have been using YNAB wrong, but I had allowed budget categories to go negative and gradually fill them back in. Financier imported all of that data with 100% fidelity. YNAB5 couldn't do that and it's one of the key reasons I didn't upgrade. I wasn't keen on losing my historical budgeting data and starting all over (YNAB's official recommendation).
OFX is a huge PITA to implement, I've tried it and realized I would want to get paid to put up with it :) I'll try the CSV import, if it works then there's no need to overcomplicate stuff.
The Demo looks really good by the way, and props for actually having one!
It seems like most financial places rely on Plaid for the data integration, but that's a paid service I don't think Open-Source or free personal finance apps would use.
Chase charged like $10/mo or something like that for using OFX to download your bank statements (which is pretty ridiculous considering what it is). Eventually I abandoned it because none of the other bank accounts I needed to track offered OFX or anything similar that I could find, and just gave up.
The real pain is in the categorization (was this Groceries, Supplies, Dining, Medical Expense)?
I use KMyMoney which usually picks the same category as the last transaction from the same place. Saves some of the work, but it's still painful. I then wrote a script to export from KMyMoney to ledger format.
I (mostly) don't find it too onerous. But it is very much Inbox Zero. If you keep on top of it then it isn't much additional effort. While I'm waiting for the cashier to make change or print a receipt or while I'm walking out of the shop I can enter the transaction. But if I let a few days of them build up it becomes a more annoying 5-10 minute effort.
Also you need to do manual entry for anything you pay with cash anyway.
But the manual approach starts to fail in a family unless all involved are on-board with the data entry. (Which is almost never the case in my experience.) In practice that means all of my wife's expenses are a bit of a black hole.
I used to dread it too. But actually, in normal life, the volume of daily transactions is not that large. Besides, filling out a journal disciplines you. And VS Code does autocomplete for accounts and payees.
It's been a long time, so I may be getting it wrong, but I do have some introductory information of accounting. And according to that, in a transaction such as salary received, the accounting would look something like:
Income: Salary - Credit
Assets: Checking - Debit.
The Golden rule/s that apply here (Debit the receiver, credit the giver)
However, looking at the tutorial, the example given is:
2022/01/01 Salary
Income:Salary:Acme (Debit Account)
Assets:Checking (Credit Account)
This is the opposite of what I expect, however, I see this all the time when looking at tutorials/information written by SW devs.
What am I missing or is everyone else just getting it wrong?
In particular, the first example above is correct. An asset account is increased by debits; a credit increases a revenue account.
Salary received:
Income: Salary - Credit
Assets: Checking - Debit.
People refer to their bank account colloquially as a "debit account" and "credit account" because those are the types of accounts offered to them by a bank. From the bank's perspective, a consumer debit account is (correctly) considered a "debit" since any money deposited into the account by the account owner is an asset for the bank.
https://stuff.mit.edu/afs/sipb/project/gnucash/1.6.4/arch/i3...
A big confusion for me initially was that my banks always talked about crediting my account whenever money was deposited/added to my account.
I finally understood it when I realized that from the banks perspective, an increase in my account is an increase in their liability towards me; they now owe me more money. Which is why they call it crediting my account.
So now I think of it like this: an increase in an asset is always a debit, an increase in liability is always a credit.
I’ve finally settled on hledger for now. There’s some issues, mainly the reports are generated by calendar year, there’s no support for Financial Year reports (Apr-1 till Mar-31 in India).
1. Using period reporting feature (`-p`):
hledger bse -p "yearly from 2019-04" --depth=2 --layout=bare -e 2022-04-01 -X₹
2. Separating journals into April 1 – March 31 financial years.3. Using `-b` and `-e` to demarcate begin and end dates when generating reports.
The trick with making excel work is treating your finances like a company with assets and liabilities. Build out your balance sheets, list it out, and compute it.
[1] https://www.gnucash.org/docs/v5/C/gnucash-manual/tools-on-li...
[2] https://wiki.gnucash.org/wiki/GnuCash_and_Mobile_Devices
Community needs an open-source version of YNAB, not another gnu cash clone.
Plaid solves the transaction import problem, the hardest part, unfortunately at the expense of privacy.
NB this means that your site cannot be used in Europe,
We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better.Getting information about home many hits the web site has or how it performs are not essential uses of cookies.
preferences are not essential as you can just use the default.
i usually accept cookies for Preferenceis but not for measurement and not for any sort of advertising.
1: https://squidfunk.github.io/mkdocs-material/setup/ensuring-d...
The way of deselecting is very unusual way to do that. The icons just do not suggest that you can unselect them.
I and others as shown by the upvotes did not realise that.
You should split them by functionality. Having to choose by source first is odd - I have seen sites with 10s of providers - I just never use them)
When we released its beta, early users were happy with the new-age design and one of the best user experiences in a web app for India. Later, I heard MoneyControl sued Paisa.com (I’d consider that a success).
The Paisa team went on to become Helpshift.com. One of the founders became an investor, and another is now the co-founder of teamohana.com. Another key member started his own Startup, later acquired by GoJek.
And a lot of stories in between. It all started in 2007-2008 when I started in a spare attic in my erstwhile boss’s office and assembled a small but brilliant team. I retained that Startup’s domain for a long time and sold it this year. I need to write about all of this one day. A few publications have written strange stories about it, and I’ve not been interested enough.
Now, I’m doing things with Satellite and stuff for Climate and the like.
1. What automation, if any, exists for entering transactions? This is the most laborious/cumbersome part of personal finance. Some tools use financial data aggregators (plaid, yodlee etc.) that involves sharing login credentials with a third party, sometimes disabling 2FA, or other steps that are anti-security or anti-privacy. It sucks that in the USA at least, there is practically no way for customers to fetch their bank data via an open API. Until recently, many financial institutions supported OFX, but that is being phased out.
2. How is categorization of transactions accomplished? Ideally, I want autocategorization based on my own previously categorized transactions, since the bulk of my transactions are repeats at the same merchants.
3. What sort of reporting, dashboarding, and potentially sharing capabilities exist? Ideally, I want to share some reports with my partner
A while ago, I created my own homegrown system to automate my personal finances[1]. It is capable of doing all of the above, without sharing data with a 3rd party. Unfortunately, the automated transaction retrieval mostly does not work because financial institutions are dropping support for OFX.
It has import support (can be templated using handlebars), no automated fetch though
> 2. How is categorization of transactions accomplished? Ideally, I want autocategorization based on my own previously categorized transactions, since the bulk of my transactions are repeats at the same merchants.
It has a very crude tf-idf based categorization. I do have plans to improve it.
> 3. What sort of reporting, dashboarding, and potentially sharing capabilities exist? Ideally, I want to share some reports with my partner
You can checkout the https://demo.paisa.fyi It's just a web app that works over http, so you can run it on a machine and share them access. You have to figure out the authorization part, I do plan to add some password based auth soon.
You could use the same algorithm that was used for spam filtering in my Linux Journal article from back in 2003[1]. I have thought about making a plugin to do it with MoneyDance but haven't gotten around to it. But I think it would be quite easy for you to integrate into Paisa if you are looking to do that sort of thing. I have actually made some improvements to the algorithm since then; let me know if you're interested...
One of my aggregators categorizes any alcohol purchases (purchases from a state 'ABC' store) as 'home improvement'. While technically the house looks better when I'm drunk, I still thinks it's a mistake, and I submitted feedback to them. 2 years ago. No change.
Have you thought about building out the "retirement" module more? If you need any inspiration, I've been working on a personal finance simulator [1] for the past two and a half years as a side project.
Really great job with the docs on this, and I love that you include a demo environment!
I imagine that eventually we'll see an app that pulls budgeting, tracking, and planning all together in a fully seamless way. Whoever manages that will probably be a force to be reckoned with.
In an ideal world, double entry accounting would be your database and there would be lot of tools that use that and focuses on a specific niche. But we are far from that and everyone wants to create their own data island.
It's a lead magnet for an Indian PMS service.
All you really need from that dataset is your current portfolio. Everything else you need is specific to investing -- variance of investment, portfolio mix, covariance of returns, age of retirement, life expectancy, etc. From that standpoint, it's practically an entirely new product.
There's also something to be said about the 4 percent rule, and whether additional forecasting work actually improves outcomes. Heuristics seem do to a decent job.
Question for author - Is it mostly a reporting tool or does it work similar to h/ledger where I can input my transactions from paisa?
Question for HN users - have you found ledger to be easier to use compared to gnucash? My challenges have been my lack or ease of understanding on how to input transactions in ledger and also getting good reports comparable to gnucash. It's highly likely I'm unaware of how to use the tool properly but I am not sure where to learn this.
A good (although opinionated) resource for learning how to use hledger is the manual, which goes in depth about different accounting and modeling concepts [1].
It's a reporting + import/editor tool. The goal is to have a app that handles all the common use cases without going to command line.
If you could add multi-language support, then I'm sure my family will use it :)
> I am interested in knowing what people normally want to understand about their finances
For my family use cases - seeing upcoming expenses and how much is left in the account on the specific dates in a calendar time-flow view, this way we can see how and when things are spent and if new entries are added we can plan for how much is left at a specific target date (like a trip). I've seen nothing like this, so would be extremely useful.
You don’t have to, of course, but do you plan to open source it? That way others can contribute to it too.
How tightly is it bound to ledger? How hard would it be to adapt it to other plaintext accounting programs like beancount?
One thing off the bat I noticed, it doesn't look like custom Tags are supported? I use tags all the time in beancount, say to filter for a trip #trip-europe-2022 which would break down my cash flow and balances (and the rest of the fava UI) for a subset of transactions.
Not as of now, Tags are used only for recurring transactions as of now. I first need to figure out how to bring the filter into the UI. Everything now works based on Account names only.
looking at the demo for 10 seconds it looks like a web based gnu cash.
How do you even do that, unless you manually regex it?
If that's the case, already looks weird on technical decisions.
There's never a decent open source self finance management app somehow.
It's either bloated or just doesn't look easy on the eyes for simple day to day use.
Great job building this and also writing the documentation that explains concepts as well as how they are implemented.
I can't believe how many comments here are dismissive. If you are happy using a paid solution to manage your finances and don't want to get into the weeds yourself, you are probably not the target audience for this.
One suggestion would be to make the country-specific pieces like tax calculations module so others can contribute their own.
This is something I have been thinking about, I need to figure out the base abstraction. Even the current implementation (which is basically written for my personal use cases) has too many conditions/grandfathering etc, I suspect it might not be accurate.
This tracks all my cashflows, investments, net worth etc, and since it's in excel there's no risk of it disappearing after 10 years
Once the import and reconciliation is done I pull up a my column chart that shows where the money went -- and can compare over time -- see a full year of movement. I've been through various charting libraries with it and most recently moved to ECharts[0] -- so I'm planning to expand with Treemap and Sankey style visuals.
The import process, which I do monthly takes maybe an hour. I'm importing from like 5 bank accounts, 3 payment processors, 4 CC providers. The part that takes the longest is signing into their slow sites, navigating past pop-up/interstitial, getting to their download page and waiting for it to download. Loads of these sites (WF, Chase) have been "modernised" and have some real bullshit UI/UX going on -- lags, no keyboard, elements jump around, forms can't remember state, ctrl+click won't open in a new page cause that damned link isn't actually a link but some nested monster of DIVs with 19 event listeners on each one -- and somehow still all wrong.
I think the most-best feature would be to have some tool automatically get all my transactions from all these providers into one common format. Gimmee some JSON with like 10 commonly-named fields for the normal stuff and then 52 other BS fields that each provider likes to add (see a PayPal CSV for example). Does that exist and I just don't know?
For desktop app I plan to add support soon. The delay is because there are too many variations (appimage/flatpak/deb/snap) and I need to figure out which one to support etc. I use linux myself (NixOS).
Knowing this for my own situation made me decide to opt for a homegrown software solution, because I had to learn these rules anyway. I felt more capable in my programming language of choice than in Excel, and I didn't want to pay for a SaaS solution, let alone learn another interface.
Apparently, just being able to pull your financial data into open-source tools and excel could be a product since Yodlee and other aggregators are often too expensive and technical to set up for individuals.
I think we need to force all financial companies to have a modern API and OAuth available for everyone via legislation.
That already exists[0] in the UK
similar to how the central bank forced every major bank to adopt PIX (our instant payment system), they're doing the same with open banking.
Sure, it's not exactly "open" for end users. But now, as a company, I can build a personal finance app without asking for my end users bank account password. This is so much better UX-wise.
Very nice to see! I look forward to trying this out properly soon. I recommend not bothering with PDFs, OCR errors however occasional ruin it - it's worse if they're rare in a way, since you come to trust it. If you really do want it, extract the actual text layer instead. There won't always be one, tables will be a mess, and sometimes there'll be a lot of nonsense - but at least the correct content that is there will be £74.97 or whatever, not misread as £24.87.
I'm also too impatient to manually enter all transactions but import from PDF statement form a bank looks like a doable task. The only transactions that would be required to enter manually is cash/crypto/etc but for them there are no other choice.
Contrats with the the release Anantha and I hope your project will gain attention it deserves!
How does this differentiate?
I was perplexed a bit because paisa (like paisano, countryman) is also a word I hear a lot among Latin American immigrants in the US, seems like one of those things that can be taken offensively but I mostly seem to hear it as a term of endearment.
https://github.com/ananthakumaran/paisa/blob/master/COPYING
I won't use this because I can't ensure all my systems can be agpl3. Like bank systems I don't control.
I love that this has a web interface, but still seems to have a fairly simple data model based on `ledger` and plain text files.
I see some other posts about data import from banks, and that's always been the thing keeping me from doing this for all of my personal finance. I just don't think I'd be able to keep up if I had to manually log into bank, brokerage, and credit card accounts, download my data for each one (assuming they even allow a CSV-style download), and import into GNUCash (or whatever).
I'm curious about the Plaid option (and really cool a Plaid employee is posting here), but I've always been wary of them. It looks like they have some sort of OAuth-like process for one of my financial institutions, but the others are all "give Plaid your credentials and we promise to keep them safe". Not really comfortable with that. Everyone gets hacked eventually. Regardless, I'm not too keen on giving Plaid literally all of my financial data; just doesn't seem like a great idea.
But it seems like there's really no alternative, at least in the US. I wish the government would mandate that all of these institutions implement a standardized API, and that they give regular people (not just big companies) access to their own data through it. Sigh...
GnuCash also allows you to generate reports from double-entry accounting.
I have to ask, do people mostly enter transactions manually into their personal finance software? Or do they just go by names for imported transactions? This means that I can't meaningfully import transactions between my multiple accounts. Do others just fix them up manually?
I might give this a try and then see if I can convert my beancount files to ledger.
Have you considered incorporating a split view of the ledger with the reports?
If you want a simple app to track lent and borrows among friends and circle then try Debitum. But it's for Android only..
Semi-related to this: does anyone know of any double entry ledgers backed by actual databases like dynamo?