Hi all,
Excuse me if I get some of the terms wrong, I'm pretty new to proper
bookkeeping (though I had a fun week "importing" 6 years of YNAB history
(read: re-recording real transactions from January 1st, 2019, and using
YNAB's reporting features to eyeball 5.5 years of percentage-distributed
categorized income and expense transactions. It's not accurate to the cent
but it'll get the job done in terms of trend reporting)).
The general idea of what I want to do is the following:
- Accurately track my week-to-week (or month-to-month or day-to-day,
whatever) utility usage.
- Put that in a liabilities-account.
- Also put the monthly prepayments of my utility provider in that account.
- Have an accurate view of what I can expect from the yearly
reconciliation, before it happens.
I've been trying to figure out how to track utility usage without having to
use a secondary file in which I record metered values, and then only input
the difference in transactions in BeanCount. Now there's of course no way
around using the difference between metered values, but I'd very much like
to be able to also track the actual metered values in beancount -- that way
I can be sure I did not make a mistake anywhere using balance statements.
I'll use gas as a shorthand, but all utilities behave this way.
I'm going to use a commodity GAS_M3 (that's cubic metre, I don't know what
US'ies use to track gas volume) as a commodity, which has a single but
potentially per-month fluctuating price. (At some point I want to figure
out how to handle electricity and solar panels and how all that works in my
country but let's focus on the simple case for now.)
Now initially you might think this is no different than a normal commodity
using normal accounts, except for the following two truths:
- The total amount of used is not an asset or a liability (nor an equity?)
because once you use it it's immediately transformed into light, heat, etc.
It's not something you can sell again. So for the total sum I guess we'd
have to use an expense account, and a liabilities account only holds the
delta for the current reporting period / billing period. Nothing wrong with
balance checks on an expense account though, this will work.
- There needs to be an initial balance in the Expense account in order for
it to accurately reflect the meter values (since meters don't reset to 0
when you move in). However, those GAS_M3s represent no *value* because I
did not pay for them, they're not a liability to me, nothing of the sort.
I'm thinking one way might be to set it up as follows:
2018-12-01 open Equity:Utilities:Gas GAS_M3
2018-12-01 open Expenses:Utilities:Gas GAS_M3
2019-01-01 open Liabilities:Utilities:Gas GAS_M3
2019-01-01 open Assets:Checking EUR
2019-01-01 balance Expenses:Utilities:Gas 5000 GAS_M3 ; Initial meter
reading
2018-12-01 pad Expenses:Utilities:Gas Equity:Utilities:Gas ; put before the
start of reporting so that it's not included
Then, gas usage looks like this:
2019-01-05 * "Meter reading"
Expenses:Utilities:Gas 10 GAS_M3
Liabilities:Utilities:Gas -10 GAS_M3
2019-01-06 balance Expenses:Utilities:Gas 5010 GAS_M3
and the monthly pre-paid bill would be something like
2019-01-25 * "Pre-paying gas"
Assets:Checking -100 EUR
Liabilities:Utilities:Gas 20 GAS_M3 @@ 100EUR
(yes those numbers are totally unrealistic).
This works, but has the (obvious) drawback that the gas expenditure does
not seem to be convertible to an expense in fava's reporting, and I have to
do the mental math for conversions manually. That's probably to do with how
the price feature works, and I think the cost feature might be very
helpful. Gas prices are generally set per year or per month. So now we
might have
2019-01-25 * "Pre-paying gas"
Assets:Checking -100 EUR {0.20 GAS_M3}
Liabilities:Utilities:Gas
However, that triggers an error because no position in the checking account
matches that. Okay, fine, I guess I'll have to precompute the amounts after
all:
2019-01-25 * "Pre-paying gas"
Assets:Checking -100 EUR
Liabilities:Utilities:Gas 20 GAS_M3 {5 EUR}
Okay, but then I also need to specify that cost basis when it's used
initially, so
2019-01-05 * "Meter reading"
Expenses:Utilities:Gas 10 GAS_M3 {5 EUR}
Liabilities:Utilities:Gas -10 GAS_M3 {5 EUR}
but then I get the problem that, since I'm pre-paying and might expect to
get a return on my year bill, that commodity *might switch sign*, as it's
doing here. I guess I could turn to the NONE booking method but from the
documentation I can't really tell whether that's going to bite me later on.
One advantage using the held-at-cost commodities is that the initial
balance that ends up in equity is never converted to EUR because it can't:
it doesn't have an attached cost; but the other commodities behave as
expected. Also, I realize as I'm typing this, that my prepaid bill isn't
"pre-allocated" to gas/electricity, I just pay a single company in bulk and
they just reimburse / charge the total overage at the end of the year.
A better option at this point might be to use subaccounts as follows:
2019-01-01 open Liabilities:Utilities:Prepaid EUR
2019-01-01 open Liabilities:Utilities:Gas GAS_M3
2019-01-01 open Liabilities:Utilities:Electricity KWH
and use the normal booking method (or maybe FIFO), and then if I book lots
into the Gas and Electricity accounts I'll use their Euro rate as cost,
looks like the reporting can take care of automatically converting it then.
When I receive the final bill and reimbursement I can do a balancing
transaction, "paying off" the sub-accounts with the money in Prepaid and
return the leftovers to my Checking account -- and if I have to pay
additional I can just first add that as a transaction to the Prepaid
liability and then pay off the entire lot, I guess.
Random closing thought: I could even put the initial Expense balance into a
leaf account to ensure it's recorded and shown separate from my own usage,
and still put balance statements on the higher node for actual meter
readings.
Comments are very welcome.
Questions I still have:
- Does putting the Equity account under Equity:Opening-Balances:Gas give me
any special benefits such as not reporting it?
- Will any of this come back to bite me in the future?
- Am I totally insane for even wanting to do this?
-- Pol
--
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/beancount/677f5ffa-3781-4869-97be-90834630e7be%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.