;doc: regen manuals

I think all the non-content changes are due to newer
doc tools and harmless, including this one hopefully:

    -.B \f[C]--watch\f[R]
    +\f[B]\f[CB]--watch\f[B]\f[R]

[ci skip]
This commit is contained in:
Simon Michael 2020-01-05 07:04:00 -08:00
parent 6b70eadf30
commit f91076cc6a
19 changed files with 1486 additions and 1173 deletions

View File

@ -472,6 +472,9 @@ Fields you don\[aq]t care about can be left unnamed.
Currently there must be least two items (there must be at least one Currently there must be least two items (there must be at least one
comma). comma).
.PP .PP
Note, always use comma in the fields list, even if your CSV uses another
separator character.
.PP
Here are the standard hledger field/pseudo-field names. Here are the standard hledger field/pseudo-field names.
For more about the transaction parts they refer to, see the manual for For more about the transaction parts they refer to, see the manual for
hledger\[aq]s journal format. hledger\[aq]s journal format.
@ -508,6 +511,7 @@ If the CSV has the currency symbol in a separate field, you can use
.PP .PP
\f[C]balanceN\f[R] sets a balance assertion amount (or if the posting \f[C]balanceN\f[R] sets a balance assertion amount (or if the posting
amount is left empty, a balance assignment). amount is left empty, a balance assignment).
You may need to adjust this with the \f[C]balance-type\f[R] rule.
.PP .PP
Finally, \f[C]commentN\f[R] sets a comment on the Nth posting. Finally, \f[C]commentN\f[R] sets a comment on the Nth posting.
Comments can also contain tags, as usual. Comments can also contain tags, as usual.
@ -733,7 +737,52 @@ account2 expenses:misc
include categorisation.rules include categorisation.rules
\f[R] \f[R]
.fi .fi
.SS \f[C]balance-type\f[R]
.PP
Balance assertions generated by assigning to balanceN are of the simple
\f[C]=\f[R] type by default, which is a single-commodity,
subaccount-excluding assertion.
You may find the subaccount-including variants more useful, eg if you
have created some virtual subaccounts of checking to help with
budgeting.
You can select a different type of assertion with the
\f[C]balance-type\f[R] rule:
.IP
.nf
\f[C]
# balance assertions will consider all commodities and all subaccounts
balance-type ==*
\f[R]
.fi
.PP
Here are the balance assertion types for quick reference:
.IP
.nf
\f[C]
= single commodity, exclude subaccounts
=* single commodity, include subaccounts
== multi commodity, exclude subaccounts
==* multi commodity, include subaccounts
\f[R]
.fi
.SH TIPS .SH TIPS
.SS Rapid feedback
.PP
It\[aq]s a good idea to get rapid feedback while
creating/troubleshooting CSV rules.
Here\[aq]s a good way, using entr from http://eradman.com/entrproject :
.IP
.nf
\f[C]
$ ls foo.csv* | entr bash -c \[aq]echo ----; hledger -f foo.csv print desc:SOMEDESC\[aq]
\f[R]
.fi
.PP
A desc: query (eg) is used to select just one, or a few, transactions of
interest.
\[dq]bash -c\[dq] is used to run multiple commands, so we can echo a
separator each time the command re-runs, making it easier to read the
output.
.SS Valid CSV .SS Valid CSV
.PP .PP
hledger accepts CSV conforming to RFC 4180. hledger accepts CSV conforming to RFC 4180.
@ -744,17 +793,27 @@ they must be double quotes (not single quotes)
spaces outside the quotes are not allowed spaces outside the quotes are not allowed
.SS Other separator characters .SS Other separator characters
.PP .PP
With the \f[C]--separator \[aq]CHAR\[aq]\f[R] option (experimental), You can use the \f[C]--separator \[aq]CHAR\[aq]\f[R] command line option
hledger will expect the separator to be CHAR instead of a comma. (experimental) to read other kinds of character-separated data.
Ie it will read other \[dq]Character Separated Values\[dq] formats, such Eg to read SSV (Semicolon Separated Values), use:
as TSV (Tab Separated Values). .IP
Note: on the command line, use a real tab character in quotes, not Eg: .nf
\f[C]
$ hledger -f foo.tsv --separator \[aq];\[aq] print
\f[R]
.fi
.PP
Note the semicolon is quoted because it\[aq]s a special shell character.
.PP
To read TSV (Tab Separated Values), use:
.IP .IP
.nf .nf
\f[C] \f[C]
$ hledger -f foo.tsv --separator \[aq] \[aq] print $ hledger -f foo.tsv --separator \[aq] \[aq] print
\f[R] \f[R]
.fi .fi
.PP
Note, that\[aq]s a real tab character in quotes, not \f[C]\[rs]t\f[R].
.SS Reading multiple CSV files .SS Reading multiple CSV files
.PP .PP
If you use multiple \f[C]-f\f[R] options to read multiple CSV files at If you use multiple \f[C]-f\f[R] options to read multiple CSV files at

View File

@ -1,4 +1,4 @@
This is hledger_csv.info, produced by makeinfo version 6.5 from stdin. This is hledger_csv.info, produced by makeinfo version 6.7 from stdin.
 
File: hledger_csv.info, Node: Top, Next: EXAMPLES, Up: (dir) File: hledger_csv.info, Node: Top, Next: EXAMPLES, Up: (dir)
@ -376,6 +376,7 @@ Blank lines and lines beginning with '#' or ';' are ignored.
* date-format:: * date-format::
* newest-first:: * newest-first::
* include:: * include::
* balance-type::
 
File: hledger_csv.info, Node: skip, Next: fields, Up: CSV RULES File: hledger_csv.info, Node: skip, Next: fields, Up: CSV RULES
@ -421,6 +422,9 @@ fields date, description, , amount, , , somefield, anotherfield
can be left unnamed. Currently there must be least two items (there can be left unnamed. Currently there must be least two items (there
must be at least one comma). must be at least one comma).
Note, always use comma in the fields list, even if your CSV uses
another separator character.
Here are the standard hledger field/pseudo-field names. For more Here are the standard hledger field/pseudo-field names. For more
about the transaction parts they refer to, see the manual for hledger's about the transaction parts they refer to, see the manual for hledger's
journal format. journal format.
@ -466,7 +470,8 @@ indicating an unbalanced posting.)
affects ALL postings. affects ALL postings.
'balanceN' sets a balance assertion amount (or if the posting amount 'balanceN' sets a balance assertion amount (or if the posting amount
is left empty, a balance assignment). is left empty, a balance assignment). You may need to adjust this with
the 'balance-type' rule.
Finally, 'commentN' sets a comment on the Nth posting. Comments can Finally, 'commentN' sets a comment on the Nth posting. Comments can
also contain tags, as usual. also contain tags, as usual.
@ -625,7 +630,7 @@ oldest first or newest first. But if all of the following are true:
newest-first newest-first
 
File: hledger_csv.info, Node: include, Prev: newest-first, Up: CSV RULES File: hledger_csv.info, Node: include, Next: balance-type, Prev: newest-first, Up: CSV RULES
2.8 'include' 2.8 'include'
============= =============
@ -647,6 +652,29 @@ account2 expenses:misc
## common rules ## common rules
include categorisation.rules include categorisation.rules

File: hledger_csv.info, Node: balance-type, Prev: include, Up: CSV RULES
2.9 'balance-type'
==================
Balance assertions generated by assigning to balanceN are of the simple
'=' type by default, which is a single-commodity, subaccount-excluding
assertion. You may find the subaccount-including variants more useful,
eg if you have created some virtual subaccounts of checking to help with
budgeting. You can select a different type of assertion with the
'balance-type' rule:
# balance assertions will consider all commodities and all subaccounts
balance-type ==*
Here are the balance assertion types for quick reference:
= single commodity, exclude subaccounts
=* single commodity, include subaccounts
== multi commodity, exclude subaccounts
==* multi commodity, include subaccounts
 
File: hledger_csv.info, Node: TIPS, Prev: CSV RULES, Up: Top File: hledger_csv.info, Node: TIPS, Prev: CSV RULES, Up: Top
@ -655,6 +683,7 @@ File: hledger_csv.info, Node: TIPS, Prev: CSV RULES, Up: Top
* Menu: * Menu:
* Rapid feedback::
* Valid CSV:: * Valid CSV::
* Other separator characters:: * Other separator characters::
* Reading multiple CSV files:: * Reading multiple CSV files::
@ -666,9 +695,26 @@ File: hledger_csv.info, Node: TIPS, Prev: CSV RULES, Up: Top
* How CSV rules are evaluated:: * How CSV rules are evaluated::
 
File: hledger_csv.info, Node: Valid CSV, Next: Other separator characters, Up: TIPS File: hledger_csv.info, Node: Rapid feedback, Next: Valid CSV, Up: TIPS
3.1 Valid CSV 3.1 Rapid feedback
==================
It's a good idea to get rapid feedback while creating/troubleshooting
CSV rules. Here's a good way, using entr from
http://eradman.com/entrproject :
$ ls foo.csv* | entr bash -c 'echo ----; hledger -f foo.csv print desc:SOMEDESC'
A desc: query (eg) is used to select just one, or a few, transactions
of interest. "bash -c" is used to run multiple commands, so we can echo
a separator each time the command re-runs, making it easier to read the
output.

File: hledger_csv.info, Node: Valid CSV, Next: Other separator characters, Prev: Rapid feedback, Up: TIPS
3.2 Valid CSV
============= =============
hledger accepts CSV conforming to RFC 4180. When CSV values are hledger accepts CSV conforming to RFC 4180. When CSV values are
@ -680,21 +726,27 @@ enclosed in quotes, note:
 
File: hledger_csv.info, Node: Other separator characters, Next: Reading multiple CSV files, Prev: Valid CSV, Up: TIPS File: hledger_csv.info, Node: Other separator characters, Next: Reading multiple CSV files, Prev: Valid CSV, Up: TIPS
3.2 Other separator characters 3.3 Other separator characters
============================== ==============================
With the '--separator 'CHAR'' option (experimental), hledger will expect You can use the '--separator 'CHAR'' command line option (experimental)
the separator to be CHAR instead of a comma. Ie it will read other to read other kinds of character-separated data. Eg to read SSV
"Character Separated Values" formats, such as TSV (Tab Separated (Semicolon Separated Values), use:
Values). Note: on the command line, use a real tab character in quotes,
not $ hledger -f foo.tsv --separator ';' print
Note the semicolon is quoted because it's a special shell character.
To read TSV (Tab Separated Values), use:
$ hledger -f foo.tsv --separator ' ' print $ hledger -f foo.tsv --separator ' ' print
Note, that's a real tab character in quotes, not '\t'.
 
File: hledger_csv.info, Node: Reading multiple CSV files, Next: Valid transactions, Prev: Other separator characters, Up: TIPS File: hledger_csv.info, Node: Reading multiple CSV files, Next: Valid transactions, Prev: Other separator characters, Up: TIPS
3.3 Reading multiple CSV files 3.4 Reading multiple CSV files
============================== ==============================
If you use multiple '-f' options to read multiple CSV files at once, If you use multiple '-f' options to read multiple CSV files at once,
@ -705,7 +757,7 @@ used for all the CSV files.
 
File: hledger_csv.info, Node: Valid transactions, Next: Deduplicating importing, Prev: Reading multiple CSV files, Up: TIPS File: hledger_csv.info, Node: Valid transactions, Next: Deduplicating importing, Prev: Reading multiple CSV files, Up: TIPS
3.4 Valid transactions 3.5 Valid transactions
====================== ======================
After reading a CSV file, hledger post-processes and validates the After reading a CSV file, hledger post-processes and validates the
@ -724,7 +776,7 @@ $ hledger -f file.csv print | hledger -f- print
 
File: hledger_csv.info, Node: Deduplicating importing, Next: Setting amounts, Prev: Valid transactions, Up: TIPS File: hledger_csv.info, Node: Deduplicating importing, Next: Setting amounts, Prev: Valid transactions, Up: TIPS
3.5 Deduplicating, importing 3.6 Deduplicating, importing
============================ ============================
When you download a CSV file periodically, eg to get your latest bank When you download a CSV file periodically, eg to get your latest bank
@ -754,7 +806,7 @@ CSV data. See:
 
File: hledger_csv.info, Node: Setting amounts, Next: Setting currency/commodity, Prev: Deduplicating importing, Up: TIPS File: hledger_csv.info, Node: Setting amounts, Next: Setting currency/commodity, Prev: Deduplicating importing, Up: TIPS
3.6 Setting amounts 3.7 Setting amounts
=================== ===================
A posting amount can be set in one of these ways: A posting amount can be set in one of these ways:
@ -783,7 +835,7 @@ A posting amount can be set in one of these ways:
 
File: hledger_csv.info, Node: Setting currency/commodity, Next: Referencing other fields, Prev: Setting amounts, Up: TIPS File: hledger_csv.info, Node: Setting currency/commodity, Next: Referencing other fields, Prev: Setting amounts, Up: TIPS
3.7 Setting currency/commodity 3.8 Setting currency/commodity
============================== ==============================
If the currency/commodity symbol is included in the CSV's amount If the currency/commodity symbol is included in the CSV's amount
@ -810,7 +862,7 @@ field(s), you don't have to do anything special.
 
File: hledger_csv.info, Node: Referencing other fields, Next: How CSV rules are evaluated, Prev: Setting currency/commodity, Up: TIPS File: hledger_csv.info, Node: Referencing other fields, Next: How CSV rules are evaluated, Prev: Setting currency/commodity, Up: TIPS
3.8 Referencing other fields 3.9 Referencing other fields
============================ ============================
In field assignments, you can interpolate only CSV fields, not hledger In field assignments, you can interpolate only CSV fields, not hledger
@ -847,8 +899,8 @@ if something
 
File: hledger_csv.info, Node: How CSV rules are evaluated, Prev: Referencing other fields, Up: TIPS File: hledger_csv.info, Node: How CSV rules are evaluated, Prev: Referencing other fields, Up: TIPS
3.9 How CSV rules are evaluated 3.10 How CSV rules are evaluated
=============================== ================================
Here's how to think of CSV rules being evaluated (if you really need Here's how to think of CSV rules being evaluated (if you really need
to). First, to). First,
@ -900,45 +952,54 @@ Node: Paypal6438
Ref: #paypal6532 Ref: #paypal6532
Node: CSV RULES14415 Node: CSV RULES14415
Ref: #csv-rules14524 Ref: #csv-rules14524
Node: skip14769 Node: skip14786
Ref: #skip14862 Ref: #skip14879
Node: fields15237 Node: fields15254
Ref: #fields15359 Ref: #fields15376
Node: Transaction field names16426 Node: Transaction field names16541
Ref: #transaction-field-names16586 Ref: #transaction-field-names16701
Node: Posting field names16697 Node: Posting field names16812
Ref: #posting-field-names16849 Ref: #posting-field-names16964
Node: field assignment18081 Node: field assignment18255
Ref: #field-assignment18217 Ref: #field-assignment18391
Node: if19035 Node: if19209
Ref: #if19144 Ref: #if19318
Node: end20860 Node: end21034
Ref: #end20966 Ref: #end21140
Node: date-format21190 Node: date-format21364
Ref: #date-format21322 Ref: #date-format21496
Node: newest-first22071 Node: newest-first22245
Ref: #newest-first22209 Ref: #newest-first22383
Node: include22892 Node: include23066
Ref: #include23000 Ref: #include23195
Node: TIPS23444 Node: balance-type23639
Ref: #tips23526 Ref: #balance-type23757
Node: Valid CSV23775 Node: TIPS24457
Ref: #valid-csv23894 Ref: #tips24539
Node: Other separator characters24086 Node: Rapid feedback24807
Ref: #other-separator-characters24274 Ref: #rapid-feedback24924
Node: Reading multiple CSV files24603 Node: Valid CSV25384
Ref: #reading-multiple-csv-files24800 Ref: #valid-csv25526
Node: Valid transactions25041 Node: Other separator characters25718
Ref: #valid-transactions25219 Ref: #other-separator-characters25906
Node: Deduplicating importing25847 Node: Reading multiple CSV files26345
Ref: #deduplicating-importing26026 Ref: #reading-multiple-csv-files26542
Node: Setting amounts27059 Node: Valid transactions26783
Ref: #setting-amounts27228 Ref: #valid-transactions26961
Node: Setting currency/commodity28214 Node: Deduplicating importing27589
Ref: #setting-currencycommodity28406 Ref: #deduplicating-importing27768
Node: Referencing other fields29209 Node: Setting amounts28801
Ref: #referencing-other-fields29409 Ref: #setting-amounts28970
Node: How CSV rules are evaluated30306 Node: Setting currency/commodity29956
Ref: #how-csv-rules-are-evaluated30477 Ref: #setting-currencycommodity30148
Node: Referencing other fields30951
Ref: #referencing-other-fields31151
Node: How CSV rules are evaluated32048
Ref: #how-csv-rules-are-evaluated32221
 
End Tag Table End Tag Table

Local Variables:
coding: utf-8
End:

View File

@ -366,6 +366,9 @@ CSV RULES
can be left unnamed. Currently there must be least two items (there can be left unnamed. Currently there must be least two items (there
must be at least one comma). must be at least one comma).
Note, always use comma in the fields list, even if your CSV uses an-
other separator character.
Here are the standard hledger field/pseudo-field names. For more about Here are the standard hledger field/pseudo-field names. For more about
the transaction parts they refer to, see the manual for hledger's jour- the transaction parts they refer to, see the manual for hledger's jour-
nal format. nal format.
@ -375,28 +378,29 @@ CSV RULES
transaction's first line. transaction's first line.
Posting field names Posting field names
accountN, where N is 1 to 9, generates a posting, with that account accountN, where N is 1 to 9, generates a posting, with that account
name. Most often there are two postings, so you'll want to set ac- name. Most often there are two postings, so you'll want to set ac-
count1 and account2. If a posting's account name is left unset but its count1 and account2. If a posting's account name is left unset but its
amount is set, a default account name will be chosen (like expenses:un- amount is set, a default account name will be chosen (like expenses:un-
known or income:unknown). known or income:unknown).
amountN sets posting N's amount. Or, amount with no N sets posting amountN sets posting N's amount. Or, amount with no N sets posting
1's. If the CSV has debits and credits in separate fields, use 1's. If the CSV has debits and credits in separate fields, use
amountN-in and amountN-out instead. Or amount-in and amount-out with amountN-in and amountN-out instead. Or amount-in and amount-out with
no N for posting 1. no N for posting 1.
For convenience and backwards compatibility, if you set the amount of For convenience and backwards compatibility, if you set the amount of
posting 1 only, a second posting with the negative amount will be gen- posting 1 only, a second posting with the negative amount will be gen-
erated automatically. (Unless the account name is parenthesised indi- erated automatically. (Unless the account name is parenthesised indi-
cating an unbalanced posting.) cating an unbalanced posting.)
If the CSV has the currency symbol in a separate field, you can use If the CSV has the currency symbol in a separate field, you can use
currencyN to prepend it to posting N's amount. currency with no N af- currencyN to prepend it to posting N's amount. currency with no N af-
fects ALL postings. fects ALL postings.
balanceN sets a balance assertion amount (or if the posting amount is balanceN sets a balance assertion amount (or if the posting amount is
left empty, a balance assignment). left empty, a balance assignment). You may need to adjust this with
the balance-type rule.
Finally, commentN sets a comment on the Nth posting. Comments can also Finally, commentN sets a comment on the Nth posting. Comments can also
contain tags, as usual. contain tags, as usual.
@ -551,7 +555,37 @@ CSV RULES
## common rules ## common rules
include categorisation.rules include categorisation.rules
balance-type
Balance assertions generated by assigning to balanceN are of the simple
= type by default, which is a single-commodity, subaccount-excluding
assertion. You may find the subaccount-including variants more useful,
eg if you have created some virtual subaccounts of checking to help
with budgeting. You can select a different type of assertion with the
balance-type rule:
# balance assertions will consider all commodities and all subaccounts
balance-type ==*
Here are the balance assertion types for quick reference:
= single commodity, exclude subaccounts
=* single commodity, include subaccounts
== multi commodity, exclude subaccounts
==* multi commodity, include subaccounts
TIPS TIPS
Rapid feedback
It's a good idea to get rapid feedback while creating/troubleshooting
CSV rules. Here's a good way, using entr from http://eradman.com/entr-
project :
$ ls foo.csv* | entr bash -c 'echo ----; hledger -f foo.csv print desc:SOMEDESC'
A desc: query (eg) is used to select just one, or a few, transactions
of interest. "bash -c" is used to run multiple commands, so we can
echo a separator each time the command re-runs, making it easier to
read the output.
Valid CSV Valid CSV
hledger accepts CSV conforming to RFC 4180. When CSV values are en- hledger accepts CSV conforming to RFC 4180. When CSV values are en-
closed in quotes, note: closed in quotes, note:
@ -561,14 +595,20 @@ TIPS
o spaces outside the quotes are not allowed o spaces outside the quotes are not allowed
Other separator characters Other separator characters
With the --separator 'CHAR' option (experimental), hledger will expect You can use the --separator 'CHAR' command line option (experimental)
the separator to be CHAR instead of a comma. Ie it will read other to read other kinds of character-separated data. Eg to read SSV (Semi-
"Character Separated Values" formats, such as TSV (Tab Separated Val- colon Separated Values), use:
ues). Note: on the command line, use a real tab character in quotes,
not Eg: $ hledger -f foo.tsv --separator ';' print
Note the semicolon is quoted because it's a special shell character.
To read TSV (Tab Separated Values), use:
$ hledger -f foo.tsv --separator ' ' print $ hledger -f foo.tsv --separator ' ' print
Note, that's a real tab character in quotes, not \t.
Reading multiple CSV files Reading multiple CSV files
If you use multiple -f options to read multiple CSV files at once, If you use multiple -f options to read multiple CSV files at once,
hledger will look for a correspondingly-named rules file for each CSV hledger will look for a correspondingly-named rules file for each CSV

View File

@ -533,6 +533,7 @@ reconciled balances while cleaning up old entries.
You can disable them temporarily with the You can disable them temporarily with the
\f[C]-I/--ignore-assertions\f[R] flag, which can be useful for \f[C]-I/--ignore-assertions\f[R] flag, which can be useful for
troubleshooting or for reading Ledger files. troubleshooting or for reading Ledger files.
(Note: this flag currently does not disable balance assignments, below).
.SS Assertions and ordering .SS Assertions and ordering
.PP .PP
hledger sorts an account\[aq]s postings and assertions first by date and hledger sorts an account\[aq]s postings and assertions first by date and

View File

@ -1,4 +1,4 @@
This is hledger_journal.info, produced by makeinfo version 6.5 from This is hledger_journal.info, produced by makeinfo version 6.7 from
stdin. stdin.
 
