Before we discuss the alternative, I want to speak well of the manual method. For quite some time I maintained a future.journal, which I could include whenever I wanted (alias future="hledger -f $LEDGER_FILE -f future.journal") to add forecasts to my reports. This wasn't as much work as it sounds:
- it contained only the main predictable transactions for the coming year
- it contained org nodes for easy folding and navigation by month/subsection
- I could generate and update future transactions quite quickly using copy/paste/interactive macros in emacs
- it handled irregular or one-time transactions easily, unlike recurring transaction rules
- this allowed more separation of transaction planning, entry writing, and timely journal updating. Ie I could plan my future transactions, and figure out the right journal entries for them, ahead of time, without pressure. Then during the week, "in the thick of battle", I had only to move entries from future.journal to main journal.
> Ideally, an hledger budgeting system would let me
>
> - Write future transactions as ledger --budget style periodic transactions, rather than writing them out week by week, month by month, quarter by quarter, year by year, and usually forgetting at least one of the quarterly or yearly ones
> + Instantiations of periodic transactions would be either "fulfilled" or "unfulfilled"
> = unfulfilled -> included in balance history when forward predictions are run
> = fulfilled -> not included in balance history when forward predictions are run, as they were placeholders for an amount that has now posted
> fulfilled transactions can still be used to measure performance vs budget (i.e. this account/category is over or under budget)
> - Distinguish between point and bucket budget transactions
> + certain incomes/expenses are best budgeted in buckets, others as one transaction per period
> + Periodic bucket transactions could be considered fulfilled after the period for that transaction ends, whether there are 0, 1, or many fulfilling transactions
> = Ex groceries, eating out, entertainment, shopping
> + Periodic point transactions could be marked fulfilled when matched with a corresponding real transaction
> = Ex utility bills, loan payments, any expense for which you expect to be billed later
> - Allow one-time alterations to periodic transactions
> + Often know a bill amount well ahead of actual payment
> + Sometimes a bucket should be expanded i.e. groceries for holidays or a planned visit, entertainment for a planned family getaway
>
> I've taken a look at the hledger-budget addon and it doesn't really seem suited to answering the question: "how much can I spend without overdrafting my bank account."
> If someone could be easily available to help me navigate the hledger codebase I'd be willing to try to contribute a tool matching the spec above. I'm very fluent in Haskell (I'm lucky enough to develop in Haskell all day for work!) but fairly new to plain text accounting and very unfamiliar with the codebase.
>
> I'm also open to suggestions and criticisms of these ideas. Have at it!
I like your thinking! And.. budgeting gets complicated fast, doesn't it ?!
I haven't given hledger-budget a real try, but AFAIK it's not a real usable solution yet (Correct me if wrong.. and it has bitrotted recently and needs an update.)
The periodic transaction functionality added for hledger-budget is available in hledger-lib, though not yet always-on.
In the past I wanted periodic transaction rules that automatically deactivate themselves when a sufficiently similar actual journal entry exists in the time period. Eg a rule for weekly groceries purchase will be ignored in weeks where a groceries purchase is already recorded. I don't remember exactly why, now. Perhaps to allow mixing rule-based and manual (past and future) transactions more effectively.
--
You received this message because you are subscribed to a topic in the Google Groups "hledger" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/hledger/jI8FlZBvMkA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to hledger+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "hledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hledger+u...@googlegroups.com.
To unsubscribe from this group and all its topics, send an email to hledger+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "hledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hledger+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "hledger" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/hledger/jI8FlZBvMkA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to hledger+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "hledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hledger+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "hledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hledger+unsubscribe@googlegroups.com.
So I guess I use a lot of Ledger's functionality not quite in hledger yet. It's still awkward though, as I have to run several reports. I'd love for it to be a bit more smooth.
Sincerely,
Stephen
You received this message because you are subscribed to the Google Groups "hledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hledger+u...@googlegroups.com.
Very interesting, thanks!
--
You received this message because you are subscribed to a topic in the Google Groups "hledger" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/hledger/jI8FlZBvMkA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to hledger+u...@googlegroups.com.
You received this message because you are subscribed to the Google Groups "hledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hledger+u...@googlegroups.com.