Changeset - f0ea3f31bf6f
[Not reviewed]
0 2 0
Bradley Kuhn (bkuhn) - 11 years ago 2013-04-30 18:42:54
First documentation for the Entity: tag.

Included also is a ledger command to get the list of all tag values.
2 files changed with 34 insertions and 0 deletions:
0 comments (0 inline, 0 general)
Show inline comments
@@ -44,6 +44,13 @@ tag IncomeType
; assertion, but we at least check known names of programs, so that warnings
; are produced if a new program never seen before is encountered.

tag Program
    assert value =~ /[ A-z0-9\-]+(:[ A-z0-9\-]+)*/
    check  value =~ /^(Main Org:(Overhead|Direct Fundraising))$/


; Entity tag is just a string, but shouldn't have spaces, just letters,
; numbers and dashes.

tag Entity
    assert value =~ /[ A-z0-9\-]+(:[ A-z0-9\-]+)*/
Show inline comments
@@ -263,12 +263,27 @@ Some examples of appropriate uses of the `Statement:` tag are:

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

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-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:
@@ -358,12 +373,24 @@ Meanwhile, using the  [`Program`](#program-tag) tag for Expenses can help
track what programs are costing with commands like hese:

    $ ledger -f accounts/books.ledger --group-by 'tag("Program")' reg '/^Expense/'

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
complete ERP system, it's possible during data entry for typos to make a
serious problem.  One work around to this flaw is to periodically run a
command like:

    $ ledger -f accounts/books.ledger -F '%(tag("Entity"))\n' reg|sort|uniq|less

which will show all unique `Entity:` values currently in use.

Copyright and License of This File

This specific document, the file for npo-ledger-cli, is copyrighted:
  Copyright © 2013, Bradley M. Kuhn

0 comments (0 inline, 0 general)