@ -500,7 +500,8 @@ assertions and report an error if any of them fail. Balance assertions
can protect you from, eg, inadvertently disrupting reconciled balances can protect you from, eg, inadvertently disrupting reconciled balances
while cleaning up old entries. You can disable them temporarily with while cleaning up old entries. You can disable them temporarily with
the '-I/--ignore-assertions' flag, which can be useful for the '-I/--ignore-assertions' flag, which can be useful for
troubleshooting or for reading Ledger files. troubleshooting or for reading Ledger files. (Note: this flag currently
does not disable balance assignments, below).
* Menu: * Menu:
@ -1779,87 +1780,92 @@ Node: Virtual Postings15303
Ref: #virtual-postings15462 Ref: #virtual-postings15462
Node: Balance Assertions16682 Node: Balance Assertions16682
Ref: #balance-assertions16857 Ref: #balance-assertions16857
Node: Assertions and ordering17816 Node: Assertions and ordering17890
Ref: #assertions-and-ordering18002 Ref: #assertions-and-ordering18076
Node: Assertions and included files18702 Node: Assertions and included files18776
Ref: #assertions-and-included-files18943 Ref: #assertions-and-included-files19017
Node: Assertions and multiple -f options19276 Node: Assertions and multiple -f options19350
Ref: #assertions-and-multiple--f-options19530 Ref: #assertions-and-multiple--f-options19604
Node: Assertions and commodities19662 Node: Assertions and commodities19736
Ref: #assertions-and-commodities19892 Ref: #assertions-and-commodities19966
Node: Assertions and prices21048 Node: Assertions and prices21122
Ref: #assertions-and-prices21260 Ref: #assertions-and-prices21334
Node: Assertions and subaccounts21700 Node: Assertions and subaccounts21774
Ref: #assertions-and-subaccounts21927 Ref: #assertions-and-subaccounts22001
Node: Assertions and virtual postings22251 Node: Assertions and virtual postings22325
Ref: #assertions-and-virtual-postings22491 Ref: #assertions-and-virtual-postings22565
Node: Assertions and precision22633 Node: Assertions and precision22707
Ref: #assertions-and-precision22824 Ref: #assertions-and-precision22898
Node: Balance Assignments23091 Node: Balance Assignments23165
Ref: #balance-assignments23272 Ref: #balance-assignments23346
Node: Balance assignments and prices24437 Node: Balance assignments and prices24511
Ref: #balance-assignments-and-prices24609 Ref: #balance-assignments-and-prices24683
Node: Transaction prices24833 Node: Transaction prices24907
Ref: #transaction-prices25002 Ref: #transaction-prices25076
Node: Comments27268 Node: Comments27342
Ref: #comments27402 Ref: #comments27476
Node: Tags28572 Node: Tags28646
Ref: #tags28690 Ref: #tags28764
Node: Directives30083 Node: Directives30157
Ref: #directives30226 Ref: #directives30300
Node: Comment blocks35834 Node: Comment blocks35908
Ref: #comment-blocks35979 Ref: #comment-blocks36053
Node: Including other files36155 Node: Including other files36229
Ref: #including-other-files36335 Ref: #including-other-files36409
Node: Default year36743 Node: Default year36817
Ref: #default-year36912 Ref: #default-year36986
Node: Declaring commodities37319 Node: Declaring commodities37393
Ref: #declaring-commodities37502 Ref: #declaring-commodities37576
Node: Default commodity39163 Node: Default commodity39237
Ref: #default-commodity39339 Ref: #default-commodity39413
Node: Market prices39973 Node: Market prices40047
Ref: #market-prices40138 Ref: #market-prices40212
Node: Declaring accounts40979 Node: Declaring accounts41053
Ref: #declaring-accounts41155 Ref: #declaring-accounts41229
Node: Account comments42080 Node: Account comments42154
Ref: #account-comments42243 Ref: #account-comments42317
Node: Account subdirectives42638 Node: Account subdirectives42712
Ref: #account-subdirectives42833 Ref: #account-subdirectives42907
Node: Account types43146 Node: Account types43220
Ref: #account-types43330 Ref: #account-types43404
Node: Account display order44972 Node: Account display order45046
Ref: #account-display-order45142 Ref: #account-display-order45216
Node: Rewriting accounts46271 Node: Rewriting accounts46345
Ref: #rewriting-accounts46456 Ref: #rewriting-accounts46530
Node: Basic aliases47182 Node: Basic aliases47256
Ref: #basic-aliases47328 Ref: #basic-aliases47402
Node: Regex aliases48032 Node: Regex aliases48106
Ref: #regex-aliases48204 Ref: #regex-aliases48278
Node: Combining aliases48922 Node: Combining aliases48996
Ref: #combining-aliases49100 Ref: #combining-aliases49174
Node: end aliases50376 Node: end aliases50450
Ref: #end-aliases50524 Ref: #end-aliases50598
Node: Default parent account50625 Node: Default parent account50699
Ref: #default-parent-account50791 Ref: #default-parent-account50865
Node: Periodic transactions51675 Node: Periodic transactions51749
Ref: #periodic-transactions51873 Ref: #periodic-transactions51947
Node: Periodic rule syntax53745 Node: Periodic rule syntax53819
Ref: #periodic-rule-syntax53951 Ref: #periodic-rule-syntax54025
Node: Two spaces between period expression and description!54655 Node: Two spaces between period expression and description!54729
Ref: #two-spaces-between-period-expression-and-description54974 Ref: #two-spaces-between-period-expression-and-description55048
Node: Forecasting with periodic transactions55658 Node: Forecasting with periodic transactions55732
Ref: #forecasting-with-periodic-transactions55963 Ref: #forecasting-with-periodic-transactions56037
Node: Budgeting with periodic transactions57989 Node: Budgeting with periodic transactions58063
Ref: #budgeting-with-periodic-transactions58228 Ref: #budgeting-with-periodic-transactions58302
Node: Auto postings / transaction modifiers58677 Node: Auto postings / transaction modifiers58751
Ref: #auto-postings-transaction-modifiers58888 Ref: #auto-postings-transaction-modifiers58962
Node: Auto postings and dates61117 Node: Auto postings and dates61191
Ref: #auto-postings-and-dates61374 Ref: #auto-postings-and-dates61448
Node: Auto postings and transaction balancing / inferred amounts / balance assertions61549 Node: Auto postings and transaction balancing / inferred amounts / balance assertions61623
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions61924 Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions61998
Node: Auto posting tags62302 Node: Auto posting tags62376
Ref: #auto-posting-tags62541 Ref: #auto-posting-tags62615
Node: EDITOR SUPPORT63206 Node: EDITOR SUPPORT63280
Ref: #editor-support63324 Ref: #editor-support63398
 
End Tag Table End Tag Table

Local Variables:
coding: utf-8
End:

View File

