cli: fix command help, really render as plain text
pandoc thinks .txt is a markdown file apparently
This commit is contained in:
		
							parent
							
								
									fa82cbcf6e
								
							
						
					
					
						commit
						4c5ac4dd06
					
				
							
								
								
									
										2
									
								
								Shake.hs
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Shake.hs
									
									
									
									
									
								
							| @ -377,7 +377,7 @@ main = do | |||||||
|       need [src] |       need [src] | ||||||
|       cmd Shell |       cmd Shell | ||||||
|         -- "m4 -P -DHELP -I" commandsdir lib src "|" |         -- "m4 -P -DHELP -I" commandsdir lib src "|" | ||||||
|         pandoc fromsrcmd src "-o" out |         pandoc fromsrcmd src "-t plain" "-o" out | ||||||
| 
 | 
 | ||||||
|     -- MISC |     -- MISC | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,27 +1,24 @@ | |||||||
| accounts, a\ | accounts, a | ||||||
| Show account names. | Show account names. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| This command lists account names, either declared with account | This command lists account names, either declared with account | ||||||
| directives (\--declared), posted to (\--used), or both (the default). | directives (--declared), posted to (--used), or both (the default). With | ||||||
| With query arguments, only matched account names and account names | query arguments, only matched account names and account names referenced | ||||||
| referenced by matched postings are shown. It shows a flat list by | by matched postings are shown. It shows a flat list by default. With | ||||||
| default. With `--tree`, it uses indentation to show the account | --tree, it uses indentation to show the account hierarchy. In flat mode | ||||||
| hierarchy. In flat mode you can add `--drop N` to omit the first few | you can add --drop N to omit the first few account name components. | ||||||
| account name components. Account names can be depth-clipped with | Account names can be depth-clipped with depth:N or --depth N or -N. | ||||||
| `depth:N` or `--depth N` or `-N`. |  | ||||||
| 
 | 
 | ||||||
| Examples: | Examples: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger accounts | ||||||
| $ hledger accounts |     assets:bank:checking | ||||||
| assets:bank:checking |     assets:bank:saving | ||||||
| assets:bank:saving |     assets:cash | ||||||
| assets:cash |     expenses:food | ||||||
| expenses:food |     expenses:supplies | ||||||
| expenses:supplies |     income:gifts | ||||||
| income:gifts |     income:salary | ||||||
| income:salary |     liabilities:debts | ||||||
| liabilities:debts |  | ||||||
| ``` |  | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| activity\ | activity | ||||||
| Show an ascii barchart of posting counts per interval. | Show an ascii barchart of posting counts per interval. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| The activity command displays an ascii histogram showing transaction | The activity command displays an ascii histogram showing transaction | ||||||
| counts by day, week, month or other reporting interval (by day is the | counts by day, week, month or other reporting interval (by day is the | ||||||
| @ -9,10 +9,8 @@ default). With query arguments, it counts only matched transactions. | |||||||
| 
 | 
 | ||||||
| Examples: | Examples: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger activity --quarterly | ||||||
| $ hledger activity --quarterly |     2008-01-01 ** | ||||||
| 2008-01-01 ** |     2008-04-01 ******* | ||||||
| 2008-04-01 ******* |     2008-07-01  | ||||||
| 2008-07-01  |     2008-10-01 ** | ||||||
| 2008-10-01 ** |  | ||||||
| ``` |  | ||||||
|  | |||||||
| @ -1,18 +1,18 @@ | |||||||
| add\ | add | ||||||
| Prompt for transactions and add them to the journal. | Prompt for transactions and add them to the journal. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| Many hledger users edit their journals directly with a text editor, or | Many hledger users edit their journals directly with a text editor, or | ||||||
| generate them from CSV. For more interactive data entry, there is the | generate them from CSV. For more interactive data entry, there is the | ||||||
| `add` command, which prompts interactively on the console for new | add command, which prompts interactively on the console for new | ||||||
| transactions, and appends them to the journal file (if there are | transactions, and appends them to the journal file (if there are | ||||||
| multiple `-f FILE` options, the first file is used.) Existing | multiple -f FILE options, the first file is used.) Existing transactions | ||||||
| transactions are not changed. This is the only hledger command that | are not changed. This is the only hledger command that writes to the | ||||||
| writes to the journal file. | journal file. | ||||||
| 
 | 
 | ||||||
| To use it, just run `hledger add` and follow the prompts. You can add as | To use it, just run hledger add and follow the prompts. You can add as | ||||||
| many transactions as you like; when you are finished, enter `.` or press | many transactions as you like; when you are finished, enter . or press | ||||||
| control-d or control-c to exit. | control-d or control-c to exit. | ||||||
| 
 | 
 | ||||||
