@@ -421,48 +421,71 @@ it like this:
However, going forward, you'd likely never enter anything the ledger
**until** you had real proof via an Invoice, Receipt or Statement that showed
the Expense did/should occur. This use of `NEVER CHARGED` in the payee is
thus deprecated.
#### Income Account Documentation
Each `Income:` account must have the following tags:
* One of: [`Invoice:`](#invoice-tag),
[`PurchaseOrder:`](#purchase-order-tag),
[`Statement:`](#statement-tag) or
[`Contract`](#contract-tag). Exceptions to this requirement are as follows:
+ the income generated from the transaction is less than $800, or
+ the `IncomeType` is `RBI` and the income is for a defined, public
program (such as conference registration)
* An [`Entity:`](#entity-tag) tag, *iff.* the Income for the transaction is
for more than $800.
* An [`IncomeType:`](#incometype-tag) tag.
* A [`Program:`](#program-tag) tag.
Reports For Various Situations
------------------------------
When data is well formed as specified herein, there are various quick reports
that can be used to verify certain conditions or issues with accounting.
Here are a few examples:
### Verifying That An Invoice Is Paid
Assume for this example that the shell variables `entity`, `program`, and
`invoice` are set as follows:
$ entity=Sir-Moneybags; program='Main.*Org:.*Direct'; invoice=2012-05-30
If the invoice was paid, this ledger command will have two lines of output,
and the second line will be a transaction on the payment date. If only one
line appears, it's the receivable accrual and we see the invoice is not paid.
$ ledger -f accounts/books.ledger -V --sort d --limit 'tag("Entity") =~ /'$entity'/ and tag("Program") =~ /'$program'/ and tag("Invoice") =~ /'$invoice'/' reg /Accrued/
Alternatively, the following command will only have output if the invoice is unpaid:
$ ledger -f accounts/books.ledger -V --limit 'tag("Entity") =~ /'$entity'/ and tag("Program") =~ /'$program'/ and tag("Invoice") =~ /'$invoice'/' bal /Accrued/
Analysis of the Data
--------------------
If this methodology is followed, Ledger can be used to analyze the financial
data for the organization.
### Testing Program Success
If you use the [`Program`](#program-tag) tag effectively, you can easily test
the successes of various fundraising programs with a command like this:
$ ledger -f accounts/books.ledger --pivot Program bal '/^Income/'
Meanwhile, using the [`Program`](#program-tag) tag for Expenses can help
track what programs are costing with commands like these:
$ ledger -f accounts/books.ledger --group-by 'tag("Program")' reg '/^Expenses/'
FIXME: example output
### Checking Integrity of a Tag
[As mentioned](#entity-tag), the `Entity:` tag is one example among many
where the value is a wide range, but since Ledger CLI isn't backed by a more