Hacker News new | past | comments | ask | show | jobs | submit login
Sid Meier's Civilization Inspired Budget (alexrecker.com)
137 points by personjerry on Nov 13, 2015 | hide | past | web | favorite | 56 comments

I definitely like it. Because I like Civilization, and because I like when you think about the direction and velocity of your (net worth, savings, call it what you want) rather than "what rules should I put in place and follow?"

I've been tracking my spending (cash not withstanding) since 2003, and my favorite part is looking at net worth changes per month, and how they change over time. For example, if I look at 7 years, I see that I've got a rate of $xxx but if I just look at the past 12 months it's now a much better rate of $xxxx! Occasionally, a single day looks awful... every three months I track changes to investment values and dividends paid out. And the past year and a half or so has been negative almost every time! Those days "suck" but I can still look at "how it's going in the big picture" and know we're doing alright. We're headed in the right direction.

I hope more people try approaches like yours.

Unless your dealing with leveraged investments, day to day swings mean very little. Occasionally the market has a huge drop, but right after a big drop tends to be the best times to invest in the stock market. However, mentally people feel the need to double down when it's up and take money out when it's down which can quickly destroy decades of growth.

PS: If you can see a 60% drop and think, yay! great time to invest then feel free. Otherwise, checking once a year is probably fine.

I was initially an overly conservative investor, really couldn't accept any risk or loss (I'm young), but tracking day to day swings helped me quite a bit. Something about seeing changes every day, many of them negative, really hit home the meaningless of those changes given timescale I was operating on. I am now a much healthier investor.

This is one of the big points Ben Graham makes in the classic book The Intelligent Investor -- https://en.wikipedia.org/wiki/The_Intelligent_Investor

Essentially -- unrealized losses don't matter unless they are uncover-able losses.

Exactly. In a weird way, it feels a little more like physics - like you are tracking the position and momentum of a single rigid object while all kinds of things are trying to move it forwards and backwards.

Might I ask what software you use to do that, if any?

I wrote it in T-SQL and classic ASP, and I've never updated it. It's hosted on a server in my basement (Server 2008 w/ SQL Server 2008 ). It's a little clunky. I also use PersonalCapital.com to see the pretty graphs. I've always wanted to write something more elegant and securely shareable for other people to use, but it has never been enough of a priority.

