There’s no way I’m going to enter in every transaction (not to mention the dozen automatic subscriptions). To me, automatic import is a must. From there, it does a fantastic job of helping me plan for next month and track spending across time.
After 2 years, I have a clear sense of how much we spend on car repairs, vacation, Christmas, etc.
Anyway, I’m not affiliated with them, I just enjoy the tool.
Is it ridiculous that I have to pay money every month just to get my transactions in a useful format? Yes. But that isn't their fault, in my opinion.
They charge $7/mo and Netflix charges $11, while I personally get way more value from my $7 going to YNAB. :)
So no more paying for access to your own data...
It is one reason I wish tools like Apple Pay should allow / had the option to retain those data for me personally only. And have the financials will work out all on my Phone and no where else. How much did I brought these and that, per month.
I read somewhere that they suspect banks are deliberately delaying this because payment data is worth a LOT of money. And banks will loose the "monopoly" on this data.
There have already been raids here to investigate whether they are deliberately delaying.
Also, for example, PSD2 means external apps can make payments (if you permit), so basically your bank software can become 100% superfluous.
So banks are afraid customers might "loose touch" with their brand.
I'm sticking with the classic version.
The x costs $y, and a costs $b, argument doesn't scale at all.
I found an open source project named Firefly III, that uses an API called Spectre. Same deal, free for a certain number of bank accounts, but looks like you need to contact them to set up your API access. Incidentally, I recently saw an iOS app that had been using the Spectre API as well.
Personally I don't transaction import capabilities (nor could I have used it to be honest as they don't have support for German banks). Tracking my expenses as I make them is half the benefit of YNAB for me. Makes me acutely aware of how much I am spending and how much money I have left.
Same with TextExpander and other apps, I'll give up on them once they stop working—or even before that happens.
I've never found the 'perfect' piece of personal finance software that works for me. Some people say MS Money Sunset is the one true way but it sounds like a pain to get working on OSX.
Could never get on with the double entry approach in ledger or GNU cash, the workflow/approach just doesn't feel intuitive to me and I struggle with it.
I have to manually go in and update my balance for investments once/month or so. They're set up to "track", but functionally do not.
Reminds me of Numi, a really beautiful text calculator I've been using on MacOS for a few years now.
Either you know where your money is going or you don't. If you don't, then maybe a few months of tracking expenses will tell you, but once you do, it then becomes about the internal struggle of telling yourself not to spend money you really shouldn't be spending, and this battle can't be fought with an app.
Maybe if you made a ton of money and it didn't make personal sense to track it all. I can see maybe a personal accounting app that involved actual people logging into your bank accounts and actually looking at what you're spending maybe being a thing, but that's called hiring an accountant and has been a thing for centuries.
Difficult to see this problem yielding to any kind of tech solution. I say this as somebody who maintained his own expense tracking app for months before dumping it. Nowadays I just look at my bank statements if I'm confused. Doesn't take long to find out what I need to know.
That's harder than it seems. For example, if you're debating a purchase on the 10th of the month, there are a bunch of bills and other purchases you're going to make the rest of the month (groceries, eating out, etc.) so you don't really know how much is remaining that you have to spend.
I use a Google Sheet that has taken me years to iterate, which knows the current date, tells me what expenses I'm going to incur over the rest of the month, along with a column of estimated numbers I guess at (cost of groceries, eating out, etc. for the rest of the month) and then tells me what my true remaining balance is.
Of course you should also have a third account for savings. :)
The other option is doing the same with credit cards, though you'd have to work backwards with credit cards. Basically, have a groceries credit card, a dining out credit card, etc. If you look at the balance you can see you have $200 in dining purchases this month and you budget is $250, so you have another night out budgeted for the month.
Prior to that there was an app called "Level", that did the same sort of thing across all your accounts. However it consistently failed to connect to my primary bank so it wasn't that useful.
+ 100 Wallet
+ 800 Account
+ 50 Piggybank
- 100 Some urgent expense
- 150 Another urgent expense
I think this answer explaining your most common usage actually explains better what you've built and its (unstated) philosophy. What you've created is a "scratchpad for arithmetic" that parses the numbers in plain text. (Or stated another way, a "freeform spreadsheet" without the row col gridlines.) You then choose to call that functionality "budgeting".
My lightbulb moment: This is why non-existent datetime data isn't "missing" in your tool because "math scratchpads" don't need dates. I also see why you see your tool as "simpler" than the other text-based accounting tool "ledger-cli". ledger-cli is definitely not a math scratchpad; it's based on transactions of debits/credits which is overkill for a scratchpad.
I understand it better now. If you want to call your text parser math scratchpad -- a "budgeting" tool, I won't quibble with that. However, a lot of other people think of "budgeting" as money planning with a time horizon beyond the boundaries of a scratchpad. My earlier comments were based on that wider expectation of "budgeting". I'm not saying a budget tool has to be as feature-heavy as Quicken or Mint but many people would need something with slightly more functionality than a math scratchpad.
 Your parsexxx() functions are not specific to the domain of money budgeting but for any numbers with text labels to be added/subtracted/multiplied:
This was an amazing thread that gave me lots of ideas. I plan on keeping this codebase moving forward with them.
Disclosure: I am the founder.
We also have a live demo at https://www.buxfer.com/demo (or click "Live demo" on the desktop/mobile website)
Please feel free to contact me at firstname.lastname@example.org and I will be happy to assist you with any specific questions, in case the marketing material is not sufficient.
- 10 Coffee shop x 30
Most people have money allocated for specific categories when they budget, that doesn't mean they are living on the razors edge if they simply wanna know how much more they can spend while still adhering to their predefined budget!
A lot of people (including me) have savings as one or more line items on their budget.
My budget is super duper simple:
1) Put the bills money direct deposited into in one account - that is money for mortgage, streaming services, taxes, insurance, water, and electricity.
2) Put a predefined savings amount direct deposited into savings and investment accounts. This includes 401k deductions.
3) Put the remaining money into a third account and spend it all however I want. I'm on budget as long as I don't spend more than what's in this account.
Budgeting is like an optimization/monitoring problem with 2 objectives:
1. monthly cash flow > 0 (don't ever let your cash situation go negative e.g. credit-card debt)
2. maximize(Year End final balance)
I have a Google Sheets doc that I've used for years where I have inflows and outflows by month, and a year-end balance that is automatically calculated. This lets me see what my projected cash status will be at the end of the year.
At every month, the cash flow (in - out) is calculated -- this prevents me from going underwater at any given period.
Having a dynamically updating spreadsheet helps you to monitor those two objective functions and make course-corrections.
It's simple, it's cloud-based and it's available on all devices.
* amount (+/-),
* account (N° or establishment),
* a short memo (can help with cross-category expenses, such as moving: requires gas, train tickets, movers, new furniture, selling old furniture),
* and a (sub)category (gas/car, train/trips, "Livret A"/saving, etc.).
I want to be able to have multiple "sheets" horizontally, one for each month, and then make it possible to calculate a final balance (and perhaps even a graph in the background).
Nevertheless, plainbudget as a CLI tool has worked just as well for me for many years. It does take a bit of manual text wrangling in its current form, but I hope it'll grow now that it's open sourced :)
I looked over your site's examples and the conceptual primitives you have designed ("value groups", "cashflows", "expenses") do not seem to be powerful enough to manage "budgeting". Yes, you're deliberately trying to make it "simple" but text entries without date timestamps metadata for each transaction and without accounts/categories/buckets/tags will impede disciplined budgeting. Your (lack of) metadata primitives is too simple.
Based on your example, each "value group" doesn't seem much more than an isolated group of arithmetic operations which is similar to punching in some calculations on a desktop calculator. E.g. one enters a few calculations which shows up on a paper tape, presses "C" to clear and punches another group of calculations, and presses "C" to clear, etc. Your text system has obvious advantage of "text labels" over the desktop calculator but it doesn't have enough metadata primitives (e.g. timestamps & tags) to produce budget forecasts, goal planning, savings schedules (e.g. college fund, vacation fund, retirement, contingency reserves for house repairs and car repairs, etc).
Yes, it has none of these features. Intentionally. Perhaps due to sheer stubbornness, I have used a collection of manually edited text files for most of these. It just came to a point where having a script to run calculations automatically became essential.
And lately, I've found myself using the script for quick calculations. I wrote the web version as a way to avoid having to create a new text file just for that. But there's definitely a lot of room for improvement.
I actually want to explore creating a plugin API.
Yes, I can see you designed the omission deliberately but what I don't understand is how to do effective budgeting without a timeline calculation. You need date&time metadata to facilitate planning and planning is budgeting. Budgets based only on arithmetic against snapshots of balances without incorporating a time horizon doesn't seem like "budgeting".
>, I have used a collection of manually edited text files
It looks like making text entries "simple" means shifting the "complexity" to multiple sheets (or multiple text files). The hidden implicit metadata is the filename conventions and organization of text files.
>But there's definitely a lot of room for improvement. I actually want to explore creating a plugin API.
Yeah, I myself use a few conventions for dates. I'll probably document and automate those soon.
I keep my eyes primarily on the monthly Running Balance line, and specifically, the Year End Target (the rightmost item on that line). Those are the KPIs (key performance indicators) that I monitor.
The calculations are fairly simple. The running balance Total Income - Total Expenses + PrevRunningBal. (PrevRunningBal is 0 and excluded from the formula in the first month).
Once-off Expenses is a category that's expanded out in the bottom so I have a better sense of where I spend chunks of unbudgeted money. It's summed up in the Expense item "Once off Expenses".
I also have a monthly buffer as a safety factor, in case I overspend.
As you can see I don't track expenses at the receipt level (too tedious), just on the gross level (and only if it's above a certain amount -- I don't sweat a $2 pack of gum).
For me this is a good balance between a too-loosy-goosey budget that is useless and a too-detailed-budget that is tedious to keep up.
This is enough to keep me on track for the entire year, and I usually end up with quite a bit of spare change at year end.
Also I’m rarely off budget by a lot, partly because of the visibility this tool provides. My feedback loops are tighter due to monitoring.
You can also do what-if scenarios pretty easily, e.g. can I afford a vacation in Spain in a particular month without dipping under, how much of a raise do I need to ask for to hit a target, etc. You can play around with timing and amount.
A spreadsheet provides you with all the metaphors you need to do planning and budgeting efficiently. It’s a solved problem. It’s really hard to beat.
I then run a report showing the difference between each budget account and each corresponding expense account on a monthly basis.
Any good tutorial/guide?
And the links from there are a pretty good start. Start with just basic asset tracking (checking, savings) and liability tracking (debt, CC) and get into the routine of it. Then you can add in your investments and other assets (car, home, stocks, foreign currency holdings, etc.). If you don't care about a slightly inaccurate history, just add the stocks later on at their present value, or go back and find your initial purchase dates and cost basis and let ledger calculate your present gain/loss.
It's a single Perl script. Used this for my monthly expenses before I bought a "smart phone" a few years ago. Since then I use a more crude method -- the 'Keep' utility on Android as an "expense manager". A note with tick boxes, where each tick box denotes an expense entry, later do the math, I know it's super inefficient, but I don't want to install yet another application).
If/when your net worth is too risky for you get more tight and try to improve it every month. If/when you feel confortable with your number you can loosen up. I started to track it in a spreadsheet every month. I loosen up to every quarter. This is my new religion.
+ 1000 Salary
- 700 Expense A
- 200 Expense B
- 100 Expense C
= 800 Expense A
- 300 Car payment
- 150 Plane ticket x 2
- 200 Utilities bill
I will work on it this week.