@ -384,27 +384,28 @@ FILE FORMAT
tect you from, eg, inadvertently disrupting reconciled balances while tect you from, eg, inadvertently disrupting reconciled balances while
cleaning up old entries. You can disable them temporarily with the cleaning up old entries. You can disable them temporarily with the
-I/--ignore-assertions flag, which can be useful for troubleshooting or -I/--ignore-assertions flag, which can be useful for troubleshooting or
for reading Ledger files. for reading Ledger files. (Note: this flag currently does not disable
balance assignments, below).
Assertions and ordering Assertions and ordering
hledger sorts an account's postings and assertions first by date and hledger sorts an account's postings and assertions first by date and
then (for postings on the same day) by parse order. Note this is dif- then (for postings on the same day) by parse order. Note this is dif-
ferent from Ledger, which sorts assertions only by parse order. (Also, ferent from Ledger, which sorts assertions only by parse order. (Also,
Ledger assertions do not see the accumulated effect of repeated post- Ledger assertions do not see the accumulated effect of repeated post-
ings to the same account within a transaction.) ings to the same account within a transaction.)
So, hledger balance assertions keep working if you reorder differently- So, hledger balance assertions keep working if you reorder differently-
dated transactions within the journal. But if you reorder same-dated dated transactions within the journal. But if you reorder same-dated
transactions or postings, assertions might break and require updating. transactions or postings, assertions might break and require updating.
This order dependence does bring an advantage: precise control over the This order dependence does bring an advantage: precise control over the
order of postings and assertions within a day, so you can assert intra- order of postings and assertions within a day, so you can assert intra-
day balances. day balances.
Assertions and included files Assertions and included files
With included files, things are a little more complicated. Including With included files, things are a little more complicated. Including
preserves the ordering of postings and assertions. If you have multi- preserves the ordering of postings and assertions. If you have multi-
ple postings to an account on the same day, split across different ple postings to an account on the same day, split across different
files, and you also want to assert the account's balance on the same files, and you also want to assert the account's balance on the same
day, you'll have to put the assertion in the right file. day, you'll have to put the assertion in the right file.
Assertions and multiple -f options Assertions and multiple -f options
@ -412,8 +413,8 @@ FILE FORMAT
-f options. Use include or concatenate the files instead. -f options. Use include or concatenate the files instead.
Assertions and commodities Assertions and commodities
The asserted balance must be a simple single-commodity amount, and in The asserted balance must be a simple single-commodity amount, and in
fact the assertion checks only this commodity's balance within the fact the assertion checks only this commodity's balance within the
(possibly multi-commodity) account balance. (possibly multi-commodity) account balance.
This is how assertions work in Ledger also. We could call this a "par- This is how assertions work in Ledger also. We could call this a "par-
tial" balance assertion. tial" balance assertion.
@ -421,7 +422,7 @@ FILE FORMAT
To assert the balance of more than one commodity in an account, you can To assert the balance of more than one commodity in an account, you can
write multiple postings, each asserting one commodity's balance. write multiple postings, each asserting one commodity's balance.
You can make a stronger "total" balance assertion by writing a double You can make a stronger "total" balance assertion by writing a double
equals sign (== EXPECTEDBALANCE). This asserts that there are no other equals sign (== EXPECTEDBALANCE). This asserts that there are no other
unasserted commodities in the account (or, that their balance is 0). unasserted commodities in the account (or, that their balance is 0).
@ -441,7 +442,7 @@ FILE FORMAT
a 0 == $1 a 0 == $1
It's not yet possible to make a complete assertion about a balance that It's not yet possible to make a complete assertion about a balance that
has multiple commodities. One workaround is to isolate each commodity has multiple commodities. One workaround is to isolate each commodity
into its own subaccount: into its own subaccount:
2013/1/1 2013/1/1
@ -455,21 +456,21 @@ FILE FORMAT
a:euro 0 == 1EUR a:euro 0 == 1EUR
Assertions and prices Assertions and prices
Balance assertions ignore transaction prices, and should normally be Balance assertions ignore transaction prices, and should normally be
written without one: written without one:
2019/1/1 2019/1/1
(a) $1 @ EUR1 = $1 (a) $1 @ EUR1 = $1
We do allow prices to be written there, however, and print shows them, We do allow prices to be written there, however, and print shows them,
even though they don't affect whether the assertion passes or fails. even though they don't affect whether the assertion passes or fails.
This is for backward compatibility (hledger's close command used to This is for backward compatibility (hledger's close command used to
generate balance assertions with prices), and because balance assign- generate balance assertions with prices), and because balance assign-
ments do use them (see below). ments do use them (see below).
Assertions and subaccounts Assertions and subaccounts
The balance assertions above (= and ==) do not count the balance from The balance assertions above (= and ==) do not count the balance from
subaccounts; they check the account's exclusive balance only. You can subaccounts; they check the account's exclusive balance only. You can
assert the balance including subaccounts by writing =* or ==*, eg: assert the balance including subaccounts by writing =* or ==*, eg:
2019/1/1 2019/1/1
@ -483,16 +484,16 @@ FILE FORMAT
tual. They are not affected by the --real/-R flag or real: query. tual. They are not affected by the --real/-R flag or real: query.
Assertions and precision Assertions and precision
Balance assertions compare the exactly calculated amounts, which are Balance assertions compare the exactly calculated amounts, which are
not always what is shown by reports. Eg a commodity directive may not always what is shown by reports. Eg a commodity directive may
limit the display precision, but this will not affect balance asser- limit the display precision, but this will not affect balance asser-
tions. Balance assertion failure messages show exact amounts. tions. Balance assertion failure messages show exact amounts.
Balance Assignments Balance Assignments
Ledger-style balance assignments are also supported. These are like Ledger-style balance assignments are also supported. These are like
balance assertions, but with no posting amount on the left side of the balance assertions, but with no posting amount on the left side of the
equals sign; instead it is calculated automatically so as to satisfy equals sign; instead it is calculated automatically so as to satisfy
the assertion. This can be a convenience during data entry, eg when the assertion. This can be a convenience during data entry, eg when
setting opening balances: setting opening balances:
; starting a new journal, set asset account balances ; starting a new journal, set asset account balances
@ -510,14 +511,14 @@ FILE FORMAT
expenses:misc expenses:misc
The calculated amount depends on the account's balance in the commodity The calculated amount depends on the account's balance in the commodity
at that point (which depends on the previously-dated postings of the at that point (which depends on the previously-dated postings of the
commodity to that account since the last balance assertion or assign- commodity to that account since the last balance assertion or assign-
ment). Note that using balance assignments makes your journal a little ment). Note that using balance assignments makes your journal a little
less explicit; to know the exact amount posted, you have to run hledger less explicit; to know the exact amount posted, you have to run hledger
or do the calculations yourself, instead of just reading it. or do the calculations yourself, instead of just reading it.
Balance assignments and prices Balance assignments and prices
A transaction price in a balance assignment will cause the calculated A transaction price in a balance assignment will cause the calculated
amount to have that price attached: amount to have that price attached:
2019/1/1 2019/1/1
@ -529,9 +530,9 @@ FILE FORMAT
Transaction prices Transaction prices
Within a transaction, you can note an amount's price in another commod- Within a transaction, you can note an amount's price in another commod-
ity. This can be used to document the cost (in a purchase) or selling ity. This can be used to document the cost (in a purchase) or selling
price (in a sale). For example, transaction prices are useful to price (in a sale). For example, transaction prices are useful to
record purchases of a foreign currency. Note transaction prices are record purchases of a foreign currency. Note transaction prices are
fixed at the time of the transaction, and do not change over time. See fixed at the time of the transaction, and do not change over time. See
also market prices, which represent prevailing exchange rates on a cer- also market prices, which represent prevailing exchange rates on a cer-
tain date. tain date.
@ -560,7 +561,7 @@ FILE FORMAT
(Ledger users: Ledger uses a different syntax for fixed prices, {=UNIT- (Ledger users: Ledger uses a different syntax for fixed prices, {=UNIT-
PRICE}, which hledger currently ignores). PRICE}, which hledger currently ignores).
Use the -B/--cost flag to convert amounts to their transaction price's Use the -B/--cost flag to convert amounts to their transaction price's
commodity, if any. (mnemonic: "B" is from "cost Basis", as in Ledger). commodity, if any. (mnemonic: "B" is from "cost Basis", as in Ledger).
Eg here is how -B affects the balance report for the example above: Eg here is how -B affects the balance report for the example above:
@ -571,8 +572,8 @@ FILE FORMAT
$-135 assets:dollars $-135 assets:dollars
$135 assets:euros # <- the euros' cost $135 assets:euros # <- the euros' cost
Note -B is sensitive to the order of postings when a transaction price Note -B is sensitive to the order of postings when a transaction price
is inferred: the inferred price will be in the commodity of the last is inferred: the inferred price will be in the commodity of the last
amount. So if example 3's postings are reversed, while the transaction amount. So if example 3's postings are reversed, while the transaction
is equivalent, -B shows something different: is equivalent, -B shows something different:
@ -586,13 +587,13 @@ FILE FORMAT
Comments Comments
Lines in the journal beginning with a semicolon (;) or hash (#) or star Lines in the journal beginning with a semicolon (;) or hash (#) or star
(*) are comments, and will be ignored. (Star comments cause org-mode (*) are comments, and will be ignored. (Star comments cause org-mode
nodes to be ignored, allowing emacs users to fold and navigate their nodes to be ignored, allowing emacs users to fold and navigate their
journals with org-mode or orgstruct-mode.) journals with org-mode or orgstruct-mode.)
You can attach comments to a transaction by writing them after the de- You can attach comments to a transaction by writing them after the de-
scription and/or indented on the following lines (before the postings). scription and/or indented on the following lines (before the postings).
Similarly, you can attach comments to an individual posting by writing Similarly, you can attach comments to an individual posting by writing
them after the amount and/or indented on the following lines. Transac- them after the amount and/or indented on the following lines. Transac-
tion and posting comments must begin with a semicolon (;). tion and posting comments must begin with a semicolon (;).
@ -617,24 +618,24 @@ FILE FORMAT
; another comment line for posting 2 ; another comment line for posting 2
; a file comment (because not indented) ; a file comment (because not indented)
You can also comment larger regions of a file using comment and end You can also comment larger regions of a file using comment and end
comment directives. comment directives.
Tags Tags
Tags are a way to add extra labels or labelled data to postings and Tags are a way to add extra labels or labelled data to postings and
transactions, which you can then search or pivot on. transactions, which you can then search or pivot on.
A simple tag is a word (which may contain hyphens) followed by a full A simple tag is a word (which may contain hyphens) followed by a full
colon, written inside a transaction or posting comment line: colon, written inside a transaction or posting comment line:
2017/1/16 bought groceries ; sometag: 2017/1/16 bought groceries ; sometag:
Tags can have a value, which is the text after the colon, up to the Tags can have a value, which is the text after the colon, up to the
next comma or end of line, with leading/trailing whitespace removed: next comma or end of line, with leading/trailing whitespace removed:
expenses:food $10 ; a-posting-tag: the tag value expenses:food $10 ; a-posting-tag: the tag value
Note this means hledger's tag values can not contain commas or new- Note this means hledger's tag values can not contain commas or new-
lines. Ending at commas means you can write multiple short tags on one lines. Ending at commas means you can write multiple short tags on one
line, comma separated: line, comma separated:
@ -648,65 +649,65 @@ FILE FORMAT
o "tag2" is another tag, whose value is "some value ..." o "tag2" is another tag, whose value is "some value ..."
Tags in a transaction comment affect the transaction and all of its Tags in a transaction comment affect the transaction and all of its
postings, while tags in a posting comment affect only that posting. postings, while tags in a posting comment affect only that posting.
For example, the following transaction has three tags (A, TAG2, third- For example, the following transaction has three tags (A, TAG2, third-
tag) and the posting has four (those plus posting-tag): tag) and the posting has four (those plus posting-tag):
1/1 a transaction ; A:, TAG2: 1/1 a transaction ; A:, TAG2:
; third-tag: a third transaction tag, <- with a value ; third-tag: a third transaction tag, <- with a value
(a) $1 ; posting-tag: (a) $1 ; posting-tag:
Tags are like Ledger's metadata feature, except hledger's tag values Tags are like Ledger's metadata feature, except hledger's tag values
are simple strings. are simple strings.
Directives Directives
A directive is a line in the journal beginning with a special keyword, A directive is a line in the journal beginning with a special keyword,
that influences how the journal is processed. hledger's directives are that influences how the journal is processed. hledger's directives are
based on a subset of Ledger's, but there are many differences (and also based on a subset of Ledger's, but there are many differences (and also
some differences between hledger versions). some differences between hledger versions).
Directives' behaviour and interactions can get a little bit complex, so Directives' behaviour and interactions can get a little bit complex, so
here is a table summarising the directives and their effects, with here is a table summarising the directives and their effects, with
links to more detailed docs. links to more detailed docs.
direc- end di- subdi- purpose can affect (as of direc- end di- subdi- purpose can affect (as of
tive rective rec- 2018/06) tive rective rec- 2018/06)
tives tives
------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------
account any document account names, de- all entries in all account any document account names, de- all entries in all
text clare account types & dis- files, before or text clare account types & dis- files, before or
play order after play order after
alias end rewrite account names following in- alias end rewrite account names following in-
aliases line/included en- aliases line/included en-
tries until end of tries until end of
current file or end current file or end
directive directive
apply end apply prepend a common parent to following in- apply end apply prepend a common parent to following in-
account account account names line/included en- account account account names line/included en-
tries until end of tries until end of
current file or end current file or end
directive directive
comment end com- ignore part of journal following in- comment end com- ignore part of journal following in-
ment line/included en- ment line/included en-
tries until end of tries until end of
current file or end current file or end
directive directive
commod- format declare a commodity and its number notation: commod- format declare a commodity and its number notation:
ity number notation & display following entries ity number notation & display following entries
style in that commodity style in that commodity
in all files; dis- in all files; dis-
play style: amounts play style: amounts
of that commodity of that commodity
in reports in reports
D declare a commodity, number commodity: all com- D declare a commodity, number commodity: all com-
notation & display style for modityless entries notation & display style for modityless entries
commodityless amounts in all files; num- commodityless amounts in all files; num-
ber notation: fol- ber notation: fol-
lowing commodity- lowing commodity-
less entries and less entries and
entries in that entries in that
commodity in all commodity in all
files; display files; display
style: amounts of style: amounts of
that commodity in that commodity in
@ -714,26 +715,24 @@ FILE FORMAT
include include entries/directives what the included include include entries/directives what the included
from another file directives affect from another file directives affect
P declare a market price for a amounts of that P declare a market price for a amounts of that
commodity commodity in re- commodity commodity in re-
ports, when -V is ports, when -V is
used used
Y declare a year for yearless following in- Y declare a year for yearless following in-
dates line/included en- dates line/included en-
tries until end of tries until end of
current file current file
And some definitions: And some definitions:
subdirec- optional indented directive line immediately following a par- subdirec- optional indented directive line immediately following a par-
tive ent directive tive ent directive
number how to interpret numbers when parsing journal entries (the number how to interpret numbers when parsing journal entries (the
notation identity of the decimal separator character). (Currently notation identity of the decimal separator character). (Currently
each commodity can have its own notation, even in the same each commodity can have its own notation, even in the same
file.) file.)
display how to display amounts of a commodity in reports (symbol side display how to display amounts of a commodity in reports (symbol side
style and spacing, digit groups, decimal separator, decimal places) style and spacing, digit groups, decimal separator, decimal places)
directive which entries and (when there are multiple files) which files directive which entries and (when there are multiple files) which files
scope are affected by a directive scope are affected by a directive
@ -741,34 +740,34 @@ FILE FORMAT
affect, and whether they are focussed on input (parsing) or output (re- affect, and whether they are focussed on input (parsing) or output (re-
ports). Some directives have multiple effects. ports). Some directives have multiple effects.
If you have a journal made up of multiple files, or pass multiple -f If you have a journal made up of multiple files, or pass multiple -f
options on the command line, note that directives which affect input options on the command line, note that directives which affect input
typically last only until the end of their defining file. This pro- typically last only until the end of their defining file. This pro-
vides more simplicity and predictability, eg reports are not changed by vides more simplicity and predictability, eg reports are not changed by
writing file options in a different order. It can be surprising at writing file options in a different order. It can be surprising at
times though. times though.
Comment blocks Comment blocks
A line containing just comment starts a commented region of the file, A line containing just comment starts a commented region of the file,
and a line containing just end comment (or the end of the current file) and a line containing just end comment (or the end of the current file)
ends it. See also comments. ends it. See also comments.
Including other files Including other files
You can pull in the content of additional files by writing an include You can pull in the content of additional files by writing an include
directive, like this: directive, like this:
include path/to/file.journal include path/to/file.journal
If the path does not begin with a slash, it is relative to the current If the path does not begin with a slash, it is relative to the current
file. The include file path may contain common glob patterns (e.g. file. The include file path may contain common glob patterns (e.g.
*). *).
The include directive can only be used in journal files. It can in- The include directive can only be used in journal files. It can in-
clude journal, timeclock or timedot files, but not CSV files. clude journal, timeclock or timedot files, but not CSV files.
Default year Default year
You can set a default year to be used for subsequent dates which don't You can set a default year to be used for subsequent dates which don't
specify a year. This is a line beginning with Y followed by the year. specify a year. This is a line beginning with Y followed by the year.
Eg: Eg:
Y2009 ; set default year to 2009 Y2009 ; set default year to 2009
@ -790,18 +789,18 @@ FILE FORMAT
Declaring commodities Declaring commodities
The commodity directive has several functions: The commodity directive has several functions:
1. It declares commodities which may be used in the journal. This is 1. It declares commodities which may be used in the journal. This is
currently not enforced, but can serve as documentation. currently not enforced, but can serve as documentation.
2. It declares what decimal mark character to expect when parsing input 2. It declares what decimal mark character to expect when parsing input
- useful to disambiguate international number formats in your data. - useful to disambiguate international number formats in your data.
(Without this, hledger will parse both 1,000 and 1.000 as 1). (Without this, hledger will parse both 1,000 and 1.000 as 1).
3. It declares the amount display format to use in output - decimal and 3. It declares the amount display format to use in output - decimal and
digit group marks, number of decimal places, symbol placement etc. digit group marks, number of decimal places, symbol placement etc.
You are likely to run into one of the problems solved by commodity di- You are likely to run into one of the problems solved by commodity di-
rectives, sooner or later, so it's a good idea to just always use them rectives, sooner or later, so it's a good idea to just always use them
to declare your commodities. to declare your commodities.
A commodity directive is just the word commodity followed by an amount. A commodity directive is just the word commodity followed by an amount.
@ -814,8 +813,8 @@ FILE FORMAT
; separating thousands with comma. ; separating thousands with comma.
commodity 1,000.0000 AAAA commodity 1,000.0000 AAAA
or on multiple lines, using the "format" subdirective. (In this case or on multiple lines, using the "format" subdirective. (In this case
the commodity symbol appears twice and should be the same in both the commodity symbol appears twice and should be the same in both
places.): places.):
; commodity SYMBOL ; commodity SYMBOL
@ -828,14 +827,14 @@ FILE FORMAT
format INR 1,00,00,000.00 format INR 1,00,00,000.00
The quantity of the amount does not matter; only the format is signifi- The quantity of the amount does not matter; only the format is signifi-
cant. The number must include a decimal mark: either a period or a cant. The number must include a decimal mark: either a period or a
comma, followed by 0 or more decimal digits. comma, followed by 0 or more decimal digits.
Default commodity Default commodity
The D directive sets a default commodity (and display format), to be The D directive sets a default commodity (and display format), to be
used for amounts without a commodity symbol (ie, plain numbers). (Note used for amounts without a commodity symbol (ie, plain numbers). (Note
this differs from Ledger's default commodity directive.) The commodity this differs from Ledger's default commodity directive.) The commodity
and display format will be applied to all subsequent commodity-less and display format will be applied to all subsequent commodity-less
amounts, or until the next D directive. amounts, or until the next D directive.
; commodity-less amounts should be treated as dollars ; commodity-less amounts should be treated as dollars
@ -850,9 +849,9 @@ FILE FORMAT
a decimal point. a decimal point.
Market prices Market prices
The P directive declares a market price, which is an exchange rate be- The P directive declares a market price, which is an exchange rate be-
tween two commodities on a certain date. (In Ledger, they are called tween two commodities on a certain date. (In Ledger, they are called
"historical prices".) These are often obtained from a stock exchange, "historical prices".) These are often obtained from a stock exchange,
cryptocurrency exchange, or the foreign exchange market. cryptocurrency exchange, or the foreign exchange market.
Here is the format: Here is the format:
@ -863,16 +862,16 @@ FILE FORMAT
o COMMODITYA is the symbol of the commodity being priced o COMMODITYA is the symbol of the commodity being priced
o COMMODITYBAMOUNT is an amount (symbol and quantity) in a second com- o COMMODITYBAMOUNT is an amount (symbol and quantity) in a second com-
modity, giving the price in commodity B of one unit of commodity A. modity, giving the price in commodity B of one unit of commodity A.
These two market price directives say that one euro was worth 1.35 US These two market price directives say that one euro was worth 1.35 US
dollars during 2009, and $1.40 from 2010 onward: dollars during 2009, and $1.40 from 2010 onward:
P 2009/1/1 EUR $1.35 P 2009/1/1 EUR $1.35
P 2010/1/1 EUR $1.40 P 2010/1/1 EUR $1.40
The -V/--value flag can be used to convert reported amounts to another The -V/--value flag can be used to convert reported amounts to another
commodity using these prices. commodity using these prices.
Declaring accounts Declaring accounts
@ -882,20 +881,20 @@ FILE FORMAT
o They can document your intended chart of accounts, providing a refer- o They can document your intended chart of accounts, providing a refer-
ence. ence.
o They can store extra information about accounts (account numbers, o They can store extra information about accounts (account numbers,
notes, etc.) notes, etc.)
o They can help hledger know your accounts' types (asset, liability, o They can help hledger know your accounts' types (asset, liability,
equity, revenue, expense), useful for reports like balancesheet and equity, revenue, expense), useful for reports like balancesheet and
incomestatement. incomestatement.
o They control account display order in reports, allowing non-alpha- o They control account display order in reports, allowing non-alpha-
betic sorting (eg Revenues to appear above Expenses). betic sorting (eg Revenues to appear above Expenses).
o They help with account name completion in the add command, hledger- o They help with account name completion in the add command, hledger-
iadd, hledger-web, ledger-mode etc. iadd, hledger-web, ledger-mode etc.
The simplest form is just the word account followed by a hledger-style The simplest form is just the word account followed by a hledger-style
account name, eg: account name, eg:
account assets:bank:checking account assets:bank:checking
@ -913,7 +912,7 @@ FILE FORMAT
the next line instead. the next line instead.
Account subdirectives Account subdirectives
We also allow (and ignore) Ledger-style indented subdirectives, just We also allow (and ignore) Ledger-style indented subdirectives, just
for compatibility.: for compatibility.:
account assets:bank:checking account assets:bank:checking
@ -926,18 +925,18 @@ FILE FORMAT
[LEDGER-STYLE SUBDIRECTIVES, IGNORED] [LEDGER-STYLE SUBDIRECTIVES, IGNORED]
Account types Account types
hledger recognises five types (or classes) of account: Asset, Liabil- hledger recognises five types (or classes) of account: Asset, Liabil-
ity, Equity, Revenue, Expense. This is used by a few accounting-aware ity, Equity, Revenue, Expense. This is used by a few accounting-aware
reports such as balancesheet, incomestatement and cashflow. reports such as balancesheet, incomestatement and cashflow.
Auto-detected account types Auto-detected account types
If you name your top-level accounts with some variation of assets, lia- If you name your top-level accounts with some variation of assets, lia-
bilities/debts, equity, revenues/income, or expenses, their types are bilities/debts, equity, revenues/income, or expenses, their types are
detected automatically. detected automatically.
Account types declared with tags Account types declared with tags
More generally, you can declare an account's type with an account di- More generally, you can declare an account's type with an account di-
rective, by writing a type: tag in a comment, followed by one of the rective, by writing a type: tag in a comment, followed by one of the
words Asset, Liability, Equity, Revenue, Expense, or one of the letters words Asset, Liability, Equity, Revenue, Expense, or one of the letters
ALERX (case insensitive): ALERX (case insensitive):
@ -948,8 +947,8 @@ FILE FORMAT
account expenses ; type:Expenses account expenses ; type:Expenses
Account types declared with account type codes Account types declared with account type codes
Or, you can write one of those letters separated from the account name Or, you can write one of those letters separated from the account name
by two or more spaces, but this should probably be considered depre- by two or more spaces, but this should probably be considered depre-
cated as of hledger 1.13: cated as of hledger 1.13:
account assets A account assets A
@ -959,7 +958,7 @@ FILE FORMAT
account expenses X account expenses X
Overriding auto-detected types Overriding auto-detected types
If you ever override the types of those auto-detected english account If you ever override the types of those auto-detected english account
names mentioned above, you might need to help the reports a bit. Eg: names mentioned above, you might need to help the reports a bit. Eg:
; make "liabilities" not have the liability type - who knows why ; make "liabilities" not have the liability type - who knows why
@ -970,8 +969,8 @@ FILE FORMAT
account - ; type:L account - ; type:L
Account display order Account display order
Account directives also set the order in which accounts are displayed, Account directives also set the order in which accounts are displayed,
eg in reports, the hledger-ui accounts screen, and the hledger-web eg in reports, the hledger-ui accounts screen, and the hledger-web
sidebar. By default accounts are listed in alphabetical order. But if sidebar. By default accounts are listed in alphabetical order. But if
you have these account directives in the journal: you have these account directives in the journal:
@ -993,16 +992,16 @@ FILE FORMAT
Undeclared accounts, if any, are displayed last, in alphabetical order. Undeclared accounts, if any, are displayed last, in alphabetical order.
Note that sorting is done at each level of the account tree (within Note that sorting is done at each level of the account tree (within
each group of sibling accounts under the same parent). And currently, each group of sibling accounts under the same parent). And currently,
this directive: this directive:
account other:zoo account other:zoo
would influence the position of zoo among other's subaccounts, but not would influence the position of zoo among other's subaccounts, but not
the position of other among the top-level accounts. This means: - you the position of other among the top-level accounts. This means: - you
will sometimes declare parent accounts (eg account other above) that will sometimes declare parent accounts (eg account other above) that
you don't intend to post to, just to customize their display order - you don't intend to post to, just to customize their display order -
sibling accounts stay together (you couldn't display x:y in between a:b sibling accounts stay together (you couldn't display x:y in between a:b
and a:c). and a:c).
@ -1021,14 +1020,14 @@ FILE FORMAT
o customising reports o customising reports
Account aliases also rewrite account names in account directives. They Account aliases also rewrite account names in account directives. They
do not affect account names being entered via hledger add or hledger- do not affect account names being entered via hledger add or hledger-
web. web.
See also Rewrite account names. See also Rewrite account names.
Basic aliases Basic aliases
To set an account alias, use the alias directive in your journal file. To set an account alias, use the alias directive in your journal file.
This affects all subsequent journal entries in the current file or its This affects all subsequent journal entries in the current file or its
included files. The spaces around the = are optional: included files. The spaces around the = are optional:
alias OLD = NEW alias OLD = NEW
@ -1036,49 +1035,49 @@ FILE FORMAT
Or, you can use the --alias 'OLD=NEW' option on the command line. This Or, you can use the --alias 'OLD=NEW' option on the command line. This
affects all entries. It's useful for trying out aliases interactively. affects all entries. It's useful for trying out aliases interactively.
OLD and NEW are case sensitive full account names. hledger will re- OLD and NEW are case sensitive full account names. hledger will re-
place any occurrence of the old account name with the new one. Subac- place any occurrence of the old account name with the new one. Subac-
counts are also affected. Eg: counts are also affected. Eg:
alias checking = assets:bank:wells fargo:checking alias checking = assets:bank:wells fargo:checking
; rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a" ; rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
Regex aliases Regex aliases
There is also a more powerful variant that uses a regular expression, There is also a more powerful variant that uses a regular expression,
indicated by the forward slashes: indicated by the forward slashes:
alias /REGEX/ = REPLACEMENT alias /REGEX/ = REPLACEMENT
or --alias '/REGEX/=REPLACEMENT'. or --alias '/REGEX/=REPLACEMENT'.
REGEX is a case-insensitive regular expression. Anywhere it matches REGEX is a case-insensitive regular expression. Anywhere it matches
inside an account name, the matched part will be replaced by REPLACE- inside an account name, the matched part will be replaced by REPLACE-
MENT. If REGEX contains parenthesised match groups, these can be ref- MENT. If REGEX contains parenthesised match groups, these can be ref-
erenced by the usual numeric backreferences in REPLACEMENT. Eg: erenced by the usual numeric backreferences in REPLACEMENT. Eg:
alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3 alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3
; rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking" ; rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking"
Also note that REPLACEMENT continues to the end of line (or on command Also note that REPLACEMENT continues to the end of line (or on command
line, to end of option argument), so it can contain trailing white- line, to end of option argument), so it can contain trailing white-
space. space.
Combining aliases Combining aliases
You can define as many aliases as you like, using journal directives You can define as many aliases as you like, using journal directives
and/or command line options. and/or command line options.
Recursive aliases - where an account name is rewritten by one alias, Recursive aliases - where an account name is rewritten by one alias,
then by another alias, and so on - are allowed. Each alias sees the then by another alias, and so on - are allowed. Each alias sees the
effect of previously applied aliases. effect of previously applied aliases.
In such cases it can be important to understand which aliases will be In such cases it can be important to understand which aliases will be
applied and in which order. For (each account name in) each journal applied and in which order. For (each account name in) each journal
entry, we apply: entry, we apply:
1. alias directives preceding the journal entry, most recently parsed 1. alias directives preceding the journal entry, most recently parsed
first (ie, reading upward from the journal entry, bottom to top) first (ie, reading upward from the journal entry, bottom to top)
2. --alias options, in the order they appeared on the command line 2. --alias options, in the order they appeared on the command line
(left to right). (left to right).
In other words, for (an account name in) a given journal entry: In other words, for (an account name in) a given journal entry:
@ -1089,22 +1088,22 @@ FILE FORMAT
o aliases defined after/below the entry do not affect it. o aliases defined after/below the entry do not affect it.
This gives nearby aliases precedence over distant ones, and helps pro- This gives nearby aliases precedence over distant ones, and helps pro-
vide semantic stability - aliases will keep working the same way inde- vide semantic stability - aliases will keep working the same way inde-
pendent of which files are being read and in which order. pendent of which files are being read and in which order.
In case of trouble, adding --debug=6 to the command line will show In case of trouble, adding --debug=6 to the command line will show
which aliases are being applied when. which aliases are being applied when.
end aliases end aliases
You can clear (forget) all currently defined aliases with the end You can clear (forget) all currently defined aliases with the end
aliases directive: aliases directive:
end aliases end aliases
Default parent account Default parent account
You can specify a parent account which will be prepended to all ac- You can specify a parent account which will be prepended to all ac-
counts within a section of the journal. Use the apply account and end counts within a section of the journal. Use the apply account and end
apply account directives like so: apply account directives like so:
apply account home apply account home
@ -1121,7 +1120,7 @@ FILE FORMAT
home:food $10 home:food $10
home:cash $-10 home:cash $-10
If end apply account is omitted, the effect lasts to the end of the If end apply account is omitted, the effect lasts to the end of the
file. Included files are also affected, eg: file. Included files are also affected, eg:
apply account business apply account business
@ -1130,50 +1129,50 @@ FILE FORMAT
apply account personal apply account personal
include personal.journal include personal.journal
Prior to hledger 1.0, legacy account and end spellings were also sup- Prior to hledger 1.0, legacy account and end spellings were also sup-
ported. ported.
A default parent account also affects account directives. It does not A default parent account also affects account directives. It does not
affect account names being entered via hledger add or hledger-web. If affect account names being entered via hledger add or hledger-web. If
account aliases are present, they are applied after the default parent account aliases are present, they are applied after the default parent
account. account.
Periodic transactions Periodic transactions
Periodic transaction rules describe transactions that recur. They al- Periodic transaction rules describe transactions that recur. They al-
low hledger to generate temporary future transactions to help with low hledger to generate temporary future transactions to help with
forecasting, so you don't have to write out each one in the journal, forecasting, so you don't have to write out each one in the journal,
and it's easy to try out different forecasts. Secondly, they are also and it's easy to try out different forecasts. Secondly, they are also
used to define the budgets shown in budget reports. used to define the budgets shown in budget reports.
Periodic transactions can be a little tricky, so before you use them, Periodic transactions can be a little tricky, so before you use them,
read this whole section - or at least these tips: read this whole section - or at least these tips:
1. Two spaces accidentally added or omitted will cause you trouble - 1. Two spaces accidentally added or omitted will cause you trouble -
read about this below. read about this below.
2. For troubleshooting, show the generated transactions with hledger 2. For troubleshooting, show the generated transactions with hledger
print --forecast tag:generated or hledger register --forecast print --forecast tag:generated or hledger register --forecast
tag:generated. tag:generated.
3. Forecasted transactions will begin only after the last non-fore- 3. Forecasted transactions will begin only after the last non-fore-
casted transaction's date. casted transaction's date.
4. Forecasted transactions will end 6 months from today, by default. 4. Forecasted transactions will end 6 months from today, by default.
See below for the exact start/end rules. See below for the exact start/end rules.
5. period expressions can be tricky. Their documentation needs im- 5. period expressions can be tricky. Their documentation needs im-
provement, but is worth studying. provement, but is worth studying.
6. Some period expressions with a repeating interval must begin on a 6. Some period expressions with a repeating interval must begin on a
natural boundary of that interval. Eg in weekly from DATE, DATE natural boundary of that interval. Eg in weekly from DATE, DATE
must be a monday. ~ weekly from 2019/10/1 (a tuesday) will give an must be a monday. ~ weekly from 2019/10/1 (a tuesday) will give an
error. error.
7. Other period expressions with an interval are automatically expanded 7. Other period expressions with an interval are automatically expanded
to cover a whole number of that interval. (This is done to improve to cover a whole number of that interval. (This is done to improve
reports, but it also affects periodic transactions. Yes, it's a bit reports, but it also affects periodic transactions. Yes, it's a bit
inconsistent with the above.) Eg: ~ every 10th day of month from inconsistent with the above.) Eg: ~ every 10th day of month from
2020/01, which is equivalent to ~ every 10th day of month from 2020/01, which is equivalent to ~ every 10th day of month from
2020/01/01, will be adjusted to start on 2019/12/10. 2020/01/01, will be adjusted to start on 2019/12/10.
Periodic rule syntax Periodic rule syntax
@ -1185,17 +1184,17 @@ FILE FORMAT
expenses:rent $2000 expenses:rent $2000
assets:bank:checking assets:bank:checking
There is an additional constraint on the period expression: the start There is an additional constraint on the period expression: the start
date must fall on a natural boundary of the interval. Eg monthly from date must fall on a natural boundary of the interval. Eg monthly from
2018/1/1 is valid, but monthly from 2018/1/15 is not. 2018/1/1 is valid, but monthly from 2018/1/15 is not.
Partial or relative dates (M/D, D, tomorrow, last week) in the period Partial or relative dates (M/D, D, tomorrow, last week) in the period
expression can work (useful or not). They will be relative to today's expression can work (useful or not). They will be relative to today's
date, unless a Y default year directive is in effect, in which case date, unless a Y default year directive is in effect, in which case
they will be relative to Y/1/1. they will be relative to Y/1/1.
Two spaces between period expression and description! Two spaces between period expression and description!
If the period expression is followed by a transaction description, If the period expression is followed by a transaction description,
these must be separated by two or more spaces. This helps hledger know these must be separated by two or more spaces. This helps hledger know
where the period expression ends, so that descriptions can not acciden- where the period expression ends, so that descriptions can not acciden-
tally alter their meaning, as in this example: tally alter their meaning, as in this example:
@ -1209,82 +1208,82 @@ FILE FORMAT
So, So,
o Do write two spaces between your period expression and your transac- o Do write two spaces between your period expression and your transac-
tion description, if any. tion description, if any.
o Don't accidentally write two spaces in the middle of your period ex- o Don't accidentally write two spaces in the middle of your period ex-
pression. pression.
Forecasting with periodic transactions Forecasting with periodic transactions
With the --forecast flag, each periodic transaction rule generates fu- With the --forecast flag, each periodic transaction rule generates fu-
ture transactions recurring at the specified interval. These are not ture transactions recurring at the specified interval. These are not
saved in the journal, but appear in all reports. They will look like saved in the journal, but appear in all reports. They will look like
normal transactions, but with an extra tag: normal transactions, but with an extra tag:
o generated-transaction:~ PERIODICEXPR - shows that this was generated o generated-transaction:~ PERIODICEXPR - shows that this was generated
by a periodic transaction rule, and the period by a periodic transaction rule, and the period
There is also a hidden tag, with an underscore prefix, which does not There is also a hidden tag, with an underscore prefix, which does not
appear in hledger's output: appear in hledger's output:
o _generated-transaction:~ PERIODICEXPR o _generated-transaction:~ PERIODICEXPR
This can be used to match transactions generated "just now", rather This can be used to match transactions generated "just now", rather
than generated in the past and saved to the journal. than generated in the past and saved to the journal.
Forecast transactions start on the first occurrence, and end on the Forecast transactions start on the first occurrence, and end on the
last occurrence, of their interval within the forecast period. The last occurrence, of their interval within the forecast period. The
forecast period: forecast period:
o begins on the later of o begins on the later of
o the report start date if specified with -b/-p/date: o the report start date if specified with -b/-p/date:
o the day after the latest normal (non-periodic) transaction in the o the day after the latest normal (non-periodic) transaction in the
journal, or today if there are no normal transactions. journal, or today if there are no normal transactions.
o ends on the report end date if specified with -e/-p/date:, or 180 o ends on the report end date if specified with -e/-p/date:, or 180
days from today. days from today.
where "today" means the current date at report time. The "later of" where "today" means the current date at report time. The "later of"
rule ensures that forecast transactions do not overlap normal transac- rule ensures that forecast transactions do not overlap normal transac-
tions in time; they will begin only after normal transactions end. tions in time; they will begin only after normal transactions end.
Forecasting can be useful for estimating balances into the future, and Forecasting can be useful for estimating balances into the future, and
experimenting with different scenarios. Note the start date logic experimenting with different scenarios. Note the start date logic
means that forecasted transactions are automatically replaced by normal means that forecasted transactions are automatically replaced by normal
transactions as you add those. transactions as you add those.
Forecasting can also help with data entry: describe most of your trans- Forecasting can also help with data entry: describe most of your trans-
actions with periodic rules, and every so often copy the output of actions with periodic rules, and every so often copy the output of
print --forecast to the journal. print --forecast to the journal.
You can generate one-time transactions too: just write a period expres- You can generate one-time transactions too: just write a period expres-
sion specifying a date with no report interval. (You could also write sion specifying a date with no report interval. (You could also write
a normal transaction with a future date, but remember this disables a normal transaction with a future date, but remember this disables
forecast transactions on previous dates.) forecast transactions on previous dates.)
Budgeting with periodic transactions Budgeting with periodic transactions
With the --budget flag, currently supported by the balance command, With the --budget flag, currently supported by the balance command,
each periodic transaction rule declares recurring budget goals for the each periodic transaction rule declares recurring budget goals for the
specified accounts. Eg the first example above declares a goal of specified accounts. Eg the first example above declares a goal of
spending $2000 on rent (and also, a goal of depositing $2000 into spending $2000 on rent (and also, a goal of depositing $2000 into
checking) every month. Goals and actual performance can then be com- checking) every month. Goals and actual performance can then be com-
pared in budget reports. pared in budget reports.
For more details, see: balance: Budget report and Budgeting and Fore- For more details, see: balance: Budget report and Budgeting and Fore-
casting. casting.
Auto postings / transaction modifiers Auto postings / transaction modifiers
Transaction modifier rules, AKA auto posting rules, describe changes to Transaction modifier rules, AKA auto posting rules, describe changes to
be applied automatically to certain matched transactions. Currently be applied automatically to certain matched transactions. Currently
just one kind of change is possible - adding extra postings, which we just one kind of change is possible - adding extra postings, which we
call "automated postings" or just "auto postings". These rules become call "automated postings" or just "auto postings". These rules become
active when you use the --auto flag. active when you use the --auto flag.
A transaction modifier rule looks much like a normal transaction except A transaction modifier rule looks much like a normal transaction except
the first line is an equals sign followed by a query that matches cer- the first line is an equals sign followed by a query that matches cer-
tain postings (mnemonic: = suggests matching). And each "posting" is tain postings (mnemonic: = suggests matching). And each "posting" is
actually a posting-generating rule: actually a posting-generating rule:
= QUERY = QUERY
@ -1292,20 +1291,20 @@ FILE FORMAT
ACCT [AMT] ACCT [AMT]
... ...
These posting-generating rules look like normal postings, except the These posting-generating rules look like normal postings, except the
amount can be: amount can be:
o a normal amount with a commodity symbol, eg $2. This will be used o a normal amount with a commodity symbol, eg $2. This will be used
as-is. as-is.
o a number, eg 2. The commodity symbol (if any) from the matched post- o a number, eg 2. The commodity symbol (if any) from the matched post-
ing will be added to this. ing will be added to this.
o a numeric multiplier, eg *2 (a star followed by a number N). The o a numeric multiplier, eg *2 (a star followed by a number N). The
matched posting's amount (and total price, if any) will be multiplied matched posting's amount (and total price, if any) will be multiplied
by N. by N.
o a multiplier with a commodity symbol, eg *$2 (a star, number N, and o a multiplier with a commodity symbol, eg *$2 (a star, number N, and
symbol S). The matched posting's amount will be multiplied by N, and symbol S). The matched posting's amount will be multiplied by N, and
its commodity symbol will be replaced with S. its commodity symbol will be replaced with S.
@ -1345,20 +1344,20 @@ FILE FORMAT
assets:checking $20 assets:checking $20
Auto postings and dates Auto postings and dates
A posting date (or secondary date) in the matched posting, or (taking A posting date (or secondary date) in the matched posting, or (taking
precedence) a posting date in the auto posting rule itself, will also precedence) a posting date in the auto posting rule itself, will also
be used in the generated posting. be used in the generated posting.
Auto postings and transaction balancing / inferred amounts / balance asser- Auto postings and transaction balancing / inferred amounts / balance asser-
tions tions
Currently, transaction modifiers are applied / auto postings are added: Currently, transaction modifiers are applied / auto postings are added:
o after missing amounts are inferred, and transactions are checked for o after missing amounts are inferred, and transactions are checked for
balancedness, balancedness,
o but before balance assertions are checked. o but before balance assertions are checked.
Note this means that journal entries must be balanced both before and Note this means that journal entries must be balanced both before and
after auto postings are added. This changed in hledger 1.12+; see #893 after auto postings are added. This changed in hledger 1.12+; see #893
for background. for background.
@ -1368,11 +1367,11 @@ FILE FORMAT
o generated-posting:= QUERY - shows this was generated by an auto post- o generated-posting:= QUERY - shows this was generated by an auto post-
ing rule, and the query ing rule, and the query
o _generated-posting:= QUERY - a hidden tag, which does not appear in o _generated-posting:= QUERY - a hidden tag, which does not appear in
hledger's output. This can be used to match postings generated "just hledger's output. This can be used to match postings generated "just
now", rather than generated in the past and saved to the journal. now", rather than generated in the past and saved to the journal.
Also, any transaction that has been changed by transaction modifier Also, any transaction that has been changed by transaction modifier
rules will have these tags added: rules will have these tags added:
o modified: - this transaction was modified o modified: - this transaction was modified
@ -1381,18 +1380,18 @@ FILE FORMAT
tion was modified "just now". tion was modified "just now".
EDITOR SUPPORT EDITOR SUPPORT
Helper modes exist for popular text editors, which make working with Helper modes exist for popular text editors, which make working with
journal files easier. They add colour, formatting, tab completion, and journal files easier. They add colour, formatting, tab completion, and
helpful commands, and are quite recommended if you edit your journal helpful commands, and are quite recommended if you edit your journal
with a text editor. They include ledger-mode or hledger-mode for with a text editor. They include ledger-mode or hledger-mode for
Emacs, vim-ledger for Vim, hledger-vscode for Visual Studio Code, and Emacs, vim-ledger for Vim, hledger-vscode for Visual Studio Code, and
others. See the Editor configuration at hledger.org for the latest in- others. See the Editor configuration at hledger.org for the latest in-
formation. formation.
REPORTING BUGS REPORTING BUGS
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
or hledger mail list) or hledger mail list)
@ -1406,7 +1405,7 @@ COPYRIGHT
SEE ALSO SEE ALSO
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
dot(5), ledger(1) dot(5), ledger(1)