I actually have a pretty similar approach. (To be honest, Civilization's economic system is not exactly novel.)

Except I combine the daily rate with a running treasury (each day starts with the previous day's ending balance). All expenses must be paid out of the treasury, so if I want to purchase something I have to save up for a while.

Importantly, the 'treasury' is separate from my actual savings, which are deducted at a constant rate from my daily income.

The really fun part comes with estimation: I have several years of data now, so I've been able to develop a pretty complex spreadsheet which predicts my network over time. Every month I compare where I thought I was going to be and where I'm at, adjusting estimates to get more accurate over time. It's gotten to the point where I can pretty reliably predict my net worth to within $100. (One time, I even got it right down to the cent, from 6 months out.)

How much time do you spend each day doing this? I'd love something similar but the commitment concerns me. Also what if you miss a day (or two) and don't remember all purchases?

Maybe 5 minutes a day? I actually automatically download most purchases from my credit card's website, so no effort is put into those.

Then I spend probably an hour at the end of the month doing a retrospective on how accurate my estimates were.

This has been a fun read given that we came up with similar methods but from different directions. Mine wasn't Civilization inspired although I played a lot of Meier's Alpha Centauri back in the day. :) I thought more along easily tracking daily transactions on the goal like cashiers or accounts do with a ledger. No online integration, forecasting, etc. Fairly simple addition, subtraction, arbitrary values if needed, and daily/monthly reports.

I also divided my expenses by the day but also the week: paid weekly. Had to make sure I never went passed the minimum I needed for bills. Also, made sure I had enough in the account for my largest, non-rent bill as splitting it by day didn't guarantee the amount would be there. Far as ledger, I went with MoneyWise app for Android. Just loaded it, typed in description/amount, hit save, and done. Can set to an arbitrary balance which gave me starting point (or occasional reset). Then, remove amount for day at the beginning or at least once I woke up haha. Then, just continue tracking expenses.

Might try your method at some point as it's interesting.

Note: Originally posted in Disqus on the page. Reposted here for anyone else's benefit.

I always like seeing people find new ways to manage their money, but you seem to take issue with estimation and categorization, which are (IMHO) the fundamental pieces of a budget that actually create behavior changes.

The point of estimating your expenses is to cause surprise and provoke thought when your estimates are terrible. The point of categorization is to aggregate expenses into larger groups to help find places to cut. Maybe you don't see "$40 for dinner" as a crazy expense but summed over a month it turns out "$1000 on food" is crazy.

Also a fan of Civ5 and all turned based games. Another extra thought:

In Civ you will know that building such Monument will take X turns or making some other technology progress will consume Y science points. I was thinking that it would be cool to be able to track when and how long someone will be able to afford something. It would be extra cool if this could factor in stock options you received in a company or any other assets so that you can draw a projection of the 10 year finance based on current earning/churn.

I do this in a little spreadsheet just for major items, one-off items — think plane tickets, hotels, wedding gifts, etc. A rough estimate of income and expenses per month gives me a good idea of "how long" those things cost. The extra time dimension is helpful when evaluating and considering other choices.

Ynab does this! I'm a huge fan but I'm really liking OP's approach too. A hybrid model would actually be really interesting.

Turn it into a book, sell it, and see your money per day REALLY shoot up!

Seriously, that's very clever, and you have the same complaints about existing systems that I do. As a fellow Civ V fan, I'm eager to give this a shot.

I like the idea as a way to track daily averages, and I'm going to definitely try it for myself. But it doesn't help me with what causes my nose to be buried in Quicken every Sunday: bills don't get paid little by little daily. They come at fixed times in the month (or year). This system doesn't help with the tactics of making sure there's the right amount in your checking account at the right time. Ive had many close calls where my paycheck is every two weeks but bills are monthly, and 2x2 weeks ≠ 1 month.

I think I'd like a service that let me get paid 1/14th of a paycheck every day and also pay [1/28 | 1/29 | 1/30 | 1/31] of my bills every day. Then, your day-to-day finances are literally an exercise of making sure there's always a small balance and that the pay-bill spread always remains positive.

YNAB has the concept of a "buffer", which is just the idea that you have enough in your checking account to pay for an entire month on the first of the month. That way, your bills come out of your buffer and your paychecks replenish it.

This is separate from the idea of an emergency or rainy day fund, which should be an additional 3-6 months expenses in an easy-to-access account, like a linked savings account.

I realize that if you're currently living paycheck-to-paycheck this can seem daunting. Definitely check out the video lessons on the YNAB site, and think about buying the software. There's probably a way to implement it in Quicken, but I have no idea.


I was writing something longer, but essentially +1 YNAB. The videos you refer to also go over how to build up that buffer while you're living paycheck to paycheck.

Some might be turned off by having to manually input charges, by having to plan a budget each month, by being offended that they "could do the same thing in a weekend with Excel", but it's the best solution I've found for my wife and I. Not automated enough that we get disconnected from finances, but smart enough that we can easily see where we stand and run a few reports on our spending.

The system is pretty flexible, there's no need to categorize every stick of gum you buy, just use your best judgement and try not to cheat yourself.

Another +1 to YNAB here. You can get the 30 trial and extend it another 30 days if you ask. Additionally, Steam will put it on sale during the holidays so it can be bought for a reduced price through that platform.

What I like most about YNAB is the flexibility. It can be hard at times to follow the rules they set, but that is one of the rules! 'Roll with the punches'.

> This system doesn't help with the tactics of making sure there's the right amount in your checking account at the right time. Ive had many close calls where my paycheck is every two weeks but bills are monthly, and 2x2 weeks ≠ 1 month.

A paycheck every two weeks can never give you less than two paychecks a month. It'll give you three paychecks in two out of twelve months. So the issue you describe could never cause you to be unexpectedly short of cash? How could you have a "close call"? (I'm assuming here that a paycheck gives you money, and bills take it away.)

$BIGBILL comes at a fixed day each month, but $PAYCHECK happens on a different day every two weeks. Some months, $BIGBILL comes right after $PAYCHECK, in which case you're safe. Other months, $BIGBILL comes right before $PAYCHECK which means you need to find some extra money to cover the period between the bill and your paycheck. If you're living paycheck to paycheck, you always have to have these unsynchronized-cadences in the back of your mind.

This sounds terrifying. It seems like you need a behavioral solution, not a technological solution. Spend a little less, cut where you can, and save until you have a buffer. Then you don't have to worry about paycheck timing.

