summaryrefslogtreecommitdiff
path: root/doc/Ledger.scriv/199.rtfd/TXT.rtf
blob: 8a92a803225a55c87be8c747318678c1fb1b560c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf460
{\fonttbl\f0\fmodern\fcharset0 Courier;}
{\colortbl;\red255\green255\blue255;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl264\slmult1\ql\qnatural\pardirnatural

\f0\fs28 \cf0 As a Bah\'e1'\'ed, I need to compute Huq\'faqu'll\'e1h whenever I acquire assets.\
It is similar to tithing for Jews and Christians, or to Zak\'e1t for\
Muslims.  The epost details of computing Huq\'faqu'll\'e1h are somewhat\
complex, but if you have further interest, please consult the Web.\
\
Ledger makes this otherwise difficult law very easy.  Just set up an\
automated posting at the top of your ledger file:\
\
@smallexample\
; This automated transaction will compute Huq\'faqu'll\'e1h based on this\
; journal's postings.  Any that match will affect the\
; Liabilities:Huququ'llah account by 19% of the value of that\
; posting.\
\
= /^(?:Income:|Expenses:(?:Business|Rent$|Furnishings|Taxes|Insurance))/\
  (Liabilities:Huququ'llah)               0.19\
@end smallexample\
\
This automated posting works by looking at each posting in the\
ledger file.  If any match the given value expression, 19% of the\
posting's value is applied to the @samp\{Liabilities:Huququ'llah\}\
account.  So, if $1000 is earned from @samp\{Income:Salary\}, $190 is\
added to @samp\{Liabilities:Huq\'faqu'll\'e1h\}; if $1000 is spent on Rent,\
$190 is subtracted.  The ultimate balance of Huq\'faqu'll\'e1h reflects how\
much is owed in order to fulfill one's obligation to Huq\'faqu'll\'e1h.\
When ready to pay, just write a check to cover the amount shown in\
@samp\{Liabilities:Huququ'llah\}.  That transaction would look like:\
\
@smallexample\
2003/01/01 (101) Baha'i Huq\'faqu'll\'e1h Trust\
    Liabilities:Huququ'llah          $1,000.00\
    Assets:Checking\
@end smallexample\
\
That's it.  To see how much Huq\'faq is currently owed based on your\
ledger transactions, use:\
\
@example\
ledger balance Liabilities:Huquq\
@end example\
\
This works fine, but omits one aspect of the law: that Huquq is only\
due once the liability exceeds the value of 19 mithq\'e1ls of gold (which\
is roughly 2.22 ounces).  So what we want is for the liability to\
appear in the balance report only when it exceeds the present day\
value of 2.22 ounces of gold.  This can be accomplished using the\
command:\
\
@smallexample\
ledger -Q -t "/Liab.*Huquq/?(a/P@\{2.22 AU@\}<=@\{-1.0@\}&a):a" -s bal liab\
@end smallexample\
\
With this command, the current price for gold is downloaded, and the\
Huq\'faqu'll\'e1h is reported only if its value exceeds that of 2.22 ounces\
of gold.  If you wish the liability to be reflected in the parent\
subtotal either way, use this instead:\
\
@smallexample\
ledger -Q -T "/Liab.*Huquq/?(O/P@\{2.22 AU@\}<=@\{-1.0@\}&O):O" -s bal liab\
@end smallexample\
\
In some cases, you may wish to refer to the account of whichever\
posting matched your automated transaction's value expression.  To do\
this, use the special account name @samp\{$account\}:\
\
@smallexample\
= /^Some:Long:Account:Name/\
  [$account]  -0.10\
  [Savings]    0.10\
@end smallexample\
\
This example causes 10% of the matching account's total to be deferred\
to the @samp\{Savings\} account---as a balanced virtual posting,\
which may be excluded from reports by using @option\{--real\}.}