View File

@ -63,7 +63,7 @@ use emacs and the built-in timeclock.el, or the extended timeclock-x.el
and perhaps the extras in ledgerutils.el and perhaps the extras in ledgerutils.el
.IP \[bu] 2 .IP \[bu] 2
at the command line, use these bash aliases: at the command line, use these bash aliases:
\f[C]shell alias ti=\[dq]echo i \[ga]date \[aq]+%Y-%m-%d %H:%M:%S\[aq]\[ga] \[rs]$* >>$TIMELOG\[dq] alias to=\[dq]echo o \[ga]date \[aq]+%Y-%m-%d %H:%M:%S\[aq]\[ga] >>$TIMELOG\[dq]\f[R] \f[C]shell alias ti=\[dq]echo i \[ga]date \[aq]+%Y-%m-%d %H:%M:%S\[aq]\[ga] \[rs]$* >>$TIMELOG\[dq] alias to=\[dq]echo o \[ga]date \[aq]+%Y-%m-%d %H:%M:%S\[aq]\[ga] >>$TIMELOG\[dq]\f[R]
.IP \[bu] 2 .IP \[bu] 2
or use the old \f[C]ti\f[R] and \f[C]to\f[R] scripts in the ledger 2.x or use the old \f[C]ti\f[R] and \f[C]to\f[R] scripts in the ledger 2.x
repository. repository.

View File

@ -1,4 +1,4 @@
This is hledger_timeclock.info, produced by makeinfo version 6.5 from This is hledger_timeclock.info, produced by makeinfo version 6.7 from
stdin. stdin.
 
@ -59,3 +59,8 @@ Tag Table:
Node: Top78 Node: Top78
 
End Tag Table End Tag Table

Local Variables:
coding: utf-8
End:

View File

@ -45,9 +45,9 @@ DESCRIPTION
o use emacs and the built-in timeclock.el, or the extended timeclock- o use emacs and the built-in timeclock.el, or the extended timeclock-
x.el and perhaps the extras in ledgerutils.el x.el and perhaps the extras in ledgerutils.el
o at the command line, use these bash aliases: shell alias ti="echo i o at the command line, use these bash aliases: shell alias ti="echo
`date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o `date i `date '+%Y-%m-%d %H:%M:%S'` \$* >>$TIMELOG" alias to="echo o
'+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG"
o or use the old ti and to scripts in the ledger 2.x repository. These o or use the old ti and to scripts in the ledger 2.x repository. These
rely on a "timeclock" executable which I think is just the ledger 2 rely on a "timeclock" executable which I think is just the ledger 2

View File

@ -1,4 +1,4 @@
This is hledger_timedot.info, produced by makeinfo version 6.5 from This is hledger_timedot.info, produced by makeinfo version 6.7 from
stdin. stdin.
 
@ -115,3 +115,8 @@ Node: FILE FORMAT812
Ref: #file-format913 Ref: #file-format913
 
End Tag Table End Tag Table

Local Variables:
coding: utf-8
End:

View File

@ -47,113 +47,114 @@ before options as shown above.
Any QUERYARGS are interpreted as a hledger search query which filters Any QUERYARGS are interpreted as a hledger search query which filters
the data. the data.
.TP .TP
.B \f[C]--watch\f[R] \f[B]\f[CB]--watch\f[B]\f[R]
watch for data and date changes and reload automatically watch for data and date changes and reload automatically
.TP .TP
.B \f[C]--theme=default|terminal|greenterm\f[R] \f[B]\f[CB]--theme=default|terminal|greenterm\f[B]\f[R]
use this custom display theme use this custom display theme
.TP .TP
.B \f[C]--register=ACCTREGEX\f[R] \f[B]\f[CB]--register=ACCTREGEX\f[B]\f[R]
start in the (first) matched account\[aq]s register screen start in the (first) matched account\[aq]s register screen
.TP .TP
.B \f[C]--change\f[R] \f[B]\f[CB]--change\f[B]\f[R]
show period balances (changes) at startup instead of historical balances show period balances (changes) at startup instead of historical balances
.TP .TP
.B \f[C]-F --flat\f[R] \f[B]\f[CB]-F --flat\f[B]\f[R]
show accounts as a list (default) show accounts as a list (default)
.TP .TP
.B \f[C]-T --tree\f[R] \f[B]\f[CB]-T --tree\f[B]\f[R]
show accounts as a tree show accounts as a tree
.TP .TP
.B \f[C]--future\f[R] \f[B]\f[CB]--future\f[B]\f[R]
show transactions dated later than today (normally hidden) show transactions dated later than today (normally hidden)
.PP .PP
hledger input options: hledger input options:
.TP .TP
.B \f[C]-f FILE --file=FILE\f[R] \f[B]\f[CB]-f FILE --file=FILE\f[B]\f[R]
use a different input file. use a different input file.
For stdin, use - (default: \f[C]$LEDGER_FILE\f[R] or For stdin, use - (default: \f[C]$LEDGER_FILE\f[R] or
\f[C]$HOME/.hledger.journal\f[R]) \f[C]$HOME/.hledger.journal\f[R])
.TP .TP
.B \f[C]--rules-file=RULESFILE\f[R] \f[B]\f[CB]--rules-file=RULESFILE\f[B]\f[R]
Conversion rules file to use when reading CSV (default: FILE.rules) Conversion rules file to use when reading CSV (default: FILE.rules)
.TP .TP
.B \f[C]--separator=CHAR\f[R] \f[B]\f[CB]--separator=CHAR\f[B]\f[R]
Field separator to expect when reading CSV (default: \[aq],\[aq]) Field separator to expect when reading CSV (default: \[aq],\[aq])
.TP .TP
.B \f[C]--alias=OLD=NEW\f[R] \f[B]\f[CB]--alias=OLD=NEW\f[B]\f[R]
rename accounts named OLD to NEW rename accounts named OLD to NEW
.TP .TP
.B \f[C]--anon\f[R] \f[B]\f[CB]--anon\f[B]\f[R]
anonymize accounts and payees anonymize accounts and payees
.TP .TP
.B \f[C]--pivot FIELDNAME\f[R] \f[B]\f[CB]--pivot FIELDNAME\f[B]\f[R]
use some other field or tag for the account name use some other field or tag for the account name
.TP .TP
.B \f[C]-I --ignore-assertions\f[R] \f[B]\f[CB]-I --ignore-assertions\f[B]\f[R]
ignore any failing balance assertions disable balance assertion checks (note: does not disable balance
assignments)
.PP .PP
hledger reporting options: hledger reporting options:
.TP .TP
.B \f[C]-b --begin=DATE\f[R] \f[B]\f[CB]-b --begin=DATE\f[B]\f[R]
include postings/txns on or after this date include postings/txns on or after this date
.TP .TP
.B \f[C]-e --end=DATE\f[R] \f[B]\f[CB]-e --end=DATE\f[B]\f[R]
include postings/txns before this date include postings/txns before this date
.TP .TP
.B \f[C]-D --daily\f[R] \f[B]\f[CB]-D --daily\f[B]\f[R]
multiperiod/multicolumn report by day multiperiod/multicolumn report by day
.TP .TP
.B \f[C]-W --weekly\f[R] \f[B]\f[CB]-W --weekly\f[B]\f[R]
multiperiod/multicolumn report by week multiperiod/multicolumn report by week
.TP .TP
.B \f[C]-M --monthly\f[R] \f[B]\f[CB]-M --monthly\f[B]\f[R]
multiperiod/multicolumn report by month multiperiod/multicolumn report by month
.TP .TP
.B \f[C]-Q --quarterly\f[R] \f[B]\f[CB]-Q --quarterly\f[B]\f[R]
multiperiod/multicolumn report by quarter multiperiod/multicolumn report by quarter
.TP .TP
.B \f[C]-Y --yearly\f[R] \f[B]\f[CB]-Y --yearly\f[B]\f[R]
multiperiod/multicolumn report by year multiperiod/multicolumn report by year
.TP .TP
.B \f[C]-p --period=PERIODEXP\f[R] \f[B]\f[CB]-p --period=PERIODEXP\f[B]\f[R]
set start date, end date, and/or reporting interval all at once using set start date, end date, and/or reporting interval all at once using
period expressions syntax period expressions syntax
.TP .TP
.B \f[C]--date2\f[R] \f[B]\f[CB]--date2\f[B]\f[R]
match the secondary date instead (see command help for other effects) match the secondary date instead (see command help for other effects)
.TP .TP
.B \f[C]-U --unmarked\f[R] \f[B]\f[CB]-U --unmarked\f[B]\f[R]
include only unmarked postings/txns (can combine with -P or -C) include only unmarked postings/txns (can combine with -P or -C)
.TP .TP
.B \f[C]-P --pending\f[R] \f[B]\f[CB]-P --pending\f[B]\f[R]
include only pending postings/txns include only pending postings/txns
.TP .TP
.B \f[C]-C --cleared\f[R] \f[B]\f[CB]-C --cleared\f[B]\f[R]
include only cleared postings/txns include only cleared postings/txns
.TP .TP
.B \f[C]-R --real\f[R] \f[B]\f[CB]-R --real\f[B]\f[R]
include only non-virtual postings include only non-virtual postings
.TP .TP
.B \f[C]-NUM --depth=NUM\f[R] \f[B]\f[CB]-NUM --depth=NUM\f[B]\f[R]
hide/aggregate accounts or postings more than NUM levels deep hide/aggregate accounts or postings more than NUM levels deep
.TP .TP
.B \f[C]-E --empty\f[R] \f[B]\f[CB]-E --empty\f[B]\f[R]
show items with zero amount, normally hidden (and vice-versa in show items with zero amount, normally hidden (and vice-versa in
hledger-ui/hledger-web) hledger-ui/hledger-web)
.TP .TP
.B \f[C]-B --cost\f[R] \f[B]\f[CB]-B --cost\f[B]\f[R]
convert amounts to their cost at transaction time (using the transaction convert amounts to their cost at transaction time (using the transaction
price, if any) price, if any)
.TP .TP
.B \f[C]-V --value\f[R] \f[B]\f[CB]-V --value\f[B]\f[R]
convert amounts to their market value on the report end date (using the convert amounts to their market value on the report end date (using the
most recent applicable market price, if any) most recent applicable market price, if any)
.TP .TP
.B \f[C]--auto\f[R] \f[B]\f[CB]--auto\f[B]\f[R]
apply automated posting rules to modify transactions. apply automated posting rules to modify transactions.
.TP .TP
.B \f[C]--forecast\f[R] \f[B]\f[CB]--forecast\f[B]\f[R]
apply periodic transaction rules to generate future transactions, to 6 apply periodic transaction rules to generate future transactions, to 6
months from now or report end date. months from now or report end date.
.PP .PP
@ -164,13 +165,13 @@ Some reporting options can also be written as query arguments.
.PP .PP
hledger help options: hledger help options:
.TP .TP
.B \f[C]-h --help\f[R] \f[B]\f[CB]-h --help\f[B]\f[R]
show general usage (or after COMMAND, command usage) show general usage (or after COMMAND, command usage)
.TP .TP
.B \f[C]--version\f[R] \f[B]\f[CB]--version\f[B]\f[R]
show version show version
.TP .TP
.B \f[C]--debug[=N]\f[R] \f[B]\f[CB]--debug[=N]\f[B]\f[R]
show debug output (levels 1-9, default: 1) show debug output (levels 1-9, default: 1)
.PP .PP
A \[at]FILE argument will be expanded to the contents of FILE, which A \[at]FILE argument will be expanded to the contents of FILE, which

View File

@ -1,4 +1,4 @@
This is hledger-ui.info, produced by makeinfo version 6.5 from stdin. This is hledger-ui.info, produced by makeinfo version 6.7 from stdin.
 
File: hledger-ui.info, Node: Top, Next: OPTIONS, Up: (dir) File: hledger-ui.info, Node: Top, Next: OPTIONS, Up: (dir)
@ -89,7 +89,8 @@ the data.
use some other field or tag for the account name use some other field or tag for the account name
'-I --ignore-assertions' '-I --ignore-assertions'
ignore any failing balance assertions disable balance assertion checks (note: does not disable balance
assignments)
hledger reporting options: hledger reporting options:
@ -425,17 +426,22 @@ Tag Table:
Node: Top71 Node: Top71
Node: OPTIONS1101 Node: OPTIONS1101
Ref: #options1198 Ref: #options1198
Node: KEYS4589 Node: KEYS4634
Ref: #keys4684 Ref: #keys4729
Node: SCREENS8991 Node: SCREENS9036
Ref: #screens9076 Ref: #screens9121
Node: Accounts screen9166 Node: Accounts screen9211
Ref: #accounts-screen9294 Ref: #accounts-screen9339
Node: Register screen11510 Node: Register screen11555
Ref: #register-screen11665 Ref: #register-screen11710
Node: Transaction screen13661 Node: Transaction screen13706
Ref: #transaction-screen13819 Ref: #transaction-screen13864
Node: Error screen14689 Node: Error screen14734
Ref: #error-screen14811 Ref: #error-screen14856
 
End Tag Table End Tag Table

Local Variables:
coding: utf-8
End:

View File

