File diff f0ea3f31bf6f → 081a2d72b825
Show inline comments
@@ -304,33 +304,44 @@ Form 990 filing.
#### Program Tag

The `Program` tag is used primarily to track program activity for `Income:`
and `Expense:` accounts.  This allows for knowing what particular initiative
initiated the income (e.g., a specific fundraising campaign) and/or what
particular program activity an expense is toward (e.g., funding travel to
some specific conference).

The Program tag is always a string with the same format as a Ledger CLI
account (primarily for use with Ledger CLI's `--pivot` and `--group-by`,
[as described later](#testing-program-success).

### Expense Account Documentation
### Account Type Documentation Requirements

Each account type has different documentation requirements.  Based on the
type of the account, it requires a different set of tags.

When Ledger CLI's `--pedantic` option is used, these rules are enforced by
ledger itself via the configurations found in `config-tags.ledger` and

#### Expense Account Documentation

Each `Expense:` account entry must be tagged with the following tags:

* One of: [`Invoice:`](#invoice-tag) [`Receipt:`](#receipt-tag), or
  [`Statement`](#statement-tag).  (The only exception to this rule: an entry
  does not need an `Invoice:`, `Receipt`, nor a `Statement` tag if the
  [payee was never charged](#never-charged-payee).

* A [`Program:`] tag.


The only exception to the standard tagging requirement is when the payee has
been modified to indicate that the expense was `NEVER CHARGED`.  This is an
historical special-case.  The solution was originally design for the
following scenario:

Suppose an expense was expected — for example, a situation where you
gave a credit card number to charge something and the charge never came
through — but it turns out the charge never happened.

The recommended way to resolve this problem in the system is to just delete