@@ -124,97 +124,97 @@ described herein to deploy Ledger CLI, but should leave out the `:General:`
and `:ProjectNAME:` parts of the account hierarchy, since these are the
primary mechanisms used herein to handle the fiscal sponsorship structure.
### Earmarked Accounts
Many fiscal sponsor NPOs keep earmarked accounts for their member/affiliated
projects. Furthermore, these projects often may either (a) terminate their
agreement with the NPO, and thus deserve a copy of their books that they can
"take away" with them, or (b) might be affiliated with *other* NPOs that also
hold accounts. This system of earmarked accounts is designed to make it easy
for projects to have a copy of their own accounts, but not interfere with nor
even be aware of (a) the books of other member/affiliated projects, and (b)
the overall books of the entire NPO.
On the latter point, this system utilizes a directory structure and separate
`.ledger` files to separate out the different projects into different
structures. This allows member/affiliated projects to take their data and
run `ledger` commands against it, separately and without access to the other
`.ledger` files of the NPO.
Proper Documentation For All Transactions
-----------------------------------------
Ledger CLI offers a flexible structure of tagging any entry, including
separate tags for parts of a split transaction. This system uses those tags
to ensure proper documentation is included for each financial transaction
that occurs for the organization.
Note that since Ledger CLI is a complete double-entry accounting system, each
transaction can correspond to multiple entries in the general ledger. The
data entry format of Ledger CLI lists each double-entry accounting
transaction in a text file.
Documentation may in fact differ for entries within the transaction. Ledger
CLI's tagging structure is flexible in this regard: each portion of a
double-entry transaction can carry the same tag or a different tag. For
example, in this entry:
2012-05-03 Sir Moneybags
;Entity: Sir-Moneybags
;Invoice: accounts/documentation/org/invoices/2012-05-30_moneybags-invoice_as-sent.txt
Accrued:Accounts Receivable:Conservancy $100,000.00
Income:Main Org:Donations $-100,000.00
;IncomeType: Donations
The portion of the transaction that credits the `Income:Main Org:Donations`
has three tags: [`Entity`](#entity-tag), [`Invoice`](#invoice-tag) and
[`IncomeType`](#income-type). The `Entity` and `Invoice` tags, since they're
[`IncomeType`](#incometype-tag). The `Entity` and `Invoice` tags, since they're
listed at the top of the transaction, propagate through and apply to both
sides. But, the `IncomeType` tag, which has no meaning for `Accrued:`
accounts, is applied only to the `Income:Main Org:Donations` part of
the transaction.
Below you'll find detailed descriptions of all the possible tags that are
used in this system. The actual declarations and enforcement of rules of
these tags can be found in the file `accounts/config/config-tags.ledger` in
this project.
### Documentation Tags
Documentation tags are tags that link to other backup documents that provide
evidence and details that justify a particular ledger entry. The value of
the tag is a relative path name of a file elsewhere in the same repository
that documents the specific expense. For example, an entry like this:
2012-02-05 Office Supply Galore - Online Order
Expenses:Main Org:Office Supplies $35.00
;Receipt: accounts/documentation/org/receipts/2012-02-05_office-supply-galore.txt
Liabilities:Credit Card:Visa -$35.00
shows that a purchase was made at Office Supply Galore's online store for
$35.00, and the file
`accounts/documentation/org/receipts/2012-02-05_office-supply-galore.txt`
contains the receipt from that purchase.
#### Receipt Tag
The `Receipt` tag refers to receipt of some sort. Typically, this is a
document that shows clear confirmation that the transaction has already
occurred. The value of the `Receipt` tag is always a valid pathname in the
repository to the document, [as described above](#documentation-tags).
Some examples of appropriate uses of the `Receipt` are:
* a point-of-sale credit card receipt from a purchase, given by a cashier or
sent via email after the purchase has occurred.
* a deposit slip given at the bank upon making an over-the-counter deposit of
paper checks.
* a confirmation document showing an outgoing wire transfer made by a bank.
* a confirmation document showing transfer of funds between two bank
accounts.
@@ -279,97 +279,97 @@ for the payee.
### Information Tags
In contrast to documentation tags, information tags can more traditionally be
considered pure "meta-data" for a ledger entry.
#### Entity Tag
The `Entity` tag is required for many types of ledger entries. The value of
the `Entity` tag is a unique moniker that identifies the organization,
company, person, or legal entity that is the external party for the
transaction.
Note that there is no database of these monikers, so typos can cause
trouble. However, you could implement checks in
`accounts/config/config-tags.ledger` using a regular expression to verify no
typos have occurred. This would be somewhat cumbersome, since Ledger CLI
would likely require that the monikers be encoded into a regular expression.
Barring that, the
[integrity of your data should be periodically checked](#checking-integrity-of-a-tag).
#### IncomeType Tag
The `IncomeType` tag is used for all `Income` accounts. This refers to the
type of income. The value of the `IncomeType` tag is always a string.
Since this particular system is designed for USA non-profit entities who file
USA Form 990, the following `IncomeType` values are supported:
* `Donations`, which refers to standard charitable donations.
* `RBI`, which refers to "related business income".
* `UBTI`, which refers to "unrelated business taxable income".
Not that donor-advised funds and government grants don't currently have their
own `IncomeType`. It's possible this might be necessary; the authors aren't
familiar with how to handle those items on the Form 990. It would be a
relatively simple change to `config-tags.ledger`, though, to support other
income types, or to change it entirely to handle use-cases other than USA
Form 990 filing.
#### TaxImplication Tag
The `TaxImplication` tag is used for all `Asset:` accounts when the
transaction includes a payment of $10.00 or more leaving the account. This
tag catalogs any tax implications that might occur on outgoing funds.
The most important USA-related issue tracked by this tag are contractors who
must have annual 1099 and/or W2 issued. An [`Entity` tag](entity-tag) should always
must have annual 1099 and/or W2 issued. An [`Entity` tag](#entity-tag) should always
go along with a TaxImplication tag.
The possible values for this field are:
* `1099`, indicating the amount paid requires issuance of a USA Federal Form
1099 for the `Entity` involved.
* `W2`, indicating the amount paid will be part of a USA Federal income, as
reported on Form W2 report for the `Entity` involved.
* `Retirement-Pretax`, indicating the amount paid was made to a W2 employee
as part of pre-tax retirement plan, such as a 401(k) or 403(b) plan.
* `Accountant-Advises-No-1099`, indicating that the circumstances and rules
seem to indicate a USA Federal Form 1099 should be issued for the `Entity`
involved, but an outside accountant advised that no 1099 needs be issued
for this `Entity`.
* `Bank-Transfer`, indicating that the amount is a transfer between two
banking accounts under the control of the NPO itself.
* `Foreign-Individual-Contractor`, indicating that the NPO has established
that the `Entity` is a contractor residing outside the USA who is not a USA
citizen and does not for any reason pay taxes in the USA.
* `Foreign-Corporation`, indicating that the NPO has established
that the `Entity` is a corporation outside the USA.
* `USA-Corporation`, indicating that the NPO has established that the
`Entity` is an incorporated entity the USA (i.e., "Inc."), and therefore no
1099 is required.
* `USA-501c3`, indicating that the NPO has established that the `Entity`
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.