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]
|
||||
cmd Shell
|
||||
-- "m4 -P -DHELP -I" commandsdir lib src "|"
|
||||
pandoc fromsrcmd src "-o" out
|
||||
pandoc fromsrcmd src "-t plain" "-o" out
|
||||
|
||||
-- MISC
|
||||
|
||||
|
||||
@ -1,27 +1,24 @@
|
||||
accounts, a\
|
||||
accounts, a
|
||||
Show account names.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
This command lists account names, either declared with account
|
||||
directives (\--declared), posted to (\--used), or both (the default).
|
||||
With query arguments, only matched account names and account names
|
||||
referenced by matched postings are shown. It shows a flat list by
|
||||
default. With `--tree`, it uses indentation to show the account
|
||||
hierarchy. In flat mode you can add `--drop N` to omit the first few
|
||||
account name components. Account names can be depth-clipped with
|
||||
`depth:N` or `--depth N` or `-N`.
|
||||
directives (--declared), posted to (--used), or both (the default). With
|
||||
query arguments, only matched account names and account names referenced
|
||||
by matched postings are shown. It shows a flat list by default. With
|
||||
--tree, it uses indentation to show the account hierarchy. In flat mode
|
||||
you can add --drop N to omit the first few account name components.
|
||||
Account names can be depth-clipped with depth:N or --depth N or -N.
|
||||
|
||||
Examples:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger accounts
|
||||
assets:bank:checking
|
||||
assets:bank:saving
|
||||
assets:cash
|
||||
expenses:food
|
||||
expenses:supplies
|
||||
income:gifts
|
||||
income:salary
|
||||
liabilities:debts
|
||||
```
|
||||
$ hledger accounts
|
||||
assets:bank:checking
|
||||
assets:bank:saving
|
||||
assets:cash
|
||||
expenses:food
|
||||
expenses:supplies
|
||||
income:gifts
|
||||
income:salary
|
||||
liabilities:debts
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
activity\
|
||||
activity
|
||||
Show an ascii barchart of posting counts per interval.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
The activity command displays an ascii histogram showing transaction
|
||||
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:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger activity --quarterly
|
||||
2008-01-01 **
|
||||
2008-04-01 *******
|
||||
2008-07-01
|
||||
2008-10-01 **
|
||||
```
|
||||
$ hledger activity --quarterly
|
||||
2008-01-01 **
|
||||
2008-04-01 *******
|
||||
2008-07-01
|
||||
2008-10-01 **
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
add\
|
||||
add
|
||||
Prompt for transactions and add them to the journal.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
Many hledger users edit their journals directly with a text editor, or
|
||||
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
|
||||
multiple `-f FILE` options, the first file is used.) Existing
|
||||
transactions are not changed. This is the only hledger command that
|
||||
writes to the journal file.
|
||||
multiple -f FILE options, the first file is used.) Existing transactions
|
||||
are not changed. This is the only hledger command that writes to the
|
||||
journal file.
|
||||
|
||||
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
|
||||
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
|
||||
control-d or control-c to exit.
|
||||
|
||||
Features:
|
||||
@ -21,50 +21,42 @@ Features:
|
||||
description) recent transaction (filtered by the query, if any) as a
|
||||
template.
|
||||
- You can also set the initial defaults with command line arguments.
|
||||
- [Readline-style edit
|
||||
keys](http://tiswww.case.edu/php/chet/readline/rluserman.html#SEC3)
|
||||
can be used during data entry.
|
||||
- Readline-style edit keys can be used during data entry.
|
||||
- The tab key will auto-complete whenever possible - accounts,
|
||||
descriptions, dates (`yesterday`, `today`, `tomorrow`). If the input
|
||||
area is empty, it will insert the default value.
|
||||
- If the journal defines a [default commodity](#default-commodity), it
|
||||
will be added to any bare numbers entered.
|
||||
- A parenthesised transaction [code](#entries) may be entered
|
||||
following a date.
|
||||
- [Comments](#comments) and tags may be entered following a
|
||||
description or amount.
|
||||
- If you make a mistake, enter `<` at any prompt to restart the
|
||||
descriptions, dates (yesterday, today, tomorrow). If the input area
|
||||
is empty, it will insert the default value.
|
||||
- If the journal defines a default commodity, it will be added to any
|
||||
bare numbers entered.
|
||||
- A parenthesised transaction code may be entered following a date.
|
||||
- Comments and tags may be entered following a description or amount.
|
||||
- If you make a mistake, enter < at any prompt to restart the
|
||||
transaction.
|
||||
- Input prompts are displayed in a different colour when the terminal
|
||||
supports it.
|
||||
|
||||
Example (see the
|
||||
[tutorial](step-by-step.html#record-a-transaction-with-hledger-add) for
|
||||
a detailed explanation):
|
||||
Example (see the tutorial for a detailed explanation):
|
||||
|
||||
``` {.shell}
|
||||
$ hledger add
|
||||
Adding transactions to journal file /src/hledger/examples/sample.journal
|
||||
Any command line arguments will be used as defaults.
|
||||
Use tab key to complete, readline keys to edit, enter to accept defaults.
|
||||
An optional (CODE) may follow transaction dates.
|
||||
An optional ; COMMENT may follow descriptions or amounts.
|
||||
If you make a mistake, enter < at any prompt to restart the transaction.
|
||||
To end a transaction, enter . when prompted.
|
||||
To quit, enter . at a date prompt or press control-d or control-c.
|
||||
Date [2015/05/22]:
|
||||
Description: supermarket
|
||||
Account 1: expenses:food
|
||||
Amount 1: $10
|
||||
Account 2: assets:checking
|
||||
Amount 2 [$-10.0]:
|
||||
Account 3 (or . or enter to finish this transaction): .
|
||||
2015/05/22 supermarket
|
||||
expenses:food $10
|
||||
assets:checking $-10.0
|
||||
$ hledger add
|
||||
Adding transactions to journal file /src/hledger/examples/sample.journal
|
||||
Any command line arguments will be used as defaults.
|
||||
Use tab key to complete, readline keys to edit, enter to accept defaults.
|
||||
An optional (CODE) may follow transaction dates.
|
||||
An optional ; COMMENT may follow descriptions or amounts.
|
||||
If you make a mistake, enter < at any prompt to restart the transaction.
|
||||
To end a transaction, enter . when prompted.
|
||||
To quit, enter . at a date prompt or press control-d or control-c.
|
||||
Date [2015/05/22]:
|
||||
Description: supermarket
|
||||
Account 1: expenses:food
|
||||
Amount 1: $10
|
||||
Account 2: assets:checking
|
||||
Amount 2 [$-10.0]:
|
||||
Account 3 (or . or enter to finish this transaction): .
|
||||
2015/05/22 supermarket
|
||||
expenses:food $10
|
||||
assets:checking $-10.0
|
||||
|
||||
Save this transaction to the journal ? [y]:
|
||||
Saved.
|
||||
Starting the next transaction (. or ctrl-D/ctrl-C to quit)
|
||||
Date [2015/05/22]: <CTRL-D> $
|
||||
```
|
||||
Save this transaction to the journal ? [y]:
|
||||
Saved.
|
||||
Starting the next transaction (. or ctrl-D/ctrl-C to quit)
|
||||
Date [2015/05/22]: <CTRL-D> $
|
||||
|
||||
@ -1,416 +1,375 @@
|
||||
balance, bal, b\
|
||||
balance, bal, b
|
||||
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 more accounting-aware [balancesheet](#balancesheet) and
|
||||
[incomestatement](#incomestatement) may be more convenient for that.
|
||||
the more accounting-aware balancesheet and incomestatement may be more
|
||||
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
|
||||
calculated by adding up the postings in each account. You can limit the
|
||||
postings matched, by a [query](#queries), to see fewer accounts, changes
|
||||
over a different time period, changes from only cleared transactions,
|
||||
etc.
|
||||
postings matched, by a query, to see fewer accounts, changes over a
|
||||
different time period, changes from only cleared transactions, etc.
|
||||
|
||||
If you include an account\'s complete history of postings in the report,
|
||||
the balance change is equivalent to the account\'s current ending
|
||||
balance. For a real-world account, typically you won\'t have all
|
||||
transactions in the journal; instead you\'ll have all transactions after
|
||||
a certain date, and an \"opening balances\" transaction setting the
|
||||
If you include an account's complete history of postings in the report,
|
||||
the balance change is equivalent to the account's current ending
|
||||
balance. For a real-world account, typically you won't have all
|
||||
transactions in the journal; instead you'll have all transactions after
|
||||
a certain date, and an "opening balances" transaction setting the
|
||||
correct starting balance on that date. Then the balance command will
|
||||
show real-world account balances. In some cases the -H/\--historical
|
||||
flag is used to ensure this (more below).
|
||||
show real-world account balances. In some cases the -H/--historical flag
|
||||
is used to ensure this (more below).
|
||||
|
||||
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
|
||||
looks like this:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance
|
||||
$-1 assets
|
||||
$1 bank:saving
|
||||
$-2 cash
|
||||
$2 expenses
|
||||
$1 food
|
||||
$1 supplies
|
||||
$-2 income
|
||||
$-1 gifts
|
||||
$-1 salary
|
||||
$1 liabilities:debts
|
||||
--------------------
|
||||
0
|
||||
```
|
||||
$ hledger balance
|
||||
$-1 assets
|
||||
$1 bank:saving
|
||||
$-2 cash
|
||||
$2 expenses
|
||||
$1 food
|
||||
$1 supplies
|
||||
$-2 income
|
||||
$-1 gifts
|
||||
$-1 salary
|
||||
$1 liabilities:debts
|
||||
--------------------
|
||||
0
|
||||
|
||||
By default, accounts are displayed hierarchically, with subaccounts
|
||||
indented below their parent. At each level of the tree, accounts are
|
||||
sorted by [account code](/manual.html#declaring-accounts) if any, then
|
||||
by account name. Or with `-S/--sort-amount`, by their balance amount.
|
||||
sorted by account code if any, then by account name. Or with
|
||||
-S/--sort-amount, by their balance amount.
|
||||
|
||||
\"Boring\" accounts, which contain a single interesting subaccount and
|
||||
no balance of their own, are elided into the following line for more
|
||||
compact output. (Eg above, the \"liabilities\" account.) Use
|
||||
`--no-elide` to prevent this.
|
||||
"Boring" accounts, which contain a single interesting subaccount and no
|
||||
balance of their own, are elided into the following line for more
|
||||
compact output. (Eg above, the "liabilities" account.) Use --no-elide to
|
||||
prevent this.
|
||||
|
||||
Account balances are \"inclusive\" - they include the balances of any
|
||||
Account balances are "inclusive" - they include the balances of any
|
||||
subaccounts.
|
||||
|
||||
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
|
||||
it, eg:
|
||||
A final total is displayed by default; use -N/--no-total to suppress it,
|
||||
eg:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance -p 2008/6 expenses --no-total
|
||||
$2 expenses
|
||||
$1 food
|
||||
$1 supplies
|
||||
```
|
||||
$ hledger balance -p 2008/6 expenses --no-total
|
||||
$2 expenses
|
||||
$1 food
|
||||
$1 supplies
|
||||
|
||||
### Customising the classic balance report
|
||||
Customising the classic balance report
|
||||
|
||||
You can customise the layout of classic balance reports with
|
||||
`--format FMT`:
|
||||
--format FMT:
|
||||
|
||||
``` {.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
|
||||
```
|
||||
$ 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][.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
|
||||
- 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
|
||||
- %_ - 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.
|
||||
There are some quirks. Eg in one-line mode, %(depth_spacer) has no
|
||||
effect, instead %(account) has indentation built in. 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
|
||||
- %(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
|
||||
|
||||
### Colour support
|
||||
Colour support
|
||||
|
||||
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
|
||||
|
||||
### Flat mode
|
||||
Flat mode
|
||||
|
||||
To see a flat list instead of the default hierarchical display, use
|
||||
`--flat`. In this mode, accounts (unless depth-clipped) show their full
|
||||
names and \"exclusive\" balance, excluding any subaccount balances. In
|
||||
this mode, you can also use `--drop N` to omit the first few account
|
||||
name components.
|
||||
--flat. In this mode, accounts (unless depth-clipped) show their full
|
||||
names and "exclusive" balance, excluding any subaccount balances. In
|
||||
this mode, you can also use --drop N to omit the first few account name
|
||||
components.
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance -p 2008/6 expenses -N --flat --drop 1
|
||||
$1 food
|
||||
$1 supplies
|
||||
```
|
||||
$ hledger balance -p 2008/6 expenses -N --flat --drop 1
|
||||
$1 food
|
||||
$1 supplies
|
||||
|
||||
### Depth limited balance reports
|
||||
Depth limited balance reports
|
||||
|
||||
With `--depth N` or `depth:N` or just `-N`, balance reports show
|
||||
accounts only to the specified numeric depth. This is very useful to
|
||||
summarise a complex set of accounts and get an overview.
|
||||
With --depth N or depth:N or just -N, balance reports show accounts only
|
||||
to the specified numeric depth. This is very useful to summarise a
|
||||
complex set of accounts and get an overview.
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance -N -1
|
||||
$-1 assets
|
||||
$2 expenses
|
||||
$-2 income
|
||||
$1 liabilities
|
||||
```
|
||||
$ hledger balance -N -1
|
||||
$-1 assets
|
||||
$2 expenses
|
||||
$-2 income
|
||||
$1 liabilities
|
||||
|
||||
Flat-mode balance reports, which normally show exclusive balances, show
|
||||
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
|
||||
feature, and usually the preferred style. They share many of the above
|
||||
features, but they show the report as a table, with columns representing
|
||||
time periods. This mode is activated by providing a [reporting
|
||||
interval](#reporting-interval).
|
||||
time periods. This mode is activated by providing a reporting interval.
|
||||
|
||||
There are three types of multicolumn balance report, showing different
|
||||
information:
|
||||
|
||||
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
|
||||
for a monthly income statement: <!--
|
||||
multicolumn income statement:
|
||||
the account's change of balance in that period. This is useful eg
|
||||
for a monthly income statement:
|
||||
|
||||
$ hledger balance ^income ^expense -p 'monthly this year' --depth 3
|
||||
$ hledger balance --quarterly income expenses -E
|
||||
Balance changes in 2008:
|
||||
|
||||
or cashflow statement:
|
||||
|| 2008q1 2008q2 2008q3 2008q4
|
||||
===================++=================================
|
||||
expenses:food || 0 $1 0 0
|
||||
expenses:supplies || 0 $1 0 0
|
||||
income:gifts || 0 $-1 0 0
|
||||
income:salary || $-1 0 0 0
|
||||
-------------------++---------------------------------
|
||||
|| $-1 $1 0 0
|
||||
|
||||
$ hledger balance ^assets ^liabilities 'not:(receivable|payable)' -p 'weekly this month'
|
||||
-->
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance --quarterly income expenses -E
|
||||
Balance changes in 2008:
|
||||
|
||||
|| 2008q1 2008q2 2008q3 2008q4
|
||||
===================++=================================
|
||||
expenses:food || 0 $1 0 0
|
||||
expenses:supplies || 0 $1 0 0
|
||||
income:gifts || 0 $-1 0 0
|
||||
income:salary || $-1 0 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
|
||||
the report start date:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance --quarterly income expenses -E --cumulative
|
||||
Ending balances (cumulative) in 2008:
|
||||
$ hledger balance --quarterly income expenses -E --cumulative
|
||||
Ending balances (cumulative) in 2008:
|
||||
|
||||
|| 2008/03/31 2008/06/30 2008/09/30 2008/12/31
|
||||
===================++=================================================
|
||||
expenses:food || 0 $1 $1 $1
|
||||
expenses:supplies || 0 $1 $1 $1
|
||||
income:gifts || 0 $-1 $-1 $-1
|
||||
income:salary || $-1 $-1 $-1 $-1
|
||||
-------------------++-------------------------------------------------
|
||||
|| $-1 0 0 0
|
||||
```
|
||||
|| 2008/03/31 2008/06/30 2008/09/30 2008/12/31
|
||||
===================++=================================================
|
||||
expenses:food || 0 $1 $1 $1
|
||||
expenses:supplies || 0 $1 $1 $1
|
||||
income:gifts || 0 $-1 $-1 $-1
|
||||
income:salary || $-1 $-1 $-1 $-1
|
||||
-------------------++-------------------------------------------------
|
||||
|| $-1 0 0 0
|
||||
|
||||
3. With `--historical/-H`: each column shows the actual historical
|
||||
ending balance for that period, accumulating the changes across
|
||||
periods, starting from the actual balance at the report start date.
|
||||
This is useful eg for a multi-period balance sheet, and when you are
|
||||
showing only the data after a certain start date:
|
||||
3. With --historical/-H: each column shows the actual historical ending
|
||||
balance for that period, accumulating the changes across periods,
|
||||
starting from the actual balance at the report start date. This is
|
||||
useful eg for a multi-period balance sheet, and when you are showing
|
||||
only the data after a certain start date:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
|
||||
Ending balances (historical) in 2008/04/01-2008/12/31:
|
||||
$ hledger balance ^assets ^liabilities --quarterly --historical --begin 2008/4/1
|
||||
Ending balances (historical) in 2008/04/01-2008/12/31:
|
||||
|
||||
|| 2008/06/30 2008/09/30 2008/12/31
|
||||
======================++=====================================
|
||||
assets:bank:checking || $1 $1 0
|
||||
assets:bank:saving || $1 $1 $1
|
||||
assets:cash || $-2 $-2 $-2
|
||||
liabilities:debts || 0 0 $1
|
||||
----------------------++-------------------------------------
|
||||
|| 0 0 0
|
||||
```
|
||||
|| 2008/06/30 2008/09/30 2008/12/31
|
||||
======================++=====================================
|
||||
assets:bank:checking || $1 $1 0
|
||||
assets:bank:saving || $1 $1 $1
|
||||
assets:cash || $-2 $-2 $-2
|
||||
liabilities:debts || 0 0 $1
|
||||
----------------------++-------------------------------------
|
||||
|| 0 0 0
|
||||
|
||||
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
|
||||
start/end dates will be adjusted if necessary so that they encompass the
|
||||
displayed report periods. This is so that the first and last periods
|
||||
will be \"full\" and comparable to the others.
|
||||
With a reporting interval (like --quarterly above), the report start/end
|
||||
dates will be adjusted if necessary so that they encompass the displayed
|
||||
report periods. This is so that the first and last periods will be
|
||||
"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
|
||||
period (without -E, leading and trailing columns with all zeroes are not
|
||||
shown). Second, all accounts which existed at the report start date will
|
||||
be considered, not just the ones with activity during the report period
|
||||
(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
|
||||
for each row.
|
||||
The -T/--row-total flag adds an additional column showing the total for
|
||||
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.
|
||||
|
||||
Here\'s an example of all three:
|
||||
Here's an example of all three:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance -Q income expenses --tree -ETA
|
||||
Balance changes in 2008:
|
||||
$ hledger balance -Q income expenses --tree -ETA
|
||||
Balance changes in 2008:
|
||||
|
||||
|| 2008q1 2008q2 2008q3 2008q4 Total Average
|
||||
============++===================================================
|
||||
expenses || 0 $2 0 0 $2 $1
|
||||
food || 0 $1 0 0 $1 0
|
||||
supplies || 0 $1 0 0 $1 0
|
||||
income || $-1 $-1 0 0 $-2 $-1
|
||||
gifts || 0 $-1 0 0 $-1 0
|
||||
salary || $-1 0 0 0 $-1 0
|
||||
------------++---------------------------------------------------
|
||||
|| $-1 $1 0 0 0 0
|
||||
|| 2008q1 2008q2 2008q3 2008q4 Total Average
|
||||
============++===================================================
|
||||
expenses || 0 $2 0 0 $2 $1
|
||||
food || 0 $1 0 0 $1 0
|
||||
supplies || 0 $1 0 0 $1 0
|
||||
income || $-1 $-1 0 0 $-2 $-1
|
||||
gifts || 0 $-1 0 0 $-1 0
|
||||
salary || $-1 0 0 0 $-1 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:
|
||||
|
||||
In multicolumn reports the [`-V/--value` flag](#market-value) uses the
|
||||
market price on the report end date, for all columns (not the price on
|
||||
each column\'s end date).
|
||||
In multicolumn reports the -V/--value flag uses the market price on the
|
||||
report end date, for all columns (not the price on each column's end
|
||||
date).
|
||||
|
||||
Eliding of boring parent accounts in tree mode, as in the classic
|
||||
balance report, is not yet supported in multicolumn reports.
|
||||
|
||||
### Budget report
|
||||
Budget report
|
||||
|
||||
With `--budget`, extra columns are displayed showing budget goals for
|
||||
each account and period, if any. 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.
|
||||
\--budget is most often combined with a [report
|
||||
interval](manual.html#report-intervals).
|
||||
With --budget, extra columns are displayed showing budget goals for each
|
||||
account and period, if any. Budget goals are defined by periodic
|
||||
transactions. This is very useful for comparing planned and actual
|
||||
income, expenses, time usage, etc. --budget is most often combined with
|
||||
a report interval.
|
||||
|
||||
For example, you can take average monthly expenses in the common expense
|
||||
categories to construct a minimal monthly budget:
|
||||
|
||||
``` {.journal}
|
||||
;; Budget
|
||||
~ monthly
|
||||
income $2000
|
||||
expenses:food $400
|
||||
expenses:bus $50
|
||||
expenses:movies $30
|
||||
assets:bank:checking
|
||||
;; Budget
|
||||
~ monthly
|
||||
income $2000
|
||||
expenses:food $400
|
||||
expenses:bus $50
|
||||
expenses:movies $30
|
||||
assets:bank:checking
|
||||
|
||||
;; Two months worth of expenses
|
||||
2017-11-01
|
||||
income $1950
|
||||
expenses:food $396
|
||||
expenses:bus $49
|
||||
expenses:movies $30
|
||||
expenses:supplies $20
|
||||
assets:bank:checking
|
||||
;; Two months worth of expenses
|
||||
2017-11-01
|
||||
income $1950
|
||||
expenses:food $396
|
||||
expenses:bus $49
|
||||
expenses:movies $30
|
||||
expenses:supplies $20
|
||||
assets:bank:checking
|
||||
|
||||
2017-12-01
|
||||
income $2100
|
||||
expenses:food $412
|
||||
expenses:bus $53
|
||||
expenses:gifts $100
|
||||
assets:bank:checking
|
||||
```
|
||||
2017-12-01
|
||||
income $2100
|
||||
expenses:food $412
|
||||
expenses:bus $53
|
||||
expenses:gifts $100
|
||||
assets:bank:checking
|
||||
|
||||
You can now see a monthly budget report:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance -M --budget
|
||||
Budget performance in 2017/11/01-2017/12/31:
|
||||
$ hledger balance -M --budget
|
||||
Budget performance in 2017/11/01-2017/12/31:
|
||||
|
||||
|| Nov Dec
|
||||
======================++====================================================
|
||||
assets || $-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]
|
||||
expenses || $495 [ 103% of $480] $565 [ 118% of $480]
|
||||
expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
|
||||
expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
|
||||
expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
|
||||
income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
|
||||
----------------------++----------------------------------------------------
|
||||
|| 0 [ 0] 0 [ 0]
|
||||
```
|
||||
|| Nov Dec
|
||||
======================++====================================================
|
||||
assets || $-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]
|
||||
expenses || $495 [ 103% of $480] $565 [ 118% of $480]
|
||||
expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
|
||||
expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
|
||||
expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
|
||||
income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
|
||||
----------------------++----------------------------------------------------
|
||||
|| 0 [ 0] 0 [ 0]
|
||||
|
||||
By default, only accounts with budget goals during the report period are
|
||||
shown. In the example above, transactions in `expenses:gifts` and
|
||||
`expenses:supplies` are counted towards `expenses` budget, but accounts
|
||||
`expenses:gifts` and `expenses:supplies` are not shown, as they don\'t
|
||||
have any budgets.
|
||||
shown. In the example above, transactions in expenses:gifts and
|
||||
expenses:supplies are counted towards expenses budget, but accounts
|
||||
expenses:gifts and expenses:supplies are not shown, as they don't have
|
||||
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
|
||||
Budget performance in 2017/11/01-2017/12/31:
|
||||
$ hledger balance -M --budget --empty
|
||||
Budget performance in 2017/11/01-2017/12/31:
|
||||
|
||||
|| Nov Dec
|
||||
======================++====================================================
|
||||
assets || $-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]
|
||||
expenses || $495 [ 103% of $480] $565 [ 118% of $480]
|
||||
expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
|
||||
expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
|
||||
expenses:gifts || 0 $100
|
||||
expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
|
||||
expenses:supplies || $20 0
|
||||
income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
|
||||
----------------------++----------------------------------------------------
|
||||
|| 0 [ 0] 0 [ 0]
|
||||
```
|
||||
|| Nov Dec
|
||||
======================++====================================================
|
||||
assets || $-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]
|
||||
expenses || $495 [ 103% of $480] $565 [ 118% of $480]
|
||||
expenses:bus || $49 [ 98% of $50] $53 [ 106% of $50]
|
||||
expenses:food || $396 [ 99% of $400] $412 [ 103% of $400]
|
||||
expenses:gifts || 0 $100
|
||||
expenses:movies || $30 [ 100% of $30] 0 [ 0% of $30]
|
||||
expenses:supplies || $20 0
|
||||
income || $1950 [ 98% of $2000] $2100 [ 105% of $2000]
|
||||
----------------------++----------------------------------------------------
|
||||
|| 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
|
||||
Budget performance in 2017/11/01-2017/12/31:
|
||||
$ hledger balance -M --budget --cumulative
|
||||
Budget performance in 2017/11/01-2017/12/31:
|
||||
|
||||
|| Nov Dec
|
||||
======================++====================================================
|
||||
assets || $-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]
|
||||
expenses || $495 [ 103% of $480] $1060 [ 110% of $960]
|
||||
expenses:bus || $49 [ 98% of $50] $102 [ 102% of $100]
|
||||
expenses:food || $396 [ 99% of $400] $808 [ 101% of $800]
|
||||
expenses:movies || $30 [ 100% of $30] $30 [ 50% of $60]
|
||||
income || $1950 [ 98% of $2000] $4050 [ 101% of $4000]
|
||||
----------------------++----------------------------------------------------
|
||||
|| 0 [ 0] 0 [ 0]
|
||||
```
|
||||
|| Nov Dec
|
||||
======================++====================================================
|
||||
assets || $-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]
|
||||
expenses || $495 [ 103% of $480] $1060 [ 110% of $960]
|
||||
expenses:bus || $49 [ 98% of $50] $102 [ 102% of $100]
|
||||
expenses:food || $396 [ 99% of $400] $808 [ 101% of $800]
|
||||
expenses:movies || $30 [ 100% of $30] $30 [ 50% of $60]
|
||||
income || $1950 [ 98% of $2000] $4050 [ 101% of $4000]
|
||||
----------------------++----------------------------------------------------
|
||||
|| 0 [ 0] 0 [ 0]
|
||||
|
||||
Note, the `-S/--sort-amount` flag is not yet fully supported with
|
||||
`--budget`.
|
||||
Note, the -S/--sort-amount flag is not yet fully supported with
|
||||
--budget.
|
||||
|
||||
For more examples, see [Budgeting and
|
||||
Forecasting](https://github.com/simonmichael/hledger/wiki/Budgeting%20and%20forecasting).
|
||||
For more examples, see Budgeting and Forecasting.
|
||||
|
||||
#### Nested budgets
|
||||
Nested budgets
|
||||
|
||||
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
|
||||
@ -427,82 +386,75 @@ To illustrate this, consider the following budget:
|
||||
expenses:personal:electronics $100.00
|
||||
liabilities
|
||||
|
||||
With this, monthly budget for electronics is defined to be \$100 and
|
||||
budget for personal expenses is an additional \$1000, which implicity
|
||||
means that budget for both `expenses:personal` and `expenses` is \$1100.
|
||||
With this, monthly budget for electronics is defined to be $100 and
|
||||
budget for personal expenses is an additional $1000, which implicity
|
||||
means that budget for both expenses:personal and expenses is $1100.
|
||||
|
||||
Transactions in `expenses:personal:electronics` will be counted both
|
||||
towards its \$100 budget and \$1100 of `expenses:personal` , and
|
||||
transactions in any other subaccount of `expenses:personal` would be
|
||||
counted towards only towards the budget of `expenses:personal`.
|
||||
Transactions in expenses:personal:electronics will be counted both
|
||||
towards its $100 budget and $1100 of expenses:personal , and
|
||||
transactions in any other subaccount of expenses:personal would be
|
||||
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
|
||||
expenses:personal $1,000.00
|
||||
expenses:personal:electronics $100.00
|
||||
liabilities
|
||||
~ monthly from 2019/01
|
||||
expenses:personal $1,000.00
|
||||
expenses:personal:electronics $100.00
|
||||
liabilities
|
||||
|
||||
2019/01/01 Google home hub
|
||||
expenses:personal:electronics $90.00
|
||||
liabilities $-90.00
|
||||
2019/01/01 Google home hub
|
||||
expenses:personal:electronics $90.00
|
||||
liabilities $-90.00
|
||||
|
||||
2019/01/02 Phone screen protector
|
||||
expenses:personal:electronics:upgrades $10.00
|
||||
liabilities
|
||||
2019/01/02 Phone screen protector
|
||||
expenses:personal:electronics:upgrades $10.00
|
||||
liabilities
|
||||
|
||||
2019/01/02 Weekly train ticket
|
||||
expenses:personal:train tickets $153.00
|
||||
liabilities
|
||||
2019/01/02 Weekly train ticket
|
||||
expenses:personal:train tickets $153.00
|
||||
liabilities
|
||||
|
||||
2019/01/03 Flowers
|
||||
expenses:personal $30.00
|
||||
liabilities
|
||||
```
|
||||
2019/01/03 Flowers
|
||||
expenses:personal $30.00
|
||||
liabilities
|
||||
|
||||
As you can see, we have transactions in
|
||||
`expenses:personal:electronics:upgrades` and
|
||||
`expenses:personal:train tickets`, and since both of these accounts are
|
||||
expenses:personal:electronics:upgrades and
|
||||
expenses:personal:train tickets, and since both of these accounts are
|
||||
without explicitly defined budget, these transactions would be counted
|
||||
towards budgets of `expenses:personal:electronics` and
|
||||
`expenses:personal` accordingly:
|
||||
towards budgets of expenses:personal:electronics and expenses:personal
|
||||
accordingly:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance --budget -M
|
||||
Budget performance in 2019/01:
|
||||
$ hledger balance --budget -M
|
||||
Budget performance in 2019/01:
|
||||
|
||||
|| Jan
|
||||
===============================++===============================
|
||||
expenses || $283.00 [ 26% of $1100.00]
|
||||
expenses:personal || $283.00 [ 26% of $1100.00]
|
||||
expenses:personal:electronics || $100.00 [ 100% of $100.00]
|
||||
liabilities || $-283.00 [ 26% of $-1100.00]
|
||||
-------------------------------++-------------------------------
|
||||
|| 0 [ 0]
|
||||
```
|
||||
|| Jan
|
||||
===============================++===============================
|
||||
expenses || $283.00 [ 26% of $1100.00]
|
||||
expenses:personal || $283.00 [ 26% of $1100.00]
|
||||
expenses:personal:electronics || $100.00 [ 100% of $100.00]
|
||||
liabilities || $-283.00 [ 26% of $-1100.00]
|
||||
-------------------------------++-------------------------------
|
||||
|| 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:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balance --budget -M --empty
|
||||
Budget performance in 2019/01:
|
||||
$ hledger balance --budget -M --empty
|
||||
Budget performance in 2019/01:
|
||||
|
||||
|| Jan
|
||||
========================================++===============================
|
||||
expenses || $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:upgrades || $10.00
|
||||
expenses:personal:train tickets || $153.00
|
||||
liabilities || $-283.00 [ 26% of $-1100.00]
|
||||
----------------------------------------++-------------------------------
|
||||
|| 0 [ 0]
|
||||
```
|
||||
|| Jan
|
||||
========================================++===============================
|
||||
expenses || $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:upgrades || $10.00
|
||||
expenses:personal:train tickets || $153.00
|
||||
liabilities || $-283.00 [ 26% of $-1100.00]
|
||||
----------------------------------------++-------------------------------
|
||||
|| 0 [ 0]
|
||||
|
||||
### Output format
|
||||
Output format
|
||||
|
||||
The balance command supports [output
|
||||
destination](/manual.html#output-destination) and [output
|
||||
format](/manual.html#output-format) selection.
|
||||
The balance command supports output destination and output format
|
||||
selection.
|
||||
|
||||
@ -1,45 +1,41 @@
|
||||
balancesheet, bs\
|
||||
balancesheet, bs
|
||||
This command displays a simple balance sheet, showing historical ending
|
||||
balances of asset and liability accounts (ignoring any report begin
|
||||
date). It assumes that these accounts are under a top-level `asset` or
|
||||
`liability` account (case insensitive, plural forms also allowed).
|
||||
date). It assumes that these accounts are under a top-level asset or
|
||||
liability account (case insensitive, plural forms also allowed).
|
||||
|
||||
Note this report shows all account balances with normal positive sign
|
||||
(like conventional financial statements, unlike balance/print/register)
|
||||
(experimental).
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
Example:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balancesheet
|
||||
Balance Sheet
|
||||
$ hledger balancesheet
|
||||
Balance Sheet
|
||||
|
||||
Assets:
|
||||
$-1 assets
|
||||
$1 bank:saving
|
||||
$-2 cash
|
||||
--------------------
|
||||
$-1
|
||||
Assets:
|
||||
$-1 assets
|
||||
$1 bank:saving
|
||||
$-2 cash
|
||||
--------------------
|
||||
$-1
|
||||
|
||||
Liabilities:
|
||||
$1 liabilities:debts
|
||||
--------------------
|
||||
$1
|
||||
Liabilities:
|
||||
$1 liabilities:debts
|
||||
--------------------
|
||||
$1
|
||||
|
||||
Total:
|
||||
--------------------
|
||||
0
|
||||
```
|
||||
Total:
|
||||
--------------------
|
||||
0
|
||||
|
||||
With a [reporting interval](#reporting-interval), multiple columns will
|
||||
be shown, one for each report period. As with [multicolumn balance
|
||||
reports](#multicolumn-balance-reports), you can alter the report mode
|
||||
with `--change`/`--cumulative`/`--historical`. Normally balancesheet
|
||||
shows historical ending balances, which is what you need for a balance
|
||||
sheet; note this means it ignores report begin dates.
|
||||
With a reporting interval, multiple columns will be shown, one for each
|
||||
report period. As with multicolumn balance reports, you can alter the
|
||||
report mode with --change/--cumulative/--historical. Normally
|
||||
balancesheet shows historical ending balances, which is what you need
|
||||
for a balance sheet; note this means it ignores report begin dates.
|
||||
|
||||
This command also supports [output
|
||||
destination](/manual.html#output-destination) and [output
|
||||
format](/manual.html#output-format) selection.
|
||||
This command also supports output destination and output format
|
||||
selection.
|
||||
|
||||
@ -1,33 +1,31 @@
|
||||
balancesheetequity, bse\
|
||||
Just like [balancesheet](#balancesheet), but also reports Equity (which
|
||||
it assumes is under a top-level `equity` account).
|
||||
balancesheetequity, bse
|
||||
Just like balancesheet, but also reports Equity (which it assumes is
|
||||
under a top-level equity account).
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
Example:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger balancesheetequity
|
||||
Balance Sheet With Equity
|
||||
$ hledger balancesheetequity
|
||||
Balance Sheet With Equity
|
||||
|
||||
Assets:
|
||||
$-2 assets
|
||||
$1 bank:saving
|
||||
$-3 cash
|
||||
--------------------
|
||||
$-2
|
||||
Assets:
|
||||
$-2 assets
|
||||
$1 bank:saving
|
||||
$-3 cash
|
||||
--------------------
|
||||
$-2
|
||||
|
||||
Liabilities:
|
||||
$1 liabilities:debts
|
||||
--------------------
|
||||
$1
|
||||
Liabilities:
|
||||
$1 liabilities:debts
|
||||
--------------------
|
||||
$1
|
||||
|
||||
Equity:
|
||||
$1 equity:owner
|
||||
--------------------
|
||||
$1
|
||||
Equity:
|
||||
$1 equity:owner
|
||||
--------------------
|
||||
$1
|
||||
|
||||
Total:
|
||||
--------------------
|
||||
0
|
||||
```
|
||||
Total:
|
||||
--------------------
|
||||
0
|
||||
|
||||
@ -1,37 +1,33 @@
|
||||
cashflow, cf\
|
||||
cashflow, cf
|
||||
This command displays a simple cashflow statement, showing changes in
|
||||
\"cash\" accounts. It assumes that these accounts are under a top-level
|
||||
`asset` account (case insensitive, plural forms also allowed) and do not
|
||||
contain `receivable` or `A/R` in their name. Note this report shows all
|
||||
"cash" accounts. It assumes that these accounts are under a top-level
|
||||
asset account (case insensitive, plural forms also allowed) and do not
|
||||
contain receivable or A/R in their name. Note this report shows all
|
||||
account balances with normal positive sign (like conventional financial
|
||||
statements, unlike balance/print/register) (experimental).
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
Example:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger cashflow
|
||||
Cashflow Statement
|
||||
$ hledger cashflow
|
||||
Cashflow Statement
|
||||
|
||||
Cash flows:
|
||||
$-1 assets
|
||||
$1 bank:saving
|
||||
$-2 cash
|
||||
--------------------
|
||||
$-1
|
||||
Cash flows:
|
||||
$-1 assets
|
||||
$1 bank:saving
|
||||
$-2 cash
|
||||
--------------------
|
||||
$-1
|
||||
|
||||
Total:
|
||||
--------------------
|
||||
$-1
|
||||
```
|
||||
Total:
|
||||
--------------------
|
||||
$-1
|
||||
|
||||
With a [reporting interval](#reporting-interval), multiple columns will
|
||||
be shown, one for each report period. Normally cashflow shows changes in
|
||||
assets per period, though as with [multicolumn balance
|
||||
reports](#multicolumn-balance-reports) you can alter the report mode
|
||||
with `--change`/`--cumulative`/`--historical`.
|
||||
With a reporting interval, multiple columns will be shown, one for each
|
||||
report period. Normally cashflow shows changes in assets per period,
|
||||
though as with multicolumn balance reports you can alter the report mode
|
||||
with --change/--cumulative/--historical.
|
||||
|
||||
This command also supports [output
|
||||
destination](/manual.html#output-destination) and [output
|
||||
format](/manual.html#output-format) selection.
|
||||
This command also supports output destination and output format
|
||||
selection.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
check-dates\
|
||||
Check that transactions are sorted by increasing date. With \--date2,
|
||||
checks secondary dates instead. With \--strict, dates must also be
|
||||
unique. With a query, only matched transactions\' dates are checked.
|
||||
check-dates
|
||||
Check that transactions are sorted by increasing date. With --date2,
|
||||
checks secondary dates instead. With --strict, dates must also be
|
||||
unique. With a query, only matched transactions' dates are checked.
|
||||
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
|
||||
other words, two or more leaves that are categorized differently. Reads
|
||||
the default journal file, or another specified as an argument.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
An example: http://stefanorodighiero.net/software/hledger-dupes.html
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
close, equity\
|
||||
Prints a \"closing balances\" transaction and an \"opening balances\"
|
||||
close, equity
|
||||
Prints a "closing balances" transaction and an "opening balances"
|
||||
transaction that bring account balances to and from zero, respectively.
|
||||
Useful for bringing asset/liability balances forward into a new journal
|
||||
file, or for closing out revenues/expenses to retained earnings at the
|
||||
end of a period.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
The closing transaction transfers balances to \"equity:closing
|
||||
balances\". The opening transaction transfers balances from
|
||||
\"equity:opening balances\". You can chose to print just one of the
|
||||
transactions by using the `--opening` or `--closing` flag.
|
||||
The closing transaction transfers balances to "equity:closing balances".
|
||||
The opening transaction transfers balances from "equity:opening
|
||||
balances". You can chose to print just one of the transactions by using
|
||||
the --opening or --closing flag.
|
||||
|
||||
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
|
||||
@ -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
|
||||
transactions cancel each other out. (They will show up in print or
|
||||
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
|
||||
\"close the books\" at the end of an accounting period, transferring
|
||||
income statement account balances to retained earnings. (You may want to
|
||||
change the equity account name to something like \"equity:retained
|
||||
earnings\".)
|
||||
If you're running a business, you might also use this command to "close
|
||||
the books" at the end of an accounting period, transferring income
|
||||
statement account balances to retained earnings. (You may want to change
|
||||
the equity account name to something like "equity:retained earnings".)
|
||||
|
||||
By default, the closing transaction is dated yesterday, the balances are
|
||||
calculated as of end of yesterday, and the opening transaction is dated
|
||||
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
|
||||
use -p or `date:PERIOD` (any starting date is ignored).
|
||||
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
|
||||
use -p or date:PERIOD (any starting date is ignored).
|
||||
|
||||
Both transactions will include balance assertions for the
|
||||
closed/reopened accounts. You probably shouldn\'t use status or realness
|
||||
filters (like -C or -R or `status:`) with this command, or the generated
|
||||
closed/reopened accounts. You probably shouldn't use status or realness
|
||||
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
|
||||
command with \--auto, the balance assertions will probably always
|
||||
require \--auto.
|
||||
command with --auto, the balance assertions will probably always require
|
||||
--auto.
|
||||
|
||||
Examples:
|
||||
|
||||
Carrying asset/liability balances into a new file for 2019, all from
|
||||
command line:
|
||||
|
||||
*Warning: we use `>>` here to append; be careful not to type a single
|
||||
`>` which would wipe your journal!*
|
||||
_Warning: we use >> here to append; be careful not to type a single >
|
||||
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 --closing >>2018.journal
|
||||
@ -66,7 +65,7 @@ balance assertions:
|
||||
expenses:food 5
|
||||
assets:bank:checking -5 ; [2019/1/2]
|
||||
|
||||
Here\'s one way to resolve that:
|
||||
Here's one way to resolve that:
|
||||
|
||||
; in 2018.journal:
|
||||
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
|
||||
names matching the regular expression (case sensitive) are shown.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
@ -1,40 +1,35 @@
|
||||
help\
|
||||
help
|
||||
Show any of the hledger manuals.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
The `help` command displays any of the main [hledger
|
||||
manuals](/docs.html), in one of several ways. Run it with no argument to
|
||||
list the manuals, or provide a full or partial manual name to select
|
||||
one.
|
||||
The help command displays any of the main hledger manuals, in one of
|
||||
several ways. Run it with no argument to list the manuals, or provide a
|
||||
full or partial manual name to select one.
|
||||
|
||||
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
|
||||
particular viewer with the `--info`, `--man`, `--pager`, `--cat` flags.
|
||||
particular viewer with the --info, --man, --pager, --cat flags.
|
||||
|
||||
Examples:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger help
|
||||
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
|
||||
```
|
||||
$ hledger help
|
||||
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
|
||||
|
||||
``` {.shell}
|
||||
$ hledger help h --man
|
||||
$ hledger help h --man
|
||||
|
||||
hledger(1) hledger User Manuals hledger(1)
|
||||
hledger(1) hledger User Manuals hledger(1)
|
||||
|
||||
NAME
|
||||
hledger - a command-line accounting tool
|
||||
NAME
|
||||
hledger - a command-line accounting tool
|
||||
|
||||
SYNOPSIS
|
||||
hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
|
||||
hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
|
||||
hledger
|
||||
SYNOPSIS
|
||||
hledger [-f FILE] COMMAND [OPTIONS] [ARGS]
|
||||
hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS]
|
||||
hledger
|
||||
|
||||
DESCRIPTION
|
||||
hledger is a cross-platform program for tracking money, time, or any
|
||||
...
|
||||
```
|
||||
DESCRIPTION
|
||||
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
|
||||
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.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
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
|
||||
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
|
||||
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:
|
||||
|
||||
``` {.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
|
||||
expenses during a period. It assumes that these accounts are under a
|
||||
top-level `revenue` or `income` or `expense` account (case insensitive,
|
||||
plural forms also allowed). Note this report shows all account balances
|
||||
with normal positive sign (like conventional financial statements,
|
||||
unlike balance/print/register) (experimental).
|
||||
top-level revenue or income or expense account (case insensitive, plural
|
||||
forms also allowed). Note this report shows all account balances with
|
||||
normal positive sign (like conventional financial statements, unlike
|
||||
balance/print/register) (experimental).
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
This command displays a simple [income
|
||||
statement](http://en.wikipedia.org/wiki/Income_statement). It currently
|
||||
assumes that you have top-level accounts named `income` (or `revenue`)
|
||||
and `expense` (plural forms also allowed.)
|
||||
This command displays a simple income statement. It currently assumes
|
||||
that you have top-level accounts named income (or revenue) and expense
|
||||
(plural forms also allowed.)
|
||||
|
||||
``` {.shell}
|
||||
$ hledger incomestatement
|
||||
Income Statement
|
||||
$ hledger incomestatement
|
||||
Income Statement
|
||||
|
||||
Revenues:
|
||||
$-2 income
|
||||
$-1 gifts
|
||||
$-1 salary
|
||||
--------------------
|
||||
$-2
|
||||
Revenues:
|
||||
$-2 income
|
||||
$-1 gifts
|
||||
$-1 salary
|
||||
--------------------
|
||||
$-2
|
||||
|
||||
Expenses:
|
||||
$2 expenses
|
||||
$1 food
|
||||
$1 supplies
|
||||
--------------------
|
||||
$2
|
||||
Expenses:
|
||||
$2 expenses
|
||||
$1 food
|
||||
$1 supplies
|
||||
--------------------
|
||||
$2
|
||||
|
||||
Total:
|
||||
--------------------
|
||||
0
|
||||
```
|
||||
Total:
|
||||
--------------------
|
||||
0
|
||||
|
||||
With a [reporting interval](#reporting-interval), multiple columns will
|
||||
be shown, one for each report period. Normally incomestatement shows
|
||||
revenues/expenses per period, though as with [multicolumn balance
|
||||
reports](#multicolumn-balance-reports) you can alter the report mode
|
||||
with `--change`/`--cumulative`/`--historical`.
|
||||
With a reporting interval, multiple columns will be shown, one for each
|
||||
report period. Normally incomestatement shows revenues/expenses per
|
||||
period, though as with multicolumn balance reports you can alter the
|
||||
report mode with --change/--cumulative/--historical.
|
||||
|
||||
This command also supports [output
|
||||
destination](/manual.html#output-destination) and [output
|
||||
format](/manual.html#output-format) selection.
|
||||
This command also supports output destination and output format
|
||||
selection.
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
prices\
|
||||
Print [market price directives](/manual#market-prices) from the journal.
|
||||
With \--costs, also print synthetic market prices based on [transaction
|
||||
prices](/manual#transaction-prices). With \--inverted-costs, also print
|
||||
inverse prices based on transaction prices. Prices (and postings
|
||||
providing prices) can be filtered by a query.
|
||||
prices
|
||||
Print market price directives from the journal. With --costs, also print
|
||||
synthetic market prices based on transaction prices. With
|
||||
--inverted-costs, also print inverse prices based on transaction prices.
|
||||
Prices (and postings 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.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
The print command displays full journal entries (transactions) from the
|
||||
journal file in date order, tidily formatted. With \--date2,
|
||||
transactions are sorted by secondary date instead.
|
||||
journal file in date order, tidily formatted. With --date2, transactions
|
||||
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
|
||||
directives or inter-transaction comments
|
||||
|
||||
``` {.shell}
|
||||
$ hledger print
|
||||
2008/01/01 income
|
||||
assets:bank:checking $1
|
||||
income:salary $-1
|
||||
$ hledger print
|
||||
2008/01/01 income
|
||||
assets:bank:checking $1
|
||||
income:salary $-1
|
||||
|
||||
2008/06/01 gift
|
||||
assets:bank:checking $1
|
||||
income:gifts $-1
|
||||
2008/06/01 gift
|
||||
assets:bank:checking $1
|
||||
income:gifts $-1
|
||||
|
||||
2008/06/02 save
|
||||
assets:bank:saving $1
|
||||
assets:bank:checking $-1
|
||||
2008/06/02 save
|
||||
assets:bank:saving $1
|
||||
assets:bank:checking $-1
|
||||
|
||||
2008/06/03 * eat & shop
|
||||
expenses:food $1
|
||||
expenses:supplies $1
|
||||
assets:cash $-2
|
||||
2008/06/03 * eat & shop
|
||||
expenses:food $1
|
||||
expenses:supplies $1
|
||||
assets:cash $-2
|
||||
|
||||
2008/12/31 * pay off
|
||||
liabilities:debts $1
|
||||
assets:bank:checking $-1
|
||||
```
|
||||
2008/12/31 * pay off
|
||||
liabilities:debts $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
|
||||
omitted in the output. You can use the `-x`/`--explicit` flag to make
|
||||
all amounts explicit, which can be useful for troubleshooting or for
|
||||
making your journal more readable and robust against data entry errors.
|
||||
Note, `-x` will cause postings with a multi-commodity amount (these can
|
||||
arise when a multi-commodity transaction has an implicit amount) will be
|
||||
split into multiple single-commodity postings, for valid journal output.
|
||||
omitted in the output. You can use the -x/--explicit flag to make all
|
||||
amounts explicit, which can be useful for troubleshooting or for making
|
||||
your journal more readable and robust against data entry errors. Note,
|
||||
-x will cause postings with a multi-commodity amount (these can arise
|
||||
when a multi-commodity transaction has an implicit amount) will be split
|
||||
into multiple single-commodity postings, for valid journal output.
|
||||
|
||||
With `-B`/`--cost`, amounts with [transaction
|
||||
prices](/journal.html#transaction-prices) are converted to cost using
|
||||
that price. This can be used for troubleshooting.
|
||||
With -B/--cost, amounts with transaction prices are converted to cost
|
||||
using 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
|
||||
is most recent. STR should contain at least two characters. If there is
|
||||
no similar-enough match, no transaction will be shown.
|
||||
|
||||
With `--new`, for each FILE being read, hledger reads (and writes) a
|
||||
special state file (`.latest.FILE` in the same directory), containing
|
||||
the latest transaction date(s) that were seen last time FILE was read.
|
||||
When this file is found, only transactions with newer dates (and new
|
||||
With --new, for each FILE being read, hledger reads (and writes) a
|
||||
special state file (.latest.FILE in the same directory), containing the
|
||||
latest transaction date(s) that were seen last time FILE was read. When
|
||||
this file is found, only transactions with newer dates (and new
|
||||
transactions on the latest date) are printed. This is useful for
|
||||
ignoring already-seen entries in import data, such as downloaded CSV
|
||||
files. Eg:
|
||||
|
||||
``` {.console}
|
||||
$ hledger -f bank1.csv print --new
|
||||
# shows transactions added since last print --new on this file
|
||||
```
|
||||
$ hledger -f bank1.csv print --new
|
||||
# shows transactions added since last print --new on this file
|
||||
|
||||
This assumes that transactions added to FILE always have same or
|
||||
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
|
||||
destination](/manual.html#output-destination) and [output
|
||||
format](/manual.html#output-format) selection. Here\'s an example of
|
||||
print\'s CSV output:
|
||||
This command also supports output destination and output format
|
||||
selection. Here's an example of print's CSV output:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger print -Ocsv
|
||||
"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","","income:salary","-1","$","1","","",""
|
||||
"2","2008/06/01","","","","gift","","assets:bank:checking","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:checking","-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","","assets:cash","-2","$","2","","",""
|
||||
"5","2008/12/31","","*","","pay off","","liabilities:debts","1","$","","1","",""
|
||||
"5","2008/12/31","","*","","pay off","","assets:bank:checking","-1","$","1","","",""
|
||||
```
|
||||
$ hledger print -Ocsv
|
||||
"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","","income:salary","-1","$","1","","",""
|
||||
"2","2008/06/01","","","","gift","","assets:bank:checking","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:checking","-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","","assets:cash","-2","$","2","","",""
|
||||
"5","2008/12/31","","*","","pay off","","liabilities:debts","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.
|
||||
- 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
|
||||
are reordered within the file, files are parsed/included in a
|
||||
different order, etc.)
|
||||
- The amount is separated into \"commodity\" (the symbol) and
|
||||
\"amount\" (numeric quantity) fields.
|
||||
- The numeric amount is repeated in either the \"credit\" or \"debit\"
|
||||
- The amount is separated into "commodity" (the symbol) and "amount"
|
||||
(numeric quantity) fields.
|
||||
- The numeric amount is repeated in either the "credit" or "debit"
|
||||
column, for convenience. (Those names are not accurate in the
|
||||
accounting sense; it just puts negative amounts under credit and
|
||||
zero or greater amounts under debit.)
|
||||
|
||||
@ -1,18 +1,16 @@
|
||||
print-unique\
|
||||
print-unique
|
||||
Print transactions which do not reuse an already-seen description.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
Example:
|
||||
|
||||
``` {.shell}
|
||||
$ cat unique.journal
|
||||
1/1 test
|
||||
(acct:one) 1
|
||||
2/2 test
|
||||
(acct:two) 2
|
||||
$ LEDGER_FILE=unique.journal hledger print-unique
|
||||
(-f option not supported)
|
||||
2015/01/01 test
|
||||
(acct:one) 1
|
||||
```
|
||||
$ cat unique.journal
|
||||
1/1 test
|
||||
(acct:one) 1
|
||||
2/2 test
|
||||
(acct:two) 2
|
||||
$ LEDGER_FILE=unique.journal hledger print-unique
|
||||
(-f option not supported)
|
||||
2015/01/01 test
|
||||
(acct:one) 1
|
||||
|
||||
@ -110,3 +110,4 @@ $ hledger reg -w $COLUMNS,40 # use terminal width, and set description widt
|
||||
This command also supports
|
||||
[output destination](/manual.html#output-destination) and
|
||||
[output format](/manual.html#output-format) selection.
|
||||
|
||||
|
||||
@ -1,97 +1,87 @@
|
||||
register, reg, r\
|
||||
register, reg, r
|
||||
Show postings and their running total.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
The register command displays postings in date order, one per line, and
|
||||
their running total. This is typically used with a [query](#queries)
|
||||
selecting a particular account, to see that account\'s activity:
|
||||
their running total. This is typically used with a query selecting a
|
||||
particular account, to see that account's activity:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger register checking
|
||||
2008/01/01 income assets:bank:checking $1 $1
|
||||
2008/06/01 gift assets:bank:checking $1 $2
|
||||
2008/06/02 save assets:bank:checking $-1 $1
|
||||
2008/12/31 pay off assets:bank:checking $-1 0
|
||||
```
|
||||
$ hledger register checking
|
||||
2008/01/01 income assets:bank:checking $1 $1
|
||||
2008/06/01 gift assets:bank:checking $1 $2
|
||||
2008/06/02 save assets:bank:checking $-1 $1
|
||||
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
|
||||
recent activity, with a historically accurate running balance:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger register checking -b 2008/6 --historical
|
||||
2008/06/01 gift assets:bank:checking $1 $2
|
||||
2008/06/02 save assets:bank:checking $-1 $1
|
||||
2008/12/31 pay off assets:bank:checking $-1 0
|
||||
```
|
||||
$ hledger register checking -b 2008/6 --historical
|
||||
2008/06/01 gift assets:bank:checking $1 $2
|
||||
2008/06/02 save assets:bank:checking $-1 $1
|
||||
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
|
||||
instead of the running total (so, the final number displayed is the
|
||||
average for the whole report period). This flag implies `--empty` (see
|
||||
below). It is affected by `--historical`. It works best when showing
|
||||
just one account and one commodity.
|
||||
The --average/-A flag shows the running average posting amount instead
|
||||
of the running total (so, the final number displayed is the average for
|
||||
the whole report period). This flag implies --empty (see below). It is
|
||||
affected by --historical. It works best when showing just one account
|
||||
and one commodity.
|
||||
|
||||
The `--related`/`-r` flag shows the *other* postings in the transactions
|
||||
of the postings which would normally be shown.
|
||||
The --related/-r flag shows the _other_ postings in the transactions of
|
||||
the postings which would normally be shown.
|
||||
|
||||
With a [reporting interval](#reporting-interval), register shows summary
|
||||
postings, one per interval, aggregating the postings to each account:
|
||||
With a reporting interval, register shows summary postings, one per
|
||||
interval, aggregating the postings to each account:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger register --monthly income
|
||||
2008/01 income:salary $-1 $-1
|
||||
2008/06 income:gifts $-1 $-2
|
||||
```
|
||||
$ hledger register --monthly income
|
||||
2008/01 income:salary $-1 $-1
|
||||
2008/06 income:gifts $-1 $-2
|
||||
|
||||
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
|
||||
2008/01 income:salary $-1 $-1
|
||||
2008/02 0 $-1
|
||||
2008/03 0 $-1
|
||||
2008/04 0 $-1
|
||||
2008/05 0 $-1
|
||||
2008/06 income:gifts $-1 $-2
|
||||
2008/07 0 $-2
|
||||
2008/08 0 $-2
|
||||
2008/09 0 $-2
|
||||
2008/10 0 $-2
|
||||
2008/11 0 $-2
|
||||
2008/12 0 $-2
|
||||
```
|
||||
$ hledger register --monthly income -E
|
||||
2008/01 income:salary $-1 $-1
|
||||
2008/02 0 $-1
|
||||
2008/03 0 $-1
|
||||
2008/04 0 $-1
|
||||
2008/05 0 $-1
|
||||
2008/06 income:gifts $-1 $-2
|
||||
2008/07 0 $-2
|
||||
2008/08 0 $-2
|
||||
2008/09 0 $-2
|
||||
2008/10 0 $-2
|
||||
2008/11 0 $-2
|
||||
2008/12 0 $-2
|
||||
|
||||
Often, you\'ll want to see just one line per interval. The `--depth`
|
||||
option helps with this, causing subaccounts to be aggregated:
|
||||
Often, you'll want to see just one line per interval. The --depth option
|
||||
helps with this, causing subaccounts to be aggregated:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger register --monthly assets --depth 1h
|
||||
2008/01 assets $1 $1
|
||||
2008/06 assets $-1 0
|
||||
2008/12 assets $-1 $-1
|
||||
```
|
||||
$ hledger register --monthly assets --depth 1h
|
||||
2008/01 assets $1 $1
|
||||
2008/06 assets $-1 0
|
||||
2008/12 assets $-1 $-1
|
||||
|
||||
Note when using report intervals, if you specify start/end dates these
|
||||
will be adjusted outward if necessary to contain a whole number of
|
||||
intervals. This ensures that the first and last intervals are full
|
||||
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
|
||||
can override this by setting the `COLUMNS` environment variable (not a
|
||||
bash shell variable) or by using the `--width`/`-w` option.
|
||||
can override this by setting the COLUMNS environment variable (not a
|
||||
bash shell variable) or by using the --width/-w option.
|
||||
|
||||
The description and account columns normally share the space equally
|
||||
(about half of (width - 40) each). You can adjust this by adding a
|
||||
description width as part of \--width\'s argument, comma-separated:
|
||||
`--width W,D` . Here\'s a diagram:
|
||||
description width as part of --width's argument, comma-separated:
|
||||
--width W,D . Here's a diagram:
|
||||
|
||||
<--------------------------------- width (W) ---------------------------------->
|
||||
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:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger reg # use terminal width (or 80 on windows)
|
||||
$ hledger reg -w 100 # use width 100
|
||||
$ COLUMNS=100 hledger reg # set with one-time environment variable
|
||||
$ 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 $COLUMNS,40 # use terminal width, and set description width
|
||||
```
|
||||
$ hledger reg # use terminal width (or 80 on windows)
|
||||
$ hledger reg -w 100 # use width 100
|
||||
$ COLUMNS=100 hledger reg # set with one-time environment variable
|
||||
$ 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 $COLUMNS,40 # use terminal width, and set description width
|
||||
|
||||
This command also supports [output
|
||||
destination](/manual.html#output-destination) and [output
|
||||
format](/manual.html#output-format) selection.
|
||||
This command also supports output destination and output format
|
||||
selection.
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
register-match\
|
||||
register-match
|
||||
Print the one posting whose transaction description is closest to DESC,
|
||||
in the style of the register command. If there are multiple equally good
|
||||
matches, it shows the most recent. Query options (options, not
|
||||
arguments) can be used to restrict the search space. Helps
|
||||
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.
|
||||
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
|
||||
the default journal and prints the transactions, like print, but adds
|
||||
one or more specified postings to any transactions matching QUERY. The
|
||||
posting amounts can be fixed, or a multiplier of the existing
|
||||
transaction\'s first posting amount.
|
||||
transaction's first posting amount.
|
||||
|
||||
Examples:
|
||||
|
||||
@ -29,116 +29,100 @@ spaces between account and amount.
|
||||
|
||||
More:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
|
||||
$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
|
||||
$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
|
||||
$ hledger rewrite -- ^income --add-posting '(budget:foreign currency) *0.25 JPY; diversify'
|
||||
```
|
||||
$ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...
|
||||
$ hledger rewrite -- ^income --add-posting '(liabilities:tax) *.33'
|
||||
$ hledger rewrite -- expenses:gifts --add-posting '(budget:gifts) *-1"'
|
||||
$ hledger rewrite -- ^income --add-posting '(budget:foreign currency) *0.25 JPY; diversify'
|
||||
|
||||
Argument for `--add-posting` option is a usual posting of transaction
|
||||
with an exception for amount specification. More precisely, you can use
|
||||
`'*'` (star symbol) before the amount to indicate that that this is a
|
||||
factor for an amount of original matched posting. If the amount includes
|
||||
a commodity name, the new posting amount will be in the new commodity;
|
||||
otherwise, it will be in the matched posting amount\'s commodity.
|
||||
Argument for --add-posting option is a usual posting of transaction with
|
||||
an exception for amount specification. More precisely, you can use '*'
|
||||
(star symbol) before the amount to indicate that that this is a factor
|
||||
for an amount of original matched posting. If the amount includes a
|
||||
commodity name, the new posting amount will be in the new 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
|
||||
Transactions\"](http://ledger-cli.org/3.0/doc/ledger3.html#Automated-Transactions)
|
||||
During the run this tool will execute so called "Automated Transactions"
|
||||
found in any journal it process. I.e instead of specifying this
|
||||
operations in command line you can put them in a journal file.
|
||||
|
||||
``` {.shell}
|
||||
$ rewrite-rules.journal
|
||||
```
|
||||
$ rewrite-rules.journal
|
||||
|
||||
Make contents look like this:
|
||||
|
||||
``` {.journal}
|
||||
= ^income
|
||||
(liabilities:tax) *.33
|
||||
= ^income
|
||||
(liabilities:tax) *.33
|
||||
|
||||
= expenses:gifts
|
||||
budget:gifts *-1
|
||||
assets:budget *1
|
||||
```
|
||||
= expenses:gifts
|
||||
budget:gifts *-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
|
||||
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:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax) *.33' \
|
||||
| hledger rewrite -- -f - expenses:gifts --add-posting 'budget:gifts *-1' \
|
||||
--add-posting 'assets:budget *1' \
|
||||
> rewritten-tidy-output.journal
|
||||
```
|
||||
$ hledger rewrite -- -f input.journal '^income' --add-posting '(liabilities:tax) *.33' \
|
||||
| hledger rewrite -- -f - expenses:gifts --add-posting 'budget:gifts *-1' \
|
||||
--add-posting 'assets:budget *1' \
|
||||
> rewritten-tidy-output.journal
|
||||
|
||||
It is important to understand that relative order of such entries in
|
||||
journal is important. You can re-use result of previously added
|
||||
postings.
|
||||
|
||||
#### Diff output format
|
||||
Diff output format
|
||||
|
||||
To use this tool for batch modification of your journal files you may
|
||||
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:
|
||||
|
||||
``` {.diff}
|
||||
--- /tmp/examples/sample.journal
|
||||
+++ /tmp/examples/sample.journal
|
||||
@@ -18,3 +18,4 @@
|
||||
2008/01/01 income
|
||||
- assets:bank:checking $1
|
||||
+ assets:bank:checking $1
|
||||
income:salary
|
||||
+ (liabilities:tax) 0
|
||||
@@ -22,3 +23,4 @@
|
||||
2008/06/01 gift
|
||||
- assets:bank:checking $1
|
||||
+ assets:bank:checking $1
|
||||
income:gifts
|
||||
+ (liabilities:tax) 0
|
||||
```
|
||||
--- /tmp/examples/sample.journal
|
||||
+++ /tmp/examples/sample.journal
|
||||
@@ -18,3 +18,4 @@
|
||||
2008/01/01 income
|
||||
- assets:bank:checking $1
|
||||
+ assets:bank:checking $1
|
||||
income:salary
|
||||
+ (liabilities:tax) 0
|
||||
@@ -22,3 +23,4 @@
|
||||
2008/06/01 gift
|
||||
- assets:bank:checking $1
|
||||
+ assets:bank:checking $1
|
||||
income:gifts
|
||||
+ (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
|
||||
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.
|
||||
|
||||
Be careful. Whole transaction being re-formatted in a style of output
|
||||
from `hledger print`.
|
||||
from hledger print.
|
||||
|
||||
See also:
|
||||
|
||||
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:
|
||||
|
||||
- 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.
|
||||
|
||||
- rewrite\'s query limits which transactions can be rewritten; all are
|
||||
printed. print \--auto\'s query limits which transactions are
|
||||
printed.
|
||||
- rewrite's query limits which transactions can be rewritten; all are
|
||||
printed. print --auto's query limits which transactions are printed.
|
||||
|
||||
- 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
|
||||
your investments.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
This command assumes that you have account(s) that hold nothing but your
|
||||
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.
|
||||
|
||||
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
|
||||
identify your profit and loss transactions with `--pnl`.
|
||||
name) to select your investments with --inv, and another query to
|
||||
identify your profit and loss transactions with --pnl.
|
||||
|
||||
It will compute and display the internalized rate of return (IRR) and
|
||||
time-weighted rate of return (TWR) for your investments for the time
|
||||
|
||||
@ -1,28 +1,25 @@
|
||||
stats\
|
||||
stats
|
||||
Show some journal statistics.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
The stats command displays summary information for the whole journal, or
|
||||
a matched part of it. With a [reporting interval](#reporting-interval),
|
||||
it shows a report for each report period.
|
||||
a matched part of it. With a reporting interval, it shows a report for
|
||||
each report period.
|
||||
|
||||
Example:
|
||||
|
||||
``` {.shell}
|
||||
$ hledger stats
|
||||
Main journal file : /src/hledger/examples/sample.journal
|
||||
Included journal files :
|
||||
Transactions span : 2008-01-01 to 2009-01-01 (366 days)
|
||||
Last transaction : 2008-12-31 (2333 days ago)
|
||||
Transactions : 5 (0.0 per day)
|
||||
Transactions last 30 days: 0 (0.0 per day)
|
||||
Transactions last 7 days : 0 (0.0 per day)
|
||||
Payees/descriptions : 5
|
||||
Accounts : 8 (depth 3)
|
||||
Commodities : 1 ($)
|
||||
```
|
||||
$ hledger stats
|
||||
Main journal file : /src/hledger/examples/sample.journal
|
||||
Included journal files :
|
||||
Transactions span : 2008-01-01 to 2009-01-01 (366 days)
|
||||
Last transaction : 2008-12-31 (2333 days ago)
|
||||
Transactions : 5 (0.0 per day)
|
||||
Transactions last 30 days: 0 (0.0 per day)
|
||||
Transactions last 7 days : 0 (0.0 per day)
|
||||
Payees/descriptions : 5
|
||||
Accounts : 8 (depth 3)
|
||||
Commodities : 1 ($)
|
||||
|
||||
This command also supports [output
|
||||
destination](/manual.html#output-destination) and [output
|
||||
format](/manual.html#output-format) selection.
|
||||
This command also supports output destination and output format
|
||||
selection.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
tags\
|
||||
tags
|
||||
List all the tag names used in the journal. With a TAGREGEX argument,
|
||||
only tag names matching the regular expression (case insensitive) are
|
||||
shown. With QUERY arguments, only transactions matching the query are
|
||||
considered.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
test\
|
||||
test
|
||||
Run built-in unit tests.
|
||||
|
||||
*FLAGS*
|
||||
_FLAGS_
|
||||
|
||||
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
|
||||
@ -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
|
||||
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
|
||||
are expected to pass - if you ever see otherwise, something has gone
|
||||
wrong, please report a bug!
|
||||
|
||||
Loading…
Reference in New Issue
Block a user