| Features: | Features: | ||||||
| @ -21,50 +21,42 @@ Features: | |||||||
|     description) recent transaction (filtered by the query, if any) as a |     description) recent transaction (filtered by the query, if any) as a | ||||||
|     template. |     template. | ||||||
| -   You can also set the initial defaults with command line arguments. | -   You can also set the initial defaults with command line arguments. | ||||||
| -   [Readline-style edit | -   Readline-style edit keys can be used during data entry. | ||||||
|     keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3) |  | ||||||
|     can be used during data entry. |  | ||||||
| -   The tab key will auto-complete whenever possible - accounts, | -   The tab key will auto-complete whenever possible - accounts, | ||||||
|     descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input |     descriptions, dates (yesterday, today, tomorrow). If the input area | ||||||
|     area is empty, it will insert the default value. |     is empty, it will insert the default value. | ||||||
| -   If the journal defines a [default commodity](#default-commodity), it | -   If the journal defines a default commodity, it will be added to any | ||||||
|     will be added to any bare numbers entered. |     bare numbers entered. | ||||||
| -   A parenthesised transaction [code](#entries) may be entered | -   A parenthesised transaction code may be entered following a date. | ||||||
|     following a date. | -   Comments and tags may be entered following a description or amount. | ||||||
| -   [Comments](#comments) and tags may be entered following a | -   If you make a mistake, enter < at any prompt to restart the | ||||||
|     description or amount. |  | ||||||
| -   If you make a mistake, enter `<` at any prompt to restart the |  | ||||||
|     transaction. |     transaction. | ||||||
| -   Input prompts are displayed in a different colour when the terminal | -   Input prompts are displayed in a different colour when the terminal | ||||||
|     supports it. |     supports it. | ||||||
| 
 | 
 | ||||||
| Example (see the | Example (see the tutorial for a detailed explanation): | ||||||
| [tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for |  | ||||||
| a detailed explanation): |  | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger add | ||||||
| $ hledger add |     Adding transactions to journal file /src/hledger/examples/sample.journal | ||||||
| Adding transactions to journal file /src/hledger/examples/sample.journal |     Any command line arguments will be used as defaults. | ||||||
| Any command line arguments will be used as defaults. |     Use tab key to complete, readline keys to edit, enter to accept defaults. | ||||||
| Use tab key to complete, readline keys to edit, enter to accept defaults. |     An optional (CODE) may follow transaction dates. | ||||||
| An optional (CODE) may follow transaction dates. |     An optional ; COMMENT may follow descriptions or amounts. | ||||||
| An optional ; COMMENT may follow descriptions or amounts. |     If you make a mistake, enter < at any prompt to restart the transaction. | ||||||
| If you make a mistake, enter < at any prompt to restart the transaction. |     To end a transaction, enter . when prompted. | ||||||
| To end a transaction, enter . when prompted. |     To quit, enter . at a date prompt or press control-d or control-c. | ||||||
| To quit, enter . at a date prompt or press control-d or control-c. |     Date [2015/05/22]:  | ||||||
| Date [2015/05/22]:  |     Description: supermarket | ||||||
| Description: supermarket |     Account 1: expenses:food | ||||||
| Account 1: expenses:food |     Amount  1: $10 | ||||||
| Amount  1: $10 |     Account 2: assets:checking | ||||||
| Account 2: assets:checking |     Amount  2 [$-10.0]:  | ||||||
| Amount  2 [$-10.0]:  |     Account 3 (or . or enter to finish this transaction): . | ||||||
| Account 3 (or . or enter to finish this transaction): . |     2015/05/22 supermarket | ||||||
| 2015/05/22 supermarket |  | ||||||
|         expenses:food             $10 |         expenses:food             $10 | ||||||
|         assets:checking        $-10.0 |         assets:checking        $-10.0 | ||||||
| 
 | 
 | ||||||
| Save this transaction to the journal ? [y]:  |     Save this transaction to the journal ? [y]:  | ||||||
| Saved. |     Saved. | ||||||
| Starting the next transaction (. or ctrl-D/ctrl-C to quit) |     Starting the next transaction (. or ctrl-D/ctrl-C to quit) | ||||||
| Date [2015/05/22]: <CTRL-D> $ |     Date [2015/05/22]: <CTRL-D> $ | ||||||
| ``` |  | ||||||
|  | |||||||
| @ -1,38 +1,36 @@ | |||||||
| balance, bal, b\ | balance, bal, b | ||||||
| Show accounts and their balances. | Show accounts and their balances. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| The balance command is hledger\'s most versatile command. Note, despite | The balance command is hledger's most versatile command. Note, despite | ||||||
| the name, it is not always used for showing real-world account balances; | the name, it is not always used for showing real-world account balances; | ||||||
| the more accounting-aware [balancesheet](#balancesheet) and | the more accounting-aware balancesheet and incomestatement may be more | ||||||
| [incomestatement](#incomestatement) may be more convenient for that. | convenient for that. | ||||||
| 
 | 
 | ||||||
| By default, it displays all accounts, and each account\'s change in | By default, it displays all accounts, and each account's change in | ||||||
| balance during the entire period of the journal. Balance changes are | balance during the entire period of the journal. Balance changes are | ||||||
| calculated by adding up the postings in each account. You can limit the | calculated by adding up the postings in each account. You can limit the | ||||||
| postings matched, by a [query](#queries), to see fewer accounts, changes | postings matched, by a query, to see fewer accounts, changes over a | ||||||
| over a different time period, changes from only cleared transactions, | different time period, changes from only cleared transactions, etc. | ||||||
| etc. |  | ||||||
| 
 | 
 | ||||||
| If you include an account\'s complete history of postings in the report, | If you include an account's complete history of postings in the report, | ||||||
| the balance change is equivalent to the account\'s current ending | the balance change is equivalent to the account's current ending | ||||||
| balance. For a real-world account, typically you won\'t have all | balance. For a real-world account, typically you won't have all | ||||||
| transactions in the journal; instead you\'ll have all transactions after | transactions in the journal; instead you'll have all transactions after | ||||||
| a certain date, and an \"opening balances\" transaction setting the | a certain date, and an "opening balances" transaction setting the | ||||||
| correct starting balance on that date. Then the balance command will | correct starting balance on that date. Then the balance command will | ||||||
| show real-world account balances. In some cases the -H/\--historical | show real-world account balances. In some cases the -H/--historical flag | ||||||
| flag is used to ensure this (more below). | is used to ensure this (more below). | ||||||
| 
 | 
 | ||||||
| The balance command can produce several styles of report: | The balance command can produce several styles of report: | ||||||
| 
 | 
 | ||||||
| ### Classic balance report | Classic balance report | ||||||
| 
 | 
 | ||||||
| This is the original balance report, as found in Ledger. It usually | This is the original balance report, as found in Ledger. It usually | ||||||
| looks like this: | looks like this: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance | ||||||
| $ hledger balance |  | ||||||
|                      $-1  assets |                      $-1  assets | ||||||
|                       $1    bank:saving |                       $1    bank:saving | ||||||
|                      $-2    cash |                      $-2    cash | ||||||
| @ -43,43 +41,39 @@ $ hledger balance | |||||||
|                      $-1    gifts |                      $-1    gifts | ||||||
|                      $-1    salary |                      $-1    salary | ||||||
|                       $1  liabilities:debts |                       $1  liabilities:debts | ||||||
| -------------------- |     -------------------- | ||||||
|                        0 |                        0 | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| By default, accounts are displayed hierarchically, with subaccounts | By default, accounts are displayed hierarchically, with subaccounts | ||||||
| indented below their parent. At each level of the tree, accounts are | indented below their parent. At each level of the tree, accounts are | ||||||
| sorted by [account code](/manual.html#declaring-accounts) if any, then | sorted by account code if any, then by account name. Or with | ||||||
| by account name. Or with `-S/--sort-amount`, by their balance amount. | -S/--sort-amount, by their balance amount. | ||||||
| 
 | 
 | ||||||
| \"Boring\" accounts, which contain a single interesting subaccount and | "Boring" accounts, which contain a single interesting subaccount and no | ||||||
| no balance of their own, are elided into the following line for more | balance of their own, are elided into the following line for more | ||||||
| compact output. (Eg above, the \"liabilities\" account.) Use | compact output. (Eg above, the "liabilities" account.) Use --no-elide to | ||||||
| `--no-elide` to prevent this. | prevent this. | ||||||
| 
 | 
 | ||||||
| Account balances are \"inclusive\" - they include the balances of any | Account balances are "inclusive" - they include the balances of any | ||||||
| subaccounts. | subaccounts. | ||||||
| 
 | 
 | ||||||
| Accounts which have zero balance (and no non-zero subaccounts) are | Accounts which have zero balance (and no non-zero subaccounts) are | ||||||
| omitted. Use `-E/--empty` to show them. | omitted. Use -E/--empty to show them. | ||||||
| 
 | 
 | ||||||
| A final total is displayed by default; use `-N/--no-total` to suppress | A final total is displayed by default; use -N/--no-total to suppress it, | ||||||
| it, eg: | eg: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance -p 2008/6 expenses --no-total | ||||||
| $ hledger balance -p 2008/6 expenses --no-total |  | ||||||
|                       $2  expenses |                       $2  expenses | ||||||
|                       $1    food |                       $1    food | ||||||
|                       $1    supplies |                       $1    supplies | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| ### Customising the classic balance report | Customising the classic balance report | ||||||
| 
 | 
 | ||||||
| You can customise the layout of classic balance reports with | You can customise the layout of classic balance reports with | ||||||
| `--format FMT`: | --format FMT: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance --format "%20(account) %12(total)" | ||||||
| $ hledger balance --format "%20(account) %12(total)" |  | ||||||
|                   assets          $-1 |                   assets          $-1 | ||||||
|              bank:saving           $1 |              bank:saving           $1 | ||||||
|                     cash          $-2 |                     cash          $-2 | ||||||
| @ -90,112 +84,94 @@ $ hledger balance --format "%20(account) %12(total)" | |||||||
|                    gifts          $-1 |                    gifts          $-1 | ||||||
|                   salary          $-1 |                   salary          $-1 | ||||||
|        liabilities:debts           $1 |        liabilities:debts           $1 | ||||||
| --------------------------------- |     --------------------------------- | ||||||
|                                     0 |                                     0 | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| The FMT format string (plus a newline) specifies the formatting applied | The FMT format string (plus a newline) specifies the formatting applied | ||||||
| to each account/balance pair. It may contain any suitable text, with | to each account/balance pair. It may contain any suitable text, with | ||||||
| data fields interpolated like so: | data fields interpolated like so: | ||||||
| 
 | 
 | ||||||
| `%[MIN][.MAX](FIELDNAME)` | %[MIN][.MAX](FIELDNAME) | ||||||
| 
 | 
 | ||||||
| -   MIN pads with spaces to at least this width (optional) | -   MIN pads with spaces to at least this width (optional) | ||||||
| -   MAX truncates at this width (optional) | -   MAX truncates at this width (optional) | ||||||
| -   FIELDNAME must be enclosed in parentheses, and can be one of: | -   FIELDNAME must be enclosed in parentheses, and can be one of: | ||||||
| 
 | 
 | ||||||
|     -   `depth_spacer` - a number of spaces equal to the account\'s |     -   depth_spacer - a number of spaces equal to the account's depth, | ||||||
|         depth, or if MIN is specified, MIN \* depth spaces. |         or if MIN is specified, MIN * depth spaces. | ||||||
|     -   `account` - the account\'s name |     -   account - the account's name | ||||||
|     -   `total` - the account\'s balance/posted total, right justified |     -   total - the account's balance/posted total, right justified | ||||||
| 
 | 
 | ||||||
| Also, FMT can begin with an optional prefix to control how | Also, FMT can begin with an optional prefix to control how | ||||||
| multi-commodity amounts are rendered: | multi-commodity amounts are rendered: | ||||||
| 
 | 
 | ||||||
| -   `%_` - render on multiple lines, bottom-aligned (the default) | -   %_ - render on multiple lines, bottom-aligned (the default) | ||||||
| -   `%^` - render on multiple lines, top-aligned | -   %^ - render on multiple lines, top-aligned | ||||||
| -   `%,` - render on one line, comma-separated | -   %, - render on one line, comma-separated | ||||||
| 
 | 
 | ||||||
| There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no | There are some quirks. Eg in one-line mode, %(depth_spacer) has no | ||||||
| effect, instead `%(account)` has indentation built in. <!-- XXX retest: | effect, instead %(account) has indentation built in. Experimentation may | ||||||
| Consistent column widths are not well enforced, causing ragged edges unless you set suitable widths. | be needed to get pleasing results. | ||||||
| Beware of specifying a maximum width; it will clip account names and amounts that are too wide, with no visible indication. |  | ||||||
| --> Experimentation may be needed to get pleasing results. |  | ||||||
| 
 | 
 | ||||||
| Some example formats: | Some example formats: | ||||||
| 
 | 
 | ||||||
| -   `%(total)` - the account\'s total | -   %(total) - the account's total | ||||||
| -   `%-20.20(account)` - the account\'s name, left justified, padded to | -   %-20.20(account) - the account's name, left justified, padded to 20 | ||||||
|     20 characters and clipped at 20 characters |     characters and clipped at 20 characters | ||||||
| -   `%,%-50(account)  %25(total)` - account name padded to 50 | -   %,%-50(account)  %25(total) - account name padded to 50 characters, | ||||||
|     characters, total padded to 20 characters, with multiple commodities |     total padded to 20 characters, with multiple commodities rendered on | ||||||
|     rendered on one line |     one line | ||||||
| -   `%20(total)  %2(depth_spacer)%-(account)` - the default format for | -   %20(total)  %2(depth_spacer)%-(account) - the default format for the | ||||||
|     the single-column balance report |     single-column balance report | ||||||
| 
 | 
 | ||||||
| ### Colour support | Colour support | ||||||
| 
 | 
 | ||||||
| The balance command shows negative amounts in red, if: | The balance command shows negative amounts in red, if: | ||||||
| 
 | 
 | ||||||
| -   the `TERM` environment variable is not set to `dumb` | -   the TERM environment variable is not set to dumb | ||||||
| -   the output is not being redirected or piped anywhere | -   the output is not being redirected or piped anywhere | ||||||
| 
 | 
 | ||||||
| ### Flat mode | Flat mode | ||||||
| 
 | 
 | ||||||
| To see a flat list instead of the default hierarchical display, use | To see a flat list instead of the default hierarchical display, use | ||||||
| `--flat`. In this mode, accounts (unless depth-clipped) show their full | --flat. In this mode, accounts (unless depth-clipped) show their full | ||||||
| names and \"exclusive\" balance, excluding any subaccount balances. In | names and "exclusive" balance, excluding any subaccount balances. In | ||||||
| this mode, you can also use `--drop N` to omit the first few account | this mode, you can also use --drop N to omit the first few account name | ||||||
| name components. | components. | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance -p 2008/6 expenses -N --flat --drop 1 | ||||||
| $ hledger balance -p 2008/6 expenses -N --flat --drop 1 |  | ||||||
|                       $1  food |                       $1  food | ||||||
|                       $1  supplies |                       $1  supplies | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| ### Depth limited balance reports | Depth limited balance reports | ||||||
| 
 | 
 | ||||||
| With `--depth N` or `depth:N` or just `-N`, balance reports show | With --depth N or depth:N or just -N, balance reports show accounts only | ||||||
| accounts only to the specified numeric depth. This is very useful to | to the specified numeric depth. This is very useful to summarise a | ||||||
| summarise a complex set of accounts and get an overview. | complex set of accounts and get an overview. | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance -N -1 | ||||||
| $ hledger balance -N -1 |  | ||||||
|                      $-1  assets |                      $-1  assets | ||||||
|                       $2  expenses |                       $2  expenses | ||||||
|                      $-2  income |                      $-2  income | ||||||
|                       $1  liabilities |                       $1  liabilities | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Flat-mode balance reports, which normally show exclusive balances, show | Flat-mode balance reports, which normally show exclusive balances, show | ||||||
| inclusive balances at the depth limit. | inclusive balances at the depth limit. | ||||||
| 
 | 
 | ||||||
| <!-- $ for y in 2006 2007 2008 2009 2010; do echo; echo $y; hledger -f $y.journal balance ^expenses --depth 2; done --> | Multicolumn balance report | ||||||
| ### Multicolumn balance report |  | ||||||
| 
 | 
 | ||||||
| Multicolumn or tabular balance reports are a very useful hledger | Multicolumn or tabular balance reports are a very useful hledger | ||||||
| feature, and usually the preferred style. They share many of the above | feature, and usually the preferred style. They share many of the above | ||||||
| features, but they show the report as a table, with columns representing | features, but they show the report as a table, with columns representing | ||||||
| time periods. This mode is activated by providing a [reporting | time periods. This mode is activated by providing a reporting interval. | ||||||
| interval](#reporting-interval). |  | ||||||
| 
 | 
 | ||||||
| There are three types of multicolumn balance report, showing different | There are three types of multicolumn balance report, showing different | ||||||
| information: | information: | ||||||
| 
 | 
 | ||||||
| 1.  By default: each column shows the sum of postings in that period, ie | 1.  By default: each column shows the sum of postings in that period, ie | ||||||
|     the account\'s change of balance in that period. This is useful eg |     the account's change of balance in that period. This is useful eg | ||||||
|     for a monthly income statement: <!-- |     for a monthly income statement: | ||||||
|     multicolumn income statement:  |  | ||||||
| 
 | 
 | ||||||
|        $ hledger balance ^income ^expense -p 'monthly this year' --depth 3 |  | ||||||
| 
 |  | ||||||
|     or cashflow statement: |  | ||||||
| 
 |  | ||||||
|        $ hledger balance ^assets ^liabilities 'not:(receivable|payable)' -p 'weekly this month' |  | ||||||
|     --> |  | ||||||
| 
 |  | ||||||
|     ``` {.shell} |  | ||||||
|         $ hledger balance --quarterly income expenses -E |         $ hledger balance --quarterly income expenses -E | ||||||
|         Balance changes in 2008: |         Balance changes in 2008: | ||||||
| 
 | 
 | ||||||
| @ -207,13 +183,11 @@ information: | |||||||
|          income:salary     ||     $-1       0       0       0  |          income:salary     ||     $-1       0       0       0  | ||||||
|         -------------------++--------------------------------- |         -------------------++--------------------------------- | ||||||
|                            ||     $-1      $1       0       0  |                            ||     $-1      $1       0       0  | ||||||
|     ``` |  | ||||||
| 
 | 
 | ||||||
| 2.  With `--cumulative`: each column shows the ending balance for that | 2.  With --cumulative: each column shows the ending balance for that | ||||||
|     period, accumulating the changes across periods, starting from 0 at |     period, accumulating the changes across periods, starting from 0 at | ||||||
|     the report start date: |     the report start date: | ||||||
| 
 | 
 | ||||||
|     ``` {.shell} |  | ||||||
|         $ hledger balance --quarterly income expenses -E --cumulative |         $ hledger balance --quarterly income expenses -E --cumulative | ||||||
|         Ending balances (cumulative) in 2008: |         Ending balances (cumulative) in 2008: | ||||||
| 
 | 
 | ||||||
| @ -225,15 +199,13 @@ information: | |||||||
|          income:salary     ||         $-1         $-1         $-1         $-1  |          income:salary     ||         $-1         $-1         $-1         $-1  | ||||||
|         -------------------++------------------------------------------------- |         -------------------++------------------------------------------------- | ||||||
|                            ||         $-1           0           0           0  |                            ||         $-1           0           0           0  | ||||||
|     ``` |  | ||||||
| 
 | 
 | ||||||
| 3.  With `--historical/-H`: each column shows the actual historical | 3.  With --historical/-H: each column shows the actual historical ending | ||||||
|     ending balance for that period, accumulating the changes across |     balance for that period, accumulating the changes across periods, | ||||||
|     periods, starting from the actual balance at the report start date. |     starting from the actual balance at the report start date. This is | ||||||
|     This is useful eg for a multi-period balance sheet, and when you are |     useful eg for a multi-period balance sheet, and when you are showing | ||||||
|     showing only the data after a certain start date: |     only the data after a certain start date: | ||||||
| 
 | 
 | ||||||
|     ``` {.shell} |  | ||||||
|         $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1 |         $ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1 | ||||||
|         Ending balances (historical) in 2008/04/01-2008/12/31: |         Ending balances (historical) in 2008/04/01-2008/12/31: | ||||||
| 
 | 
 | ||||||
| @ -245,82 +217,77 @@ information: | |||||||
|          liabilities:debts    ||           0           0          $1  |          liabilities:debts    ||           0           0          $1  | ||||||
|         ----------------------++------------------------------------- |         ----------------------++------------------------------------- | ||||||
|                               ||           0           0           0  |                               ||           0           0           0  | ||||||
|     ``` |  | ||||||
| 
 | 
 | ||||||
| Multicolumn balance reports display accounts in flat mode by default; to | Multicolumn balance reports display accounts in flat mode by default; to | ||||||
| see the hierarchy, use `--tree`. | see the hierarchy, use --tree. | ||||||
| 
 | 
 | ||||||
| With a reporting interval (like `--quarterly` above), the report | With a reporting interval (like --quarterly above), the report start/end | ||||||
| start/end dates will be adjusted if necessary so that they encompass the | dates will be adjusted if necessary so that they encompass the displayed | ||||||
| displayed report periods. This is so that the first and last periods | report periods. This is so that the first and last periods will be | ||||||
| will be \"full\" and comparable to the others. | "full" and comparable to the others. | ||||||
| 
 | 
 | ||||||
| The `-E/--empty` flag does two things in multicolumn balance reports: | The -E/--empty flag does two things in multicolumn balance reports: | ||||||
| first, the report will show all columns within the specified report | first, the report will show all columns within the specified report | ||||||
| period (without -E, leading and trailing columns with all zeroes are not | period (without -E, leading and trailing columns with all zeroes are not | ||||||
| shown). Second, all accounts which existed at the report start date will | shown). Second, all accounts which existed at the report start date will | ||||||
| be considered, not just the ones with activity during the report period | be considered, not just the ones with activity during the report period | ||||||
| (use -E to include low-activity accounts which would otherwise would be | (use -E to include low-activity accounts which would otherwise would be | ||||||
| omitted). With `--budget`, `--empty` also shows unbudgeted accounts. | omitted). With --budget, --empty also shows unbudgeted accounts. | ||||||
| 
 | 
 | ||||||
| The `-T/--row-total` flag adds an additional column showing the total | The -T/--row-total flag adds an additional column showing the total for | ||||||
| for each row. | each row. | ||||||
| 
 | 
 | ||||||
| The `-A/--average` flag adds a column showing the average value in each | The -A/--average flag adds a column showing the average value in each | ||||||
| row. | row. | ||||||
| 
 | 
 | ||||||
| Here\'s an example of all three: | Here's an example of all three: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance -Q income expenses --tree -ETA | ||||||
| $ hledger balance -Q income expenses --tree -ETA |     Balance changes in 2008: | ||||||
| Balance changes in 2008: |  | ||||||
| 
 | 
 | ||||||
|                 ||  2008q1  2008q2  2008q3  2008q4    Total  Average  |                 ||  2008q1  2008q2  2008q3  2008q4    Total  Average  | ||||||
| ============++=================================================== |     ============++=================================================== | ||||||
|      expenses   ||       0      $2       0       0       $2       $1  |      expenses   ||       0      $2       0       0       $2       $1  | ||||||
|        food     ||       0      $1       0       0       $1        0  |        food     ||       0      $1       0       0       $1        0  | ||||||
|        supplies ||       0      $1       0       0       $1        0  |        supplies ||       0      $1       0       0       $1        0  | ||||||
|      income     ||     $-1     $-1       0       0      $-2      $-1  |      income     ||     $-1     $-1       0       0      $-2      $-1  | ||||||
|        gifts    ||       0     $-1       0       0      $-1        0  |        gifts    ||       0     $-1       0       0      $-1        0  | ||||||
|        salary   ||     $-1       0       0       0      $-1        0  |        salary   ||     $-1       0       0       0      $-1        0  | ||||||
| ------------++--------------------------------------------------- |     ------------++--------------------------------------------------- | ||||||
|                 ||     $-1      $1       0       0        0        0  |                 ||     $-1      $1       0       0        0        0  | ||||||
| 
 | 
 | ||||||
| # Average is rounded to the dollar here since all journal amounts are |     # Average is rounded to the dollar here since all journal amounts are | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Limitations: | Limitations: | ||||||
| 
 | 
 | ||||||
| In multicolumn reports the [`-V/--value` flag](#market-value) uses the | In multicolumn reports the -V/--value flag uses the market price on the | ||||||
| market price on the report end date, for all columns (not the price on | report end date, for all columns (not the price on each column's end | ||||||
| each column\'s end date). | date). | ||||||
| 
 | 
 | ||||||
| Eliding of boring parent accounts in tree mode, as in the classic | Eliding of boring parent accounts in tree mode, as in the classic | ||||||
| balance report, is not yet supported in multicolumn reports. | balance report, is not yet supported in multicolumn reports. | ||||||
| 
 | 
 | ||||||
| ### Budget report | Budget report | ||||||
| 
 | 
 | ||||||
| With `--budget`, extra columns are displayed showing budget goals for | With --budget, extra columns are displayed showing budget goals for each | ||||||
| each account and period, if any. Budget goals are defined by [periodic | account and period, if any. Budget goals are defined by periodic | ||||||
| transactions](journal.html#periodic-transactions). This is very useful | transactions. This is very useful for comparing planned and actual | ||||||
| for comparing planned and actual income, expenses, time usage, etc. | income, expenses, time usage, etc. --budget is most often combined with | ||||||
| \--budget is most often combined with a [report | a report interval. | ||||||
| interval](manual.html#report-intervals). |  | ||||||
| 
 | 
 | ||||||
| For example, you can take average monthly expenses in the common expense | For example, you can take average monthly expenses in the common expense | ||||||
| categories to construct a minimal monthly budget: | categories to construct a minimal monthly budget: | ||||||
| 
 | 
 | ||||||
| ``` {.journal} |     ;; Budget | ||||||
| ;; Budget |     ~ monthly | ||||||
| ~ monthly |  | ||||||
|       income  $2000 |       income  $2000 | ||||||
|       expenses:food    $400 |       expenses:food    $400 | ||||||
|       expenses:bus     $50 |       expenses:bus     $50 | ||||||
|       expenses:movies  $30 |       expenses:movies  $30 | ||||||
|       assets:bank:checking |       assets:bank:checking | ||||||
| 
 | 
 | ||||||
| ;; Two months worth of expenses |     ;; Two months worth of expenses | ||||||
| 2017-11-01 |     2017-11-01 | ||||||
|       income  $1950 |       income  $1950 | ||||||
|       expenses:food    $396 |       expenses:food    $396 | ||||||
|       expenses:bus     $49 |       expenses:bus     $49 | ||||||
| @ -328,22 +295,20 @@ categories to construct a minimal monthly budget: | |||||||
|       expenses:supplies  $20 |       expenses:supplies  $20 | ||||||
|       assets:bank:checking |       assets:bank:checking | ||||||
| 
 | 
 | ||||||
| 2017-12-01 |     2017-12-01 | ||||||
|       income  $2100 |       income  $2100 | ||||||
|       expenses:food    $412 |       expenses:food    $412 | ||||||
|       expenses:bus     $53 |       expenses:bus     $53 | ||||||
|       expenses:gifts   $100 |       expenses:gifts   $100 | ||||||
|       assets:bank:checking |       assets:bank:checking | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| You can now see a monthly budget report: | You can now see a monthly budget report: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance -M --budget | ||||||
| $ hledger balance -M --budget |     Budget performance in 2017/11/01-2017/12/31: | ||||||
| Budget performance in 2017/11/01-2017/12/31: |  | ||||||
| 
 | 
 | ||||||
|                           ||                      Nov                       Dec  |                           ||                      Nov                       Dec  | ||||||
| ======================++==================================================== |     ======================++==================================================== | ||||||
|      assets               || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  |      assets               || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  | ||||||
|      assets:bank          || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  |      assets:bank          || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  | ||||||
|      assets:bank:checking || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  |      assets:bank:checking || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  | ||||||
| @ -352,24 +317,22 @@ Budget performance in 2017/11/01-2017/12/31: | |||||||
|      expenses:food        ||   $396 [  99% of   $400]    $412 [ 103% of   $400]  |      expenses:food        ||   $396 [  99% of   $400]    $412 [ 103% of   $400]  | ||||||
|      expenses:movies      ||    $30 [ 100% of    $30]       0 [   0% of    $30]  |      expenses:movies      ||    $30 [ 100% of    $30]       0 [   0% of    $30]  | ||||||
|      income               ||  $1950 [  98% of  $2000]   $2100 [ 105% of  $2000]  |      income               ||  $1950 [  98% of  $2000]   $2100 [ 105% of  $2000]  | ||||||
| ----------------------++---------------------------------------------------- |     ----------------------++---------------------------------------------------- | ||||||
|                           ||      0 [              0]       0 [              0]  |                           ||      0 [              0]       0 [              0]  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| By default, only accounts with budget goals during the report period are | By default, only accounts with budget goals during the report period are | ||||||
| shown. In the example above, transactions in `expenses:gifts` and | shown. In the example above, transactions in expenses:gifts and | ||||||
| `expenses:supplies` are counted towards `expenses` budget, but accounts | expenses:supplies are counted towards expenses budget, but accounts | ||||||
| `expenses:gifts` and `expenses:supplies` are not shown, as they don\'t | expenses:gifts and expenses:supplies are not shown, as they don't have | ||||||
| have any budgets. | any budgets. | ||||||
| 
 | 
 | ||||||
| You can use `--empty` shows unbudgeted accounts as well: | You can use --empty shows unbudgeted accounts as well: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance -M --budget --empty | ||||||
| $ hledger balance -M --budget --empty |     Budget performance in 2017/11/01-2017/12/31: | ||||||
| Budget performance in 2017/11/01-2017/12/31: |  | ||||||
| 
 | 
 | ||||||
|                           ||                      Nov                       Dec  |                           ||                      Nov                       Dec  | ||||||
| ======================++==================================================== |     ======================++==================================================== | ||||||
|      assets               || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  |      assets               || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  | ||||||
|      assets:bank          || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  |      assets:bank          || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  | ||||||
|      assets:bank:checking || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  |      assets:bank:checking || $-2445 [  99% of $-2480]  $-2665 [ 107% of $-2480]  | ||||||
| @ -380,18 +343,16 @@ Budget performance in 2017/11/01-2017/12/31: | |||||||
|      expenses:movies      ||    $30 [ 100% of    $30]       0 [   0% of    $30]  |      expenses:movies      ||    $30 [ 100% of    $30]       0 [   0% of    $30]  | ||||||
|      expenses:supplies    ||    $20                         0                    |      expenses:supplies    ||    $20                         0                    | ||||||
|      income               ||  $1950 [  98% of  $2000]   $2100 [ 105% of  $2000]  |      income               ||  $1950 [  98% of  $2000]   $2100 [ 105% of  $2000]  | ||||||
| ----------------------++---------------------------------------------------- |     ----------------------++---------------------------------------------------- | ||||||
|                           ||      0 [              0]       0 [              0]  |                           ||      0 [              0]       0 [              0]  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| You can roll over unspent budgets to next period with `--cumulative`: | You can roll over unspent budgets to next period with --cumulative: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance -M --budget --cumulative | ||||||
| $ hledger balance -M --budget --cumulative |     Budget performance in 2017/11/01-2017/12/31: | ||||||
| Budget performance in 2017/11/01-2017/12/31: |  | ||||||
| 
 | 
 | ||||||
|                           ||                      Nov                       Dec  |                           ||                      Nov                       Dec  | ||||||
| ======================++==================================================== |     ======================++==================================================== | ||||||
|      assets               || $-2445 [  99% of $-2480]  $-5110 [ 103% of $-4960]  |      assets               || $-2445 [  99% of $-2480]  $-5110 [ 103% of $-4960]  | ||||||
|      assets:bank          || $-2445 [  99% of $-2480]  $-5110 [ 103% of $-4960]  |      assets:bank          || $-2445 [  99% of $-2480]  $-5110 [ 103% of $-4960]  | ||||||
|      assets:bank:checking || $-2445 [  99% of $-2480]  $-5110 [ 103% of $-4960]  |      assets:bank:checking || $-2445 [  99% of $-2480]  $-5110 [ 103% of $-4960]  | ||||||
| @ -400,17 +361,15 @@ Budget performance in 2017/11/01-2017/12/31: | |||||||
|      expenses:food        ||   $396 [  99% of   $400]    $808 [ 101% of   $800]  |      expenses:food        ||   $396 [  99% of   $400]    $808 [ 101% of   $800]  | ||||||
|      expenses:movies      ||    $30 [ 100% of    $30]     $30 [  50% of    $60]  |      expenses:movies      ||    $30 [ 100% of    $30]     $30 [  50% of    $60]  | ||||||
|      income               ||  $1950 [  98% of  $2000]   $4050 [ 101% of  $4000]  |      income               ||  $1950 [  98% of  $2000]   $4050 [ 101% of  $4000]  | ||||||
| ----------------------++---------------------------------------------------- |     ----------------------++---------------------------------------------------- | ||||||
|                           ||      0 [              0]       0 [              0]  |                           ||      0 [              0]       0 [              0]  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Note, the `-S/--sort-amount` flag is not yet fully supported with | Note, the -S/--sort-amount flag is not yet fully supported with | ||||||
| `--budget`. | --budget. | ||||||
| 
 | 
 | ||||||
| For more examples, see [Budgeting and | For more examples, see Budgeting and Forecasting. | ||||||
| Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting). |  | ||||||
| 
 | 
 | ||||||
| #### Nested budgets | Nested budgets | ||||||
| 
 | 
 | ||||||
| You can add budgets to any account in your account hierarchy. If you | You can add budgets to any account in your account hierarchy. If you | ||||||
| have budgets on both parent account and some of its children, then | have budgets on both parent account and some of its children, then | ||||||
| @ -427,82 +386,75 @@ To illustrate this, consider the following budget: | |||||||
|         expenses:personal:electronics    $100.00 |         expenses:personal:electronics    $100.00 | ||||||
|         liabilities |         liabilities | ||||||
| 
 | 
 | ||||||
| With this, monthly budget for electronics is defined to be \$100 and | With this, monthly budget for electronics is defined to be $100 and | ||||||
| budget for personal expenses is an additional \$1000, which implicity | budget for personal expenses is an additional $1000, which implicity | ||||||
| means that budget for both `expenses:personal` and `expenses` is \$1100. | means that budget for both expenses:personal and expenses is $1100. | ||||||
| 
 | 
 | ||||||
| Transactions in `expenses:personal:electronics` will be counted both | Transactions in expenses:personal:electronics will be counted both | ||||||
| towards its \$100 budget and \$1100 of `expenses:personal` , and | towards its $100 budget and $1100 of expenses:personal , and | ||||||
| transactions in any other subaccount of `expenses:personal` would be | transactions in any other subaccount of expenses:personal would be | ||||||
| counted towards only towards the budget of `expenses:personal`. | counted towards only towards the budget of expenses:personal. | ||||||
| 
 | 
 | ||||||
| For example, let\'s consider these transactions: | For example, let's consider these transactions: | ||||||
| 
 | 
 | ||||||
| ``` {.journal} |     ~ monthly from 2019/01 | ||||||
| ~ monthly from 2019/01 |  | ||||||
|         expenses:personal             $1,000.00 |         expenses:personal             $1,000.00 | ||||||
|         expenses:personal:electronics    $100.00 |         expenses:personal:electronics    $100.00 | ||||||
|         liabilities |         liabilities | ||||||
| 
 | 
 | ||||||
| 2019/01/01 Google home hub |     2019/01/01 Google home hub | ||||||
|         expenses:personal:electronics          $90.00 |         expenses:personal:electronics          $90.00 | ||||||
|         liabilities                           $-90.00 |         liabilities                           $-90.00 | ||||||
| 
 | 
 | ||||||
| 2019/01/02 Phone screen protector |     2019/01/02 Phone screen protector | ||||||
|         expenses:personal:electronics:upgrades          $10.00 |         expenses:personal:electronics:upgrades          $10.00 | ||||||
|         liabilities |         liabilities | ||||||
| 
 | 
 | ||||||
| 2019/01/02 Weekly train ticket |     2019/01/02 Weekly train ticket | ||||||
|         expenses:personal:train tickets       $153.00 |         expenses:personal:train tickets       $153.00 | ||||||
|         liabilities |         liabilities | ||||||
| 
 | 
 | ||||||
| 2019/01/03 Flowers |     2019/01/03 Flowers | ||||||
|         expenses:personal          $30.00 |         expenses:personal          $30.00 | ||||||
|         liabilities |         liabilities | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| As you can see, we have transactions in | As you can see, we have transactions in | ||||||
| `expenses:personal:electronics:upgrades` and | expenses:personal:electronics:upgrades and | ||||||
| `expenses:personal:train tickets`, and since both of these accounts are | expenses:personal:train tickets, and since both of these accounts are | ||||||
| without explicitly defined budget, these transactions would be counted | without explicitly defined budget, these transactions would be counted | ||||||
| towards budgets of `expenses:personal:electronics` and | towards budgets of expenses:personal:electronics and expenses:personal | ||||||
| `expenses:personal` accordingly: | accordingly: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance --budget -M | ||||||
| $ hledger balance --budget -M |     Budget performance in 2019/01: | ||||||
| Budget performance in 2019/01: |  | ||||||
| 
 | 
 | ||||||
|                                    ||                           Jan  |                                    ||                           Jan  | ||||||
| ===============================++=============================== |     ===============================++=============================== | ||||||
|      expenses                      ||  $283.00 [  26% of  $1100.00]  |      expenses                      ||  $283.00 [  26% of  $1100.00]  | ||||||
|      expenses:personal             ||  $283.00 [  26% of  $1100.00]  |      expenses:personal             ||  $283.00 [  26% of  $1100.00]  | ||||||
|      expenses:personal:electronics ||  $100.00 [ 100% of   $100.00]  |      expenses:personal:electronics ||  $100.00 [ 100% of   $100.00]  | ||||||
|      liabilities                   || $-283.00 [  26% of $-1100.00]  |      liabilities                   || $-283.00 [  26% of $-1100.00]  | ||||||
| -------------------------------++------------------------------- |     -------------------------------++------------------------------- | ||||||
|                                    ||        0 [                 0]  |                                    ||        0 [                 0]  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| And with `--empty`, we can get a better picture of budget allocation and | And with --empty, we can get a better picture of budget allocation and | ||||||
| consumption: | consumption: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balance --budget -M --empty | ||||||
| $ hledger balance --budget -M --empty |     Budget performance in 2019/01: | ||||||
| Budget performance in 2019/01: |  | ||||||
| 
 | 
 | ||||||
|                                             ||                           Jan  |                                             ||                           Jan  | ||||||
| ========================================++=============================== |     ========================================++=============================== | ||||||
|      expenses                               ||  $283.00 [  26% of  $1100.00]  |      expenses                               ||  $283.00 [  26% of  $1100.00]  | ||||||
|      expenses:personal                      ||  $283.00 [  26% of  $1100.00]  |      expenses:personal                      ||  $283.00 [  26% of  $1100.00]  | ||||||
|      expenses:personal:electronics          ||  $100.00 [ 100% of   $100.00]  |      expenses:personal:electronics          ||  $100.00 [ 100% of   $100.00]  | ||||||
|      expenses:personal:electronics:upgrades ||   $10.00                       |      expenses:personal:electronics:upgrades ||   $10.00                       | ||||||
|      expenses:personal:train tickets        ||  $153.00                       |      expenses:personal:train tickets        ||  $153.00                       | ||||||
|      liabilities                            || $-283.00 [  26% of $-1100.00]  |      liabilities                            || $-283.00 [  26% of $-1100.00]  | ||||||
| ----------------------------------------++------------------------------- |     ----------------------------------------++------------------------------- | ||||||
|                                             ||        0 [                 0]  |                                             ||        0 [                 0]  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| ### Output format | Output format | ||||||
| 
 | 
 | ||||||
| The balance command supports [output | The balance command supports output destination and output format | ||||||
| destination](/manual.html#output-destination) and [output | selection. | ||||||
| format](/manual.html#output-format) selection. |  | ||||||
|  | |||||||
| @ -1,45 +1,41 @@ | |||||||
| balancesheet, bs\ | balancesheet, bs | ||||||
| This command displays a simple balance sheet, showing historical ending | This command displays a simple balance sheet, showing historical ending | ||||||
| balances of asset and liability accounts (ignoring any report begin | balances of asset and liability accounts (ignoring any report begin | ||||||
| date). It assumes that these accounts are under a top-level `asset` or | date). It assumes that these accounts are under a top-level asset or | ||||||
| `liability` account (case insensitive, plural forms also allowed). | liability account (case insensitive, plural forms also allowed). | ||||||
| 
 | 
 | ||||||
| Note this report shows all account balances with normal positive sign | Note this report shows all account balances with normal positive sign | ||||||
| (like conventional financial statements, unlike balance/print/register) | (like conventional financial statements, unlike balance/print/register) | ||||||
| (experimental). | (experimental). | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| Example: | Example: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balancesheet | ||||||
| $ hledger balancesheet |     Balance Sheet | ||||||
| Balance Sheet |  | ||||||
| 
 | 
 | ||||||
| Assets: |     Assets: | ||||||
|                      $-1  assets |                      $-1  assets | ||||||
|                       $1    bank:saving |                       $1    bank:saving | ||||||
|                      $-2    cash |                      $-2    cash | ||||||
| -------------------- |     -------------------- | ||||||
|                      $-1 |                      $-1 | ||||||
| 
 | 
 | ||||||
| Liabilities: |     Liabilities: | ||||||
|                       $1  liabilities:debts |                       $1  liabilities:debts | ||||||
| -------------------- |     -------------------- | ||||||
|                       $1 |                       $1 | ||||||
| 
 | 
 | ||||||
| Total: |     Total: | ||||||
| -------------------- |     -------------------- | ||||||
|                        0 |                        0 | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| With a [reporting interval](#reporting-interval), multiple columns will | With a reporting interval, multiple columns will be shown, one for each | ||||||
| be shown, one for each report period. As with [multicolumn balance | report period. As with multicolumn balance reports, you can alter the | ||||||
| reports](#multicolumn-balance-reports), you can alter the report mode | report mode with --change/--cumulative/--historical. Normally | ||||||
| with `--change`/`--cumulative`/`--historical`. Normally balancesheet | balancesheet shows historical ending balances, which is what you need | ||||||
| shows historical ending balances, which is what you need for a balance | for a balance sheet; note this means it ignores report begin dates. | ||||||
| sheet; note this means it ignores report begin dates. |  | ||||||
| 
 | 
 | ||||||
| This command also supports [output | This command also supports output destination and output format | ||||||
| destination](/manual.html#output-destination) and [output | selection. | ||||||
| format](/manual.html#output-format) selection. |  | ||||||
|  | |||||||
| @ -1,33 +1,31 @@ | |||||||
| balancesheetequity, bse\ | balancesheetequity, bse | ||||||
| Just like [balancesheet](#balancesheet), but also reports Equity (which | Just like balancesheet, but also reports Equity (which it assumes is | ||||||
| it assumes is under a top-level `equity` account). | under a top-level equity account). | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| Example: | Example: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger balancesheetequity | ||||||
| $ hledger balancesheetequity |     Balance Sheet With Equity | ||||||
| Balance Sheet With Equity |  | ||||||
| 
 | 
 | ||||||
| Assets: |     Assets: | ||||||
|                      $-2  assets |                      $-2  assets | ||||||
|                       $1    bank:saving |                       $1    bank:saving | ||||||
|                      $-3    cash |                      $-3    cash | ||||||
| -------------------- |     -------------------- | ||||||
|                      $-2 |                      $-2 | ||||||
| 
 | 
 | ||||||
| Liabilities: |     Liabilities: | ||||||
|                       $1  liabilities:debts |                       $1  liabilities:debts | ||||||
| -------------------- |     -------------------- | ||||||
|                       $1 |                       $1 | ||||||
| 
 | 
 | ||||||
| Equity: |     Equity: | ||||||
|               $1  equity:owner |               $1  equity:owner | ||||||
| -------------------- |     -------------------- | ||||||
|               $1 |               $1 | ||||||
| 
 | 
 | ||||||
| Total: |     Total: | ||||||
| -------------------- |     -------------------- | ||||||
|                        0 |                        0 | ||||||
| ``` |  | ||||||
|  | |||||||
| @ -1,37 +1,33 @@ | |||||||
| cashflow, cf\ | cashflow, cf | ||||||
| This command displays a simple cashflow statement, showing changes in | This command displays a simple cashflow statement, showing changes in | ||||||
| \"cash\" accounts. It assumes that these accounts are under a top-level | "cash" accounts. It assumes that these accounts are under a top-level | ||||||
| `asset` account (case insensitive, plural forms also allowed) and do not | asset account (case insensitive, plural forms also allowed) and do not | ||||||
| contain `receivable` or `A/R` in their name. Note this report shows all | contain receivable or A/R in their name. Note this report shows all | ||||||
| account balances with normal positive sign (like conventional financial | account balances with normal positive sign (like conventional financial | ||||||
| statements, unlike balance/print/register) (experimental). | statements, unlike balance/print/register) (experimental). | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| Example: | Example: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger cashflow | ||||||
| $ hledger cashflow |     Cashflow Statement | ||||||
| Cashflow Statement |  | ||||||
| 
 | 
 | ||||||
| Cash flows: |     Cash flows: | ||||||
|                      $-1  assets |                      $-1  assets | ||||||
|                       $1    bank:saving |                       $1    bank:saving | ||||||
|                      $-2    cash |                      $-2    cash | ||||||
| -------------------- |     -------------------- | ||||||
|                      $-1 |                      $-1 | ||||||
| 
 | 
 | ||||||
| Total: |     Total: | ||||||
| -------------------- |     -------------------- | ||||||
|                      $-1 |                      $-1 | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| With a [reporting interval](#reporting-interval), multiple columns will | With a reporting interval, multiple columns will be shown, one for each | ||||||
| be shown, one for each report period. Normally cashflow shows changes in | report period. Normally cashflow shows changes in assets per period, | ||||||
| assets per period, though as with [multicolumn balance | though as with multicolumn balance reports you can alter the report mode | ||||||
| reports](#multicolumn-balance-reports) you can alter the report mode | with --change/--cumulative/--historical. | ||||||
| with `--change`/`--cumulative`/`--historical`. |  | ||||||
| 
 | 
 | ||||||
| This command also supports [output | This command also supports output destination and output format | ||||||
| destination](/manual.html#output-destination) and [output | selection. | ||||||
| format](/manual.html#output-format) selection. |  | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| check-dates\ | check-dates | ||||||
| Check that transactions are sorted by increasing date. With \--date2, | Check that transactions are sorted by increasing date. With --date2, | ||||||
| checks secondary dates instead. With \--strict, dates must also be | checks secondary dates instead. With --strict, dates must also be | ||||||
| unique. With a query, only matched transactions\' dates are checked. | unique. With a query, only matched transactions' dates are checked. | ||||||
| Reads the default journal file, or another specified with -f. | Reads the default journal file, or another specified with -f. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
|  | |||||||
| @ -1,8 +1,8 @@ | |||||||
| check-dupes\ | check-dupes | ||||||
| Reports account names having the same leaf but different prefixes. In | Reports account names having the same leaf but different prefixes. In | ||||||
| other words, two or more leaves that are categorized differently. Reads | other words, two or more leaves that are categorized differently. Reads | ||||||
| the default journal file, or another specified as an argument. | the default journal file, or another specified as an argument. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| An example: http://stefanorodighiero.net/software/hledger-dupes.html | An example: http://stefanorodighiero.net/software/hledger-dupes.html | ||||||
|  | |||||||
| @ -1,16 +1,16 @@ | |||||||
| close, equity\ | close, equity | ||||||
| Prints a \"closing balances\" transaction and an \"opening balances\" | Prints a "closing balances" transaction and an "opening balances" | ||||||
| transaction that bring account balances to and from zero, respectively. | transaction that bring account balances to and from zero, respectively. | ||||||
| Useful for bringing asset/liability balances forward into a new journal | Useful for bringing asset/liability balances forward into a new journal | ||||||
| file, or for closing out revenues/expenses to retained earnings at the | file, or for closing out revenues/expenses to retained earnings at the | ||||||
| end of a period. | end of a period. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| The closing transaction transfers balances to \"equity:closing | The closing transaction transfers balances to "equity:closing balances". | ||||||
| balances\". The opening transaction transfers balances from | The opening transaction transfers balances from "equity:opening | ||||||
| \"equity:opening balances\". You can chose to print just one of the | balances". You can chose to print just one of the transactions by using | ||||||
| transactions by using the `--opening` or `--closing` flag. | the --opening or --closing flag. | ||||||
| 
 | 
 | ||||||
| If you split your journal files by time (eg yearly), you will typically | If you split your journal files by time (eg yearly), you will typically | ||||||
| run this command at the end of the year, and save the closing | run this command at the end of the year, and save the closing | ||||||
| @ -21,34 +21,33 @@ loaded. Ie, if you load just one file, the balances are initialised | |||||||
| correctly; or if you load several files, the redundant closing/opening | correctly; or if you load several files, the redundant closing/opening | ||||||
| transactions cancel each other out. (They will show up in print or | transactions cancel each other out. (They will show up in print or | ||||||
| register reports; you can exclude them with a query like | register reports; you can exclude them with a query like | ||||||
| `not:desc:'(opening|closing) balances'`.) | not:desc:'(opening|closing) balances'.) | ||||||
| 
 | 
 | ||||||
| If you\'re running a business, you might also use this command to | If you're running a business, you might also use this command to "close | ||||||
| \"close the books\" at the end of an accounting period, transferring | the books" at the end of an accounting period, transferring income | ||||||
| income statement account balances to retained earnings. (You may want to | statement account balances to retained earnings. (You may want to change | ||||||
| change the equity account name to something like \"equity:retained | the equity account name to something like "equity:retained earnings".) | ||||||
| earnings\".) |  | ||||||
| 
 | 
 | ||||||
| By default, the closing transaction is dated yesterday, the balances are | By default, the closing transaction is dated yesterday, the balances are | ||||||
| calculated as of end of yesterday, and the opening transaction is dated | calculated as of end of yesterday, and the opening transaction is dated | ||||||
| today. To close on some other date, use: `hledger close -e OPENINGDATE`. | today. To close on some other date, use: hledger close -e OPENINGDATE. | ||||||
| Eg, to close/open on the 2018/2019 boundary, use `-e 2019`. You can also | Eg, to close/open on the 2018/2019 boundary, use -e 2019. You can also | ||||||
| use -p or `date:PERIOD` (any starting date is ignored). | use -p or date:PERIOD (any starting date is ignored). | ||||||
| 
 | 
 | ||||||
| Both transactions will include balance assertions for the | Both transactions will include balance assertions for the | ||||||
| closed/reopened accounts. You probably shouldn\'t use status or realness | closed/reopened accounts. You probably shouldn't use status or realness | ||||||
| filters (like -C or -R or `status:`) with this command, or the generated | filters (like -C or -R or status:) with this command, or the generated | ||||||
| balance assertions will depend on these flags. Likewise, if you run this | balance assertions will depend on these flags. Likewise, if you run this | ||||||
| command with \--auto, the balance assertions will probably always | command with --auto, the balance assertions will probably always require | ||||||
| require \--auto. | --auto. | ||||||
| 
 | 
 | ||||||
| Examples: | Examples: | ||||||
| 
 | 
 | ||||||
| Carrying asset/liability balances into a new file for 2019, all from | Carrying asset/liability balances into a new file for 2019, all from | ||||||
| command line: | command line: | ||||||
| 
 | 
 | ||||||
| *Warning: we use `>>` here to append; be careful not to type a single | _Warning: we use >> here to append; be careful not to type a single > | ||||||
| `>` which would wipe your journal!* | which would wipe your journal!_ | ||||||
| 
 | 
 | ||||||
|     $ hledger close -f 2018.journal -e 2019 assets liabilities --opening >>2019.journal |     $ hledger close -f 2018.journal -e 2019 assets liabilities --opening >>2019.journal | ||||||
|     $ hledger close -f 2018.journal -e 2019 assets liabilities --closing >>2018.journal |     $ hledger close -f 2018.journal -e 2019 assets liabilities --closing >>2018.journal | ||||||
| @ -66,7 +65,7 @@ balance assertions: | |||||||
|         expenses:food          5 |         expenses:food          5 | ||||||
|         assets:bank:checking  -5  ; [2019/1/2] |         assets:bank:checking  -5  ; [2019/1/2] | ||||||
| 
 | 
 | ||||||
| Here\'s one way to resolve that: | Here's one way to resolve that: | ||||||
| 
 | 
 | ||||||
|     ; in 2018.journal: |     ; in 2018.journal: | ||||||
|     2018/12/30 a purchase made in 2018, clearing the following year |     2018/12/30 a purchase made in 2018, clearing the following year | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| files\ | files | ||||||
| List all files included in the journal. With a REGEX argument, only file | List all files included in the journal. With a REGEX argument, only file | ||||||
| names matching the regular expression (case sensitive) are shown. | names matching the regular expression (case sensitive) are shown. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
|  | |||||||
| @ -1,40 +1,35 @@ | |||||||
| help\ | help | ||||||
| Show any of the hledger manuals. | Show any of the hledger manuals. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| The `help` command displays any of the main [hledger | The help command displays any of the main hledger manuals, in one of | ||||||
| manuals](/docs.html), in one of several ways. Run it with no argument to | several ways. Run it with no argument to list the manuals, or provide a | ||||||
| list the manuals, or provide a full or partial manual name to select | full or partial manual name to select one. | ||||||
| one. |  | ||||||
| 
 | 
 | ||||||
| hledger manuals are available in several formats. hledger help will use | hledger manuals are available in several formats. hledger help will use | ||||||
| the first of these display methods that it finds: info, man, \$PAGER, | the first of these display methods that it finds: info, man, $PAGER, | ||||||
| less, stdout (or when non-interactive, just stdout). You can force a | less, stdout (or when non-interactive, just stdout). You can force a | ||||||
| particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags. | particular viewer with the --info, --man, --pager, --cat flags. | ||||||
| 
 | 
 | ||||||
| Examples: | Examples: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger help | ||||||
| $ hledger help |     Please choose a manual by typing "hledger help MANUAL" (a substring is ok). | ||||||
| Please choose a manual by typing "hledger help MANUAL" (a substring is ok). |     Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot | ||||||
| Manuals: hledger hledger-ui hledger-web hledger-api journal csv timeclock timedot |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger help h --man | ||||||
| $ hledger help h --man |  | ||||||
| 
 | 
 | ||||||
| hledger(1)                    hledger User Manuals                    hledger(1) |     hledger(1)                    hledger User Manuals                    hledger(1) | ||||||
| 
 | 
 | ||||||
| NAME |     NAME | ||||||
|            hledger - a command-line accounting tool |            hledger - a command-line accounting tool | ||||||
| 
 | 
 | ||||||
| SYNOPSIS |     SYNOPSIS | ||||||
|            hledger [-f FILE] COMMAND [OPTIONS] [ARGS] |            hledger [-f FILE] COMMAND [OPTIONS] [ARGS] | ||||||
|            hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS] |            hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS] | ||||||
|            hledger |            hledger | ||||||
| 
 | 
 | ||||||
| DESCRIPTION |     DESCRIPTION | ||||||
|            hledger  is  a  cross-platform  program  for tracking money, time, or any |            hledger  is  a  cross-platform  program  for tracking money, time, or any | ||||||
| ... |     ... | ||||||
| ``` |  | ||||||
|  | |||||||
| @ -1,21 +1,19 @@ | |||||||
| import\ | import | ||||||
| Read new transactions added to each FILE since last run, and add them to | Read new transactions added to each FILE since last run, and add them to | ||||||
| the main journal file. Or with \--dry-run, just print the transactions | the main journal file. Or with --dry-run, just print the transactions | ||||||
| that would be added. | that would be added. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| The input files are specified as arguments - no need to write -f before | The input files are specified as arguments - no need to write -f before | ||||||
| each one. So eg to add new transactions from all CSV files to the main | each one. So eg to add new transactions from all CSV files to the main | ||||||
| journal, it\'s just: `hledger import *.csv` | journal, it's just: hledger import *.csv | ||||||
| 
 | 
 | ||||||
| New transactions are detected in the same way as print \--new: by | New transactions are detected in the same way as print --new: by | ||||||
| assuming transactions are always added to the input files in increasing | assuming transactions are always added to the input files in increasing | ||||||
| date order, and by saving `.latest.FILE` state files. | date order, and by saving .latest.FILE state files. | ||||||
| 
 | 
 | ||||||
| The \--dry-run output is in journal format, so you can filter it, eg to | The --dry-run output is in journal format, so you can filter it, eg to | ||||||
| see only uncategorised transactions: | see only uncategorised transactions: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger import --dry ... | hledger -f- print unknown --ignore-assertions | ||||||
| $ hledger import --dry ... | hledger -f- print unknown --ignore-assertions |  | ||||||
| ``` |  | ||||||
|  | |||||||
| @ -1,47 +1,42 @@ | |||||||
| incomestatement, is\ | incomestatement, is | ||||||
| This command displays a simple income statement, showing revenues and | This command displays a simple income statement, showing revenues and | ||||||
| expenses during a period. It assumes that these accounts are under a | expenses during a period. It assumes that these accounts are under a | ||||||
| top-level `revenue` or `income` or `expense` account (case insensitive, | top-level revenue or income or expense account (case insensitive, plural | ||||||
| plural forms also allowed). Note this report shows all account balances | forms also allowed). Note this report shows all account balances with | ||||||
| with normal positive sign (like conventional financial statements, | normal positive sign (like conventional financial statements, unlike | ||||||
| unlike balance/print/register) (experimental). | balance/print/register) (experimental). | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| This command displays a simple [income | This command displays a simple income statement. It currently assumes | ||||||
| statement](http://en.wikipedia.org/wiki/Income_statement). It currently | that you have top-level accounts named income (or revenue) and expense | ||||||
| assumes that you have top-level accounts named `income` (or `revenue`) | (plural forms also allowed.) | ||||||
| and `expense` (plural forms also allowed.) |  | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger incomestatement | ||||||
| $ hledger incomestatement |     Income Statement | ||||||
| Income Statement |  | ||||||
| 
 | 
 | ||||||
| Revenues: |     Revenues: | ||||||
|                      $-2  income |                      $-2  income | ||||||
|                      $-1    gifts |                      $-1    gifts | ||||||
|                      $-1    salary |                      $-1    salary | ||||||
| -------------------- |     -------------------- | ||||||
|                      $-2 |                      $-2 | ||||||
| 
 | 
 | ||||||
| Expenses: |     Expenses: | ||||||
|                       $2  expenses |                       $2  expenses | ||||||
|                       $1    food |                       $1    food | ||||||
|                       $1    supplies |                       $1    supplies | ||||||
| -------------------- |     -------------------- | ||||||
|                       $2 |                       $2 | ||||||
| 
 | 
 | ||||||
| Total: |     Total: | ||||||
| -------------------- |     -------------------- | ||||||
|                        0 |                        0 | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| With a [reporting interval](#reporting-interval), multiple columns will | With a reporting interval, multiple columns will be shown, one for each | ||||||
| be shown, one for each report period. Normally incomestatement shows | report period. Normally incomestatement shows revenues/expenses per | ||||||
| revenues/expenses per period, though as with [multicolumn balance | period, though as with multicolumn balance reports you can alter the | ||||||
| reports](#multicolumn-balance-reports) you can alter the report mode | report mode with --change/--cumulative/--historical. | ||||||
| with `--change`/`--cumulative`/`--historical`. |  | ||||||
| 
 | 
 | ||||||
| This command also supports [output | This command also supports output destination and output format | ||||||
| destination](/manual.html#output-destination) and [output | selection. | ||||||
| format](/manual.html#output-format) selection. |  | ||||||
|  | |||||||
| @ -1,8 +1,7 @@ | |||||||
| prices\ | prices | ||||||
| Print [market price directives](/manual#market-prices) from the journal. | Print market price directives from the journal. With --costs, also print | ||||||
| With \--costs, also print synthetic market prices based on [transaction | synthetic market prices based on transaction prices. With | ||||||
| prices](/manual#transaction-prices). With \--inverted-costs, also print | --inverted-costs, also print inverse prices based on transaction prices. | ||||||
| inverse prices based on transaction prices. Prices (and postings | Prices (and postings providing prices) can be filtered by a query. | ||||||
| providing prices) can be filtered by a query. |  | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
|  | |||||||
| @ -1,105 +1,96 @@ | |||||||
| print, txns, p\ | print, txns, p | ||||||
| Show transaction journal entries, sorted by date. | Show transaction journal entries, sorted by date. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| The print command displays full journal entries (transactions) from the | The print command displays full journal entries (transactions) from the | ||||||
| journal file in date order, tidily formatted. With \--date2, | journal file in date order, tidily formatted. With --date2, transactions | ||||||
| transactions are sorted by secondary date instead. | are sorted by secondary date instead. | ||||||
| 
 | 
 | ||||||
| print\'s output is always a valid [hledger journal](/journal.html).\ | print's output is always a valid hledger journal. | ||||||
| It preserves all transaction information, but it does not preserve | It preserves all transaction information, but it does not preserve | ||||||
| directives or inter-transaction comments | directives or inter-transaction comments | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger print | ||||||
| $ hledger print |     2008/01/01 income | ||||||
| 2008/01/01 income |  | ||||||
|         assets:bank:checking            $1 |         assets:bank:checking            $1 | ||||||
|         income:salary                  $-1 |         income:salary                  $-1 | ||||||
| 
 | 
 | ||||||
| 2008/06/01 gift |     2008/06/01 gift | ||||||
|         assets:bank:checking            $1 |         assets:bank:checking            $1 | ||||||
|         income:gifts                   $-1 |         income:gifts                   $-1 | ||||||
| 
 | 
 | ||||||
| 2008/06/02 save |     2008/06/02 save | ||||||
|         assets:bank:saving              $1 |         assets:bank:saving              $1 | ||||||
|         assets:bank:checking           $-1 |         assets:bank:checking           $-1 | ||||||
| 
 | 
 | ||||||
| 2008/06/03 * eat & shop |     2008/06/03 * eat & shop | ||||||
|         expenses:food                $1 |         expenses:food                $1 | ||||||
|         expenses:supplies            $1 |         expenses:supplies            $1 | ||||||
|         assets:cash                 $-2 |         assets:cash                 $-2 | ||||||
| 
 | 
 | ||||||
| 2008/12/31 * pay off |     2008/12/31 * pay off | ||||||
|         liabilities:debts               $1 |         liabilities:debts               $1 | ||||||
|         assets:bank:checking           $-1 |         assets:bank:checking           $-1 | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Normally, the journal entry\'s explicit or implicit amount style is | Normally, the journal entry's explicit or implicit amount style is | ||||||
| preserved. Ie when an amount is omitted in the journal, it will be | preserved. Ie when an amount is omitted in the journal, it will be | ||||||
| omitted in the output. You can use the `-x`/`--explicit` flag to make | omitted in the output. You can use the -x/--explicit flag to make all | ||||||
| all amounts explicit, which can be useful for troubleshooting or for | amounts explicit, which can be useful for troubleshooting or for making | ||||||
| making your journal more readable and robust against data entry errors. | your journal more readable and robust against data entry errors. Note, | ||||||
| Note, `-x` will cause postings with a multi-commodity amount (these can | -x will cause postings with a multi-commodity amount (these can arise | ||||||
| arise when a multi-commodity transaction has an implicit amount) will be | when a multi-commodity transaction has an implicit amount) will be split | ||||||
| split into multiple single-commodity postings, for valid journal output. | into multiple single-commodity postings, for valid journal output. | ||||||
| 
 | 
 | ||||||
| With `-B`/`--cost`, amounts with [transaction | With -B/--cost, amounts with transaction prices are converted to cost | ||||||
| prices](/journal.html#transaction-prices) are converted to cost using | using that price. This can be used for troubleshooting. | ||||||
| that price. This can be used for troubleshooting. |  | ||||||
| 
 | 
 | ||||||
| With `-m`/`--match` and a STR argument, print will show at most one | With -m/--match and a STR argument, print will show at most one | ||||||
| transaction: the one one whose description is most similar to STR, and | transaction: the one one whose description is most similar to STR, and | ||||||
| is most recent. STR should contain at least two characters. If there is | is most recent. STR should contain at least two characters. If there is | ||||||
| no similar-enough match, no transaction will be shown. | no similar-enough match, no transaction will be shown. | ||||||
| 
 | 
 | ||||||
| With `--new`, for each FILE being read, hledger reads (and writes) a | With --new, for each FILE being read, hledger reads (and writes) a | ||||||
| special state file (`.latest.FILE` in the same directory), containing | special state file (.latest.FILE in the same directory), containing the | ||||||
| the latest transaction date(s) that were seen last time FILE was read. | latest transaction date(s) that were seen last time FILE was read. When | ||||||
| When this file is found, only transactions with newer dates (and new | this file is found, only transactions with newer dates (and new | ||||||
| transactions on the latest date) are printed. This is useful for | transactions on the latest date) are printed. This is useful for | ||||||
| ignoring already-seen entries in import data, such as downloaded CSV | ignoring already-seen entries in import data, such as downloaded CSV | ||||||
| files. Eg: | files. Eg: | ||||||
| 
 | 
 | ||||||
| ``` {.console} |     $ hledger -f bank1.csv print --new | ||||||
| $ hledger -f bank1.csv print --new |     # shows transactions added since last print --new on this file | ||||||
| # shows transactions added since last print --new on this file |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| This assumes that transactions added to FILE always have same or | This assumes that transactions added to FILE always have same or | ||||||
| increasing dates, and that transactions on the same day do not get | increasing dates, and that transactions on the same day do not get | ||||||
| reordered. See also the [import](#import) command. | reordered. See also the import command. | ||||||
| 
 | 
 | ||||||
| This command also supports [output | This command also supports output destination and output format | ||||||
| destination](/manual.html#output-destination) and [output | selection. Here's an example of print's CSV output: | ||||||
| format](/manual.html#output-format) selection. Here\'s an example of |  | ||||||
| print\'s CSV output: |  | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger print -Ocsv | ||||||
| $ hledger print -Ocsv |     "txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment" | ||||||
| "txnidx","date","date2","status","code","description","comment","account","amount","commodity","credit","debit","posting-status","posting-comment" |     "1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","","" | ||||||
| "1","2008/01/01","","","","income","","assets:bank:checking","1","$","","1","","" |     "1","2008/01/01","","","","income","","income:salary","-1","$","1","","","" | ||||||
| "1","2008/01/01","","","","income","","income:salary","-1","$","1","","","" |     "2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","","" | ||||||
| "2","2008/06/01","","","","gift","","assets:bank:checking","1","$","","1","","" |     "2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","","" | ||||||
| "2","2008/06/01","","","","gift","","income:gifts","-1","$","1","","","" |     "3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","","" | ||||||
| "3","2008/06/02","","","","save","","assets:bank:saving","1","$","","1","","" |     "3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","","" | ||||||
| "3","2008/06/02","","","","save","","assets:bank:checking","-1","$","1","","","" |     "4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","","" | ||||||
| "4","2008/06/03","","*","","eat & shop","","expenses:food","1","$","","1","","" |     "4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","","" | ||||||
| "4","2008/06/03","","*","","eat & shop","","expenses:supplies","1","$","","1","","" |     "4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","","" | ||||||
| "4","2008/06/03","","*","","eat & shop","","assets:cash","-2","$","2","","","" |     "5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","","" | ||||||
| "5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","","" |     "5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","","" | ||||||
| "5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","","" |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| -   There is one CSV record per posting, with the parent transaction\'s | -   There is one CSV record per posting, with the parent transaction's | ||||||
|     fields repeated. |     fields repeated. | ||||||
| -   The \"txnidx\" (transaction index) field shows which postings belong | -   The "txnidx" (transaction index) field shows which postings belong | ||||||
|     to the same transaction. (This number might change if transactions |     to the same transaction. (This number might change if transactions | ||||||
|     are reordered within the file, files are parsed/included in a |     are reordered within the file, files are parsed/included in a | ||||||
|     different order, etc.) |     different order, etc.) | ||||||
| -   The amount is separated into \"commodity\" (the symbol) and | -   The amount is separated into "commodity" (the symbol) and "amount" | ||||||
|     \"amount\" (numeric quantity) fields. |     (numeric quantity) fields. | ||||||
| -   The numeric amount is repeated in either the \"credit\" or \"debit\" | -   The numeric amount is repeated in either the "credit" or "debit" | ||||||
|     column, for convenience. (Those names are not accurate in the |     column, for convenience. (Those names are not accurate in the | ||||||
|     accounting sense; it just puts negative amounts under credit and |     accounting sense; it just puts negative amounts under credit and | ||||||
|     zero or greater amounts under debit.) |     zero or greater amounts under debit.) | ||||||
|  | |||||||
| @ -1,18 +1,16 @@ | |||||||
| print-unique\ | print-unique | ||||||
| Print transactions which do not reuse an already-seen description. | Print transactions which do not reuse an already-seen description. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| Example: | Example: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ cat unique.journal | ||||||
| $ cat unique.journal |     1/1 test | ||||||
| 1/1 test |  | ||||||
|      (acct:one)  1 |      (acct:one)  1 | ||||||
| 2/2 test |     2/2 test | ||||||
|      (acct:two)  2 |      (acct:two)  2 | ||||||
| $ LEDGER_FILE=unique.journal hledger print-unique |     $ LEDGER_FILE=unique.journal hledger print-unique | ||||||
| (-f option not supported) |     (-f option not supported) | ||||||
| 2015/01/01 test |     2015/01/01 test | ||||||
|         (acct:one)             1 |         (acct:one)             1 | ||||||
| ``` |  | ||||||
|  | |||||||
| @ -110,3 +110,4 @@ $ hledger reg -w $COLUMNS,40      # use terminal width, and set description widt | |||||||
| This command also supports | This command also supports | ||||||
| [output destination](/manual.html#output-destination) and | [output destination](/manual.html#output-destination) and | ||||||
| [output format](/manual.html#output-format) selection. | [output format](/manual.html#output-format) selection. | ||||||
|  | 
 | ||||||
|  | |||||||
| @ -1,97 +1,87 @@ | |||||||
| register, reg, r\ | register, reg, r | ||||||
| Show postings and their running total. | Show postings and their running total. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| The register command displays postings in date order, one per line, and | The register command displays postings in date order, one per line, and | ||||||
| their running total. This is typically used with a [query](#queries) | their running total. This is typically used with a query selecting a | ||||||
| selecting a particular account, to see that account\'s activity: | particular account, to see that account's activity: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger register checking | ||||||
| $ hledger register checking |     2008/01/01 income               assets:bank:checking            $1            $1 | ||||||
| 2008/01/01 income               assets:bank:checking            $1            $1 |     2008/06/01 gift                 assets:bank:checking            $1            $2 | ||||||
| 2008/06/01 gift                 assets:bank:checking            $1            $2 |     2008/06/02 save                 assets:bank:checking           $-1            $1 | ||||||
| 2008/06/02 save                 assets:bank:checking           $-1            $1 |     2008/12/31 pay off              assets:bank:checking           $-1             0 | ||||||
| 2008/12/31 pay off              assets:bank:checking           $-1             0 |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| With \--date2, it shows and sorts by secondary date instead. | With --date2, it shows and sorts by secondary date instead. | ||||||
| 
 | 
 | ||||||
| The `--historical`/`-H` flag adds the balance from any undisplayed prior | The --historical/-H flag adds the balance from any undisplayed prior | ||||||
| postings to the running total. This is useful when you want to see only | postings to the running total. This is useful when you want to see only | ||||||
| recent activity, with a historically accurate running balance: | recent activity, with a historically accurate running balance: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger register checking -b 2008/6 --historical | ||||||
| $ hledger register checking -b 2008/6 --historical |     2008/06/01 gift                 assets:bank:checking            $1            $2 | ||||||
| 2008/06/01 gift                 assets:bank:checking            $1            $2 |     2008/06/02 save                 assets:bank:checking           $-1            $1 | ||||||
| 2008/06/02 save                 assets:bank:checking           $-1            $1 |     2008/12/31 pay off              assets:bank:checking           $-1             0 | ||||||
| 2008/12/31 pay off              assets:bank:checking           $-1             0 |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| The `--depth` option limits the amount of sub-account detail displayed. | The --depth option limits the amount of sub-account detail displayed. | ||||||
| 
 | 
 | ||||||
| The `--average`/`-A` flag shows the running average posting amount | The --average/-A flag shows the running average posting amount instead | ||||||
| instead of the running total (so, the final number displayed is the | of the running total (so, the final number displayed is the average for | ||||||
| average for the whole report period). This flag implies `--empty` (see | the whole report period). This flag implies --empty (see below). It is | ||||||
| below). It is affected by `--historical`. It works best when showing | affected by --historical. It works best when showing just one account | ||||||
| just one account and one commodity. | and one commodity. | ||||||
| 
 | 
 | ||||||
| The `--related`/`-r` flag shows the *other* postings in the transactions | The --related/-r flag shows the _other_ postings in the transactions of | ||||||
| of the postings which would normally be shown. | the postings which would normally be shown. | ||||||
| 
 | 
 | ||||||
| With a [reporting interval](#reporting-interval), register shows summary | With a reporting interval, register shows summary postings, one per | ||||||
| postings, one per interval, aggregating the postings to each account: | interval, aggregating the postings to each account: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger register --monthly income | ||||||
| $ hledger register --monthly income |     2008/01                 income:salary                          $-1           $-1 | ||||||
| 2008/01                 income:salary                          $-1           $-1 |     2008/06                 income:gifts                           $-1           $-2 | ||||||
| 2008/06                 income:gifts                           $-1           $-2 |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Periods with no activity, and summary postings with a zero amount, are | Periods with no activity, and summary postings with a zero amount, are | ||||||
| not shown by default; use the `--empty`/`-E` flag to see them: | not shown by default; use the --empty/-E flag to see them: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger register --monthly income -E | ||||||
| $ hledger register --monthly income -E |     2008/01                 income:salary                          $-1           $-1 | ||||||
| 2008/01                 income:salary                          $-1           $-1 |     2008/02                                                          0           $-1 | ||||||
| 2008/02                                                          0           $-1 |     2008/03                                                          0           $-1 | ||||||
| 2008/03                                                          0           $-1 |     2008/04                                                          0           $-1 | ||||||
| 2008/04                                                          0           $-1 |     2008/05                                                          0           $-1 | ||||||
| 2008/05                                                          0           $-1 |     2008/06                 income:gifts                           $-1           $-2 | ||||||
| 2008/06                 income:gifts                           $-1           $-2 |     2008/07                                                          0           $-2 | ||||||
| 2008/07                                                          0           $-2 |     2008/08                                                          0           $-2 | ||||||
| 2008/08                                                          0           $-2 |     2008/09                                                          0           $-2 | ||||||
| 2008/09                                                          0           $-2 |     2008/10                                                          0           $-2 | ||||||
| 2008/10                                                          0           $-2 |     2008/11                                                          0           $-2 | ||||||
| 2008/11                                                          0           $-2 |     2008/12                                                          0           $-2 | ||||||
| 2008/12                                                          0           $-2 |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Often, you\'ll want to see just one line per interval. The `--depth` | Often, you'll want to see just one line per interval. The --depth option | ||||||
| option helps with this, causing subaccounts to be aggregated: | helps with this, causing subaccounts to be aggregated: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger register --monthly assets --depth 1h | ||||||
| $ hledger register --monthly assets --depth 1h |     2008/01                 assets                                  $1            $1 | ||||||
| 2008/01                 assets                                  $1            $1 |     2008/06                 assets                                 $-1             0 | ||||||
| 2008/06                 assets                                 $-1             0 |     2008/12                 assets                                 $-1           $-1 | ||||||
| 2008/12                 assets                                 $-1           $-1 |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Note when using report intervals, if you specify start/end dates these | Note when using report intervals, if you specify start/end dates these | ||||||
| will be adjusted outward if necessary to contain a whole number of | will be adjusted outward if necessary to contain a whole number of | ||||||
| intervals. This ensures that the first and last intervals are full | intervals. This ensures that the first and last intervals are full | ||||||
| length and comparable to the others in the report. | length and comparable to the others in the report. | ||||||
| 
 | 
 | ||||||
| ### Custom register output | Custom register output | ||||||
| 
 | 
 | ||||||
| register uses the full terminal width by default, except on windows. You | register uses the full terminal width by default, except on windows. You | ||||||
| can override this by setting the `COLUMNS` environment variable (not a | can override this by setting the COLUMNS environment variable (not a | ||||||
| bash shell variable) or by using the `--width`/`-w` option. | bash shell variable) or by using the --width/-w option. | ||||||
| 
 | 
 | ||||||
| The description and account columns normally share the space equally | The description and account columns normally share the space equally | ||||||
| (about half of (width - 40) each). You can adjust this by adding a | (about half of (width - 40) each). You can adjust this by adding a | ||||||
| description width as part of \--width\'s argument, comma-separated: | description width as part of --width's argument, comma-separated: | ||||||
| `--width W,D` . Here\'s a diagram: | --width W,D . Here's a diagram: | ||||||
| 
 | 
 | ||||||
|     <--------------------------------- width (W) ----------------------------------> |     <--------------------------------- width (W) ----------------------------------> | ||||||
|     date (10)  description (D)       account (W-41-D)     amount (12)   balance (12) |     date (10)  description (D)       account (W-41-D)     amount (12)   balance (12) | ||||||
| @ -99,15 +89,12 @@ description width as part of \--width\'s argument, comma-separated: | |||||||
| 
 | 
 | ||||||
| and some examples: | and some examples: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger reg                     # use terminal width (or 80 on windows) | ||||||
| $ hledger reg                     # use terminal width (or 80 on windows) |     $ hledger reg -w 100              # use width 100 | ||||||
| $ hledger reg -w 100              # use width 100 |     $ COLUMNS=100 hledger reg         # set with one-time environment variable | ||||||
| $ COLUMNS=100 hledger reg         # set with one-time environment variable |     $ export COLUMNS=100; hledger reg # set till session end (or window resize) | ||||||
| $ export COLUMNS=100; hledger reg # set till session end (or window resize) |     $ hledger reg -w 100,40           # set overall width 100, description width 40 | ||||||
| $ hledger reg -w 100,40           # set overall width 100, description width 40 |     $ hledger reg -w $COLUMNS,40      # use terminal width, and set description width | ||||||
| $ hledger reg -w $COLUMNS,40      # use terminal width, and set description width |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| This command also supports [output | This command also supports output destination and output format | ||||||
| destination](/manual.html#output-destination) and [output | selection. | ||||||
| format](/manual.html#output-format) selection. |  | ||||||
|  | |||||||
| @ -1,8 +1,8 @@ | |||||||
| register-match\ | register-match | ||||||
| Print the one posting whose transaction description is closest to DESC, | Print the one posting whose transaction description is closest to DESC, | ||||||
| in the style of the register command. If there are multiple equally good | in the style of the register command. If there are multiple equally good | ||||||
| matches, it shows the most recent. Query options (options, not | matches, it shows the most recent. Query options (options, not | ||||||
| arguments) can be used to restrict the search space. Helps | arguments) can be used to restrict the search space. Helps | ||||||
| ledger-autosync detect already-seen transactions when importing. | ledger-autosync detect already-seen transactions when importing. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
|  | |||||||
| @ -1,15 +1,15 @@ | |||||||
| rewrite\ | rewrite | ||||||
| Print all transactions, rewriting the postings of matched transactions. | Print all transactions, rewriting the postings of matched transactions. | ||||||
| For now the only rewrite available is adding new postings, like print | For now the only rewrite available is adding new postings, like print | ||||||
| \--auto. | --auto. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| This is a start at a generic rewriter of transaction entries. It reads | This is a start at a generic rewriter of transaction entries. It reads | ||||||
| the default journal and prints the transactions, like print, but adds | the default journal and prints the transactions, like print, but adds | ||||||
| one or more specified postings to any transactions matching QUERY. The | one or more specified postings to any transactions matching QUERY. The | ||||||
| posting amounts can be fixed, or a multiplier of the existing | posting amounts can be fixed, or a multiplier of the existing | ||||||
| transaction\'s first posting amount. | transaction's first posting amount. | ||||||
| 
 | 
 | ||||||
| Examples: | Examples: | ||||||
| 
 | 
 | ||||||
| @ -29,116 +29,100 @@ spaces between account and amount. | |||||||
| 
 | 
 | ||||||
| More: | More: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger rewrite -- [QUERY]        --add-posting "ACCT  AMTEXPR" ... | ||||||
| $ hledger rewrite -- [QUERY]        --add-posting "ACCT  AMTEXPR" ... |     $ hledger rewrite -- ^income        --add-posting '(liabilities:tax)  *.33' | ||||||
| $ hledger rewrite -- ^income        --add-posting '(liabilities:tax)  *.33' |     $ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts)  *-1"' | ||||||
| $ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts)  *-1"' |     $ hledger rewrite -- ^income        --add-posting '(budget:foreign currency)  *0.25 JPY; diversify' | ||||||
| $ hledger rewrite -- ^income        --add-posting '(budget:foreign currency)  *0.25 JPY; diversify' |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Argument for `--add-posting` option is a usual posting of transaction | Argument for --add-posting option is a usual posting of transaction with | ||||||
| with an exception for amount specification. More precisely, you can use | an exception for amount specification. More precisely, you can use '*' | ||||||
| `'*'` (star symbol) before the amount to indicate that that this is a | (star symbol) before the amount to indicate that that this is a factor | ||||||
| factor for an amount of original matched posting. If the amount includes | for an amount of original matched posting. If the amount includes a | ||||||
| a commodity name, the new posting amount will be in the new commodity; | commodity name, the new posting amount will be in the new commodity; | ||||||
| otherwise, it will be in the matched posting amount\'s commodity. | otherwise, it will be in the matched posting amount's commodity. | ||||||
| 
 | 
 | ||||||
| #### Re-write rules in a file | Re-write rules in a file | ||||||
| 
 | 
 | ||||||
| During the run this tool will execute so called [\"Automated | During the run this tool will execute so called "Automated Transactions" | ||||||
| Transactions\"](http://ledger-cli.org/3.0/doc/ledger3.html#Automated-Transactions) |  | ||||||
| found in any journal it process. I.e instead of specifying this | found in any journal it process. I.e instead of specifying this | ||||||
| operations in command line you can put them in a journal file. | operations in command line you can put them in a journal file. | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ rewrite-rules.journal | ||||||
| $ rewrite-rules.journal |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Make contents look like this: | Make contents look like this: | ||||||
| 
 | 
 | ||||||
| ``` {.journal} |     = ^income | ||||||
| = ^income |  | ||||||
|         (liabilities:tax)  *.33 |         (liabilities:tax)  *.33 | ||||||
| 
 | 
 | ||||||
| = expenses:gifts |     = expenses:gifts | ||||||
|         budget:gifts  *-1 |         budget:gifts  *-1 | ||||||
|         assets:budget  *1 |         assets:budget  *1 | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Note that `'='` (equality symbol) that is used instead of date in | Note that '=' (equality symbol) that is used instead of date in | ||||||
| transactions you usually write. It indicates the query by which you want | transactions you usually write. It indicates the query by which you want | ||||||
| to match the posting to add new ones. | to match the posting to add new ones. | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger rewrite -- -f input.journal -f rewrite-rules.journal > rewritten-tidy-output.journal | ||||||
| $ hledger rewrite -- -f input.journal -f rewrite-rules.journal > rewritten-tidy-output.journal |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| This is something similar to the commands pipeline: | This is something similar to the commands pipeline: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax)  *.33' \ | ||||||
| $ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax)  *.33' \ |  | ||||||
|       | hledger rewrite -- -f - expenses:gifts      --add-posting 'budget:gifts  *-1'       \ |       | hledger rewrite -- -f - expenses:gifts      --add-posting 'budget:gifts  *-1'       \ | ||||||
|                                                     --add-posting 'assets:budget  *1'       \ |                                                     --add-posting 'assets:budget  *1'       \ | ||||||
|       > rewritten-tidy-output.journal |       > rewritten-tidy-output.journal | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| It is important to understand that relative order of such entries in | It is important to understand that relative order of such entries in | ||||||
| journal is important. You can re-use result of previously added | journal is important. You can re-use result of previously added | ||||||
| postings. | postings. | ||||||
| 
 | 
 | ||||||
| #### Diff output format | Diff output format | ||||||
| 
 | 
 | ||||||
| To use this tool for batch modification of your journal files you may | To use this tool for batch modification of your journal files you may | ||||||
| find useful output in form of unified diff. | find useful output in form of unified diff. | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger rewrite -- --diff -f examples/sample.journal '^income' --add-posting '(liabilities:tax)  *.33' | ||||||
| $ hledger rewrite -- --diff -f examples/sample.journal '^income' --add-posting '(liabilities:tax)  *.33' |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| Output might look like: | Output might look like: | ||||||
| 
 | 
 | ||||||
| ``` {.diff} |     --- /tmp/examples/sample.journal | ||||||
| --- /tmp/examples/sample.journal |     +++ /tmp/examples/sample.journal | ||||||
| +++ /tmp/examples/sample.journal |     @@ -18,3 +18,4 @@ | ||||||
| @@ -18,3 +18,4 @@ |  | ||||||
|      2008/01/01 income |      2008/01/01 income | ||||||
| -    assets:bank:checking  $1 |     -    assets:bank:checking  $1 | ||||||
| +    assets:bank:checking            $1 |     +    assets:bank:checking            $1 | ||||||
|          income:salary |          income:salary | ||||||
| +    (liabilities:tax)                0 |     +    (liabilities:tax)                0 | ||||||
| @@ -22,3 +23,4 @@ |     @@ -22,3 +23,4 @@ | ||||||
|      2008/06/01 gift |      2008/06/01 gift | ||||||
| -    assets:bank:checking  $1 |     -    assets:bank:checking  $1 | ||||||
| +    assets:bank:checking            $1 |     +    assets:bank:checking            $1 | ||||||
|          income:gifts |          income:gifts | ||||||
| +    (liabilities:tax)                0 |     +    (liabilities:tax)                0 | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| If you\'ll pass this through `patch` tool you\'ll get transactions | If you'll pass this through patch tool you'll get transactions | ||||||
| containing the posting that matches your query be updated. Note that | containing the posting that matches your query be updated. Note that | ||||||
| multiple files might be update according to list of input files | multiple files might be update according to list of input files | ||||||
| specified via `--file` options and `include` directives inside of these | specified via --file options and include directives inside of these | ||||||
| files. | files. | ||||||
| 
 | 
 | ||||||
| Be careful. Whole transaction being re-formatted in a style of output | Be careful. Whole transaction being re-formatted in a style of output | ||||||
| from `hledger print`. | from hledger print. | ||||||
| 
 | 
 | ||||||
| See also: | See also: | ||||||
| 
 | 
 | ||||||
| https://github.com/simonmichael/hledger/issues/99 | https://github.com/simonmichael/hledger/issues/99 | ||||||
| 
 | 
 | ||||||
| #### rewrite vs. print \--auto | rewrite vs. print --auto | ||||||
| 
 | 
 | ||||||
| This command predates print \--auto, and currently does much the same | This command predates print --auto, and currently does much the same | ||||||
| thing, but with these differences: | thing, but with these differences: | ||||||
| 
 | 
 | ||||||
| -   with multiple files, rewrite lets rules in any file affect all other | -   with multiple files, rewrite lets rules in any file affect all other | ||||||
|     files. print \--auto uses standard directive scoping; rules affect |     files. print --auto uses standard directive scoping; rules affect | ||||||
|     only child files. |     only child files. | ||||||
| 
 | 
 | ||||||
| -   rewrite\'s query limits which transactions can be rewritten; all are | -   rewrite's query limits which transactions can be rewritten; all are | ||||||
|     printed. print \--auto\'s query limits which transactions are |     printed. print --auto's query limits which transactions are printed. | ||||||
|     printed. |  | ||||||
| 
 | 
 | ||||||
| -   rewrite applies rules specified on command line or in the journal. | -   rewrite applies rules specified on command line or in the journal. | ||||||
|     print \--auto applies rules specified in the journal. |     print --auto applies rules specified in the journal. | ||||||
|  | |||||||
| @ -1,8 +1,8 @@ | |||||||
| roi\ | roi | ||||||
| Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on | Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on | ||||||
| your investments. | your investments. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| This command assumes that you have account(s) that hold nothing but your | This command assumes that you have account(s) that hold nothing but your | ||||||
| investments and whenever you record current appraisal/valuation of these | investments and whenever you record current appraisal/valuation of these | ||||||
| @ -14,8 +14,8 @@ originating from unrealized profit and loss account(s) are assumed to be | |||||||
| your investments or withdrawals. | your investments or withdrawals. | ||||||
| 
 | 
 | ||||||
| At a minimum, you need to supply a query (which could be just an account | At a minimum, you need to supply a query (which could be just an account | ||||||
| name) to select your investments with `--inv`, and another query to | name) to select your investments with --inv, and another query to | ||||||
| identify your profit and loss transactions with `--pnl`. | identify your profit and loss transactions with --pnl. | ||||||
| 
 | 
 | ||||||
| It will compute and display the internalized rate of return (IRR) and | It will compute and display the internalized rate of return (IRR) and | ||||||
| time-weighted rate of return (TWR) for your investments for the time | time-weighted rate of return (TWR) for your investments for the time | ||||||
|  | |||||||
| @ -1,28 +1,25 @@ | |||||||
| stats\ | stats | ||||||
| Show some journal statistics. | Show some journal statistics. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| The stats command displays summary information for the whole journal, or | The stats command displays summary information for the whole journal, or | ||||||
| a matched part of it. With a [reporting interval](#reporting-interval), | a matched part of it. With a reporting interval, it shows a report for | ||||||
| it shows a report for each report period. | each report period. | ||||||
| 
 | 
 | ||||||
| Example: | Example: | ||||||
| 
 | 
 | ||||||
| ``` {.shell} |     $ hledger stats | ||||||
| $ hledger stats |     Main journal file        : /src/hledger/examples/sample.journal | ||||||
| Main journal file        : /src/hledger/examples/sample.journal |     Included journal files   :  | ||||||
| Included journal files   :  |     Transactions span        : 2008-01-01 to 2009-01-01 (366 days) | ||||||
| Transactions span        : 2008-01-01 to 2009-01-01 (366 days) |     Last transaction         : 2008-12-31 (2333 days ago) | ||||||
| Last transaction         : 2008-12-31 (2333 days ago) |     Transactions             : 5 (0.0 per day) | ||||||
| Transactions             : 5 (0.0 per day) |     Transactions last 30 days: 0 (0.0 per day) | ||||||
| Transactions last 30 days: 0 (0.0 per day) |     Transactions last 7 days : 0 (0.0 per day) | ||||||
| Transactions last 7 days : 0 (0.0 per day) |     Payees/descriptions      : 5 | ||||||
| Payees/descriptions      : 5 |     Accounts                 : 8 (depth 3) | ||||||
| Accounts                 : 8 (depth 3) |     Commodities              : 1 ($) | ||||||
| Commodities              : 1 ($) |  | ||||||
| ``` |  | ||||||
| 
 | 
 | ||||||
| This command also supports [output | This command also supports output destination and output format | ||||||
| destination](/manual.html#output-destination) and [output | selection. | ||||||
| format](/manual.html#output-format) selection. |  | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| tags\ | tags | ||||||
| List all the tag names used in the journal. With a TAGREGEX argument, | List all the tag names used in the journal. With a TAGREGEX argument, | ||||||
| only tag names matching the regular expression (case insensitive) are | only tag names matching the regular expression (case insensitive) are | ||||||
| shown. With QUERY arguments, only transactions matching the query are | shown. With QUERY arguments, only transactions matching the query are | ||||||
| considered. | considered. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| test\ | test | ||||||
| Run built-in unit tests. | Run built-in unit tests. | ||||||
| 
 | 
 | ||||||
| *FLAGS* | _FLAGS_ | ||||||
| 
 | 
 | ||||||
| This command runs the unit tests built in to hledger-lib and hledger, | This command runs the unit tests built in to hledger-lib and hledger, | ||||||
| printing test names and results on stdout. If any test fails, the exit | printing test names and results on stdout. If any test fails, the exit | ||||||
| @ -15,7 +15,7 @@ If a numeric second argument is provided, it will set the randomness | |||||||
| seed, for repeatable results from tests using randomness (currently none | seed, for repeatable results from tests using randomness (currently none | ||||||
| of them). | of them). | ||||||
| 
 | 
 | ||||||
| This is mainly used by developers, but it\'s nice to be able to | This is mainly used by developers, but it's nice to be able to | ||||||
| sanity-check your installed hledger executable at any time. All tests | sanity-check your installed hledger executable at any time. All tests | ||||||
| are expected to pass - if you ever see otherwise, something has gone | are expected to pass - if you ever see otherwise, something has gone | ||||||
| wrong, please report a bug! | wrong, please report a bug! | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user