If you have a typed metadata key which contains an amount, you can use
--inject=KEY to inject a posting with that amount wherever a match
occurs. There are two main forms of usage:
2010-06-18 Sample
; Key:: $100
Expenses:Food $100.00
Assets:Checking
The command would be:
ledger reg --inject=Key
In the above, transactional form, a posting under the account "Key" will
be injected before the first posting reported for this transaction.
It's amount will be $100. This only happens once for the whole
transaction.
It is also possible to associate the key with a posting:
2010-06-18 Sample
Expenses:Food $100.00
; Key:: $100
Assets:Checking
Now the injected posting is generated whenever that particular post is
reported.
I found the first example confusing because it includes "(100") without
any explanation. Transaction codes are only explained later on and this
one isn't needed, so remove it.
Whenever a commodity is exchanged for another in a posting, one of the
two is considered "primary", and the other secondary. Primariness of a
commodity is remembered, since the --market option only renders balances
into secondary commodities, never primaries. To render primaries, use
the --exchange=COMMODITY option.
In all of the following examples, the P commodity is considered primary
and the S is secondary (the P at the beginning of the line indicates a
price-setting directive):
2009/01/01 Sample 1a
Assets:Brokerage:Stocks 100 S
Assets:Brokerage:Cash -100 P
P 2009/01/15 00:00:00 S 2 P
2009/02/01 Sample 2a
Assets:Brokerage:Stocks 100 S @ 1 P
Assets:Brokerage:Cash
P 2009/02/01 00:00:00 S 4 P
2009/03/01 Sample 3a
Assets:Brokerage:Stocks 100 S @@ 100 P
Assets:Brokerage:Cash
P 2009/03/01 00:00:00 S 8 P
2009/04/01 Sample 4a
Assets:Brokerage:Cash 100 P
Assets:Brokerage:Stocks -100 S {1 P}
P 2009/04/01 00:00:00 S 16 P
The following colors are applied in the balance and register reports:
GREEN To a date, if it occurs in the future
BOLD If a payee name relates to an uncleared entry
BLUE For account names
RED For negative values