@ -87,7 +87,8 @@ OPTIONS
use some other field or tag for the account name use some other field or tag for the account name
-I --ignore-assertions -I --ignore-assertions
ignore any failing balance assertions disable balance assertion checks (note: does not disable balance
assignments)
hledger reporting options: hledger reporting options:
@ -113,7 +114,7 @@ OPTIONS
multiperiod/multicolumn report by year multiperiod/multicolumn report by year
-p --period=PERIODEXP -p --period=PERIODEXP
set start date, end date, and/or reporting interval all at once set start date, end date, and/or reporting interval all at once
using period expressions syntax using period expressions syntax
--date2 --date2
@ -136,21 +137,21 @@ OPTIONS
hide/aggregate accounts or postings more than NUM levels deep hide/aggregate accounts or postings more than NUM levels deep
-E --empty -E --empty
show items with zero amount, normally hidden (and vice-versa in show items with zero amount, normally hidden (and vice-versa in
hledger-ui/hledger-web) hledger-ui/hledger-web)
-B --cost -B --cost
convert amounts to their cost at transaction time (using the convert amounts to their cost at transaction time (using the
transaction price, if any) transaction price, if any)
-V --value -V --value
convert amounts to their market value on the report end date convert amounts to their market value on the report end date
(using the most recent applicable market price, if any) (using the most recent applicable market price, if any)
--auto apply automated posting rules to modify transactions. --auto apply automated posting rules to modify transactions.
--forecast --forecast
apply periodic transaction rules to generate future transac- apply periodic transaction rules to generate future transac-
tions, to 6 months from now or report end date. tions, to 6 months from now or report end date.
When a reporting option appears more than once in the command line, the When a reporting option appears more than once in the command line, the
@ -170,138 +171,138 @@ OPTIONS
show debug output (levels 1-9, default: 1) show debug output (levels 1-9, default: 1)
A @FILE argument will be expanded to the contents of FILE, which should A @FILE argument will be expanded to the contents of FILE, which should
contain one command line option/argument per line. (To prevent this, contain one command line option/argument per line. (To prevent this,
insert a -- argument before.) insert a -- argument before.)
KEYS KEYS
? shows a help dialog listing all keys. (Some of these also appear in ? shows a help dialog listing all keys. (Some of these also appear in
the quick help at the bottom of each screen.) Press ? again (or ESCAPE, the quick help at the bottom of each screen.) Press ? again (or ESCAPE,
or LEFT) to close it. The following keys work on most screens: or LEFT) to close it. The following keys work on most screens:
The cursor keys navigate: right (or enter) goes deeper, left returns to The cursor keys navigate: right (or enter) goes deeper, left returns to
the previous screen, up/down/page up/page down/home/end move up and the previous screen, up/down/page up/page down/home/end move up and
down through lists. Vi-style (h/j/k/l) and Emacs-style (CTRL-p/CTRL- down through lists. Vi-style (h/j/k/l) and Emacs-style (CTRL-p/CTRL-
n/CTRL-f/CTRL-b) movement keys are also supported. A tip: movement n/CTRL-f/CTRL-b) movement keys are also supported. A tip: movement
speed is limited by your keyboard repeat rate, to move faster you may speed is limited by your keyboard repeat rate, to move faster you may
want to adjust it. (If you're on a mac, the Karabiner app is one way want to adjust it. (If you're on a mac, the Karabiner app is one way
to do that.) to do that.)
With shift pressed, the cursor keys adjust the report period, limiting With shift pressed, the cursor keys adjust the report period, limiting
the transactions to be shown (by default, all are shown). shift- the transactions to be shown (by default, all are shown). shift-
down/up steps downward and upward through these standard report period down/up steps downward and upward through these standard report period
durations: year, quarter, month, week, day. Then, shift-left/right durations: year, quarter, month, week, day. Then, shift-left/right
moves to the previous/next period. t sets the report period to today. moves to the previous/next period. t sets the report period to today.
With the --watch option, when viewing a "current" period (the current With the --watch option, when viewing a "current" period (the current
day, week, month, quarter, or year), the period will move automatically day, week, month, quarter, or year), the period will move automatically
to track the current date. To set a non-standard period, you can use / to track the current date. To set a non-standard period, you can use /
and a date: query. and a date: query.
/ lets you set a general filter query limiting the data shown, using / lets you set a general filter query limiting the data shown, using
the same query terms as in hledger and hledger-web. While editing the the same query terms as in hledger and hledger-web. While editing the
query, you can use CTRL-a/e/d/k, BS, cursor keys; press ENTER to set query, you can use CTRL-a/e/d/k, BS, cursor keys; press ENTER to set
it, or ESCAPEto cancel. There are also keys for quickly adjusting some it, or ESCAPEto cancel. There are also keys for quickly adjusting some
common filters like account depth and transaction status (see below). common filters like account depth and transaction status (see below).
BACKSPACE or DELETE removes all filters, showing all transactions. BACKSPACE or DELETE removes all filters, showing all transactions.
As mentioned above, hledger-ui shows auto-generated periodic transac- As mentioned above, hledger-ui shows auto-generated periodic transac-
tions, and hides future transactions (auto-generated or not) by de- tions, and hides future transactions (auto-generated or not) by de-
fault. F toggles showing and hiding these future transactions. This fault. F toggles showing and hiding these future transactions. This
is similar to using a query like date:-tomorrow, but more convenient. is similar to using a query like date:-tomorrow, but more convenient.
(experimental) (experimental)
ESCAPE removes all filters and jumps back to the top screen. Or, it ESCAPE removes all filters and jumps back to the top screen. Or, it
cancels a minibuffer edit or help dialog in progress. cancels a minibuffer edit or help dialog in progress.
CTRL-l redraws the screen and centers the selection if possible (selec- CTRL-l redraws the screen and centers the selection if possible (selec-
tions near the top won't be centered, since we don't scroll above the tions near the top won't be centered, since we don't scroll above the
top). top).
g reloads from the data file(s) and updates the current screen and any g reloads from the data file(s) and updates the current screen and any
previous screens. (With large files, this could cause a noticeable previous screens. (With large files, this could cause a noticeable
pause.) pause.)
I toggles balance assertion checking. Disabling balance assertions I toggles balance assertion checking. Disabling balance assertions
temporarily can be useful for troubleshooting. temporarily can be useful for troubleshooting.
a runs command-line hledger's add command, and reloads the updated a runs command-line hledger's add command, and reloads the updated
file. This allows some basic data entry. file. This allows some basic data entry.
A is like a, but runs the hledger-iadd tool, which provides a terminal A is like a, but runs the hledger-iadd tool, which provides a terminal
interface. This key will be available if hledger-iadd is installed in interface. This key will be available if hledger-iadd is installed in
$PATH. $PATH.
E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emacsclient -a "" E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emacsclient -a ""
-nw) on the journal file. With some editors (emacs, vi), the cursor -nw) on the journal file. With some editors (emacs, vi), the cursor
will be positioned at the current transaction when invoked from the will be positioned at the current transaction when invoked from the
register and transaction screens, and at the error location (if possi- register and transaction screens, and at the error location (if possi-
ble) when invoked from the error screen. ble) when invoked from the error screen.
q quits the application. q quits the application.
Experimental: Experimental:
B toggles cost mode, showing amounts in their transaction price's com- B toggles cost mode, showing amounts in their transaction price's com-
modity (like toggling the -B/--cost flag). modity (like toggling the -B/--cost flag).
V toggles value mode, showing amounts' current market value in their V toggles value mode, showing amounts' current market value in their
default valuation commodity (like toggling the -V/--market flag). default valuation commodity (like toggling the -V/--market flag).
Note, "current market value" means the value on the report end date if Note, "current market value" means the value on the report end date if
specified, otherwise today. To see the value on another date, you can specified, otherwise today. To see the value on another date, you can
temporarily set that as the report end date. Eg: to see a transaction temporarily set that as the report end date. Eg: to see a transaction
as it was valued on july 30, go to the accounts or register screen, as it was valued on july 30, go to the accounts or register screen,
press /, and add date:-7/30 to the query. press /, and add date:-7/30 to the query.
At most one of cost or value mode can be active at once. At most one of cost or value mode can be active at once.
There's not yet any visual reminder when cost or value mode is active; There's not yet any visual reminder when cost or value mode is active;
for now pressing B B V should reliably reset to normal mode. for now pressing B B V should reliably reset to normal mode.
With --watch active, if you save an edit to the journal file while With --watch active, if you save an edit to the journal file while
viewing the transaction screen in cost or value mode, the B/V keys will viewing the transaction screen in cost or value mode, the B/V keys will
stop working. To work around, press g to force a manual reload, or stop working. To work around, press g to force a manual reload, or
exit the transaction screen. exit the transaction screen.
Additional screen-specific keys are described below. Additional screen-specific keys are described below.
SCREENS SCREENS
Accounts screen Accounts screen
This is normally the first screen displayed. It lists accounts and This is normally the first screen displayed. It lists accounts and
their balances, like hledger's balance command. By default, it shows their balances, like hledger's balance command. By default, it shows
all accounts and their latest ending balances (including the balances all accounts and their latest ending balances (including the balances
of subaccounts). if you specify a query on the command line, it shows of subaccounts). if you specify a query on the command line, it shows
just the matched accounts and the balances from matched transactions. just the matched accounts and the balances from matched transactions.
Account names are shown as a flat list by default. Press T to toggle Account names are shown as a flat list by default. Press T to toggle
tree mode. In flat mode, account balances are exclusive of subac- tree mode. In flat mode, account balances are exclusive of subac-
counts, except where subaccounts are hidden by a depth limit (see be- counts, except where subaccounts are hidden by a depth limit (see be-
low). In tree mode, all account balances are inclusive of subaccounts. low). In tree mode, all account balances are inclusive of subaccounts.
To see less detail, press a number key, 1 to 9, to set a depth limit. To see less detail, press a number key, 1 to 9, to set a depth limit.
Or use - to decrease and +/= to increase the depth limit. 0 shows even Or use - to decrease and +/= to increase the depth limit. 0 shows even
less detail, collapsing all accounts to a single total. To remove the less detail, collapsing all accounts to a single total. To remove the
depth limit, set it higher than the maximum account depth, or press ES- depth limit, set it higher than the maximum account depth, or press ES-
CAPE. CAPE.
H toggles between showing historical balances or period balances. His- H toggles between showing historical balances or period balances. His-
torical balances (the default) are ending balances at the end of the torical balances (the default) are ending balances at the end of the
report period, taking into account all transactions before that date report period, taking into account all transactions before that date
(filtered by the filter query if any), including transactions before (filtered by the filter query if any), including transactions before
the start of the report period. In other words, historical balances the start of the report period. In other words, historical balances
are what you would see on a bank statement for that account (unless are what you would see on a bank statement for that account (unless
disturbed by a filter query). Period balances ignore transactions be- disturbed by a filter query). Period balances ignore transactions be-
fore the report start date, so they show the change in balance during fore the report start date, so they show the change in balance during
the report period. They are more useful eg when viewing a time log. the report period. They are more useful eg when viewing a time log.
U toggles filtering by unmarked status, including or excluding unmarked U toggles filtering by unmarked status, including or excluding unmarked
postings in the balances. Similarly, P toggles pending postings, and C postings in the balances. Similarly, P toggles pending postings, and C
toggles cleared postings. (By default, balances include all postings; toggles cleared postings. (By default, balances include all postings;
if you activate one or two status filters, only those postings are in- if you activate one or two status filters, only those postings are in-
cluded; and if you activate all three, the filter is removed.) cluded; and if you activate all three, the filter is removed.)
R toggles real mode, in which virtual postings are ignored. R toggles real mode, in which virtual postings are ignored.
Z toggles nonzero mode, in which only accounts with nonzero balances Z toggles nonzero mode, in which only accounts with nonzero balances
are shown (hledger-ui shows zero items by default, unlike command-line are shown (hledger-ui shows zero items by default, unlike command-line
hledger). hledger).
Press right or enter to view an account's transactions register. Press right or enter to view an account's transactions register.
@ -310,63 +311,63 @@ SCREENS
This screen shows the transactions affecting a particular account, like This screen shows the transactions affecting a particular account, like
a check register. Each line represents one transaction and shows: a check register. Each line represents one transaction and shows:
o the other account(s) involved, in abbreviated form. (If there are o the other account(s) involved, in abbreviated form. (If there are
both real and virtual postings, it shows only the accounts affected both real and virtual postings, it shows only the accounts affected
by real postings.) by real postings.)
o the overall change to the current account's balance; positive for an o the overall change to the current account's balance; positive for an
inflow to this account, negative for an outflow. inflow to this account, negative for an outflow.
o the running historical total or period total for the current account, o the running historical total or period total for the current account,
after the transaction. This can be toggled with H. Similar to the after the transaction. This can be toggled with H. Similar to the
accounts screen, the historical total is affected by transactions accounts screen, the historical total is affected by transactions
(filtered by the filter query) before the report start date, while (filtered by the filter query) before the report start date, while
the period total is not. If the historical total is not disturbed by the period total is not. If the historical total is not disturbed by
a filter query, it will be the running historical balance you would a filter query, it will be the running historical balance you would
see on a bank register for the current account. see on a bank register for the current account.
Transactions affecting this account's subaccounts will be included in Transactions affecting this account's subaccounts will be included in
the register if the accounts screen is in tree mode, or if it's in flat the register if the accounts screen is in tree mode, or if it's in flat
mode but this account has subaccounts which are not shown due to a mode but this account has subaccounts which are not shown due to a
depth limit. In other words, the register always shows the transac- depth limit. In other words, the register always shows the transac-
tions contributing to the balance shown on the accounts screen. tions contributing to the balance shown on the accounts screen.
Tree mode/flat mode can be toggled with T here also. Tree mode/flat mode can be toggled with T here also.
U toggles filtering by unmarked status, showing or hiding unmarked U toggles filtering by unmarked status, showing or hiding unmarked
transactions. Similarly, P toggles pending transactions, and C toggles transactions. Similarly, P toggles pending transactions, and C toggles
cleared transactions. (By default, transactions with all statuses are cleared transactions. (By default, transactions with all statuses are
shown; if you activate one or two status filters, only those transac- shown; if you activate one or two status filters, only those transac-
tions are shown; and if you activate all three, the filter is removed.) tions are shown; and if you activate all three, the filter is removed.)
R toggles real mode, in which virtual postings are ignored. R toggles real mode, in which virtual postings are ignored.
Z toggles nonzero mode, in which only transactions posting a nonzero Z toggles nonzero mode, in which only transactions posting a nonzero
change are shown (hledger-ui shows zero items by default, unlike com- change are shown (hledger-ui shows zero items by default, unlike com-
mand-line hledger). mand-line hledger).
Press right (or enter) to view the selected transaction in detail. Press right (or enter) to view the selected transaction in detail.
Transaction screen Transaction screen
This screen shows a single transaction, as a general journal entry, This screen shows a single transaction, as a general journal entry,
similar to hledger's print command and journal format (hledger_jour- similar to hledger's print command and journal format (hledger_jour-
nal(5)). nal(5)).
The transaction's date(s) and any cleared flag, transaction code, de- The transaction's date(s) and any cleared flag, transaction code, de-
scription, comments, along with all of its account postings are shown. scription, comments, along with all of its account postings are shown.
Simple transactions have two postings, but there can be more (or in Simple transactions have two postings, but there can be more (or in
certain cases, fewer). certain cases, fewer).
up and down will step through all transactions listed in the previous up and down will step through all transactions listed in the previous
account register screen. In the title bar, the numbers in parentheses account register screen. In the title bar, the numbers in parentheses
show your position within that account register. They will vary de- show your position within that account register. They will vary de-
pending on which account register you came from (remember most transac- pending on which account register you came from (remember most transac-
tions appear in multiple account registers). The #N number preceding tions appear in multiple account registers). The #N number preceding
them is the transaction's position within the complete unfiltered jour- them is the transaction's position within the complete unfiltered jour-
nal, which is a more stable id (at least until the next reload). nal, which is a more stable id (at least until the next reload).
Error screen Error screen
This screen will appear if there is a problem, such as a parse error, This screen will appear if there is a problem, such as a parse error,
when you press g to reload. Once you have fixed the problem, press g when you press g to reload. Once you have fixed the problem, press g
again to reload and resume normal operation. (Or, you can press escape again to reload and resume normal operation. (Or, you can press escape
to cancel the reload attempt.) to cancel the reload attempt.)
@ -374,17 +375,17 @@ ENVIRONMENT
COLUMNS The screen width to use. Default: the full terminal width. COLUMNS The screen width to use. Default: the full terminal width.
LEDGER_FILE The journal file path when not specified with -f. Default: LEDGER_FILE The journal file path when not specified with -f. Default:
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour- ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
nal). nal).
FILES FILES
Reads data from one or more files in hledger journal, timeclock, time- Reads data from one or more files in hledger journal, timeclock, time-
dot, or CSV format specified with -f, or $LEDGER_FILE, or dot, or CSV format specified with -f, or $LEDGER_FILE, or
$HOME/.hledger.journal (on windows, perhaps $HOME/.hledger.journal (on windows, perhaps
C:/Users/USER/.hledger.journal). C:/Users/USER/.hledger.journal).
BUGS BUGS
The need to precede options with -- when invoked from hledger is awk- The need to precede options with -- when invoked from hledger is awk-
ward. ward.
-f- doesn't work (hledger-ui can't read from stdin). -f- doesn't work (hledger-ui can't read from stdin).
@ -392,24 +393,24 @@ BUGS
-V affects only the accounts screen. -V affects only the accounts screen.
When you press g, the current and all previous screens are regenerated, When you press g, the current and all previous screens are regenerated,
which may cause a noticeable pause with large files. Also there is no which may cause a noticeable pause with large files. Also there is no
visual indication that this is in progress. visual indication that this is in progress.
--watch is not yet fully robust. It works well for normal usage, but --watch is not yet fully robust. It works well for normal usage, but
many file changes in a short time (eg saving the file thousands of many file changes in a short time (eg saving the file thousands of
times with an editor macro) can cause problems at least on OSX. Symp- times with an editor macro) can cause problems at least on OSX. Symp-
toms include: unresponsive UI, periodic resetting of the cursor posi- toms include: unresponsive UI, periodic resetting of the cursor posi-
tion, momentary display of parse errors, high CPU usage eventually sub- tion, momentary display of parse errors, high CPU usage eventually sub-
siding, and possibly a small but persistent build-up of CPU usage until siding, and possibly a small but persistent build-up of CPU usage until
the program is restarted. the program is restarted.
Also, if you are viewing files mounted from another machine, --watch Also, if you are viewing files mounted from another machine, --watch
requires that both machine clocks are roughly in step. requires that both machine clocks are roughly in step.
REPORTING BUGS REPORTING BUGS
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
or hledger mail list) or hledger mail list)
@ -423,7 +424,7 @@ COPYRIGHT
SEE ALSO SEE ALSO
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
dot(5), ledger(1) dot(5), ledger(1)

View File

