;doc: regen help/manuals

[ci skip]
This commit is contained in:
Simon Michael 2020-02-22 11:33:50 -08:00
parent b9b5702946
commit 696ec4998b
18 changed files with 1246 additions and 1168 deletions

View File

@ -156,7 +156,7 @@ fields date, description, amount-out, amount-in, balance
# We generate balance assertions by assigning to \[dq]balance\[dq]
# above, but you may sometimes need to remove these because:
#
# - the CSV balance differs from the true balance,
# - the CSV balance differs from the true balance,
# by up to 0.0000000000005 in my experience
#
# - it is sometimes calculated based on non-chronological ordering,
@ -237,7 +237,7 @@ amount2 %amzamount
# add a third posting for fees, but only if they are non-zero.
# Commas in the data makes counting fields hard, so count from the right instead.
# (Regex translation: \[dq]a field containing a non-zero dollar amount,
# (Regex translation: \[dq]a field containing a non-zero dollar amount,
# immediately before the 1 right-most fields\[dq])
if ,\[rs]$[1-9][.0-9]+(,[\[ha],]*){1}$
account3 expenses:fees
@ -298,11 +298,11 @@ date-format %-m/%-d/%Y
if
In Progress
Temporary Hold
Update to
Update to
skip
# add more fields to the description
description %description_ %itemtitle
description %description_ %itemtitle
# save some other fields as tags
comment itemid:%itemid, fromemail:%fromemail, toemail:%toemail, time:%time, type:%type, status:%status_
@ -350,9 +350,9 @@ include common.rules
# apply some overrides specific to this csv
# Transfers from/to bank. These are usually marked Pending,
# Transfers from/to bank. These are usually marked Pending,
# which can be disregarded in this case.
if
if
Bank Account
Bank Deposit to PP Account
description %type for %referencetxnid %itemtitle

View File

@ -118,7 +118,7 @@ fields date, description, amount-out, amount-in, balance
# We generate balance assertions by assigning to "balance"
# above, but you may sometimes need to remove these because:
#
# - the CSV balance differs from the true balance,
# - the CSV balance differs from the true balance,
# by up to 0.0000000000005 in my experience
#
# - it is sometimes calculated based on non-chronological ordering,
@ -191,7 +191,7 @@ amount2 %amzamount
# add a third posting for fees, but only if they are non-zero.
# Commas in the data makes counting fields hard, so count from the right instead.
# (Regex translation: "a field containing a non-zero dollar amount,
# (Regex translation: "a field containing a non-zero dollar amount,
# immediately before the 1 right-most fields")
if ,\$[1-9][.0-9]+(,[^,]*){1}$
account3 expenses:fees
@ -245,11 +245,11 @@ date-format %-m/%-d/%Y
if
In Progress
Temporary Hold
Update to
Update to
skip
# add more fields to the description
description %description_ %itemtitle
description %description_ %itemtitle
# save some other fields as tags
comment itemid:%itemid, fromemail:%fromemail, toemail:%toemail, time:%time, type:%type, status:%status_
@ -297,9 +297,9 @@ include common.rules
# apply some overrides specific to this csv
# Transfers from/to bank. These are usually marked Pending,
# Transfers from/to bank. These are usually marked Pending,
# which can be disregarded in this case.
if
if
Bank Account
Bank Deposit to PP Account
description %type for %referencetxnid %itemtitle
@ -974,58 +974,58 @@ Node: Basic2413
Ref: #basic2513
Node: Bank of Ireland3055
Ref: #bank-of-ireland3190
Node: Amazon4653
Ref: #amazon4771
Node: Paypal6704
Ref: #paypal6798
Node: CSV RULES14681
Ref: #csv-rules14790
Node: skip15066
Ref: #skip15159
Node: fields15534
Ref: #fields15656
Node: Transaction field names16821
Ref: #transaction-field-names16981
Node: Posting field names17092
Ref: #posting-field-names17244
Node: field assignment18535
Ref: #field-assignment18678
Node: separator19496
Ref: #separator19625
Node: if20036
Ref: #if20138
Node: end21854
Ref: #end21960
Node: date-format22184
Ref: #date-format22316
Node: newest-first23065
Ref: #newest-first23203
Node: include23886
Ref: #include24015
Node: balance-type24459
Ref: #balance-type24579
Node: TIPS25279
Ref: #tips25361
Node: Rapid feedback25617
Ref: #rapid-feedback25734
Node: Valid CSV26194
Ref: #valid-csv26324
Node: File Extension26516
Ref: #file-extension26668
Node: Reading multiple CSV files27078
Ref: #reading-multiple-csv-files27263
Node: Valid transactions27504
Ref: #valid-transactions27682
Node: Deduplicating importing28310
Ref: #deduplicating-importing28489
Node: Setting amounts29522
Ref: #setting-amounts29691
Node: Setting currency/commodity30677
Ref: #setting-currencycommodity30869
Node: Referencing other fields31672
Ref: #referencing-other-fields31872
Node: How CSV rules are evaluated32769
Ref: #how-csv-rules-are-evaluated32942
Node: Amazon4652
Ref: #amazon4770
Node: Paypal6702
Ref: #paypal6796
Node: CSV RULES14675
Ref: #csv-rules14784
Node: skip15060
Ref: #skip15153
Node: fields15528
Ref: #fields15650
Node: Transaction field names16815
Ref: #transaction-field-names16975
Node: Posting field names17086
Ref: #posting-field-names17238
Node: field assignment18529
Ref: #field-assignment18672
Node: separator19490
Ref: #separator19619
Node: if20030
Ref: #if20132
Node: end21848
Ref: #end21954
Node: date-format22178
Ref: #date-format22310
Node: newest-first23059
Ref: #newest-first23197
Node: include23880
Ref: #include24009
Node: balance-type24453
Ref: #balance-type24573
Node: TIPS25273
Ref: #tips25355
Node: Rapid feedback25611
Ref: #rapid-feedback25728
Node: Valid CSV26188
Ref: #valid-csv26318
Node: File Extension26510
Ref: #file-extension26662
Node: Reading multiple CSV files27072
Ref: #reading-multiple-csv-files27257
Node: Valid transactions27498
Ref: #valid-transactions27676
Node: Deduplicating importing28304
Ref: #deduplicating-importing28483
Node: Setting amounts29516
Ref: #setting-amounts29685
Node: Setting currency/commodity30671
Ref: #setting-currencycommodity30863
Node: Referencing other fields31666
Ref: #referencing-other-fields31866
Node: How CSV rules are evaluated32763
Ref: #how-csv-rules-are-evaluated32936

End Tag Table

View File

@ -443,7 +443,7 @@ Eg:
assets:cash $-10 ; <- these balance
expenses:food $7 ; <-
expenses:food $3 ; <-
[assets:checking:budget:food] $-10 ; <- and these balance
[assets:checking:budget:food] $-10 ; <- and these balance
[assets:checking:available] $10 ; <-
(something:else) $5 ; <- not required to balance
\f[R]
@ -573,15 +573,15 @@ commodity INR 9,99,99,999.00
commodity 1 000 000.9455
\f[R]
.fi
.SS Amount display format
.SS Amount display style
.PP
For each commodity, hledger chooses a consistent format to use when
displaying amounts.
(Except price amounts, which are always displayed as written).
The display format is chosen as follows:
The display style is chosen as follows:
.IP \[bu] 2
If there is a commodity directive for the commodity, that format is used
(see examples above).
If there is a commodity directive (or default commodity directive) for
the commodity, that format is used (see examples above).
.IP \[bu] 2
Otherwise the format of the first posting amount in that commodity seen
in the journal is used.
@ -591,13 +591,16 @@ maximum from all posting amounts in that commmodity.
Or if there are no such amounts in the journal, a default format is used
(like \f[C]$1000.00\f[R]).
.PP
Price amounts, and amounts in \f[C]D\f[R] directives don\[aq]t affect
the amount display format directly, but occasionally they can do so
indirectly.
(Eg when D\[aq]s default commodity is applied to a commodity-less
amount, or when an amountless posting is balanced using a price\[aq]s
commodity, or when -V is used.) If you find this causing problems, use a
commodity directive to set the display format.
Transaction prices don\[aq]t affect the amount display style directly,
but occasionally they can do so indirectly (eg when an posting\[aq]s
amount is inferred using a transaction price).
If you find this causing problems, use a commodity directive to fix the
display style.
.PP
In summary: amounts will be displayed much as they appear in your
journal, with the max observed number of decimal places.
If you want to see fewer decimal places in reports, use a commodity
directive to override that.
.SS Transaction prices
.PP
Within a transaction, you can note an amount\[aq]s price in another
@ -753,9 +756,6 @@ Use include or concatenate the files instead.
The asserted balance must be a simple single-commodity amount, and in
fact the assertion checks only this commodity\[aq]s balance within the
(possibly multi-commodity) account balance.
.PD 0
.P
.PD
This is how assertions work in Ledger also.
We could call this a \[dq]partial\[dq] balance assertion.
.PP
@ -861,7 +861,7 @@ balances:
.IP
.nf
\f[C]
; starting a new journal, set asset account balances
; starting a new journal, set asset account balances
2016/1/1 opening balances
assets:checking = $409.32
assets:savings = $735.24
@ -1130,12 +1130,13 @@ The \f[C]commodity\f[R] directive has several functions:
It declares commodities which may be used in the journal.
This is currently not enforced, but can serve as documentation.
.IP "2." 3
It declares what decimal mark character to expect when parsing input -
useful to disambiguate international number formats in your data.
It declares what decimal mark character (period or comma) to expect when
parsing input - useful to disambiguate international number formats in
your data.
(Without this, hledger will parse both \f[C]1,000\f[R] and
\f[C]1.000\f[R] as 1).
.IP "3." 3
It declares the amount display format to use in output - decimal and
It declares the amount display style to use in output - decimal and
digit group marks, number of decimal places, symbol placement etc.
.PP
You are likely to run into one of the problems solved by commodity
@ -1180,26 +1181,34 @@ The number must include a decimal mark: either a period or a comma,
followed by 0 or more decimal digits.
.SS Default commodity
.PP
The \f[C]D\f[R] directive sets a default commodity (and display format),
to be used for amounts without a commodity symbol (ie, plain numbers).
(Note this differs from Ledger\[aq]s default commodity directive.) The
commodity and display format will be applied to all subsequent
commodity-less amounts, or until the next \f[C]D\f[R] directive.
The \f[C]D\f[R] directive sets a default commodity, to be used for
amounts without a commodity symbol (ie, plain numbers).
This commodity will be applied to all subsequent commodity-less amounts,
or until the next \f[C]D\f[R] directive.
(Note, this is different from Ledger\[aq]s \f[C]D\f[R].)
.PP
For compatibility/historical reasons, \f[C]D\f[R] also acts like a
\f[C]commodity\f[R] directive, setting the commodity\[aq]s display style
(for output) and decimal mark (for parsing input).
As with \f[C]commodity\f[R], the amount must always be written with a
decimal mark (period or comma).
If both directives are used, \f[C]commodity\f[R]\[aq]s style takes
precedence.
.PP
The syntax is \f[C]D AMOUNT\f[R].
Eg:
.IP
.nf
\f[C]
; commodity-less amounts should be treated as dollars
; (and displayed with symbol on the left, thousands separators and two decimal places)
; (and displayed with the dollar sign on the left, thousands separators and two decimal places)
D $1,000.00
1/1
a 5 ; <- commodity-less amount, becomes $1
a 5 ; <- commodity-less amount, parsed as $5 and displayed as $5.00
b
\f[R]
.fi
.PP
As with the \f[C]commodity\f[R] directive, the amount must always be
written with a decimal point.
.SS Market prices
.PP
The \f[C]P\f[R] directive declares a market price, which is an exchange
@ -1331,7 +1340,7 @@ account assets ; type:Asset
account liabilities ; type:Liability
account equity ; type:Equity
account revenues ; type:Revenue
account expenses ; type:Expenses
account expenses ; type:Expense
\f[R]
.fi
.SS Account types declared with account type codes
@ -1360,8 +1369,8 @@ Eg:
; make \[dq]liabilities\[dq] not have the liability type - who knows why
account liabilities ; type:E
; we need to ensure some other account has the liability type,
; otherwise balancesheet would still show \[dq]liabilities\[dq] under Liabilities
; we need to ensure some other account has the liability type,
; otherwise balancesheet would still show \[dq]liabilities\[dq] under Liabilities
account - ; type:L
\f[R]
.fi
@ -1767,8 +1776,8 @@ And each \[dq]posting\[dq] is actually a posting-generating rule:
.nf
\f[C]
= QUERY
ACCT AMT
ACCT [AMT]
ACCOUNT AMOUNT
ACCOUNT [AMOUNT]
...
\f[R]
.fi
@ -1799,7 +1808,7 @@ Eg, note the quotes around the second query term below:
.nf
\f[C]
= expenses:groceries \[aq]expenses:dining out\[aq]
(budget:funds:dining out) *-1
(budget:funds:dining out) *-1
\f[R]
.fi
.PP

