Show HN: Paisa – Open-Source Personal Finance Manager (paisa.fyi)

662 points by ananthakumaran ↗ HN
I have been using plaintext accounting for some time and had a duct-taped together reporting system. Paisa is my latest attempt at making it usable for others.

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.

287 comments

[ 4.1 ms ] story [ 439 ms ] thread
Nostalgia. I led a small team in 2009 and built Paisa.com - a financial/investment Startup. I still have the initial mockup designs I did in a hotel room in Delhi/Gurgaon to pitch to NDTV.
I remember that! I really liked it. What happened to it? And what are you upto these days?
It is a long story, but here is the short from my perspective. I left after a year and made the mistake of spending two years building an audio-video dating app. Poor men’s FaceTime-ish tech, but the business failed. However, I sold/transferred the tech to an investor.

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.

Interesting journey for all of you then. Why did Moneycontrol sue? I wish they had the foresight of buying the tech from you guys instead? The interface really was ahead of its time then. They could have used that.

Cool! What are you doing with climate?

I left by then, and I'm not aware of the details about MoneyControl.

We are entering the Climate Tech scene via MRV (measurement, reporting, and verification) tools by leveraging super-resolution algorithms and Multi-Spectral analysis, aiming for cost-effective and detailed insights. By integrating RADAR/SAR with RGB/MS data, we ensure consistent data collection, even in cloudy conditions, fostering broader engagement in climate action.

We are selling to enterprises beginning with some of the ML tools that we wrote.

Do you think enterprises/private corps are interested in proactive climate action? Seems more like something government orgs would invest in, no?

Also, you guys hiring interns/FTE? :D

They have to, and enterprises are the only ones that can have an outsized impact. The government mandates them, and the incentives are getting more substantial to be part of the action. I won't go into details, but YCombinator's RFS[1] does an excellent explanation (albeit from a more commercial angle).

We are not proactively seeking but are always open to interesting people. Email me at brajeshwar@oinam.com and we can talk.

1. https://www.ycombinator.com/blog/rfs-climatetech/

Please write the paisa.com story from your PoV. It was such a breath of fresh air and I loved the site. I was really sad to see it shutdown.
I remember seeing it promoted on Gpay, if I remember correctly.
Really? For the initial Paisa.com, I doubt that. We predated GPay by years.
I honestly just use excel but that's because I use it as a book of record for receipts as well. Since you're looking for open source alternatives, OpenOffice would fill that need.
Also used excel previously. Then I switched to an ios app that sync with all my different bank accounts so I don't have to record stuff manually.
I tried Excel few years back, it’s only easy when all you are tracking is income and expenses. But when you buy some stocks or MFs, the amount is debited from Bank but it’s not really an “expense”. And good luck tracking fund flows between your own accounts.

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

Whoever down voted me can suck a fat bag of d1cks.

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.

have you tried something like gnukhata? it should work out for you i suppose
You can do this in a few ways, depending on what exactly you want to do:

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.

I am probably the target audience for this kind of thing, but I’m having trouble seeing myself slog through hundreds of household transactions every month (or putting in the time to automate transaction imports from my credit union and credit cards). I’m happy to huck money at YNAB to do all this for me, on top of which they give me an app that my wife and I can both use to check the budget and enter transactions on our phones. Reconciling the accounts and budgeting for the next month becomes maybe a half-hour exercise. Whereas with Paisa I see nothing but entire weekends lost in service of the machine.
There is import option available on Paisa, but I agree, it won't match YNAB level experience.
Yeah, I'm in the same boat. I've used YNAB for almost a decade now, but wish it were more powerful for things like investment tracking. I tried last month to get into the ledger systems (beancount, specifically), but it's a huge additional time sink. And implementing YNAB-style envelope-based budgeting on top of them is always a bit of a hack. Went back to YNAB quickly.
> wish it were more powerful for things like investment tracking.

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.

