Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> How much money did i spend daily on groceries last month

Can you expand on this slightly? One of my frustrations with personal finance tools that I have tried in the past is that they're really bad at modelling occasional expenses— for example as a low-car family, we only fuel our vehicle once every 4-5 weeks, so some months the "gas budget" goes unused, whereas other months if we take a trip, we'll completely blow the gas budget because we fuel up twice or three times.

I wish it were possible to "smooth" those kinds of expenses into an average daily amount, but also have a way of indicating that a particular chunk of them should actually be extracted from the smoothing and assigned to a different category altogether (eg, the gas used on the trip should go to "vacations", not "vehicle"). A similar thing applies with other bursty things like home repair expenses, where I'd like my Home Depot receipts amortized over a time period that I specify rather than counted right at the moment of purchase.



With ledger, this is very easy.

I also run a janky Python script which imports my various .csv files, detects which is which, and turns them into ledger entries.

So a vacation stop at a gas station would look like this:

    2021-01-01 Chevron
    Assets:Checking   $-100.00
    Expenses:Auto:Gas
So lets say I know I spent $40 of that on food, and want to put another $40 into the vacation budget, I modify like so:

    2021-01-01 Chevron
    Assets:Checking   $-100.00
    Expenses:Food     $40
    Expenses:Vacation    $40
    Expenses:Auto:Gas
And it puts the rest in the gas budget.

There are ways to report average expenditures and smooth them out, ways to report how many days between each purchase in a particular category or from a particular merchant, and so on. Want to amortize a particular purchase? No problem, it's a periodic transaction.

ledger-cli can do accounting, really if there's a question about your money or a way you want to keep track of it, it's covered. Several graph libraries can ingest ledger files.


Well, whether you assign the expenditure to vacations or vehicle is a choice (and I could see arguments for both). So software isn't going to help you with that.

I use YNAB for budgeting and they basically advise what you're requesting - figure out what the "average" is over a given period of time and just budget that amount. Say you contribute $200/mo to an all-encompassing gifts budget, you may only pull from it a few times a year but the money is already earmarked.

Amortizing things doesn't make sense for a home budget - the whole point is to know whether or not you have enough money for x.


What I do is I create a budget for an entire year. That smooths out expenses that don’t happen on a monthly cycle.


I use a spreadsheet, two adjacent columns, one for incoming, one for spending. The column pair is titled as Gas, Registration, Repair. I look back at 1 year history, average those per paycheck, put money in each column from each paycheck. I minus them when I spend. Each row starts with the dare of transaction.


> modelling occasional expenses

I would say it's very hard to budget for bursty things on a monthly cadence. You can have a "virtual account" for this stuff, that fills on months with little activity and drains on months with more activity. But this is kind of complicated and might not be worth it.

I'd try answering the question: what is your goal in budgeting for gas, for example? Is it to keep gas spending under control? Or to understand how much you spend on gas? And if you want to understand, why? Budgeting is a solution to some answers to these questions, but not all of them.

Personally, I find it more useful to track these things, than to budget them, if that makes sense.

For example, I want to know how much I spent on rental cars in 2020, because that impacts our decision to lease a car in 2021.

> a way of indicating that a particular chunk of them should actually be extracted from the smoothing and assigned to a different category altogether

In GNU Ledger, you can apply arbitrary categories to each expense, and you can also "tag" line-items. For example, if you think 80% of your last refill was from a trip, you can do as follows:

  20201/01/12 * Chevron
    Expenses:Travel:Car:Gas             $16.00 ; :vacation:
    Expenses:Travel:Car:Gas              $4.00 ; :commuting:
    Liabilities:CreditCards:AppleCard  $-20.00
You can then do queries to see which of your gas came from commuting, and which came from vacation.

You can remove vacation from your reports altogether, and you can also focus exclusively on each vacation. You can even tag vacations, if you so choose.

  ; :vacation:lasvegas2021:
> amortized over a time period that I specify rather than counted right at the moment of purchase

You can achieve this behavior by specifying "effective dates" for certain purchases.

For example, when I buy plane tickets, I like to amortize the cost of that ticket over each day I'm at my destination (similar to your home depot example).

  2020/01/11 * American Airlines
    ; three-day trip to Colorado
    Expenses:Travel:Plane          $80.00  ; [=2020/02/01]
    Expenses:Travel:Plane          $80.00  ; [=2020/02/02]
    Expenses:Travel:Plane          $80.00  ; [=2020/02/03]
    Liabilities:CreditCards:Apple $240.00
The dates in the comment are called "Effective dates". You can ask for reports to be presented with either effective dates or transaction dates, at query-time. Note that the credit card payment's effective date is identical to the transaction date.

Let me know if you have any further questions! It's a fun topic.


Remove the `=` and you don't have to choose!


I had the same wish, you might be interested in https://github.com/simonmichael/hledger/blob/master/bin/hled...

However, reporting average expenses is easy, and sometimes enough..




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

Search: