File diff a5f212dc71a3 → 19d32244e34c
npo-ledger-cli-tutorial.md
Show inline comments
...
 
@@ -342,97 +342,97 @@ The possible values for this field are:
 
  has federal 501(c)(3) status in the USA, and therefore no 1099 is required.
 

	
 
* `Refund`, indicating that the amount is a refund owed to the `Entity` from
 
  an amount previously paid to the NPO.
 

	
 
* `Reimbursement`, indicating that the amount is a reimbursement of expenses
 
  incurred by the `Entity` and thus it is not income to the `Entity`.
 

	
 
* `Tax-Payment`, indicating this is a tax payment to a taxing authority (such
 
  as the state or federal government) (e.g., a unrelated business income tax
 
  payment).
 

	
 
* `USA-LLC-No-1099`, indicating that the `Entity` is an LLC, but not the type
 
  of LLC for which the USA requires issuing a 1099.
 

	
 
* `Loan`, indicating that the `Entity` is receiving these funds as a loan
 
  that is expected to be paid back.
 

	
 
#### 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)).
 

	
 
### 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
 
`config-accounts.ledger`.
 

	
 
#### 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.
 
* A [`Program:`](#program-tag) tag.
 

	
 
#### NEVER CHARGED Payee
 

	
 
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
 
the entry entirely from the Ledger file, and allow the VCS to log the fact
 
that the charge was expected, but the vendor never billed the credit card.
 

	
 
The reason the `NEVER CHARGED` payee text was added was to handle the
 
situation where the books included this charge, but the books were already
 
closed for the financial period (e.g., the books had already been audited).
 
Changing the payee was a method for documenting the expense.  You might use
 
it like this:
 

	
 
    2011/05/28 My Bad Billing Hosting - NEVER CHARGED
 
        Liabilities:Credit Card:Visa            $-100.00
 
        Expenses:Conservancy:Hosting             $100.00
 

	
 
    2012/01/01 My Bad Billing Hosting - REVERSAL - NEVER CHARGED
 
        Liabilities:Credit Card:Visa             $100.00
 
        Expenses:Conservancy:Hosting            $-100.00
 

	
 
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