GnuCash can import directly from your bank [1]. There are also some mobile apps [2], but they are not super well integrated with the desktop application - I think you have to manually export and import every time.

[1] https://www.gnucash.org/docs/v5/C/gnucash-manual/tools-on-li...

[2] https://wiki.gnucash.org/wiki/GnuCash_and_Mobile_Devices

It can import directly from some banks maybe, but certainly not my bank. I haven't had any success importing to GnuCash from _any_ bank I do business with.
There is also the plaid api to gnucash [1], which should work with a lot more banks. Personally, I have not used any of these. My banks allow csv downloads, which works well enough for me. I wouldn't give my data to a 3rd party in any case.

[1] https://github.com/ebridges/plaid2qif

I used to have this problem, but then I found most banks offer free export to some file format - even those that charge for SW integration. You just have to dig around the site to find the feature.
Every bank I've ever used has had functionality to do csv exports (or xlsx, for which I have a one-liner to convert to csv), which can trivially be imported into gnucash.

At least in the UK/EU, it seems to be a common feature.

That's true, I mean the automatic direct import though.
I wonder if there is a nice local browser automation tool one can use to do the download of the csv files directly from the bank.
2-factor authentication and session expiry makes it a pain in the neck
To be precise, the wonderful aqbanking is doing the job for gnucash. I do not see why paisa could not use aqbanking as well
(comment deleted)
Love this project! I've been trying out Paisa off late and it's been great at just de-cluttering my investments in various assets (which are spread all over).
This is incredible!

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.

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

I've been looking for a personal finance app for a long time. I don't want a Saas that charges me monthly and can shutdown at anytime. Most other homebrewed apps are incomplete or abandoned. Of all things I ended up paying for an Excel sheet to track it all - https://cspersonalfinance.io/

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

Thrilled to see something like this building on Ledger (a great tool by itself). Will definitely check it out!
I like the fact that the author supports both ledger and hledger.
What's with the thousand separator being placed on every 2 digits except for the last 3 digits?

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.

The author is from India (myself) and this is how numbers are formatted there. Locale can be configured via configuration page, so it's just a matter of changing it to `en-US` if you want thousand separator.
lol, this is such an aggressive reaction. People won't always live where you live. Be kind to others, don't assume there's something wrong until you gather the full context.
This looks awesome. I love that it's built on ledger. I have been wanting to move away from Simplifi Money for some time for obvious reasons (owned by Intuit). It seems that the real moat is pulling the data in a consistent and correct way. Yes, you COULD try to find every single export option for every bank, but I think Plaid is really the only service that pulls this data somewhat correctly, due to the U.S. not having a PSD2 equivalent in our laws.

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?

Mint already uses Plaid, but I the transaction information it gets is too low in information to categorize anything reasonably. For example my Amazon Grocery transaction happen on my amazon Chase Credit card(gives me 5% discount).

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.

Mint does not use Plaid. Intuit has their own service for integrating with bank APIs and/or screen-scraping that they use across all their products.
They used plaid as a fallback for some banks
Copilot Money achieve Amazon SKU description automatically by AuthN into your Amazon account and transaction matching.

They do this lack of info lift and then recommend category splits.

Fighting with Mint and categorizing Amazon purchases was what initially pushed me down the path into plain text accounting (PTA).

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

I can try to improve import functionality, but Plaid etc is quite hard. I can't even figure out their pricing model from their page. So, as a free app I don't think it can support Plaid.
You just need to have each person create their own Plaid account (which is probably the way you want it anyway). The free tier supports 100 institutions.

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.

