;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