View File

@ -406,7 +406,7 @@ zero (separately from other postings). Eg:
assets:cash $-10 ; <- these balance
expenses:food $7 ; <-
expenses:food $3 ; <-
[assets:checking:budget:food] $-10 ; <- and these balance
[assets:checking:budget:food] $-10 ; <- and these balance
[assets:checking:available] $10 ; <-
(something:else) $5 ; <- not required to balance
@ -479,10 +479,10 @@ comma:
* Menu:
* Digit group marks::
* Amount display format::
* Amount display style::

File: hledger_journal.info, Node: Digit group marks, Next: Amount display format, Up: Amounts
File: hledger_journal.info, Node: Digit group marks, Next: Amount display style, Up: Amounts
1.8.1 Digit group marks
-----------------------
@ -515,17 +515,17 @@ commodity INR 9,99,99,999.00
commodity 1 000 000.9455

File: hledger_journal.info, Node: Amount display format, Prev: Digit group marks, Up: Amounts
File: hledger_journal.info, Node: Amount display style, Prev: Digit group marks, Up: Amounts
1.8.2 Amount display format
---------------------------
1.8.2 Amount display style
--------------------------
For each commodity, hledger chooses a consistent format to use when
displaying amounts. (Except price amounts, which are always displayed
as written). The display format is chosen as follows:
as written). The display style is chosen as follows:
* If there is a commodity directive for the commodity, that format is
used (see examples above).
* If there is a commodity directive (or default commodity directive)
for the commodity, that format is used (see examples above).
* Otherwise the format of the first posting amount in that commodity
seen in the journal is used. But the number of decimal places
@ -535,12 +535,15 @@ as written). The display format is chosen as follows:
* Or if there are no such amounts in the journal, a default format is
used (like '$1000.00').
Price amounts, and amounts in 'D' directives don't affect the amount
display format directly, but occasionally they can do so indirectly.
(Eg when D's default commodity is applied to a commodity-less amount, or
when an amountless posting is balanced using a price's commodity, or
when -V is used.) If you find this causing problems, use a commodity
directive to set the display format.
Transaction prices don't affect the amount display style directly,
but occasionally they can do so indirectly (eg when an posting's amount
is inferred using a transaction price). If you find this causing
problems, use a commodity directive to fix the display style.
In summary: amounts will be displayed much as they appear in your
journal, with the max observed number of decimal places. If you want to
see fewer decimal places in reports, use a commodity directive to
override that.

