I don't know of a better way. I take the same view that you describe: that
the interest portion of the payment should be attributed as an Expense,
principal as paying down a Liability, and any escrow taken out for the
mortgage company to pay taxes+insurance on your behalf as adding to an
Asset account.
Some day I was thinking of writing a beancount plugin that does this split
automatically based on the standard amortization schedule, but it's low on
my list. It would be a pretty easy plugin I think. A fava extension doesn't
seem like the right tool for this - I haven't used those but it seems like
their role is to give you ways to display data in your ledger, rather than
actually mutating the ledger as proposed here. You could even have the
plugin automatically insert the transactions using just the plugin
configuration.
For example, this could be all the user has to input:
plugin "your_cool_plugins.mortgage" "{
'transaction_day_of_month' : 1,
'start_date' : '2010-01-01',
'principal_and_interest_amt': 1000 USD,
'interest_rate_pct': 4.25,
'escrow_amt': 200 USD,
}"
Then the plugin can generate a transaction every month between `start_date`
and today().
As for plugin examples, there are several great plugin authors in our
community. See here
<https://github.com/beancount/beancount/tree/master/beancount/plugins>, and
here <https://github.com/redstreet/beancount_reds_plugins> (and there are
lots more out there).
On Thu, Dec 2, 2021 at 12:56 PM Scott Wallace <[email protected]> wrote:
> Hi, I'm new to beancount/fava but very impressed with it so far.
>
> I've set up a few months of data to see how things work, and one items I'd
> like to track is monthly cash available after expenses and mortgage
> payments. Since mortgage payments are partially paying down a liability
> (and thus, a chunk isn't really an 'expense' per se), it's not really clear
> to me the best way to do this.
>
> I had been thinking that perhaps I should write a fava extension that
> calculates this figure, but as I'm writing this it occurs to me that maybe
> there's a way to do it by setting the accounts up differently.
>
> Any thoughts out there for me?
> Also, if I do go down the road of a fava extension, I'd like the extension
> to be able to use values typed into the time filter. Can anyone point me to
> sample code that does this? My quick tour of the fava code didn't reveal
> any obvious suspects, but I have yet to really understand how it all fits
> together.
>
> Thanks!
> -Scott
>
> --
> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/beancount/e5722df9-687c-4e24-bced-f7c917c9ace9n%40googlegroups.com
> <https://groups.google.com/d/msgid/beancount/e5722df9-687c-4e24-bced-f7c917c9ace9n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beancount/CACGEkZurdBCUR8sp0Uu_R_c0THo2NQapZLRCjYVpntS-xyQa5w%40mail.gmail.com.