Since this system relies so heavily on tagging, even though we assume the
reader is generally familiar with Ledger CLI, it's worth ensuring they know
the basics of how tagging works.
Also added herein is the example used in the text over to the Ledger file
itself.
I realized that it makes more sense, even if it does create extra files, for
the accounts, commodities and tags declarations of the project to be
carefully split into different files. It's definitely more didactic to have
separate files for these declarations, to note that they are, in fact,
separable.
More to that point, users who cut-and-paste from this project into their own
setup will likely be least interested in the chart of accounts, which is
likely to be the longest file by far. The tags will probably be the most
interesting, so it's important they are in a stand-alone file that can be
easily found.
The Statement, Receipt, and Invoice tags' values should always a be a
relative path names. Note that we "check", but do not "assert" that the file
name match a standard Unix-like path syntax, without spaces in the file name.
Note that Expense account entries need to be tagged with an Invoice, Receipt,
or Statement tag (those tag declarations will be added in next commit).
payee with "NEVER CHARGED"
==========================
The only exception is when the payee has been modified to indicate that the
expense was "NEVER CHARGED". This was a special-case we encountered where we
were expecting something, they never invoiced us, and it turns out the thing
to be invoiced for never happened.
Typically, we'd just remove the entry from the Ledger file, and allow the VCS
to log the fact that we thought we'd be charged and weren't. However, in
this case, the expense had been post-audit and therefore was a permanent
fixture on our books. Changing the payee allowed it to pass checks.
However, going forward, we'd likely never enter anything the ledger UNTIL we
had real proof via an Invoice, Receipt or Statement that showed the Expense
did/should occur.