Hi,
I don’t use forecasting myself, and there are probably plugins and scripts other uses, but here are some quick answers outside that.
In GNUCash, I could set up recurring transactions using a mortgage
formula that automatically calculated principal + interest. When you
Here’s the trivial script I use. When importing from your bank, manually replace your mortgage transaction with the output of this script. Or automate it if you have fancy importers setup.
- Buy milk from farmer.
Simplified:
2025-03-03 txn "Pay Milk January/February" Assets:Csah -50 EUR Expenses:Groceries:MilkOr if expense spreading matters, I use my plugin:
2025-03-03 txn "Pay Milk January/February" Assets:Csah -50 EUR Expenses:Groceries:Milk 25 EUR effective_date: 2025-01-01 Expenses:Groceries:Milk 25 EUR effective_date: 2025-02-01I have a car that can use LPG or Gasoline (95 or 98). Rigth now I do:
Use metadata:
2024-06-01 * "Gasoline" odometer: 66,324 gallons: 11.567 Liabilities:Credit-Cards:Credit-Card -50 USD Expenses:Car:Koeninsegg:FuelYou can then write a simple plugin to compute fuel efficiency and such. I use it for oil changes as well.
- Net Profit Liabilities and Expenses I have a mortgage on my main house (it’s my only
one and not an investment).As far as I can tell, net profit is calculated without accounting for principal
payments on the mortgage because those are treated as Liabilities, not Expenses. This
doesn’t make much sense for personal finance tracking. How can I adjust this? Or,
alternatively, how can I calculate what money I really have available (Income -
Expenses - Payments on Liabilities)?
Payments are typically booked as such:
2025-10-12 * "Mortgage Payment" Assets:Banks: -1000 USD Expenses:House:Mortgage:Interest 800 USD Liabilities:Mortgage 200 USDSo money flows from Assets:Bank to Liabilities:Mortgage and Expenses:Interest. There’s nothing you should have to do: your net profit and net worth should all compute correctly as expected.
--
You received this message because you are subscribed to the Google Groups "Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beancount+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/beancount/59517c6b-8041-4e4e-8e1c-7a7177c3e80cn%40googlegroups.com.
Bbut I need to keep track of how much milk I take to calculate how much I
pay, problem is after paying in cash I still hold milk as a commodity.
see my example
This is basically asking “how do I model what I want using double entry bookkeeping?” which is a common question, but not really related to Beancount (except perhaps for some trivial figuring out of syntax at the end). I’d suggest writing up (in plain words) what you are trying to accomplish, which I couldn’t tell from your current set of posts. What are your goals? What do you want your assets, liabilities, and expenses to reflect with respect to milk?
This gives a net profit af 1400 USD but balance in account is 1250
Sounds correct to me. I’m guessing your mental model of Net Profit is probably different from what is accepted as its definition. How do you define it in your mind?
Here, your Liabilities went down by 150 which is the same as your Assets going up by 150. It’s as if you took the 150 and put it in a different bank. Therefore, the 150 does not affect your net profit.
No. This is a feature, not a bug.I find the plugin approach is useful
Sorry for not being clear. My end goal for using beancount is that I
want to know future income/expenses and plan accordingly. This is, be
able to answer: How much MONEY will I have at X date? Will I have enough
money in the bank to pay Y? When would I have saved enough to buy Z?
Makes sense. In terms of reporting, the closest “standard” report that will help with that is usually called a “Cashflow report”, which is different from a “Net Profit” report. I’d recommend spending a few minutes with AI to dig in and understand these better.
> On Mon, 27 Oct 2025 02:05:09 -0700 (PDT) "redst...@gmail.com" wrote:
> So money flows from Assets:Bank to Liabilities:Mortgage and Expenses:Interest. There’s
> nothing you should have to do: your net profit and net worth should all compute
> correctly as expected.
Which confused me, maybe I didn't hunderstand what redst was telling me
or I didn't explain correctly. Now, what I am doing, is using "plugin
"beancount_reds_plugins.rename_accounts.rename_accounts" to rename
mortage pricipal to an expense in fava.
This works great and now my Net Profit reflects correctly. if there is
another way towhat money I really have available (Income - Expenses -
Lean payments on
Liabilities) I am all ears
If you rename a Liability account into an Expense account, that would have a lot of unintended effects on your ledger and reporting. It breaks the bookeeping paradigm a bit. For example, now your ledger says you had a huge negative expense the year you bought your house. That said, doing it with my plugin above is a great way to experiment as it’s trivially revertible.
See this thread on how to generate a Cashflow report and fine tune it to your needs.
Which resources do you recommend? Is the book tracking your finances
with python worth it? I know some programming, but I haven't touch
python in ages. As I told: I don't want to spend hours to accomplish my
financial tracking goals, but also the reason to use beancount was it
extensibility if it will let me say, automate getting my bank statements
and create dashboards with the info I need... it will be worth it.
If you want to create custom reports or dashboards, or automate a lot using the Beancount ecosystem, you would need to be very comfortable with Python. What I’d suggest in getting started is to get your initial ledger created, figure out the most important set of questions you want to ask of your ledger, and then work through them (like you already seem to be doing). You’ll gain a much better sense of what you need to go towards, in a little bit.
regarding milk I want to do this:
2025-11-07 * "Milk"
Expenses:Groceries 3 MILK @ 0.6 EUR
Liabilitios:Milk EUR
without having to specify "@ 0.6 EUR" in every transaction, I want
beancount to take the price directive.
Why? because I know how many liters I take everytime, but I don't
know if the price may have change. If I don't specify "@ 0.6 EUR" my
liabilities in fava will show I owe lot of milk and that they owe me
EUR. unless of course I select convert to EUR.
I think you may be confounding the problem you’re trying to solve with the solution. A solution in Beancount is subject to its syntax and such that you must adhere to. But other than that, this is the straightforward part.
The tricker part is the problem. I still can’t say I understand what you’re trying to accomplish around milk. Writing down a problem statement would help. Even better, spend a few minutes going back and forth with AI on this, and that should help.
Being in similar position at some point, I started putting together https://github.com/Evernight/lazy-beancount/ (and the linked guide). Instead of building from bare bones you may take a different approach and throw in a bunch of stuff right away with some examples and recipes.