;doc: regen manuals
[ci skip]
This commit is contained in:
parent
6885dddd0e
commit
fd64d7bb3a
@ -302,14 +302,13 @@ Some examples:
|
||||
.nf
|
||||
\f[C]
|
||||
# a file comment
|
||||
|
||||
; also a file comment
|
||||
; another file comment
|
||||
* also a file comment, useful in org/orgstruct mode
|
||||
|
||||
comment
|
||||
This is a multiline file comment,
|
||||
which continues until a line
|
||||
where the \[dq]end comment\[dq] string
|
||||
appears on its own (or end of file).
|
||||
A multiline file comment, which continues
|
||||
until a line containing just \[dq]end comment\[dq]
|
||||
(or end of file).
|
||||
end comment
|
||||
|
||||
2012/5/14 something ; a transaction comment
|
||||
@ -1793,6 +1792,17 @@ N, and symbol S).
|
||||
The matched posting\[aq]s amount will be multiplied by N, and its
|
||||
commodity symbol will be replaced with S.
|
||||
.PP
|
||||
A query term containing spaces must be enclosed in single or double
|
||||
quotes, as on the command line.
|
||||
Eg, note the quotes around the second query term below:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
= expenses:groceries \[aq]expenses:dining out\[aq]
|
||||
(budget:funds:dining out) *-1
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
These rules have global effect - a rule appearing anywhere in your data
|
||||
can potentially affect any transaction, including transactions recorded
|
||||
above it or in another file.
|
||||
|
||||
@ -284,14 +284,13 @@ Transaction and posting comments must begin with a semicolon (';').
|
||||
Some examples:
|
||||
|
||||
# a file comment
|
||||
|
||||
; also a file comment
|
||||
; another file comment
|
||||
* also a file comment, useful in org/orgstruct mode
|
||||
|
||||
comment
|
||||
This is a multiline file comment,
|
||||
which continues until a line
|
||||
where the "end comment" string
|
||||
appears on its own (or end of file).
|
||||
A multiline file comment, which continues
|
||||
until a line containing just "end comment"
|
||||
(or end of file).
|
||||
end comment
|
||||
|
||||
2012/5/14 something ; a transaction comment
|
||||
@ -1632,6 +1631,13 @@ amount can be:
|
||||
and symbol S). The matched posting's amount will be multiplied by
|
||||
N, and its commodity symbol will be replaced with S.
|
||||
|
||||
A query term containing spaces must be enclosed in single or double
|
||||
quotes, as on the command line. Eg, note the quotes around the second
|
||||
query term below:
|
||||
|
||||
= expenses:groceries 'expenses:dining out'
|
||||
(budget:funds:dining out) *-1
|
||||
|
||||
These rules have global effect - a rule appearing anywhere in your
|
||||
data can potentially affect any transaction, including transactions
|
||||
recorded above it or in another file.
|
||||
@ -1743,98 +1749,98 @@ Node: Payee and note9229
|
||||
Ref: #payee-and-note9343
|
||||
Node: Comments9678
|
||||
Ref: #comments9804
|
||||
Node: Tags10974
|
||||
Ref: #tags11089
|
||||
Node: Postings12482
|
||||
Ref: #postings12610
|
||||
Node: Virtual Postings13636
|
||||
Ref: #virtual-postings13753
|
||||
Node: Account names15059
|
||||
Ref: #account-names15200
|
||||
Node: Amounts15687
|
||||
Ref: #amounts15826
|
||||
Node: Digit group marks16759
|
||||
Ref: #digit-group-marks16908
|
||||
Node: Amount display format17846
|
||||
Ref: #amount-display-format18003
|
||||
Node: Transaction prices19028
|
||||
Ref: #transaction-prices19194
|
||||
Node: Balance Assertions21460
|
||||
Ref: #balance-assertions21640
|
||||
Node: Assertions and ordering22673
|
||||
Ref: #assertions-and-ordering22861
|
||||
Node: Assertions and included files23561
|
||||
Ref: #assertions-and-included-files23804
|
||||
Node: Assertions and multiple -f options24137
|
||||
Ref: #assertions-and-multiple--f-options24393
|
||||
Node: Assertions and commodities24525
|
||||
Ref: #assertions-and-commodities24757
|
||||
Node: Assertions and prices25913
|
||||
Ref: #assertions-and-prices26127
|
||||
Node: Assertions and subaccounts26567
|
||||
Ref: #assertions-and-subaccounts26796
|
||||
Node: Assertions and virtual postings27120
|
||||
Ref: #assertions-and-virtual-postings27362
|
||||
Node: Assertions and precision27504
|
||||
Ref: #assertions-and-precision27697
|
||||
Node: Balance Assignments27964
|
||||
Ref: #balance-assignments28138
|
||||
Node: Balance assignments and prices29303
|
||||
Ref: #balance-assignments-and-prices29475
|
||||
Node: Directives29699
|
||||
Ref: #directives29858
|
||||
Node: Comment blocks35537
|
||||
Ref: #comment-blocks35682
|
||||
Node: Including other files35858
|
||||
Ref: #including-other-files36038
|
||||
Node: Default year36446
|
||||
Ref: #default-year36615
|
||||
Node: Declaring commodities37022
|
||||
Ref: #declaring-commodities37205
|
||||
Node: Default commodity38866
|
||||
Ref: #default-commodity39042
|
||||
Node: Market prices39676
|
||||
Ref: #market-prices39841
|
||||
Node: Declaring accounts40682
|
||||
Ref: #declaring-accounts40858
|
||||
Node: Account comments41783
|
||||
Ref: #account-comments41946
|
||||
Node: Account subdirectives42370
|
||||
Ref: #account-subdirectives42565
|
||||
Node: Account types42878
|
||||
Ref: #account-types43062
|
||||
Node: Account display order44704
|
||||
Ref: #account-display-order44874
|
||||
Node: Rewriting accounts46025
|
||||
Ref: #rewriting-accounts46210
|
||||
Node: Basic aliases46936
|
||||
Ref: #basic-aliases47082
|
||||
Node: Regex aliases47786
|
||||
Ref: #regex-aliases47958
|
||||
Node: Combining aliases48676
|
||||
Ref: #combining-aliases48854
|
||||
Node: end aliases50130
|
||||
Ref: #end-aliases50278
|
||||
Node: Default parent account50379
|
||||
Ref: #default-parent-account50545
|
||||
Node: Periodic transactions51429
|
||||
Ref: #periodic-transactions51628
|
||||
Node: Periodic rule syntax53500
|
||||
Ref: #periodic-rule-syntax53706
|
||||
Node: Two spaces between period expression and description!54410
|
||||
Ref: #two-spaces-between-period-expression-and-description54729
|
||||
Node: Forecasting with periodic transactions55413
|
||||
Ref: #forecasting-with-periodic-transactions55718
|
||||
Node: Budgeting with periodic transactions57744
|
||||
Ref: #budgeting-with-periodic-transactions57983
|
||||
Node: Auto postings / transaction modifiers58432
|
||||
Ref: #auto-postings-transaction-modifiers58644
|
||||
Node: Auto postings and dates60873
|
||||
Ref: #auto-postings-and-dates61130
|
||||
Node: Auto postings and transaction balancing / inferred amounts / balance assertions61305
|
||||
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions61680
|
||||
Node: Auto posting tags62058
|
||||
Ref: #auto-posting-tags62297
|
||||
Node: Tags10998
|
||||
Ref: #tags11113
|
||||
Node: Postings12506
|
||||
Ref: #postings12634
|
||||
Node: Virtual Postings13660
|
||||
Ref: #virtual-postings13777
|
||||
Node: Account names15083
|
||||
Ref: #account-names15224
|
||||
Node: Amounts15711
|
||||
Ref: #amounts15850
|
||||
Node: Digit group marks16783
|
||||
Ref: #digit-group-marks16932
|
||||
Node: Amount display format17870
|
||||
Ref: #amount-display-format18027
|
||||
Node: Transaction prices19052
|
||||
Ref: #transaction-prices19218
|
||||
Node: Balance Assertions21484
|
||||
Ref: #balance-assertions21664
|
||||
Node: Assertions and ordering22697
|
||||
Ref: #assertions-and-ordering22885
|
||||
Node: Assertions and included files23585
|
||||
Ref: #assertions-and-included-files23828
|
||||
Node: Assertions and multiple -f options24161
|
||||
Ref: #assertions-and-multiple--f-options24417
|
||||
Node: Assertions and commodities24549
|
||||
Ref: #assertions-and-commodities24781
|
||||
Node: Assertions and prices25937
|
||||
Ref: #assertions-and-prices26151
|
||||
Node: Assertions and subaccounts26591
|
||||
Ref: #assertions-and-subaccounts26820
|
||||
Node: Assertions and virtual postings27144
|
||||
Ref: #assertions-and-virtual-postings27386
|
||||
Node: Assertions and precision27528
|
||||
Ref: #assertions-and-precision27721
|
||||
Node: Balance Assignments27988
|
||||
Ref: #balance-assignments28162
|
||||
Node: Balance assignments and prices29327
|
||||
Ref: #balance-assignments-and-prices29499
|
||||
Node: Directives29723
|
||||
Ref: #directives29882
|
||||
Node: Comment blocks35561
|
||||
Ref: #comment-blocks35706
|
||||
Node: Including other files35882
|
||||
Ref: #including-other-files36062
|
||||
Node: Default year36470
|
||||
Ref: #default-year36639
|
||||
Node: Declaring commodities37046
|
||||
Ref: #declaring-commodities37229
|
||||
Node: Default commodity38890
|
||||
Ref: #default-commodity39066
|
||||
Node: Market prices39700
|
||||
Ref: #market-prices39865
|
||||
Node: Declaring accounts40706
|
||||
Ref: #declaring-accounts40882
|
||||
Node: Account comments41807
|
||||
Ref: #account-comments41970
|
||||
Node: Account subdirectives42394
|
||||
Ref: #account-subdirectives42589
|
||||
Node: Account types42902
|
||||
Ref: #account-types43086
|
||||
Node: Account display order44728
|
||||
Ref: #account-display-order44898
|
||||
Node: Rewriting accounts46049
|
||||
Ref: #rewriting-accounts46234
|
||||
Node: Basic aliases46960
|
||||
Ref: #basic-aliases47106
|
||||
Node: Regex aliases47810
|
||||
Ref: #regex-aliases47982
|
||||
Node: Combining aliases48700
|
||||
Ref: #combining-aliases48878
|
||||
Node: end aliases50154
|
||||
Ref: #end-aliases50302
|
||||
Node: Default parent account50403
|
||||
Ref: #default-parent-account50569
|
||||
Node: Periodic transactions51453
|
||||
Ref: #periodic-transactions51652
|
||||
Node: Periodic rule syntax53524
|
||||
Ref: #periodic-rule-syntax53730
|
||||
Node: Two spaces between period expression and description!54434
|
||||
Ref: #two-spaces-between-period-expression-and-description54753
|
||||
Node: Forecasting with periodic transactions55437
|
||||
Ref: #forecasting-with-periodic-transactions55742
|
||||
Node: Budgeting with periodic transactions57768
|
||||
Ref: #budgeting-with-periodic-transactions58007
|
||||
Node: Auto postings / transaction modifiers58456
|
||||
Ref: #auto-postings-transaction-modifiers58668
|
||||
Node: Auto postings and dates61153
|
||||
Ref: #auto-postings-and-dates61410
|
||||
Node: Auto postings and transaction balancing / inferred amounts / balance assertions61585
|
||||
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions61960
|
||||
Node: Auto posting tags62338
|
||||
Ref: #auto-posting-tags62577
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
@ -211,14 +211,13 @@ FILE FORMAT
|
||||
Some examples:
|
||||
|
||||
# a file comment
|
||||
|
||||
; also a file comment
|
||||
; another file comment
|
||||
* also a file comment, useful in org/orgstruct mode
|
||||
|
||||
comment
|
||||
This is a multiline file comment,
|
||||
which continues until a line
|
||||
where the "end comment" string
|
||||
appears on its own (or end of file).
|
||||
A multiline file comment, which continues
|
||||
until a line containing just "end comment"
|
||||
(or end of file).
|
||||
end comment
|
||||
|
||||
2012/5/14 something ; a transaction comment
|
||||
@ -661,9 +660,6 @@ FILE FORMAT
|
||||
tive rective rec- 2018/06)
|
||||
tives
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
account any document account names, de- all entries in all
|
||||
text clare account types & dis- files, before or
|
||||
play order after
|
||||
@ -1304,6 +1300,13 @@ FILE FORMAT
|
||||
symbol S). The matched posting's amount will be multiplied by N, and
|
||||
its commodity symbol will be replaced with S.
|
||||
|
||||
A query term containing spaces must be enclosed in single or double
|
||||
quotes, as on the command line. Eg, note the quotes around the second
|
||||
query term below:
|
||||
|
||||
= expenses:groceries 'expenses:dining out'
|
||||
(budget:funds:dining out) *-1
|
||||
|
||||
These rules have global effect - a rule appearing anywhere in your data
|
||||
can potentially affect any transaction, including transactions recorded
|
||||
above it or in another file.
|
||||
|
||||
@ -428,6 +428,27 @@ Default: the full terminal width.
|
||||
\f[C]-f\f[R].
|
||||
Default: \f[C]\[ti]/.hledger.journal\f[R] (on windows, perhaps
|
||||
\f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||
.PP
|
||||
A typical value is \f[C]\[ti]/DIR/YYYY.journal\f[R], where DIR is a
|
||||
version-controlled finance directory and YYYY is the current year.
|
||||
Or \f[C]\[ti]/DIR/current.journal\f[R], where current.journal is a
|
||||
symbolic link to YYYY.journal.
|
||||
.PP
|
||||
On Mac computers, you can set this and other environment variables in a
|
||||
more thorough way that also affects applications started from the GUI
|
||||
(say, an Emacs dock icon).
|
||||
Eg on MacOS Catalina I have a \f[C]\[ti]/.MacOSX/environment.plist\f[R]
|
||||
file containing
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
{
|
||||
\[dq]LEDGER_FILE\[dq] : \[dq]\[ti]/finance/current.journal\[dq]
|
||||
}
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
To see the effect you may need to \f[C]killall Dock\f[R], or reboot.
|
||||
.SH FILES
|
||||
.PP
|
||||
Reads data from one or more files in hledger journal, timeclock,
|
||||
|
||||
@ -446,6 +446,22 @@ File: hledger-ui.info, Node: ENVIRONMENT, Next: FILES, Prev: SCREENS, Up: To
|
||||
Default: '~/.hledger.journal' (on windows, perhaps
|
||||
'C:/Users/USER/.hledger.journal').
|
||||
|
||||
A typical value is '~/DIR/YYYY.journal', where DIR is a
|
||||
version-controlled finance directory and YYYY is the current year. Or
|
||||
'~/DIR/current.journal', where current.journal is a symbolic link to
|
||||
YYYY.journal.
|
||||
|
||||
On Mac computers, you can set this and other environment variables in
|
||||
a more thorough way that also affects applications started from the GUI
|
||||
(say, an Emacs dock icon). Eg on MacOS Catalina I have a
|
||||
'~/.MacOSX/environment.plist' file containing
|
||||
|
||||
{
|
||||
"LEDGER_FILE" : "~/finance/current.journal"
|
||||
}
|
||||
|
||||
To see the effect you may need to 'killall Dock', or reboot.
|
||||
|
||||
|
||||
File: hledger-ui.info, Node: FILES, Next: BUGS, Prev: ENVIRONMENT, Up: Top
|
||||
|
||||
@ -504,10 +520,10 @@ Node: Error screen15173
|
||||
Ref: #error-screen15295
|
||||
Node: ENVIRONMENT15539
|
||||
Ref: #environment15653
|
||||
Node: FILES15880
|
||||
Ref: #files15979
|
||||
Node: BUGS16192
|
||||
Ref: #bugs16269
|
||||
Node: FILES16460
|
||||
Ref: #files16559
|
||||
Node: BUGS16772
|
||||
Ref: #bugs16849
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
@ -378,6 +378,21 @@ ENVIRONMENT
|
||||
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
|
||||
nal).
|
||||
|
||||
A typical value is ~/DIR/YYYY.journal, where DIR is a version-con-
|
||||
trolled finance directory and YYYY is the current year. Or ~/DIR/cur-
|
||||
rent.journal, where current.journal is a symbolic link to YYYY.journal.
|
||||
|
||||
On Mac computers, you can set this and other environment variables in a
|
||||
more thorough way that also affects applications started from the GUI
|
||||
(say, an Emacs dock icon). Eg on MacOS Catalina I have a ~/.MacOSX/en-
|
||||
vironment.plist file containing
|
||||
|
||||
{
|
||||
"LEDGER_FILE" : "~/finance/current.journal"
|
||||
}
|
||||
|
||||
To see the effect you may need to killall Dock, or reboot.
|
||||
|
||||
FILES
|
||||
Reads data from one or more files in hledger journal, timeclock, time-
|
||||
dot, or CSV format specified with -f, or $LEDGER_FILE, or
|
||||
|
||||
@ -375,6 +375,27 @@ only want to serve the API.
|
||||
\f[C]-f\f[R].
|
||||
Default: \f[C]\[ti]/.hledger.journal\f[R] (on windows, perhaps
|
||||
\f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||
.PP
|
||||
A typical value is \f[C]\[ti]/DIR/YYYY.journal\f[R], where DIR is a
|
||||
version-controlled finance directory and YYYY is the current year.
|
||||
Or \f[C]\[ti]/DIR/current.journal\f[R], where current.journal is a
|
||||
symbolic link to YYYY.journal.
|
||||
.PP
|
||||
On Mac computers, you can set this and other environment variables in a
|
||||
more thorough way that also affects applications started from the GUI
|
||||
(say, an Emacs dock icon).
|
||||
Eg on MacOS Catalina I have a \f[C]\[ti]/.MacOSX/environment.plist\f[R]
|
||||
file containing
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
{
|
||||
\[dq]LEDGER_FILE\[dq] : \[dq]\[ti]/finance/current.journal\[dq]
|
||||
}
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
To see the effect you may need to \f[C]killall Dock\f[R], or reboot.
|
||||
.SH FILES
|
||||
.PP
|
||||
Reads data from one or more files in hledger journal, timeclock,
|
||||
|
||||
@ -379,6 +379,22 @@ File: hledger-web.info, Node: ENVIRONMENT, Next: FILES, Prev: JSON API, Up:
|
||||
Default: '~/.hledger.journal' (on windows, perhaps
|
||||
'C:/Users/USER/.hledger.journal').
|
||||
|
||||
A typical value is '~/DIR/YYYY.journal', where DIR is a
|
||||
version-controlled finance directory and YYYY is the current year. Or
|
||||
'~/DIR/current.journal', where current.journal is a symbolic link to
|
||||
YYYY.journal.
|
||||
|
||||
On Mac computers, you can set this and other environment variables in
|
||||
a more thorough way that also affects applications started from the GUI
|
||||
(say, an Emacs dock icon). Eg on MacOS Catalina I have a
|
||||
'~/.MacOSX/environment.plist' file containing
|
||||
|
||||
{
|
||||
"LEDGER_FILE" : "~/finance/current.journal"
|
||||
}
|
||||
|
||||
To see the effect you may need to 'killall Dock', or reboot.
|
||||
|
||||
|
||||
File: hledger-web.info, Node: FILES, Next: BUGS, Prev: ENVIRONMENT, Up: Top
|
||||
|
||||
@ -422,10 +438,10 @@ Node: JSON API11063
|
||||
Ref: #json-api11177
|
||||
Node: ENVIRONMENT12618
|
||||
Ref: #environment12734
|
||||
Node: FILES12887
|
||||
Ref: #files12987
|
||||
Node: BUGS13200
|
||||
Ref: #bugs13278
|
||||
Node: FILES13467
|
||||
Ref: #files13567
|
||||
Node: BUGS13780
|
||||
Ref: #bugs13858
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
@ -333,6 +333,21 @@ ENVIRONMENT
|
||||
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
|
||||
nal).
|
||||
|
||||
A typical value is ~/DIR/YYYY.journal, where DIR is a version-con-
|
||||
trolled finance directory and YYYY is the current year. Or ~/DIR/cur-
|
||||
rent.journal, where current.journal is a symbolic link to YYYY.journal.
|
||||
|
||||
On Mac computers, you can set this and other environment variables in a
|
||||
more thorough way that also affects applications started from the GUI
|
||||
(say, an Emacs dock icon). Eg on MacOS Catalina I have a ~/.MacOSX/en-
|
||||
vironment.plist file containing
|
||||
|
||||
{
|
||||
"LEDGER_FILE" : "~/finance/current.journal"
|
||||
}
|
||||
|
||||
To see the effect you may need to killall Dock, or reboot.
|
||||
|
||||
FILES
|
||||
Reads data from one or more files in hledger journal, timeclock, time-
|
||||
dot, or CSV format specified with -f, or $LEDGER_FILE, or
|
||||
|
||||
@ -289,7 +289,7 @@ Balance changes in 2008:
|
||||
------------++---------------------------------------------------
|
||||
|| $-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:
|
||||
|
||||
|
||||
@ -63,7 +63,7 @@ ignoring already-seen entries in import data, such as downloaded CSV
|
||||
files. Eg:
|
||||
|
||||
$ hledger -f bank1.csv print --new
|
||||
# shows transactions added since last print --new on this file
|
||||
(shows transactions added since last print --new on this file)
|
||||
|
||||
This assumes that transactions added to FILE always have same or
|
||||
increasing dates, and that transactions on the same day do not get
|
||||
|
||||
@ -68,84 +68,439 @@ follow the prompts.
|
||||
Then try some commands like \f[C]hledger print\f[R] or
|
||||
\f[C]hledger balance\f[R].
|
||||
Run \f[C]hledger\f[R] with no arguments for a list of commands.
|
||||
.SH EXAMPLES
|
||||
.SH COMMON TASKS
|
||||
.PP
|
||||
Two simple transactions in hledger journal format:
|
||||
Here are some quick examples of how to do some basic tasks with hledger.
|
||||
For more details, see the reference section below, the
|
||||
hledger_journal(5) manual, or the more extensive docs at
|
||||
https://hledger.org.
|
||||
.SS Get help
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
2015/9/30 gift received
|
||||
assets:cash $20
|
||||
income:gifts
|
||||
|
||||
2015/10/16 farmers market
|
||||
expenses:food $10
|
||||
assets:cash
|
||||
$ hledger # show available commands
|
||||
$ hledger --help # show common options
|
||||
$ hledger CMD --help # show common and command options, and command help
|
||||
$ hledger help # show available manuals/topics
|
||||
$ hledger help hledger # show hledger manual as info/man/text (auto-chosen)
|
||||
$ hledger help journal --man # show the journal manual as a man page
|
||||
$ hledger help --help # show more detailed help for the help command
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
Some basic reports:
|
||||
Find more docs, chat, mail list, reddit, issue tracker:
|
||||
https://hledger.org#help-feedback
|
||||
.SS Starting a Journal
|
||||
.PP
|
||||
hledger looks for your accounting data in a journal file,
|
||||
\f[C]$HOME/.hledger.journal\f[R] by default:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger stats
|
||||
The hledger journal file \[dq]/Users/simon/.hledger.journal\[dq] was not found.
|
||||
Please create it first, eg with \[dq]hledger add\[dq] or a text editor.
|
||||
Or, specify an existing journal file with -f or LEDGER_FILE.
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
You can override this by setting the \f[C]LEDGER_FILE\f[R] environment
|
||||
variable.
|
||||
It\[aq]s a good practice to keep this important file under version
|
||||
control, and to start a new file each year.
|
||||
So you could do something like this:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ mkdir \[ti]/finance
|
||||
$ cd \[ti]/finance
|
||||
$ git init
|
||||
Initialized empty Git repository in /Users/simon/finance/.git/
|
||||
$ touch 2020.journal
|
||||
$ echo \[dq]export LEDGER_FILE=$HOME/finance/2020.journal\[dq] >> \[ti]/.bashrc
|
||||
$ source \[ti]/.bashrc
|
||||
$ hledger stats
|
||||
Main file : /Users/simon/finance/2020.journal
|
||||
Included files :
|
||||
Transactions span : to (0 days)
|
||||
Last transaction : none
|
||||
Transactions : 0 (0.0 per day)
|
||||
Transactions last 30 days: 0 (0.0 per day)
|
||||
Transactions last 7 days : 0 (0.0 per day)
|
||||
Payees/descriptions : 0
|
||||
Accounts : 0 (depth 0)
|
||||
Commodities : 0 ()
|
||||
Market prices : 0 ()
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Setting Opening Balances
|
||||
.PP
|
||||
Pick a starting date for which you can look up the balances of some
|
||||
real-world assets (bank accounts, wallet..) and liabilities (credit
|
||||
cards..).
|
||||
.PP
|
||||
To avoid a lot of data entry, you may want to start with just one or two
|
||||
accounts, like your checking account or cash wallet; and pick a recent
|
||||
starting date, like today or the start of the week.
|
||||
You can always come back later and add more accounts and older
|
||||
transactions, eg going back to january 1st.
|
||||
.PP
|
||||
Add an opening balances transaction to the journal, declaring the
|
||||
balances on this date.
|
||||
Here are two ways to do it:
|
||||
.IP \[bu] 2
|
||||
The first way: open the journal in any text editor and save an entry
|
||||
like this:
|
||||
.RS 2
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
2020-01-01 * opening balances
|
||||
assets:bank:checking $1000 = $1000
|
||||
assets:bank:savings $2000 = $2000
|
||||
assets:cash $100 = $100
|
||||
liabilities:creditcard $-50 = $-$50
|
||||
equity:opening/closing balances
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
These are start-of-day balances, ie whatever was in the account at the
|
||||
end of the previous day.
|
||||
.PP
|
||||
The * after the date is an optional status flag.
|
||||
Here it means \[dq]cleared & confirmed\[dq].
|
||||
.PP
|
||||
The currency symbols are optional, but usually a good idea as you\[aq]ll
|
||||
be dealing with multiple currencies sooner or later.
|
||||
.PP
|
||||
The = amounts are optional balance assertions, providing extra error
|
||||
checking.
|
||||
.RE
|
||||
.IP \[bu] 2
|
||||
The second way: run \f[C]hledger add\f[R] and follow the prompts to
|
||||
record a similar transaction:
|
||||
.RS 2
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger add
|
||||
Adding transactions to journal file /Users/simon/finance/2020.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 go one step backward.
|
||||
To end a transaction, enter . when prompted.
|
||||
To quit, enter . at a date prompt or press control-d or control-c.
|
||||
Date [2020-02-07]: 2020-01-01
|
||||
Description: * opening balances
|
||||
Account 1: assets:bank:checking
|
||||
Amount 1: $1000
|
||||
Account 2: assets:bank:savings
|
||||
Amount 2 [$-1000]: $2000
|
||||
Account 3: assets:cash
|
||||
Amount 3 [$-3000]: $100
|
||||
Account 4: liabilities:creditcard
|
||||
Amount 4 [$-3100]: $-50
|
||||
Account 5: equity:opening/closing balances
|
||||
Amount 5 [$-3050]:
|
||||
Account 6 (or . or enter to finish this transaction): .
|
||||
2020-01-01 * opening balances
|
||||
assets:bank:checking $1000
|
||||
assets:bank:savings $2000
|
||||
assets:cash $100
|
||||
liabilities:creditcard $-50
|
||||
equity:opening/closing balances $-3050
|
||||
|
||||
Save this transaction to the journal ? [y]:
|
||||
Saved.
|
||||
Starting the next transaction (. or ctrl-D/ctrl-C to quit)
|
||||
Date [2020-01-01]: .
|
||||
\f[R]
|
||||
.fi
|
||||
.RE
|
||||
.PP
|
||||
If you\[aq]re using version control, this could be a good time to commit
|
||||
the journal.
|
||||
Eg:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ git commit -am \[aq]initial balances\[aq] 2020.journal
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Recording Transactions
|
||||
.PP
|
||||
As you spend or receive money, you can record these transactions using
|
||||
one of the methods above (text editor, hledger add) or by using the
|
||||
hledger-iadd or hledger-web add-ons, or by using the import command to
|
||||
convert CSV data downloaded from your bank.
|
||||
.PP
|
||||
Here are some simple transactions, see the hledger_journal(5) manual and
|
||||
hledger.org for more ideas:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
2020/1/10 * gift received
|
||||
assets:cash $20
|
||||
income:gifts
|
||||
|
||||
2020.1.12 * farmers market
|
||||
expenses:food $13
|
||||
assets:cash
|
||||
|
||||
2020-01-15 paycheck
|
||||
income:salary
|
||||
assets:bank:checking $1000
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Reconciling
|
||||
.PP
|
||||
Periodically you should reconcile - compare your hledger-reported
|
||||
balances against external sources of truth, like bank statements or your
|
||||
bank\[aq]s website - to be sure that your ledger accurately represents
|
||||
the real-world balances (and, that the real-world institutions have not
|
||||
made a mistake!).
|
||||
This gets easy and fast with (1) practice and (2) frequency.
|
||||
If you do it daily, it can take 2-10 minutes.
|
||||
If you let it pile up, expect it to take longer as you hunt down errors
|
||||
and discrepancies.
|
||||
.PP
|
||||
A typical workflow:
|
||||
.IP "1." 3
|
||||
Reconcile cash.
|
||||
Count what\[aq]s in your wallet.
|
||||
Compare with what hledger reports (\f[C]hledger bal cash\f[R]).
|
||||
If they are different, try to remember the missing transaction, or look
|
||||
for the error in the already-recorded transactions.
|
||||
A register report can be helpful (\f[C]hledger reg cash\f[R]).
|
||||
If you can\[aq]t find the error, add an adjustment transaction.
|
||||
Eg if you have $105 after the above, and can\[aq]t explain the missing
|
||||
$2, it could be:
|
||||
.RS 4
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
2020-01-16 * adjust cash
|
||||
assets:cash $-2 = $105
|
||||
expenses:misc
|
||||
\f[R]
|
||||
.fi
|
||||
.RE
|
||||
.IP "2." 3
|
||||
Reconcile checking.
|
||||
Log in to your bank\[aq]s website.
|
||||
Compare today\[aq]s (cleared) balance with hledger\[aq]s cleared balance
|
||||
(\f[C]hledger bal checking -C\f[R]).
|
||||
If they are different, track down the error or record the missing
|
||||
transaction(s) or add an adjustment transaction, similar to the above.
|
||||
Unlike the cash case, you can usually compare the transaction history
|
||||
and running balance from your bank with the one reported by
|
||||
\f[C]hledger reg checking -C\f[R].
|
||||
This will be easier if you generally record transaction dates quite
|
||||
similar to your bank\[aq]s clearing dates.
|
||||
.IP "3." 3
|
||||
Repeat for other asset/liability accounts.
|
||||
.PP
|
||||
Tip: instead of the register command, use hledger-ui to see a
|
||||
live-updating register while you edit the journal:
|
||||
\f[C]hledger-ui --watch --register checking -C\f[R]
|
||||
.PP
|
||||
After reconciling, it could be a good time to mark the reconciled
|
||||
transactions\[aq] status as \[dq]cleared and confirmed\[dq], if you want
|
||||
to track that, by adding the \f[C]*\f[R] marker.
|
||||
Eg in the paycheck transaction above, insert \f[C]*\f[R] between
|
||||
\f[C]2020-01-15\f[R] and \f[C]paycheck\f[R]
|
||||
.PP
|
||||
If you\[aq]re using version control, this can be another good time to
|
||||
commit:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ git commit -am \[aq]txns\[aq] 2020.journal
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Reporting
|
||||
.PP
|
||||
Here are some basic reports.
|
||||
.PP
|
||||
Show all transactions:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger print
|
||||
2015-09-30 gift received
|
||||
assets:cash $20
|
||||
income:gifts $-20
|
||||
2020-01-01 * opening balances
|
||||
assets:bank:checking $1000
|
||||
assets:bank:savings $2000
|
||||
assets:cash $100
|
||||
liabilities:creditcard $-50
|
||||
equity:opening/closing balances $-3050
|
||||
|
||||
2015-10-16 farmers market
|
||||
expenses:food $10
|
||||
assets:cash $-10
|
||||
2020-01-10 * gift received
|
||||
assets:cash $20
|
||||
income:gifts
|
||||
|
||||
2020-01-12 * farmers market
|
||||
expenses:food $13
|
||||
assets:cash
|
||||
|
||||
2020-01-15 * paycheck
|
||||
income:salary
|
||||
assets:bank:checking $1000
|
||||
|
||||
2020-01-16 * adjust cash
|
||||
assets:cash $-2 = $105
|
||||
expenses:misc
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
Show account names, and their hierarchy:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger accounts --tree
|
||||
assets
|
||||
bank
|
||||
checking
|
||||
savings
|
||||
cash
|
||||
equity
|
||||
opening/closing balances
|
||||
expenses
|
||||
food
|
||||
misc
|
||||
income
|
||||
gifts
|
||||
salary
|
||||
liabilities
|
||||
creditcard
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
Show all account totals:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger balance
|
||||
$10 assets:cash
|
||||
$10 expenses:food
|
||||
$-20 income:gifts
|
||||
$4105 assets
|
||||
$4000 bank
|
||||
$2000 checking
|
||||
$2000 savings
|
||||
$105 cash
|
||||
$-3050 equity:opening/closing balances
|
||||
$15 expenses
|
||||
$13 food
|
||||
$2 misc
|
||||
$-1020 income
|
||||
$-20 gifts
|
||||
$-1000 salary
|
||||
$-50 liabilities:creditcard
|
||||
--------------------
|
||||
0
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
Show only asset and liability balances, as a flat list, limited to depth
|
||||
2:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger bal assets liabilities --flat -2
|
||||
$4000 assets:bank
|
||||
$105 assets:cash
|
||||
$-50 liabilities:creditcard
|
||||
--------------------
|
||||
$4055
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
Show the same thing without negative numbers, formatted as a simple
|
||||
balance sheet:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger bs --flat -2
|
||||
Balance Sheet 2020-01-16
|
||||
|
||||
|| 2020-01-16
|
||||
========================++============
|
||||
Assets ||
|
||||
------------------------++------------
|
||||
assets:bank || $4000
|
||||
assets:cash || $105
|
||||
------------------------++------------
|
||||
|| $4105
|
||||
========================++============
|
||||
Liabilities ||
|
||||
------------------------++------------
|
||||
liabilities:creditcard || $50
|
||||
------------------------++------------
|
||||
|| $50
|
||||
========================++============
|
||||
Net: || $4055
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
The final total is your \[dq]net worth\[dq] on the end date.
|
||||
(Or use \f[C]bse\f[R] for a full balance sheet with equity.)
|
||||
.PP
|
||||
Show income and expense totals, formatted as an income statement:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
hledger is
|
||||
Income Statement 2020-01-01-2020-01-16
|
||||
|
||||
|| 2020-01-01-2020-01-16
|
||||
===============++=======================
|
||||
Revenues ||
|
||||
---------------++-----------------------
|
||||
income:gifts || $20
|
||||
income:salary || $1000
|
||||
---------------++-----------------------
|
||||
|| $1020
|
||||
===============++=======================
|
||||
Expenses ||
|
||||
---------------++-----------------------
|
||||
expenses:food || $13
|
||||
expenses:misc || $2
|
||||
---------------++-----------------------
|
||||
|| $15
|
||||
===============++=======================
|
||||
Net: || $1005
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
The final total is your net income during this period.
|
||||
.PP
|
||||
Show transactions affecting your wallet, with running total:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger register cash
|
||||
2015-09-30 gift received assets:cash $20 $20
|
||||
2015-10-16 farmers market assets:cash $-10 $10
|
||||
2020-01-01 opening balances assets:cash $100 $100
|
||||
2020-01-10 gift received assets:cash $20 $120
|
||||
2020-01-12 farmers market assets:cash $-13 $107
|
||||
2020-01-16 adjust cash assets:cash $-2 $105
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
More commands:
|
||||
Show weekly posting counts as a bar chart:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger # show available commands
|
||||
$ hledger add # add more transactions to the journal file
|
||||
$ hledger balance # all accounts with aggregated balances
|
||||
$ hledger balance --help # show detailed help for balance command
|
||||
$ hledger balance --depth 1 # only top-level accounts
|
||||
$ hledger register # show account postings, with running total
|
||||
$ hledger reg income # show postings to/from income accounts
|
||||
$ hledger reg \[aq]assets:some bank:checking\[aq] # show postings to/from this checking account
|
||||
$ hledger print desc:shop # show transactions with shop in the description
|
||||
$ hledger activity -W # show transaction counts per week as a bar chart
|
||||
$ hledger activity -W
|
||||
2019-12-30 *****
|
||||
2020-01-06 ****
|
||||
2020-01-13 ****
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Starting a New File
|
||||
.PP
|
||||
At the end of the year, you may want to continue your journal in a new
|
||||
file, so that old transactions don\[aq]t slow down or clutter your
|
||||
reports, and to help ensure the integrity of your accounting history.
|
||||
See the close command.
|
||||
.SH OPTIONS
|
||||
.SS General options
|
||||
.PP
|
||||
@ -273,7 +628,6 @@ Or, you can run the addon executable directly:
|
||||
.PP
|
||||
Most hledger commands accept arguments after the command name, which are
|
||||
often a query, filtering the data in some way.
|
||||
.SS Argument files
|
||||
.PP
|
||||
You can save a set of command line options/arguments in a file, and then
|
||||
reuse them by writing \f[C]\[at]FILENAME\f[R] as a command line
|
||||
@ -326,6 +680,120 @@ Good:
|
||||
.fi
|
||||
.PP
|
||||
See also: Save frequently used options.
|
||||
.SS Queries
|
||||
.PP
|
||||
One of hledger\[aq]s strengths is being able to quickly report on
|
||||
precise subsets of your data.
|
||||
Most commands accept an optional query expression, written as arguments
|
||||
after the command name, to filter the data by date, account name or
|
||||
other criteria.
|
||||
The syntax is similar to a web search: one or more space-separated
|
||||
search terms, quotes to enclose whitespace, prefixes to match specific
|
||||
fields, a not: prefix to negate the match.
|
||||
.PP
|
||||
We do not yet support arbitrary boolean combinations of search terms;
|
||||
instead most commands show transactions/postings/accounts which match
|
||||
(or negatively match):
|
||||
.IP \[bu] 2
|
||||
any of the description terms AND
|
||||
.IP \[bu] 2
|
||||
any of the account terms AND
|
||||
.IP \[bu] 2
|
||||
any of the status terms AND
|
||||
.IP \[bu] 2
|
||||
all the other terms.
|
||||
.PP
|
||||
The print command instead shows transactions which:
|
||||
.IP \[bu] 2
|
||||
match any of the description terms AND
|
||||
.IP \[bu] 2
|
||||
have any postings matching any of the positive account terms AND
|
||||
.IP \[bu] 2
|
||||
have no postings matching any of the negative account terms AND
|
||||
.IP \[bu] 2
|
||||
match all the other terms.
|
||||
.PP
|
||||
The following kinds of search terms can be used.
|
||||
Remember these can also be prefixed with \f[B]\f[CB]not:\f[B]\f[R], eg
|
||||
to exclude a particular subaccount.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]REGEX\f[R]\f[B], \f[R]\f[C]acct:REGEX\f[R]\f[B]\f[R]
|
||||
match account names by this regular expression.
|
||||
(With no prefix, \f[C]acct:\f[R] is assumed.)
|
||||
same as above
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N\f[R]\f[B]\f[R]
|
||||
match postings with a single-commodity amount that is equal to, less
|
||||
than, or greater than N.
|
||||
(Multi-commodity amounts are not tested, and will always match.) The
|
||||
comparison has two modes: if N is preceded by a + or - sign (or is 0),
|
||||
the two signed numbers are compared.
|
||||
Otherwise, the absolute magnitudes are compared, ignoring sign.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]code:REGEX\f[R]\f[B]\f[R]
|
||||
match by transaction code (eg check number)
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]cur:REGEX\f[R]\f[B]\f[R]
|
||||
match postings or transactions including any amounts whose
|
||||
currency/commodity symbol is fully matched by REGEX.
|
||||
(For a partial match, use \f[C].*REGEX.*\f[R]).
|
||||
Note, to match characters which are regex-significant, like the dollar
|
||||
sign (\f[C]$\f[R]), you need to prepend \f[C]\[rs]\f[R].
|
||||
And when using the command line you need to add one more level of
|
||||
quoting to hide it from the shell, so eg do:
|
||||
\f[C]hledger print cur:\[aq]\[rs]$\[aq]\f[R] or
|
||||
\f[C]hledger print cur:\[rs]\[rs]$\f[R].
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]desc:REGEX\f[R]\f[B]\f[R]
|
||||
match transaction descriptions.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]date:PERIODEXPR\f[R]\f[B]\f[R]
|
||||
match dates within the specified period.
|
||||
PERIODEXPR is a period expression (with no report interval).
|
||||
Examples: \f[C]date:2016\f[R], \f[C]date:thismonth\f[R],
|
||||
\f[C]date:2000/2/1-2/15\f[R], \f[C]date:lastweek-\f[R].
|
||||
If the \f[C]--date2\f[R] command line flag is present, this matches
|
||||
secondary dates instead.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]date2:PERIODEXPR\f[R]\f[B]\f[R]
|
||||
match secondary dates within the specified period.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]depth:N\f[R]\f[B]\f[R]
|
||||
match (or display, depending on command) accounts at or above this depth
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]note:REGEX\f[R]\f[B]\f[R]
|
||||
match transaction notes (part of description right of \f[C]|\f[R], or
|
||||
whole description when there\[aq]s no \f[C]|\f[R])
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]payee:REGEX\f[R]\f[B]\f[R]
|
||||
match transaction payee/payer names (part of description left of
|
||||
\f[C]|\f[R], or whole description when there\[aq]s no \f[C]|\f[R])
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]real:, real:0\f[R]\f[B]\f[R]
|
||||
match real or virtual postings respectively
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]status:, status:!, status:*\f[R]\f[B]\f[R]
|
||||
match unmarked, pending, or cleared transactions respectively
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]tag:REGEX[=REGEX]\f[R]\f[B]\f[R]
|
||||
match by tag name, and optionally also by tag value.
|
||||
Note a tag: query is considered to match a transaction if it matches any
|
||||
of the postings.
|
||||
Also remember that postings inherit the tags of their parent
|
||||
transaction.
|
||||
.PP
|
||||
The following special search term is used automatically in hledger-web,
|
||||
only:
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]inacct:ACCTNAME\f[R]\f[B]\f[R]
|
||||
tells hledger-web to show the transaction register for this account.
|
||||
Can be filtered further with \f[C]acct\f[R] etc.
|
||||
.PP
|
||||
Some of these can also be expressed as command-line options (eg
|
||||
\f[C]depth:2\f[R] is equivalent to \f[C]--depth 2\f[R]).
|
||||
Generally you can mix options and query arguments, and the resulting
|
||||
query will be their intersection (perhaps excluding the
|
||||
\f[C]-p/--period\f[R] option).
|
||||
.SS Special characters in arguments and queries
|
||||
.PP
|
||||
In shell command lines, option and argument values which contain
|
||||
@ -1650,120 +2118,6 @@ Eg to search for amounts with the dollar sign in hledger-web, write
|
||||
On the command line, some metacharacters like \f[C]$\f[R] have a special
|
||||
meaning to the shell and so must be escaped at least once more.
|
||||
See Special characters.
|
||||
.SH QUERIES
|
||||
.PP
|
||||
One of hledger\[aq]s strengths is being able to quickly report on
|
||||
precise subsets of your data.
|
||||
Most commands accept an optional query expression, written as arguments
|
||||
after the command name, to filter the data by date, account name or
|
||||
other criteria.
|
||||
The syntax is similar to a web search: one or more space-separated
|
||||
search terms, quotes to enclose whitespace, prefixes to match specific
|
||||
fields, a not: prefix to negate the match.
|
||||
.PP
|
||||
We do not yet support arbitrary boolean combinations of search terms;
|
||||
instead most commands show transactions/postings/accounts which match
|
||||
(or negatively match):
|
||||
.IP \[bu] 2
|
||||
any of the description terms AND
|
||||
.IP \[bu] 2
|
||||
any of the account terms AND
|
||||
.IP \[bu] 2
|
||||
any of the status terms AND
|
||||
.IP \[bu] 2
|
||||
all the other terms.
|
||||
.PP
|
||||
The print command instead shows transactions which:
|
||||
.IP \[bu] 2
|
||||
match any of the description terms AND
|
||||
.IP \[bu] 2
|
||||
have any postings matching any of the positive account terms AND
|
||||
.IP \[bu] 2
|
||||
have no postings matching any of the negative account terms AND
|
||||
.IP \[bu] 2
|
||||
match all the other terms.
|
||||
.PP
|
||||
The following kinds of search terms can be used.
|
||||
Remember these can also be prefixed with \f[B]\f[CB]not:\f[B]\f[R], eg
|
||||
to exclude a particular subaccount.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]REGEX\f[R]\f[B], \f[R]\f[C]acct:REGEX\f[R]\f[B]\f[R]
|
||||
match account names by this regular expression.
|
||||
(With no prefix, \f[C]acct:\f[R] is assumed.)
|
||||
same as above
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N\f[R]\f[B]\f[R]
|
||||
match postings with a single-commodity amount that is equal to, less
|
||||
than, or greater than N.
|
||||
(Multi-commodity amounts are not tested, and will always match.) The
|
||||
comparison has two modes: if N is preceded by a + or - sign (or is 0),
|
||||
the two signed numbers are compared.
|
||||
Otherwise, the absolute magnitudes are compared, ignoring sign.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]code:REGEX\f[R]\f[B]\f[R]
|
||||
match by transaction code (eg check number)
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]cur:REGEX\f[R]\f[B]\f[R]
|
||||
match postings or transactions including any amounts whose
|
||||
currency/commodity symbol is fully matched by REGEX.
|
||||
(For a partial match, use \f[C].*REGEX.*\f[R]).
|
||||
Note, to match characters which are regex-significant, like the dollar
|
||||
sign (\f[C]$\f[R]), you need to prepend \f[C]\[rs]\f[R].
|
||||
And when using the command line you need to add one more level of
|
||||
quoting to hide it from the shell, so eg do:
|
||||
\f[C]hledger print cur:\[aq]\[rs]$\[aq]\f[R] or
|
||||
\f[C]hledger print cur:\[rs]\[rs]$\f[R].
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]desc:REGEX\f[R]\f[B]\f[R]
|
||||
match transaction descriptions.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]date:PERIODEXPR\f[R]\f[B]\f[R]
|
||||
match dates within the specified period.
|
||||
PERIODEXPR is a period expression (with no report interval).
|
||||
Examples: \f[C]date:2016\f[R], \f[C]date:thismonth\f[R],
|
||||
\f[C]date:2000/2/1-2/15\f[R], \f[C]date:lastweek-\f[R].
|
||||
If the \f[C]--date2\f[R] command line flag is present, this matches
|
||||
secondary dates instead.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]date2:PERIODEXPR\f[R]\f[B]\f[R]
|
||||
match secondary dates within the specified period.
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]depth:N\f[R]\f[B]\f[R]
|
||||
match (or display, depending on command) accounts at or above this depth
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]note:REGEX\f[R]\f[B]\f[R]
|
||||
match transaction notes (part of description right of \f[C]|\f[R], or
|
||||
whole description when there\[aq]s no \f[C]|\f[R])
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]payee:REGEX\f[R]\f[B]\f[R]
|
||||
match transaction payee/payer names (part of description left of
|
||||
\f[C]|\f[R], or whole description when there\[aq]s no \f[C]|\f[R])
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]real:, real:0\f[R]\f[B]\f[R]
|
||||
match real or virtual postings respectively
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]status:, status:!, status:*\f[R]\f[B]\f[R]
|
||||
match unmarked, pending, or cleared transactions respectively
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]tag:REGEX[=REGEX]\f[R]\f[B]\f[R]
|
||||
match by tag name, and optionally also by tag value.
|
||||
Note a tag: query is considered to match a transaction if it matches any
|
||||
of the postings.
|
||||
Also remember that postings inherit the tags of their parent
|
||||
transaction.
|
||||
.PP
|
||||
The following special search term is used automatically in hledger-web,
|
||||
only:
|
||||
.TP
|
||||
\f[B]\f[R]\f[C]inacct:ACCTNAME\f[R]\f[B]\f[R]
|
||||
tells hledger-web to show the transaction register for this account.
|
||||
Can be filtered further with \f[C]acct\f[R] etc.
|
||||
.PP
|
||||
Some of these can also be expressed as command-line options (eg
|
||||
\f[C]depth:2\f[R] is equivalent to \f[C]--depth 2\f[R]).
|
||||
Generally you can mix options and query arguments, and the resulting
|
||||
query will be their intersection (perhaps excluding the
|
||||
\f[C]-p/--period\f[R] option).
|
||||
.SH COMMANDS
|
||||
.PP
|
||||
hledger provides a number of subcommands; \f[C]hledger\f[R] with no
|
||||
@ -2284,7 +2638,7 @@ Balance changes in 2008:
|
||||
------------++---------------------------------------------------
|
||||
|| $-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)
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
@ -3170,7 +3524,7 @@ Eg:
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger -f bank1.csv print --new
|
||||
# shows transactions added since last print --new on this file
|
||||
(shows transactions added since last print --new on this file)
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
@ -3677,7 +4031,7 @@ $ hledger test -- -pData.Amount --color=never
|
||||
.PP
|
||||
For help on these, see https://github.com/feuerbach/tasty#options
|
||||
(\f[C]-- --help\f[R] currently doesn\[aq]t show them).
|
||||
.SH ADD-ON COMMANDS
|
||||
.SS Add-on Commands
|
||||
.PP
|
||||
hledger also searches for external add-on commands, and will include
|
||||
these in the commands list.
|
||||
@ -3708,20 +4062,17 @@ advantage: they can use the same hledger (and haskell) library functions
|
||||
that built-in commands do, for command-line options, journal parsing,
|
||||
reporting, etc.
|
||||
.PP
|
||||
Here are some hledger add-ons available:
|
||||
.SS Official add-ons
|
||||
.PP
|
||||
These are maintained and released along with hledger.
|
||||
Two important add-ons are the hledger-ui and hledger-web user
|
||||
interfaces.
|
||||
These are maintained and released along with hledger:
|
||||
.SS ui
|
||||
.PP
|
||||
hledger-ui provides an efficient terminal interface.
|
||||
.SS web
|
||||
.PP
|
||||
hledger-web provides a simple web interface.
|
||||
.SS Third party add-ons
|
||||
.PP
|
||||
These are maintained separately, and usually updated shortly after a
|
||||
hledger release.
|
||||
Third party add-ons, maintained separately from hledger, include:
|
||||
.SS iadd
|
||||
.PP
|
||||
hledger-iadd is a more interactive, terminal UI replacement for the add
|
||||
@ -3730,22 +4081,10 @@ command.
|
||||
.PP
|
||||
hledger-interest generates interest transactions for an account
|
||||
according to various schemes.
|
||||
.SS Experimental add-ons
|
||||
.PP
|
||||
These are available in source form in the hledger repo\[aq]s bin/
|
||||
directory.
|
||||
They may be less mature and documented than built-in commands.
|
||||
Reading and tweaking these is a good way to start making your own!
|
||||
.SS autosync
|
||||
.PP
|
||||
hledger-autosync is a symbolic link for easily running ledger-autosync,
|
||||
if installed.
|
||||
ledger-autosync does deduplicating conversion of OFX data and some CSV
|
||||
formats, and can also download the data if your bank offers OFX Direct
|
||||
Connect.
|
||||
.SS chart
|
||||
.PP
|
||||
hledger-chart.hs is an old very basic pie chart generator.
|
||||
A few more experimental or old add-ons can be found in hledger\[aq]s
|
||||
bin/ directory.
|
||||
These are typically prototypes and not guaranteed to work.
|
||||
.SH ENVIRONMENT
|
||||
.PP
|
||||
\f[B]COLUMNS\f[R] The screen width used by the register command.
|
||||
@ -3755,6 +4094,27 @@ Default: the full terminal width.
|
||||
\f[C]-f\f[R].
|
||||
Default: \f[C]\[ti]/.hledger.journal\f[R] (on windows, perhaps
|
||||
\f[C]C:/Users/USER/.hledger.journal\f[R]).
|
||||
.PP
|
||||
A typical value is \f[C]\[ti]/DIR/YYYY.journal\f[R], where DIR is a
|
||||
version-controlled finance directory and YYYY is the current year.
|
||||
Or \f[C]\[ti]/DIR/current.journal\f[R], where current.journal is a
|
||||
symbolic link to YYYY.journal.
|
||||
.PP
|
||||
On Mac computers, you can set this and other environment variables in a
|
||||
more thorough way that also affects applications started from the GUI
|
||||
(say, an Emacs dock icon).
|
||||
Eg on MacOS Catalina I have a \f[C]\[ti]/.MacOSX/environment.plist\f[R]
|
||||
file containing
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
{
|
||||
\[dq]LEDGER_FILE\[dq] : \[dq]\[ti]/finance/current.journal\[dq]
|
||||
}
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
To see the effect you may need to \f[C]killall Dock\f[R], or reboot.
|
||||
.SH FILES
|
||||
.PP
|
||||
Reads data from one or more files in hledger journal, timeclock,
|
||||
|
||||
1244
hledger/hledger.info
1244
hledger/hledger.info
File diff suppressed because it is too large
Load Diff
@ -52,59 +52,355 @@ DESCRIPTION
|
||||
try some commands like hledger print or hledger balance. Run hledger
|
||||
with no arguments for a list of commands.
|
||||
|
||||
EXAMPLES
|
||||
Two simple transactions in hledger journal format:
|
||||
COMMON TASKS
|
||||
Here are some quick examples of how to do some basic tasks with
|
||||
hledger. For more details, see the reference section below, the
|
||||
hledger_journal(5) manual, or the more extensive docs at
|
||||
https://hledger.org.
|
||||
|
||||
2015/9/30 gift received
|
||||
Get help
|
||||
$ hledger # show available commands
|
||||
$ hledger --help # show common options
|
||||
$ hledger CMD --help # show common and command options, and command help
|
||||
$ hledger help # show available manuals/topics
|
||||
$ hledger help hledger # show hledger manual as info/man/text (auto-chosen)
|
||||
$ hledger help journal --man # show the journal manual as a man page
|
||||
$ hledger help --help # show more detailed help for the help command
|
||||
|
||||
Find more docs, chat, mail list, reddit, issue tracker:
|
||||
https://hledger.org#help-feedback
|
||||
|
||||
Starting a Journal
|
||||
hledger looks for your accounting data in a journal file,
|
||||
$HOME/.hledger.journal by default:
|
||||
|
||||
$ hledger stats
|
||||
The hledger journal file "/Users/simon/.hledger.journal" was not found.
|
||||
Please create it first, eg with "hledger add" or a text editor.
|
||||
Or, specify an existing journal file with -f or LEDGER_FILE.
|
||||
|
||||
You can override this by setting the LEDGER_FILE environment variable.
|
||||
It's a good practice to keep this important file under version control,
|
||||
and to start a new file each year. So you could do something like
|
||||
this:
|
||||
|
||||
$ mkdir ~/finance
|
||||
$ cd ~/finance
|
||||
$ git init
|
||||
Initialized empty Git repository in /Users/simon/finance/.git/
|
||||
$ touch 2020.journal
|
||||
$ echo "export LEDGER_FILE=$HOME/finance/2020.journal" >> ~/.bashrc
|
||||
$ source ~/.bashrc
|
||||
$ hledger stats
|
||||
Main file : /Users/simon/finance/2020.journal
|
||||
Included files :
|
||||
Transactions span : to (0 days)
|
||||
Last transaction : none
|
||||
Transactions : 0 (0.0 per day)
|
||||
Transactions last 30 days: 0 (0.0 per day)
|
||||
Transactions last 7 days : 0 (0.0 per day)
|
||||
Payees/descriptions : 0
|
||||
Accounts : 0 (depth 0)
|
||||
Commodities : 0 ()
|
||||
Market prices : 0 ()
|
||||
|
||||
Setting Opening Balances
|
||||
Pick a starting date for which you can look up the balances of some
|
||||
real-world assets (bank accounts, wallet..) and liabilities (credit
|
||||
cards..).
|
||||
|
||||
To avoid a lot of data entry, you may want to start with just one or
|
||||
two accounts, like your checking account or cash wallet; and pick a re-
|
||||
cent starting date, like today or the start of the week. You can al-
|
||||
ways come back later and add more accounts and older transactions, eg
|
||||
going back to january 1st.
|
||||
|
||||
Add an opening balances transaction to the journal, declaring the bal-
|
||||
ances on this date. Here are two ways to do it:
|
||||
|
||||
o The first way: open the journal in any text editor and save an entry
|
||||
like this:
|
||||
|
||||
2020-01-01 * opening balances
|
||||
assets:bank:checking $1000 = $1000
|
||||
assets:bank:savings $2000 = $2000
|
||||
assets:cash $100 = $100
|
||||
liabilities:creditcard $-50 = $-$50
|
||||
equity:opening/closing balances
|
||||
|
||||
These are start-of-day balances, ie whatever was in the account at
|
||||
the end of the previous day.
|
||||
|
||||
The * after the date is an optional status flag. Here it means
|
||||
"cleared & confirmed".
|
||||
|
||||
The currency symbols are optional, but usually a good idea as you'll
|
||||
be dealing with multiple currencies sooner or later.
|
||||
|
||||
The = amounts are optional balance assertions, providing extra error
|
||||
checking.
|
||||
|
||||
o The second way: run hledger add and follow the prompts to record a
|
||||
similar transaction:
|
||||
|
||||
$ hledger add
|
||||
Adding transactions to journal file /Users/simon/finance/2020.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 go one step backward.
|
||||
To end a transaction, enter . when prompted.
|
||||
To quit, enter . at a date prompt or press control-d or control-c.
|
||||
Date [2020-02-07]: 2020-01-01
|
||||
Description: * opening balances
|
||||
Account 1: assets:bank:checking
|
||||
Amount 1: $1000
|
||||
Account 2: assets:bank:savings
|
||||
Amount 2 [$-1000]: $2000
|
||||
Account 3: assets:cash
|
||||
Amount 3 [$-3000]: $100
|
||||
Account 4: liabilities:creditcard
|
||||
Amount 4 [$-3100]: $-50
|
||||
Account 5: equity:opening/closing balances
|
||||
Amount 5 [$-3050]:
|
||||
Account 6 (or . or enter to finish this transaction): .
|
||||
2020-01-01 * opening balances
|
||||
assets:bank:checking $1000
|
||||
assets:bank:savings $2000
|
||||
assets:cash $100
|
||||
liabilities:creditcard $-50
|
||||
equity:opening/closing balances $-3050
|
||||
|
||||
Save this transaction to the journal ? [y]:
|
||||
Saved.
|
||||
Starting the next transaction (. or ctrl-D/ctrl-C to quit)
|
||||
Date [2020-01-01]: .
|
||||
|
||||
If you're using version control, this could be a good time to commit
|
||||
the journal. Eg:
|
||||
|
||||
$ git commit -am 'initial balances' 2020.journal
|
||||
|
||||
Recording Transactions
|
||||
As you spend or receive money, you can record these transactions using
|
||||
one of the methods above (text editor, hledger add) or by using the
|
||||
hledger-iadd or hledger-web add-ons, or by using the import command to
|
||||
convert CSV data downloaded from your bank.
|
||||
|
||||
Here are some simple transactions, see the hledger_journal(5) manual
|
||||
and hledger.org for more ideas:
|
||||
|
||||
2020/1/10 * gift received
|
||||
assets:cash $20
|
||||
income:gifts
|
||||
|
||||
2015/10/16 farmers market
|
||||
expenses:food $10
|
||||
2020.1.12 * farmers market
|
||||
expenses:food $13
|
||||
assets:cash
|
||||
|
||||
Some basic reports:
|
||||
2020-01-15 paycheck
|
||||
income:salary
|
||||
assets:bank:checking $1000
|
||||
|
||||
Reconciling
|
||||
Periodically you should reconcile - compare your hledger-reported bal-
|
||||
ances against external sources of truth, like bank statements or your
|
||||
bank's website - to be sure that your ledger accurately represents the
|
||||
real-world balances (and, that the real-world institutions have not
|
||||
made a mistake!). This gets easy and fast with (1) practice and (2)
|
||||
frequency. If you do it daily, it can take 2-10 minutes. If you let
|
||||
it pile up, expect it to take longer as you hunt down errors and dis-
|
||||
crepancies.
|
||||
|
||||
A typical workflow:
|
||||
|
||||
1. Reconcile cash. Count what's in your wallet. Compare with what
|
||||
hledger reports (hledger bal cash). If they are different, try to
|
||||
remember the missing transaction, or look for the error in the al-
|
||||
ready-recorded transactions. A register report can be helpful
|
||||
(hledger reg cash). If you can't find the error, add an adjustment
|
||||
transaction. Eg if you have $105 after the above, and can't explain
|
||||
the missing $2, it could be:
|
||||
|
||||
2020-01-16 * adjust cash
|
||||
assets:cash $-2 = $105
|
||||
expenses:misc
|
||||
|
||||
2. Reconcile checking. Log in to your bank's website. Compare today's
|
||||
(cleared) balance with hledger's cleared balance (hledger bal check-
|
||||
ing -C). If they are different, track down the error or record the
|
||||
missing transaction(s) or add an adjustment transaction, similar to
|
||||
the above. Unlike the cash case, you can usually compare the trans-
|
||||
action history and running balance from your bank with the one re-
|
||||
ported by hledger reg checking -C. This will be easier if you gen-
|
||||
erally record transaction dates quite similar to your bank's clear-
|
||||
ing dates.
|
||||
|
||||
3. Repeat for other asset/liability accounts.
|
||||
|
||||
Tip: instead of the register command, use hledger-ui to see a live-up-
|
||||
dating register while you edit the journal: hledger-ui --watch --regis-
|
||||
ter checking -C
|
||||
|
||||
After reconciling, it could be a good time to mark the reconciled
|
||||
transactions' status as "cleared and confirmed", if you want to track
|
||||
that, by adding the * marker. Eg in the paycheck transaction above,
|
||||
insert * between 2020-01-15 and paycheck
|
||||
|
||||
If you're using version control, this can be another good time to com-
|
||||
mit:
|
||||
|
||||
$ git commit -am 'txns' 2020.journal
|
||||
|
||||
Reporting
|
||||
Here are some basic reports.
|
||||
|
||||
Show all transactions:
|
||||
|
||||
$ hledger print
|
||||
2015-09-30 gift received
|
||||
assets:cash $20
|
||||
income:gifts $-20
|
||||
2020-01-01 * opening balances
|
||||
assets:bank:checking $1000
|
||||
assets:bank:savings $2000
|
||||
assets:cash $100
|
||||
liabilities:creditcard $-50
|
||||
equity:opening/closing balances $-3050
|
||||
|
||||
2015-10-16 farmers market
|
||||
expenses:food $10
|
||||
assets:cash $-10
|
||||
2020-01-10 * gift received
|
||||
assets:cash $20
|
||||
income:gifts
|
||||
|
||||
2020-01-12 * farmers market
|
||||
expenses:food $13
|
||||
assets:cash
|
||||
|
||||
2020-01-15 * paycheck
|
||||
income:salary
|
||||
assets:bank:checking $1000
|
||||
|
||||
2020-01-16 * adjust cash
|
||||
assets:cash $-2 = $105
|
||||
expenses:misc
|
||||
|
||||
Show account names, and their hierarchy:
|
||||
|
||||
$ hledger accounts --tree
|
||||
assets
|
||||
bank
|
||||
checking
|
||||
savings
|
||||
cash
|
||||
equity
|
||||
opening/closing balances
|
||||
expenses
|
||||
food
|
||||
misc
|
||||
income
|
||||
gifts
|
||||
salary
|
||||
liabilities
|
||||
creditcard
|
||||
|
||||
Show all account totals:
|
||||
|
||||
$ hledger balance
|
||||
$10 assets:cash
|
||||
$10 expenses:food
|
||||
$-20 income:gifts
|
||||
$4105 assets
|
||||
$4000 bank
|
||||
$2000 checking
|
||||
$2000 savings
|
||||
$105 cash
|
||||
$-3050 equity:opening/closing balances
|
||||
$15 expenses
|
||||
$13 food
|
||||
$2 misc
|
||||
$-1020 income
|
||||
$-20 gifts
|
||||
$-1000 salary
|
||||
$-50 liabilities:creditcard
|
||||
--------------------
|
||||
0
|
||||
|
||||
Show only asset and liability balances, as a flat list, limited to
|
||||
depth 2:
|
||||
|
||||
$ hledger bal assets liabilities --flat -2
|
||||
$4000 assets:bank
|
||||
$105 assets:cash
|
||||
$-50 liabilities:creditcard
|
||||
--------------------
|
||||
$4055
|
||||
|
||||
Show the same thing without negative numbers, formatted as a simple
|
||||
balance sheet:
|
||||
|
||||
$ hledger bs --flat -2
|
||||
Balance Sheet 2020-01-16
|
||||
|
||||
|| 2020-01-16
|
||||
========================++============
|
||||
Assets ||
|
||||
------------------------++------------
|
||||
assets:bank || $4000
|
||||
assets:cash || $105
|
||||
------------------------++------------
|
||||
|| $4105
|
||||
========================++============
|
||||
Liabilities ||
|
||||
------------------------++------------
|
||||
liabilities:creditcard || $50
|
||||
------------------------++------------
|
||||
|| $50
|
||||
========================++============
|
||||
Net: || $4055
|
||||
|
||||
The final total is your "net worth" on the end date. (Or use bse for a
|
||||
full balance sheet with equity.)
|
||||
|
||||
Show income and expense totals, formatted as an income statement:
|
||||
|
||||
hledger is
|
||||
Income Statement 2020-01-01-2020-01-16
|
||||
|
||||
|| 2020-01-01-2020-01-16
|
||||
===============++=======================
|
||||
Revenues ||
|
||||
---------------++-----------------------
|
||||
income:gifts || $20
|
||||
income:salary || $1000
|
||||
---------------++-----------------------
|
||||
|| $1020
|
||||
===============++=======================
|
||||
Expenses ||
|
||||
---------------++-----------------------
|
||||
expenses:food || $13
|
||||
expenses:misc || $2
|
||||
---------------++-----------------------
|
||||
|| $15
|
||||
===============++=======================
|
||||
Net: || $1005
|
||||
|
||||
The final total is your net income during this period.
|
||||
|
||||
Show transactions affecting your wallet, with running total:
|
||||
|
||||
$ hledger register cash
|
||||
2015-09-30 gift received assets:cash $20 $20
|
||||
2015-10-16 farmers market assets:cash $-10 $10
|
||||
2020-01-01 opening balances assets:cash $100 $100
|
||||
2020-01-10 gift received assets:cash $20 $120
|
||||
2020-01-12 farmers market assets:cash $-13 $107
|
||||
2020-01-16 adjust cash assets:cash $-2 $105
|
||||
|
||||
More commands:
|
||||
Show weekly posting counts as a bar chart:
|
||||
|
||||
$ hledger # show available commands
|
||||
$ hledger add # add more transactions to the journal file
|
||||
$ hledger balance # all accounts with aggregated balances
|
||||
$ hledger balance --help # show detailed help for balance command
|
||||
$ hledger balance --depth 1 # only top-level accounts
|
||||
$ hledger register # show account postings, with running total
|
||||
$ hledger reg income # show postings to/from income accounts
|
||||
$ hledger reg 'assets:some bank:checking' # show postings to/from this checking account
|
||||
$ hledger print desc:shop # show transactions with shop in the description
|
||||
$ hledger activity -W # show transaction counts per week as a bar chart
|
||||
$ hledger activity -W
|
||||
2019-12-30 *****
|
||||
2020-01-06 ****
|
||||
2020-01-13 ****
|
||||
|
||||
Starting a New File
|
||||
At the end of the year, you may want to continue your journal in a new
|
||||
file, so that old transactions don't slow down or clutter your reports,
|
||||
and to help ensure the integrity of your accounting history. See the
|
||||
close command.
|
||||
|
||||
OPTIONS
|
||||
General options
|
||||
@ -231,7 +527,6 @@ OPTIONS
|
||||
Most hledger commands accept arguments after the command name, which
|
||||
are often a query, filtering the data in some way.
|
||||
|
||||
Argument files
|
||||
You can save a set of command line options/arguments in a file, and
|
||||
then reuse them by writing @FILENAME as a command line argument. Eg:
|
||||
hledger bal @foo.args. (To prevent this, eg if you have an argument
|
||||
@ -263,6 +558,113 @@ OPTIONS
|
||||
|
||||
See also: Save frequently used options.
|
||||
|
||||
Queries
|
||||
One of hledger's strengths is being able to quickly report on precise
|
||||
subsets of your data. Most commands accept an optional query expres-
|
||||
sion, written as arguments after the command name, to filter the data
|
||||
by date, account name or other criteria. The syntax is similar to a
|
||||
web search: one or more space-separated search terms, quotes to enclose
|
||||
whitespace, prefixes to match specific fields, a not: prefix to negate
|
||||
the match.
|
||||
|
||||
We do not yet support arbitrary boolean combinations of search terms;
|
||||
instead most commands show transactions/postings/accounts which match
|
||||
(or negatively match):
|
||||
|
||||
o any of the description terms AND
|
||||
|
||||
o any of the account terms AND
|
||||
|
||||
o any of the status terms AND
|
||||
|
||||
o all the other terms.
|
||||
|
||||
The print command instead shows transactions which:
|
||||
|
||||
o match any of the description terms AND
|
||||
|
||||
o have any postings matching any of the positive account terms AND
|
||||
|
||||
o have no postings matching any of the negative account terms AND
|
||||
|
||||
o match all the other terms.
|
||||
|
||||
The following kinds of search terms can be used. Remember these can
|
||||
also be prefixed with not:, eg to exclude a particular subaccount.
|
||||
|
||||
REGEX, acct:REGEX
|
||||
match account names by this regular expression. (With no pre-
|
||||
fix, acct: is assumed.) same as above
|
||||
|
||||
amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N
|
||||
match postings with a single-commodity amount that is equal to,
|
||||
less than, or greater than N. (Multi-commodity amounts are not
|
||||
tested, and will always match.) The comparison has two modes: if
|
||||
N is preceded by a + or - sign (or is 0), the two signed numbers
|
||||
are compared. Otherwise, the absolute magnitudes are compared,
|
||||
ignoring sign.
|
||||
|
||||
code:REGEX
|
||||
match by transaction code (eg check number)
|
||||
|
||||
cur:REGEX
|
||||
match postings or transactions including any amounts whose cur-
|
||||
rency/commodity symbol is fully matched by REGEX. (For a par-
|
||||
tial match, use .*REGEX.*). Note, to match characters which are
|
||||
regex-significant, like the dollar sign ($), you need to prepend
|
||||
\. And when using the command line you need to add one more
|
||||
level of quoting to hide it from the shell, so eg do: hledger
|
||||
print cur:'\$' or hledger print cur:\\$.
|
||||
|
||||
desc:REGEX
|
||||
match transaction descriptions.
|
||||
|
||||
date:PERIODEXPR
|
||||
match dates within the specified period. PERIODEXPR is a period
|
||||
expression (with no report interval). Examples: date:2016,
|
||||
date:thismonth, date:2000/2/1-2/15, date:lastweek-. If the
|
||||
--date2 command line flag is present, this matches secondary
|
||||
dates instead.
|
||||
|
||||
date2:PERIODEXPR
|
||||
match secondary dates within the specified period.
|
||||
|
||||
depth:N
|
||||
match (or display, depending on command) accounts at or above
|
||||
this depth
|
||||
|
||||
note:REGEX
|
||||
match transaction notes (part of description right of |, or
|
||||
whole description when there's no |)
|
||||
|
||||
payee:REGEX
|
||||
match transaction payee/payer names (part of description left of
|
||||
|, or whole description when there's no |)
|
||||
|
||||
real:, real:0
|
||||
match real or virtual postings respectively
|
||||
|
||||
status:, status:!, status:*
|
||||
match unmarked, pending, or cleared transactions respectively
|
||||
|
||||
tag:REGEX[=REGEX]
|
||||
match by tag name, and optionally also by tag value. Note a
|
||||
tag: query is considered to match a transaction if it matches
|
||||
any of the postings. Also remember that postings inherit the
|
||||
tags of their parent transaction.
|
||||
|
||||
The following special search term is used automatically in hledger-web,
|
||||
only:
|
||||
|
||||
inacct:ACCTNAME
|
||||
tells hledger-web to show the transaction register for this ac-
|
||||
count. Can be filtered further with acct etc.
|
||||
|
||||
Some of these can also be expressed as command-line options (eg depth:2
|
||||
is equivalent to --depth 2). Generally you can mix options and query
|
||||
arguments, and the resulting query will be their intersection (perhaps
|
||||
excluding the -p/--period option).
|
||||
|
||||
Special characters in arguments and queries
|
||||
In shell command lines, option and argument values which contain "prob-
|
||||
lematic" characters, ie spaces, and also characters significant to your
|
||||
@ -457,6 +859,7 @@ OPTIONS
|
||||
of 8-digit year
|
||||
20181232 8 digits with an invalid
|
||||
day gives an error
|
||||
|
||||
201801012 9+ digits beginning with a
|
||||
valid YYYYMMDD gives an
|
||||
error
|
||||
@ -544,7 +947,6 @@ OPTIONS
|
||||
1, 2009
|
||||
-p "from 2009/1" the same
|
||||
-p "from 2009" the same
|
||||
|
||||
-p "to 2009" everything before january
|
||||
1, 2009
|
||||
|
||||
@ -926,6 +1328,9 @@ OPTIONS
|
||||
print
|
||||
posting cost value at report value at report value at
|
||||
amounts end or today or journal end DATE/today
|
||||
|
||||
|
||||
|
||||
balance asser- unchanged unchanged unchanged unchanged
|
||||
tions / as-
|
||||
signments
|
||||
@ -957,8 +1362,6 @@ OPTIONS
|
||||
report inter- ends of sums of ends of sums of DATE/today of
|
||||
val) postings postings sums of post-
|
||||
ings
|
||||
|
||||
|
||||
starting bal- sums of costs sums of post- sums of post- sums of post-
|
||||
ances (with of postings ings before re- ings before re- ings before
|
||||
report inter- before report port start port start report start
|
||||
@ -1071,113 +1474,6 @@ OPTIONS
|
||||
ing to the shell and so must be escaped at least once more. See Spe-
|
||||
cial characters.
|
||||
|
||||
QUERIES
|
||||
One of hledger's strengths is being able to quickly report on precise
|
||||
subsets of your data. Most commands accept an optional query expres-
|
||||
sion, written as arguments after the command name, to filter the data
|
||||
by date, account name or other criteria. The syntax is similar to a
|
||||
web search: one or more space-separated search terms, quotes to enclose
|
||||
whitespace, prefixes to match specific fields, a not: prefix to negate
|
||||
the match.
|
||||
|
||||
We do not yet support arbitrary boolean combinations of search terms;
|
||||
instead most commands show transactions/postings/accounts which match
|
||||
(or negatively match):
|
||||
|
||||
o any of the description terms AND
|
||||
|
||||
o any of the account terms AND
|
||||
|
||||
o any of the status terms AND
|
||||
|
||||
o all the other terms.
|
||||
|
||||
The print command instead shows transactions which:
|
||||
|
||||
o match any of the description terms AND
|
||||
|
||||
o have any postings matching any of the positive account terms AND
|
||||
|
||||
o have no postings matching any of the negative account terms AND
|
||||
|
||||
o match all the other terms.
|
||||
|
||||
The following kinds of search terms can be used. Remember these can
|
||||
also be prefixed with not:, eg to exclude a particular subaccount.
|
||||
|
||||
REGEX, acct:REGEX
|
||||
match account names by this regular expression. (With no pre-
|
||||
fix, acct: is assumed.) same as above
|
||||
|
||||
amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N
|
||||
match postings with a single-commodity amount that is equal to,
|
||||
less than, or greater than N. (Multi-commodity amounts are not
|
||||
tested, and will always match.) The comparison has two modes: if
|
||||
N is preceded by a + or - sign (or is 0), the two signed numbers
|
||||
are compared. Otherwise, the absolute magnitudes are compared,
|
||||
ignoring sign.
|
||||
|
||||
code:REGEX
|
||||
match by transaction code (eg check number)
|
||||
|
||||
cur:REGEX
|
||||
match postings or transactions including any amounts whose cur-
|
||||
rency/commodity symbol is fully matched by REGEX. (For a par-
|
||||
tial match, use .*REGEX.*). Note, to match characters which are
|
||||
regex-significant, like the dollar sign ($), you need to prepend
|
||||
\. And when using the command line you need to add one more
|
||||
level of quoting to hide it from the shell, so eg do: hledger
|
||||
print cur:'\$' or hledger print cur:\\$.
|
||||
|
||||
desc:REGEX
|
||||
match transaction descriptions.
|
||||
|
||||
date:PERIODEXPR
|
||||
match dates within the specified period. PERIODEXPR is a period
|
||||
expression (with no report interval). Examples: date:2016,
|
||||
date:thismonth, date:2000/2/1-2/15, date:lastweek-. If the
|
||||
--date2 command line flag is present, this matches secondary
|
||||
dates instead.
|
||||
|
||||
date2:PERIODEXPR
|
||||
match secondary dates within the specified period.
|
||||
|
||||
depth:N
|
||||
match (or display, depending on command) accounts at or above
|
||||
this depth
|
||||
|
||||
note:REGEX
|
||||
match transaction notes (part of description right of |, or
|
||||
whole description when there's no |)
|
||||
|
||||
payee:REGEX
|
||||
match transaction payee/payer names (part of description left of
|
||||
|, or whole description when there's no |)
|
||||
|
||||
real:, real:0
|
||||
match real or virtual postings respectively
|
||||
|
||||
status:, status:!, status:*
|
||||
match unmarked, pending, or cleared transactions respectively
|
||||
|
||||
tag:REGEX[=REGEX]
|
||||
match by tag name, and optionally also by tag value. Note a
|
||||
tag: query is considered to match a transaction if it matches
|
||||
any of the postings. Also remember that postings inherit the
|
||||
tags of their parent transaction.
|
||||
|
||||
The following special search term is used automatically in hledger-web,
|
||||
only:
|
||||
|
||||
inacct:ACCTNAME
|
||||
tells hledger-web to show the transaction register for this ac-
|
||||
count. Can be filtered further with acct etc.
|
||||
|
||||
Some of these can also be expressed as command-line options (eg depth:2
|
||||
is equivalent to --depth 2). Generally you can mix options and query
|
||||
arguments, and the resulting query will be their intersection (perhaps
|
||||
excluding the -p/--period option).
|
||||
|
||||
COMMANDS
|
||||
hledger provides a number of subcommands; hledger with no arguments
|
||||
shows a list.
|
||||
@ -1601,7 +1897,7 @@ COMMANDS
|
||||
------------++---------------------------------------------------
|
||||
|| $-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:
|
||||
|
||||
@ -2289,7 +2585,7 @@ COMMANDS
|
||||
files. Eg:
|
||||
|
||||
$ hledger -f bank1.csv print --new
|
||||
# shows transactions added since last print --new on this file
|
||||
(shows transactions added since last print --new on this file)
|
||||
|
||||
This assumes that transactions added to FILE always have same or in-
|
||||
creasing dates, and that transactions on the same day do not get re-
|
||||
@ -2662,7 +2958,7 @@ COMMANDS
|
||||
For help on these, see https://github.com/feuerbach/tasty#options (--
|
||||
--help currently doesn't show them).
|
||||
|
||||
ADD-ON COMMANDS
|
||||
Add-on Commands
|
||||
hledger also searches for external add-on commands, and will include
|
||||
these in the commands list. These are programs or scripts in your PATH
|
||||
whose name starts with hledger- and ends with a recognised file exten-
|
||||
@ -2687,10 +2983,8 @@ ADD-ON COMMANDS
|
||||
haskell) library functions that built-in commands do, for command-line
|
||||
options, journal parsing, reporting, etc.
|
||||
|
||||
Here are some hledger add-ons available:
|
||||
|
||||
Official add-ons
|
||||
These are maintained and released along with hledger.
|
||||
Two important add-ons are the hledger-ui and hledger-web user inter-
|
||||
faces. These are maintained and released along with hledger:
|
||||
|
||||
ui
|
||||
hledger-ui provides an efficient terminal interface.
|
||||
@ -2698,9 +2992,7 @@ ADD-ON COMMANDS
|
||||
web
|
||||
hledger-web provides a simple web interface.
|
||||
|
||||
Third party add-ons
|
||||
These are maintained separately, and usually updated shortly after a
|
||||
hledger release.
|
||||
Third party add-ons, maintained separately from hledger, include:
|
||||
|
||||
iadd
|
||||
hledger-iadd is a more interactive, terminal UI replacement for the add
|
||||
@ -2710,19 +3002,8 @@ ADD-ON COMMANDS
|
||||
hledger-interest generates interest transactions for an account accord-
|
||||
ing to various schemes.
|
||||
|
||||
Experimental add-ons
|
||||
These are available in source form in the hledger repo's bin/ direc-
|
||||
tory. They may be less mature and documented than built-in commands.
|
||||
Reading and tweaking these is a good way to start making your own!
|
||||
|
||||
autosync
|
||||
hledger-autosync is a symbolic link for easily running ledger-autosync,
|
||||
if installed. ledger-autosync does deduplicating conversion of OFX
|
||||
data and some CSV formats, and can also download the data if your bank
|
||||
offers OFX Direct Connect.
|
||||
|
||||
chart
|
||||
hledger-chart.hs is an old very basic pie chart generator.
|
||||
A few more experimental or old add-ons can be found in hledger's bin/
|
||||
directory. These are typically prototypes and not guaranteed to work.
|
||||
|
||||
ENVIRONMENT
|
||||
COLUMNS The screen width used by the register command. Default: the
|
||||
@ -2732,6 +3013,21 @@ ENVIRONMENT
|
||||
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
|
||||
nal).
|
||||
|
||||
A typical value is ~/DIR/YYYY.journal, where DIR is a version-con-
|
||||
trolled finance directory and YYYY is the current year. Or ~/DIR/cur-
|
||||
rent.journal, where current.journal is a symbolic link to YYYY.journal.
|
||||
|
||||
On Mac computers, you can set this and other environment variables in a
|
||||
more thorough way that also affects applications started from the GUI
|
||||
(say, an Emacs dock icon). Eg on MacOS Catalina I have a ~/.MacOSX/en-
|
||||
vironment.plist file containing
|
||||
|
||||
{
|
||||
"LEDGER_FILE" : "~/finance/current.journal"
|
||||
}
|
||||
|
||||
To see the effect you may need to killall Dock, or reboot.
|
||||
|
||||
FILES
|
||||
Reads data from one or more files in hledger journal, timeclock, time-
|
||||
dot, or CSV format specified with -f, or $LEDGER_FILE, or
|
||||
|
||||
Loading…
Reference in New Issue
Block a user