Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Paisa – Open-Source Personal Finance Manager (paisa.fyi)
662 points by ananthakumaran on Sept 22, 2023 | hide | past | favorite | 273 comments
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.




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?


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!


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


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


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.


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.


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


How much would it generally cost for a user? I couldn't figure it out from the pricing page.


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.


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


Thanks for the info -- this is really good to know. I'll keep pressing on as far as I can!


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.


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


What is PSD2 and why is it important? Is it the basis for something like UPI in India?


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


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


Reason are not obvious to me. Could you elaborate?


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.


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.


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


How are people automating the data import? I can't imagine someone entering everything by hand. Lots of places don't even provide an export file you can work with... most of them offer a PDF.

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.


Some years ago I built a custom tool similar to this which downloaded financial data from my Chase bank account and converted it to beancount (another text-based accounting tool).

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.


As far as standard checking/savings/credit card accounts go, I haven't had one that didn't have a csv export option yet. Some of them are very buried and much harder to find and use than I wish, but they are there at least with the banks I use.


Most banks/CC have some sort of export - be it in CSV, OFX, Quicken, etc. Then you import it using your financial story.

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.


Reckon works well enough for me.

https://github.com/cantino/reckon


Categorization seems like low-hanging fruit given the age of AI we are in today.


> Categorization seems like low-hanging fruit given the age of AI we are in today.

AI can assist, but that's it. When I go to a Kroger's store, I may buy food. Or I buy supplies. Or medicine. Or gifts. Or something else. And almost always a combination of these. We are already at 5 categories, without mentioning others. All my CC will report is a transaction at Kroger's. How is an AI supposed to guess how much I spent on each?


Take a picture of the receipt and a picture of your groceries, pipe them to appropriate models?


You think so? They have such inconsistent reporting, and the data is the exactly hard kind to aggregate massive sets of.


I enter everything manually. I live in SE Asia where there's no other option, really. For some of my banks there's not even a CSV/Excel download option, just a PDF "balance statement".

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.


If the PDFs have data in table format, you can use image to table generator of nanonets or Google or Microsoft Excel app to convert it into csv and enter data.


I use hledger and I enter everything by hand.

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.


Can I ask how you get the autocomplete in VS Code? I've never managed to find an extension that does this, and by default the autocomplete only works on previously seen words (so it gets split by the colons in account names)


I did nothing. It just works out of the box for me.

But. I keep my journal files in a folder and open it using the VS Code project file.

File's name is ledger.code-workspace

{ "folders": [{ "path": "/path/to/journal/directory" }] }


> only works on previously seen words

Yes, that's just it. I do not use anything like a language server.


You can sign up for a developer account and have up to 100 accounts that you access.


This is really weird for me, a few years ago I was trying to build exactly this - as in same ledger-based, local-first/only etc. decisions - only difference really was that I never got as far as visualisations, and faffed about with PDF->ledger instead until I lost motivation for the project.

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.


It does have PDF import support, I am using pdf.js to extract data and it works decently from what I have tested.


Unfortunately I can't see your web site as it does not work without sending cookies to Google. Please implement the site with only needed cookies.

NB this means that your site cannot be used in Europe,


If you have time, could you clarify how you can tell that? I just opened it in Europe and the blurb seems to pass “these cookies are for internal self-improvement of the product only” (see below). Is your problem that google is managing the analytics so could be spying, or that the stated use isn’t essential? I guess my assumption was that “non-essential” meant “built for the purposes of 3P advertising”

  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.


Non non essential means to make the web site work for the user.

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.


Cannot used legally.


Third party cookies aren't illegal in Europe.


But only for necessary things - the purposes that you can Google Analytics are never necessary to the running of your site.


Undeniable Google Analytics is.


But are these third party…? Maybe I’m just way behind. If you use cookies to track usage of your site, isn’t that kinda second party?


No. The web site and the user are the first two parties. They have a relationship.

Third parties are parties who do not have a direct relationship with both parties.


You can opt out by clicking Manage settings and then uncheck the green tick. I just realized I can enable reject button as well[1], should be available soon.

1: https://squidfunk.github.io/mkdocs-material/setup/ensuring-d...


Thanks for adding the reject button.

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)


Wow, this is fantastic! I've been using GNUCash for some simpler tasks, like tracking income and expenses for a rental property, not for all of my personal finance. But GNUCash is... kinda clunky, and I'm not sure of the best way to share the data, as my partner would appreciate having access to it too.

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


