ledger/doc/Ledger.scriv/snapshots/165.snapshots
John Wiegley 1f5ceb0db5 Added beginning draft of manual for 3.0
This is being kept in Scrivener format, for ease of writing.
2009-10-25 23:11:30 -04:00

529 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>$archiver</key>
<string>NSKeyedArchiver</string>
<key>$objects</key>
<array>
<string>$null</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>37</integer>
</dict>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>2</integer>
</dict>
</array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>33</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
<integer>3</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>4</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>5</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>6</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>7</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>35</integer>
</dict>
</array>
</dict>
<string>Title</string>
<string>Text</string>
<string>Date</string>
<string>Untitled Snapshot</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>34</integer>
</dict>
<key>NSAttributes</key>
<dict>
<key>CF$UID</key>
<integer>10</integer>
</dict>
<key>NSDelegate</key>
<dict>
<key>CF$UID</key>
<integer>0</integer>
</dict>
<key>NSString</key>
<dict>
<key>CF$UID</key>
<integer>8</integer>
</dict>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>9</integer>
</dict>
<key>NS.string</key>
<string>@c --budget generate budget transactions based on FILE
There is more information about budgeting and forecasting in
@ref{Budgeting and forecasting}. Basically, if you have any period
transactions in your ledger file, you can use these options. A period
transaction looks like:
@example
~ Monthly
Assets:Bank:Checking $500.00
Income:Salary
@end example
The difference from a regular transaction is that the first line begins with
a tilde (~), and instead of a payee there's a period expression
(@ref{Period expressions}). Otherwise, a period transaction is in every
other way the same as a regular transaction.
With such a transaction in your ledger file, the @option{--budget} option
will report only postings that match a budgeted account. Using
@file{sample.dat} from above:
@example
ledger --budget reg ^income
@end example
Reports:
@smallexample
2004/05/01 Budget transaction Income:Salary $500.00 $500.00
2004/05/14 Pay day Income:Salary $-500.00 0
@end smallexample
The final total is zero, indicating that the budget matched epostly
for the reported period. Budgeting is most often helpful with period
reporting; for example, to show monthly budget results use
@option{--budget -p monthly}.
@c --add-budget show all postings plus the budget
@c --unbudgeted show only unbudgeted postings
The @option{--add-budget} option reports all matching postings in
addition to budget postings; while @option{--unbudgeted} shows
only those that don't match a budgeted account. To summarize:
@table @option
@item --budget
Show postings matching budgeted accounts.
@item --unbudgeted
Show postings matching unbudgeted accounts.
@item --add-budget
Show both budgeted and unbudgeted postings together (i.e., add the
generated budget postings to the regular report).
@end table
@c --forecast EXPR generate forecast transactions while EXPR is true
A report with the @option{--forecast} option will add budgeted
postings while the specified value expression is true. For
example:
@example
ledger --forecast 'd&lt;[2005] reg ^income
@end example
Reports:
@smallexample
2004/05/14 Pay day Income:Salary $-500.00 $-500.00
2004/12/01 Forecast transaction Income:Salary $-500.00 $-1,000.00
2005/01/01 Forecast transaction Income:Salary $-500.00 $-1,500.00
@end smallexample
The date this report was made was November 5, 2004; the reason the
first forecast transaction is in december is that forecast transactions are only
added for the future, and they only stop after the value expression
has matched at least once, which is why the January transaction appears. A
forecast report can be very useful for determining when money will run
out in an account, or for projecting future cash flow:
@example
ledger --forecast 'd&lt;[2008]' -p yearly reg ^inc ^exp
@end example
This reports balances projected income against projected expenses,
showing the resulting total in yearly intervals until 2008. For the
case of @file{sample.dat}, which has no budgeted expenses, the result
of the above command (in November 2004) is:
@smallexample
2004/01/01 - 2004/12/31 Income:Salary $-1,000.00 $-1,000.00
Expenses:Books $20.00 $-980.00
2005/01/01 - 2005/12/31 Income:Salary $-6,000.00 $-6,980.00
2006/01/01 - 2006/12/31 Income:Salary $-6,000.00 $-12,980.00
2007/01/01 - 2007/12/31 Income:Salary $-6,000.00 $-18,980.00
2008/01/01 - 2008/01/01 Income:Salary $-500.00 $-19,480.00
@end smallexample</string>
</dict>
<dict>
<key>$classes</key>
<array>
<string>NSMutableString</string>
<string>NSString</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSMutableString</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>33</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
<integer>11</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>12</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>13</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>30</integer>
</dict>
</array>
</dict>
<string>NSParagraphStyle</string>
<string>NSFont</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>29</integer>
</dict>
<key>NSAlignment</key>
<integer>4</integer>
<key>NSLineHeightMultiple</key>
<real>1.1000000238418579</real>
<key>NSTabStops</key>
<dict>
<key>CF$UID</key>
<integer>14</integer>
</dict>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>28</integer>
</dict>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
<integer>15</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>17</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>18</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>19</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>20</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>21</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>22</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>23</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>24</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>25</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>26</integer>
</dict>
<dict>
<key>CF$UID</key>
<integer>27</integer>
</dict>
</array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>28</real>
</dict>
<dict>
<key>$classes</key>
<array>
<string>NSTextTab</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSTextTab</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>56</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>84</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>112</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>140</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>168</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>196</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>224</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>252</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>280</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>308</real>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>16</integer>
</dict>
<key>NSLocation</key>
<real>336</real>
</dict>
<dict>
<key>$classes</key>
<array>
<string>NSArray</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSArray</string>
</dict>
<dict>
<key>$classes</key>
<array>
<string>NSParagraphStyle</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSParagraphStyle</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>32</integer>
</dict>
<key>NSName</key>
<dict>
<key>CF$UID</key>
<integer>31</integer>
</dict>
<key>NSSize</key>
<real>14</real>
<key>NSfFlags</key>
<integer>16</integer>
</dict>
<string>Courier</string>
<dict>
<key>$classes</key>
<array>
<string>NSFont</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSFont</string>
</dict>
<dict>
<key>$classes</key>
<array>
<string>NSDictionary</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSDictionary</string>
</dict>
<dict>
<key>$classes</key>
<array>
<string>KBWordCountingTextStorage</string>
<string>NSTextStorage</string>
<string>NSMutableAttributedString</string>
<string>NSAttributedString</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>KBWordCountingTextStorage</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
<integer>36</integer>
</dict>
<key>NS.time</key>
<real>267380389.04741499</real>
</dict>
<dict>
<key>$classes</key>
<array>
<string>NSDate</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSDate</string>
</dict>
<dict>
<key>$classes</key>
<array>
<string>NSMutableArray</string>
<string>NSArray</string>
<string>NSObject</string>
</array>
<key>$classname</key>
<string>NSMutableArray</string>
</dict>
</array>
<key>$top</key>
<dict>
<key>Snapshots</key>
<dict>
<key>CF$UID</key>
<integer>1</integer>
</dict>
</dict>
<key>$version</key>
<integer>100000</integer>
</dict>
</plist>