[I work at Plaid] I don't know if we explicitly write down in the docs that the free Development tier isn't guaranteed to have the same SLA as the production environment, but if you're not paying Plaid there is no SLA (I mean, the usual recourse for an SLA breach is a rebate, but you can't give a rebate to someone who isn't paying you in the first place). That said, in practice the differences between the free and paid tiers for a personal finance app are not really such that someone doing a hobbyist app for personal use would notice them.
Correct me if I'm wrong but some of the banks don't work in developer mode at all (at least, it doesn't seem to work with Chase).
All banks work in the free Development environment, but for banks on OAuth, including Chase, you need to go through the Production approval vetting as a pre-requisite. Once you've been approved for Production (and if applicable for the given bank, gotten your security questionnaire approved as well -- I think Chase requires this) you can then access those banks in Development for free.
[I work at Plaid] The pricing model is here: https://plaid.com/docs/account/billing/ but @jpeeler is right that for a free app like this aimed at an audience of engineers you could also set it up for your users to BYO Plaid API keys.
This is the precise option I was thinking might be possible. Is it even reasonable for an individual developer to use their own API keys for something like this? I assume because you suggested it, it is. Any limitations that are impractical for personal use?
I'm in the middle of going down this path right now. It kind of works, except for certain banking institutions require more rigor than just getting accepted into the developer platform.

The steps, as far as I can tell, look something like this:

1) Sign up for Plaid developer account

2) Request developer access (without it you can only play with sandbox data)

3) Request production access

4) Submit application information including a name, website URL, and logo

5) Add a legal company entity name and address to my plaid account

6) Sign an MSA contract (no idea what its about)

7) Fill out a security questionnaire.

I'm at step 3 currently but I'm not sure how much further I'm realistically going to get. I'm not sure I could reasonably fill the rest without stretching the truth quite a bit and it seems to get deep into legal territory that I'm not sure I'm comfortable with.

There's also apparently different API behaviors depending on the bank: https://plaid.com/docs/link/oauth/#institution-specific-beha...

I don't have a lot of hope that this is going to pan out. I'm considering just scraping Chase with a headless puppeteer script instead.

It's possible that this may be simpler for other banks though, I've only tried Chase since that's my primary bank.

[I work at Plaid]

I will say that while annoying (especially for Chase, which has the most paperwork-type requirements for developers) this process should be totally doable for solo developers. You can put your own name as the legal entity name if you don't have a company. The Master Services Agreement (MSA) sounds scary but is just the contract between you and Plaid -- the legalese laying out what you're paying for, what Plaid is providing, and the rights and obligations of both parties. And when it comes to the security questionnaire, fill it out as accurately as you can, but you don't need to stress over it -- Plaid doesn't expect a solo hobbyist to have the same security measures as, like, a publicly traded company.

Thanks for the info -- this is really good to know. I'll keep pressing on as far as I can!
Can confirm: I did this as a solo user of a personal API integration with Chase via Plaid. I answered honestly given the scope of what I was doing: for example, IIRC there was a question about whether all employees are background checked, and another about how we deal with terminated employee access. As the only user/employee/human, I could confidently say I background check all my employees and that if they’re terminated, their access will be promptly revoked :D
Thank you! I wish Plaid would document this on the website. I've always been hesitant to convert from my dev account to a production account because everything gives the impression you're looking for a Serious Business.

I'd much rather just pay the money and have the standard API, and my workflows are all built around Plaid anyway.

I guess I'll give it a go now.