File: hledger_journal.info, Node: Transaction prices, Next: Balance Assertions, Prev: Amounts, Up: Transactions
@ -691,9 +694,8 @@ File: hledger_journal.info, Node: Assertions and commodities, Next: Assertions
The asserted balance must be a simple single-commodity amount, and in
fact the assertion checks only this commodity's balance within the
(possibly multi-commodity) account balance.
This is how assertions work in Ledger also. We could call this a
"partial" balance assertion.
(possibly multi-commodity) account balance. This is how assertions work
in Ledger also. We could call this a "partial" balance assertion.
To assert the balance of more than one commodity in an account, you
can write multiple postings, each asserting one commodity's balance.
@ -800,7 +802,7 @@ equals sign; instead it is calculated automatically so as to satisfy the
assertion. This can be a convenience during data entry, eg when setting
opening balances:
; starting a new journal, set asset account balances
; starting a new journal, set asset account balances
2016/1/1 opening balances
assets:checking = $409.32
assets:savings = $735.24
@ -1011,14 +1013,13 @@ The 'commodity' directive has several functions:
1. It declares commodities which may be used in the journal. This is
currently not enforced, but can serve as documentation.
2. It declares what decimal mark character to expect when parsing
input - useful to disambiguate international number formats in your
data. (Without this, hledger will parse both '1,000' and '1.000'
as 1).
2. It declares what decimal mark character (period or comma) to expect
when parsing input - useful to disambiguate international number
formats in your data. (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 digit group marks, number of decimal places, symbol placement
etc.
3. It declares the amount display style to use in output - decimal and
digit group marks, number of decimal places, symbol placement etc.
You are likely to run into one of the problems solved by commodity
directives, sooner or later, so it's a good idea to just always use them
@ -1057,23 +1058,27 @@ File: hledger_journal.info, Node: Default commodity, Next: Market prices, Pre
1.12.5 Default commodity
------------------------
The 'D' directive sets a default commodity (and display format), to be
used for amounts without a commodity symbol (ie, plain numbers). (Note
this differs from Ledger's default commodity directive.) The commodity
and display format will be applied to all subsequent commodity-less
amounts, or until the next 'D' directive.
The 'D' directive sets a default commodity, to be used for amounts
without a commodity symbol (ie, plain numbers). This commodity will be
applied to all subsequent commodity-less amounts, or until the next 'D'
directive. (Note, this is different from Ledger's 'D'.)
For compatibility/historical reasons, 'D' also acts like a
'commodity' directive, setting the commodity's display style (for
output) and decimal mark (for parsing input). As with 'commodity', the
amount must always be written with a decimal mark (period or comma). If
both directives are used, 'commodity''s style takes precedence.
The syntax is 'D AMOUNT'. Eg:
; commodity-less amounts should be treated as dollars
; (and displayed with symbol on the left, thousands separators and two decimal places)
; (and displayed with the dollar sign on the left, thousands separators and two decimal places)
D $1,000.00
1/1
a 5 ; <- commodity-less amount, becomes $1
a 5 ; <- commodity-less amount, parsed as $5 and displayed as $5.00
b
As with the 'commodity' directive, the amount must always be written
with a decimal point.

File: hledger_journal.info, Node: Market prices, Next: Declaring accounts, Prev: Default commodity, Up: Directives
@ -1197,7 +1202,7 @@ account assets ; type:Asset
account liabilities ; type:Liability
account equity ; type:Equity
account revenues ; type:Revenue
account expenses ; type:Expenses
account expenses ; type:Expense
Account types declared with account type codes Or, you can write one
of those letters separated from the account name by two or more spaces,
@ -1216,8 +1221,8 @@ need to help the reports a bit. Eg:
; make "liabilities" not have the liability type - who knows why
account liabilities ; type:E
; we need to ensure some other account has the liability type,
; otherwise balancesheet would still show "liabilities" under Liabilities
; we need to ensure some other account has the liability type,
; otherwise balancesheet would still show "liabilities" under Liabilities
account - ; type:L

@ -1612,8 +1617,8 @@ certain postings (mnemonic: '=' suggests matching). And each "posting"
is actually a posting-generating rule:
= QUERY
ACCT AMT
ACCT [AMT]
ACCOUNT AMOUNT
ACCOUNT [AMOUNT]
...
These posting-generating rules look like normal postings, except the
@ -1635,7 +1640,7 @@ quotes, as on the command line. Eg, note the quotes around the second
query term below:
= expenses:groceries 'expenses:dining out'
(budget:funds:dining out) *-1
(budget:funds:dining out) *-1
These rules have global effect - a rule appearing anywhere in your
data can potentially affect any transaction, including transactions
@ -1754,92 +1759,92 @@ Node: Postings12506
Ref: #postings12634
Node: Virtual Postings13660
Ref: #virtual-postings13777
Node: Account names15083
Ref: #account-names15224
Node: Amounts15711
Ref: #amounts15850
Node: Digit group marks16783
Ref: #digit-group-marks16932
Node: Amount display format17870
Ref: #amount-display-format18027
Node: Transaction prices19052
Ref: #transaction-prices19218
Node: Balance Assertions21484
Ref: #balance-assertions21664
Node: Assertions and ordering22697
Ref: #assertions-and-ordering22885
Node: Assertions and included files23585
Ref: #assertions-and-included-files23828
Node: Assertions and multiple -f options24161
Ref: #assertions-and-multiple--f-options24417
Node: Assertions and commodities24549
Ref: #assertions-and-commodities24781
Node: Assertions and prices25937
Ref: #assertions-and-prices26151
Node: Assertions and subaccounts26591
Ref: #assertions-and-subaccounts26820
Node: Assertions and virtual postings27144
Ref: #assertions-and-virtual-postings27386
Node: Assertions and precision27528
Ref: #assertions-and-precision27721
Node: Balance Assignments27988
Ref: #balance-assignments28162
Node: Balance assignments and prices29327
Ref: #balance-assignments-and-prices29499
Node: Directives29723
Ref: #directives29882
Node: Comment blocks35530
Ref: #comment-blocks35675
Node: Including other files35851
Ref: #including-other-files36031
Node: Default year36439
Ref: #default-year36608
Node: Declaring commodities37015
Ref: #declaring-commodities37198
Node: Default commodity38859
Ref: #default-commodity39035
Node: Market prices39669
Ref: #market-prices39834
Node: Declaring accounts40675
Ref: #declaring-accounts40851
Node: Account comments41776
Ref: #account-comments41939
Node: Account subdirectives42363
Ref: #account-subdirectives42558
Node: Account types42871
Ref: #account-types43055
Node: Account display order44697
Ref: #account-display-order44867
Node: Rewriting accounts46018
Ref: #rewriting-accounts46203
Node: Basic aliases46929
Ref: #basic-aliases47075
Node: Regex aliases47779
Ref: #regex-aliases47951
Node: Combining aliases48669
Ref: #combining-aliases48847
Node: end aliases50123
Ref: #end-aliases50271
Node: Default parent account50372
Ref: #default-parent-account50538
Node: Periodic transactions51422
Ref: #periodic-transactions51621
Node: Periodic rule syntax53493
Ref: #periodic-rule-syntax53699
Node: Two spaces between period expression and description!54403
Ref: #two-spaces-between-period-expression-and-description54722
Node: Forecasting with periodic transactions55406
Ref: #forecasting-with-periodic-transactions55711
Node: Budgeting with periodic transactions57737
Ref: #budgeting-with-periodic-transactions57976
Node: Auto postings / transaction modifiers58425
Ref: #auto-postings-transaction-modifiers58637
Node: Auto postings and dates61122
Ref: #auto-postings-and-dates61379
Node: Auto postings and transaction balancing / inferred amounts / balance assertions61554
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions61929
Node: Auto posting tags62307
Ref: #auto-posting-tags62546
Node: Account names15082
Ref: #account-names15223
Node: Amounts15710
Ref: #amounts15849
Node: Digit group marks16781
Ref: #digit-group-marks16929
Node: Amount display style17867
Ref: #amount-display-style18021
Node: Transaction prices19182
Ref: #transaction-prices19348
Node: Balance Assertions21614
Ref: #balance-assertions21794
Node: Assertions and ordering22827
Ref: #assertions-and-ordering23015
Node: Assertions and included files23715
Ref: #assertions-and-included-files23958
Node: Assertions and multiple -f options24291
Ref: #assertions-and-multiple--f-options24547
Node: Assertions and commodities24679
Ref: #assertions-and-commodities24911
Node: Assertions and prices26068
Ref: #assertions-and-prices26282
Node: Assertions and subaccounts26722
Ref: #assertions-and-subaccounts26951
Node: Assertions and virtual postings27275
Ref: #assertions-and-virtual-postings27517
Node: Assertions and precision27659
Ref: #assertions-and-precision27852
Node: Balance Assignments28119
Ref: #balance-assignments28293
Node: Balance assignments and prices29457
Ref: #balance-assignments-and-prices29629
Node: Directives29853
Ref: #directives30012
Node: Comment blocks35660
Ref: #comment-blocks35805
Node: Including other files35981
Ref: #including-other-files36161
Node: Default year36569
Ref: #default-year36738
Node: Declaring commodities37145
Ref: #declaring-commodities37328
Node: Default commodity39001
Ref: #default-commodity39177
Node: Market prices40066
Ref: #market-prices40231
Node: Declaring accounts41072
Ref: #declaring-accounts41248
Node: Account comments42173
Ref: #account-comments42336
Node: Account subdirectives42760
Ref: #account-subdirectives42955
Node: Account types43268
Ref: #account-types43452
Node: Account display order45091
Ref: #account-display-order45261
Node: Rewriting accounts46412
Ref: #rewriting-accounts46597
Node: Basic aliases47323
Ref: #basic-aliases47469
Node: Regex aliases48173
Ref: #regex-aliases48345
Node: Combining aliases49063
Ref: #combining-aliases49241
Node: end aliases50517
Ref: #end-aliases50665
Node: Default parent account50766
Ref: #default-parent-account50932
Node: Periodic transactions51816
Ref: #periodic-transactions52015
Node: Periodic rule syntax53887
Ref: #periodic-rule-syntax54093
Node: Two spaces between period expression and description!54797
Ref: #two-spaces-between-period-expression-and-description55116
Node: Forecasting with periodic transactions55800
Ref: #forecasting-with-periodic-transactions56105
Node: Budgeting with periodic transactions58131
Ref: #budgeting-with-periodic-transactions58370
Node: Auto postings / transaction modifiers58819
Ref: #auto-postings-transaction-modifiers59031
Node: Auto postings and dates61527
Ref: #auto-postings-and-dates61784
Node: Auto postings and transaction balancing / inferred amounts / balance assertions61959
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions62334
Node: Auto posting tags62712
Ref: #auto-posting-tags62951

End Tag Table

View File

@ -403,13 +403,13 @@ FILE FORMAT
commodity INR 9,99,99,999.00
commodity 1 000 000.9455
Amount display format
Amount display style
For each commodity, hledger chooses a consistent format to use when
displaying amounts. (Except price amounts, which are always displayed
as written). The display format is chosen as follows:
as written). The display style is chosen as follows:
o If there is a commodity directive for the commodity, that format is
used (see examples above).
o If there is a commodity directive (or default commodity directive)
for the commodity, that format is used (see examples above).
o Otherwise the format of the first posting amount in that commodity
seen in the journal is used. But the number of decimal places ("pre-
@ -419,18 +419,21 @@ FILE FORMAT
o Or if there are no such amounts in the journal, a default format is
used (like $1000.00).
Price amounts, and amounts in D directives don't affect the amount dis-
play format directly, but occasionally they can do so indirectly. (Eg
when D's default commodity is applied to a commodity-less amount, or
when an amountless posting is balanced using a price's commodity, or
when -V is used.) If you find this causing problems, use a commodity
directive to set the display format.
Transaction prices don't affect the amount display style directly, but
occasionally they can do so indirectly (eg when an posting's amount is
inferred using a transaction price). If you find this causing prob-
lems, use a commodity directive to fix the display style.
In summary: amounts will be displayed much as they appear in your jour-
nal, with the max observed number of decimal places. If you want to
see fewer decimal places in reports, use a commodity directive to over-
ride that.
Transaction prices
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
price (in a sale). For example, transaction prices are useful to
record purchases of a foreign currency. Note transaction prices are
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
record purchases of a foreign currency. Note transaction prices are
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-
tain date.
@ -459,7 +462,7 @@ FILE FORMAT
(Ledger users: Ledger uses a different syntax for fixed prices, {=UNIT-
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).
Eg here is how -B affects the balance report for the example above:
@ -470,8 +473,8 @@ FILE FORMAT
$-135 assets:dollars
$135 assets:euros # <- the euros' cost
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
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
amount. So if example 3's postings are reversed, while the transaction
is equivalent, -B shows something different:
@ -484,9 +487,9 @@ FILE FORMAT
EUR100 assets:euros
Balance Assertions
hledger supports Ledger-style balance assertions in journal files.
These look like, for example, = EXPECTEDBALANCE following a posting's
amount. Eg here we assert the expected dollar balance in accounts a
hledger supports Ledger-style balance assertions in journal files.
These look like, for example, = EXPECTEDBALANCE following a posting's
amount. Eg here we assert the expected dollar balance in accounts a
and b after each posting:
2013/1/1
@ -498,32 +501,32 @@ FILE FORMAT
b $-1 =$-2
After reading a journal file, hledger will check all balance assertions
and report an error if any of them fail. Balance assertions can pro-
tect you from, eg, inadvertently disrupting reconciled balances while
cleaning up old entries. You can disable them temporarily with the
and report an error if any of them fail. Balance assertions can pro-
tect you from, eg, inadvertently disrupting reconciled balances while
cleaning up old entries. You can disable them temporarily with the
-I/--ignore-assertions flag, which can be useful for troubleshooting or
for reading Ledger files. (Note: this flag currently does not disable
for reading Ledger files. (Note: this flag currently does not disable
balance assignments, below).
Assertions and ordering
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-
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-
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.)
So, hledger balance assertions keep working if you reorder differently-
dated transactions within the journal. But if you reorder same-dated
transactions or postings, assertions might break and require updating.
dated transactions within the journal. But if you reorder same-dated
transactions or postings, assertions might break and require updating.
This order dependence does bring an advantage: precise control over the
order of postings and assertions within a day, so you can assert intra-
day balances.
Assertions and included files
With included files, things are a little more complicated. Including
preserves the ordering of postings and assertions. If you have multi-
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
With included files, things are a little more complicated. Including
preserves the ordering of postings and assertions. If you have multi-
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
day, you'll have to put the assertion in the right file.
Assertions and multiple -f options
@ -531,16 +534,15 @@ FILE FORMAT
-f options. Use include or concatenate the files instead.
Assertions and commodities
The asserted balance must be a simple single-commodity amount, and in
fact the assertion checks only this commodity's balance within the
(possibly multi-commodity) account balance.
This is how assertions work in Ledger also. We could call this a "par-
tial" balance assertion.
The asserted balance must be a simple single-commodity amount, and in
fact the assertion checks only this commodity's balance within the
(possibly multi-commodity) account balance. This is how assertions
work in Ledger also. We could call this a "partial" balance assertion.
To assert the balance of more than one commodity in an account, you can
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
unasserted commodities in the account (or, that their balance is 0).
@ -560,7 +562,7 @@ FILE FORMAT
a 0 == $1
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:
2013/1/1
@ -574,21 +576,21 @@ FILE FORMAT
a:euro 0 == 1EUR
Assertions and prices
Balance assertions ignore transaction prices, and should normally be
Balance assertions ignore transaction prices, and should normally be
written without one:
2019/1/1
(a) $1 @ EUR1 = $1
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.
This is for backward compatibility (hledger's close command used to
generate balance assertions with prices), and because balance assign-
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.
This is for backward compatibility (hledger's close command used to
generate balance assertions with prices), and because balance assign-
ments do use them (see below).
Assertions and subaccounts
The balance assertions above (= and ==) do not count the balance from
subaccounts; they check the account's exclusive balance only. You can
The balance assertions above (= and ==) do not count the balance from
subaccounts; they check the account's exclusive balance only. You can
assert the balance including subaccounts by writing =* or ==*, eg:
2019/1/1
@ -602,16 +604,16 @@ FILE FORMAT
tual. They are not affected by the --real/-R flag or real: query.
Assertions and precision
Balance assertions compare the exactly calculated amounts, which are
not always what is shown by reports. Eg a commodity directive may
limit the display precision, but this will not affect balance asser-
Balance assertions compare the exactly calculated amounts, which are
not always what is shown by reports. Eg a commodity directive may
limit the display precision, but this will not affect balance asser-
tions. Balance assertion failure messages show exact amounts.
Balance Assignments
Ledger-style balance assignments are also supported. These are like
balance assertions, but with no posting amount on the left side of the
equals sign; instead it is calculated automatically so as to satisfy
the assertion. This can be a convenience during data entry, eg when
Ledger-style balance assignments are also supported. These are like
balance assertions, but with no posting amount on the left side of the
equals sign; instead it is calculated automatically so as to satisfy
the assertion. This can be a convenience during data entry, eg when
setting opening balances:
; starting a new journal, set asset account balances
@ -629,14 +631,14 @@ FILE FORMAT
expenses:misc
The calculated amount depends on the account's balance in the commodity
at that point (which depends on the previously-dated postings of the
commodity to that account since the last balance assertion or assign-
at that point (which depends on the previously-dated postings of the
commodity to that account since the last balance assertion or assign-
ment). Note that using balance assignments makes your journal a little
less explicit; to know the exact amount posted, you have to run hledger
or do the calculations yourself, instead of just reading it.
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:
2019/1/1
@ -647,79 +649,82 @@ FILE FORMAT
(a) $1 @ EUR2 = $1 @ EUR2
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
based on a subset of Ledger's, but there are many differences (and also
some differences between hledger versions).
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.
direc- end di- subdi- purpose can affect (as of
direc- end di- subdi- purpose can affect (as of
tive rective rec- 2018/06)
tives
------------------------------------------------------------------------------------
account any document account names, de- all entries in all
text clare account types & dis- files, before or
account any document account names, de- all entries in all
text clare account types & dis- files, before or
play order after
alias end rewrite account names following in-
aliases line/included en-
tries until end of
tries until end of
current file or end
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-
tries until end of
tries until end of
current file or end
directive
comment end com- ignore part of journal following in-
ment line/included en-
tries until end of
tries until end of
current file or end
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
style in that commodity
in all files; dis-
in all files; dis-
play style: amounts
of that commodity
in reports
D declare a commodity to be default commodity:
D declare a commodity to be default commodity:
used for commodityless following commod-
amounts, and its number no- ityless entries un-
tation & display style til end of current
file; number nota-
amounts, and its number no- ityless entries un-
tation & display style til end of current
file; number nota-
tion: following en-
tries in that com-
tries in that com-
modity until end of
current file; dis-
current file; dis-
play style: amounts
of that commodity
in reports
include include entries/directives what the included
from another file directives affect
P declare a market price for a amounts of that
commodity commodity in re-
ports, when -V is
commodity commodity in re-
ports, when -V is
used
Y declare a year for yearless following in-
Y declare a year for yearless following in-
dates line/included en-
tries until end of
tries until end of
current file
And some definitions:
subdi- optional indented directive line immediately following a parent
subdi- optional indented directive line immediately following a parent
rec- directive
tive
number how to interpret numbers when parsing journal entries (the iden-
nota- tity of the decimal separator character). (Currently each com-
nota- tity of the decimal separator character). (Currently each com-
tion modity can have its own notation, even in the same file.)
dis- how to display amounts of a commodity in reports (symbol side
dis- how to display amounts of a commodity in reports (symbol side
play and spacing, digit groups, decimal separator, decimal places)
style
direc- which entries and (when there are multiple files) which files
direc- which entries and (when there are multiple files) which files
tive are affected by a directive
scope
@ -727,34 +732,34 @@ FILE FORMAT
affect, and whether they are focussed on input (parsing) or output (re-
ports). Some directives have multiple effects.
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
typically last only until the end of their defining file. This pro-
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
typically last only until the end of their defining file. This pro-
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.
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)
ends it. See also comments.
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:
include path/to/file.journal
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.
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.
*).
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.
Default year
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.
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.
Eg:
Y2009 ; set default year to 2009
@ -776,14 +781,15 @@ FILE FORMAT
Declaring commodities
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.
2. It declares what decimal mark character to expect when parsing input
- useful to disambiguate international number formats in your data.
(Without this, hledger will parse both 1,000 and 1.000 as 1).
2. It declares what decimal mark character (period or comma) to expect
when parsing input - useful to disambiguate international number
formats in your data. (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 style to use in output - decimal and
digit group marks, number of decimal places, symbol placement etc.
You are likely to run into one of the problems solved by commodity di-
@ -818,23 +824,27 @@ FILE FORMAT
comma, followed by 0 or more decimal digits.
Default commodity
The D directive sets a default commodity (and display format), to be
used for amounts without a commodity symbol (ie, plain numbers). (Note
this differs from Ledger's default commodity directive.) The commodity
and display format will be applied to all subsequent commodity-less
amounts, or until the next D directive.
The D directive sets a default commodity, to be used for amounts with-
out a commodity symbol (ie, plain numbers). This commodity will be ap-
plied to all subsequent commodity-less amounts, or until the next D di-
rective. (Note, this is different from Ledger's D.)
For compatibility/historical reasons, D also acts like a commodity di-
rective, setting the commodity's display style (for output) and decimal
mark (for parsing input). As with commodity, the amount must always be
written with a decimal mark (period or comma). If both directives are
used, commodity's style takes precedence.
The syntax is D AMOUNT. Eg:
; commodity-less amounts should be treated as dollars
; (and displayed with symbol on the left, thousands separators and two decimal places)
; (and displayed with the dollar sign on the left, thousands separators and two decimal places)
D $1,000.00
1/1
a 5 ; <- commodity-less amount, becomes $1
a 5 ; <- commodity-less amount, parsed as $5 and displayed as $5.00
b
As with the commodity directive, the amount must always be written with
a decimal point.
Market prices
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
@ -935,7 +945,7 @@ FILE FORMAT
account liabilities ; type:Liability
account equity ; type:Equity
account revenues ; type:Revenue
account expenses ; type:Expenses
account expenses ; type:Expense
Account types declared with account type codes
Or, you can write one of those letters separated from the account name
@ -1281,8 +1291,8 @@ FILE FORMAT
actually a posting-generating rule:
= QUERY
ACCT AMT
ACCT [AMT]
ACCOUNT AMOUNT
ACCOUNT [AMOUNT]
...
These posting-generating rules look like normal postings, except the

View File

@ -55,7 +55,7 @@ An example:
# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
2016/2/1
inc:client1 .... .... .... .... .... ....
fos:haskell .... ..
fos:haskell .... ..
biz:research .
2016/2/2

View File

@ -46,7 +46,7 @@ example:
# on this day, 6h was spent on client work, 1.5h on haskell FOSS work, etc.
2016/2/1
inc:client1 .... .... .... .... .... ....
fos:haskell .... ..
fos:haskell .... ..
biz:research .
2016/2/2

View File

@ -26,19 +26,17 @@ limited data entry capability.
It is easier than hledger\[aq]s command-line interface, and sometimes
quicker and more convenient than the web interface.
.PP
Note hledger-ui has some different defaults (experimental):
.IP \[bu] 2
it generates rule-based transactions and postings by default (--forecast
and --auto are always on).
.IP \[bu] 2
it hides transactions dated in the future by default (change this with
--future or the F key).
.PP
Like hledger, it reads data from one or more files in hledger journal,
timeclock, timedot, or CSV format specified with \f[C]-f\f[R], or
\f[C]$LEDGER_FILE\f[R], or \f[C]$HOME/.hledger.journal\f[R] (on windows,
perhaps \f[C]C:/Users/USER/.hledger.journal\f[R]).
For more about this see hledger(1), hledger_journal(5) etc.
.PP
Unlike hledger, hledger-ui hides all future-dated transactions by
default.
They can be revealed, along with any rule-generated periodic
transactions, by pressing the F key (or starting with --forecast) to
enable \[dq]forecast mode\[dq].
.SH OPTIONS
.PP
Note: if invoking hledger-ui as a hledger subcommand, write \f[C]--\f[R]
@ -64,9 +62,6 @@ show accounts as a list (default)
.TP
\f[B]\f[CB]-T --tree\f[B]\f[R]
show accounts as a tree
.TP
\f[B]\f[CB]--future\f[B]\f[R]
show transactions dated later than today (normally hidden)
.PP
hledger input options:
.TP
@ -155,8 +150,9 @@ most recent applicable market price, if any)
apply automated posting rules to modify transactions.
.TP
\f[B]\f[CB]--forecast\f[B]\f[R]
apply periodic transaction rules to generate future transactions, to 6
months from now or report end date.
generate future transactions from periodic transaction rules, for the
next 6 months or till report end date.
In hledger-ui, also make ordinary future transactions visible.
.PP
When a reporting option appears more than once in the command line, the
last one takes precedence.
@ -218,12 +214,11 @@ account depth and transaction status (see below).
\f[C]BACKSPACE\f[R] or \f[C]DELETE\f[R] removes all filters, showing all
transactions.
.PP
As mentioned above, hledger-ui shows auto-generated periodic
transactions, and hides future transactions (auto-generated or not) by
default.
\f[C]F\f[R] toggles showing and hiding these future transactions.
This is similar to using a query like \f[C]date:-tomorrow\f[R], but more
convenient.
As mentioned above, by default hledger-ui hides future transactions -
both ordinary transactions recorded in the journal, and periodic
transactions generated by rule.
\f[C]F\f[R] toggles forecast mode, in which future/forecasted
transactions are shown.
(experimental)
.PP
\f[C]ESCAPE\f[R] removes all filters and jumps back to the top screen.
@ -371,9 +366,6 @@ in flat mode but this account has subaccounts which are not shown due to
a depth limit.
In other words, the register always shows the transactions contributing
to the balance shown on the accounts screen.
.PD 0
.P
.PD
Tree mode/flat mode can be toggled with \f[C]T\f[R] here also.
.PP
\f[C]U\f[R] toggles filtering by unmarked status, showing or hiding

View File

@ -22,19 +22,17 @@ limited data entry capability. It is easier than hledger's command-line
interface, and sometimes quicker and more convenient than the web
interface.
Note hledger-ui has some different defaults (experimental):
* it generates rule-based transactions and postings by default
(-forecast and -auto are always on).
* it hides transactions dated in the future by default (change this
with -future or the F key).
Like hledger, it reads data from one or more files in hledger
journal, timeclock, timedot, or CSV format specified with '-f', or
'$LEDGER_FILE', or '$HOME/.hledger.journal' (on windows, perhaps
'C:/Users/USER/.hledger.journal'). For more about this see hledger(1),
hledger_journal(5) etc.
Unlike hledger, hledger-ui hides all future-dated transactions by
default. They can be revealed, along with any rule-generated periodic
transactions, by pressing the F key (or starting with -forecast) to
enable "forecast mode".
* Menu:
* OPTIONS::
@ -75,9 +73,6 @@ the data.
'-T --tree'
show accounts as a tree
'--future'
show transactions dated later than today (normally hidden)
hledger input options:
@ -168,8 +163,9 @@ the data.
apply automated posting rules to modify transactions.
'--forecast'
apply periodic transaction rules to generate future transactions,
to 6 months from now or report end date.
generate future transactions from periodic transaction rules, for
the next 6 months or till report end date. In hledger-ui, also
make ordinary future transactions visible.
When a reporting option appears more than once in the command line,
the last one takes precedence.
@ -229,11 +225,10 @@ some common filters like account depth and transaction status (see
below). 'BACKSPACE' or 'DELETE' removes all filters, showing all
transactions.
As mentioned above, hledger-ui shows auto-generated periodic
transactions, and hides future transactions (auto-generated or not) by
default. 'F' toggles showing and hiding these future transactions.
This is similar to using a query like 'date:-tomorrow', but more
convenient. (experimental)
As mentioned above, by default hledger-ui hides future transactions -
both ordinary transactions recorded in the journal, and periodic
transactions generated by rule. 'F' toggles forecast mode, in which
future/forecasted transactions are shown. (experimental)
'ESCAPE' removes all filters and jumps back to the top screen. Or,
it cancels a minibuffer edit or help dialog in progress.
@ -380,8 +375,8 @@ a check register. Each line represents one transaction and shows:
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 depth
limit. In other words, the register always shows the transactions
contributing to the balance shown on the accounts screen.
Tree mode/flat mode can be toggled with 'T' here also.
contributing to the balance shown on the accounts screen. Tree
mode/flat mode can be toggled with 'T' here also.
'U' toggles filtering by unmarked status, showing or hiding unmarked
transactions. Similarly, 'P' toggles pending transactions, and 'C'
@ -504,26 +499,26 @@ program is restarted.

Tag Table:
Node: Top71
Node: OPTIONS1520
Ref: #options1617
Node: KEYS5053
Ref: #keys5148
Node: SCREENS9455
Ref: #screens9560
Node: Accounts screen9650
Ref: #accounts-screen9778
Node: Register screen11994
Ref: #register-screen12149
Node: Transaction screen14145
Ref: #transaction-screen14303
Node: Error screen15173
Ref: #error-screen15295
Node: ENVIRONMENT15539
Ref: #environment15653
Node: FILES16460
Ref: #files16559
Node: BUGS16772
Ref: #bugs16849
Node: OPTIONS1476
Ref: #options1573
Node: KEYS5004
Ref: #keys5099
Node: SCREENS9375
Ref: #screens9480
Node: Accounts screen9570
Ref: #accounts-screen9698
Node: Register screen11914
Ref: #register-screen12069
Node: Transaction screen14066
Ref: #transaction-screen14224
Node: Error screen15094
Ref: #error-screen15216
Node: ENVIRONMENT15460
Ref: #environment15574
Node: FILES16381
Ref: #files16480
Node: BUGS16693
Ref: #bugs16770

End Tag Table

View File

@ -22,25 +22,22 @@ DESCRIPTION
line interface, and sometimes quicker and more convenient than the web
interface.
Note hledger-ui has some different defaults (experimental):
o it generates rule-based transactions and postings by default (--fore-
cast and --auto are always on).
o it hides transactions dated in the future by default (change this
with --future or the F key).
Like hledger, it reads data from one or more files in hledger journal,
timeclock, timedot, or CSV format specified with -f, or $LEDGER_FILE,
or $HOME/.hledger.journal (on windows, perhaps
C:/Users/USER/.hledger.journal). For more about this see hledger(1),
hledger_journal(5) etc.
Unlike hledger, hledger-ui hides all future-dated transactions by de-
fault. They can be revealed, along with any rule-generated periodic
transactions, by pressing the F key (or starting with --forecast) to
enable "forecast mode".
OPTIONS
Note: if invoking hledger-ui as a hledger subcommand, write -- before
Note: if invoking hledger-ui as a hledger subcommand, write -- 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.
--watch
@ -53,7 +50,7 @@ OPTIONS
start in the (first) matched account's register screen
--change
show period balances (changes) at startup instead of historical
show period balances (changes) at startup instead of historical
balances
-F --flat
@ -62,9 +59,6 @@ OPTIONS
-T --tree
show accounts as a tree
--future
show transactions dated later than today (normally hidden)
hledger input options:
-f FILE --file=FILE
@ -72,7 +66,7 @@ OPTIONS
$LEDGER_FILE or $HOME/.hledger.journal)
--rules-file=RULESFILE
Conversion rules file to use when reading CSV (default:
Conversion rules file to use when reading CSV (default:
FILE.rules)
--separator=CHAR
@ -114,7 +108,7 @@ OPTIONS
multiperiod/multicolumn report by year
-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
--date2
@ -137,22 +131,23 @@ OPTIONS
hide/aggregate accounts or postings more than NUM levels deep
-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)
-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)
-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)
--auto apply automated posting rules to modify transactions.
--forecast
apply periodic transaction rules to generate future transac-
tions, to 6 months from now or report end date.
generate future transactions from periodic transaction rules,
for the next 6 months or till report end date. In hledger-ui,
also make ordinary future transactions visible.
When a reporting option appears more than once in the command line, the
last one takes precedence.
@ -204,105 +199,104 @@ KEYS
common filters like account depth and transaction status (see below).
BACKSPACE or DELETE removes all filters, showing all transactions.
As mentioned above, hledger-ui shows auto-generated periodic transac-
tions, and hides future transactions (auto-generated or not) by de-
fault. F toggles showing and hiding these future transactions. This
is similar to using a query like date:-tomorrow, but more convenient.
(experimental)
As mentioned above, by default hledger-ui hides future transactions -
both ordinary transactions recorded in the journal, and periodic trans-
actions generated by rule. F toggles forecast mode, in which fu-
ture/forecasted transactions are shown. (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.
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).
g reloads from the data file(s) and updates the current screen and any
previous screens. (With large files, this could cause a noticeable
g reloads from the data file(s) and updates the current screen and any
previous screens. (With large files, this could cause a noticeable
pause.)
I toggles balance assertion checking. Disabling balance assertions
I toggles balance assertion checking. Disabling balance assertions
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.
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
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
$PATH.
E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emacsclient -a ""
-nw) on the journal file. With some editors (emacs, vi), the cursor
will be positioned at the current transaction when invoked from the
register and transaction screens, and at the error location (if possi-
E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emacsclient -a ""
-nw) on the journal file. With some editors (emacs, vi), the cursor
will be positioned at the current transaction when invoked from the
register and transaction screens, and at the error location (if possi-
ble) when invoked from the error screen.
q quits the application.
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).
V toggles value mode, showing amounts' current market value in their
default valuation commodity (like toggling the -V/--market flag).
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
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,
V toggles value mode, showing amounts' current market value in their
default valuation commodity (like toggling the -V/--market flag).
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
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,
press /, and add date:-7/30 to the query.
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.
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
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.
Additional screen-specific keys are described below.
SCREENS
Accounts screen
This is normally the first screen displayed. It lists accounts and
their balances, like hledger's balance command. By default, it shows
all accounts and their latest ending balances (including the balances
of subaccounts). if you specify a query on the command line, it shows
This is normally the first screen displayed. It lists accounts and
their balances, like hledger's balance command. By default, it shows
all accounts and their latest ending balances (including the balances
of subaccounts). if you specify a query on the command line, it shows
just the matched accounts and the balances from matched transactions.
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-
counts, except where subaccounts are hidden by a depth limit (see be-
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-
counts, except where subaccounts are hidden by a depth limit (see be-
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
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-
CAPE.
H toggles between showing historical balances or period balances. His-
torical balances (the default) are ending balances at the end of the
report period, taking into account all transactions before that date
(filtered by the filter query if any), including transactions before
the start of the report period. In other words, historical balances
are what you would see on a bank statement for that account (unless
disturbed by a filter query). Period balances ignore transactions be-
fore the report start date, so they show the change in balance during
torical balances (the default) are ending balances at the end of the
report period, taking into account all transactions before that date
(filtered by the filter query if any), including transactions before
the start of the report period. In other words, historical balances
are what you would see on a bank statement for that account (unless
disturbed by a filter query). Period balances ignore transactions be-
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.
U toggles filtering by unmarked status, including or excluding unmarked
postings in the balances. Similarly, P toggles pending postings, and C
toggles cleared postings. (By default, balances include all postings;
if you activate one or two status filters, only those postings are in-
toggles cleared postings. (By default, balances include all postings;
if you activate one or two status filters, only those postings are in-
cluded; and if you activate all three, the filter is removed.)
R toggles real mode, in which virtual postings are ignored.
Z toggles nonzero mode, in which only accounts with nonzero balances
are shown (hledger-ui shows zero items by default, unlike command-line
Z toggles nonzero mode, in which only accounts with nonzero balances
are shown (hledger-ui shows zero items by default, unlike command-line
hledger).
Press right or enter to view an account's transactions register.
@ -311,27 +305,27 @@ SCREENS
This screen shows the transactions affecting a particular account, like
a check register. Each line represents one transaction and shows:
o the other account(s) involved, in abbreviated form. (If there are
both real and virtual postings, it shows only the accounts affected
o the other account(s) involved, in abbreviated form. (If there are
both real and virtual postings, it shows only the accounts affected
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.
o the running historical total or period total for the current account,
after the transaction. This can be toggled with H. Similar to the
accounts screen, the historical total is affected by transactions
(filtered by the filter query) before the report start date, while
after the transaction. This can be toggled with H. Similar to the
accounts screen, the historical total is affected by transactions
(filtered by the filter query) before the report start date, while
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.
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
mode but this account has subaccounts which are not shown due to a
depth limit. In other words, the register always shows the transac-
tions contributing to the balance shown on the accounts screen.
Tree mode/flat mode can be toggled with T here also.
mode but this account has subaccounts which are not shown due to a
depth limit. In other words, the register always shows the transac-
tions contributing to the balance shown on the accounts screen. Tree
mode/flat mode can be toggled with T here also.
U toggles filtering by unmarked status, showing or hiding unmarked
transactions. Similarly, P toggles pending transactions, and C toggles

View File

@ -176,8 +176,9 @@ most recent applicable market price, if any)
apply automated posting rules to modify transactions.
.TP
\f[B]\f[CB]--forecast\f[B]\f[R]
apply periodic transaction rules to generate future transactions, to 6
months from now or report end date.
generate future transactions from periodic transaction rules, for the
next 6 months or till report end date.
In hledger-ui, also make ordinary future transactions visible.
.PP
When a reporting option appears more than once in the command line, the
last one takes precedence.

View File

@ -187,8 +187,9 @@ before options, as shown in the synopsis above.
apply automated posting rules to modify transactions.
'--forecast'
apply periodic transaction rules to generate future transactions,
to 6 months from now or report end date.
generate future transactions from periodic transaction rules, for
the next 6 months or till report end date. In hledger-ui, also
make ordinary future transactions visible.
When a reporting option appears more than once in the command line,
the last one takes precedence.
@ -428,20 +429,20 @@ Tag Table:
Node: Top72
Node: OPTIONS1752
Ref: #options1857
Node: PERMISSIONS8130
Ref: #permissions8269
Node: EDITING UPLOADING DOWNLOADING9481
Ref: #editing-uploading-downloading9662
Node: RELOADING10496
Ref: #reloading10630
Node: JSON API11063
Ref: #json-api11177
Node: ENVIRONMENT12618
Ref: #environment12734
Node: FILES13467
Ref: #files13567
Node: BUGS13780
Ref: #bugs13858
Node: PERMISSIONS8201
Ref: #permissions8340
Node: EDITING UPLOADING DOWNLOADING9552
Ref: #editing-uploading-downloading9733
Node: RELOADING10567
Ref: #reloading10701
Node: JSON API11134
Ref: #json-api11248
Node: ENVIRONMENT12689
Ref: #environment12805
Node: FILES13538
Ref: #files13638
Node: BUGS13851
Ref: #bugs13929

End Tag Table

View File

@ -166,8 +166,9 @@ OPTIONS
--auto apply automated posting rules to modify transactions.
--forecast
apply periodic transaction rules to generate future transac-
tions, to 6 months from now or report end date.
generate future transactions from periodic transaction rules,
for the next 6 months or till report end date. In hledger-ui,
also make ordinary future transactions visible.
When a reporting option appears more than once in the command line, the
last one takes precedence.
@ -186,54 +187,54 @@ OPTIONS
show debug output (levels 1-9, default: 1)
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.)
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
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
browser windows viewing it). With --serve, it just runs the web app
without exiting, and logs requests to the console. With --serve-api,
only the JSON web api (see below) is served, with the usual HTML
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
without exiting, and logs requests to the console. With --serve-api,
only the JSON web api (see below) is served, with the usual HTML
server-side web UI disabled.
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
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
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.
Both of these options are ignored when --socket is used. In this case,
it creates an AF_UNIX socket file at the supplied path and uses that
for communication. This is an alternative way of running multiple
hledger-web instances behind a reverse proxy that handles authentica-
tion for different users. The path can be derived in a predictable
it creates an AF_UNIX socket file at the supplied path and uses that
for communication. This is an alternative way of running multiple
hledger-web instances behind a reverse proxy that handles authentica-
tion for different users. The path can be derived in a predictable
way, eg by using the username within the path. As an example, nginx as
reverse proxy can use the variabel $remote_user to derive a path from
the username used in a HTTP basic authentication. The following
proxy_pass directive allows access to all hledger-web instances that
reverse proxy can use the variabel $remote_user to derive a path from
the username used in a HTTP basic authentication. The following
proxy_pass directive allows access to all hledger-web instances that
created a socket in /tmp/hledger/:
proxy_pass http://unix:/tmp/hledger/${remote_user}.socket;
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
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).
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.
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.
You can restrict who can reach it by
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-
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-
chine.
o putting it behind an authenticating proxy, using eg apache or nginx
@ -243,44 +244,44 @@ PERMISSIONS
You can restrict what the users who reach it can do, by
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:
o view - allows viewing the journal file and all included files
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
o using the --capabilities-header=HTTPHEADER flag to specify a HTTP
header from which it will read capabilities to enable. hledger-web
on Sandstorm uses the X-Sandstorm-Permissions header to integrate
o using the --capabilities-header=HTTPHEADER flag to specify a HTTP
header from which it will read capabilities to enable. hledger-web
on Sandstorm uses the X-Sandstorm-Permissions header to integrate
with Sandstorm's permissions. This is disabled by default.
EDITING, UPLOADING, DOWNLOADING
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
let you edit, upload, or download the journal file or any files it in-
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
let you edit, upload, or download the journal file or any files it in-
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.
Normally whenever a file is changed in this way, hledger-web saves a
numbered backup (assuming file permissions allow it, the disk is not
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
Normally whenever a file is changed in this way, hledger-web saves a
numbered backup (assuming file permissions allow it, the disk is not
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
yourself (eg with a cron job or a file watcher like entr).
Changes which would leave the journal file(s) unparseable or non-valid
(eg with failing balance assertions) are prevented. (Probably. This
Changes which would leave the journal file(s) unparseable or non-valid
(eg with failing balance assertions) are prevented. (Probably. This
needs re-testing.)
RELOADING
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
data when you reload the page or navigate to a new page. If a change
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
makes a file unparseable, hledger-web will display an error message un-
til the file has been fixed.
@ -288,8 +289,8 @@ RELOADING
that both machine clocks are roughly in step.)
JSON API
In addition to the web UI, hledger-web provides some API routes that
serve JSON in response to GET requests. (And when started with
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-api, it provides only these routes.):
/accountnames
@ -299,17 +300,17 @@ JSON API
/accounts
/accounttransactions/#AccountName
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,
hledger-web must be started with the add capability for this (enabled
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,
hledger-web must be started with the add capability for this (enabled
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.
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
JSON-capable types from or to a file. Eg here we write the first
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
JSON-capable types from or to a file. Eg here we write the first
transaction of a sample journal:
$ make ghci-web
@ -324,21 +325,21 @@ JSON API
$ 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.
Running with --serve-api disables the former, useful if you only want
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
to serve the API.
ENVIRONMENT
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).
A typical value is ~/DIR/YYYY.journal, where DIR is a version-con-
trolled finance directory and YYYY is the current year. Or ~/DIR/cur-
A typical value is ~/DIR/YYYY.journal, where DIR is a version-con-
trolled finance directory and YYYY is the current year. Or ~/DIR/cur-
rent.journal, where current.journal is a symbolic link to YYYY.journal.
On Mac computers, you can set this and other environment variables in a
more thorough way that also affects applications started from the GUI
more thorough way that also affects applications started from the GUI
(say, an Emacs dock icon). Eg on MacOS Catalina I have a ~/.MacOSX/en-
vironment.plist file containing
@ -349,13 +350,13 @@ ENVIRONMENT
To see the effect you may need to killall Dock, or reboot.
FILES
Reads data from one or more files in hledger journal, timeclock, time-
dot, or CSV format specified with -f, or $LEDGER_FILE, or
$HOME/.hledger.journal (on windows, perhaps
Reads data from one or more files in hledger journal, timeclock, time-
dot, or CSV format specified with -f, or $LEDGER_FILE, or
$HOME/.hledger.journal (on windows, perhaps
C:/Users/USER/.hledger.journal).
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.
-f- doesn't work (hledger-web can't read from stdin).
@ -369,7 +370,7 @@ 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)
@ -383,7 +384,7 @@ COPYRIGHT
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-
dot(5), ledger(1)

View File

@ -291,14 +291,12 @@ Balance changes in 2008:
(Average is rounded to the dollar here since all journal amounts are)
Limitations:
A limitation of multicolumn balance reports: eliding of boring parent
accounts in tree mode, as in the classic balance report, is not yet
supported.
In multicolumn reports the -V/--value flag uses the market price on the
report end date, for all columns (not the price on each column's end
date).
Eliding of boring parent accounts in tree mode, as in the classic
balance report, is not yet supported in multicolumn reports.
The --transpose flag can be used to exchange the rows and columns of a
multicolumn report.
Budget report

View File

@ -39,7 +39,8 @@ will not appear in the output. Similarly, when a transaction price is
implied but not written, it will not appear in the output. You can use
the -x/--explicit flag to make all amounts and transaction prices
explicit, which can be useful for troubleshooting or for making your
journal more readable and robust against data entry errors.
journal more readable and robust against data entry errors. -x is also
implied by using any of -B,-V,-X,--value.
Note, -x/--explicit will cause postings with a multi-commodity amount
(these can arise when a multi-commodity transaction has an implicit

View File

@ -179,7 +179,7 @@ like this:
assets:bank:checking $1000 = $1000
assets:bank:savings $2000 = $2000
assets:cash $100 = $100
liabilities:creditcard $-50 = $-$50
liabilities:creditcard $-50 = $-50
equity:opening/closing balances
\f[R]
.fi
@ -628,8 +628,9 @@ most recent applicable market price, if any)
apply automated posting rules to modify transactions.
.TP
\f[B]\f[CB]--forecast\f[B]\f[R]
apply periodic transaction rules to generate future transactions, to 6
months from now or report end date.
generate future transactions from periodic transaction rules, for the
next 6 months or till report end date.
In hledger-ui, also make ordinary future transactions visible.
.PP
When a reporting option appears more than once in the command line, the
last one takes precedence.
@ -1694,10 +1695,11 @@ more general \f[C]--value\f[R] option:
.IP
.nf
\f[C]
--value=TYPE[,COMM] TYPE is cost, end, now or YYYY-MM-DD.
--value=TYPE[,COMM] TYPE is cost, then, end, now or YYYY-MM-DD.
COMM is an optional commodity symbol.
Shows amounts converted to:
- cost commodity using transaction prices (then optionally to COMM using market prices at period end(s))
- default valuation commodity (or COMM) using market prices at posting dates
- default valuation commodity (or COMM) using market prices at period end(s)
- default valuation commodity (or COMM) using current market prices
- default valuation commodity (or COMM) using market prices at some date
@ -1710,6 +1712,11 @@ value\[dq] plus a valuation date:
\f[B]\f[CB]--value=cost\f[B]\f[R]
Convert amounts to cost, using the prices recorded in transactions.
.TP
\f[B]\f[CB]--value=then\f[B]\f[R]
Convert amounts to their value in a default valuation commodity, using
market prices on each posting\[aq]s date.
This is currently supported only by the print and register commands.
.TP
\f[B]\f[CB]--value=end\f[B]\f[R]
Convert amounts to their value in a default valuation commodity, using
market prices on the last day of the report period (or if unspecified,
@ -1905,7 +1912,7 @@ Related: #329, #1083.
.PP
.TS
tab(@);
lw(14.4n) lw(13.8n) lw(14.6n) lw(15.2n) lw(12.0n).
lw(11.7n) lw(11.2n) lw(11.9n) lw(13.1n) lw(12.4n) lw(9.8n).
T{
Report type
T}@T{
@ -1913,6 +1920,8 @@ T}@T{
T}@T{
\f[C]-V\f[R], \f[C]-X\f[R]
T}@T{
\f[C]--value=then\f[R]
T}@T{
\f[C]--value=end\f[R]
T}@T{
\f[C]--value=DATE\f[R], \f[C]--value=now\f[R]
@ -1924,6 +1933,7 @@ T}@T{
T}@T{
T}@T{
T}@T{
T}@T{
T}
T{
posting amounts
@ -1932,6 +1942,8 @@ cost
T}@T{
value at report end or today
T}@T{
value at posting date
T}@T{
value at report or journal end
T}@T{
value at DATE/today
@ -1946,12 +1958,15 @@ T}@T{
unchanged
T}@T{
unchanged
T}@T{
unchanged
T}
T{
T}@T{
T}@T{
T}@T{
T}@T{
T}@T{
T}
T{
\f[B]register\f[R]
@ -1959,6 +1974,7 @@ T}@T{
T}@T{
T}@T{
T}@T{
T}@T{
T}
T{
starting balance (with -H)
@ -1967,6 +1983,8 @@ cost
T}@T{
value at day before report or journal start
T}@T{
not supported
T}@T{
value at day before report or journal start
T}@T{
value at DATE/today
@ -1978,6 +1996,8 @@ cost
T}@T{
value at report end or today
T}@T{
value at posting date
T}@T{
value at report or journal end
T}@T{
value at DATE/today
@ -1989,6 +2009,8 @@ summarised cost
T}@T{
value at period ends
T}@T{
sum of postings in interval, valued at interval start
T}@T{
value at period ends
T}@T{
value at DATE/today
@ -2003,12 +2025,15 @@ T}@T{
sum/average of displayed values
T}@T{
sum/average of displayed values
T}@T{
sum/average of displayed values
T}
T{
T}@T{
T}@T{
T}@T{
T}@T{
T}@T{
T}
T{
\f[B]balance (bs, bse, cf, is..)\f[R]
@ -2016,6 +2041,7 @@ T}@T{
T}@T{
T}@T{
T}@T{
T}@T{
T}
T{
balances (no report interval)
@ -2024,6 +2050,8 @@ sums of costs
T}@T{
value at report end or today of sums of postings
T}@T{
not supported
T}@T{
value at report or journal end of sums of postings
T}@T{
value at DATE/today of sums of postings
@ -2035,6 +2063,8 @@ sums of costs
T}@T{
value at period ends of sums of postings
T}@T{
not supported
T}@T{
value at period ends of sums of postings
T}@T{
value at DATE/today of sums of postings
@ -2046,6 +2076,8 @@ sums of costs of postings before report start
T}@T{
sums of postings before report start
T}@T{
not supported
T}@T{
sums of postings before report start
T}@T{
sums of postings before report start
@ -2057,6 +2089,8 @@ like balances
T}@T{
like balances
T}@T{
not supported
T}@T{
like balances
T}@T{
like balances
@ -2068,6 +2102,8 @@ sum of displayed values
T}@T{
sum of displayed values
T}@T{
not supported
T}@T{
sum of displayed values
T}@T{
sum of displayed values
@ -2079,6 +2115,8 @@ sums/averages of displayed values
T}@T{
sums/averages of displayed values
T}@T{
not supported
T}@T{
sums/averages of displayed values
T}@T{
sums/averages of displayed values
@ -2090,6 +2128,8 @@ sums of displayed values
T}@T{
sums of displayed values
T}@T{
not supported
T}@T{
sums of displayed values
T}@T{
sums of displayed values
@ -2101,6 +2141,8 @@ sum/average of column totals
T}@T{
sum/average of column totals
T}@T{
not supported
T}@T{
sum/average of column totals
T}@T{
sum/average of column totals
@ -2110,6 +2152,7 @@ T}@T{
T}@T{
T}@T{
T}@T{
T}@T{
T}
.TE
.PP
@ -2668,14 +2711,12 @@ Balance changes in 2008:
\f[R]
.fi
.PP
Limitations:
A limitation of multicolumn balance reports: eliding of boring parent
accounts in tree mode, as in the classic balance report, is not yet
supported.
.PP
In multicolumn reports the \f[C]-V/--value\f[R] flag uses the market
price on the report end date, for all columns (not the price on each
column\[aq]s end date).
.PP
Eliding of boring parent accounts in tree mode, as in the classic
balance report, is not yet supported in multicolumn reports.
The \f[C]--transpose\f[R] flag can be used to exchange the rows and
columns of a multicolumn report.
.SS Budget report
.PP
With \f[C]--budget\f[R], extra columns are displayed showing budget
@ -3521,6 +3562,8 @@ You can use the \f[C]-x\f[R]/\f[C]--explicit\f[R] flag to make all
amounts and transaction prices explicit, which can be useful for
troubleshooting or for making your journal more readable and robust
against data entry errors.
\f[C]-x\f[R] is also implied by using any of
\f[C]-B\f[R],\f[C]-V\f[R],\f[C]-X\f[R],\f[C]--value\f[R].
.PP
Note, \f[C]-x\f[R]/\f[C]--explicit\f[R] will cause postings with a
multi-commodity amount (these can arise when a multi-commodity

View File

@ -186,7 +186,7 @@ balances on this date. Here are two ways to do it:
assets:bank:checking $1000 = $1000
assets:bank:savings $2000 = $2000
assets:cash $100 = $100
liabilities:creditcard $-50 = $-$50
liabilities:creditcard $-50 = $-50
equity:opening/closing balances
These are start-of-day balances, ie whatever was in the account at
@ -621,8 +621,9 @@ by most hledger commands, run 'hledger -h'.
apply automated posting rules to modify transactions.
'--forecast'
apply periodic transaction rules to generate future transactions,
to 6 months from now or report end date.
generate future transactions from periodic transaction rules, for
the next 6 months or till report end date. In hledger-ui, also
make ordinary future transactions visible.
When a reporting option appears more than once in the command line,
the last one takes precedence.
@ -1415,10 +1416,11 @@ _(experimental, added 201905)_
'-B', '-V' and '-X' are special cases of the more general '--value'
option:
--value=TYPE[,COMM] TYPE is cost, end, now or YYYY-MM-DD.
--value=TYPE[,COMM] TYPE is cost, then, end, now or YYYY-MM-DD.
COMM is an optional commodity symbol.
Shows amounts converted to:
- cost commodity using transaction prices (then optionally to COMM using market prices at period end(s))
- default valuation commodity (or COMM) using market prices at posting dates
- default valuation commodity (or COMM) using market prices at period end(s)
- default valuation commodity (or COMM) using current market prices
- default valuation commodity (or COMM) using market prices at some date
@ -1429,6 +1431,11 @@ a valuation date:
'--value=cost'
Convert amounts to cost, using the prices recorded in transactions.
'--value=then'
Convert amounts to their value in a default valuation commodity,
using market prices on each posting's date. This is currently
supported only by the print and register commands.
'--value=end'
Convert amounts to their value in a default valuation commodity,
@ -1582,67 +1589,76 @@ troubleshooting or reporting bugs. See also the definitions and notes
below. If you find problems, please report them, ideally with a
reproducible example. Related: #329, #1083.
Report type '-B', '-V', '-X' '--value=end' '--value=DATE',
'--value=cost' '--value=now'
-----------------------------------------------------------------------------
Report '-B', '-V', '-X' '--value=then' '--value=end' '--value=DATE',
type '--value=cost' '--value=now'
-------------------------------------------------------------------------------
*print*
posting cost value at value at value at
amounts report end or report or DATE/today
today journal end
balance unchanged unchanged unchanged unchanged
assertions /
posting cost value at value at value at value at
amounts report end posting date report or DATE/today
or today journal end
balance unchanged unchanged unchanged unchanged unchanged
assertions
/
assignments
*register*
starting cost value at day value at day value at
balance (with before report before report DATE/today
-H) or journal or journal
start start
posting cost value at value at value at
amounts (no report end or report or DATE/today
report today journal end
starting cost value at not value at value at
balance day before supported day before DATE/today
(with -H) report or report or
journal journal
start start
posting cost value at value at value at value at
amounts report end posting date report or DATE/today
(no report or today journal end
interval)
summary summarised value at value at value at
posting cost period ends period ends DATE/today
amounts (with
report
interval)
running sum/average sum/average sum/average of sum/average
total/average of displayed of displayed displayed of
values values values displayed
values
*balance (bs,
bse, cf,
is..)*
balances (no sums of value at value at value at
report costs report end or report or DATE/today
interval) today of sums journal end of of sums of
of postings sums of postings
postings
balances sums of value at value at value at
(with report costs period ends period ends of DATE/today
interval) of sums of sums of of sums of
postings postings postings
starting sums of sums of sums of sums of
balances costs of postings postings postings
(with report postings before report before report before
interval and before start start report
-H) report start start
budget like like balances like balances like
amounts with balances balances
summary summarised value at sum of value at value at
posting cost period postings in period ends DATE/today
amounts ends interval,
(with valued at
report interval
interval) start
running sum/average sum/average sum/average sum/average sum/average
total/averageof of of displayed of of
displayed displayed values displayed displayed
values values values values
*balance
(bs, bse,
cf, is..)*
balances sums of value at not value at value at
(no report costs report end supported report or DATE/today
interval) or today journal end of sums
of sums of of sums of of
postings postings postings
balances sums of value at not value at value at
(with costs period supported period ends DATE/today
report ends of of sums of of sums
interval) sums of postings of
postings postings
starting sums of sums of not sums of sums of
balances costs of postings supported postings postings
(with postings before before before
report before report report report
interval report start start start
and -H) start
budget like like not like like
amounts balances balances supported balances balances
with
-budget
grand total sum of sum of sum of sum of
(no report displayed displayed displayed displayed
interval) values values values values
row sums/averages sums/averages sums/averages sums/averages
totals/averages of displayed of displayed of displayed of
(with report values values values displayed
interval) values
column totals sums of sums of sums of sums of
displayed displayed displayed displayed
values values values values
grand sum/average sum/average sum/average of sum/average
total/average of column of column column totals of column
totals totals totals
grand sum of sum of not sum of sum of
total (no displayed displayed supported displayed displayed
report values values values values
interval)
row sums/averagessums/averagesnot sums/averages sums/averages
totals/averagesof of supported of of
(with displayed displayed displayed displayed
report values values values values
interval)
column sums of sums of not sums of sums of
totals displayed displayed supported displayed displayed
values values values values
grand sum/average sum/average not sum/average sum/average
total/averageof column of column supported of column of
totals totals totals column
totals
*Additional notes*
@ -2200,14 +2216,12 @@ Balance changes in 2008:
(Average is rounded to the dollar here since all journal amounts are)
Limitations:
A limitation of multicolumn balance reports: eliding of boring parent
accounts in tree mode, as in the classic balance report, is not yet
supported.
In multicolumn reports the '-V/--value' flag uses the market price on
the report end date, for all columns (not the price on each column's end
date).
Eliding of boring parent accounts in tree mode, as in the classic
balance report, is not yet supported in multicolumn reports.
The '--transpose' flag can be used to exchange the rows and columns
of a multicolumn report.

File: hledger.info, Node: Budget report, Next: , Prev: Multicolumn balance report, Up: balance
@ -2984,7 +2998,8 @@ will not appear in the output. Similarly, when a transaction price is
implied but not written, it will not appear in the output. You can use
the '-x'/'--explicit' flag to make all amounts and transaction prices
explicit, which can be useful for troubleshooting or for making your
journal more readable and robust against data entry errors.
journal more readable and robust against data entry errors. '-x' is
also implied by using any of '-B','-V','-X','--value'.
Note, '-x'/'--explicit' will cause postings with a multi-commodity
amount (these can arise when a multi-commodity transaction has an
@ -3678,177 +3693,177 @@ Node: Starting a journal file4414
Ref: #starting-a-journal-file4612
Node: Setting opening balances5800
Ref: #setting-opening-balances5996
Node: Recording transactions9138
Ref: #recording-transactions9318
Node: Reconciling9874
Ref: #reconciling10017
Node: Reporting12274
Ref: #reporting12414
Node: Migrating to a new file16413
Ref: #migrating-to-a-new-file16561
Node: OPTIONS16860
Ref: #options16967
Node: General options17337
Ref: #general-options17462
Node: Command options20161
Ref: #command-options20312
Node: Command arguments20710
Ref: #command-arguments20857
Node: Queries21737
Ref: #queries21892
Node: Special characters in arguments and queries25854
Ref: #special-characters-in-arguments-and-queries26082
Node: More escaping26533
Ref: #more-escaping26695
Node: Even more escaping26991
Ref: #even-more-escaping27185
Node: Less escaping27856
Ref: #less-escaping28018
Node: Unicode characters28263
Ref: #unicode-characters28445
Node: Input files29857
Ref: #input-files30000
Node: Output destination31929
Ref: #output-destination32081
Node: Output format32364
Ref: #output-format32514
Node: Regular expressions32899
Ref: #regular-expressions33056
Node: Smart dates34417
Ref: #smart-dates34568
Node: Report start & end date35929
Ref: #report-start-end-date36101
Node: Report intervals37539
Ref: #report-intervals37704
Node: Period expressions38094
Ref: #period-expressions38254
Node: Depth limiting42380
Ref: #depth-limiting42524
Node: Pivoting42866
Ref: #pivoting42989
Node: Valuation44665
Ref: #valuation44767
Node: -B Cost44947
Ref: #b-cost45058
Node: -V Market value45256
Ref: #v-market-value45430
Node: -X Market value in specified commodity46862
Ref: #x-market-value-in-specified-commodity47101
Node: --value Flexible valuation47277
Ref: #value-flexible-valuation47503
Node: Effect of --value on reports51693
Ref: #effect-of---value-on-reports51909
Node: Combining -B -V -X --value56840
Ref: #combining--b--v--x---value57023
Node: COMMANDS57059
Ref: #commands57167
Node: accounts58251
Ref: #accounts58349
Node: activity59048
Ref: #activity59158
Node: add59541
Ref: #add59640
Node: balance62379
Ref: #balance62490
Node: Classic balance report63948
Ref: #classic-balance-report64121
Node: Customising the classic balance report65490
Ref: #customising-the-classic-balance-report65718
Node: Colour support67794
Ref: #colour-support67961
Node: Flat mode68134
Ref: #flat-mode68282
Node: Depth limited balance reports68695
Ref: #depth-limited-balance-reports68880
Node: Percentages69336
Ref: #percentages69502
Node: Multicolumn balance report70639
Ref: #multicolumn-balance-report70819
Node: Budget report76133
Ref: #budget-report76276
Node: Nested budgets81478
Ref: #nested-budgets81590
Ref: #output-format-185071
Node: balancesheet85149
Ref: #balancesheet85285
Node: balancesheetequity86668
Ref: #balancesheetequity86817
Node: cashflow87378
Ref: #cashflow87506
Node: check-dates88602
Ref: #check-dates88729
Node: check-dupes89008
Ref: #check-dupes89132
Node: close89425
Ref: #close89539
Node: close usage91061
Ref: #close-usage91154
Node: commodities93967
Ref: #commodities94094
Node: descriptions94176
Ref: #descriptions94304
Node: diff94485
Ref: #diff94591
Node: files95638
Ref: #files95738
Node: help95885
Ref: #help95985
Node: import97066
Ref: #import97180
Node: Importing balance assignments98073
Ref: #importing-balance-assignments98221
Node: incomestatement98870
Ref: #incomestatement99003
Node: notes100407
Ref: #notes100520
Node: payees100646
Ref: #payees100752
Node: prices100910
Ref: #prices101016
Node: print101357
Ref: #print101467
Node: print-unique106111
Ref: #print-unique106237
Node: register106522
Ref: #register106649
Node: Custom register output110821
Ref: #custom-register-output110950
Node: register-match112212
Ref: #register-match112346
Node: rewrite112697
Ref: #rewrite112812
Node: Re-write rules in a file114667
Ref: #re-write-rules-in-a-file114801
Node: Diff output format116011
Ref: #diff-output-format116180
Node: rewrite vs print --auto117272
Ref: #rewrite-vs.-print---auto117451
Node: roi118007
Ref: #roi118105
Node: stats119117
Ref: #stats119216
Node: tags120004
Ref: #tags120102
Node: test120396
Ref: #test120504
Node: Add-on Commands121251
Ref: #add-on-commands121368
Node: ui122711
Ref: #ui122799
Node: web122853
Ref: #web122956
Node: iadd123072
Ref: #iadd123183
Node: interest123265
Ref: #interest123372
Node: ENVIRONMENT123612
Ref: #environment123724
Node: FILES124553
Ref: #files-1124656
Node: LIMITATIONS124869
Ref: #limitations124988
Node: TROUBLESHOOTING125730
Ref: #troubleshooting125843
Node: Recording transactions9137
Ref: #recording-transactions9317
Node: Reconciling9873
Ref: #reconciling10016
Node: Reporting12273
Ref: #reporting12413
Node: Migrating to a new file16412
Ref: #migrating-to-a-new-file16560
Node: OPTIONS16859
Ref: #options16966
Node: General options17336
Ref: #general-options17461
Node: Command options20231
Ref: #command-options20382
Node: Command arguments20780
Ref: #command-arguments20927
Node: Queries21807
Ref: #queries21962
Node: Special characters in arguments and queries25924
Ref: #special-characters-in-arguments-and-queries26152
Node: More escaping26603
Ref: #more-escaping26765
Node: Even more escaping27061
Ref: #even-more-escaping27255
Node: Less escaping27926
Ref: #less-escaping28088
Node: Unicode characters28333
Ref: #unicode-characters28515
Node: Input files29927
Ref: #input-files30070
Node: Output destination31999
Ref: #output-destination32151
Node: Output format32434
Ref: #output-format32584
Node: Regular expressions32969
Ref: #regular-expressions33126
Node: Smart dates34487
Ref: #smart-dates34638
Node: Report start & end date35999
Ref: #report-start-end-date36171
Node: Report intervals37609
Ref: #report-intervals37774
Node: Period expressions38164
Ref: #period-expressions38324
Node: Depth limiting42450
Ref: #depth-limiting42594
Node: Pivoting42936
Ref: #pivoting43059
Node: Valuation44735
Ref: #valuation44837
Node: -B Cost45017
Ref: #b-cost45128
Node: -V Market value45326
Ref: #v-market-value45500
Node: -X Market value in specified commodity46932
Ref: #x-market-value-in-specified-commodity47171
Node: --value Flexible valuation47347
Ref: #value-flexible-valuation47573
Node: Effect of --value on reports52078
Ref: #effect-of---value-on-reports52294
Node: Combining -B -V -X --value57840
Ref: #combining--b--v--x---value58023
Node: COMMANDS58059
Ref: #commands58167
Node: accounts59251
Ref: #accounts59349
Node: activity60048
Ref: #activity60158
Node: add60541
Ref: #add60640
Node: balance63379
Ref: #balance63490
Node: Classic balance report64948
Ref: #classic-balance-report65121
Node: Customising the classic balance report66490
Ref: #customising-the-classic-balance-report66718
Node: Colour support68794
Ref: #colour-support68961
Node: Flat mode69134
Ref: #flat-mode69282
Node: Depth limited balance reports69695
Ref: #depth-limited-balance-reports69880
Node: Percentages70336
Ref: #percentages70502
Node: Multicolumn balance report71639
Ref: #multicolumn-balance-report71819
Node: Budget report77081
Ref: #budget-report77224
Node: Nested budgets82426
Ref: #nested-budgets82538
Ref: #output-format-186019
Node: balancesheet86097
Ref: #balancesheet86233
Node: balancesheetequity87616
Ref: #balancesheetequity87765
Node: cashflow88326
Ref: #cashflow88454
Node: check-dates89550
Ref: #check-dates89677
Node: check-dupes89956
Ref: #check-dupes90080
Node: close90373
Ref: #close90487
Node: close usage92009
Ref: #close-usage92102
Node: commodities94915
Ref: #commodities95042
Node: descriptions95124
Ref: #descriptions95252
Node: diff95433
Ref: #diff95539
Node: files96586
Ref: #files96686
Node: help96833
Ref: #help96933
Node: import98014
Ref: #import98128
Node: Importing balance assignments99021
Ref: #importing-balance-assignments99169
Node: incomestatement99818
Ref: #incomestatement99951
Node: notes101355
Ref: #notes101468
Node: payees101594
Ref: #payees101700
Node: prices101858
Ref: #prices101964
Node: print102305
Ref: #print102415
Node: print-unique107123
Ref: #print-unique107249
Node: register107534
Ref: #register107661
Node: Custom register output111833
Ref: #custom-register-output111962
Node: register-match113224
Ref: #register-match113358
Node: rewrite113709
Ref: #rewrite113824
Node: Re-write rules in a file115679
Ref: #re-write-rules-in-a-file115813
Node: Diff output format117023
Ref: #diff-output-format117192
Node: rewrite vs print --auto118284
Ref: #rewrite-vs.-print---auto118463
Node: roi119019
Ref: #roi119117
Node: stats120129
Ref: #stats120228
Node: tags121016
Ref: #tags121114
Node: test121408
Ref: #test121516
Node: Add-on Commands122263
Ref: #add-on-commands122380
Node: ui123723
Ref: #ui123811
Node: web123865
Ref: #web123968
Node: iadd124084
Ref: #iadd124195
Node: interest124277
Ref: #interest124384
Node: ENVIRONMENT124624
Ref: #environment124736
Node: FILES125565
Ref: #files-1125668
Node: LIMITATIONS125881
Ref: #limitations126000
Node: TROUBLESHOOTING126742
Ref: #troubleshooting126855

End Tag Table

File diff suppressed because it is too large Load Diff