Show HN: Double-entry accounting based personal finance app (getpaper.money)
I had been using beancount to track my expenses for over two years. The plain-text accounting and reporting with fava was great, but I wanted a mobile based app to keep track on the go. Looked around existing solutions but everything fell short when compared to beancount. Also the major apps were not available outside the United States and only supported the dollar. They were based on assigning categories to a list of transactions which I found lacking coming from double-entry accounting. So I created Paper Money. It's based on double-entry accounting, you can add your chart of accounts and add balanced transactions. We'll use this to calculate your net-worth and the balances in your accounts.
It's built using React Native for the frontend and Elixir and Phoenix on the backend. We have support for both Android and iOS. I have plans to add automated account syncing and automated expense tracking in future versions.
The target audience currently is someone who is familiar with double-entry accounting but looking for a hosted mobile version. The future versions will be focused on more mainstream customers of personal finance apps, which means making the app more accessible for people without prior experience with double-entry accounting.
I am available at aswin@getpaper.money if you have any questions or querires, and excited to hear your feedback!
Links: Website: https://getpaper.money IOS: https://apps.apple.com/in/app/papermoney/id6737713983 Android: https://play.google.com/store/apps/details?id=com.papermoney...
Video Demo of the App: https://www.loom.com/share/40cf50afe33f4e1cb4fa3e749c19a2e3?...
25 comments
[ 5.3 ms ] story [ 67.8 ms ] threadI could be wrong but it does not appear that this offers a desktop/web client which makes it DOA for me.
It seems like so many finance applications target mobile devices which is a great place for reviewing data and making small modifications but the worst place for the substantial data entry required for managing personal finances.
I use parsers to normalize statements into CSV format, pipe that into a SQL database then query/represent it in Google sheets - I still haven't found a better way to do it. I don't think that would work on this app given I don't have access to any tools on a mobile device.
I'm not sure why Mobile Only approach though as most complicated transactions do not need to be dealt with in real time and I think much more conveniently handled on Desktop
The variety of formats and tools out there plus things like “double entry accounting”, makes me think that the database design would also need to be thought about deeply.
Anything additional that I might experiment with (like post processing transactions and assigning tags) I do in additional tables that relate back to the original transaction's PK.
I have additional tables tracking my adventures trading stocks/forex and another one for assets.
I wanted it to be serverless because of cost/convenience so I host the DB using CloudFlare's D1 database.
I have a CloudFlare worker that takes a POST request accepting raw SQL, executes the query and returns the result as JSON. Basically a crappy firebase implementation where the client does the work. Obviously this is not safe for a production application, but I'm the only user so it's fine.
I wrote a little web frontend to help with data entry and complete tasks like parse bank statements - which, at least in Australia and New Zealand, are distributed as PDF files. The banking sector is in the stone ages here.
Here is my statement parser: https://github.com/alshdavid/commbank-statement-converter
I've experimented with using AWS Lambda + DynamoDB as the back end. I have also tried Lambda + S3 Athena but nothing has been as simple to set up as Cloudflare D1. I may migrate to Athena at some point, but I am lazy and what I have works.
To represent the data/generate reports & summaries, I use Google Sheets with custom AppScripts that make http requests to the data source (CF worker) with various SQL queries.
AppScripts are a bit slow and I'd like to create a custom front end for this but I am lazy and Google Sheets works.
I have my statements sent to my email so I have been thinking about setting up an AWS SES + lambda to receive and automatically parse & add them. I wrote web scrapers for the bank accounts that I could log into programmatically - but there are no "webhook" facilities on transaction events so syncing is manual.
I like some of the ideas in OP's app - like calculating cash flow and incorporating assets into the net worth calculation - so I might add those calculations.
I'd open source my system, add authentication and all that but I doubt anyone would use it.
I started Paper to bring the beancount + automated parsing with python stack to everyone. Double-entry is an objectively better way to manage your finances, when we build an automatic reconciliation engine that automatically categorizes the bank transactions we'll have the best personal finance tracker app.
I understand that Europeans already have protocols in place for this sort of thing. Why must the EU always get the nice things?
I am able to see an account I have with Bank A in Bank B’s app. That’s about as far as this ever went. I can’t apply to even access the APIs as an individual, it’s only open for vetted organisations.
India does have a decent open-banking system, used by https://fold.money
In your example, my income is negative. In what country does it make sense to have a negative income?
> You cannot categorize your salary as income, as your net-worth would be wrong.
Yes you can, it's called a split transaction. $1000 income: split into $700 to my savings and $300 to taxes. I don't see the point in tracking my tax withholding in this way though, so I'd rather just put in my net salary.
> Yes you can, it's called a split transaction. $1000 income: split into $700 to my savings and $300 to taxes.
Even though this would work, the money is still in your bank account, which makes your savings account balance to be reported wrong.
Congrats on the app and release, OP!
it's not than all that's impossible with single entry, it's just way messier, so the overhead of double entry is considered better because the books can be more fully audited.
if you're a freelancer, you may get paid net 30 or 60 or even 90. but you still need to know how much money you have right now, how much money you're owed; financial health, P&Ls etc.
Wish they supported more advanced graphs, and let me choose what I want to see. We'll see!
Thanks, app looks clean and useful.