Tools where you control the underlying data in plain text are severely underrated. I love this.


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


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.


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.


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.


Tell us, what does it mean? "as an areppa" suggests flat and round...?


It's the same as saying "American as a burger", arepa is just a traditional food in Colombia, a bread made of corn


Ok but I was wondering if you'd describe the "look".



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"


Exactly. It's this.


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!


https://actualbudget.org/ Actual has OFX support! Really great tool


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!


Oh wow, this does look REALLY good, at least the demo does! Going to give it a spin.


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


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


Is a MacOS build of YNAB 4 still available?



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!


Perhaps you can just use https://github.com/aclindsa/ofxgo - it seems to be a pretty good Go package (just eyeballing it, haven't use it).


Have you tried gnucash? It does currencies, stock, properly (even journaling), etc., OFX import.


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?


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


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


Actually shouldn't any money deposited into the bank be a liability for the bank?


The gnuCash documentation has it as you describe: debits checking and credits salary.

https://stuff.mit.edu/afs/sipb/project/gnucash/1.6.4/arch/i3...


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.


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.


Debit from employer's account, credited to your bank.


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.


I'm a longtime user of gnucash and this is a great product to convince me to move to ledger/hledger.

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.


I made the switch to hledger about two years ago and I have struggled using the command line to input my transactions. Right now I use my text editor (nvim) and a snippet engine for my common / recurring transactions. This may be a little more work than just setting everything up to work automatically, but I like it. For reporting, there are some tools which can help with that, I used to use hreports [0], but have since switched to my own script, which exports the data from hledger and queries it itself.

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

[0]: https://hreports.readthedocs.io/en/latest/readme.html

[1]: https://hledger.org/dev/hledger.html


Too opinionated ? I'd be interested in examples of that.


I did say "opinionated", not "too opinionated" and I believe that is a fair characterization, would you not agree?

Anyway, thanks for all your work on hledger and pta in general, Simon!


"although" made me think it might be too opinionated in places I should review. No matter, whatever you think of it is fair. Thanks!


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

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.


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.


Haven't used it but it sounds like this feature would work?

https://paisa.fyi/reference/budget/


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.


Got it, it's too early for i18n


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/


I’m in a similar boat and this comment has an interesting link.

https://news.ycombinator.com/item?id=37613525


I don't know about a service that does this, but you might be able to script the website logins with https://playwright.dev/


What is the difference between this and GnuCash?

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


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?



Very good! Thanks!


It includes hledger support I believe.


I was looking for some software that I could use to make sense of my bank transactions from imported statements, and sadly found that none of the FLOSS options I tried could import the counterparty's bank account number.

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?


This looks pretty great! I used to use beancount + fava a lot, but have been slacking lately because it just feels like work to input everything and catch up.

I might give this a try and then see if I can convert my beancount files to ledger.


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.


Very cool! I was trying a different approach of packaging a vscode experience with beancount / fava built-in, but haven't had time to get quite as far as you: https://github.com/seltzered/beancolage

Have you considered incorporating a split view of the ledger with the reports?


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.


Just FYI if you're used to beancount & fava I started prototyping a more integrated experience for it: https://github.com/seltzered/beancolage . Still early days though.


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.


I use “pocketsmith” because I like the look ahead calendar view. Does this offer that? I could not see it in the demo.


It's nice and has a lot of quite advanced features.

If you want a simple app to track lent and borrows among friends and circle then try Debitum. But it's for Android only..

https://github.com/marmo/debitum


I must admit as a Western-denomination consumer I was thrown off by the display of the monetary convention such as this --> 1,25,80,568 then realized it must be in Lakh and the author coming from this convention. The difference in perception is interesting.


I have a tool to easily convert bank csv's to ledger format https://github.com/muralisc/bank2ledger-cli


@ananthakumaran, can this be installed via Docker and ran in the browser like your demo[1]?

[1]: https://demo.paisa.fyi/


Yes, check the installation page https://paisa.fyi/getting-started/installation/


Sorry I don't see any instructions to run this on Docker on that page. Do you publish an image to the Docker hub?


I meant, you could download the cli using wget and run it inside the docker. There is no prebuilt docker image as of now. I will look into it later.