Welcome to the Bay Area.

That's not just the Bay Area. That's living paycheck-to-paycheck, and it happens everywhere. Sometimes even to "wealthy" people, if they find themselves cash poor (money tied up in retirement, home equity or other property, or investments).

Exactly. If you have a steady income, there's no reason you shouldn't be working on a buffer to separate yourself from bills by at least a month.

Or horribly expensive daycare for two kids :)

This is why I leave a full month's expenses in my checking account. (Actually, I leave a full month's expenses in 3 different checking accounts, to be on the safe side.)

I have a personal Rails site that does something like this. There's an Expense model and a Expenditure model. Also a PayEvent model that's kinda the opposite of Expense, could probably roll them into one model. The Expenses are averaged out by month. An expense can be 'tracked', that means when I'm adding an individual expenditure, I can list it as that expense. My dashboard tells me at a glance how much I've spent on those expenses. If it's not tracked, it is factored in automatically.

It is multi-user, though I'm the only user at the moment. If anyone wants to give it a whirl, shoot me an email which you can find in my profile.

My philosophy is to avoid the banking APIs by putting in expenditures manually. I would love to integrate with OFX, but I don't have the time to maintain it.

Reading through the blog post, it just seems more and more obvious that this is the right approach. Very nice work, and I'll definitely try to set up something similar for myself.

Author here. Thanks, I really appreciate it. I'm so pumped that people are feeling this - I did not expect it to get so much attention.

I am definitely considering turning it into a solution that everyone can use. I have plenty of work to do on it and the weekend can't come fast enough.

Yeah this seems like the kernel of a project that could eventually be a product. I don't know if you're up for that, but if you are I'd encourage you to chase it. Bootstrapped businesses are great!

I love this, and did something similar.

If you haven't thought of it already, some estimations are probably worth considering - electricity and water can be more or less stable, and you might benefit from taking those baseline costs out of your calculation.

Also, it might be useful to add metadata in the form of tags or tag-groups in your spreadsheet; this will give you a bigger/more nuanced dataset if/when you have a hankering to analyze your behavior.

Less usefully, it would be cool if it looked like Civ.

This makes me really happy to see. For whatever reason analyzing finances is enjoyable in a Civ-ish way though I never would have made the connection.

A couple of things I've noticed as I've done something similar:

1) Categorizing the little things as you go along was way too tedious for me too - even in really stripped down form. I really like the idea of categorizing All The Things though. How I dealt with this was to download 90 representative days worth of credit card history into LibreOffice and remove all of the "still gets paid even if I'm cryogenically frozen" payments. I then manually categorize everything that is left (quick because the categorization is batched up and auto-complete works wonders), divide by 90 and generate a pivot table that shows the daily sum of each of the categories. Where I think we diverge though is that rather than trying to keep this snapshot up to date, I just make a mental note of it as "Okay, I average $XX/day on everything else".

As long as you know your starting CC balance then it's pretty easy to figure out how you are doing for the pay period. Just a matter of $start + $daily_cc * $days.

2) Kinda similar to the web app (in spirit if not functionality), I set up a little Python CLI tool that simulates my recurring expenses (along with my recurring $XX "all other crap" fund from above). Once you've set up the recurrence relations you can step through two weeks at a time, pausing to change state, transfer money, etc. It's basically like using a debugger which is an enjoyable way to test out various ideas you have that's a little bit more freeform than a spreadsheet where its hard to see how various ad hoc tweaks layer on top of one another over time.

It's interesting, I religiously categorize everything in Mint, but now that I think about it, I basically never use those categories for anything.

Maybe I should just categorize everything as "spending" and get over it.

(I can imagine ways that granularity should be helpful, like if one area got out of control, or for tax reasons if I ran a business or had a HSA, but they've just never come up.)

I've always wondered why finance continues to run on a monthly cycle. Why isn't that kind of tracking more continuous? It seems to introduce artificial and harmful effects, like people trying to "game their numbers" at the end of a month.

It seems like reporting ought to be continuous and instantaneous.

I imagine there are historical reasons why things have worked that way, since it was inconvenient for humans to compute aggregations any more frequently. However, now we have computers. Why report on a month or quarter or year? Why not look at the report every day, or as often as needed?

The point of doing a budget on a monthly cycle is that most bills are monthly bills. I also have days where I spend half a paycheck and days where I spend zero dollars, so how much money I gained or lost in a day is of almost no relevance.

Historically? Perhaps batch processing.

It simply isn't possible for a bank for example, to press a button and see where the money is. It takes several days of operations to get anything near accurate and meaningful.

This sounds like a joke, but it most seriously isn't. (this is before the qualitative nature of valuing stuff, this is simply the question 'where is the money?')

monthly bills and monthly paychecks...

This is absolutely fantastic. I'd pay for something that hooks into my bank account and spits out a daily number for me, no problem (especially since it doesn't suffer from the mess of housekeeping and categorizing that something like Mint does, which is my biggest complaint about that kind of software).