@ -51,123 +51,124 @@ in addition to any search query entered there.
Note: if invoking hledger-web as a hledger subcommand, write Note: if invoking hledger-web as a hledger subcommand, write
\f[C]--\f[R] before options, as shown in the synopsis above. \f[C]--\f[R] before options, as shown in the synopsis above.
.TP .TP
.B \f[C]--serve\f[R] \f[B]\f[CB]--serve\f[B]\f[R]
serve and log requests, don\[aq]t browse or auto-exit serve and log requests, don\[aq]t browse or auto-exit
.TP .TP
.B \f[C]--serve-api\f[R] \f[B]\f[CB]--serve-api\f[B]\f[R]
like --serve, but serve only the JSON web API, without the server-side like --serve, but serve only the JSON web API, without the server-side
web UI web UI
.TP .TP
.B \f[C]--host=IPADDR\f[R] \f[B]\f[CB]--host=IPADDR\f[B]\f[R]
listen on this IP address (default: 127.0.0.1) listen on this IP address (default: 127.0.0.1)
.TP .TP
.B \f[C]--port=PORT\f[R] \f[B]\f[CB]--port=PORT\f[B]\f[R]
listen on this TCP port (default: 5000) listen on this TCP port (default: 5000)
.TP .TP
.B \f[C]--base-url=URL\f[R] \f[B]\f[CB]--base-url=URL\f[B]\f[R]
set the base url (default: http://IPADDR:PORT). set the base url (default: http://IPADDR:PORT).
You would change this when sharing over the network, or integrating You would change this when sharing over the network, or integrating
within a larger website. within a larger website.
.TP .TP
.B \f[C]--file-url=URL\f[R] \f[B]\f[CB]--file-url=URL\f[B]\f[R]
set the static files url (default: BASEURL/static). set the static files url (default: BASEURL/static).
hledger-web normally serves static files itself, but if you wanted to hledger-web normally serves static files itself, but if you wanted to
serve them from another server for efficiency, you would set the url serve them from another server for efficiency, you would set the url
with this. with this.
.TP .TP
.B \f[C]--capabilities=CAP[,CAP..]\f[R] \f[B]\f[CB]--capabilities=CAP[,CAP..]\f[B]\f[R]
enable the view, add, and/or manage capabilities (default: view,add) enable the view, add, and/or manage capabilities (default: view,add)
.TP .TP
.B \f[C]--capabilities-header=HTTPHEADER\f[R] \f[B]\f[CB]--capabilities-header=HTTPHEADER\f[B]\f[R]
read capabilities to enable from a HTTP header, like read capabilities to enable from a HTTP header, like
X-Sandstorm-Permissions (default: disabled) X-Sandstorm-Permissions (default: disabled)
.PP .PP
hledger input options: hledger input options:
.TP .TP
.B \f[C]-f FILE --file=FILE\f[R] \f[B]\f[CB]-f FILE --file=FILE\f[B]\f[R]
use a different input file. use a different input file.
For stdin, use - (default: \f[C]$LEDGER_FILE\f[R] or For stdin, use - (default: \f[C]$LEDGER_FILE\f[R] or
\f[C]$HOME/.hledger.journal\f[R]) \f[C]$HOME/.hledger.journal\f[R])
.TP .TP
.B \f[C]--rules-file=RULESFILE\f[R] \f[B]\f[CB]--rules-file=RULESFILE\f[B]\f[R]
Conversion rules file to use when reading CSV (default: FILE.rules) Conversion rules file to use when reading CSV (default: FILE.rules)
.TP .TP
.B \f[C]--separator=CHAR\f[R] \f[B]\f[CB]--separator=CHAR\f[B]\f[R]
Field separator to expect when reading CSV (default: \[aq],\[aq]) Field separator to expect when reading CSV (default: \[aq],\[aq])
.TP .TP
.B \f[C]--alias=OLD=NEW\f[R] \f[B]\f[CB]--alias=OLD=NEW\f[B]\f[R]
rename accounts named OLD to NEW rename accounts named OLD to NEW
.TP .TP
.B \f[C]--anon\f[R] \f[B]\f[CB]--anon\f[B]\f[R]
anonymize accounts and payees anonymize accounts and payees
.TP .TP
.B \f[C]--pivot FIELDNAME\f[R] \f[B]\f[CB]--pivot FIELDNAME\f[B]\f[R]
use some other field or tag for the account name use some other field or tag for the account name
.TP .TP
.B \f[C]-I --ignore-assertions\f[R] \f[B]\f[CB]-I --ignore-assertions\f[B]\f[R]
ignore any failing balance assertions disable balance assertion checks (note: does not disable balance
assignments)
.PP .PP
hledger reporting options: hledger reporting options:
.TP .TP
.B \f[C]-b --begin=DATE\f[R] \f[B]\f[CB]-b --begin=DATE\f[B]\f[R]
include postings/txns on or after this date include postings/txns on or after this date
.TP .TP
.B \f[C]-e --end=DATE\f[R] \f[B]\f[CB]-e --end=DATE\f[B]\f[R]
include postings/txns before this date include postings/txns before this date
.TP .TP
.B \f[C]-D --daily\f[R] \f[B]\f[CB]-D --daily\f[B]\f[R]
multiperiod/multicolumn report by day multiperiod/multicolumn report by day
.TP .TP
.B \f[C]-W --weekly\f[R] \f[B]\f[CB]-W --weekly\f[B]\f[R]
multiperiod/multicolumn report by week multiperiod/multicolumn report by week
.TP .TP
.B \f[C]-M --monthly\f[R] \f[B]\f[CB]-M --monthly\f[B]\f[R]
multiperiod/multicolumn report by month multiperiod/multicolumn report by month
.TP .TP
.B \f[C]-Q --quarterly\f[R] \f[B]\f[CB]-Q --quarterly\f[B]\f[R]
multiperiod/multicolumn report by quarter multiperiod/multicolumn report by quarter
.TP .TP
.B \f[C]-Y --yearly\f[R] \f[B]\f[CB]-Y --yearly\f[B]\f[R]
multiperiod/multicolumn report by year multiperiod/multicolumn report by year
.TP .TP
.B \f[C]-p --period=PERIODEXP\f[R] \f[B]\f[CB]-p --period=PERIODEXP\f[B]\f[R]
set start date, end date, and/or reporting interval all at once using set start date, end date, and/or reporting interval all at once using
period expressions syntax period expressions syntax
.TP .TP
.B \f[C]--date2\f[R] \f[B]\f[CB]--date2\f[B]\f[R]
match the secondary date instead (see command help for other effects) match the secondary date instead (see command help for other effects)
.TP .TP
.B \f[C]-U --unmarked\f[R] \f[B]\f[CB]-U --unmarked\f[B]\f[R]
include only unmarked postings/txns (can combine with -P or -C) include only unmarked postings/txns (can combine with -P or -C)
.TP .TP
.B \f[C]-P --pending\f[R] \f[B]\f[CB]-P --pending\f[B]\f[R]
include only pending postings/txns include only pending postings/txns
.TP .TP
.B \f[C]-C --cleared\f[R] \f[B]\f[CB]-C --cleared\f[B]\f[R]
include only cleared postings/txns include only cleared postings/txns
.TP .TP
.B \f[C]-R --real\f[R] \f[B]\f[CB]-R --real\f[B]\f[R]
include only non-virtual postings include only non-virtual postings
.TP .TP
.B \f[C]-NUM --depth=NUM\f[R] \f[B]\f[CB]-NUM --depth=NUM\f[B]\f[R]
hide/aggregate accounts or postings more than NUM levels deep hide/aggregate accounts or postings more than NUM levels deep
.TP .TP
.B \f[C]-E --empty\f[R] \f[B]\f[CB]-E --empty\f[B]\f[R]
show items with zero amount, normally hidden (and vice-versa in show items with zero amount, normally hidden (and vice-versa in
hledger-ui/hledger-web) hledger-ui/hledger-web)
.TP .TP
.B \f[C]-B --cost\f[R] \f[B]\f[CB]-B --cost\f[B]\f[R]
convert amounts to their cost at transaction time (using the transaction convert amounts to their cost at transaction time (using the transaction
price, if any) price, if any)
.TP .TP
.B \f[C]-V --value\f[R] \f[B]\f[CB]-V --value\f[B]\f[R]
convert amounts to their market value on the report end date (using the convert amounts to their market value on the report end date (using the
most recent applicable market price, if any) most recent applicable market price, if any)
.TP .TP
.B \f[C]--auto\f[R] \f[B]\f[CB]--auto\f[B]\f[R]
apply automated posting rules to modify transactions. apply automated posting rules to modify transactions.
.TP .TP
.B \f[C]--forecast\f[R] \f[B]\f[CB]--forecast\f[B]\f[R]
apply periodic transaction rules to generate future transactions, to 6 apply periodic transaction rules to generate future transactions, to 6
months from now or report end date. months from now or report end date.
.PP .PP
@ -178,13 +179,13 @@ Some reporting options can also be written as query arguments.
.PP .PP
hledger help options: hledger help options:
.TP .TP
.B \f[C]-h --help\f[R] \f[B]\f[CB]-h --help\f[B]\f[R]
show general usage (or after COMMAND, command usage) show general usage (or after COMMAND, command usage)
.TP .TP
.B \f[C]--version\f[R] \f[B]\f[CB]--version\f[B]\f[R]
show version show version
.TP .TP
.B \f[C]--debug[=N]\f[R] \f[B]\f[CB]--debug[=N]\f[B]\f[R]
show debug output (levels 1-9, default: 1) show debug output (levels 1-9, default: 1)
.PP .PP
A \[at]FILE argument will be expanded to the contents of FILE, which A \[at]FILE argument will be expanded to the contents of FILE, which

View File

@ -1,4 +1,4 @@
This is hledger-web.info, produced by makeinfo version 6.5 from stdin. This is hledger-web.info, produced by makeinfo version 6.7 from stdin.
 
File: hledger-web.info, Node: Top, Next: OPTIONS, Up: (dir) File: hledger-web.info, Node: Top, Next: OPTIONS, Up: (dir)
@ -103,7 +103,8 @@ before options, as shown in the synopsis above.
use some other field or tag for the account name use some other field or tag for the account name
'-I --ignore-assertions' '-I --ignore-assertions'
ignore any failing balance assertions disable balance assertion checks (note: does not disable balance
assignments)
hledger reporting options: hledger reporting options:
@ -342,13 +343,18 @@ Tag Table:
Node: Top72 Node: Top72
Node: OPTIONS1359 Node: OPTIONS1359
Ref: #options1464 Ref: #options1464
Node: PERMISSIONS6743 Node: PERMISSIONS6788
Ref: #permissions6882 Ref: #permissions6927
Node: EDITING UPLOADING DOWNLOADING8094 Node: EDITING UPLOADING DOWNLOADING8139
Ref: #editing-uploading-downloading8275 Ref: #editing-uploading-downloading8320
Node: RELOADING9109 Node: RELOADING9154
Ref: #reloading9243 Ref: #reloading9288
Node: JSON API9676 Node: JSON API9721
Ref: #json-api9770 Ref: #json-api9815
 
End Tag Table End Tag Table

Local Variables:
coding: utf-8
End:

View File

@ -97,7 +97,8 @@ OPTIONS
use some other field or tag for the account name use some other field or tag for the account name
-I --ignore-assertions -I --ignore-assertions
ignore any failing balance assertions disable balance assertion checks (note: does not disable balance
assignments)
hledger reporting options: hledger reporting options:
@ -123,7 +124,7 @@ OPTIONS
multiperiod/multicolumn report by year multiperiod/multicolumn report by year
-p --period=PERIODEXP -p --period=PERIODEXP
set start date, end date, and/or reporting interval all at once set start date, end date, and/or reporting interval all at once
using period expressions syntax using period expressions syntax
--date2 --date2
@ -146,21 +147,21 @@ OPTIONS
hide/aggregate accounts or postings more than NUM levels deep hide/aggregate accounts or postings more than NUM levels deep
-E --empty -E --empty
show items with zero amount, normally hidden (and vice-versa in show items with zero amount, normally hidden (and vice-versa in
hledger-ui/hledger-web) hledger-ui/hledger-web)
-B --cost -B --cost
convert amounts to their cost at transaction time (using the convert amounts to their cost at transaction time (using the
transaction price, if any) transaction price, if any)
-V --value -V --value
convert amounts to their market value on the report end date convert amounts to their market value on the report end date
(using the most recent applicable market price, if any) (using the most recent applicable market price, if any)
--auto apply automated posting rules to modify transactions. --auto apply automated posting rules to modify transactions.
--forecast --forecast
apply periodic transaction rules to generate future transac- apply periodic transaction rules to generate future transac-
tions, to 6 months from now or report end date. tions, to 6 months from now or report end date.
When a reporting option appears more than once in the command line, the When a reporting option appears more than once in the command line, the
@ -180,41 +181,41 @@ OPTIONS
show debug output (levels 1-9, default: 1) show debug output (levels 1-9, default: 1)
A @FILE argument will be expanded to the contents of FILE, which should A @FILE argument will be expanded to the contents of FILE, which should
contain one command line option/argument per line. (To prevent this, contain one command line option/argument per line. (To prevent this,
insert a -- argument before.) insert a -- argument before.)
By default, hledger-web starts the web app in "transient mode" and also By default, hledger-web starts the web app in "transient mode" and also
opens it in your default web browser if possible. In this mode the web opens it in your default web browser if possible. In this mode the web
app will keep running for as long as you have it open in a browser win- app will keep running for as long as you have it open in a browser win-
dow, and will exit after two minutes of inactivity (no requests and no dow, and will exit after two minutes of inactivity (no requests and no
browser windows viewing it). With --serve, it just runs the web app browser windows viewing it). With --serve, it just runs the web app
without exiting, and logs requests to the console. With --serve-api, without exiting, and logs requests to the console. With --serve-api,
only the JSON web api (see below) is served, with the usual HTML only the JSON web api (see below) is served, with the usual HTML
server-side web UI disabled. server-side web UI disabled.
By default the server listens on IP address 127.0.0.1, accessible only By default the server listens on IP address 127.0.0.1, accessible only
to local requests. You can use --host to change this, eg --host to local requests. You can use --host to change this, eg --host
0.0.0.0 to listen on all configured addresses. 0.0.0.0 to listen on all configured addresses.
Similarly, use --port to set a TCP port other than 5000, eg if you are Similarly, use --port to set a TCP port other than 5000, eg if you are
running multiple hledger-web instances. running multiple hledger-web instances.
You can use --base-url to change the protocol, hostname, port and path You can use --base-url to change the protocol, hostname, port and path
that appear in hyperlinks, useful eg for integrating hledger-web within that appear in hyperlinks, useful eg for integrating hledger-web within
a larger website. The default is http://HOST:PORT/ using the server's a larger website. The default is http://HOST:PORT/ using the server's
configured host address and TCP port (or http://HOST if PORT is 80). configured host address and TCP port (or http://HOST if PORT is 80).
With --file-url you can set a different base url for static files, eg With --file-url you can set a different base url for static files, eg
for better caching or cookie-less serving on high performance websites. for better caching or cookie-less serving on high performance websites.
PERMISSIONS PERMISSIONS
By default, hledger-web allows anyone who can reach it to view the By default, hledger-web allows anyone who can reach it to view the
journal and to add new transactions, but not to change existing data. journal and to add new transactions, but not to change existing data.
You can restrict who can reach it by You can restrict who can reach it by
o setting the IP address it listens on (see --host above). By default o setting the IP address it listens on (see --host above). By default
it listens on 127.0.0.1, accessible to all users on the local ma- it listens on 127.0.0.1, accessible to all users on the local ma-
chine. chine.
o putting it behind an authenticating proxy, using eg apache or nginx o putting it behind an authenticating proxy, using eg apache or nginx
@ -224,44 +225,44 @@ PERMISSIONS
You can restrict what the users who reach it can do, by You can restrict what the users who reach it can do, by
o using the --capabilities=CAP[,CAP..] flag when you start it, enabling o using the --capabilities=CAP[,CAP..] flag when you start it, enabling
one or more of the following capabilities. The default value is one or more of the following capabilities. The default value is
view,add: view,add:
o view - allows viewing the journal file and all included files o view - allows viewing the journal file and all included files
o add - allows adding new transactions to the main journal file o add - allows adding new transactions to the main journal file
o manage - allows editing, uploading or downloading the main or in- o manage - allows editing, uploading or downloading the main or in-
cluded files cluded files
o using the --capabilities-header=HTTPHEADER flag to specify a HTTP o using the --capabilities-header=HTTPHEADER flag to specify a HTTP
header from which it will read capabilities to enable. hledger-web header from which it will read capabilities to enable. hledger-web
on Sandstorm uses the X-Sandstorm-Permissions header to integrate on Sandstorm uses the X-Sandstorm-Permissions header to integrate
with Sandstorm's permissions. This is disabled by default. with Sandstorm's permissions. This is disabled by default.
EDITING, UPLOADING, DOWNLOADING EDITING, UPLOADING, DOWNLOADING
If you enable the manage capability mentioned above, you'll see a new If you enable the manage capability mentioned above, you'll see a new
"spanner" button to the right of the search form. Clicking this will "spanner" button to the right of the search form. Clicking this will
let you edit, upload, or download the journal file or any files it in- let you edit, upload, or download the journal file or any files it in-
cludes. cludes.
Note, unlike any other hledger command, in this mode you (or any visi- Note, unlike any other hledger command, in this mode you (or any visi-
tor) can alter or wipe the data files. tor) can alter or wipe the data files.
Normally whenever a file is changed in this way, hledger-web saves a Normally whenever a file is changed in this way, hledger-web saves a
numbered backup (assuming file permissions allow it, the disk is not numbered backup (assuming file permissions allow it, the disk is not
full, etc.) hledger-web is not aware of version control systems, cur- full, etc.) hledger-web is not aware of version control systems, cur-
rently; if you use one, you'll have to arrange to commit the changes rently; if you use one, you'll have to arrange to commit the changes
yourself (eg with a cron job or a file watcher like entr). yourself (eg with a cron job or a file watcher like entr).
Changes which would leave the journal file(s) unparseable or non-valid Changes which would leave the journal file(s) unparseable or non-valid
(eg with failing balance assertions) are prevented. (Probably. This (eg with failing balance assertions) are prevented. (Probably. This
needs re-testing.) needs re-testing.)
RELOADING RELOADING
hledger-web detects changes made to the files by other means (eg if you hledger-web detects changes made to the files by other means (eg if you
edit it directly, outside of hledger-web), and it will show the new edit it directly, outside of hledger-web), and it will show the new
data when you reload the page or navigate to a new page. If a change data when you reload the page or navigate to a new page. If a change
makes a file unparseable, hledger-web will display an error message un- makes a file unparseable, hledger-web will display an error message un-
til the file has been fixed. til the file has been fixed.
@ -269,8 +270,8 @@ RELOADING
that both machine clocks are roughly in step.) that both machine clocks are roughly in step.)
JSON API JSON API
In addition to the web UI, hledger-web provides some API routes that In addition to the web UI, hledger-web provides some API routes that
serve JSON in response to GET requests. (And when started with serve JSON in response to GET requests. (And when started with
--serve-api, it provides only these routes.): --serve-api, it provides only these routes.):
/accountnames /accountnames
@ -280,17 +281,17 @@ JSON API
/accounts /accounts
/accounttransactions/#AccountName /accounttransactions/#AccountName
Also, you can append a new transaction to the journal by sending a PUT Also, you can append a new transaction to the journal by sending a PUT
request to /add (hledger-web only). As with the web UI's add form, request to /add (hledger-web only). As with the web UI's add form,
hledger-web must be started with the add capability for this (enabled hledger-web must be started with the add capability for this (enabled
by default). by default).
The payload should be a valid hledger transaction as JSON, similar to The payload should be a valid hledger transaction as JSON, similar to
what you get from /transactions or /accounttransactions. what you get from /transactions or /accounttransactions.
Another way to generate test data is with the readJsonFile/writeJson- Another way to generate test data is with the readJsonFile/writeJson-
File helpers in Hledger.Web.Json, which read or write any of hledger's File helpers in Hledger.Web.Json, which read or write any of hledger's
JSON-capable types from or to a file. Eg here we write the first JSON-capable types from or to a file. Eg here we write the first
transaction of a sample journal: transaction of a sample journal:
$ make ghci-web $ make ghci-web
@ -305,23 +306,23 @@ JSON API
$ curl -s http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.pretty.json; echo $ curl -s http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.pretty.json; echo
By default, both the server-side HTML UI and the JSON API are served. By default, both the server-side HTML UI and the JSON API are served.
Running with --serve-api disables the former, useful if you only want Running with --serve-api disables the former, useful if you only want
to serve the API. to serve the API.
ENVIRONMENT ENVIRONMENT
LEDGER_FILE The journal file path when not specified with -f. Default: LEDGER_FILE The journal file path when not specified with -f. Default:
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour- ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
nal). nal).
FILES FILES
Reads data from one or more files in hledger journal, timeclock, time- Reads data from one or more files in hledger journal, timeclock, time-
dot, or CSV format specified with -f, or $LEDGER_FILE, or dot, or CSV format specified with -f, or $LEDGER_FILE, or
$HOME/.hledger.journal (on windows, perhaps $HOME/.hledger.journal (on windows, perhaps
C:/Users/USER/.hledger.journal). C:/Users/USER/.hledger.journal).
BUGS BUGS
The need to precede options with -- when invoked from hledger is awk- The need to precede options with -- when invoked from hledger is awk-
ward. ward.
-f- doesn't work (hledger-web can't read from stdin). -f- doesn't work (hledger-web can't read from stdin).
@ -335,7 +336,7 @@ BUGS
REPORTING BUGS REPORTING BUGS
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
or hledger mail list) or hledger mail list)
@ -349,7 +350,7 @@ COPYRIGHT
SEE ALSO SEE ALSO
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
dot(5), ledger(1) dot(5), ledger(1)

View File