I love the idea, but to me one of the key things is being able to record expenses manually from the phone, in the same account my wife uses. I'm stuck with ynab for this requirement


Give Actual Budget a try: https://actualbudget.org/


I got turned off with the cookie popup. There's literally no reason why you need any of that. You want to know which pages people are visiting? Mine your htaccess logs.


Unfortunately this is hosted on github pages and I can't get usage information without using 3rd party analytics.


Just so you know, opt-out cookie banners are illegal in the EU. If you want to only measure visits, there are alternatives to Google Analytics that don't even require a notice, since they don't record personal information (Plausible is one, but there are many others).


Well then, I guess the two solutions are obvious.


I think he's happy with the solution he found...


This looks great. Is there any way this can be integrated with bank accounts, credit cards and mutual fund transactions? In India specifically?


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


Thanks for creating this tool! I was really in need of something open source, and something I can contribute to.


Love the app, will try it for a few days. Thanks for making it. Hopefully I can contribute after trying it for a few days!


Is there any good non-web non-plaintext (which is unsuitable for rich data despite its initial allure) alternative?


gnucash?


Amazing I stumbled across Paisa a while back on plaintextaccounting subreddit and has come a long way since


having using hledger for a little more than a year, this is all my reporting dreams came true. thank you so much


I’m using beancount with fava as UI, any experience why you choose based on Ledger vs Beancount ? Thanks


You may want to take a look at my prototype of melding an editor experience with fava: https://github.com/seltzered/beancolage


Nothing specific, I was even looking at adding support for beancount then realized it's much more strict and doesn't support some features like periodic transactions (which I use for budgeting)


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.


This looks great.

Semi-related to this: does anyone know of any double entry ledgers backed by actual databases like dynamo?


I’ve been using YNAB as of late. Cheap enough it’s a no brainer and it’s really good.


i won't use any finance manager that doesn't employ the envelop method, like ynab.

looking at the demo for 10 seconds it looks like a web based gnu cash.


This is based on ledger, which actually does allow envelope based budgeting via virtual accounts. No idea if Paisa handles virtual accounts well.


Paisa supports budgeting and the model is inspired by YNAB. It doesn't use virtual account, but uses periodic transaction which is simpler from data entry perspective, but achieves the same thing


Not trying to be argumentative, but every time I've heard someone claim they do envelope budgeting in ledger without virtual accounts, I've always found a flaw in their approach.[1] So let me give you the standard scenario:

I have two checking accounts, and a credit card. I budget $300/mo on groceries. Sometimes I buy groceries with my credit card, and sometimes using money from either of those two checking accounts.

Last month I spent $200. This month I'll spend $350. I should see that I have $50 left in the envelope. At the same time, I should see an accurate amount of money in my actual checking accounts/credit card (i.e. despite doing automatic transactions).

How do you do this with periodic transactions, and without a virtual account?

[1] Same goes for Beancount. The author was adamant one could do it without virtual accounts, but never showed a way to do it.


> Not trying to be argumentative, but every time I've heard someone claim they do envelope budgeting in ledger without virtual accounts, I've always found a flaw in their approach.[1] So let me give you the standard scenario:

I fully understand. I spent some time looking into the details and if you do it via ledger command line, this is probably the only way to do Envelope method.

Now, Paisa is a bit different, I can process the info before presenting it to the user. The fundamental data that we require is

1) what is the actual spend 2) what is the budget.

Periodic transaction is a type of transaction which is completely ignored by ledger unless you try to forecast. So this fits my use case perfectly. When I export transactions from ledger, I will know whether it's forecast/normal transaction. Forecast is ignored everywhere, so your checking account balance will show actual balance everywhere. But if you go to budget page, it will take the forecast transaction into consideration. It will show what is the current balance, month end balance if the forecasted spends are done etc.

Again, the fundamental difference is, Paisa can process the output of ledger and it can get away with asking the user to provide the bare minimum data (actual, forecast in this case)


I don't see why you need virtual accounts for this. You can make do with sub-accounts.

You can use accounts names `Liabilities:Credit-Card:Budget`, `Liabilities:Credit-Card:Bank-Name:Envelope`, `Assets:Checking:Budget`, and `Assets:Checking:Bank-Name:Budget`. You can set up your initial budgets by transferring from `...:Budget` to `...:Bank-Name:Envelope`, and then whenever you engage in transactions, shift money in the reverse direction to `...:Budget:Used`.