If you don't build it, I'll probably wind up hacking it together for myself. :)

I just stood the app up locally and started filling out the Yodlee API access request form but many of these APIs are for larger customer bases not personal finance. EDIT: This is just for German banks ignore this... Closest I could find is http://docs.figo.io/ (figo.io/en) - has anyone used this? Worth grabbing a bunch of transactions? I can't see this being something I use day to day without automated spending. I'm looking to build automated spending + manual entry bills per day, week, month.

EDIT: I'm going to give this a shot in the short term and see what happens, rather than writing my own scraper :) https://github.com/mrooney/mintapi

I think you're either going to use Mint or Yodlee for the API as they have partnerships with the major banks, while the banks themselves don't provide the APIs, I believe.

Or Plaid - I think partnered with Intuit (Mint) to get support for smaller banks. They have a very simple yet great api.

> I was tired of trying to assess how we were doing financially while our account balance was jumping around so dramatically month to month. I wished instead that money could come in and go out more consistently - like water draining from a faucet.

Congratulations, you've independently invented double entry accounting. Beware that applying it to PF is highly addictive ^_^

Great post. I love your thinking, and the code that goes with it!

But in the end, this seems exactly like normal envelope method accounting software, but without bank integration and with a daily view. You just have one big envelope for "Daily spending" which can be anything. You still keep an envelope for each bill, and you still keep an envelope for each irregular bill and big ticket item.

A system like YNAB could eclipse this by simply adding a daily view, and reinforcing their point about keeping your estimated spending categories few and broad. You could switch to YNAB (or whatever) seamlessly, and have your bank transactions pulled in automatically.

Am iImissing something?

Another term for 'estimations' in this article is accruals. That is, putting away some expected spending for a future expense.

For managing expenses, Excel is sufficient.

Great work, awesome how finding a system for you can really get your finances under control.

Now you just have to determine how long it will take you to hurry "wonders"... ie. buying a house, retirement, etc.

Also, have you looked into your financial institution to see if there's an API for automatically pulling your purchases? The only problem with your system now is it require constant vigilance to keep adding purchases.

Very cool. I like the way the short feedback loop is materialized. My wife and I have our own home-brewed flavor of budgeting that takes a more introspective approach to the feedback... spending is tagged with circumstantial and behavioral traits (impulsive, well-planned, unexpected-guests, etc...) with the idea of tuning (and perhaps more importantly) aligning our mutual decision making process.

The Daily/Weekly/Monthly/Yearly summary is interesting.

These are all rates, so presumably they're the same order of magnitude, right?

Have you tried making a plot of all these values by day? eg see that your weekly rate for the last few days has been diverging down from your monthly rate, so maybe you should start to slow down after that binge last week and recover.

As a person who is always looking for better ways to budget, I really loved your method. I dont think I can apply it, though, as I work as a freelancer and there is not concept of regular paycheck which I can use to get an estimate daily income..

I just set up the first spreadsheet shown in the post, and having that magic number of net daily recurring income is very...elucidating.

I feel like I suddenly have a much better grasp of actually how much money I make.

I read his wife's name and had to go check that Marissa Meier, wife of Sid Meier, is not the same person as Merissa Meyer, CEO of Yahoo.

Presumably his wife's name is Marissa Recker, seeing that the author is Alex Recker.

Sid Meier, on the other hand, is a gaming legend[0].

[0]: https://en.wikipedia.org/wiki/Sid_Meier

Right, duh. I know who Sid Meier is, but I got confused as to his precise association with this article.

In any case, I think we have conclusively determined that neither Sid Meier nor Alex Recker is married to the CEO of Yahoo.

What's a "checking balance"?

The balance in someone’s checking account. A checking account is the bank account that written checks take money from, as opposed to a savings account.

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