;bal: doc: tweak
(cherry picked from commit 1dda703651ffe64dcf14c6a026fdead836224d1b)
This commit is contained in:
		
							parent
							
								
									50a7914b3b
								
							
						
					
					
						commit
						b5ab5ac9bc
					
				| @ -96,130 +96,6 @@ Each group of sibling accounts is sorted separately, | |||||||
| by [declaration order](https://hledger.org/hledger.html#declaring-accounts)  | by [declaration order](https://hledger.org/hledger.html#declaring-accounts)  | ||||||
| and then by account name. | and then by account name. | ||||||
| 
 | 
 | ||||||
| ### Customising single-period balance reports |  | ||||||
| 
 |  | ||||||
| You can customise the layout of single-period balance reports with `--format FMT`, |  | ||||||
| which sets the format of each line. Eg: |  | ||||||
| 
 |  | ||||||
| ```shell |  | ||||||
| $ hledger balance --format "%20(account) %12(total)" |  | ||||||
|               assets          $-1 |  | ||||||
|          bank:saving           $1 |  | ||||||
|                 cash          $-2 |  | ||||||
|             expenses           $2 |  | ||||||
|                 food           $1 |  | ||||||
|             supplies           $1 |  | ||||||
|               income          $-2 |  | ||||||
|                gifts          $-1 |  | ||||||
|               salary          $-1 |  | ||||||
|    liabilities:debts           $1 |  | ||||||
| --------------------------------- |  | ||||||
|                                 0 |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| The FMT format string (plus a newline) specifies the formatting |  | ||||||
| applied to each account/balance pair. It may contain any suitable |  | ||||||
| text, with data fields interpolated like so: |  | ||||||
| 
 |  | ||||||
| `%[MIN][.MAX](FIELDNAME)` |  | ||||||
| 
 |  | ||||||
| - MIN pads with spaces to at least this width (optional) |  | ||||||
| - MAX truncates at this width (optional) |  | ||||||
| - FIELDNAME must be enclosed in parentheses, and can be one of: |  | ||||||
| 
 |  | ||||||
|     - `depth_spacer` - a number of spaces equal to the account's depth, or if MIN is specified, MIN * depth spaces. |  | ||||||
|     - `account`      - the account's name |  | ||||||
|     - `total`        - the account's balance/posted total, right justified |  | ||||||
| 
 |  | ||||||
| Also, FMT can begin with an optional prefix to control how |  | ||||||
| multi-commodity amounts are rendered: |  | ||||||
| 
 |  | ||||||
| - `%_` - render on multiple lines, bottom-aligned (the default) |  | ||||||
| - `%^` - render on multiple lines, top-aligned |  | ||||||
| - `%,` - render on one line, comma-separated |  | ||||||
| 
 |  | ||||||
| There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no |  | ||||||
| effect, instead `%(account)` has indentation built in. |  | ||||||
| <!-- XXX retest: |  | ||||||
| Consistent column widths are not well enforced, causing ragged edges unless you set suitable widths. |  | ||||||
| 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: |  | ||||||
| 
 |  | ||||||
| - `%(total)`         - the account's total |  | ||||||
| - `%-20.20(account)` - the account's name, left justified, padded to 20 characters and clipped at 20 characters |  | ||||||
| - `%,%-50(account)  %25(total)` - account name padded to 50 characters, total padded to 20 characters, with multiple commodities rendered on one line |  | ||||||
| - `%20(total)  %2(depth_spacer)%-(account)` - the default format for the single-column balance report |  | ||||||
| 
 |  | ||||||
| ### Depth limiting |  | ||||||
| 
 |  | ||||||
| With a `depth:N` query, or `--depth N` option, or just `-N`,  |  | ||||||
| balance reports will show accounts only to the specified depth. |  | ||||||
| This is very useful to hide low-level accounts and get an overview. |  | ||||||
| Eg, limiting to depth 1 shows the top-level accounts: |  | ||||||
| ```shell |  | ||||||
| $ hledger balance -N -1 |  | ||||||
|                  $-1  assets |  | ||||||
|                   $2  expenses |  | ||||||
|                  $-2  income |  | ||||||
|                   $1  liabilities |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| Accounts at the depth limit will include the balances of any hidden subaccounts |  | ||||||
| (even in flat mode, which normally shows exclusive balances). |  | ||||||
| 
 |  | ||||||
| You can also drop account name components from the start of account names, |  | ||||||
| using `--drop N`. This can be useful to hide unwanted top-level detail. |  | ||||||
| 
 |  | ||||||
| ### Colour support |  | ||||||
| 
 |  | ||||||
| In terminal output, when colour is enabled, the balance command shows negative amounts in red. |  | ||||||
| 
 |  | ||||||
| ### Sorting by amount |  | ||||||
| 
 |  | ||||||
| With `-S`/`--sort-amount`, accounts with the largest (most positive) balances are shown first. |  | ||||||
| For example, `hledger bal expenses -MAS` shows your biggest averaged monthly expenses first. |  | ||||||
| 
 |  | ||||||
| Revenues and liability balances are typically negative, however, so `-S` shows these in reverse order. |  | ||||||
| To work around this, you can add `--invert` to flip the signs. |  | ||||||
| Or, use one of the sign-flipping reports like `balancesheet` or `incomestatement`,  |  | ||||||
| which also support `-S`. Eg: `hledger is -MAS`. |  | ||||||
| 
 |  | ||||||
| ### Percentages |  | ||||||
| 
 |  | ||||||
| With `-%` or `--percent`, balance reports show each account's value expressed |  | ||||||
| as a percentage of the column's total. This is useful to get an overview of |  | ||||||
| the relative sizes of account balances. For example to obtain an overview of |  | ||||||
| expenses: |  | ||||||
| 
 |  | ||||||
| ```shell |  | ||||||
| $ hledger balance expenses -% |  | ||||||
|              100.0 %  expenses |  | ||||||
|               50.0 %    food |  | ||||||
|               50.0 %    supplies |  | ||||||
| -------------------- |  | ||||||
|              100.0 % |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| Note that `--tree` does not have an effect on `-%`. The percentages are always |  | ||||||
| relative to the total sum of each column, they are never relative to the parent |  | ||||||
| account. |  | ||||||
| 
 |  | ||||||
| Since the percentages are relative to the columns sum, it is usually not useful |  | ||||||
| to calculate percentages if the signs of the amounts are mixed. Although the |  | ||||||
| results are technically correct, they are most likely useless. Especially in |  | ||||||
| a balance report that sums up to zero (eg `hledger balance -B`) all percentage |  | ||||||
| values will be zero. |  | ||||||
| 
 |  | ||||||
| This flag does not work if the report contains any mixed commodity accounts. If |  | ||||||
| there are mixed commodity accounts in the report be sure to use `-V` |  | ||||||
| or `-B` to coerce the report into using a single commodity. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| <a name="multicolumn-balance-report"></a> |  | ||||||
| 
 |  | ||||||
| ### Multi-period balance report | ### Multi-period balance report | ||||||
| 
 | 
 | ||||||
| Multi-period balance reports are a very useful hledger feature, activated | Multi-period balance reports are a very useful hledger feature, activated | ||||||
| @ -348,13 +224,137 @@ When the report is still too wide, a good workaround is to pipe it | |||||||
| into `less -RS` (-R for colour, -S to chop long lines).  | into `less -RS` (-R for colour, -S to chop long lines).  | ||||||
| Eg: `hledger bal -D --color=yes | less -RS`. | Eg: `hledger bal -D --color=yes | less -RS`. | ||||||
| 
 | 
 | ||||||
|  | ### Depth limiting | ||||||
|  | 
 | ||||||
|  | With a `depth:N` query, or `--depth N` option, or just `-N`,  | ||||||
|  | balance reports will show accounts only to the specified depth. | ||||||
|  | This is very useful to hide low-level accounts and get an overview. | ||||||
|  | Eg, limiting to depth 1 shows the top-level accounts: | ||||||
|  | ```shell | ||||||
|  | $ hledger balance -N -1 | ||||||
|  |                  $-1  assets | ||||||
|  |                   $2  expenses | ||||||
|  |                  $-2  income | ||||||
|  |                   $1  liabilities | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Accounts at the depth limit will include the balances of any hidden subaccounts | ||||||
|  | (even in flat mode, which normally shows exclusive balances). | ||||||
|  | 
 | ||||||
|  | You can also drop account name components from the start of account names, | ||||||
|  | using `--drop N`. This can be useful to hide unwanted top-level detail. | ||||||
|  | 
 | ||||||
|  | ### Colour support | ||||||
|  | 
 | ||||||
|  | In terminal output, when colour is enabled, the balance command shows negative amounts in red. | ||||||
|  | 
 | ||||||
|  | ### Sorting by amount | ||||||
|  | 
 | ||||||
|  | With `-S`/`--sort-amount`, accounts with the largest (most positive) balances are shown first. | ||||||
|  | For example, `hledger bal expenses -MAS` shows your biggest averaged monthly expenses first. | ||||||
|  | 
 | ||||||
|  | Revenues and liability balances are typically negative, however, so `-S` shows these in reverse order. | ||||||
|  | To work around this, you can add `--invert` to flip the signs. | ||||||
|  | Or, use one of the sign-flipping reports like `balancesheet` or `incomestatement`,  | ||||||
|  | which also support `-S`. Eg: `hledger is -MAS`. | ||||||
|  | 
 | ||||||
|  | ### Percentages | ||||||
|  | 
 | ||||||
|  | With `-%` or `--percent`, balance reports show each account's value expressed | ||||||
|  | as a percentage of the column's total. This is useful to get an overview of | ||||||
|  | the relative sizes of account balances. For example to obtain an overview of | ||||||
|  | expenses: | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | $ hledger balance expenses -% | ||||||
|  |              100.0 %  expenses | ||||||
|  |               50.0 %    food | ||||||
|  |               50.0 %    supplies | ||||||
|  | -------------------- | ||||||
|  |              100.0 % | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Note that `--tree` does not have an effect on `-%`. The percentages are always | ||||||
|  | relative to the total sum of each column, they are never relative to the parent | ||||||
|  | account. | ||||||
|  | 
 | ||||||
|  | Since the percentages are relative to the columns sum, it is usually not useful | ||||||
|  | to calculate percentages if the signs of the amounts are mixed. Although the | ||||||
|  | results are technically correct, they are most likely useless. Especially in | ||||||
|  | a balance report that sums up to zero (eg `hledger balance -B`) all percentage | ||||||
|  | values will be zero. | ||||||
|  | 
 | ||||||
|  | This flag does not work if the report contains any mixed commodity accounts. If | ||||||
|  | there are mixed commodity accounts in the report be sure to use `-V` | ||||||
|  | or `-B` to coerce the report into using a single commodity. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <a name="multicolumn-balance-report"></a> | ||||||
|  | 
 | ||||||
|  | ### Customising single-period balance reports | ||||||
|  | 
 | ||||||
|  | You can customise the layout of single-period balance reports with `--format FMT`, | ||||||
|  | which sets the format of each line. Eg: | ||||||
|  | 
 | ||||||
|  | ```shell | ||||||
|  | $ hledger balance --format "%20(account) %12(total)" | ||||||
|  |               assets          $-1 | ||||||
|  |          bank:saving           $1 | ||||||
|  |                 cash          $-2 | ||||||
|  |             expenses           $2 | ||||||
|  |                 food           $1 | ||||||
|  |             supplies           $1 | ||||||
|  |               income          $-2 | ||||||
|  |                gifts          $-1 | ||||||
|  |               salary          $-1 | ||||||
|  |    liabilities:debts           $1 | ||||||
|  | --------------------------------- | ||||||
|  |                                 0 | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | The FMT format string (plus a newline) specifies the formatting | ||||||
|  | applied to each account/balance pair. It may contain any suitable | ||||||
|  | text, with data fields interpolated like so: | ||||||
|  | 
 | ||||||
|  | `%[MIN][.MAX](FIELDNAME)` | ||||||
|  | 
 | ||||||
|  | - MIN pads with spaces to at least this width (optional) | ||||||
|  | - MAX truncates at this width (optional) | ||||||
|  | - FIELDNAME must be enclosed in parentheses, and can be one of: | ||||||
|  | 
 | ||||||
|  |     - `depth_spacer` - a number of spaces equal to the account's depth, or if MIN is specified, MIN * depth spaces. | ||||||
|  |     - `account`      - the account's name | ||||||
|  |     - `total`        - the account's balance/posted total, right justified | ||||||
|  | 
 | ||||||
|  | Also, FMT can begin with an optional prefix to control how | ||||||
|  | multi-commodity amounts are rendered: | ||||||
|  | 
 | ||||||
|  | - `%_` - render on multiple lines, bottom-aligned (the default) | ||||||
|  | - `%^` - render on multiple lines, top-aligned | ||||||
|  | - `%,` - render on one line, comma-separated | ||||||
|  | 
 | ||||||
|  | There are some quirks. Eg in one-line mode, `%(depth_spacer)` has no | ||||||
|  | effect, instead `%(account)` has indentation built in. | ||||||
|  | <!-- XXX retest: | ||||||
|  | Consistent column widths are not well enforced, causing ragged edges unless you set suitable widths. | ||||||
|  | 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: | ||||||
|  | 
 | ||||||
|  | - `%(total)`         - the account's total | ||||||
|  | - `%-20.20(account)` - the account's name, left justified, padded to 20 characters and clipped at 20 characters | ||||||
|  | - `%,%-50(account)  %25(total)` - account name padded to 50 characters, total padded to 20 characters, with multiple commodities rendered on one line | ||||||
|  | - `%20(total)  %2(depth_spacer)%-(account)` - the default format for the single-column balance report | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| ### Budget report | ### Budget report | ||||||
| 
 | 
 | ||||||
| With `--budget`, extra columns are displayed showing budget goals for each account and period, if any. | There is also a special balance report mode for showing budget performance. | ||||||
| Budget goals are defined by [periodic transactions](hledger.html#periodic-transactions). | The `--budget` flag activates extra columns showing the budget goals for each account and period, if any. | ||||||
|  | For this report, budget goals are defined by [periodic transactions](journal.html#periodic-transactions). | ||||||
| This is very useful for comparing planned and actual income, expenses, time usage, etc. | This is very useful for comparing planned and actual income, expenses, time usage, etc. | ||||||
| --budget is most often combined with a [report interval](hledger.html#report-intervals). |  | ||||||
| 
 | 
 | ||||||
| For example, you can take average monthly expenses in the common expense categories to construct a minimal monthly budget: | For example, you can take average monthly expenses in the common expense categories to construct a minimal monthly budget: | ||||||
| ```journal | ```journal | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user