@ -159,101 +159,102 @@ by most hledger commands, run \f[C]hledger -h\f[R].
.PP .PP
General help options: General help options:
.TP .TP
.B \f[C]-h --help\f[R] \f[B]\f[CB]-h --help\f[B]\f[R]
show general usage (or after COMMAND, command usage) show general usage (or after COMMAND, command usage)
.TP .TP
.B \f[C]--version\f[R] \f[B]\f[CB]--version\f[B]\f[R]
show version show version
.TP .TP
.B \f[C]--debug[=N]\f[R] \f[B]\f[CB]--debug[=N]\f[B]\f[R]
show debug output (levels 1-9, default: 1) show debug output (levels 1-9, default: 1)
.PP .PP
General input options: General input options:
.TP .TP
.B \f[C]-f FILE --file=FILE\f[R] \f[B]\f[CB]-f FILE --file=FILE\f[B]\f[R]
use a different input file. use a different input file.
For stdin, use - (default: \f[C]$LEDGER_FILE\f[R] or For stdin, use - (default: \f[C]$LEDGER_FILE\f[R] or
\f[C]$HOME/.hledger.journal\f[R]) \f[C]$HOME/.hledger.journal\f[R])
.TP .TP
.B \f[C]--rules-file=RULESFILE\f[R] \f[B]\f[CB]--rules-file=RULESFILE\f[B]\f[R]
Conversion rules file to use when reading CSV (default: FILE.rules) Conversion rules file to use when reading CSV (default: FILE.rules)
.TP .TP
.B \f[C]--separator=CHAR\f[R] \f[B]\f[CB]--separator=CHAR\f[B]\f[R]
Field separator to expect when reading CSV (default: \[aq],\[aq]) Field separator to expect when reading CSV (default: \[aq],\[aq])
.TP .TP
.B \f[C]--alias=OLD=NEW\f[R] \f[B]\f[CB]--alias=OLD=NEW\f[B]\f[R]
rename accounts named OLD to NEW rename accounts named OLD to NEW
.TP .TP
.B \f[C]--anon\f[R] \f[B]\f[CB]--anon\f[B]\f[R]
anonymize accounts and payees anonymize accounts and payees
.TP .TP
.B \f[C]--pivot FIELDNAME\f[R] \f[B]\f[CB]--pivot FIELDNAME\f[B]\f[R]
use some other field or tag for the account name use some other field or tag for the account name
.TP .TP
.B \f[C]-I --ignore-assertions\f[R] \f[B]\f[CB]-I --ignore-assertions\f[B]\f[R]
ignore any failing balance assertions disable balance assertion checks (note: does not disable balance
assignments)
.PP .PP
General reporting options: General reporting options:
.TP .TP
.B \f[C]-b --begin=DATE\f[R] \f[B]\f[CB]-b --begin=DATE\f[B]\f[R]
include postings/txns on or after this date include postings/txns on or after this date
.TP .TP
.B \f[C]-e --end=DATE\f[R] \f[B]\f[CB]-e --end=DATE\f[B]\f[R]
include postings/txns before this date include postings/txns before this date
.TP .TP
.B \f[C]-D --daily\f[R] \f[B]\f[CB]-D --daily\f[B]\f[R]
multiperiod/multicolumn report by day multiperiod/multicolumn report by day
.TP .TP
.B \f[C]-W --weekly\f[R] \f[B]\f[CB]-W --weekly\f[B]\f[R]
multiperiod/multicolumn report by week multiperiod/multicolumn report by week
.TP .TP
.B \f[C]-M --monthly\f[R] \f[B]\f[CB]-M --monthly\f[B]\f[R]
multiperiod/multicolumn report by month multiperiod/multicolumn report by month
.TP .TP
.B \f[C]-Q --quarterly\f[R] \f[B]\f[CB]-Q --quarterly\f[B]\f[R]
multiperiod/multicolumn report by quarter multiperiod/multicolumn report by quarter
.TP .TP
.B \f[C]-Y --yearly\f[R] \f[B]\f[CB]-Y --yearly\f[B]\f[R]
multiperiod/multicolumn report by year multiperiod/multicolumn report by year
.TP .TP
.B \f[C]-p --period=PERIODEXP\f[R] \f[B]\f[CB]-p --period=PERIODEXP\f[B]\f[R]
set start date, end date, and/or reporting interval all at once using set start date, end date, and/or reporting interval all at once using
period expressions syntax period expressions syntax
.TP .TP
.B \f[C]--date2\f[R] \f[B]\f[CB]--date2\f[B]\f[R]
match the secondary date instead (see command help for other effects) match the secondary date instead (see command help for other effects)
.TP .TP
.B \f[C]-U --unmarked\f[R] \f[B]\f[CB]-U --unmarked\f[B]\f[R]
include only unmarked postings/txns (can combine with -P or -C) include only unmarked postings/txns (can combine with -P or -C)
.TP .TP
.B \f[C]-P --pending\f[R] \f[B]\f[CB]-P --pending\f[B]\f[R]
include only pending postings/txns include only pending postings/txns
.TP .TP
.B \f[C]-C --cleared\f[R] \f[B]\f[CB]-C --cleared\f[B]\f[R]
include only cleared postings/txns include only cleared postings/txns
.TP .TP
.B \f[C]-R --real\f[R] \f[B]\f[CB]-R --real\f[B]\f[R]
include only non-virtual postings include only non-virtual postings
.TP .TP
.B \f[C]-NUM --depth=NUM\f[R] \f[B]\f[CB]-NUM --depth=NUM\f[B]\f[R]
hide/aggregate accounts or postings more than NUM levels deep hide/aggregate accounts or postings more than NUM levels deep
.TP .TP
.B \f[C]-E --empty\f[R] \f[B]\f[CB]-E --empty\f[B]\f[R]
show items with zero amount, normally hidden (and vice-versa in show items with zero amount, normally hidden (and vice-versa in
hledger-ui/hledger-web) hledger-ui/hledger-web)
.TP .TP
.B \f[C]-B --cost\f[R] \f[B]\f[CB]-B --cost\f[B]\f[R]
convert amounts to their cost at transaction time (using the transaction convert amounts to their cost at transaction time (using the transaction
price, if any) price, if any)
.TP .TP
.B \f[C]-V --value\f[R] \f[B]\f[CB]-V --value\f[B]\f[R]
convert amounts to their market value on the report end date (using the convert amounts to their market value on the report end date (using the
most recent applicable market price, if any) most recent applicable market price, if any)
.TP .TP
.B \f[C]--auto\f[R] \f[B]\f[CB]--auto\f[B]\f[R]
apply automated posting rules to modify transactions. apply automated posting rules to modify transactions.
.TP .TP
.B \f[C]--forecast\f[R] \f[B]\f[CB]--forecast\f[B]\f[R]
apply periodic transaction rules to generate future transactions, to 6 apply periodic transaction rules to generate future transactions, to 6
months from now or report end date. months from now or report end date.
.PP .PP
@ -773,7 +774,7 @@ start and end date like so:
.PP .PP
.TS .TS
tab(@); tab(@);
l l. l r.
T{ T{
\f[C]-p \[dq]2009\[dq]\f[R] \f[C]-p \[dq]2009\[dq]\f[R]
T}@T{ T}@T{
@ -1101,20 +1102,20 @@ more general \f[C]--value\f[R] option:
The TYPE part basically selects either \[dq]cost\[dq], or \[dq]market The TYPE part basically selects either \[dq]cost\[dq], or \[dq]market
value\[dq] plus a valuation date: value\[dq] plus a valuation date:
.TP .TP
.B \f[C]--value=cost\f[R] \f[B]\f[CB]--value=cost\f[B]\f[R]
Convert amounts to cost, using the prices recorded in transactions. Convert amounts to cost, using the prices recorded in transactions.
.TP .TP
.B \f[C]--value=end\f[R] \f[B]\f[CB]--value=end\f[B]\f[R]
Convert amounts to their value in a default valuation commodity, using Convert amounts to their value in a default valuation commodity, using
market prices on the last day of the report period (or if unspecified, market prices on the last day of the report period (or if unspecified,
the journal\[aq]s end date); or in multiperiod reports, market prices on the journal\[aq]s end date); or in multiperiod reports, market prices on
the last day of each subperiod. the last day of each subperiod.
.TP .TP
.B \f[C]--value=now\f[R] \f[B]\f[CB]--value=now\f[B]\f[R]
Convert amounts to their value in default valuation commodity using Convert amounts to their value in default valuation commodity using
current market prices (as of when report is generated). current market prices (as of when report is generated).
.TP .TP
.B \f[C]--value=YYYY-MM-DD\f[R] \f[B]\f[CB]--value=YYYY-MM-DD\f[B]\f[R]
Convert amounts to their value in default valuation commodity using Convert amounts to their value in default valuation commodity using
market prices on this date. market prices on this date.
.PP .PP
@ -1509,30 +1510,30 @@ T}
.PP .PP
\f[B]Additional notes\f[R] \f[B]Additional notes\f[R]
.TP .TP
.B \f[I]cost\f[R] \f[I]cost\f[R]
calculated using price(s) recorded in the transaction(s). calculated using price(s) recorded in the transaction(s).
.TP .TP
.B \f[I]value\f[R] \f[I]value\f[R]
market value using available market price declarations, or the unchanged market value using available market price declarations, or the unchanged
amount if no conversion rate can be found. amount if no conversion rate can be found.
.TP .TP
.B \f[I]report start\f[R] \f[I]report start\f[R]
the first day of the report period specified with -b or -p or date:, the first day of the report period specified with -b or -p or date:,
otherwise today. otherwise today.
.TP .TP
.B \f[I]report or journal start\f[R] \f[I]report or journal start\f[R]
the first day of the report period specified with -b or -p or date:, the first day of the report period specified with -b or -p or date:,
otherwise the earliest transaction date in the journal, otherwise today. otherwise the earliest transaction date in the journal, otherwise today.
.TP .TP
.B \f[I]report end\f[R] \f[I]report end\f[R]
the last day of the report period specified with -e or -p or date:, the last day of the report period specified with -e or -p or date:,
otherwise today. otherwise today.
.TP .TP
.B \f[I]report or journal end\f[R] \f[I]report or journal end\f[R]
the last day of the report period specified with -e or -p or date:, the last day of the report period specified with -e or -p or date:,
otherwise the latest transaction date in the journal, otherwise today. otherwise the latest transaction date in the journal, otherwise today.
.TP .TP
.B \f[I]report interval\f[R] \f[I]report interval\f[R]
a flag (-D/-W/-M/-Q/-Y) or period expression that activates the a flag (-D/-W/-M/-Q/-Y) or period expression that activates the
report\[aq]s multi-period mode (whether showing one or many subperiods). report\[aq]s multi-period mode (whether showing one or many subperiods).
.SS Combining -B, -V, -X, --value .SS Combining -B, -V, -X, --value
@ -1646,12 +1647,12 @@ 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 Remember these can also be prefixed with \f[B]\f[CB]not:\f[B]\f[R], eg
to exclude a particular subaccount. to exclude a particular subaccount.
.TP .TP
.B \f[B]\f[CB]REGEX\f[B], \f[CB]acct:REGEX\f[B]\f[R] \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. match account names by this regular expression.
(With no prefix, \f[C]acct:\f[R] is assumed.) (With no prefix, \f[C]acct:\f[R] is assumed.)
same as above same as above
.TP .TP
.B \f[B]\f[CB]amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N\f[B]\f[R] \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 match postings with a single-commodity amount that is equal to, less
than, or greater than N. than, or greater than N.
(Multi-commodity amounts are not tested, and will always match.) The (Multi-commodity amounts are not tested, and will always match.) The
@ -1659,10 +1660,10 @@ comparison has two modes: if N is preceded by a + or - sign (or is 0),
the two signed numbers are compared. the two signed numbers are compared.
Otherwise, the absolute magnitudes are compared, ignoring sign. Otherwise, the absolute magnitudes are compared, ignoring sign.
.TP .TP
.B \f[B]\f[CB]code:REGEX\f[B]\f[R] \f[B]\f[R]\f[C]code:REGEX\f[R]\f[B]\f[R]
match by transaction code (eg check number) match by transaction code (eg check number)
.TP .TP
.B \f[B]\f[CB]cur:REGEX\f[B]\f[R] \f[B]\f[R]\f[C]cur:REGEX\f[R]\f[B]\f[R]
match postings or transactions including any amounts whose match postings or transactions including any amounts whose
currency/commodity symbol is fully matched by REGEX. currency/commodity symbol is fully matched by REGEX.
(For a partial match, use \f[C].*REGEX.*\f[R]). (For a partial match, use \f[C].*REGEX.*\f[R]).
@ -1673,10 +1674,10 @@ 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:\[aq]\[rs]$\[aq]\f[R] or
\f[C]hledger print cur:\[rs]\[rs]$\f[R]. \f[C]hledger print cur:\[rs]\[rs]$\f[R].
.TP .TP
.B \f[B]\f[CB]desc:REGEX\f[B]\f[R] \f[B]\f[R]\f[C]desc:REGEX\f[R]\f[B]\f[R]
match transaction descriptions. match transaction descriptions.
.TP .TP
.B \f[B]\f[CB]date:PERIODEXPR\f[B]\f[R] \f[B]\f[R]\f[C]date:PERIODEXPR\f[R]\f[B]\f[R]
match dates within the specified period. match dates within the specified period.
PERIODEXPR is a period expression (with no report interval). PERIODEXPR is a period expression (with no report interval).
Examples: \f[C]date:2016\f[R], \f[C]date:thismonth\f[R], Examples: \f[C]date:2016\f[R], \f[C]date:thismonth\f[R],
@ -1684,27 +1685,27 @@ Examples: \f[C]date:2016\f[R], \f[C]date:thismonth\f[R],
If the \f[C]--date2\f[R] command line flag is present, this matches If the \f[C]--date2\f[R] command line flag is present, this matches
secondary dates instead. secondary dates instead.
.TP .TP
.B \f[B]\f[CB]date2:PERIODEXPR\f[B]\f[R] \f[B]\f[R]\f[C]date2:PERIODEXPR\f[R]\f[B]\f[R]
match secondary dates within the specified period. match secondary dates within the specified period.
.TP .TP
.B \f[B]\f[CB]depth:N\f[B]\f[R] \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 match (or display, depending on command) accounts at or above this depth
.TP .TP
.B \f[B]\f[CB]note:REGEX\f[B]\f[R] \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 match transaction notes (part of description right of \f[C]|\f[R], or
whole description when there\[aq]s no \f[C]|\f[R]) whole description when there\[aq]s no \f[C]|\f[R])
.TP .TP
.B \f[B]\f[CB]payee:REGEX\f[B]\f[R] \f[B]\f[R]\f[C]payee:REGEX\f[R]\f[B]\f[R]
match transaction payee/payer names (part of description left of 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]) \f[C]|\f[R], or whole description when there\[aq]s no \f[C]|\f[R])
.TP .TP
.B \f[B]\f[CB]real:, real:0\f[B]\f[R] \f[B]\f[R]\f[C]real:, real:0\f[R]\f[B]\f[R]
match real or virtual postings respectively match real or virtual postings respectively
.TP .TP
.B \f[B]\f[CB]status:, status:!, status:*\f[B]\f[R] \f[B]\f[R]\f[C]status:, status:!, status:*\f[R]\f[B]\f[R]
match unmarked, pending, or cleared transactions respectively match unmarked, pending, or cleared transactions respectively
.TP .TP
.B \f[B]\f[CB]tag:REGEX[=REGEX]\f[B]\f[R] \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. match by tag name, and optionally also by tag value.
Note a tag: query is considered to match a transaction if it matches any Note a tag: query is considered to match a transaction if it matches any
of the postings. of the postings.
@ -1714,7 +1715,7 @@ transaction.
The following special search term is used automatically in hledger-web, The following special search term is used automatically in hledger-web,
only: only:
.TP .TP
.B \f[B]\f[CB]inacct:ACCTNAME\f[B]\f[R] \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. tells hledger-web to show the transaction register for this account.
Can be filtered further with \f[C]acct\f[R] etc. Can be filtered further with \f[C]acct\f[R] etc.
.PP .PP
@ -1749,6 +1750,8 @@ accounts, a
.PD .PD
Show account names. Show account names.
.PP .PP
$FLAGS$
.PP
This command lists account names, either declared with account This command lists account names, either declared with account
directives (--declared), posted to (--used), or both (the default). directives (--declared), posted to (--used), or both (the default).
With query arguments, only matched account names and account names With query arguments, only matched account names and account names
@ -1784,6 +1787,8 @@ activity
.PD .PD
Show an ascii barchart of posting counts per interval. Show an ascii barchart of posting counts per interval.
.PP .PP
$FLAGS$
.PP
The activity command displays an ascii histogram showing transaction The activity command displays an ascii histogram showing transaction
counts by day, week, month or other reporting interval (by day is the counts by day, week, month or other reporting interval (by day is the
default). default).
@ -1808,6 +1813,8 @@ add
.PD .PD
Prompt for transactions and add them to the journal. Prompt for transactions and add them to the journal.
.PP .PP
$FLAGS$
.PP
Many hledger users edit their journals directly with a text editor, or Many hledger users edit their journals directly with a text editor, or
generate them from CSV. generate them from CSV.
For more interactive data entry, there is the \f[C]add\f[R] command, For more interactive data entry, there is the \f[C]add\f[R] command,
@ -1891,6 +1898,8 @@ balance, bal, b
.PD .PD
Show accounts and their balances. Show accounts and their balances.
.PP .PP
$FLAGS$
.PP
The balance command is hledger\[aq]s most versatile command. The balance command is hledger\[aq]s most versatile command.
Note, despite the name, it is not always used for showing real-world Note, despite the name, it is not always used for showing real-world
account balances; the more accounting-aware balancesheet and account balances; the more accounting-aware balancesheet and
@ -2512,6 +2521,8 @@ Note this report shows all account balances with normal positive sign
(like conventional financial statements, unlike balance/print/register) (like conventional financial statements, unlike balance/print/register)
(experimental). (experimental).
.PP .PP
$FLAGS$
.PP
Example: Example:
.IP .IP
.nf .nf
@ -2559,6 +2570,8 @@ balancesheetequity, bse
Just like balancesheet, but also reports Equity (which it assumes is Just like balancesheet, but also reports Equity (which it assumes is
under a top-level \f[C]equity\f[R] account). under a top-level \f[C]equity\f[R] account).
.PP .PP
$FLAGS$
.PP
Example: Example:
.IP .IP
.nf .nf
@ -2603,6 +2616,8 @@ Note this report shows all account balances with normal positive sign
(like conventional financial statements, unlike balance/print/register) (like conventional financial statements, unlike balance/print/register)
(experimental). (experimental).
.PP .PP
$FLAGS$
.PP
Example: Example:
.IP .IP
.nf .nf
@ -2644,6 +2659,8 @@ With --date2, checks secondary dates instead.
With --strict, dates must also be unique. With --strict, dates must also be unique.
With a query, only matched transactions\[aq] dates are checked. With a query, only matched transactions\[aq] dates are checked.
Reads the default journal file, or another specified with -f. Reads the default journal file, or another specified with -f.
.PP
$FLAGS$
.SS check-dupes .SS check-dupes
.PP .PP
check-dupes check-dupes
@ -2654,6 +2671,8 @@ Reports account names having the same leaf but different prefixes.
In other words, two or more leaves that are categorized differently. In other words, two or more leaves that are categorized differently.
Reads the default journal file, or another specified as an argument. Reads the default journal file, or another specified as an argument.
.PP .PP
$FLAGS$
.PP
An example: http://stefanorodighiero.net/software/hledger-dupes.html An example: http://stefanorodighiero.net/software/hledger-dupes.html
.SS close .SS close
.PP .PP
@ -2668,6 +2687,8 @@ Useful for bringing asset/liability balances forward into a new journal
file, or for closing out revenues/expenses to retained earnings at the file, or for closing out revenues/expenses to retained earnings at the
end of a period. end of a period.
.PP .PP
$FLAGS$
.PP
The closing transaction transfers balances to \[dq]equity:closing The closing transaction transfers balances to \[dq]equity:closing
balances\[dq], and the opening transaction transfers balances from balances\[dq], and the opening transaction transfers balances from
\[dq]equity:opening balances\[dq], or you can customise these with the \[dq]equity:opening balances\[dq], or you can customise these with the
@ -2773,10 +2794,14 @@ commodities
.P .P
.PD .PD
List all commodity/currency symbols used or declared in the journal. List all commodity/currency symbols used or declared in the journal.
.PP
$FLAGS$
.SS descriptions .SS descriptions
.PP .PP
descriptions Show descriptions. descriptions Show descriptions.
.PP .PP
$FLAGS$
.PP
This command lists all descriptions that appear in transactions. This command lists all descriptions that appear in transactions.
.PP .PP
Examples: Examples:
@ -2810,6 +2835,8 @@ from your bank (eg as CSV data).
When hledger and your bank disagree about the account balance, you can When hledger and your bank disagree about the account balance, you can
compare the bank data with your journal to find out the cause. compare the bank data with your journal to find out the cause.
.PP .PP
$FLAGS$
.PP
Examples: Examples:
.IP .IP
.nf .nf
@ -2834,6 +2861,8 @@ files
List all files included in the journal. List all files included in the journal.
With a REGEX argument, only file names matching the regular expression With a REGEX argument, only file names matching the regular expression
(case sensitive) are shown. (case sensitive) are shown.
.PP
$FLAGS$
.SS help .SS help
.PP .PP
help help
@ -2842,6 +2871,8 @@ help
.PD .PD
Show any of the hledger manuals. Show any of the hledger manuals.
.PP .PP
$FLAGS$
.PP
The \f[C]help\f[R] command displays any of the main hledger manuals, in The \f[C]help\f[R] command displays any of the main hledger manuals, in
one of several ways. one of several ways.
Run it with no argument to list the manuals, or provide a full or Run it with no argument to list the manuals, or provide a full or
@ -2894,6 +2925,8 @@ Or with --dry-run, just print the transactions that would be added.
Or with --catchup, just mark all of the FILEs\[aq] transactions as Or with --catchup, just mark all of the FILEs\[aq] transactions as
imported, without actually importing any. imported, without actually importing any.
.PP .PP
$FLAGS$
.PP
The input files are specified as arguments - no need to write -f before The input files are specified as arguments - no need to write -f before
each one. each one.
So eg to add new transactions from all CSV files to the main journal, So eg to add new transactions from all CSV files to the main journal,
@ -2946,6 +2979,8 @@ Note this report shows all account balances with normal positive sign
(like conventional financial statements, unlike balance/print/register) (like conventional financial statements, unlike balance/print/register)
(experimental). (experimental).
.PP .PP
$FLAGS$
.PP
This command displays a simple income statement. This command displays a simple income statement.
It currently assumes that you have top-level accounts named It currently assumes that you have top-level accounts named
\f[C]income\f[R] (or \f[C]revenue\f[R]) and \f[C]expense\f[R] (plural \f[C]income\f[R] (or \f[C]revenue\f[R]) and \f[C]expense\f[R] (plural
@ -2990,6 +3025,8 @@ selection.
.PP .PP
notes Show notes. notes Show notes.
.PP .PP
$FLAGS$
.PP
This command lists all notes that appear in transactions. This command lists all notes that appear in transactions.
.PP .PP
Examples: Examples:
@ -3005,6 +3042,8 @@ Snacks
.PP .PP
payees Show payee names. payees Show payee names.
.PP .PP
$FLAGS$
.PP
This command lists all payee names that appear in transactions. This command lists all payee names that appear in transactions.
.PP .PP
Examples: Examples:
@ -3030,6 +3069,8 @@ With --inverted-costs, also print inverse prices based on transaction
prices. prices.
Prices (and postings providing prices) can be filtered by a query. Prices (and postings providing prices) can be filtered by a query.
Price amounts are always displayed with their full precision. Price amounts are always displayed with their full precision.
.PP
$FLAGS$
.SS print .SS print
.PP .PP
print, txns, p print, txns, p
@ -3038,6 +3079,8 @@ print, txns, p
.PD .PD
Show transaction journal entries, sorted by date. Show transaction journal entries, sorted by date.
.PP .PP
$FLAGS$
.PP
The print command displays full journal entries (transactions) from the The print command displays full journal entries (transactions) from the
journal file in date order, tidily formatted. journal file in date order, tidily formatted.
With --date2, transactions are sorted by secondary date instead. With --date2, transactions are sorted by secondary date instead.
@ -3164,6 +3207,8 @@ print-unique
.PD .PD
Print transactions which do not reuse an already-seen description. Print transactions which do not reuse an already-seen description.
.PP .PP
$FLAGS$
.PP
Example: Example:
.IP .IP
.nf .nf
@ -3187,6 +3232,8 @@ register, reg, r
.PD .PD
Show postings and their running total. Show postings and their running total.
.PP .PP
$FLAGS$
.PP
The register command displays postings in date order, one per line, and The register command displays postings in date order, one per line, and
their running total. their running total.
This is typically used with a query selecting a particular account, to This is typically used with a query selecting a particular account, to
@ -3343,6 +3390,8 @@ If there are multiple equally good matches, it shows the most recent.
Query options (options, not arguments) can be used to restrict the Query options (options, not arguments) can be used to restrict the
search space. search space.
Helps ledger-autosync detect already-seen transactions when importing. Helps ledger-autosync detect already-seen transactions when importing.
.PP
$FLAGS$
.SS rewrite .SS rewrite
.PP .PP
rewrite rewrite
@ -3353,6 +3402,8 @@ Print all transactions, rewriting the postings of matched transactions.
For now the only rewrite available is adding new postings, like print For now the only rewrite available is adding new postings, like print
--auto. --auto.
.PP .PP
$FLAGS$
.PP
This is a start at a generic rewriter of transaction entries. This is a start at a generic rewriter of transaction entries.
It reads the default journal and prints the transactions, like print, It reads the default journal and prints the transactions, like print,
but adds one or more specified postings to any transactions matching but adds one or more specified postings to any transactions matching
@ -3524,6 +3575,8 @@ roi
Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on
your investments. your investments.
.PP .PP
$FLAGS$
.PP
This command assumes that you have account(s) that hold nothing but your This command assumes that you have account(s) that hold nothing but your
investments and whenever you record current appraisal/valuation of these investments and whenever you record current appraisal/valuation of these
investments you offset unrealized profit and loss into account(s) that, investments you offset unrealized profit and loss into account(s) that,
@ -3550,6 +3603,8 @@ stats
.PD .PD
Show some journal statistics. Show some journal statistics.
.PP .PP
$FLAGS$
.PP
The stats command displays summary information for the whole journal, or The stats command displays summary information for the whole journal, or
a matched part of it. a matched part of it.
With a reporting interval, it shows a report for each report period. With a reporting interval, it shows a report for each report period.
@ -3587,6 +3642,8 @@ With a TAGREGEX argument, only tag names matching the regular expression
With QUERY arguments, only transactions matching the query are With QUERY arguments, only transactions matching the query are
considered. considered.
With --values flag, the tags\[aq] unique values are listed instead. With --values flag, the tags\[aq] unique values are listed instead.
.PP
$FLAGS$
.SS test .SS test
.PP .PP
test test
@ -3595,6 +3652,8 @@ test
.PD .PD
Run built-in unit tests. Run built-in unit tests.
.PP .PP
$FLAGS$
.PP
This command runs the unit tests built in to hledger and hledger-lib, This command runs the unit tests built in to hledger and hledger-lib,
printing the results on stdout. printing the results on stdout.
If any test fails, the exit code will be non-zero. If any test fails, the exit code will be non-zero.
@ -3662,10 +3721,6 @@ hledger-web provides a simple web interface.
.PP .PP
These are maintained separately, and usually updated shortly after a These are maintained separately, and usually updated shortly after a
hledger release. hledger release.
.SS diff
.PP
hledger-diff shows differences in an account\[aq]s transactions between
one journal file and another.
.SS iadd .SS iadd
.PP .PP
hledger-iadd is a more interactive, terminal UI replacement for the add hledger-iadd is a more interactive, terminal UI replacement for the add
@ -3674,10 +3729,6 @@ command.
.PP .PP
hledger-interest generates interest transactions for an account hledger-interest generates interest transactions for an account
according to various schemes. according to various schemes.
.SS irr
.PP
hledger-irr calculates the internal rate of return of an investment
account, but it\[aq]s superseded now by the built-in roi command.
.SS Experimental add-ons .SS Experimental add-ons
.PP .PP
These are available in source form in the hledger repo\[aq]s bin/ These are available in source form in the hledger repo\[aq]s bin/
@ -3693,10 +3744,7 @@ formats, and can also download the data if your bank offers OFX Direct
Connect. Connect.
.SS chart .SS chart
.PP .PP
hledger-chart.hs is an old pie chart generator, in need of some love. hledger-chart.hs is an old very basic pie chart generator.
.SS check
.PP
hledger-check.hs checks more powerful account balance assertions.
.SH ENVIRONMENT .SH ENVIRONMENT
.PP .PP
\f[B]COLUMNS\f[R] The screen width used by the register command. \f[B]COLUMNS\f[R] The screen width used by the register command.

View File

@ -1,4 +1,4 @@
This is hledger.info, produced by makeinfo version 6.5 from stdin. This is hledger.info, produced by makeinfo version 6.7 from stdin.
 
File: hledger.info, Node: Top, Next: EXAMPLES, Up: (dir) File: hledger.info, Node: Top, Next: EXAMPLES, Up: (dir)
@ -179,7 +179,8 @@ by most hledger commands, run 'hledger -h'.
use some other field or tag for the account name use some other field or tag for the account name
'-I --ignore-assertions' '-I --ignore-assertions'
ignore any failing balance assertions disable balance assertion checks (note: does not disable balance
assignments)
General reporting options: General reporting options:
@ -1347,6 +1348,8 @@ File: hledger.info, Node: accounts, Next: activity, Up: COMMANDS
accounts, a accounts, a
Show account names. Show account names.
$FLAGS$
This command lists account names, either declared with account This command lists account names, either declared with account
directives (-declared), posted to (-used), or both (the default). With directives (-declared), posted to (-used), or both (the default). With
query arguments, only matched account names and account names referenced query arguments, only matched account names and account names referenced
@ -1377,6 +1380,8 @@ File: hledger.info, Node: activity, Next: add, Prev: accounts, Up: COMMANDS
activity activity
Show an ascii barchart of posting counts per interval. Show an ascii barchart of posting counts per interval.
$FLAGS$
The activity command displays an ascii histogram showing transaction The activity command displays an ascii histogram showing transaction
counts by day, week, month or other reporting interval (by day is the counts by day, week, month or other reporting interval (by day is the
default). With query arguments, it counts only matched transactions. default). With query arguments, it counts only matched transactions.
@ -1398,6 +1403,8 @@ File: hledger.info, Node: add, Next: balance, Prev: activity, Up: COMMANDS
add add
Prompt for transactions and add them to the journal. Prompt for transactions and add them to the journal.
$FLAGS$
Many hledger users edit their journals directly with a text editor, Many hledger users edit their journals directly with a text editor,
or generate them from CSV. For more interactive data entry, there is the 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
@ -1469,6 +1476,8 @@ File: hledger.info, Node: balance, Next: balancesheet, Prev: add, Up: COMMAN
balance, bal, b balance, bal, b
Show accounts and their balances. Show accounts and their balances.
$FLAGS$
The balance command is hledger's most versatile command. Note, The balance command is hledger's most versatile command. Note,
despite the name, it is not always used for showing real-world account despite the name, it is not always used for showing real-world account
balances; the more accounting-aware balancesheet and incomestatement may balances; the more accounting-aware balancesheet and incomestatement may
@ -2040,6 +2049,8 @@ date). It assumes that these accounts are under a top-level 'asset' or
(like conventional financial statements, unlike balance/print/register) (like conventional financial statements, unlike balance/print/register)
(experimental). (experimental).
$FLAGS$
Example: Example:
$ hledger balancesheet $ hledger balancesheet
@ -2083,6 +2094,8 @@ balancesheetequity, bse
Just like balancesheet, but also reports Equity (which it assumes is Just like balancesheet, but also reports Equity (which it assumes is
under a top-level 'equity' account). under a top-level 'equity' account).
$FLAGS$
Example: Example:
$ hledger balancesheetequity $ hledger balancesheetequity
@ -2123,6 +2136,8 @@ contain 'receivable' or 'A/R' in their name. Note this report shows all
account balances with normal positive sign (like conventional financial account balances with normal positive sign (like conventional financial
statements, unlike balance/print/register) (experimental). statements, unlike balance/print/register) (experimental).
$FLAGS$
Example: Example:
$ hledger cashflow $ hledger cashflow
@ -2160,6 +2175,8 @@ checks secondary dates instead. With -strict, dates must also be
unique. With a query, only matched transactions' dates are checked. unique. With a query, only matched transactions' dates are checked.
Reads the default journal file, or another specified with -f. Reads the default journal file, or another specified with -f.
$FLAGS$
 
File: hledger.info, Node: check-dupes, Next: close, Prev: check-dates, Up: COMMANDS File: hledger.info, Node: check-dupes, Next: close, Prev: check-dates, Up: COMMANDS
@ -2171,6 +2188,8 @@ Reports account names having the same leaf but different prefixes. In
other words, two or more leaves that are categorized differently. Reads other words, two or more leaves that are categorized differently. Reads
the default journal file, or another specified as an argument. the default journal file, or another specified as an argument.
$FLAGS$
An example: http://stefanorodighiero.net/software/hledger-dupes.html An example: http://stefanorodighiero.net/software/hledger-dupes.html
 
@ -2186,6 +2205,8 @@ Useful for bringing asset/liability balances forward into a new journal
file, or for closing out revenues/expenses to retained earnings at the file, or for closing out revenues/expenses to retained earnings at the
end of a period. end of a period.
$FLAGS$
The closing transaction transfers balances to "equity:closing The closing transaction transfers balances to "equity:closing
balances", and the opening transaction transfers balances from balances", and the opening transaction transfers balances from
"equity:opening balances", or you can customise these with the "equity:opening balances", or you can customise these with the
@ -2272,6 +2293,8 @@ File: hledger.info, Node: commodities, Next: descriptions, Prev: close, Up:
commodities commodities
List all commodity/currency symbols used or declared in the journal. List all commodity/currency symbols used or declared in the journal.
$FLAGS$
 
File: hledger.info, Node: descriptions, Next: diff, Prev: commodities, Up: COMMANDS File: hledger.info, Node: descriptions, Next: diff, Prev: commodities, Up: COMMANDS
@ -2280,6 +2303,8 @@ File: hledger.info, Node: descriptions, Next: diff, Prev: commodities, Up: C
descriptions Show descriptions. descriptions Show descriptions.
$FLAGS$
This command lists all descriptions that appear in transactions. This command lists all descriptions that appear in transactions.
Examples: Examples:
@ -2312,6 +2337,8 @@ from your bank (eg as CSV data). When hledger and your bank disagree
about the account balance, you can compare the bank data with your about the account balance, you can compare the bank data with your
journal to find out the cause. journal to find out the cause.
$FLAGS$
Examples: Examples:
$ hledger diff -f $LEDGER_FILE -f bank.csv assets:bank:giro $ hledger diff -f $LEDGER_FILE -f bank.csv assets:bank:giro
@ -2334,6 +2361,8 @@ files
List all files included in the journal. With a REGEX argument, only List all files included in the journal. With a REGEX argument, only
file names matching the regular expression (case sensitive) are shown. file names matching the regular expression (case sensitive) are shown.
$FLAGS$
 
File: hledger.info, Node: help, Next: import, Prev: files, Up: COMMANDS File: hledger.info, Node: help, Next: import, Prev: files, Up: COMMANDS
@ -2343,6 +2372,8 @@ File: hledger.info, Node: help, Next: import, Prev: files, Up: COMMANDS
help help
Show any of the hledger manuals. Show any of the hledger manuals.
$FLAGS$
The 'help' command displays any of the main hledger manuals, in 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 of several ways. Run it with no argument to list the manuals, or
provide a full or partial manual name to select one. provide a full or partial manual name to select one.
@ -2386,6 +2417,8 @@ the main journal file. Or with -dry-run, just print the transactions
that would be added. Or with -catchup, just mark all of the FILEs' that would be added. Or with -catchup, just mark all of the FILEs'
transactions as imported, without actually importing any. transactions as imported, without actually importing any.
$FLAGS$
The input files are specified as arguments - no need to write -f 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 before each one. So eg to add new transactions from all CSV files to
the main journal, it's just: 'hledger import *.csv' the main journal, it's just: 'hledger import *.csv'
@ -2436,6 +2469,8 @@ plural forms also allowed). Note this report shows all account balances
with normal positive sign (like conventional financial statements, with normal positive sign (like conventional financial statements,
unlike balance/print/register) (experimental). unlike balance/print/register) (experimental).
$FLAGS$
This command displays a simple income statement. It currently This command displays a simple income statement. It currently
assumes that you have top-level accounts named 'income' (or 'revenue') assumes that you have top-level accounts named 'income' (or 'revenue')
and 'expense' (plural forms also allowed.) and 'expense' (plural forms also allowed.)
@ -2478,6 +2513,8 @@ File: hledger.info, Node: notes, Next: payees, Prev: incomestatement, Up: CO
notes Show notes. notes Show notes.
$FLAGS$
This command lists all notes that appear in transactions. This command lists all notes that appear in transactions.
Examples: Examples:
@ -2494,6 +2531,8 @@ File: hledger.info, Node: payees, Next: prices, Prev: notes, Up: COMMANDS
payees Show payee names. payees Show payee names.
$FLAGS$
This command lists all payee names that appear in transactions. This command lists all payee names that appear in transactions.
Examples: Examples:
@ -2516,6 +2555,8 @@ synthetic market prices based on transaction prices. With
Prices (and postings providing prices) can be filtered by a query. Prices (and postings providing prices) can be filtered by a query.
Price amounts are always displayed with their full precision. Price amounts are always displayed with their full precision.
$FLAGS$
 