How much would it generally cost for a user? I couldn't figure it out from the pricing page.
I would use this if there was an easy way to integrate it with plaid. (login once and keep data synced). This would be comparable to personal capital at that level.
I know this is only vaguely related, but as a European that's been looking for an open source budgeting solution, how does PSD2 help?
My understanding of PSD2 is that it requires banking transactions to be "machine-readable" whatever that means. So there's an actual legal requirement for making data accessible outside of the browser.
The problem I faced when I looked at data export was that none of the banks had any apis. You always had to go through 3rd party commercial apis. Maybe there are ways bur I didnt find them
If you're talking about European banks they all have APIs. But only licensed companies can use them directly. Those companies are called AISPs within the PSD2 framework, sometimes referred to as aggregators. Some of them have ways for individuals to access their own accounts at banks via the AISP APIs. But there are limitations, one major one being that PSD2 doesn't cover credit card data or anything other than deposit accounts. [I'm a product manager at a bank]
you should check out Actual budget as well - works perfectly for me in the same situation.
(comment deleted)
What is PSD2 and why is it important? Is it the basis for something like UPI in India?
Payment Services Directive 2 and it’s basically legal stuff we gotta comply with to do payments. Can’t speak for India but it’s v much something in the UK
It basically means OpenBank API mandatory just to financial companies, not to consumer, potentially any enterprise can ask to have OpenBank API access if it meet certain criteria and then it can get and commit any transaction from all EU banks. So potentially offer to their customers full API access to their EU banks, for anything, disposing transactions as well locally instead of via some crappy website. This also means having legally valid local transactions (XML/XADES or JSON/JADES signed by the bank).
One option I'd recommend for anyone working towards this is to use the SimpleFIN Bridge [0], which is basically an API wrapper around MX (a Plaid competitor) designed for personal use by the same people that make Budgeting with Buckets. Data security is definitely an issue, but I value having my transactions automatically imported more than I'm concerned about the risk of SimpleFIN being breached.

I've personally used SimpleFIN to provide automatic imports in my own personal, kind-of selfhostable personal finance tool [1].

[0] https://beta-bridge.simplefin.org/

[1] https://github.com/avirut/bursar

Wow, very cool thank you for sharing!
(comment deleted)
Reason are not obvious to me. Could you elaborate?
Today I learned "paisa" is a subunit of the Indian rupee - here we call "paisa" to all things related to a specific region of Colombia (https://en.wikipedia.org/wiki/Paisa_(region))
The word "Paisa" is also used generally for "money" depending on the context. But specifically, 100 Paisas = 1 INR (Rupee).
its also a term used to refer to women with a certain "look" from medellin. my ex was an example. "paisa as an areppa" is a pretty common term there.
Tell us, what does it mean? "as an areppa" suggests flat and round...?
to be honest, I don't actually know but I've heard it from multiple people when I was in Medellin in reference to girls. none of them were "flat and round." I think it just refers to them being from the same area. "american as apple pie"
What? Yeah, that's a say, but "Paisas" are all the people from Antioquia (Medellin is the capital), Quindio and Risaralda. All of us are Paisas. That say could be referenced to any person from there, because of the look or way to talk or just because we were born there.
I think paisa literally translates as "country man." In jail every older Latino is automatically a "paisa" and it is seen by many as a derogatory term.
This is great!

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.

I don't know what you mean by multi-language support. But calendar view on Budget page is something I can think about. I will soon add a calendar view to Recurring page.
Basically translating it to Swedish, which I don't mind helping with! In other words, i18n support.
Here's something that always trips me up when I look into non professional software for double entry accounting (or more accurately, instructions around them).

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?

Thats correct with DE accounting. However I always assumed, the logic followed here is that the money has been "debited from" the INCOME account and "CREDITED to" Assets/Checkings.
Debit from employer's account, credited to your bank.
My somewhat limited understanding of this is that from your perspective, an increase in your asset/cash account would be a debit.

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.

"Debits and credits are nothing more than “increases” and “decreases” to accounts." Don't try to apply logic; it is just a convention: debits to the left, credits to the right.

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.

Most tutorials for financial services are written for bank account users.

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.

Actually shouldn't any money deposited into the bank be a liability for the bank?
No, it's the opposite, $ in customer's account is a liability for the bank to those customers, so the account is credited on +

The banks cash account is debited for balance

Awesome! I've been using Beancount/Fava for over 2 years now and this looks really slick.

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.

> One thing off the bat I noticed, it doesn't look like custom Tags are supported?

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.

Makes sense - great work so far! This is easily the best looking PTA app I've seen.
wow, now I can say I like my personal finance manager the way I like my women.
Slightly off topic but how do people use these? Depending on where/what I pay, I pay with an assortment of credit cards, bank account, debit cards, paypal, etc.

Do people who use this kind of software manually enter every transaction they do every day, or something?

> Do people who use this kind of software manually enter every transaction they do every day, or something?

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 do the bank import once a week. I set aside an hour on my calendar to update all of my spending accounts. It usually takes more like 15-20 minutes unless I find something unexpected.

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.

I only do it every few days but pretty much the same. I find it's too easy to lose track of how much I've been spending, so by doing it manually I always notice before it becomes a problem. It also helps me save because I notice right away if I get charged for a subscription I'm not using and I can cancel it.
> It takes 10 minutes at the end of my day to record all my transactions

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.

This would be a lot harder if you have a spouse and want to track your family finances. It would require both people working together to keep it up to date, and finding that time is tough with kids.

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.

We don't find it hard. We sit down one or two times during the week in the evening and I enter all our transactions into KMyMoney. It takes 5-10 minutes to do once you get the hang of it. This is across 5-10 accounts. You might have a little more work to do with 10-20 accounts.

On Paisa (ledger). I like it! But...KMyMoney has such a nice interface for recurring/future payments and reports (that I can edit to suit our needs) that I'm struggling to see the point of ledger behind gui for our use case. It does look nice though.

10 minutes a day is a lot! That's 300 minutes a month. I do it about once a month and I probably do 2-3 hours.
I do this since ~20 years with a simple Calc-Table. Easy overview and simple to search.
At least with ledger cli, the format for a transaction is simple enough that a just make a script that reads the CSV that I can export from my bank’s website.

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 used to host an instance of Firefly III, which has a perfectly usable mobile web interface.

This way, I would log every transaction immediately rather than wait until I get home.

The paid accounting tools usually will have integration with your banks via Plaid or similar
I've kind of been thinking that there needs to be an open source version of Yodlee/Plaid. I keep picking up some project like Paisa and then realise that I have to figure out how to import things automatically. I don't really have the patience to do it manually.

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.

I think the problem is that you need to establish a business relationship with the giant banking systems to get them to give you access and unless you have contacts or a way into that world this is very hard to do. I don't know how you'd pull it off in an OSS project.
I download my bank/cc statements once every few months and run them through some homemade cleanup scripts, then I could technically plug it into a tool like this.
I also have some clean up scripts, but the worst part is I have to manually select the tables to extract in the PDF using Tabula. There's still some serious manual reconciliation between credit card and bank statements. I feel good doing it, but it's a slog.

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.

https://tabula.technology

Paisa supports PDF import (very rough implementation), but the problem is actually simpler compared to what tabula is trying to solve. I just need a 2 dimensional array and then the template can easily filter out non financial data by checking if specific column is Date. I have tried it personally on a few PDFs, it worked well except one which had a two column layout.
I've been attempting to build a little hobby budgetting app the past couple weeks that could automatically sync from my bank since none of the OSS options seem to be able to this and require manual logging.

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.

There is a middle ground I think - all my banks/credit cards (7 or 8 accounts spread across 4-5 providers) offer csv downloads of transactions. I haven't tried to automate downloading the csv, but once the csv exists locally automation becomes straightforward. But yes, for real-time automated gathering of the data, this wouldn't be appropriate I imagine.
Yes, I do this for over 15 years every day. You can easily train yourself, it never "breaks" and takes only a few seconds.
Not to be that guy that tries to force LLMs into everything, but after automatically importing bank transactions, LLMs like GPT are very powerful in extracting information from the ill-formed, non-standard, transaction description, and subsequently classifying it. You can help train it by manually identifying and classifying the first few, and let it do the rest of the job. I've tried it out myself and works well for me!
What software have you used that does this?

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.

> What software have you used that does this?

I wrote my own script that uses the GPT API. For automating bank transcation downloads, it's just a cronjob that runs ever X hours and scrapes the information from the banking website.

Would you be willing to share the prompts you use?
How would LLMs really help though if all you get is usually an order number? I mean, it can probably figure out that an order from McDonalds is food related (though does it get categorized as "Everyday Lunch" or "Going out with Friends" or "Work Events"?) and Geico will probably be some sort of Insurance - but that would just be a large database of common payees, no real need for any AI. That said, if you're importing years worth of data, it would be a great starting point to get ballpark estimates of where your money goes, so that has value.

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.

Yep, that's one of its deficiencies! For me, something like GPT helps in triaging and "cleaning up" bulk of the transactions, with little micro-categorization left to be manually done.
I played around with this quite a bit with chat gpt 4 with confirmation instructions, and after a bit of time it starts going haywire. I played around with just creating in a simple csv format, transactions date, name, category (asking it to categorize it), and amount. After a couple runs it started going haywire and hallucinating with transactions I never created.

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 have tried this and it works very well. I just copy paste my investments data from website and put it as a comment and usually copilot will figure out how to format it as a ledger transaction based on the previous transactions.

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

Most banks (at least in the US) allow a data export, usually in Quicken/OFX or CSV format. I download the transactions from my accounts once a week or so and import it into the tool. (PayPal gets charged to my credit card, so it shows up on the credit card import, no need to track PayPal separately)

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.

(comment deleted)
This looks very similar to Beancount, which has been around for a while and has quite the community and extensions.

How does this differentiate?

It is quite similar to Beancount Fava. I want to focus and improve some of the things like app distribution (desktop/single cli binary) and the UI (reporting) and make it accessible for more users.
Looks good! Paisa Vasool! Especially as it is free :-)

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?

It includes hledger support I believe.
This looks really cool I've used beancount/fava for tax planning, but of course I had to code up my own tax models. In the US tax table change every year (by a predictable formula) and some forms of income are weird, like I bonds are exempt from federal tax, but are taxed by state income tax. It seems unlikely that you could support all the cases, but is there a straightforward way to plug in your own model? I did see in tax.go you had long term, short term, but couldn't quite find the income tax tables, like long term capital gains has different rates depending upon filing status and amount.
I have replied at another thread, but there is no plugin support as of now. My country changes the rules every year and add grandfathering, xyz rules etc. I think, I have to figure out a DSL or some other way to make it general. This is something I am interested, but haven't figured out how to solve it yet.
This is awesome! I like how it's built and I looks like it's open for integrations of any kind.

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!

Feel free to open an issue if you can't get PDF import working. This is something I am interested in improving. I have tested with few PDFs and they are hit/miss based on how the data is encoded.
Love the clean interface example into ledger-cli!
What is the difference between this and GnuCash?

GnuCash also allows you to generate reports from double-entry accounting.

I think it helps if personal finance managers explicitly describe at least the following:

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.

[1]: https://sagar.se/blog/where-is-the-money/

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

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.

Would you rather your aggregator sell your alcoholism data to your health insurance company, or your joy of maintenance and taking good care of your property to your home insurance company?
Why not both? I would not be surprised to find the banks already sell that data to other entities anyway (directly or indirectly). I end up buying perhaps $100 of hooch per year; unsure I personally care if anyone knows, but yes, for some it might be an issue.
> 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.

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.

> It has a very crude tf-idf based categorization. I do have plans to improve it.

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

[1] https://www.linuxjournal.com/article/6467

(comment deleted)
(comment deleted)
I want to know where my money goes. I like to look at stacked-area (or column) charts of the categories of spending. To make this work I have some software I made ~20 years ago that does double-entry book-keeping. At the end of the month, I import statements from financial service providers (eg: Wells Fargo, Chase, PayPal, Stripe, etc). Lots of stuff is repeat purchases (eg: Shell Gas) and my software automatically categorises. Some transactions I have to categorise manually. Each category / vendor becomes an expense-account and my banks and CCs exist as assets and liabilities.

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?

[0] https://echarts.apache.org/

This looks great! We've been building a wealth tracker with https://markets.sh and were a bit flabbergasted when people started "abusing" our automatically syncing Yodlee connection to hook up all of their checking and credit card accounts (technically we market only for brokerages and investment accounts). We have a free and simple API and plain CSV download which in itself seems to be a real pain point for people.

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.

> 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

[0] https://www.openbanking.org.uk/

Europe has a shot too but what i’ve found is that the API’s are often so clunky and bad that they might as well not exist
It's been a little while since I've looked into the Open Banking API stuff - how easy is it to use this API as a consumer? Or do I have to create a business and apply for a license in order to use it?
Open Banking is in some ways misnamed - you can't as an end-user just do OAuth and get a data feed out of your account, you'll have to go via a third party who've jumped through all the hoops.
Got it! That's what I thought (feared). I wonder if there are ever plans to open it up to general use, or if it would be easy as an end user to jump said hoops.

I wonder if there are any open source third parties?

I don't know about open source ones, but I did find Enable Banking (https://old.reddit.com/r/eupersonalfinance/comments/k4ny3j/f...) offering free access to your own accounts. I don't know if "offer" still stands, the FAQ is not very explicit on it (it only talks about testing, https://enablebanking.com/docs/faq/#can-i-test-the-api-befor... & https://enablebanking.com/docs/api/linked-accounts/).

I tried it, but I couldn't get things working sandbox environment so I ended up giving up and just do manual exports.

yep. That's exactly what's happening in Brazil - https://www.bcb.gov.br/en/financialstability/open_finance

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.

(comment deleted)
It's interesting how many tools can analyze where your money has been going, but few go deep on the planning + forecasting side.

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.

[1]: https://projectionlab.com

I have seen projectionlab before and agree with you. There are few tools on the forecast side. Most of them stop at budgeting. I do have plans to make retirement page generic (aka Goals/Target), but I am yet to figure out the details.

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.

This is a nice interface that you could emulate for some of the goals/target level details. I quite like the simplistic UI.

It's a lead magnet for an Indian PMS service.

https://plan.capitalmindwealth.com/

Realistically, the data you need for retirement planning doesn't intersect much with double entry personal finance data. How much you spend on subway last week has nothing do to with your risk of financial ruin at age 90.

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.

Has anyone compared this to YNAB4? (Not the cloud-only subscription-only YNAB, but the good one that was killed off in 2019)

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 use YNAB 4 every day on macOS thanks to patches available online for the Adobe Air framework (from 32 to 64 bits). What OS are you using?
I use Windows, though I did download the 64-Bit macOS patch just in case I ever need it. Mostly just playing it safe in case there are future incompatibilities because they'll have to pry YNAB4 from my cold, dead hands - unless I find an actual alternative :D
OFX is unheard of in my country. I would look into it if someone could open a issue and attach a few sample OFX files.
Yeah, it's an American thing mostly, I think (it originates from Quicken). I know that Germany used to have another standard, HBCI (which is now FinTS?) and I'm not sure what other countries do.

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!

Have you tried gnucash? It does currencies, stock, properly (even journaling), etc., OFX import.
https://actualbudget.org/ Actual has OFX support! Really great tool
Oh wow, this does look REALLY good, at least the demo does! Going to give it a spin.
Damn, how did I miss this? Looks like a really nice "self-hosted nYNAB". Only downside is that the native apps are unmaintained since the project went open-source, and the web UI isn't responsive (yet) - but looks like there are decent efforts to make the web UI into a usable PWA, if those succeed this may be my move away from nYNAB.
We've been working on getting the electron app up and running, you can download beta builds of it already, and I think it's mostly there.

Yep - There is on-going work to get good mobile support on the web app too!

I've been pretty happy with financier.io as a replacement. I pay the $12 a year for hosting, but I think you can get by running a CouchDB server somewhere. The author basically stopped working on it so its future may be in question, but he open-sourced the code. It's just an Angular application.

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