63 points | by aswinmohanme2 weeks ago
I 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 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'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.
id, date, date_settled, currency, bank, account, account_type, reference, credit, debit, account_balance, total_balance
Dates are in ISO UTC, I have several bank accounts across multiple countries so it's helpful to track currency and bank. Credit cards are just an account.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 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
The approach to organizing finances shares much in common with effectively choosing leisure platforms, such as online casinos. For example, Casino Rater NZ assists players in finding user-friendly and transparent https://casinorater.co.nz/no-deposit/no-wagering/, where everything is straightforward, and winning is possible. Just as PaperMoney simplifies financial management, Casino Rater NZ makes the gaming process accessible and optimized for a diverse range of users.
In both finance and gaming, accuracy, transparency, and accessibility are key. Whether you’re managing your budget with PaperMoney or searching for the ideal gaming platform, the right tools significantly enhance your overall experience.
Thanks, app looks clean and useful.
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.
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.
Congrats on the app and release, OP!
Wish they supported more advanced graphs, and let me choose what I want to see. We'll see!