On 10/06/2021 19:08, Brandon Anderson wrote:
> Wow, I was not expecting that much feedback; I will try and answer each
> point that was brought up.
>
>>Most Beancount users and developers are not familiar with GnuCash, thus
>>it may be better not to explain what you would like to achieve by
>>similitude or contrast to the features offered by GnuCash.
>
> Understood, I figured it was a good comparison as it's an open-source
> double book accounting software and was what I am familiar with, but I
> will avoid referencing it in the future.
There is no reason to avoid mentioning it. I was just pointing out that
if you explain what you would like to do in term of what GnuCash does, a
good fraction of the people on this mailing list do not know what you
are talking about.
>>The use of bean-web is discouraged. It has already been removed from
>>what will become the next major version of Beancount. If you like a web
>>interface, use fava.
>
> Good to know. Does that mean bean-bake is also being deprecated? I liked
> the idea of being able to build a static web report you could hand to
> someone.
Yup. bean-bake is gone too. I never used bean-bake and I don't recall
what was the rationale to remove it but the general idea is that is is
very difficult to design a system that is generally useful without
having a bazilion of configuration knobs. Thus the goal is to provide
building blocks that can be used to easily piece together a reporting tool.
>>I wrote maybe 10 checks in my life. I don't think it is that common.
>
> I run a small business, so I must keep detailed records and find myself
> writing well over a hundred checks each year. For small amounts of
> money, I can see why checks have fallen out of favor. Still, once
> transactions are into the many thousands, the transaction fees charged
> by most banks for credit/debit/electronic deposit/withdrawal can become
> quite excessive. I imagine many running their own small business
> probably still write checks frequently; maybe I am wrong.
All banks in Europe offer zero commissions and zero fees transfers
regardless of the amount transferred. Actually, the likelihood that
someone that you don't regularly do busyness with accepts a check is
inversely proportional to the amount transferred.
That is one good example of the reasons that made me to say that the
banking system in the US is more broken that in most other places.
>>I don't think I understand the question. A reverse transaction is
>>recorded as the direct transaction but with the amounts with the
>>opposite signs. I don't know what you mean by voided in this context. If
>>a transaction appended it can be reversed by another transaction
>>effectively undoing it.
>
> So, when I asked about reverse transactions, I had misread something in
> the documentation, which caused me confusion. So you can ignore that
> question. As for voided transactions, this again comes from the issuance
> of checks. If I issue a check, say check #126 to John Smith, it is a
> negotiable instrument, so it goes into the ledger; if something were to
> happen after the issuance which required it to be voided, maybe it was
> never received or was misprinted I need a way to keep the record in the
> ledger because a check was printed, and simply mark that it has been
> invalidated. This feature is helpful because there is never a missing
> check number that is unaccounted for. Ideally, there would be a flag to
> mark voided transactions as there are '!' for incomplete or uncleared
> transactions, and '*' for completed transactions, there could be a 'v'
> or some other symbol to mark voided transactions. After looking over the
> documentation, I am guessing the best course of action currently would
> be to log an event directive? I still want to keep the records of the
> accounts the check was issued to/from, though, so would that go into
> metadata on the event.
You can assign whatever meaning to flags, the '!' and '*' for pending
and cleared transactions is only conventional, Beancount does not assign
any special meaning to them. For this reason, a flag seems the wrong way
to achieve what you want.
If you want to keep track of check in this way, you need to record two
transactions for every check you write: one from a Payable account to an
Expenses account when you write the check and one from an Assets account
to the Payable account when the check is cashed (this is also the only
way to record correctly the dates on which the check is written and on
which it is cashed). If the check is voided, the second transaction
never occurs and you will have instead a transaction reverting the first.
Other accounting suites may offer a different interface to record these
transactions, but this is how things are actually recorded under the
hood. If you deal a lot with checks, a plugin that synthesizes the right
transactions from a more concise representation could be useful. So far
no one seem to have had the need to write such plugin.
> Having the option to place an ID or reference to a transaction does not
> require it to be solely for checks; it could be referencing invoice
> numbers, etc. But the metadata feature seems powerful enough to make it
> unnecessary anyway. It was just weird not seeing a number field for
> transactions. I think it depends upon what you are using the software
> for. If you just want to track your personal finances, then it might
> seem silly; if you own a small business, then not so much.
I think having a transaction ID is an historical accident of having
early ERP systems based on relational databases, where assigning IDs to
things is natural, but representing financial transactions in relational
tables not so much.
I think that you may a bit disoriented using Beancount because it is a
tool that offers building blocks that allows you to implement a workflow
more that a tool that offers an opinionated interface that pushes you
toward a specific way of doing things (making doing things in a way
different than the one imagined by the authors very difficult).
Other than matadata fields, you can also use links to represent
transactions IDs.
> I clearly walked into this landmine, not realizing it would be such a
> contentious issue.
It does not seem to be that contentious to me: everyone except you think
that the current accepted date format is the best choice :-)
> I admit I had a brain fart and forgot that there is a
> DD/MM/YYYY format in everyday use in other countries when I wrote that
> suggestion. Many people have pointed out that it creates an ambiguity in
> how it would be parsed if you supported both and unfair if you supported
> just one. With this information, I do agree that ISO8601 is the best
> choice to default to. However, I still think this is an area that can
> and *should* be improved. An option directive could be created that lets
> users chose their preference of date format. If no option directive is
> included, it will default to ISO8601.
I don't see this happening any time soon.
> This allows people to use their
> preferred format, avoid ambiguity, and improve the user experience. I
> am less than enthusiastic about using the ISO8601 date format because it
> is different from the records on my bank, credit, and debit card
> statements. When I get a statement and attempt to reconcile my ledger
> against the bank records, if an error should exist in my records, going
> through hundreds of transactions trying to find the missing or erroneous
> record is already a tedious process. Having two different date formats
> between my ledger and the bank statements when doing this process adds
> another pain point to the user experience of this already tedious task.
> While I know Beancount tries to keep things simple and with a minimal
> number of options, I think the added complexity is worth the improvement
> to the user experience. If you don't care about any date format other
> than ISO8601, nothing changes for you, but if you prefer a local date
> format, having the option is something I think would be a massive
> improvement. I would add that Beancount already supports by option
> directive the ability to rename account types to what a user would
> prefer, so it is not so out there to add a similar option directive to
> change date types.
This is much more complicated than what you seem to think (I have the
impression that the option to change the account root names is not the
source of endless bug reports only because almost no one uses it).
Should the option that selects the date format be accepted only before
any date is seen by the parser or should it be allowed to change the
date format through the ledger? What about the option appearing in
included files? Should the option also change the date format used for
reporting? If multiple date formats are allowed in the same ledger,
which one is used for reporting? Which date format should the other
interfaces use for user input?
I don't think the cognitive burden of translating from MM/DD/YYYY dates
to YYYY-MM-DD dates justifies opening this can of worms. It also
remembers me the rental car agency in Boulder where they have a 12 hours
AM/PM hour format to 24 hour format conversion table on the wall behind
the front desk :-)
Cheers,
Dan