File: hledger.info, Node: print, Next: print-unique, Prev: prices, Up: COMMANDS File: hledger.info, Node: print, Next: print-unique, Prev: prices, Up: COMMANDS
@ -2525,6 +2566,8 @@ File: hledger.info, Node: print, Next: print-unique, Prev: prices, Up: COMMA
print, txns, p print, txns, p
Show transaction journal entries, sorted by date. Show transaction journal entries, sorted by date.
$FLAGS$
The print command displays full journal entries (transactions) from The print command displays full journal entries (transactions) from
the journal file in date order, tidily formatted. With -date2, the journal file in date order, tidily formatted. With -date2,
transactions are sorted by secondary date instead. transactions are sorted by secondary date instead.
@ -2626,6 +2669,8 @@ File: hledger.info, Node: print-unique, Next: register, Prev: print, Up: COM
print-unique print-unique
Print transactions which do not reuse an already-seen description. Print transactions which do not reuse an already-seen description.
$FLAGS$
Example: Example:
$ cat unique.journal $ cat unique.journal
@ -2647,6 +2692,8 @@ File: hledger.info, Node: register, Next: register-match, Prev: print-unique,
register, reg, r register, reg, r
Show postings and their running total. Show postings and their running total.
$FLAGS$
The register command displays postings in date order, one per line, The register command displays postings in date order, one per line,
and their running total. This is typically used with a query selecting and their running total. This is typically used with a query selecting
a particular account, to see that account's activity: a particular account, to see that account's activity:
@ -2772,6 +2819,8 @@ good matches, it shows the most recent. Query options (options, not
arguments) can be used to restrict the search space. Helps arguments) can be used to restrict the search space. Helps
ledger-autosync detect already-seen transactions when importing. ledger-autosync detect already-seen transactions when importing.
$FLAGS$
 
File: hledger.info, Node: rewrite, Next: roi, Prev: register-match, Up: COMMANDS File: hledger.info, Node: rewrite, Next: roi, Prev: register-match, Up: COMMANDS
@ -2783,6 +2832,8 @@ Print all transactions, rewriting the postings of matched transactions.
For now the only rewrite available is adding new postings, like print For now the only rewrite available is adding new postings, like print
-auto. -auto.
$FLAGS$
This is a start at a generic rewriter of transaction entries. It This is a start at a generic rewriter of transaction entries. It
reads the default journal and prints the transactions, like print, but reads the default journal and prints the transactions, like print, but
adds one or more specified postings to any transactions matching QUERY. adds one or more specified postings to any transactions matching QUERY.
@ -2938,6 +2989,8 @@ roi
Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on Shows the time-weighted (TWR) and money-weighted (IRR) rate of return on
your investments. your investments.
$FLAGS$
This command assumes that you have account(s) that hold nothing but This command assumes that you have account(s) that hold nothing but
your investments and whenever you record current appraisal/valuation of your investments and whenever you record current appraisal/valuation of
these investments you offset unrealized profit and loss into account(s) these investments you offset unrealized profit and loss into account(s)
@ -2965,6 +3018,8 @@ File: hledger.info, Node: stats, Next: tags, Prev: roi, Up: COMMANDS
stats stats
Show some journal statistics. Show some journal statistics.
$FLAGS$
The stats command displays summary information for the whole journal, The stats command displays summary information for the whole journal,
or a matched part of it. With a reporting interval, it shows a report or a matched part of it. With a reporting interval, it shows a report
for each report period. for each report period.
@ -3000,6 +3055,8 @@ shown. With QUERY arguments, only transactions matching the query are
considered. With -values flag, the tags' unique values are listed considered. With -values flag, the tags' unique values are listed
instead. instead.
$FLAGS$
 
File: hledger.info, Node: test, Prev: tags, Up: COMMANDS File: hledger.info, Node: test, Prev: tags, Up: COMMANDS
@ -3009,6 +3066,8 @@ File: hledger.info, Node: test, Prev: tags, Up: COMMANDS
test test
Run built-in unit tests. Run built-in unit tests.
$FLAGS$
This command runs the unit tests built in to hledger and hledger-lib, This command runs the unit tests built in to hledger and hledger-lib,
printing the results on stdout. If any test fails, the exit code will printing the results on stdout. If any test fails, the exit code will
be non-zero. be non-zero.
@ -3106,44 +3165,27 @@ hledger release.
* Menu: * Menu:
* diff::
* iadd:: * iadd::
* interest:: * interest::
* irr::
5.2.1 diff
----------
hledger-diff shows differences in an account's transactions between one
journal file and another.
 
File: hledger.info, Node: iadd, Next: interest, Prev: , Up: Third party add-ons File: hledger.info, Node: iadd, Next: interest, Up: Third party add-ons
5.2.2 iadd 5.2.1 iadd
---------- ----------
hledger-iadd is a more interactive, terminal UI replacement for the add hledger-iadd is a more interactive, terminal UI replacement for the add
command. command.
 
File: hledger.info, Node: interest, Next: irr, Prev: iadd, Up: Third party add-ons File: hledger.info, Node: interest, Prev: iadd, Up: Third party add-ons
5.2.3 interest 5.2.2 interest
-------------- --------------
hledger-interest generates interest transactions for an account hledger-interest generates interest transactions for an account
according to various schemes. according to various schemes.

File: hledger.info, Node: irr, Prev: interest, Up: Third party add-ons
5.2.4 irr
---------
hledger-irr calculates the internal rate of return of an investment
account, but it's superseded now by the built-in roi command.
 
File: hledger.info, Node: Experimental add-ons, Prev: Third party add-ons, Up: ADD-ON COMMANDS File: hledger.info, Node: Experimental add-ons, Prev: Third party add-ons, Up: ADD-ON COMMANDS
@ -3158,7 +3200,6 @@ and tweaking these is a good way to start making your own!
* autosync:: * autosync::
* chart:: * chart::
* check::
 
File: hledger.info, Node: autosync, Next: chart, Up: Experimental add-ons File: hledger.info, Node: autosync, Next: chart, Up: Experimental add-ons
@ -3172,20 +3213,12 @@ and some CSV formats, and can also download the data if your bank offers
OFX Direct Connect. OFX Direct Connect.
 
File: hledger.info, Node: chart, Next: check, Prev: autosync, Up: Experimental add-ons File: hledger.info, Node: chart, Prev: autosync, Up: Experimental add-ons
5.3.2 chart 5.3.2 chart
----------- -----------
hledger-chart.hs is an old pie chart generator, in need of some love. hledger-chart.hs is an old very basic pie chart generator.

File: hledger.info, Node: check, Prev: chart, Up: Experimental add-ons
5.3.3 check
-----------
hledger-check.hs checks more powerful account balance assertions.
 
Tag Table: Tag Table:
@ -3196,173 +3229,173 @@ Node: OPTIONS3637
Ref: #options3739 Ref: #options3739
Node: General options4138 Node: General options4138
Ref: #general-options4263 Ref: #general-options4263
Node: Command options6917 Node: Command options6962
Ref: #command-options7068 Ref: #command-options7113
Node: Command arguments7466 Node: Command arguments7511
Ref: #command-arguments7620 Ref: #command-arguments7665
Node: Argument files7741 Node: Argument files7786
Ref: #argument-files7917 Ref: #argument-files7962
Node: Special characters in arguments and queries8183 Node: Special characters in arguments and queries8228
Ref: #special-characters-in-arguments-and-queries8417 Ref: #special-characters-in-arguments-and-queries8462
Node: More escaping8868 Node: More escaping8913
Ref: #more-escaping9030 Ref: #more-escaping9075
Node: Even more escaping9326 Node: Even more escaping9371
Ref: #even-more-escaping9520 Ref: #even-more-escaping9565
Node: Less escaping10191 Node: Less escaping10236
Ref: #less-escaping10353 Ref: #less-escaping10398
Node: Command line tips10598 Node: Command line tips10643
Ref: #command-line-tips10784 Ref: #command-line-tips10829
Node: Unicode characters11161 Node: Unicode characters11206
Ref: #unicode-characters11317 Ref: #unicode-characters11362
Node: Input files12729 Node: Input files12774
Ref: #input-files12865 Ref: #input-files12910
Node: Smart dates14794 Node: Smart dates14839
Ref: #smart-dates14935 Ref: #smart-dates14980
Node: Report start & end date16341 Node: Report start & end date16386
Ref: #report-start-end-date16513 Ref: #report-start-end-date16558
Node: Report intervals17937 Node: Report intervals17982
Ref: #report-intervals18102 Ref: #report-intervals18147
Node: Period expressions18492 Node: Period expressions18537
Ref: #period-expressions18652 Ref: #period-expressions18697
Node: Depth limiting22607 Node: Depth limiting22652
Ref: #depth-limiting22751 Ref: #depth-limiting22796
Node: Pivoting23093 Node: Pivoting23138
Ref: #pivoting23216 Ref: #pivoting23261
Node: Valuation24892 Node: Valuation24937
Ref: #valuation25021 Ref: #valuation25066
Node: -B Cost25201 Node: -B Cost25246
Ref: #b-cost25312 Ref: #b-cost25357
Node: -V Market value25510 Node: -V Market value25555
Ref: #v-market-value25684 Ref: #v-market-value25729
Node: -X Market value in specified commodity27116 Node: -X Market value in specified commodity27161
Ref: #x-market-value-in-specified-commodity27355 Ref: #x-market-value-in-specified-commodity27400
Node: --value Flexible valuation27531 Node: --value Flexible valuation27576
Ref: #value-flexible-valuation27757 Ref: #value-flexible-valuation27802
Node: Effect of --value on reports31947 Node: Effect of --value on reports31992
Ref: #effect-of---value-on-reports32163 Ref: #effect-of---value-on-reports32208
Node: Combining -B -V -X --value37094 Node: Combining -B -V -X --value37139
Ref: #combining--b--v--x---value37277 Ref: #combining--b--v--x---value37322
Node: Output destination37313 Node: Output destination37358
Ref: #output-destination37465 Ref: #output-destination37510
Node: Output format37748 Node: Output format37793
Ref: #output-format37900 Ref: #output-format37945
Node: Regular expressions38285 Node: Regular expressions38330
Ref: #regular-expressions38422 Ref: #regular-expressions38467
Node: QUERIES39783 Node: QUERIES39828
Ref: #queries39885 Ref: #queries39930
Node: COMMANDS43847 Node: COMMANDS43892
Ref: #commands43959 Ref: #commands44004
Node: accounts45023 Node: accounts45068
Ref: #accounts45121 Ref: #accounts45166
Node: activity45820 Node: activity45877
Ref: #activity45930 Ref: #activity45987
Node: add46313 Node: add46382
Ref: #add46412 Ref: #add46481
Node: balance49157 Node: balance49232
Ref: #balance49268 Ref: #balance49343
Node: Classic balance report50726 Node: Classic balance report50813
Ref: #classic-balance-report50899 Ref: #classic-balance-report50986
Node: Customising the classic balance report52268 Node: Customising the classic balance report52355
Ref: #customising-the-classic-balance-report52496 Ref: #customising-the-classic-balance-report52583
Node: Colour support54572 Node: Colour support54659
Ref: #colour-support54739 Ref: #colour-support54826
Node: Flat mode54912 Node: Flat mode54999
Ref: #flat-mode55060 Ref: #flat-mode55147
Node: Depth limited balance reports55473 Node: Depth limited balance reports55560
Ref: #depth-limited-balance-reports55658 Ref: #depth-limited-balance-reports55745
Node: Percentages56114 Node: Percentages56201
Ref: #percentages56280 Ref: #percentages56367
Node: Multicolumn balance report57417 Node: Multicolumn balance report57504
Ref: #multicolumn-balance-report57597 Ref: #multicolumn-balance-report57684
Node: Budget report62911 Node: Budget report62998
Ref: #budget-report63054 Ref: #budget-report63141
Node: Nested budgets68256 Node: Nested budgets68343
Ref: #nested-budgets68368 Ref: #nested-budgets68455
Ref: #output-format-171848 Ref: #output-format-171936
Node: balancesheet71926 Node: balancesheet72014
Ref: #balancesheet72062 Ref: #balancesheet72150
Node: balancesheetequity73445 Node: balancesheetequity73545
Ref: #balancesheetequity73594 Ref: #balancesheetequity73694
Node: cashflow74155 Node: cashflow74267
Ref: #cashflow74283 Ref: #cashflow74395
Node: check-dates75379 Node: check-dates75503
Ref: #check-dates75506 Ref: #check-dates75630
Node: check-dupes75785 Node: check-dupes75921
Ref: #check-dupes75909 Ref: #check-dupes76045
Node: close76202 Node: close76350
Ref: #close76316 Ref: #close76464
Node: commodities79982 Node: commodities80142
Ref: #commodities80109 Ref: #commodities80269
Node: descriptions80191 Node: descriptions80363
Ref: #descriptions80319 Ref: #descriptions80491
Node: diff80500 Node: diff80684
Ref: #diff80606 Ref: #diff80790
Node: files81653 Node: files81849
Ref: #files81753 Ref: #files81949
Node: help81900 Node: help82108
Ref: #help82000 Ref: #help82208
Node: import83081 Node: import83301
Ref: #import83195 Ref: #import83415
Node: Importing balance assignments84088 Node: Importing balance assignments84320
Ref: #importing-balance-assignments84236 Ref: #importing-balance-assignments84468
Node: incomestatement84885 Node: incomestatement85117
Ref: #incomestatement85018 Ref: #incomestatement85250
Node: notes86422 Node: notes86666
Ref: #notes86535 Ref: #notes86779
Node: payees86661 Node: payees86917
Ref: #payees86767 Ref: #payees87023
Node: prices86925 Node: prices87193
Ref: #prices87031 Ref: #prices87299
Node: print87372 Node: print87652
Ref: #print87482 Ref: #print87762
Node: print-unique91975 Node: print-unique92267
Ref: #print-unique92101 Ref: #print-unique92393
Node: register92386 Node: register92690
Ref: #register92513 Ref: #register92817
Node: Custom register output96685 Node: Custom register output97001
Ref: #custom-register-output96814 Ref: #custom-register-output97130
Node: register-match98076 Node: register-match98392
Ref: #register-match98210 Ref: #register-match98526
Node: rewrite98561 Node: rewrite98889
Ref: #rewrite98676 Ref: #rewrite99004
Node: Re-write rules in a file100531 Node: Re-write rules in a file100871
Ref: #re-write-rules-in-a-file100665 Ref: #re-write-rules-in-a-file101005
Node: Diff output format101875 Node: Diff output format102215
Ref: #diff-output-format102044 Ref: #diff-output-format102384
Node: rewrite vs print --auto103136 Node: rewrite vs print --auto103476
Ref: #rewrite-vs.-print---auto103315 Ref: #rewrite-vs.-print---auto103655
Node: roi103871 Node: roi104211
Ref: #roi103969 Ref: #roi104309
Node: stats104981 Node: stats105333
Ref: #stats105080 Ref: #stats105432
Node: tags105868 Node: tags106232
Ref: #tags105966 Ref: #tags106330
Node: test106260 Node: test106636
Ref: #test106344 Ref: #test106720
Node: ADD-ON COMMANDS107091 Node: ADD-ON COMMANDS107479
Ref: #add-on-commands107201 Ref: #add-on-commands107589
Node: Official add-ons108489 Node: Official add-ons108877
Ref: #official-add-ons108629 Ref: #official-add-ons109017
Node: ui108709 Node: ui109097
Ref: #ui108796 Ref: #ui109184
Node: web108850 Node: web109238
Ref: #web108939 Ref: #web109327
Node: Third party add-ons108985 Node: Third party add-ons109373
Ref: #third-party-add-ons109160 Ref: #third-party-add-ons109548
Ref: #diff-1109319 Node: iadd109667
Node: iadd109418 Ref: #iadd109768
Ref: #iadd109528 Node: interest109850
Node: interest109610 Ref: #interest109959
Ref: #interest109731 Node: Experimental add-ons110054
Node: irr109826 Ref: #experimental-add-ons110206
Ref: #irr109924 Node: autosync110444
Node: Experimental add-ons110055 Ref: #autosync110555
Ref: #experimental-add-ons110207 Node: chart110794
Node: autosync110455 Ref: #chart110899
Ref: #autosync110566
Node: chart110805
Ref: #chart110924
Node: check110995
Ref: #check111097
 
End Tag Table End Tag Table

Local Variables:
coding: utf-8
End:

File diff suppressed because it is too large Load Diff