That way, whenever you query `Budget:Used$`, you'll see how much of your budget you've used, and whenever you query `Envelope$` or `Budget`, you'll see how much you have remaining in your budget (i.e., Budget - Budget:Used), and when you query `Budget$`, you'll see what your total budget is.


double entry accounting would solve this problem by aka "contra" entries most of the time.

one thing would be to have a petty cash "virtual account" that pulls money in from your checking account(s), credit cards and pay off groceries from there. that would not be helpful when auditing actual payments because you did actually pay directly from a certain bank and not the pool but this should be simpler for personal use.


You can easily do the envelope method in ledger (aka. ledger-cli if you're searching for it), which is the back end for Paisa.


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.


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


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.


That's terrific, thank you!


Here's a trick for reporting your transfers https://www.reddit.com/r/plaintextaccounting/comments/16d2xk... (alias the account names to expenses/revenues temporarily).


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


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.


Love the clean interface example into ledger-cli!


It has a CLI? And it’s on macOS? I’m sold.


Any plans for a Linux version?


Cli is already available for linux (which provides the same functionality, just that you have to use the web browser instead of desktop window)

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


any plans to get this into nixpkgs?


The project comes with a flake.nix file, you can try that (you would still need to build it manually, I use the flake only to bring the dev environment, not to build the final package). I don't plan to submit to nixpkg myself or any other package managers. I will only focus on binary builds that's downloadable from release page. I don't have any experience with maintaining distro level packages, and I don't think I can figure out the details and keep it maintained. I will leave it to the community to figure that out.


I had to modify the flake.nix to get "npm run build" to work


Great work but not useful unless there is integration with 3rd party via plaid


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?


If you use hledger, you can actually write a csv importer directly in the tool: https://hledger.org/import-csv.html

I wrote my own idempotent parser before this existed but would give this a try first


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


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


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.


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.


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!


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


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?


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


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.


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


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.


Yes, I do this for over 15 years every day. You can easily train yourself, it never "breaks" and takes only a few seconds.


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.


The paid accounting tools usually will have integration with your banks via Plaid or similar


I do this since ~20 years with a simple Calc-Table. Easy overview and simple to search.


Splitwise user here


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.


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


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


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.


To be precise, the wonderful aqbanking is doing the job for gnucash. I do not see why paisa could not use aqbanking as well


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.


After building and using my own bookkeeping solution for my small business, one of the main takeaways for me before and after I built it was that bookkeeping software is only useful once you know the bookkeeping rules. Whatever software solution you use - whether that's some webapp, an Excel sheet, or some homegrown solution - you always need to know these rules. Even the simple rules for a small business take some time and understanding to get a grip on. I haven't seen bookkeeping software that is plug-and-play, so without knowing these rules as a user, if that's even possible!?

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.


Any any suggestions or recommendations for learning these rules? Either for future business or current personal finance management?


Start reading up on 'double entry' bookkeeping. Soon enough you will read about certain constructs and try these as a tutorial on your own financial situation. That's how I did it. Because of the 'double entry' you can find out soon enough when you're making mistakes, and then 'bugfixing' these mistakes makes you learn quick enough. Well, this is how I did it.


That cookie banner is straight from hell. Took me a solid minute to realize how to disable tracking. Ugghh.


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/


> 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


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


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/


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.


GoCardless has an API that’s connected to 2.3k banks in Europe and UK.

Free to use (up to a limit). Not open source though.

Link: https://gocardless.com/bank-account-data/

[I work at GoCardless]


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


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.


I wondered about the name. I guess I'm unfamiliar with a bunch of South Asian references, apparently it is Hindi and related to currency: https://en.wiktionary.org/wiki/%E0%A4%AA%E0%A5%88%E0%A4%B8%E...

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.


Yeah it means money in Hindi


LICENSE AGPL3

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.


This is false, interacting with public APIs that are not under your control is allowed under AGPL3, the only thing you may have to do is release any code you may add to connect with those APIs. Source https://opensource.stackexchange.com/questions/8201/if-i-use...


I refuse, would rather release on my own terms like Apache 2 or MIT or any other license.


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.


That's how they are delimited in India and the author is probably from there.

https://en.m.wikipedia.org/wiki/Indian_numbering_system


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.


Boom headshot


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.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: