mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-25 19:31:44 +03:00
;doc: regen man pages
[ci skip]
This commit is contained in:
parent
29f7654c3a
commit
b1859769ac
@ -1,5 +1,5 @@
|
||||
|
||||
.TH "hledger_csv" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
||||
.TH "hledger_csv" "5" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||
|
||||
|
||||
|
||||
@ -186,6 +186,9 @@ comment note: %somefield - %anotherfield, date: %1
|
||||
.fi
|
||||
.PP
|
||||
Field assignments can be used instead of or in addition to a field list.
|
||||
.PP
|
||||
Note, interpolation strips any outer whitespace, so a CSV value like
|
||||
\f[C]\[dq] 1 \[dq]\f[R] becomes \f[C]1\f[R] when interpolated (#1051).
|
||||
.SS conditional block
|
||||
.PP
|
||||
\f[C]if\f[R] \f[I]\f[CI]PATTERN\f[I]\f[R]
|
||||
@ -332,6 +335,18 @@ arguments on the command line, and hledger will look for a
|
||||
correspondingly-named rules file for each.
|
||||
Note if you use the \f[C]--rules-file\f[R] option, this one rules file
|
||||
will be used for all the CSV files being read.
|
||||
.SS Valid CSV
|
||||
.PP
|
||||
hledger follows RFC 4180, with the addition of a customisable separator
|
||||
character.
|
||||
.PP
|
||||
Some things to note:
|
||||
.PP
|
||||
When quoting fields,
|
||||
.IP \[bu] 2
|
||||
you must use double quotes, not single quotes
|
||||
.IP \[bu] 2
|
||||
spaces outside the quotes are not allowed.
|
||||
|
||||
|
||||
.SH "REPORTING BUGS"
|
||||
|
@ -3,8 +3,8 @@ This is hledger_csv.info, produced by makeinfo version 6.5 from stdin.
|
||||
|
||||
File: hledger_csv.info, Node: Top, Next: CSV RULES, Up: (dir)
|
||||
|
||||
hledger_csv(5) hledger 1.14.99
|
||||
******************************
|
||||
hledger_csv(5) hledger 1.15
|
||||
***************************
|
||||
|
||||
hledger can read CSV (comma-separated value) files as if they were
|
||||
journal files, automatically converting each CSV record into a
|
||||
@ -171,6 +171,9 @@ comment note: %somefield - %anotherfield, date: %1
|
||||
Field assignments can be used instead of or in addition to a field
|
||||
list.
|
||||
|
||||
Note, interpolation strips any outer whitespace, so a CSV value like
|
||||
'" 1 "' becomes '1' when interpolated (#1051).
|
||||
|
||||
|
||||
File: hledger_csv.info, Node: conditional block, Next: include, Prev: field assignment, Up: CSV RULES
|
||||
|
||||
@ -248,6 +251,7 @@ File: hledger_csv.info, Node: CSV TIPS, Prev: CSV RULES, Up: Top
|
||||
* CSV amounts::
|
||||
* CSV balance assertions/assignments::
|
||||
* Reading multiple CSV files::
|
||||
* Valid CSV::
|
||||
|
||||
|
||||
File: hledger_csv.info, Node: CSV ordering, Next: CSV accounts, Up: CSV TIPS
|
||||
@ -317,7 +321,7 @@ assignment), on the first or second posting, whenever the running
|
||||
balance field is non-empty. (TODO: #1000)
|
||||
|
||||
|
||||
File: hledger_csv.info, Node: Reading multiple CSV files, Prev: CSV balance assertions/assignments, Up: CSV TIPS
|
||||
File: hledger_csv.info, Node: Reading multiple CSV files, Next: Valid CSV, Prev: CSV balance assertions/assignments, Up: CSV TIPS
|
||||
|
||||
2.5 Reading multiple CSV files
|
||||
==============================
|
||||
@ -327,36 +331,54 @@ the command line, and hledger will look for a correspondingly-named
|
||||
rules file for each. Note if you use the '--rules-file' option, this
|
||||
one rules file will be used for all the CSV files being read.
|
||||
|
||||
|
||||
File: hledger_csv.info, Node: Valid CSV, Prev: Reading multiple CSV files, Up: CSV TIPS
|
||||
|
||||
2.6 Valid CSV
|
||||
=============
|
||||
|
||||
hledger follows RFC 4180, with the addition of a customisable separator
|
||||
character.
|
||||
|
||||
Some things to note:
|
||||
|
||||
When quoting fields,
|
||||
|
||||
* you must use double quotes, not single quotes
|
||||
* spaces outside the quotes are not allowed.
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top72
|
||||
Node: CSV RULES2167
|
||||
Ref: #csv-rules2275
|
||||
Node: skip2538
|
||||
Ref: #skip2632
|
||||
Node: date-format2804
|
||||
Ref: #date-format2931
|
||||
Node: field list3481
|
||||
Ref: #field-list3618
|
||||
Node: field assignment4348
|
||||
Ref: #field-assignment4503
|
||||
Node: conditional block5007
|
||||
Ref: #conditional-block5161
|
||||
Node: include6057
|
||||
Ref: #include6187
|
||||
Node: newest-first6418
|
||||
Ref: #newest-first6532
|
||||
Node: CSV TIPS6943
|
||||
Ref: #csv-tips7037
|
||||
Node: CSV ordering7167
|
||||
Ref: #csv-ordering7285
|
||||
Node: CSV accounts7466
|
||||
Ref: #csv-accounts7604
|
||||
Node: CSV amounts7858
|
||||
Ref: #csv-amounts8016
|
||||
Node: CSV balance assertions/assignments9096
|
||||
Ref: #csv-balance-assertionsassignments9314
|
||||
Node: Reading multiple CSV files9635
|
||||
Ref: #reading-multiple-csv-files9817
|
||||
Node: CSV RULES2161
|
||||
Ref: #csv-rules2269
|
||||
Node: skip2532
|
||||
Ref: #skip2626
|
||||
Node: date-format2798
|
||||
Ref: #date-format2925
|
||||
Node: field list3475
|
||||
Ref: #field-list3612
|
||||
Node: field assignment4342
|
||||
Ref: #field-assignment4497
|
||||
Node: conditional block5121
|
||||
Ref: #conditional-block5275
|
||||
Node: include6171
|
||||
Ref: #include6301
|
||||
Node: newest-first6532
|
||||
Ref: #newest-first6646
|
||||
Node: CSV TIPS7057
|
||||
Ref: #csv-tips7151
|
||||
Node: CSV ordering7295
|
||||
Ref: #csv-ordering7413
|
||||
Node: CSV accounts7594
|
||||
Ref: #csv-accounts7732
|
||||
Node: CSV amounts7986
|
||||
Ref: #csv-amounts8144
|
||||
Node: CSV balance assertions/assignments9224
|
||||
Ref: #csv-balance-assertionsassignments9442
|
||||
Node: Reading multiple CSV files9763
|
||||
Ref: #reading-multiple-csv-files9963
|
||||
Node: Valid CSV10237
|
||||
Ref: #valid-csv10360
|
||||
|
||||
End Tag Table
|
||||
|
@ -134,6 +134,9 @@ CSV RULES
|
||||
Field assignments can be used instead of or in addition to a field
|
||||
list.
|
||||
|
||||
Note, interpolation strips any outer whitespace, so a CSV value like "
|
||||
1 " becomes 1 when interpolated (#1051).
|
||||
|
||||
conditional block
|
||||
if PATTERN
|
||||
FIELDASSIGNMENTS...
|
||||
@ -143,12 +146,12 @@ CSV RULES
|
||||
PATTERN...
|
||||
FIELDASSIGNMENTS...
|
||||
|
||||
This applies one or more field assignments, only to those CSV records
|
||||
This applies one or more field assignments, only to those CSV records
|
||||
matched by one of the PATTERNs. The patterns are case-insensitive reg-
|
||||
ular expressions which match anywhere within the whole CSV record (it's
|
||||
not yet possible to match within a specific field). When there are
|
||||
multiple patterns they can be written on separate lines, unindented.
|
||||
The field assignments are on separate lines indented by at least one
|
||||
not yet possible to match within a specific field). When there are
|
||||
multiple patterns they can be written on separate lines, unindented.
|
||||
The field assignments are on separate lines indented by at least one
|
||||
space. Examples:
|
||||
|
||||
# if the CSV record contains "groceries", set account2 to "expenses:groceries"
|
||||
@ -175,33 +178,33 @@ CSV RULES
|
||||
newest-first
|
||||
newest-first
|
||||
|
||||
Consider adding this rule if all of the following are true: you might
|
||||
be processing just one day of data, your CSV records are in reverse
|
||||
chronological order (newest first), and you care about preserving the
|
||||
order of same-day transactions. It usually isn't needed, because
|
||||
hledger autodetects the CSV order, but when all CSV records have the
|
||||
Consider adding this rule if all of the following are true: you might
|
||||
be processing just one day of data, your CSV records are in reverse
|
||||
chronological order (newest first), and you care about preserving the
|
||||
order of same-day transactions. It usually isn't needed, because
|
||||
hledger autodetects the CSV order, but when all CSV records have the
|
||||
same date it will assume they are oldest first.
|
||||
|
||||
CSV TIPS
|
||||
CSV ordering
|
||||
The generated journal entries will be sorted by date. The order of
|
||||
same-day entries will be preserved (except in the special case where
|
||||
The generated journal entries will be sorted by date. The order of
|
||||
same-day entries will be preserved (except in the special case where
|
||||
you might need newest-first, see above).
|
||||
|
||||
CSV accounts
|
||||
Each journal entry will have two postings, to account1 and account2
|
||||
Each journal entry will have two postings, to account1 and account2
|
||||
respectively. It's not yet possible to generate entries with more than
|
||||
two postings. It's conventional and recommended to use account1 for
|
||||
two postings. It's conventional and recommended to use account1 for
|
||||
the account whose CSV we are reading.
|
||||
|
||||
CSV amounts
|
||||
A transaction amount must be set, in one of these ways:
|
||||
|
||||
o with an amount field assignment, which sets the first posting's
|
||||
o with an amount field assignment, which sets the first posting's
|
||||
amount
|
||||
|
||||
o (When the CSV has debit and credit amounts in separate fields:)
|
||||
with field assignments for the amount-in and amount-out pseudo fields
|
||||
with field assignments for the amount-in and amount-out pseudo fields
|
||||
(both of them). Whichever one has a value will be used, with appropri-
|
||||
ate sign. If both contain a value, it might not work so well.
|
||||
|
||||
@ -209,33 +212,45 @@ CSV TIPS
|
||||
|
||||
There is some special handling for sign in amounts:
|
||||
|
||||
o If an amount value is parenthesised, it will be de-parenthesised and
|
||||
o If an amount value is parenthesised, it will be de-parenthesised and
|
||||
sign-flipped.
|
||||
|
||||
o If an amount value begins with a double minus sign, those will cancel
|
||||
out and be removed.
|
||||
|
||||
If the currency/commodity symbol is provided as a separate CSV field,
|
||||
If the currency/commodity symbol is provided as a separate CSV field,
|
||||
assign it to the currency pseudo field; the symbol will be prepended to
|
||||
the amount (TODO: when there is an amount). Or, you can use an amount
|
||||
the amount (TODO: when there is an amount). Or, you can use an amount
|
||||
field assignment for more control, eg:
|
||||
|
||||
fields date,description,currency,amount
|
||||
amount %amount %currency
|
||||
|
||||
CSV balance assertions/assignments
|
||||
If the CSV includes a running balance, you can assign that to one of
|
||||
the pseudo fields balance (or balance1) or balance2. This will gener-
|
||||
ate a balance assertion (or if the amount is left empty, a balance
|
||||
assignment), on the first or second posting, whenever the running bal-
|
||||
If the CSV includes a running balance, you can assign that to one of
|
||||
the pseudo fields balance (or balance1) or balance2. This will gener-
|
||||
ate a balance assertion (or if the amount is left empty, a balance
|
||||
assignment), on the first or second posting, whenever the running bal-
|
||||
ance field is non-empty. (TODO: #1000)
|
||||
|
||||
Reading multiple CSV files
|
||||
You can read multiple CSV files at once using multiple -f arguments on
|
||||
the command line, and hledger will look for a correspondingly-named
|
||||
You can read multiple CSV files at once using multiple -f arguments on
|
||||
the command line, and hledger will look for a correspondingly-named
|
||||
rules file for each. Note if you use the --rules-file option, this one
|
||||
rules file will be used for all the CSV files being read.
|
||||
|
||||
Valid CSV
|
||||
hledger follows RFC 4180, with the addition of a customisable separator
|
||||
character.
|
||||
|
||||
Some things to note:
|
||||
|
||||
When quoting fields,
|
||||
|
||||
o you must use double quotes, not single quotes
|
||||
|
||||
o spaces outside the quotes are not allowed.
|
||||
|
||||
|
||||
|
||||
REPORTING BUGS
|
||||
@ -261,4 +276,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger 1.14.99 March 2019 hledger_csv(5)
|
||||
hledger 1.15 August 2019 hledger_csv(5)
|
||||
|
@ -1,6 +1,6 @@
|
||||
.\"t
|
||||
|
||||
.TH "hledger_journal" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
||||
.TH "hledger_journal" "5" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||
|
||||
|
||||
|
||||
@ -314,11 +314,12 @@ can be used for whatever you wish, or left blank.
|
||||
Transaction descriptions can be queried, unlike comments.
|
||||
.SS Payee and note
|
||||
.PP
|
||||
You can optionally include a \f[C]|\f[R] (pipe) character in a
|
||||
description to subdivide it into a payee/payer name on the left and
|
||||
additional notes on the right.
|
||||
You can optionally include a \f[C]|\f[R] (pipe) character in
|
||||
descriptions to subdivide the description into separate fields for
|
||||
payee/payer name on the left (up to the first \f[C]|\f[R]) and an
|
||||
additional note field on the right (after the first \f[C]|\f[R]).
|
||||
This may be worthwhile if you need to do more precise querying and
|
||||
pivoting by payee.
|
||||
pivoting by payee or by note.
|
||||
.SS Account names
|
||||
.PP
|
||||
Account names typically have several parts separated by a full colon,
|
||||
@ -727,7 +728,7 @@ Write the price per unit, as \f[C]\[at] UNITPRICE\f[R] after the amount:
|
||||
\f[C]
|
||||
2009/1/1
|
||||
assets:euros \[Eu]100 \[at] $1.35 ; one hundred euros purchased at $1.35 each
|
||||
assets:dollars ; balancing amount is -$135.00
|
||||
assets:dollars ; balancing amount is -$135.00
|
||||
\f[R]
|
||||
.fi
|
||||
.RE
|
||||
@ -752,8 +753,8 @@ hledger infer the price that balances the transaction:
|
||||
.nf
|
||||
\f[C]
|
||||
2009/1/1
|
||||
assets:euros \[Eu]100 ; one hundred euros purchased
|
||||
assets:dollars $-135 ; for $135
|
||||
assets:euros \[Eu]100 ; one hundred euros purchased
|
||||
assets:dollars $-135 ; for $135
|
||||
\f[R]
|
||||
.fi
|
||||
.RE
|
||||
@ -786,8 +787,8 @@ equivalent, -B shows something different:
|
||||
.nf
|
||||
\f[C]
|
||||
2009/1/1
|
||||
assets:dollars $-135 ; 135 dollars sold
|
||||
assets:euros \[Eu]100 ; for 100 euros
|
||||
assets:dollars $-135 ; 135 dollars sold
|
||||
assets:euros \[Eu]100 ; for 100 euros
|
||||
\f[R]
|
||||
.fi
|
||||
.IP
|
||||
@ -870,7 +871,7 @@ comma separated:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
assets:checking ; a comment containing tag1:, tag2: some value ...
|
||||
assets:checking ; a comment containing tag1:, tag2: some value ...
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
@ -1118,7 +1119,8 @@ Y2010 ; change default year to 2010
|
||||
.SS Declaring commodities
|
||||
.PP
|
||||
The \f[C]commodity\f[R] directive declares commodities which may be used
|
||||
in the journal (though currently we do not enforce this).
|
||||
in the journal, and their display format.
|
||||
.PP
|
||||
It may be written on a single line, like this:
|
||||
.IP
|
||||
.nf
|
||||
@ -1149,14 +1151,20 @@ commodity INR
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
Commodity directives have a second purpose: they define the standard
|
||||
display format for amounts in the commodity.
|
||||
Declaring commodites may be useful as documentation, but currently we do
|
||||
not enforce that only declared commodities may be used.
|
||||
This directive is mainly useful for customising the preferred display
|
||||
format for a commodity.
|
||||
.PP
|
||||
Normally the display format is inferred from journal entries, but this
|
||||
can be unpredictable; declaring it with a commodity directive overrides
|
||||
this and removes ambiguity.
|
||||
Towards this end, amounts in commodity directives must always be written
|
||||
with a decimal point (a period or comma, followed by 0 or more decimal
|
||||
digits).
|
||||
.PP
|
||||
Commodity directives do not affect how amounts are parsed; the parser
|
||||
will read multiple formats.
|
||||
.SS Default commodity
|
||||
.PP
|
||||
The \f[C]D\f[R] directive sets a default commodity (and display format),
|
||||
@ -1334,11 +1342,11 @@ Eg:
|
||||
.nf
|
||||
\f[C]
|
||||
; make \[dq]liabilities\[dq] not have the liability type - who knows why
|
||||
account liabilities ; type:E
|
||||
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
|
||||
account - ; type:L
|
||||
account - ; type:L
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Account display order
|
||||
@ -1474,20 +1482,39 @@ alias /\[ha](.+):bank:([\[ha]:]+)(.*)/ = \[rs]1:\[rs]2 \[rs]3
|
||||
.PP
|
||||
Also note that REPLACEMENT continues to the end of line (or on command
|
||||
line, to end of option argument), so it can contain trailing whitespace.
|
||||
.SS Multiple aliases
|
||||
.SS Combining aliases
|
||||
.PP
|
||||
You can define as many aliases as you like using directives or
|
||||
command-line options.
|
||||
Aliases are recursive - each alias sees the result of applying previous
|
||||
ones.
|
||||
(This is different from Ledger, where aliases are non-recursive by
|
||||
default).
|
||||
Aliases are applied in the following order:
|
||||
You can define as many aliases as you like, using journal directives
|
||||
and/or command line options.
|
||||
.PP
|
||||
Recursive aliases - where an account name is rewritten by one alias,
|
||||
then by another alias, and so on - are allowed.
|
||||
Each alias sees the effect of previously applied aliases.
|
||||
.PP
|
||||
In such cases it can be important to understand which aliases will be
|
||||
applied and in which order.
|
||||
For (each account name in) each journal entry, we apply:
|
||||
.IP "1." 3
|
||||
alias directives, most recently seen first (recent directives take
|
||||
precedence over earlier ones; directives not yet seen are ignored)
|
||||
\f[C]alias\f[R] directives preceding the journal entry, most recently
|
||||
parsed first (ie, reading upward from the journal entry, bottom to top)
|
||||
.IP "2." 3
|
||||
alias options, in the order they appear on the command line
|
||||
\f[C]--alias\f[R] options, in the order they appeared on the command
|
||||
line (left to right).
|
||||
.PP
|
||||
In other words, for (an account name in) a given journal entry:
|
||||
.IP \[bu] 2
|
||||
the nearest alias declaration before/above the entry is applied first
|
||||
.IP \[bu] 2
|
||||
the next alias before/above that will be be applied next, and so on
|
||||
.IP \[bu] 2
|
||||
aliases defined after/below the entry do not affect it.
|
||||
.PP
|
||||
This gives nearby aliases precedence over distant ones, and helps
|
||||
provide semantic stability - aliases will keep working the same way
|
||||
independent of which files are being read and in which order.
|
||||
.PP
|
||||
In case of trouble, adding \f[C]--debug=6\f[R] to the command line will
|
||||
show which aliases are being applied when.
|
||||
.SS \f[C]end aliases\f[R]
|
||||
.PP
|
||||
You can clear (forget) all currently defined aliases with the
|
||||
@ -1603,8 +1630,18 @@ example:
|
||||
With the \f[C]--forecast\f[R] flag, each periodic transaction rule
|
||||
generates future transactions recurring at the specified interval.
|
||||
These are not saved in the journal, but appear in all reports.
|
||||
They will look like normal transactions, but with an extra tag named
|
||||
\f[C]recur\f[R], whose value is the generating period expression.
|
||||
They will look like normal transactions, but with an extra tag:
|
||||
.IP \[bu] 2
|
||||
\f[C]generated-transaction:\[ti] PERIODICEXPR\f[R] - shows that this was
|
||||
generated by a periodic transaction rule, and the period
|
||||
.PP
|
||||
There is also a hidden tag, with an underscore prefix, which does not
|
||||
appear in hledger\[aq]s output:
|
||||
.IP \[bu] 2
|
||||
\f[C]_generated-transaction:\[ti] PERIODICEXPR\f[R]
|
||||
.PP
|
||||
This can be used to match transactions generated \[dq]just now\[dq],
|
||||
rather than generated in the past and saved to the journal.
|
||||
.PP
|
||||
Forecast transactions start on the first occurrence, and end on the last
|
||||
occurrence, of their interval within the forecast period.
|
||||
@ -1654,16 +1691,16 @@ and Forecasting.
|
||||
.PP
|
||||
.SS Auto postings / transaction modifiers
|
||||
.PP
|
||||
Transaction modifier rules describe changes to be applied automatically
|
||||
to certain matched transactions.
|
||||
Transaction modifier rules, AKA auto posting rules, describe changes to
|
||||
be applied automatically to certain matched transactions.
|
||||
Currently just one kind of change is possible - adding extra postings,
|
||||
which we call \[dq]automated postings\[dq] or just \[dq]auto
|
||||
postings\[dq].
|
||||
These rules become active when you use the \f[C]--auto\f[R] flag.
|
||||
.PP
|
||||
A transaction modifier, AKA auto posting rule, looks much like a normal
|
||||
transaction except the first line is an equals sign followed by a query
|
||||
that matches certain postings (mnemonic: \f[C]=\f[R] suggests matching).
|
||||
A transaction modifier rule looks much like a normal transaction except
|
||||
the first line is an equals sign followed by a query that matches
|
||||
certain postings (mnemonic: \f[C]=\f[R] suggests matching).
|
||||
And each \[dq]posting\[dq] is actually a posting-generating rule:
|
||||
.IP
|
||||
.nf
|
||||
@ -1736,6 +1773,11 @@ $ hledger print --auto
|
||||
assets:checking $20
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Auto postings and dates
|
||||
.PP
|
||||
A posting date (or secondary date) in the matched posting, or (taking
|
||||
precedence) a posting date in the auto posting rule itself, will also be
|
||||
used in the generated posting.
|
||||
.SS Auto postings and transaction balancing / inferred amounts / balance assertions
|
||||
.PP
|
||||
Currently, transaction modifiers are applied / auto postings are added:
|
||||
@ -1748,6 +1790,25 @@ but before balance assertions are checked.
|
||||
Note this means that journal entries must be balanced both before and
|
||||
after auto postings are added.
|
||||
This changed in hledger 1.12+; see #893 for background.
|
||||
.SS Auto posting tags
|
||||
.PP
|
||||
Postings added by transaction modifiers will have some extra tags:
|
||||
.IP \[bu] 2
|
||||
\f[C]generated-posting:= QUERY\f[R] - shows this was generated by an
|
||||
auto posting rule, and the query
|
||||
.IP \[bu] 2
|
||||
\f[C]_generated-posting:= QUERY\f[R] - a hidden tag, which does not
|
||||
appear in hledger\[aq]s output.
|
||||
This can be used to match postings generated \[dq]just now\[dq], rather
|
||||
than generated in the past and saved to the journal.
|
||||
.PP
|
||||
Also, any transaction that has been changed by transaction modifier
|
||||
rules will have these tags added:
|
||||
.IP \[bu] 2
|
||||
\f[C]modified:\f[R] - this transaction was modified
|
||||
.IP \[bu] 2
|
||||
\f[C]_modified:\f[R] - a hidden tag not appearing in the comment; this
|
||||
transaction was modified \[dq]just now\[dq].
|
||||
.SH EDITOR SUPPORT
|
||||
.PP
|
||||
Helper modes exist for popular text editors, which make working with
|
||||
|
@ -4,8 +4,8 @@ stdin.
|
||||
|
||||
File: hledger_journal.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
||||
|
||||
hledger_journal(5) hledger 1.14.99
|
||||
**********************************
|
||||
hledger_journal(5) hledger 1.15
|
||||
*******************************
|
||||
|
||||
hledger's usual data source is a plain text file containing journal
|
||||
entries in hledger journal format. This file represents a standard
|
||||
@ -214,8 +214,8 @@ reports, and the deduction from checking should be reported on 6/1 for
|
||||
easy bank reconciliation:
|
||||
|
||||
2015/5/30
|
||||
expenses:food $10 ; food purchased on saturday 5/30
|
||||
assets:checking ; bank cleared it on monday, date:6/1
|
||||
expenses:food $10 ; food purchased on saturday 5/30
|
||||
assets:checking ; bank cleared it on monday, date:6/1
|
||||
|
||||
$ hledger -f t.j register food
|
||||
2015/05/30 expenses:food $10 $10
|
||||
@ -307,10 +307,11 @@ File: hledger_journal.info, Node: Payee and note, Up: Description
|
||||
1.5.1 Payee and note
|
||||
--------------------
|
||||
|
||||
You can optionally include a '|' (pipe) character in a description to
|
||||
subdivide it into a payee/payer name on the left and additional notes on
|
||||
the right. This may be worthwhile if you need to do more precise
|
||||
querying and pivoting by payee.
|
||||
You can optionally include a '|' (pipe) character in descriptions to
|
||||
subdivide the description into separate fields for payee/payer name on
|
||||
the left (up to the first '|') and an additional note field on the right
|
||||
(after the first '|'). This may be worthwhile if you need to do more
|
||||
precise querying and pivoting by payee or by note.
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: Account names, Next: Amounts, Prev: Description, Up: FILE FORMAT
|
||||
@ -734,8 +735,8 @@ last amount. So if example 3's postings are reversed, while the
|
||||
transaction is equivalent, -B shows something different:
|
||||
|
||||
2009/1/1
|
||||
assets:dollars $-135 ; 135 dollars sold
|
||||
assets:euros €100 ; for 100 euros
|
||||
assets:dollars $-135 ; 135 dollars sold
|
||||
assets:euros €100 ; for 100 euros
|
||||
|
||||
$ hledger bal -N --flat -B
|
||||
€-100 assets:dollars # <- the dollars' selling price
|
||||
@ -799,13 +800,13 @@ colon, written inside a transaction or posting comment line:
|
||||
Tags can have a value, which is the text after the colon, up to the
|
||||
next comma or end of line, with leading/trailing whitespace removed:
|
||||
|
||||
expenses:food $10 ; a-posting-tag: the tag value
|
||||
expenses:food $10 ; a-posting-tag: the tag value
|
||||
|
||||
Note this means hledger's tag values can not contain commas or
|
||||
newlines. Ending at commas means you can write multiple short tags on
|
||||
one line, comma separated:
|
||||
|
||||
assets:checking ; a comment containing tag1:, tag2: some value ...
|
||||
assets:checking ; a comment containing tag1:, tag2: some value ...
|
||||
|
||||
Here,
|
||||
|
||||
@ -968,19 +969,19 @@ 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
|
||||
Y2009 ; set default year to 2009
|
||||
|
||||
12/15 ; equivalent to 2009/12/15
|
||||
12/15 ; equivalent to 2009/12/15
|
||||
expenses 1
|
||||
assets
|
||||
|
||||
Y2010 ; change default year to 2010
|
||||
Y2010 ; change default year to 2010
|
||||
|
||||
2009/1/30 ; specifies the year, not affected
|
||||
expenses 1
|
||||
assets
|
||||
|
||||
1/31 ; equivalent to 2010/1/31
|
||||
1/31 ; equivalent to 2010/1/31
|
||||
expenses 1
|
||||
assets
|
||||
|
||||
@ -991,8 +992,9 @@ File: hledger_journal.info, Node: Declaring commodities, Next: Default commodi
|
||||
----------------------------
|
||||
|
||||
The 'commodity' directive declares commodities which may be used in the
|
||||
journal (though currently we do not enforce this). It may be written on
|
||||
a single line, like this:
|
||||
journal, and their display format.
|
||||
|
||||
It may be written on a single line, like this:
|
||||
|
||||
; commodity EXAMPLEAMOUNT
|
||||
|
||||
@ -1014,13 +1016,19 @@ places:
|
||||
commodity INR
|
||||
format INR 9,99,99,999.00
|
||||
|
||||
Commodity directives have a second purpose: they define the standard
|
||||
display format for amounts in the commodity. Normally the display
|
||||
format is inferred from journal entries, but this can be unpredictable;
|
||||
declaring it with a commodity directive overrides this and removes
|
||||
ambiguity. Towards this end, amounts in commodity directives must
|
||||
always be written with a decimal point (a period or comma, followed by 0
|
||||
or more decimal digits).
|
||||
Declaring commodites may be useful as documentation, but currently we
|
||||
do not enforce that only declared commodities may be used. This
|
||||
directive is mainly useful for customising the preferred display format
|
||||
for a commodity.
|
||||
|
||||
Normally the display format is inferred from journal entries, but
|
||||
this can be unpredictable; declaring it with a commodity directive
|
||||
overrides this and removes ambiguity. Towards this end, amounts in
|
||||
commodity directives must always be written with a decimal point (a
|
||||
period or comma, followed by 0 or more decimal digits).
|
||||
|
||||
Commodity directives do not affect how amounts are parsed; the parser
|
||||
will read multiple formats.
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: Default commodity, Next: Market prices, Prev: Declaring commodities, Up: Directives
|
||||
@ -1039,7 +1047,7 @@ amounts, or until the next 'D' directive.
|
||||
D $1,000.00
|
||||
|
||||
1/1
|
||||
a 5 ; <- commodity-less amount, becomes $1
|
||||
a 5 ; <- commodity-less amount, becomes $1
|
||||
b
|
||||
|
||||
As with the 'commodity' directive, the amount must always be written
|
||||
@ -1182,11 +1190,11 @@ those auto-detected english account names mentioned above, you might
|
||||
need to help the reports a bit. Eg:
|
||||
|
||||
; make "liabilities" not have the liability type - who knows why
|
||||
account liabilities ; type:E
|
||||
account liabilities ; type:E
|
||||
|
||||
; we need to ensure some other account has the liability type,
|
||||
; otherwise balancesheet would still show "liabilities" under Liabilities
|
||||
account - ; type:L
|
||||
account - ; type:L
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: Account display order, Prev: Account types, Up: Declaring accounts
|
||||
@ -1257,7 +1265,7 @@ hledger-web.
|
||||
|
||||
* Basic aliases::
|
||||
* Regex aliases::
|
||||
* Multiple aliases::
|
||||
* Combining aliases::
|
||||
* end aliases::
|
||||
|
||||
|
||||
@ -1284,7 +1292,7 @@ alias checking = assets:bank:wells fargo:checking
|
||||
# rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: Regex aliases, Next: Multiple aliases, Prev: Basic aliases, Up: Rewriting accounts
|
||||
File: hledger_journal.info, Node: Regex aliases, Next: Combining aliases, Prev: Basic aliases, Up: Rewriting accounts
|
||||
|
||||
1.14.8.2 Regex aliases
|
||||
......................
|
||||
@ -1309,23 +1317,44 @@ command line, to end of option argument), so it can contain trailing
|
||||
whitespace.
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: Multiple aliases, Next: end aliases, Prev: Regex aliases, Up: Rewriting accounts
|
||||
File: hledger_journal.info, Node: Combining aliases, Next: end aliases, Prev: Regex aliases, Up: Rewriting accounts
|
||||
|
||||
1.14.8.3 Multiple aliases
|
||||
.........................
|
||||
1.14.8.3 Combining aliases
|
||||
..........................
|
||||
|
||||
You can define as many aliases as you like using directives or
|
||||
command-line options. Aliases are recursive - each alias sees the
|
||||
result of applying previous ones. (This is different from Ledger, where
|
||||
aliases are non-recursive by default). Aliases are applied in the
|
||||
following order:
|
||||
You can define as many aliases as you like, using journal directives
|
||||
and/or command line options.
|
||||
|
||||
1. alias directives, most recently seen first (recent directives take
|
||||
precedence over earlier ones; directives not yet seen are ignored)
|
||||
2. alias options, in the order they appear on the command line
|
||||
Recursive aliases - where an account name is rewritten by one alias,
|
||||
then by another alias, and so on - are allowed. Each alias sees the
|
||||
effect of previously applied aliases.
|
||||
|
||||
In such cases it can be important to understand which aliases will be
|
||||
applied and in which order. For (each account name in) each journal
|
||||
entry, we apply:
|
||||
|
||||
1. 'alias' directives preceding the journal entry, most recently
|
||||
parsed first (ie, reading upward from the journal entry, bottom to
|
||||
top)
|
||||
2. '--alias' options, in the order they appeared on the command line
|
||||
(left to right).
|
||||
|
||||
In other words, for (an account name in) a given journal entry:
|
||||
|
||||
* the nearest alias declaration before/above the entry is applied
|
||||
first
|
||||
* the next alias before/above that will be be applied next, and so on
|
||||
* aliases defined after/below the entry do not affect it.
|
||||
|
||||
This gives nearby aliases precedence over distant ones, and helps
|
||||
provide semantic stability - aliases will keep working the same way
|
||||
independent of which files are being read and in which order.
|
||||
|
||||
In case of trouble, adding '--debug=6' to the command line will show
|
||||
which aliases are being applied when.
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: end aliases, Prev: Multiple aliases, Up: Rewriting accounts
|
||||
File: hledger_journal.info, Node: end aliases, Prev: Combining aliases, Up: Rewriting accounts
|
||||
|
||||
1.14.8.4 'end aliases'
|
||||
......................
|
||||
@ -1437,8 +1466,18 @@ File: hledger_journal.info, Node: Forecasting with periodic transactions, Next
|
||||
With the '--forecast' flag, each periodic transaction rule generates
|
||||
future transactions recurring at the specified interval. These are not
|
||||
saved in the journal, but appear in all reports. They will look like
|
||||
normal transactions, but with an extra tag named 'recur', whose value is
|
||||
the generating period expression.
|
||||
normal transactions, but with an extra tag:
|
||||
|
||||
* 'generated-transaction:~ PERIODICEXPR' - shows that this was
|
||||
generated by a periodic transaction rule, and the period
|
||||
|
||||
There is also a hidden tag, with an underscore prefix, which does not
|
||||
appear in hledger's output:
|
||||
|
||||
* '_generated-transaction:~ PERIODICEXPR'
|
||||
|
||||
This can be used to match transactions generated "just now", rather
|
||||
than generated in the past and saved to the journal.
|
||||
|
||||
Forecast transactions start on the first occurrence, and end on the
|
||||
last occurrence, of their interval within the forecast period. The
|
||||
@ -1493,16 +1532,16 @@ File: hledger_journal.info, Node: Auto postings / transaction modifiers, Prev:
|
||||
1.16 Auto postings / transaction modifiers
|
||||
==========================================
|
||||
|
||||
Transaction modifier rules describe changes to be applied automatically
|
||||
to certain matched transactions. Currently just one kind of change is
|
||||
possible - adding extra postings, which we call "automated postings" or
|
||||
just "auto postings". These rules become active when you use the
|
||||
'--auto' flag.
|
||||
Transaction modifier rules, AKA auto posting rules, describe changes to
|
||||
be applied automatically to certain matched transactions. Currently
|
||||
just one kind of change is possible - adding extra postings, which we
|
||||
call "automated postings" or just "auto postings". These rules become
|
||||
active when you use the '--auto' flag.
|
||||
|
||||
A transaction modifier, AKA auto posting rule, looks much like a
|
||||
normal transaction except the first line is an equals sign followed by a
|
||||
query that matches certain postings (mnemonic: '=' suggests matching).
|
||||
And each "posting" is actually a posting-generating rule:
|
||||
A transaction modifier rule looks much like a normal transaction
|
||||
except the first line is an equals sign followed by a query that matches
|
||||
certain postings (mnemonic: '=' suggests matching). And each "posting"
|
||||
is actually a posting-generating rule:
|
||||
|
||||
= QUERY
|
||||
ACCT AMT
|
||||
@ -1560,12 +1599,24 @@ $ hledger print --auto
|
||||
|
||||
* Menu:
|
||||
|
||||
* Auto postings and dates::
|
||||
* Auto postings and transaction balancing / inferred amounts / balance assertions::
|
||||
* Auto posting tags::
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: Auto postings and transaction balancing / inferred amounts / balance assertions, Up: Auto postings / transaction modifiers
|
||||
File: hledger_journal.info, Node: Auto postings and dates, Next: Auto postings and transaction balancing / inferred amounts / balance assertions, Up: Auto postings / transaction modifiers
|
||||
|
||||
1.16.1 Auto postings and transaction balancing / inferred amounts /
|
||||
1.16.1 Auto postings and dates
|
||||
------------------------------
|
||||
|
||||
A posting date (or secondary date) in the matched posting, or (taking
|
||||
precedence) a posting date in the auto posting rule itself, will also be
|
||||
used in the generated posting.
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: Auto postings and transaction balancing / inferred amounts / balance assertions, Next: Auto posting tags, Prev: Auto postings and dates, Up: Auto postings / transaction modifiers
|
||||
|
||||
1.16.2 Auto postings and transaction balancing / inferred amounts /
|
||||
-------------------------------------------------------------------
|
||||
|
||||
balance assertions Currently, transaction modifiers are applied / auto
|
||||
@ -1579,6 +1630,28 @@ postings are added:
|
||||
after auto postings are added. This changed in hledger 1.12+; see #893
|
||||
for background.
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: Auto posting tags, Prev: Auto postings and transaction balancing / inferred amounts / balance assertions, Up: Auto postings / transaction modifiers
|
||||
|
||||
1.16.3 Auto posting tags
|
||||
------------------------
|
||||
|
||||
Postings added by transaction modifiers will have some extra tags:
|
||||
|
||||
* 'generated-posting:= QUERY' - shows this was generated by an auto
|
||||
posting rule, and the query
|
||||
* '_generated-posting:= QUERY' - a hidden tag, which does not appear
|
||||
in hledger's output. This can be used to match postings generated
|
||||
"just now", rather than generated in the past and saved to the
|
||||
journal.
|
||||
|
||||
Also, any transaction that has been changed by transaction modifier
|
||||
rules will have these tags added:
|
||||
|
||||
* 'modified:' - this transaction was modified
|
||||
* '_modified:' - a hidden tag not appearing in the comment; this
|
||||
transaction was modified "just now".
|
||||
|
||||
|
||||
File: hledger_journal.info, Node: EDITOR SUPPORT, Prev: FILE FORMAT, Up: Top
|
||||
|
||||
@ -1595,109 +1668,113 @@ See the [[Cookbook]] at hledger.org for the latest information.
|
||||
|
||||
Tag Table:
|
||||
Node: Top76
|
||||
Node: FILE FORMAT2378
|
||||
Ref: #file-format2502
|
||||
Node: Transactions2805
|
||||
Ref: #transactions2926
|
||||
Node: Postings3610
|
||||
Ref: #postings3737
|
||||
Node: Dates4732
|
||||
Ref: #dates4847
|
||||
Node: Simple dates4912
|
||||
Ref: #simple-dates5038
|
||||
Node: Secondary dates5404
|
||||
Ref: #secondary-dates5558
|
||||
Node: Posting dates7121
|
||||
Ref: #posting-dates7250
|
||||
Node: Status8624
|
||||
Ref: #status8744
|
||||
Node: Description10452
|
||||
Ref: #description10590
|
||||
Node: Payee and note10910
|
||||
Ref: #payee-and-note11024
|
||||
Node: Account names11266
|
||||
Ref: #account-names11409
|
||||
Node: Amounts11896
|
||||
Ref: #amounts12032
|
||||
Node: Virtual Postings15049
|
||||
Ref: #virtual-postings15208
|
||||
Node: Balance Assertions16428
|
||||
Ref: #balance-assertions16603
|
||||
Node: Assertions and ordering17562
|
||||
Ref: #assertions-and-ordering17748
|
||||
Node: Assertions and included files18448
|
||||
Ref: #assertions-and-included-files18689
|
||||
Node: Assertions and multiple -f options19022
|
||||
Ref: #assertions-and-multiple--f-options19276
|
||||
Node: Assertions and commodities19408
|
||||
Ref: #assertions-and-commodities19638
|
||||
Node: Assertions and prices20794
|
||||
Ref: #assertions-and-prices21006
|
||||
Node: Assertions and subaccounts21446
|
||||
Ref: #assertions-and-subaccounts21673
|
||||
Node: Assertions and virtual postings21997
|
||||
Ref: #assertions-and-virtual-postings22237
|
||||
Node: Assertions and precision22379
|
||||
Ref: #assertions-and-precision22570
|
||||
Node: Balance Assignments22837
|
||||
Ref: #balance-assignments23018
|
||||
Node: Balance assignments and prices24183
|
||||
Ref: #balance-assignments-and-prices24355
|
||||
Node: Transaction prices24579
|
||||
Ref: #transaction-prices24748
|
||||
Node: Comments27016
|
||||
Ref: #comments27150
|
||||
Node: Tags28320
|
||||
Ref: #tags28438
|
||||
Node: Directives29840
|
||||
Ref: #directives29983
|
||||
Node: Comment blocks35591
|
||||
Ref: #comment-blocks35736
|
||||
Node: Including other files35912
|
||||
Ref: #including-other-files36092
|
||||
Node: Default year36500
|
||||
Ref: #default-year36669
|
||||
Node: Declaring commodities37092
|
||||
Ref: #declaring-commodities37275
|
||||
Node: Default commodity38502
|
||||
Ref: #default-commodity38678
|
||||
Node: Market prices39314
|
||||
Ref: #market-prices39479
|
||||
Node: Declaring accounts40320
|
||||
Ref: #declaring-accounts40496
|
||||
Node: Account comments41421
|
||||
Ref: #account-comments41584
|
||||
Node: Account subdirectives41979
|
||||
Ref: #account-subdirectives42174
|
||||
Node: Account types42487
|
||||
Ref: #account-types42671
|
||||
Node: Account display order44315
|
||||
Ref: #account-display-order44485
|
||||
Node: Rewriting accounts45614
|
||||
Ref: #rewriting-accounts45799
|
||||
Node: Basic aliases46534
|
||||
Ref: #basic-aliases46680
|
||||
Node: Regex aliases47384
|
||||
Ref: #regex-aliases47555
|
||||
Node: Multiple aliases48273
|
||||
Ref: #multiple-aliases48448
|
||||
Node: end aliases48946
|
||||
Ref: #end-aliases49093
|
||||
Node: Default parent account49194
|
||||
Ref: #default-parent-account49360
|
||||
Node: Periodic transactions50244
|
||||
Ref: #periodic-transactions50442
|
||||
Node: Two spaces after the period expression51568
|
||||
Ref: #two-spaces-after-the-period-expression51813
|
||||
Node: Forecasting with periodic transactions52298
|
||||
Ref: #forecasting-with-periodic-transactions52588
|
||||
Node: Budgeting with periodic transactions54275
|
||||
Ref: #budgeting-with-periodic-transactions54514
|
||||
Node: Auto postings / transaction modifiers54973
|
||||
Ref: #auto-postings-transaction-modifiers55184
|
||||
Node: Auto postings and transaction balancing / inferred amounts / balance assertions57356
|
||||
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions57673
|
||||
Node: EDITOR SUPPORT58051
|
||||
Ref: #editor-support58169
|
||||
Node: FILE FORMAT2352
|
||||
Ref: #file-format2476
|
||||
Node: Transactions2779
|
||||
Ref: #transactions2900
|
||||
Node: Postings3584
|
||||
Ref: #postings3711
|
||||
Node: Dates4706
|
||||
Ref: #dates4821
|
||||
Node: Simple dates4886
|
||||
Ref: #simple-dates5012
|
||||
Node: Secondary dates5378
|
||||
Ref: #secondary-dates5532
|
||||
Node: Posting dates7095
|
||||
Ref: #posting-dates7224
|
||||
Node: Status8596
|
||||
Ref: #status8716
|
||||
Node: Description10424
|
||||
Ref: #description10562
|
||||
Node: Payee and note10882
|
||||
Ref: #payee-and-note10996
|
||||
Node: Account names11331
|
||||
Ref: #account-names11474
|
||||
Node: Amounts11961
|
||||
Ref: #amounts12097
|
||||
Node: Virtual Postings15114
|
||||
Ref: #virtual-postings15273
|
||||
Node: Balance Assertions16493
|
||||
Ref: #balance-assertions16668
|
||||
Node: Assertions and ordering17627
|
||||
Ref: #assertions-and-ordering17813
|
||||
Node: Assertions and included files18513
|
||||
Ref: #assertions-and-included-files18754
|
||||
Node: Assertions and multiple -f options19087
|
||||
Ref: #assertions-and-multiple--f-options19341
|
||||
Node: Assertions and commodities19473
|
||||
Ref: #assertions-and-commodities19703
|
||||
Node: Assertions and prices20859
|
||||
Ref: #assertions-and-prices21071
|
||||
Node: Assertions and subaccounts21511
|
||||
Ref: #assertions-and-subaccounts21738
|
||||
Node: Assertions and virtual postings22062
|
||||
Ref: #assertions-and-virtual-postings22302
|
||||
Node: Assertions and precision22444
|
||||
Ref: #assertions-and-precision22635
|
||||
Node: Balance Assignments22902
|
||||
Ref: #balance-assignments23083
|
||||
Node: Balance assignments and prices24248
|
||||
Ref: #balance-assignments-and-prices24420
|
||||
Node: Transaction prices24644
|
||||
Ref: #transaction-prices24813
|
||||
Node: Comments27079
|
||||
Ref: #comments27213
|
||||
Node: Tags28383
|
||||
Ref: #tags28501
|
||||
Node: Directives29894
|
||||
Ref: #directives30037
|
||||
Node: Comment blocks35645
|
||||
Ref: #comment-blocks35790
|
||||
Node: Including other files35966
|
||||
Ref: #including-other-files36146
|
||||
Node: Default year36554
|
||||
Ref: #default-year36723
|
||||
Node: Declaring commodities37130
|
||||
Ref: #declaring-commodities37313
|
||||
Node: Default commodity38742
|
||||
Ref: #default-commodity38918
|
||||
Node: Market prices39552
|
||||
Ref: #market-prices39717
|
||||
Node: Declaring accounts40558
|
||||
Ref: #declaring-accounts40734
|
||||
Node: Account comments41659
|
||||
Ref: #account-comments41822
|
||||
Node: Account subdirectives42217
|
||||
Ref: #account-subdirectives42412
|
||||
Node: Account types42725
|
||||
Ref: #account-types42909
|
||||
Node: Account display order44551
|
||||
Ref: #account-display-order44721
|
||||
Node: Rewriting accounts45850
|
||||
Ref: #rewriting-accounts46035
|
||||
Node: Basic aliases46771
|
||||
Ref: #basic-aliases46917
|
||||
Node: Regex aliases47621
|
||||
Ref: #regex-aliases47793
|
||||
Node: Combining aliases48511
|
||||
Ref: #combining-aliases48689
|
||||
Node: end aliases49965
|
||||
Ref: #end-aliases50113
|
||||
Node: Default parent account50214
|
||||
Ref: #default-parent-account50380
|
||||
Node: Periodic transactions51264
|
||||
Ref: #periodic-transactions51462
|
||||
Node: Two spaces after the period expression52588
|
||||
Ref: #two-spaces-after-the-period-expression52833
|
||||
Node: Forecasting with periodic transactions53318
|
||||
Ref: #forecasting-with-periodic-transactions53608
|
||||
Node: Budgeting with periodic transactions55634
|
||||
Ref: #budgeting-with-periodic-transactions55873
|
||||
Node: Auto postings / transaction modifiers56332
|
||||
Ref: #auto-postings-transaction-modifiers56543
|
||||
Node: Auto postings and dates58772
|
||||
Ref: #auto-postings-and-dates59029
|
||||
Node: Auto postings and transaction balancing / inferred amounts / balance assertions59204
|
||||
Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions59579
|
||||
Node: Auto posting tags59957
|
||||
Ref: #auto-posting-tags60196
|
||||
Node: EDITOR SUPPORT60861
|
||||
Ref: #editor-support60979
|
||||
|
||||
End Tag Table
|
||||
|
@ -229,19 +229,20 @@ FILE FORMAT
|
||||
comments.
|
||||
|
||||
Payee and note
|
||||
You can optionally include a | (pipe) character in a description to
|
||||
subdivide it into a payee/payer name on the left and additional notes
|
||||
on the right. This may be worthwhile if you need to do more precise
|
||||
querying and pivoting by payee.
|
||||
You can optionally include a | (pipe) character in descriptions to sub-
|
||||
divide the description into separate fields for payee/payer name on the
|
||||
left (up to the first |) and an additional note field on the right
|
||||
(after the first |). This may be worthwhile if you need to do more
|
||||
precise querying and pivoting by payee or by note.
|
||||
|
||||
Account names
|
||||
Account names typically have several parts separated by a full colon,
|
||||
from which hledger derives a hierarchical chart of accounts. They can
|
||||
be anything you like, but in finance there are traditionally five top-
|
||||
Account names typically have several parts separated by a full colon,
|
||||
from which hledger derives a hierarchical chart of accounts. They can
|
||||
be anything you like, but in finance there are traditionally five top-
|
||||
level accounts: assets, liabilities, income, expenses, and equity.
|
||||
|
||||
Account names may contain single spaces, eg: assets:accounts receiv-
|
||||
able. Because of this, they must always be followed by two or more
|
||||
Account names may contain single spaces, eg: assets:accounts receiv-
|
||||
able. Because of this, they must always be followed by two or more
|
||||
spaces (or newline).
|
||||
|
||||
Account names can be aliased.
|
||||
@ -250,7 +251,7 @@ FILE FORMAT
|
||||
After the account name, there is usually an amount. Important: between
|
||||
account name and amount, there must be two or more spaces.
|
||||
|
||||
Amounts consist of a number and (usually) a currency symbol or commod-
|
||||
Amounts consist of a number and (usually) a currency symbol or commod-
|
||||
ity name. Some examples:
|
||||
|
||||
2.00001
|
||||
@ -266,35 +267,35 @@ FILE FORMAT
|
||||
|
||||
As you can see, the amount format is somewhat flexible:
|
||||
|
||||
o amounts are a number (the "quantity") and optionally a currency sym-
|
||||
o amounts are a number (the "quantity") and optionally a currency sym-
|
||||
bol/commodity name (the "commodity").
|
||||
|
||||
o the commodity is a symbol, word, or phrase, on the left or right,
|
||||
with or without a separating space. If the commodity contains num-
|
||||
bers, spaces or non-word punctuation it must be enclosed in double
|
||||
o the commodity is a symbol, word, or phrase, on the left or right,
|
||||
with or without a separating space. If the commodity contains num-
|
||||
bers, spaces or non-word punctuation it must be enclosed in double
|
||||
quotes.
|
||||
|
||||
o negative amounts with a commodity on the left can have the minus sign
|
||||
before or after it
|
||||
|
||||
o digit groups (thousands, or any other grouping) can be separated by
|
||||
space or comma or period and should be used as separator between all
|
||||
o digit groups (thousands, or any other grouping) can be separated by
|
||||
space or comma or period and should be used as separator between all
|
||||
groups
|
||||
|
||||
o decimal part can be separated by comma or period and should be dif-
|
||||
o decimal part can be separated by comma or period and should be dif-
|
||||
ferent from digit groups separator
|
||||
|
||||
o scientific E-notation is allowed. Be careful not to use a digit
|
||||
group separator character in scientific notation, as it's not sup-
|
||||
o scientific E-notation is allowed. Be careful not to use a digit
|
||||
group separator character in scientific notation, as it's not sup-
|
||||
ported and it might get mistaken for a decimal point. (Declaring the
|
||||
digit group separator character explicitly with a commodity directive
|
||||
will prevent this.)
|
||||
|
||||
You can use any of these variations when recording data. However,
|
||||
there is some ambiguous way of representing numbers like $1.000 and
|
||||
$1,000 both may mean either one thousand or one dollar. By default
|
||||
hledger will assume that this is sole delimiter is used only for deci-
|
||||
mals. On the other hand commodity format declared prior to that line
|
||||
You can use any of these variations when recording data. However,
|
||||
there is some ambiguous way of representing numbers like $1.000 and
|
||||
$1,000 both may mean either one thousand or one dollar. By default
|
||||
hledger will assume that this is sole delimiter is used only for deci-
|
||||
mals. On the other hand commodity format declared prior to that line
|
||||
will help to resolve that ambiguity differently:
|
||||
|
||||
commodity $1,000.00
|
||||
@ -303,38 +304,38 @@ FILE FORMAT
|
||||
expenses:gifts $1,000
|
||||
assets
|
||||
|
||||
Though journal may contain mixed styles to represent amount, when
|
||||
hledger displays amounts, it will choose a consistent format for each
|
||||
commodity. (Except for price amounts, which are always formatted as
|
||||
Though journal may contain mixed styles to represent amount, when
|
||||
hledger displays amounts, it will choose a consistent format for each
|
||||
commodity. (Except for price amounts, which are always formatted as
|
||||
written). The display format is chosen as follows:
|
||||
|
||||
o if there is a commodity directive specifying the format, that is used
|
||||
|
||||
o otherwise the format is inferred from the first posting amount in
|
||||
that commodity in the journal, and the precision (number of decimal
|
||||
o otherwise the format is inferred from the first posting amount in
|
||||
that commodity in the journal, and the precision (number of decimal
|
||||
places) will be the maximum from all posting amounts in that commmod-
|
||||
ity
|
||||
|
||||
o or if there are no such amounts in the journal, a default format is
|
||||
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 usually don't affect amount
|
||||
format inference, but in some situations they can do so indirectly.
|
||||
(Eg when D's default commodity is applied to a commodity-less amount,
|
||||
Price amounts and amounts in D directives usually don't affect amount
|
||||
format inference, but in some situations 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, set the desired
|
||||
when -V is used.) If you find this causing problems, set the desired
|
||||
format with a commodity directive.
|
||||
|
||||
Virtual Postings
|
||||
When you parenthesise the account name in a posting, we call that a
|
||||
When you parenthesise the account name in a posting, we call that a
|
||||
virtual posting, which means:
|
||||
|
||||
o it is ignored when checking that the transaction is balanced
|
||||
|
||||
o it is excluded from reports when the --real/-R flag is used, or the
|
||||
o it is excluded from reports when the --real/-R flag is used, or the
|
||||
real:1 query.
|
||||
|
||||
You could use this, eg, to set an account's opening balance without
|
||||
You could use this, eg, to set an account's opening balance without
|
||||
needing to use the equity:opening balances account:
|
||||
|
||||
1/1 special unbalanced posting to set initial balance
|
||||
@ -342,8 +343,8 @@ FILE FORMAT
|
||||
|
||||
When the account name is bracketed, we call it a balanced virtual post-
|
||||
ing. This is like an ordinary virtual posting except the balanced vir-
|
||||
tual postings in a transaction must balance to 0, like the real post-
|
||||
ings (but separately from them). Balanced virtual postings are also
|
||||
tual postings in a transaction must balance to 0, like the real post-
|
||||
ings (but separately from them). Balanced virtual postings are also
|
||||
excluded by --real/-R or real:1.
|
||||
|
||||
1/1 buy food with cash, and update some budget-tracking subaccounts elsewhere
|
||||
@ -353,13 +354,13 @@ FILE FORMAT
|
||||
[assets:checking:budget:food] $-10
|
||||
|
||||
Virtual postings have some legitimate uses, but those are few. You can
|
||||
usually find an equivalent journal entry using real postings, which is
|
||||
usually find an equivalent journal entry using real postings, which is
|
||||
more correct and provides better error checking.
|
||||
|
||||
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
|
||||
@ -371,31 +372,31 @@ 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.
|
||||
|
||||
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
|
||||
@ -403,8 +404,8 @@ 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
|
||||
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.
|
||||
@ -412,7 +413,7 @@ FILE FORMAT
|
||||
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).
|
||||
|
||||
@ -432,7 +433,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
|
||||
@ -446,21 +447,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
|
||||
@ -474,16 +475,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
|
||||
@ -501,14 +502,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
|
||||
@ -520,9 +521,9 @@ FILE FORMAT
|
||||
|
||||
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.
|
||||
@ -533,7 +534,7 @@ FILE FORMAT
|
||||
|
||||
2009/1/1
|
||||
assets:euros EUR100 @ $1.35 ; one hundred euros purchased at $1.35 each
|
||||
assets:dollars ; balancing amount is -$135.00
|
||||
assets:dollars ; balancing amount is -$135.00
|
||||
|
||||
2. Write the total price, as @@ TOTALPRICE after the amount:
|
||||
|
||||
@ -546,12 +547,12 @@ FILE FORMAT
|
||||
|
||||
2009/1/1
|
||||
assets:euros EUR100 ; one hundred euros purchased
|
||||
assets:dollars $-135 ; for $135
|
||||
assets:dollars $-135 ; for $135
|
||||
|
||||
(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:
|
||||
|
||||
@ -562,13 +563,13 @@ 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:
|
||||
|
||||
2009/1/1
|
||||
assets:dollars $-135 ; 135 dollars sold
|
||||
assets:dollars $-135 ; 135 dollars sold
|
||||
assets:euros EUR100 ; for 100 euros
|
||||
|
||||
$ hledger bal -N --flat -B
|
||||
@ -577,14 +578,14 @@ FILE FORMAT
|
||||
|
||||
Comments
|
||||
Lines in the journal beginning with a semicolon (;) or hash (#) or star
|
||||
(*) are comments, and will be ignored. (Star comments cause org-mode
|
||||
nodes to be ignored, allowing emacs users to fold and navigate their
|
||||
(*) are comments, and will be ignored. (Star comments cause org-mode
|
||||
nodes to be ignored, allowing emacs users to fold and navigate their
|
||||
journals with org-mode or orgstruct-mode.)
|
||||
|
||||
You can attach comments to a transaction by writing them after the
|
||||
description and/or indented on the following lines (before the post-
|
||||
ings). Similarly, you can attach comments to an individual posting by
|
||||
writing them after the amount and/or indented on the following lines.
|
||||
You can attach comments to a transaction by writing them after the
|
||||
description and/or indented on the following lines (before the post-
|
||||
ings). Similarly, you can attach comments to an individual posting by
|
||||
writing them after the amount and/or indented on the following lines.
|
||||
Transaction and posting comments must begin with a semicolon (;).
|
||||
|
||||
Some examples:
|
||||
@ -608,28 +609,28 @@ FILE FORMAT
|
||||
; another comment line for posting 2
|
||||
; a file comment (because not indented)
|
||||
|
||||
You can also comment larger regions of a file using comment and end
|
||||
You can also comment larger regions of a file using comment and end
|
||||
comment directives.
|
||||
|
||||
Tags
|
||||
Tags are a way to add extra labels or labelled data to postings and
|
||||
Tags are a way to add extra labels or labelled data to postings and
|
||||
transactions, which you can then search or pivot on.
|
||||
|
||||
A simple tag is a word (which may contain hyphens) followed by a full
|
||||
A simple tag is a word (which may contain hyphens) followed by a full
|
||||
colon, written inside a transaction or posting comment line:
|
||||
|
||||
2017/1/16 bought groceries ; sometag:
|
||||
|
||||
Tags can have a value, which is the text after the colon, up to the
|
||||
Tags can have a value, which is the text after the colon, up to the
|
||||
next comma or end of line, with leading/trailing whitespace removed:
|
||||
|
||||
expenses:food $10 ; a-posting-tag: the tag value
|
||||
expenses:food $10 ; a-posting-tag: the tag value
|
||||
|
||||
Note this means hledger's tag values can not contain commas or new-
|
||||
Note this means hledger's tag values can not contain commas or new-
|
||||
lines. Ending at commas means you can write multiple short tags on one
|
||||
line, comma separated:
|
||||
|
||||
assets:checking ; a comment containing tag1:, tag2: some value ...
|
||||
assets:checking ; a comment containing tag1:, tag2: some value ...
|
||||
|
||||
Here,
|
||||
|
||||
@ -639,70 +640,69 @@ FILE FORMAT
|
||||
|
||||
o "tag2" is another tag, whose value is "some value ..."
|
||||
|
||||
Tags in a transaction comment affect the transaction and all of its
|
||||
postings, while tags in a posting comment affect only that posting.
|
||||
For example, the following transaction has three tags (A, TAG2, third-
|
||||
Tags in a transaction comment affect the transaction and all of its
|
||||
postings, while tags in a posting comment affect only that posting.
|
||||
For example, the following transaction has three tags (A, TAG2, third-
|
||||
tag) and the posting has four (those plus posting-tag):
|
||||
|
||||
1/1 a transaction ; A:, TAG2:
|
||||
; third-tag: a third transaction tag, <- with a value
|
||||
(a) $1 ; posting-tag:
|
||||
|
||||
Tags are like Ledger's metadata feature, except hledger's tag values
|
||||
Tags are like Ledger's metadata feature, except hledger's tag values
|
||||
are simple strings.
|
||||
|
||||
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 subdi- purpose can affect (as of
|
||||
direc- end subdi- purpose can affect (as of
|
||||
tive directive rec- 2018/06)
|
||||
tives
|
||||
------------------------------------------------------------------------------------
|
||||
account any document account names, all entries in all
|
||||
text declare account types & dis- files, before or
|
||||
|
||||
|
||||
|
||||
account any document account names, all entries in all
|
||||
text declare account types & dis- files, before or
|
||||
play order after
|
||||
|
||||
|
||||
|
||||
|
||||
alias end rewrite account names following
|
||||
aliases inline/included
|
||||
entries until end
|
||||
of current file or
|
||||
of current file or
|
||||
end directive
|
||||
apply end apply prepend a common parent to following
|
||||
apply end apply prepend a common parent to following
|
||||
account account account names inline/included
|
||||
entries until end
|
||||
of current file or
|
||||
of current file or
|
||||
end directive
|
||||
comment end com- ignore part of journal following
|
||||
ment inline/included
|
||||
entries until end
|
||||
of current file or
|
||||
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, number commodity: all com-
|
||||
D declare a commodity, number commodity: all com-
|
||||
notation & display style for modityless entries
|
||||
commodityless amounts in all files; num-
|
||||
ber notation: fol-
|
||||
commodityless amounts in all files; num-
|
||||
ber notation: fol-
|
||||
lowing commodity-
|
||||
less entries and
|
||||
less entries and
|
||||
entries in that
|
||||
commodity in all
|
||||
commodity in all
|
||||
files; display
|
||||
style: amounts of
|
||||
that commodity in
|
||||
@ -713,7 +713,7 @@ FILE FORMAT
|
||||
commodity commodity in
|
||||
reports, when -V is
|
||||
used
|
||||
Y declare a year for yearless following
|
||||
Y declare a year for yearless following
|
||||
dates inline/included
|
||||
entries until end
|
||||
of current file
|
||||
@ -723,9 +723,9 @@ FILE FORMAT
|
||||
|
||||
subdirec- optional indented directive line immediately following a par-
|
||||
tive ent directive
|
||||
number how to interpret numbers when parsing journal entries (the
|
||||
notation identity of the decimal separator character). (Currently
|
||||
each commodity can have its own notation, even in the same
|
||||
number how to interpret numbers when parsing journal entries (the
|
||||
notation identity of the decimal separator character). (Currently
|
||||
each commodity can have its own notation, even in the same
|
||||
file.)
|
||||
display how to display amounts of a commodity in reports (symbol side
|
||||
style and spacing, digit groups, decimal separator, decimal places)
|
||||
@ -733,59 +733,60 @@ FILE FORMAT
|
||||
scope are affected by a directive
|
||||
|
||||
As you can see, directives vary in which journal entries and files they
|
||||
affect, and whether they are focussed on input (parsing) or output
|
||||
affect, and whether they are focussed on input (parsing) or output
|
||||
(reports). 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
|
||||
The include directive can only be used in journal files. It can
|
||||
include 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
|
||||
Y2009 ; set default year to 2009
|
||||
|
||||
12/15 ; equivalent to 2009/12/15
|
||||
12/15 ; equivalent to 2009/12/15
|
||||
expenses 1
|
||||
assets
|
||||
|
||||
Y2010 ; change default year to 2010
|
||||
Y2010 ; change default year to 2010
|
||||
|
||||
2009/1/30 ; specifies the year, not affected
|
||||
expenses 1
|
||||
assets
|
||||
|
||||
1/31 ; equivalent to 2010/1/31
|
||||
1/31 ; equivalent to 2010/1/31
|
||||
expenses 1
|
||||
assets
|
||||
|
||||
Declaring commodities
|
||||
The commodity directive declares commodities which may be used in the
|
||||
journal (though currently we do not enforce this). It may be written
|
||||
on a single line, like this:
|
||||
The commodity directive declares commodities which may be used in the
|
||||
journal, and their display format.
|
||||
|
||||
It may be written on a single line, like this:
|
||||
|
||||
; commodity EXAMPLEAMOUNT
|
||||
|
||||
@ -807,13 +808,19 @@ FILE FORMAT
|
||||
commodity INR
|
||||
format INR 9,99,99,999.00
|
||||
|
||||
Commodity directives have a second purpose: they define the standard
|
||||
display format for amounts in the commodity. Normally the display for-
|
||||
mat is inferred from journal entries, but this can be unpredictable;
|
||||
declaring it with a commodity directive overrides this and removes
|
||||
ambiguity. Towards this end, amounts in commodity directives must
|
||||
always be written with a decimal point (a period or comma, followed by
|
||||
0 or more decimal digits).
|
||||
Declaring commodites may be useful as documentation, but currently we
|
||||
do not enforce that only declared commodities may be used. This direc-
|
||||
tive is mainly useful for customising the preferred display format for
|
||||
a commodity.
|
||||
|
||||
Normally the display format is inferred from journal entries, but this
|
||||
can be unpredictable; declaring it with a commodity directive overrides
|
||||
this and removes ambiguity. Towards this end, amounts in commodity
|
||||
directives must always be written with a decimal point (a period or
|
||||
comma, followed by 0 or more decimal digits).
|
||||
|
||||
Commodity directives do not affect how amounts are parsed; the parser
|
||||
will read multiple formats.
|
||||
|
||||
Default commodity
|
||||
The D directive sets a default commodity (and display format), to be
|
||||
@ -827,7 +834,7 @@ FILE FORMAT
|
||||
D $1,000.00
|
||||
|
||||
1/1
|
||||
a 5 ; <- commodity-less amount, becomes $1
|
||||
a 5 ; <- commodity-less amount, becomes $1
|
||||
b
|
||||
|
||||
As with the commodity directive, the amount must always be written with
|
||||
@ -947,11 +954,11 @@ FILE FORMAT
|
||||
names mentioned above, you might need to help the reports a bit. Eg:
|
||||
|
||||
; make "liabilities" not have the liability type - who knows why
|
||||
account liabilities ; type:E
|
||||
account liabilities ; type:E
|
||||
|
||||
; we need to ensure some other account has the liability type,
|
||||
; otherwise balancesheet would still show "liabilities" under Liabilities
|
||||
account - ; type:L
|
||||
account - ; type:L
|
||||
|
||||
Account display order
|
||||
Account directives also set the order in which accounts are displayed,
|
||||
@ -1047,17 +1054,38 @@ FILE FORMAT
|
||||
line, to end of option argument), so it can contain trailing white-
|
||||
space.
|
||||
|
||||
Multiple aliases
|
||||
You can define as many aliases as you like using directives or command-
|
||||
line options. Aliases are recursive - each alias sees the result of
|
||||
applying previous ones. (This is different from Ledger, where aliases
|
||||
are non-recursive by default). Aliases are applied in the following
|
||||
order:
|
||||
Combining aliases
|
||||
You can define as many aliases as you like, using journal directives
|
||||
and/or command line options.
|
||||
|
||||
1. alias directives, most recently seen first (recent directives take
|
||||
precedence over earlier ones; directives not yet seen are ignored)
|
||||
Recursive aliases - where an account name is rewritten by one alias,
|
||||
then by another alias, and so on - are allowed. Each alias sees the
|
||||
effect of previously applied aliases.
|
||||
|
||||
2. alias options, in the order they appear on the command line
|
||||
In such cases it can be important to understand which aliases will be
|
||||
applied and in which order. For (each account name in) each journal
|
||||
entry, we apply:
|
||||
|
||||
1. alias directives preceding the journal entry, most recently parsed
|
||||
first (ie, reading upward from the journal entry, bottom to top)
|
||||
|
||||
2. --alias options, in the order they appeared on the command line
|
||||
(left to right).
|
||||
|
||||
In other words, for (an account name in) a given journal entry:
|
||||
|
||||
o the nearest alias declaration before/above the entry is applied first
|
||||
|
||||
o the next alias before/above that will be be applied next, and so on
|
||||
|
||||
o aliases defined after/below the entry do not affect it.
|
||||
|
||||
This gives nearby aliases precedence over distant ones, and helps pro-
|
||||
vide semantic stability - aliases will keep working the same way inde-
|
||||
pendent of which files are being read and in which order.
|
||||
|
||||
In case of trouble, adding --debug=6 to the command line will show
|
||||
which aliases are being applied when.
|
||||
|
||||
end aliases
|
||||
You can clear (forget) all currently defined aliases with the end
|
||||
@ -1141,8 +1169,18 @@ FILE FORMAT
|
||||
With the --forecast flag, each periodic transaction rule generates
|
||||
future transactions recurring at the specified interval. These are not
|
||||
saved in the journal, but appear in all reports. They will look like
|
||||
normal transactions, but with an extra tag named recur, whose value is
|
||||
the generating period expression.
|
||||
normal transactions, but with an extra tag:
|
||||
|
||||
o generated-transaction:~ PERIODICEXPR - shows that this was generated
|
||||
by a periodic transaction rule, and the period
|
||||
|
||||
There is also a hidden tag, with an underscore prefix, which does not
|
||||
appear in hledger's output:
|
||||
|
||||
o _generated-transaction:~ PERIODICEXPR
|
||||
|
||||
This can be used to match transactions generated "just now", rather
|
||||
than generated in the past and saved to the journal.
|
||||
|
||||
Forecast transactions start on the first occurrence, and end on the
|
||||
last occurrence, of their interval within the forecast period. The
|
||||
@ -1189,16 +1227,16 @@ FILE FORMAT
|
||||
|
||||
|
||||
Auto postings / transaction modifiers
|
||||
Transaction modifier rules describe changes to be applied automatically
|
||||
to certain matched transactions. Currently just one kind of change is
|
||||
possible - adding extra postings, which we call "automated postings" or
|
||||
just "auto postings". These rules become active when you use the
|
||||
--auto flag.
|
||||
Transaction modifier rules, AKA auto posting rules, describe changes to
|
||||
be applied automatically to certain matched transactions. Currently
|
||||
just one kind of change is possible - adding extra postings, which we
|
||||
call "automated postings" or just "auto postings". These rules become
|
||||
active when you use the --auto flag.
|
||||
|
||||
A transaction modifier, AKA auto posting rule, looks much like a normal
|
||||
transaction except the first line is an equals sign followed by a query
|
||||
that matches certain postings (mnemonic: = suggests matching). And
|
||||
each "posting" is actually a posting-generating rule:
|
||||
A transaction modifier rule looks much like a normal transaction except
|
||||
the first line is an equals sign followed by a query that matches cer-
|
||||
tain postings (mnemonic: = suggests matching). And each "posting" is
|
||||
actually a posting-generating rule:
|
||||
|
||||
= QUERY
|
||||
ACCT AMT
|
||||
@ -1257,6 +1295,11 @@ FILE FORMAT
|
||||
assets:checking:gifts -$20
|
||||
assets:checking $20
|
||||
|
||||
Auto postings and dates
|
||||
A posting date (or secondary date) in the matched posting, or (taking
|
||||
precedence) a posting date in the auto posting rule itself, will also
|
||||
be used in the generated posting.
|
||||
|
||||
Auto postings and transaction balancing / inferred amounts / balance asser-
|
||||
tions
|
||||
Currently, transaction modifiers are applied / auto postings are added:
|
||||
@ -1270,19 +1313,37 @@ FILE FORMAT
|
||||
after auto postings are added. This changed in hledger 1.12+; see #893
|
||||
for background.
|
||||
|
||||
Auto posting tags
|
||||
Postings added by transaction modifiers will have some extra tags:
|
||||
|
||||
o generated-posting:= QUERY - shows this was generated by an auto post-
|
||||
ing rule, and the query
|
||||
|
||||
o _generated-posting:= QUERY - a hidden tag, which does not appear in
|
||||
hledger's output. This can be used to match postings generated "just
|
||||
now", rather than generated in the past and saved to the journal.
|
||||
|
||||
Also, any transaction that has been changed by transaction modifier
|
||||
rules will have these tags added:
|
||||
|
||||
o modified: - this transaction was modified
|
||||
|
||||
o _modified: - a hidden tag not appearing in the comment; this transac-
|
||||
tion was modified "just now".
|
||||
|
||||
EDITOR SUPPORT
|
||||
Helper modes exist for popular text editors, which make working with
|
||||
Helper modes exist for popular text editors, which make working with
|
||||
journal files easier. They add colour, formatting, tab completion, and
|
||||
helpful commands, and are quite recommended if you edit your journal
|
||||
with a text editor. They include ledger-mode or hledger-mode for
|
||||
Emacs, vim-ledger for Vim, hledger-vscode for Visual Studio Code, and
|
||||
others. See the [[Cookbook]] at hledger.org for the latest informa-
|
||||
helpful commands, and are quite recommended if you edit your journal
|
||||
with a text editor. They include ledger-mode or hledger-mode for
|
||||
Emacs, vim-ledger for Vim, hledger-vscode for Visual Studio Code, and
|
||||
others. See the [[Cookbook]] at hledger.org for the latest informa-
|
||||
tion.
|
||||
|
||||
|
||||
|
||||
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)
|
||||
|
||||
|
||||
@ -1296,7 +1357,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)
|
||||
|
||||
@ -1304,4 +1365,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger 1.14.99 March 2019 hledger_journal(5)
|
||||
hledger 1.15 August 2019 hledger_journal(5)
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
.TH "hledger_timeclock" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
||||
.TH "hledger_timeclock" "5" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||
|
||||
|
||||
|
||||
|
@ -4,8 +4,8 @@ stdin.
|
||||
|
||||
File: hledger_timeclock.info, Node: Top, Up: (dir)
|
||||
|
||||
hledger_timeclock(5) hledger 1.14.99
|
||||
************************************
|
||||
hledger_timeclock(5) hledger 1.15
|
||||
*********************************
|
||||
|
||||
hledger can read timeclock files. As with Ledger, these are (a subset
|
||||
of) timeclock.el's format, containing clock-in and clock-out entries as
|
||||
|
@ -78,4 +78,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger 1.14.99 March 2019 hledger_timeclock(5)
|
||||
hledger 1.15 August 2019 hledger_timeclock(5)
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
.TH "hledger_timedot" "5" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
||||
.TH "hledger_timedot" "5" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||
|
||||
|
||||
|
||||
|
@ -4,8 +4,8 @@ stdin.
|
||||
|
||||
File: hledger_timedot.info, Node: Top, Next: FILE FORMAT, Up: (dir)
|
||||
|
||||
hledger_timedot(5) hledger 1.14.99
|
||||
**********************************
|
||||
hledger_timedot(5) hledger 1.15
|
||||
*******************************
|
||||
|
||||
Timedot is a plain text format for logging dated, categorised quantities
|
||||
(of time, usually), supported by hledger. It is convenient for
|
||||
@ -111,7 +111,7 @@ $ hledger -f t.timedot --alias /\\./=: bal date:2016/2/4
|
||||
|
||||
Tag Table:
|
||||
Node: Top76
|
||||
Node: FILE FORMAT814
|
||||
Ref: #file-format915
|
||||
Node: FILE FORMAT808
|
||||
Ref: #file-format909
|
||||
|
||||
End Tag Table
|
||||
|
@ -124,4 +124,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger 1.14.99 March 2019 hledger_timedot(5)
|
||||
hledger 1.15 August 2019 hledger_timedot(5)
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
.TH "hledger-ui" "1" "March 2019" "hledger-ui 1.14.99" "hledger User Manuals"
|
||||
.TH "hledger-ui" "1" "August 2019" "hledger-ui 1.15" "hledger User Manuals"
|
||||
|
||||
|
||||
|
||||
@ -118,7 +118,7 @@ multiperiod/multicolumn report by year
|
||||
.TP
|
||||
.B \f[C]-p --period=PERIODEXP\f[R]
|
||||
set start date, end date, and/or reporting interval all at once using
|
||||
period expressions syntax (overrides the flags above)
|
||||
period expressions syntax
|
||||
.TP
|
||||
.B \f[C]--date2\f[R]
|
||||
match the secondary date instead (see command help for other effects)
|
||||
@ -426,6 +426,9 @@ Symptoms include: unresponsive UI, periodic resetting of the cursor
|
||||
position, momentary display of parse errors, high CPU usage eventually
|
||||
subsiding, and possibly a small but persistent build-up of CPU usage
|
||||
until the program is restarted.
|
||||
.PP
|
||||
Also, if you are viewing files mounted from another machine,
|
||||
\f[C]--watch\f[R] requires that both machine clocks are roughly in step.
|
||||
|
||||
|
||||
.SH "REPORTING BUGS"
|
||||
|
@ -3,8 +3,8 @@ This is hledger-ui.info, produced by makeinfo version 6.5 from stdin.
|
||||
|
||||
File: hledger-ui.info, Node: Top, Next: OPTIONS, Up: (dir)
|
||||
|
||||
hledger-ui(1) hledger-ui 1.14.99
|
||||
********************************
|
||||
hledger-ui(1) hledger-ui 1.15
|
||||
*****************************
|
||||
|
||||
hledger-ui is hledger's curses-style interface, providing an efficient
|
||||
full-window text UI for viewing accounts and transactions, and some
|
||||
@ -117,7 +117,7 @@ the data.
|
||||
'-p --period=PERIODEXP'
|
||||
|
||||
set start date, end date, and/or reporting interval all at once
|
||||
using period expressions syntax (overrides the flags above)
|
||||
using period expressions syntax
|
||||
'--date2'
|
||||
|
||||
match the secondary date instead (see command help for other
|
||||
@ -399,19 +399,19 @@ to cancel the reload attempt.)
|
||||
|
||||
Tag Table:
|
||||
Node: Top71
|
||||
Node: OPTIONS1107
|
||||
Ref: #options1204
|
||||
Node: KEYS4623
|
||||
Ref: #keys4718
|
||||
Node: SCREENS7974
|
||||
Ref: #screens8059
|
||||
Node: Accounts screen8149
|
||||
Ref: #accounts-screen8277
|
||||
Node: Register screen10493
|
||||
Ref: #register-screen10648
|
||||
Node: Transaction screen12644
|
||||
Ref: #transaction-screen12802
|
||||
Node: Error screen13672
|
||||
Ref: #error-screen13794
|
||||
Node: OPTIONS1101
|
||||
Ref: #options1198
|
||||
Node: KEYS4589
|
||||
Ref: #keys4684
|
||||
Node: SCREENS7940
|
||||
Ref: #screens8025
|
||||
Node: Accounts screen8115
|
||||
Ref: #accounts-screen8243
|
||||
Node: Register screen10459
|
||||
Ref: #register-screen10614
|
||||
Node: Transaction screen12610
|
||||
Ref: #transaction-screen12768
|
||||
Node: Error screen13638
|
||||
Ref: #error-screen13760
|
||||
|
||||
End Tag Table
|
||||
|
@ -114,7 +114,7 @@ OPTIONS
|
||||
|
||||
-p --period=PERIODEXP
|
||||
set start date, end date, and/or reporting interval all at once
|
||||
using period expressions syntax (overrides the flags above)
|
||||
using period expressions syntax
|
||||
|
||||
--date2
|
||||
match the secondary date instead (see command help for other
|
||||
@ -381,10 +381,13 @@ BUGS
|
||||
siding, and possibly a small but persistent build-up of CPU usage until
|
||||
the program is restarted.
|
||||
|
||||
Also, if you are viewing files mounted from another machine, --watch
|
||||
requires that both machine clocks are roughly in step.
|
||||
|
||||
|
||||
|
||||
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)
|
||||
|
||||
|
||||
@ -398,7 +401,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)
|
||||
|
||||
@ -406,4 +409,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger-ui 1.14.99 March 2019 hledger-ui(1)
|
||||
hledger-ui 1.15 August 2019 hledger-ui(1)
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
.TH "hledger-web" "1" "March 2019" "hledger-web 1.14.99" "hledger User Manuals"
|
||||
.TH "hledger-web" "1" "August 2019" "hledger-web 1.15" "hledger User Manuals"
|
||||
|
||||
|
||||
|
||||
@ -54,6 +54,10 @@ Note: if invoking hledger-web as a hledger subcommand, write
|
||||
.B \f[C]--serve\f[R]
|
||||
serve and log requests, don\[aq]t browse or auto-exit
|
||||
.TP
|
||||
.B \f[C]--serve-api\f[R]
|
||||
like --serve, but serve only the JSON web API, without the server-side
|
||||
web UI
|
||||
.TP
|
||||
.B \f[C]--host=IPADDR\f[R]
|
||||
listen on this IP address (default: 127.0.0.1)
|
||||
.TP
|
||||
@ -128,7 +132,7 @@ multiperiod/multicolumn report by year
|
||||
.TP
|
||||
.B \f[C]-p --period=PERIODEXP\f[R]
|
||||
set start date, end date, and/or reporting interval all at once using
|
||||
period expressions syntax (overrides the flags above)
|
||||
period expressions syntax
|
||||
.TP
|
||||
.B \f[C]--date2\f[R]
|
||||
match the secondary date instead (see command help for other effects)
|
||||
@ -194,6 +198,8 @@ open in a browser window, and will exit after two minutes of inactivity
|
||||
(no requests and no browser windows viewing it).
|
||||
With \f[C]--serve\f[R], it just runs the web app without exiting, and
|
||||
logs requests to the console.
|
||||
With \f[C]--serve-api\f[R], only the JSON web api (see below) is served,
|
||||
with the usual HTML server-side web UI disabled.
|
||||
.PP
|
||||
By default the server listens on IP address 127.0.0.1, accessible only
|
||||
to local requests.
|
||||
@ -276,6 +282,9 @@ 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 until the file has been fixed.
|
||||
.PP
|
||||
(Note: if you are viewing files mounted from another machine, make sure
|
||||
that both machine clocks are roughly in step.)
|
||||
.SH JSON API
|
||||
.PP
|
||||
In addition to the web UI, hledger-web provides some API routes that
|
||||
@ -329,6 +338,10 @@ And here\[aq]s how to test adding that with curl:
|
||||
$ curl -s http://127.0.0.1:5000/add -X PUT -H \[aq]Content-Type: application/json\[aq] --data-binary \[at]txn.pretty.json; echo
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
By default, both the server-side HTML UI and the JSON API are served.
|
||||
Running with \f[C]--serve-api\f[R] disables the former, useful if you
|
||||
only want to serve the API.
|
||||
.SH ENVIRONMENT
|
||||
.PP
|
||||
\f[B]LEDGER_FILE\f[R] The journal file path when not specified with
|
||||
|
@ -3,8 +3,8 @@ This is hledger-web.info, produced by makeinfo version 6.5 from stdin.
|
||||
|
||||
File: hledger-web.info, Node: Top, Next: OPTIONS, Up: (dir)
|
||||
|
||||
hledger-web(1) hledger-web 1.14.99
|
||||
**********************************
|
||||
hledger-web(1) hledger-web 1.15
|
||||
*******************************
|
||||
|
||||
hledger-web is hledger's web interface. It starts a simple web
|
||||
application for browsing and adding transactions, and optionally opens
|
||||
@ -50,6 +50,10 @@ before options, as shown in the synopsis above.
|
||||
'--serve'
|
||||
|
||||
serve and log requests, don't browse or auto-exit
|
||||
'--serve-api'
|
||||
|
||||
like -serve, but serve only the JSON web API, without the
|
||||
server-side web UI
|
||||
'--host=IPADDR'
|
||||
|
||||
listen on this IP address (default: 127.0.0.1)
|
||||
@ -127,7 +131,7 @@ before options, as shown in the synopsis above.
|
||||
'-p --period=PERIODEXP'
|
||||
|
||||
set start date, end date, and/or reporting interval all at once
|
||||
using period expressions syntax (overrides the flags above)
|
||||
using period expressions syntax
|
||||
'--date2'
|
||||
|
||||
match the secondary date instead (see command help for other
|
||||
@ -193,7 +197,9 @@ 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
|
||||
window, 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.
|
||||
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
|
||||
@ -282,6 +288,9 @@ 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 until the
|
||||
file has been fixed.
|
||||
|
||||
(Note: if you are viewing files mounted from another machine, make
|
||||
sure that both machine clocks are roughly in step.)
|
||||
|
||||
|
||||
File: hledger-web.info, Node: JSON API, Prev: RELOADING, Up: Top
|
||||
|
||||
@ -325,18 +334,22 @@ $ python -m json.tool <txn.json >txn.pretty.json # optional: make human-readabl
|
||||
|
||||
$ 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
|
||||
to serve the API.
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top72
|
||||
Node: OPTIONS1361
|
||||
Ref: #options1466
|
||||
Node: PERMISSIONS6556
|
||||
Ref: #permissions6695
|
||||
Node: EDITING UPLOADING DOWNLOADING7907
|
||||
Ref: #editing-uploading-downloading8088
|
||||
Node: RELOADING8922
|
||||
Ref: #reloading9056
|
||||
Node: JSON API9366
|
||||
Ref: #json-api9460
|
||||
Node: OPTIONS1355
|
||||
Ref: #options1460
|
||||
Node: PERMISSIONS6739
|
||||
Ref: #permissions6878
|
||||
Node: EDITING UPLOADING DOWNLOADING8090
|
||||
Ref: #editing-uploading-downloading8271
|
||||
Node: RELOADING9105
|
||||
Ref: #reloading9239
|
||||
Node: JSON API9672
|
||||
Ref: #json-api9766
|
||||
|
||||
End Tag Table
|
||||
|
@ -46,6 +46,10 @@ OPTIONS
|
||||
--serve
|
||||
serve and log requests, don't browse or auto-exit
|
||||
|
||||
--serve-api
|
||||
like --serve, but serve only the JSON web API, without the
|
||||
server-side web UI
|
||||
|
||||
--host=IPADDR
|
||||
listen on this IP address (default: 127.0.0.1)
|
||||
|
||||
@ -53,22 +57,22 @@ OPTIONS
|
||||
listen on this TCP port (default: 5000)
|
||||
|
||||
--base-url=URL
|
||||
set the base url (default: http://IPADDR:PORT). You would
|
||||
set the base url (default: http://IPADDR:PORT). You would
|
||||
change this when sharing over the network, or integrating within
|
||||
a larger website.
|
||||
|
||||
--file-url=URL
|
||||
set the static files url (default: BASEURL/static). hledger-web
|
||||
normally serves static files itself, but if you wanted to serve
|
||||
them from another server for efficiency, you would set the url
|
||||
normally serves static files itself, but if you wanted to serve
|
||||
them from another server for efficiency, you would set the url
|
||||
with this.
|
||||
|
||||
--capabilities=CAP[,CAP..]
|
||||
enable the view, add, and/or manage capabilities (default:
|
||||
enable the view, add, and/or manage capabilities (default:
|
||||
view,add)
|
||||
|
||||
--capabilities-header=HTTPHEADER
|
||||
read capabilities to enable from a HTTP header, like X-Sand-
|
||||
read capabilities to enable from a HTTP header, like X-Sand-
|
||||
storm-Permissions (default: disabled)
|
||||
|
||||
hledger input options:
|
||||
@ -78,7 +82,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
|
||||
@ -119,11 +123,11 @@ OPTIONS
|
||||
multiperiod/multicolumn report by year
|
||||
|
||||
-p --period=PERIODEXP
|
||||
set start date, end date, and/or reporting interval all at once
|
||||
using period expressions syntax (overrides the flags above)
|
||||
set start date, end date, and/or reporting interval all at once
|
||||
using period expressions syntax
|
||||
|
||||
--date2
|
||||
match the secondary date instead (see command help for other
|
||||
match the secondary date instead (see command help for other
|
||||
effects)
|
||||
|
||||
-U --unmarked
|
||||
@ -142,21 +146,21 @@ 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-
|
||||
apply periodic transaction rules to generate future transac-
|
||||
tions, to 6 months from now or report end date.
|
||||
|
||||
When a reporting option appears more than once in the command line, the
|
||||
@ -176,39 +180,41 @@ 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.
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
machine.
|
||||
|
||||
o putting it behind an authenticating proxy, using eg apache or nginx
|
||||
@ -218,47 +224,50 @@ 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
|
||||
o manage - allows editing, uploading or downloading the main or
|
||||
included 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
|
||||
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
|
||||
includes.
|
||||
|
||||
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
|
||||
makes a file unparseable, hledger-web will display an error message
|
||||
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
|
||||
until the file has been fixed.
|
||||
|
||||
(Note: if you are viewing files mounted from another machine, make sure
|
||||
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. Currently these are same ones
|
||||
@ -297,6 +306,10 @@ 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
|
||||
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-
|
||||
@ -345,4 +358,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
hledger-web 1.14.99 March 2019 hledger-web(1)
|
||||
hledger-web 1.15 August 2019 hledger-web(1)
|
||||
|
@ -20,6 +20,7 @@ Transactions last 7 days : 0 (0.0 per day)
|
||||
Payees/descriptions : 5
|
||||
Accounts : 8 (depth 3)
|
||||
Commodities : 1 ($)
|
||||
Market prices : 12 ($)
|
||||
|
||||
This command also supports output destination and output format
|
||||
selection.
|
||||
|
@ -1,6 +1,6 @@
|
||||
.\"t
|
||||
|
||||
.TH "hledger" "1" "March 2019" "hledger 1.14.99" "hledger User Manuals"
|
||||
.TH "hledger" "1" "August 2019" "hledger 1.15" "hledger User Manuals"
|
||||
|
||||
|
||||
|
||||
@ -218,7 +218,7 @@ multiperiod/multicolumn report by year
|
||||
.TP
|
||||
.B \f[C]-p --period=PERIODEXP\f[R]
|
||||
set start date, end date, and/or reporting interval all at once using
|
||||
period expressions syntax (overrides the flags above)
|
||||
period expressions syntax
|
||||
.TP
|
||||
.B \f[C]--date2\f[R]
|
||||
match the secondary date instead (see command help for other effects)
|
||||
@ -455,7 +455,7 @@ turn:
|
||||
.PP
|
||||
.TS
|
||||
tab(@);
|
||||
lw(10.3n) lw(33.5n) lw(26.2n).
|
||||
lw(7.6n) lw(31.2n) lw(31.2n).
|
||||
T{
|
||||
Reader:
|
||||
T}@T{
|
||||
@ -622,9 +622,20 @@ You can specify a start and/or end date using \f[C]-b/--begin\f[R],
|
||||
\f[C]-e/--end\f[R], \f[C]-p/--period\f[R] or a \f[C]date:\f[R] query
|
||||
(described below).
|
||||
All of these accept the smart date syntax.
|
||||
One important thing to be aware of when specifying end dates: as in
|
||||
Ledger, end dates are exclusive, so you need to write the date
|
||||
.PP
|
||||
Some notes:
|
||||
.IP \[bu] 2
|
||||
As in Ledger, end dates are exclusive, so you need to write the date
|
||||
\f[I]after\f[R] the last day you want to include.
|
||||
.IP \[bu] 2
|
||||
As noted in reporting options: among start/end dates specified with
|
||||
\f[I]options\f[R], the last (i.e.
|
||||
right-most) option takes precedence.
|
||||
.IP \[bu] 2
|
||||
The effective report start and end dates are the intersection of the
|
||||
start/end dates from options and that from \f[C]date:\f[R] queries.
|
||||
That is, \f[C]date:2019-01 date:2019 -p\[aq]2000 to 2030\[aq]\f[R]
|
||||
yields January 2019, the smallest common time span.
|
||||
.PP
|
||||
Examples:
|
||||
.PP
|
||||
@ -679,7 +690,7 @@ The basic intervals can be selected with one of \f[C]-D/--daily\f[R],
|
||||
\f[C]-W/--weekly\f[R], \f[C]-M/--monthly\f[R], \f[C]-Q/--quarterly\f[R],
|
||||
or \f[C]-Y/--yearly\f[R].
|
||||
More complex intervals may be specified with a period expression.
|
||||
Report intervals can not be specified with a query, currently.
|
||||
Report intervals can not be specified with a query.
|
||||
.SS Period expressions
|
||||
.PP
|
||||
The \f[C]-p/--period\f[R] option accepts period expressions, a shorthand
|
||||
@ -993,18 +1004,33 @@ $ hledger balance --pivot member acct:.
|
||||
-2 EUR
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Cost
|
||||
.SS Valuation
|
||||
.SS -B: Cost
|
||||
.PP
|
||||
The \f[C]-B/--cost\f[R] flag converts amounts to their cost at
|
||||
transaction time, if they have a transaction price specified.
|
||||
.SS Market value
|
||||
The \f[C]-B/--cost\f[R] flag converts amounts to their cost (or selling
|
||||
price) at transaction time, if they have a transaction price specified.
|
||||
This flag is equivalent to \f[C]--value=cost\f[R], described below.
|
||||
.SS -V: Market value
|
||||
.PP
|
||||
The \f[C]-V/--market\f[R] flag converts reported amounts to their market
|
||||
value in another commodity.
|
||||
It uses the commodity referenced in the latest market price (P
|
||||
directive) dated on or before the valuation date.
|
||||
The default valuation date is today.
|
||||
For example:
|
||||
value in a default valuation commodity, using the historical market
|
||||
prices in effect on a default valuation date.
|
||||
.PP
|
||||
For single period reports, the valuation date is today.
|
||||
For multiperiod reports, it is the last day of each subperiod.
|
||||
.PP
|
||||
The valuation commodity will be the one referenced in the latest
|
||||
applicable market price dated on or before the valuation date.
|
||||
If most of your P declarations lead to a single home currency, this will
|
||||
usually be what you want.
|
||||
.PP
|
||||
Unlike the similar flag in Ledger, it does not infer market prices from
|
||||
transaction prices.
|
||||
In hledger, -B uses transaction prices, -V and -X use market prices.
|
||||
.PP
|
||||
It is equivalent to \f[C]--value=now\f[R] or \f[C]--value=end\f[R].
|
||||
.PP
|
||||
Here\[aq]s a quick example:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
@ -1048,52 +1074,79 @@ $ hledger -f t.j bal -N euros -V
|
||||
$103.00 assets:euros
|
||||
\f[R]
|
||||
.fi
|
||||
.SS -X: Market value in specified commodity
|
||||
.PP
|
||||
Ledger users: Ledger\[aq]s -V also infers market prices from journal
|
||||
entries, but we don\[aq]t do that.
|
||||
hledger\[aq]s -V uses only market prices declared explicitly, with P
|
||||
directives.
|
||||
(Mnemonic: -B/--cost uses transaction prices, -V/--market uses market
|
||||
prices.)
|
||||
.SS More control over valuation
|
||||
The \f[C]-X/--exchange\f[R] option is like \f[C]-V/--market\f[R] except
|
||||
it takes a commodity symbol argument, so that you can select a different
|
||||
target commodity.
|
||||
It is similar to the same option in Ledger, with the same caveat
|
||||
mentioned for \f[C]-V\f[R]/\f[C]--value\f[R] above.
|
||||
It is equivalent to \f[C]--value=now,COMM\f[R] or
|
||||
\f[C]--value=end,COMM\f[R]; for more details, read on.
|
||||
.SS --value
|
||||
.PP
|
||||
\f[I](experimental, added 201905)\f[R]
|
||||
.PP
|
||||
You can control valuation more precisely with the \f[C]--value\f[R]
|
||||
option.
|
||||
\f[C]-B\f[R], \f[C]-V\f[R] and \f[C]-X\f[R] are special cases of the
|
||||
more general \f[C]--value\f[R] option:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
--value=TYPE which type of valuation should be done ? cost|end|now|YYYY-MM-DD
|
||||
--value=TYPE[,COMM] TYPE is cost, 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 period end(s)
|
||||
- default valuation commodity (or COMM) using current market prices
|
||||
- default valuation commodity (or COMM) using market prices at some date
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Valuation type
|
||||
.PP
|
||||
The argument is one of the keywords shown, or their first letter, or a
|
||||
custom date.
|
||||
The precise effect of the keywords is command-specific, but here is
|
||||
their general meaning:
|
||||
TYPE is one of these keywords, or their first letter, or a date (which
|
||||
must be 8 digits with \f[C]-\f[R] or \f[C]/\f[R] or \f[C].\f[R]
|
||||
separators):
|
||||
.TP
|
||||
.B \f[C]--value=cost\f[R] (or \f[C]c\f[R])
|
||||
.B \f[C]--value=cost\f[R]
|
||||
Convert amounts to cost, using the prices recorded in transactions.
|
||||
\f[C]-B\f[R]/\f[C]--cost\f[R] does this.
|
||||
\f[C]-B\f[R]/\f[C]--cost\f[R] is equivalent to this.
|
||||
.TP
|
||||
.B \f[C]--value=end\f[R] (or \f[C]e\f[R])
|
||||
.B \f[C]--value=end\f[R]
|
||||
Convert amounts to their value in default valuation commodity using
|
||||
market prices on the last day of the report period (or of each subperiod
|
||||
in a multiperiod report).
|
||||
When no report period is specified, uses the journal\[aq]s last
|
||||
transaction date.
|
||||
.TP
|
||||
.B \f[C]--value=now\f[R] (or \f[C]n\f[R])
|
||||
.B \f[C]--value=now\f[R]
|
||||
Convert amounts to their value in default valuation commodity using
|
||||
current market prices (as of when report is generated).
|
||||
\f[C]-V\f[R]/\f[C]--market\f[R] does this.
|
||||
\f[C]-V\f[R]/\f[C]--market\f[R] is equivalent to this.
|
||||
.TP
|
||||
.B \f[C]--value=YYYY-MM-DD\f[R]
|
||||
Convert amounts to their value in default valuation commodity using
|
||||
market prices on the given date (which must be 8 digits with \f[C]-\f[R]
|
||||
or \f[C]/\f[R] or \f[C].\f[R] separators).
|
||||
market prices on this date.
|
||||
Eg \f[C]--value=2019-04-25\f[R].
|
||||
.SS Valuation commodity
|
||||
.PP
|
||||
The default valuation commodity is the commodity mentioned in the most
|
||||
recent applicable market price declaration.
|
||||
When all your price declarations lead to a single home currency, this
|
||||
will usually do what you want.
|
||||
.PP
|
||||
To select a different valuation commodity: write the commodity symbol
|
||||
after the valuation type, separated by a comma (eg:
|
||||
\f[B]\f[CB]--value=now,EUR\f[B]\f[R]).
|
||||
This will use, in this preferred order:
|
||||
.IP \[bu] 2
|
||||
declared prices (from source commodity to valuation commodity)
|
||||
.IP \[bu] 2
|
||||
reverse prices (declared prices from valuation to source commodity,
|
||||
inverted)
|
||||
.IP \[bu] 2
|
||||
indirect prices (prices calculated from the shortest chain of declared
|
||||
or reverse prices from source to valuation commodity).
|
||||
.SS --value examples
|
||||
.PP
|
||||
Here are the effects of \f[C]--value\f[R] as seen with \f[C]print\f[R]:
|
||||
.IP
|
||||
@ -1192,6 +1245,56 @@ $ hledger -f- print --value=2000-01-15
|
||||
(a) 1 B
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
You may need to explicitly set a commodity\[aq]s display style, when
|
||||
reverse prices are used.
|
||||
Eg this output might be surprising:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
P 2000-01-01 A 2B
|
||||
|
||||
2000-01-01
|
||||
a 1B
|
||||
b
|
||||
\f[R]
|
||||
.fi
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger print -x -X A
|
||||
2000/01/01
|
||||
a 0
|
||||
b 0
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
Explanation: because there\[aq]s no amount or commodity directive
|
||||
specifying a display style for A, 0.5A gets the default style, which
|
||||
shows no decimal digits.
|
||||
Because the displayed amount looks like zero, the commodity symbol and
|
||||
minus sign are not displayed either.
|
||||
Adding a commodity directive sets a more useful display style for A:
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
P 2000-01-01 A 2B
|
||||
commodity 0.00A
|
||||
|
||||
2000-01-01
|
||||
a 1B
|
||||
b
|
||||
\f[R]
|
||||
.fi
|
||||
.IP
|
||||
.nf
|
||||
\f[C]
|
||||
$ hledger print -X A
|
||||
2000/01/01
|
||||
a 0.50A
|
||||
b -0.50A
|
||||
\f[R]
|
||||
.fi
|
||||
.SS Effect of --value on reports
|
||||
.PP
|
||||
Below is how \f[C]--value\f[R] affects each of hledger\[aq]s reports,
|
||||
@ -1333,38 +1436,7 @@ T}@T{
|
||||
market value at DATE of sum/average of postings
|
||||
T}
|
||||
.TE
|
||||
.SS Some useful value reports
|
||||
.PP
|
||||
Here are some probably useful reports - please send suggestions if you
|
||||
find out more:
|
||||
.PP
|
||||
.TS
|
||||
tab(@);
|
||||
lw(15.9n) lw(27.6n) lw(26.5n).
|
||||
T{
|
||||
Command:
|
||||
T}@T{
|
||||
Description of report:
|
||||
T}@T{
|
||||
Could answer:
|
||||
T}
|
||||
_
|
||||
T{
|
||||
\f[C]hledger bs -M --value=p\f[R]
|
||||
T}@T{
|
||||
Monthly historical value of assets/liabilities
|
||||
T}@T{
|
||||
How are my investments performing ?
|
||||
T}
|
||||
T{
|
||||
\f[C]hledger is -M --value=t\f[R]
|
||||
T}@T{
|
||||
Monthly contemporaneous value of revenues/expenses
|
||||
T}@T{
|
||||
How much foreign currency have I been spending ?
|
||||
T}
|
||||
.TE
|
||||
.SS Combining -B, -V, --value
|
||||
.SS Combining -B, -V, -X, --value
|
||||
.PP
|
||||
The rightmost of these flags wins.
|
||||
.SS Output destination
|
||||
@ -1708,6 +1780,10 @@ Starting the next transaction (. or ctrl-D/ctrl-C to quit)
|
||||
Date [2015/05/22]: <CTRL-D> $
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
On Microsoft Windows, the add command makes sure that no part of the
|
||||
file path ends with a period, as it can cause data loss on that platform
|
||||
(cf #1056).
|
||||
.SS balance
|
||||
.PP
|
||||
balance, bal, b
|
||||
@ -2497,6 +2573,10 @@ assertions will depend on these flags.
|
||||
Likewise, if you run this command with --auto, the balance assertions
|
||||
will probably always require --auto.
|
||||
.PP
|
||||
When account balances have cost information (transaction prices), the
|
||||
closing/opening transactions will preserve it, so that eg balance -B
|
||||
reports will not be affected.
|
||||
.PP
|
||||
Examples:
|
||||
.PP
|
||||
Carrying asset/liability balances into a new file for 2019, all from
|
||||
@ -3256,6 +3336,7 @@ Transactions last 7 days : 0 (0.0 per day)
|
||||
Payees/descriptions : 5
|
||||
Accounts : 8 (depth 3)
|
||||
Commodities : 1 ($)
|
||||
Market prices : 12 ($)
|
||||
\f[R]
|
||||
.fi
|
||||
.PP
|
||||
@ -3272,6 +3353,7 @@ With a TAGREGEX argument, only tag names matching the regular expression
|
||||
(case insensitive) are shown.
|
||||
With QUERY arguments, only transactions matching the query are
|
||||
considered.
|
||||
With --values flag, the tags\[aq] unique values are listed instead.
|
||||
.SS test
|
||||
.PP
|
||||
test
|
||||
|
@ -3,8 +3,8 @@ This is hledger.info, produced by makeinfo version 6.5 from stdin.
|
||||
|
||||
File: hledger.info, Node: Top, Next: EXAMPLES, Up: (dir)
|
||||
|
||||
hledger(1) hledger 1.14.99
|
||||
**************************
|
||||
hledger(1) hledger 1.15
|
||||
***********************
|
||||
|
||||
This is hledger's command-line interface (there are also curses and web
|
||||
interfaces). Its basic function is to read a plain text file describing
|
||||
@ -130,9 +130,7 @@ File: hledger.info, Node: OPTIONS, Next: QUERIES, Prev: EXAMPLES, Up: Top
|
||||
* Period expressions::
|
||||
* Depth limiting::
|
||||
* Pivoting::
|
||||
* Cost::
|
||||
* Market value::
|
||||
* Combining -B -V --value::
|
||||
* Valuation::
|
||||
* Output destination::
|
||||
* Output format::
|
||||
* Regular expressions::
|
||||
@ -209,7 +207,7 @@ by most hledger commands, run 'hledger -h'.
|
||||
'-p --period=PERIODEXP'
|
||||
|
||||
set start date, end date, and/or reporting interval all at once
|
||||
using period expressions syntax (overrides the flags above)
|
||||
using period expressions syntax
|
||||
'--date2'
|
||||
|
||||
match the secondary date instead (see command help for other
|
||||
@ -455,16 +453,16 @@ be one of several other formats, listed below. hledger detects the
|
||||
format automatically based on the file extension, or if that is not
|
||||
recognised, by trying each built-in "reader" in turn:
|
||||
|
||||
Reader: Reads: Used for file extensions:
|
||||
----------------------------------------------------------------------------
|
||||
'journal' hledger's journal format, also '.journal' '.j'
|
||||
some Ledger journals '.hledger' '.ledger'
|
||||
'timeclock' timeclock files (precise time '.timeclock'
|
||||
logging)
|
||||
'timedot' timedot files (approximate time '.timedot'
|
||||
logging)
|
||||
'csv' comma-separated values (data '.csv'
|
||||
interchange)
|
||||
Reader: Reads: Used for file extensions:
|
||||
---------------------------------------------------------------------------
|
||||
'journal'hledger's journal format, also '.journal' '.j' '.hledger'
|
||||
some Ledger journals '.ledger'
|
||||
'timeclock'timeclock files (precise time '.timeclock'
|
||||
logging)
|
||||
'timedot'timedot files (approximate '.timedot'
|
||||
time logging)
|
||||
'csv' comma-separated values (data '.csv'
|
||||
interchange)
|
||||
|
||||
If needed (eg to ensure correct error messages when a file has the
|
||||
"wrong" extension), you can force a specific reader/format by prepending
|
||||
@ -530,9 +528,18 @@ the journal.
|
||||
Often you will want to see a shorter time span, such as the current
|
||||
month. You can specify a start and/or end date using '-b/--begin',
|
||||
'-e/--end', '-p/--period' or a 'date:' query (described below). All of
|
||||
these accept the smart date syntax. One important thing to be aware of
|
||||
when specifying end dates: as in Ledger, end dates are exclusive, so you
|
||||
need to write the date _after_ the last day you want to include.
|
||||
these accept the smart date syntax.
|
||||
|
||||
Some notes:
|
||||
|
||||
* As in Ledger, end dates are exclusive, so you need to write the
|
||||
date _after_ the last day you want to include.
|
||||
* As noted in reporting options: among start/end dates specified with
|
||||
_options_, the last (i.e. right-most) option takes precedence.
|
||||
* The effective report start and end dates are the intersection of
|
||||
the start/end dates from options and that from 'date:' queries.
|
||||
That is, 'date:2019-01 date:2019 -p'2000 to 2030'' yields January
|
||||
2019, the smallest common time span.
|
||||
|
||||
Examples:
|
||||
|
||||
@ -556,7 +563,7 @@ balance and activity will divide their reports into multiple subperiods.
|
||||
The basic intervals can be selected with one of '-D/--daily',
|
||||
'-W/--weekly', '-M/--monthly', '-Q/--quarterly', or '-Y/--yearly'. More
|
||||
complex intervals may be specified with a period expression. Report
|
||||
intervals can not be specified with a query, currently.
|
||||
intervals can not be specified with a query.
|
||||
|
||||
|
||||
File: hledger.info, Node: Period expressions, Next: Depth limiting, Prev: Report intervals, Up: OPTIONS
|
||||
@ -679,7 +686,7 @@ less detail. This flag has the same effect as a 'depth:' query argument
|
||||
(so '-2', '--depth=2' or 'depth:2' are basically equivalent).
|
||||
|
||||
|
||||
File: hledger.info, Node: Pivoting, Next: Cost, Prev: Depth limiting, Up: OPTIONS
|
||||
File: hledger.info, Node: Pivoting, Next: Valuation, Prev: Depth limiting, Up: OPTIONS
|
||||
|
||||
2.14 Pivoting
|
||||
=============
|
||||
@ -736,24 +743,54 @@ $ hledger balance --pivot member acct:.
|
||||
-2 EUR
|
||||
|
||||
|
||||
File: hledger.info, Node: Cost, Next: Market value, Prev: Pivoting, Up: OPTIONS
|
||||
File: hledger.info, Node: Valuation, Next: Output destination, Prev: Pivoting, Up: OPTIONS
|
||||
|
||||
2.15 Cost
|
||||
=========
|
||||
2.15 Valuation
|
||||
==============
|
||||
|
||||
The '-B/--cost' flag converts amounts to their cost at transaction time,
|
||||
if they have a transaction price specified.
|
||||
* Menu:
|
||||
|
||||
* -B Cost::
|
||||
* -V Market value::
|
||||
* -X Market value in specified commodity::
|
||||
* --value::
|
||||
* Combining -B -V -X --value::
|
||||
|
||||
|
||||
File: hledger.info, Node: Market value, Next: Combining -B -V --value, Prev: Cost, Up: OPTIONS
|
||||
File: hledger.info, Node: -B Cost, Next: -V Market value, Up: Valuation
|
||||
|
||||
2.16 Market value
|
||||
=================
|
||||
2.15.1 -B: Cost
|
||||
---------------
|
||||
|
||||
The '-B/--cost' flag converts amounts to their cost (or selling price)
|
||||
at transaction time, if they have a transaction price specified. This
|
||||
flag is equivalent to '--value=cost', described below.
|
||||
|
||||
|
||||
File: hledger.info, Node: -V Market value, Next: -X Market value in specified commodity, Prev: -B Cost, Up: Valuation
|
||||
|
||||
2.15.2 -V: Market value
|
||||
-----------------------
|
||||
|
||||
The '-V/--market' flag converts reported amounts to their market value
|
||||
in another commodity. It uses the commodity referenced in the latest
|
||||
market price (P directive) dated on or before the valuation date. The
|
||||
default valuation date is today. For example:
|
||||
in a default valuation commodity, using the historical market prices in
|
||||
effect on a default valuation date.
|
||||
|
||||
For single period reports, the valuation date is today. For
|
||||
multiperiod reports, it is the last day of each subperiod.
|
||||
|
||||
The valuation commodity will be the one referenced in the latest
|
||||
applicable market price dated on or before the valuation date. If most
|
||||
of your P declarations lead to a single home currency, this will usually
|
||||
be what you want.
|
||||
|
||||
Unlike the similar flag in Ledger, it does not infer market prices
|
||||
from transaction prices. In hledger, -B uses transaction prices, -V and
|
||||
-X use market prices.
|
||||
|
||||
It is equivalent to '--value=now' or '--value=end'.
|
||||
|
||||
Here's a quick example:
|
||||
|
||||
# one euro is worth this many dollars from nov 1
|
||||
P 2016/11/01 € $1.10
|
||||
@ -782,55 +819,101 @@ specified, defaults to today)
|
||||
$ hledger -f t.j bal -N euros -V
|
||||
$103.00 assets:euros
|
||||
|
||||
Ledger users: Ledger's -V also infers market prices from journal
|
||||
entries, but we don't do that. hledger's -V uses only market prices
|
||||
declared explicitly, with P directives. (Mnemonic: -B/-cost uses
|
||||
transaction prices, -V/-market uses market prices.)
|
||||
|
||||
File: hledger.info, Node: -X Market value in specified commodity, Next: --value, Prev: -V Market value, Up: Valuation
|
||||
|
||||
* Menu:
|
||||
2.15.3 -X: Market value in specified commodity
|
||||
----------------------------------------------
|
||||
|
||||
* More control over valuation::
|
||||
* Effect of --value on reports::
|
||||
* Some useful value reports::
|
||||
The '-X/--exchange' option is like '-V/--market' except it takes a
|
||||
commodity symbol argument, so that you can select a different target
|
||||
commodity. It is similar to the same option in Ledger, with the same
|
||||
caveat mentioned for '-V'/'--value' above. It is equivalent to
|
||||
'--value=now,COMM' or '--value=end,COMM'; for more details, read on.
|
||||
|
||||
|
||||
File: hledger.info, Node: More control over valuation, Next: Effect of --value on reports, Up: Market value
|
||||
File: hledger.info, Node: --value, Next: Combining -B -V -X --value, Prev: -X Market value in specified commodity, Up: Valuation
|
||||
|
||||
2.16.1 More control over valuation
|
||||
----------------------------------
|
||||
2.15.4 -value
|
||||
-------------
|
||||
|
||||
_(experimental, added 201905)_
|
||||
|
||||
You can control valuation more precisely with the '--value' option.
|
||||
'-B', '-V' and '-X' are special cases of the more general '--value'
|
||||
option:
|
||||
|
||||
--value=TYPE which type of valuation should be done ? cost|end|now|YYYY-MM-DD
|
||||
--value=TYPE[,COMM] TYPE is cost, 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 period end(s)
|
||||
- default valuation commodity (or COMM) using current market prices
|
||||
- default valuation commodity (or COMM) using market prices at some date
|
||||
|
||||
The argument is one of the keywords shown, or their first letter, or
|
||||
a custom date. The precise effect of the keywords is command-specific,
|
||||
but here is their general meaning:
|
||||
* Menu:
|
||||
|
||||
'--value=cost' (or 'c')
|
||||
* Valuation type::
|
||||
* Valuation commodity::
|
||||
* --value examples::
|
||||
* Effect of --value on reports::
|
||||
|
||||
|
||||
File: hledger.info, Node: Valuation type, Next: Valuation commodity, Up: --value
|
||||
|
||||
2.15.4.1 Valuation type
|
||||
.......................
|
||||
|
||||
TYPE is one of these keywords, or their first letter, or a date (which
|
||||
must be 8 digits with '-' or '/' or '.' separators):
|
||||
|
||||
'--value=cost'
|
||||
|
||||
Convert amounts to cost, using the prices recorded in transactions.
|
||||
'-B'/'--cost' does this.
|
||||
'--value=end' (or 'e')
|
||||
'-B'/'--cost' is equivalent to this.
|
||||
'--value=end'
|
||||
|
||||
Convert amounts to their value in default valuation commodity using
|
||||
market prices on the last day of the report period (or of each
|
||||
subperiod in a multiperiod report). When no report period is
|
||||
specified, uses the journal's last transaction date.
|
||||
'--value=now' (or 'n')
|
||||
'--value=now'
|
||||
|
||||
Convert amounts to their value in default valuation commodity using
|
||||
current market prices (as of when report is generated).
|
||||
'-V'/'--market' does this.
|
||||
'-V'/'--market' is equivalent to this.
|
||||
'--value=YYYY-MM-DD'
|
||||
|
||||
Convert amounts to their value in default valuation commodity using
|
||||
market prices on the given date (which must be 8 digits with '-' or
|
||||
'/' or '.' separators). Eg '--value=2019-04-25'.
|
||||
market prices on this date. Eg '--value=2019-04-25'.
|
||||
|
||||
Here are the effects of '--value' as seen with 'print':
|
||||
|
||||
File: hledger.info, Node: Valuation commodity, Next: --value examples, Prev: Valuation type, Up: --value
|
||||
|
||||
2.15.4.2 Valuation commodity
|
||||
............................
|
||||
|
||||
The default valuation commodity is the commodity mentioned in the most
|
||||
recent applicable market price declaration. When all your price
|
||||
declarations lead to a single home currency, this will usually do what
|
||||
you want.
|
||||
|
||||
To select a different valuation commodity: write the commodity symbol
|
||||
after the valuation type, separated by a comma (eg:
|
||||
*'--value=now,EUR'*). This will use, in this preferred order:
|
||||
|
||||
* declared prices (from source commodity to valuation commodity)
|
||||
* reverse prices (declared prices from valuation to source commodity,
|
||||
inverted)
|
||||
* indirect prices (prices calculated from the shortest chain of
|
||||
declared or reverse prices from source to valuation commodity).
|
||||
|
||||
|
||||
File: hledger.info, Node: --value examples, Next: Effect of --value on reports, Prev: Valuation commodity, Up: --value
|
||||
|
||||
2.15.4.3 -value examples
|
||||
........................
|
||||
|
||||
Here are the effects of '--value' as seen with 'print':
|
||||
|
||||
P 2000-01-01 A 1 B
|
||||
P 2000-02-01 A 2 B
|
||||
@ -905,11 +988,43 @@ $ hledger -f- print --value=2000-01-15
|
||||
2000/03/01
|
||||
(a) 1 B
|
||||
|
||||
|
||||
File: hledger.info, Node: Effect of --value on reports, Next: Some useful value reports, Prev: More control over valuation, Up: Market value
|
||||
You may need to explicitly set a commodity's display style, when
|
||||
reverse prices are used. Eg this output might be surprising:
|
||||
|
||||
2.16.2 Effect of -value on reports
|
||||
----------------------------------
|
||||
P 2000-01-01 A 2B
|
||||
|
||||
2000-01-01
|
||||
a 1B
|
||||
b
|
||||
|
||||
$ hledger print -x -X A
|
||||
2000/01/01
|
||||
a 0
|
||||
b 0
|
||||
|
||||
Explanation: because there's no amount or commodity directive
|
||||
specifying a display style for A, 0.5A gets the default style, which
|
||||
shows no decimal digits. Because the displayed amount looks like zero,
|
||||
the commodity symbol and minus sign are not displayed either. Adding a
|
||||
commodity directive sets a more useful display style for A:
|
||||
|
||||
P 2000-01-01 A 2B
|
||||
commodity 0.00A
|
||||
|
||||
2000-01-01
|
||||
a 1B
|
||||
b
|
||||
|
||||
$ hledger print -X A
|
||||
2000/01/01
|
||||
a 0.50A
|
||||
b -0.50A
|
||||
|
||||
|
||||
File: hledger.info, Node: Effect of --value on reports, Prev: --value examples, Up: --value
|
||||
|
||||
2.15.4.4 Effect of -value on reports
|
||||
....................................
|
||||
|
||||
Below is how '--value' affects each of hledger's reports, currently.
|
||||
You're not expected to remember all this, but when troubleshooting a
|
||||
@ -962,33 +1077,17 @@ totals/averagesof the end of sum/average of DATE of
|
||||
values postings
|
||||
|
||||
|
||||
File: hledger.info, Node: Some useful value reports, Prev: Effect of --value on reports, Up: Market value
|
||||
File: hledger.info, Node: Combining -B -V -X --value, Prev: --value, Up: Valuation
|
||||
|
||||
2.16.3 Some useful value reports
|
||||
--------------------------------
|
||||
|
||||
Here are some probably useful reports - please send suggestions if you
|
||||
find out more:
|
||||
|
||||
Command: Description of report: Could answer:
|
||||
---------------------------------------------------------------------------
|
||||
'hledger bs -M Monthly historical value How are my investments
|
||||
--value=p' of assets/liabilities performing ?
|
||||
'hledger is -M Monthly contemporaneous How much foreign currency
|
||||
--value=t' value of revenues/expenses have I been spending ?
|
||||
|
||||
|
||||
File: hledger.info, Node: Combining -B -V --value, Next: Output destination, Prev: Market value, Up: OPTIONS
|
||||
|
||||
2.17 Combining -B, -V, -value
|
||||
=============================
|
||||
2.15.5 Combining -B, -V, -X, -value
|
||||
-----------------------------------
|
||||
|
||||
The rightmost of these flags wins.
|
||||
|
||||
|
||||
File: hledger.info, Node: Output destination, Next: Output format, Prev: Combining -B -V --value, Up: OPTIONS
|
||||
File: hledger.info, Node: Output destination, Next: Output format, Prev: Valuation, Up: OPTIONS
|
||||
|
||||
2.18 Output destination
|
||||
2.16 Output destination
|
||||
=======================
|
||||
|
||||
Some commands (print, register, stats, the balance commands) can write
|
||||
@ -1001,7 +1100,7 @@ $ hledger balance -o FILE # write to FILE
|
||||
|
||||
File: hledger.info, Node: Output format, Next: Regular expressions, Prev: Output destination, Up: OPTIONS
|
||||
|
||||
2.19 Output format
|
||||
2.17 Output format
|
||||
==================
|
||||
|
||||
Some commands can write their output in other formats. Eg print and
|
||||
@ -1015,7 +1114,7 @@ $ hledger balance -o FILE.csv # write CSV to FILE.csv
|
||||
|
||||
File: hledger.info, Node: Regular expressions, Prev: Output format, Up: OPTIONS
|
||||
|
||||
2.20 Regular expressions
|
||||
2.18 Regular expressions
|
||||
========================
|
||||
|
||||
hledger uses regular expressions in a number of places:
|
||||
@ -1328,6 +1427,10 @@ Saved.
|
||||
Starting the next transaction (. or ctrl-D/ctrl-C to quit)
|
||||
Date [2015/05/22]: <CTRL-D> $
|
||||
|
||||
On Microsoft Windows, the add command makes sure that no part of the
|
||||
file path ends with a period, as it can cause data loss on that platform
|
||||
(cf #1056).
|
||||
|
||||
|
||||
File: hledger.info, Node: balance, Next: balancesheet, Prev: add, Up: COMMANDS
|
||||
|
||||
@ -2055,6 +2158,10 @@ balance assertions will depend on these flags. Likewise, if you run
|
||||
this command with -auto, the balance assertions will probably always
|
||||
require -auto.
|
||||
|
||||
When account balances have cost information (transaction prices), the
|
||||
closing/opening transactions will preserve it, so that eg balance -B
|
||||
reports will not be affected.
|
||||
|
||||
Examples:
|
||||
|
||||
Carrying asset/liability balances into a new file for 2019, all from
|
||||
@ -2713,6 +2820,7 @@ Transactions last 7 days : 0 (0.0 per day)
|
||||
Payees/descriptions : 5
|
||||
Accounts : 8 (depth 3)
|
||||
Commodities : 1 ($)
|
||||
Market prices : 12 ($)
|
||||
|
||||
This command also supports output destination and output format
|
||||
selection.
|
||||
@ -2727,7 +2835,8 @@ tags
|
||||
List all the tag names used in the journal. With a TAGREGEX argument,
|
||||
only tag names matching the regular expression (case insensitive) are
|
||||
shown. With QUERY arguments, only transactions matching the query are
|
||||
considered.
|
||||
considered. With -values flag, the tags' unique values are listed
|
||||
instead.
|
||||
|
||||
|
||||
File: hledger.info, Node: test, Prev: tags, Up: COMMANDS
|
||||
@ -2931,168 +3040,176 @@ hledger-check.hs checks more powerful account balance assertions.
|
||||
|
||||
Tag Table:
|
||||
Node: Top68
|
||||
Node: EXAMPLES1891
|
||||
Ref: #examples1991
|
||||
Node: OPTIONS3637
|
||||
Ref: #options3739
|
||||
Node: General options4178
|
||||
Ref: #general-options4303
|
||||
Node: Command options6985
|
||||
Ref: #command-options7136
|
||||
Node: Command arguments7534
|
||||
Ref: #command-arguments7688
|
||||
Node: Argument files7809
|
||||
Ref: #argument-files7985
|
||||
Node: Special characters in arguments and queries8251
|
||||
Ref: #special-characters-in-arguments-and-queries8485
|
||||
Node: More escaping8936
|
||||
Ref: #more-escaping9098
|
||||
Node: Even more escaping9394
|
||||
Ref: #even-more-escaping9588
|
||||
Node: Less escaping10259
|
||||
Ref: #less-escaping10421
|
||||
Node: Command line tips10666
|
||||
Ref: #command-line-tips10852
|
||||
Node: Unicode characters11229
|
||||
Ref: #unicode-characters11385
|
||||
Node: Input files12797
|
||||
Ref: #input-files12933
|
||||
Node: Smart dates14903
|
||||
Ref: #smart-dates15044
|
||||
Node: Report start & end date16450
|
||||
Ref: #report-start-end-date16622
|
||||
Node: Report intervals17688
|
||||
Ref: #report-intervals17853
|
||||
Node: Period expressions18254
|
||||
Ref: #period-expressions18414
|
||||
Node: Depth limiting22371
|
||||
Ref: #depth-limiting22515
|
||||
Node: Pivoting22857
|
||||
Ref: #pivoting22975
|
||||
Node: Cost24651
|
||||
Ref: #cost24759
|
||||
Node: Market value24877
|
||||
Ref: #market-value25016
|
||||
Node: More control over valuation26257
|
||||
Ref: #more-control-over-valuation26442
|
||||
Node: Effect of --value on reports28897
|
||||
Ref: #effect-of---value-on-reports29116
|
||||
Node: Some useful value reports31807
|
||||
Ref: #some-useful-value-reports31986
|
||||
Node: Combining -B -V --value32484
|
||||
Ref: #combining--b--v---value32661
|
||||
Node: Output destination32697
|
||||
Ref: #output-destination32863
|
||||
Node: Output format33146
|
||||
Ref: #output-format33298
|
||||
Node: Regular expressions33683
|
||||
Ref: #regular-expressions33820
|
||||
Node: QUERIES35181
|
||||
Ref: #queries35283
|
||||
Node: COMMANDS39245
|
||||
Ref: #commands39357
|
||||
Node: accounts40358
|
||||
Ref: #accounts40456
|
||||
Node: activity41155
|
||||
Ref: #activity41265
|
||||
Node: add41648
|
||||
Ref: #add41747
|
||||
Node: balance44334
|
||||
Ref: #balance44445
|
||||
Node: Classic balance report45887
|
||||
Ref: #classic-balance-report46060
|
||||
Node: Customising the classic balance report47429
|
||||
Ref: #customising-the-classic-balance-report47657
|
||||
Node: Colour support49733
|
||||
Ref: #colour-support49900
|
||||
Node: Flat mode50073
|
||||
Ref: #flat-mode50221
|
||||
Node: Depth limited balance reports50634
|
||||
Ref: #depth-limited-balance-reports50834
|
||||
Node: Multicolumn balance report51290
|
||||
Ref: #multicolumn-balance-report51488
|
||||
Node: Budget report56802
|
||||
Ref: #budget-report56945
|
||||
Node: Nested budgets62147
|
||||
Ref: #nested-budgets62259
|
||||
Ref: #output-format-165739
|
||||
Node: balancesheet65817
|
||||
Ref: #balancesheet65953
|
||||
Node: balancesheetequity67268
|
||||
Ref: #balancesheetequity67417
|
||||
Node: cashflow67978
|
||||
Ref: #cashflow68106
|
||||
Node: check-dates69134
|
||||
Ref: #check-dates69261
|
||||
Node: check-dupes69540
|
||||
Ref: #check-dupes69664
|
||||
Node: close69957
|
||||
Ref: #close70065
|
||||
Node: files73479
|
||||
Ref: #files73580
|
||||
Node: help73727
|
||||
Ref: #help73827
|
||||
Node: import74920
|
||||
Ref: #import75034
|
||||
Node: Importing balance assignments75822
|
||||
Ref: #importing-balance-assignments75970
|
||||
Node: incomestatement76619
|
||||
Ref: #incomestatement76753
|
||||
Node: prices78089
|
||||
Ref: #prices78204
|
||||
Node: print78483
|
||||
Ref: #print78593
|
||||
Node: print-unique83086
|
||||
Ref: #print-unique83212
|
||||
Node: register83497
|
||||
Ref: #register83624
|
||||
Node: Custom register output87796
|
||||
Ref: #custom-register-output87925
|
||||
Node: register-match89187
|
||||
Ref: #register-match89321
|
||||
Node: rewrite89672
|
||||
Ref: #rewrite89787
|
||||
Node: Re-write rules in a file91642
|
||||
Ref: #re-write-rules-in-a-file91776
|
||||
Node: Diff output format92986
|
||||
Ref: #diff-output-format93155
|
||||
Node: rewrite vs print --auto94247
|
||||
Ref: #rewrite-vs.-print---auto94426
|
||||
Node: roi94982
|
||||
Ref: #roi95080
|
||||
Node: stats96092
|
||||
Ref: #stats96191
|
||||
Node: tags96945
|
||||
Ref: #tags97043
|
||||
Node: test97273
|
||||
Ref: #test97357
|
||||
Node: ADD-ON COMMANDS98118
|
||||
Ref: #add-on-commands98228
|
||||
Node: Official add-ons99516
|
||||
Ref: #official-add-ons99656
|
||||
Node: api99744
|
||||
Ref: #api99833
|
||||
Node: ui99885
|
||||
Ref: #ui99984
|
||||
Node: web100042
|
||||
Ref: #web100131
|
||||
Node: Third party add-ons100177
|
||||
Ref: #third-party-add-ons100352
|
||||
Node: diff100488
|
||||
Ref: #diff100585
|
||||
Node: iadd100684
|
||||
Ref: #iadd100798
|
||||
Node: interest100881
|
||||
Ref: #interest101002
|
||||
Node: irr101097
|
||||
Ref: #irr101195
|
||||
Node: Experimental add-ons101326
|
||||
Ref: #experimental-add-ons101478
|
||||
Node: autosync101759
|
||||
Ref: #autosync101870
|
||||
Node: chart102109
|
||||
Ref: #chart102228
|
||||
Node: check102299
|
||||
Ref: #check102401
|
||||
Node: EXAMPLES1885
|
||||
Ref: #examples1985
|
||||
Node: OPTIONS3631
|
||||
Ref: #options3733
|
||||
Node: General options4132
|
||||
Ref: #general-options4257
|
||||
Node: Command options6911
|
||||
Ref: #command-options7062
|
||||
Node: Command arguments7460
|
||||
Ref: #command-arguments7614
|
||||
Node: Argument files7735
|
||||
Ref: #argument-files7911
|
||||
Node: Special characters in arguments and queries8177
|
||||
Ref: #special-characters-in-arguments-and-queries8411
|
||||
Node: More escaping8862
|
||||
Ref: #more-escaping9024
|
||||
Node: Even more escaping9320
|
||||
Ref: #even-more-escaping9514
|
||||
Node: Less escaping10185
|
||||
Ref: #less-escaping10347
|
||||
Node: Command line tips10592
|
||||
Ref: #command-line-tips10778
|
||||
Node: Unicode characters11155
|
||||
Ref: #unicode-characters11311
|
||||
Node: Input files12723
|
||||
Ref: #input-files12859
|
||||
Node: Smart dates14788
|
||||
Ref: #smart-dates14929
|
||||
Node: Report start & end date16335
|
||||
Ref: #report-start-end-date16507
|
||||
Node: Report intervals17931
|
||||
Ref: #report-intervals18096
|
||||
Node: Period expressions18486
|
||||
Ref: #period-expressions18646
|
||||
Node: Depth limiting22603
|
||||
Ref: #depth-limiting22747
|
||||
Node: Pivoting23089
|
||||
Ref: #pivoting23212
|
||||
Node: Valuation24888
|
||||
Ref: #valuation25017
|
||||
Node: -B Cost25145
|
||||
Ref: #b-cost25256
|
||||
Node: -V Market value25454
|
||||
Ref: #v-market-value25628
|
||||
Node: -X Market value in specified commodity27034
|
||||
Ref: #x-market-value-in-specified-commodity27254
|
||||
Node: --value27594
|
||||
Ref: #value27759
|
||||
Node: Valuation type28560
|
||||
Ref: #valuation-type28696
|
||||
Node: Valuation commodity29581
|
||||
Ref: #valuation-commodity29752
|
||||
Node: --value examples30452
|
||||
Ref: #value-examples30629
|
||||
Node: Effect of --value on reports32612
|
||||
Ref: #effect-of---value-on-reports32785
|
||||
Node: Combining -B -V -X --value35476
|
||||
Ref: #combining--b--v--x---value35638
|
||||
Node: Output destination35674
|
||||
Ref: #output-destination35826
|
||||
Node: Output format36109
|
||||
Ref: #output-format36261
|
||||
Node: Regular expressions36646
|
||||
Ref: #regular-expressions36783
|
||||
Node: QUERIES38144
|
||||
Ref: #queries38246
|
||||
Node: COMMANDS42208
|
||||
Ref: #commands42320
|
||||
Node: accounts43321
|
||||
Ref: #accounts43419
|
||||
Node: activity44118
|
||||
Ref: #activity44228
|
||||
Node: add44611
|
||||
Ref: #add44710
|
||||
Node: balance47455
|
||||
Ref: #balance47566
|
||||
Node: Classic balance report49008
|
||||
Ref: #classic-balance-report49181
|
||||
Node: Customising the classic balance report50550
|
||||
Ref: #customising-the-classic-balance-report50778
|
||||
Node: Colour support52854
|
||||
Ref: #colour-support53021
|
||||
Node: Flat mode53194
|
||||
Ref: #flat-mode53342
|
||||
Node: Depth limited balance reports53755
|
||||
Ref: #depth-limited-balance-reports53955
|
||||
Node: Multicolumn balance report54411
|
||||
Ref: #multicolumn-balance-report54609
|
||||
Node: Budget report59923
|
||||
Ref: #budget-report60066
|
||||
Node: Nested budgets65268
|
||||
Ref: #nested-budgets65380
|
||||
Ref: #output-format-168860
|
||||
Node: balancesheet68938
|
||||
Ref: #balancesheet69074
|
||||
Node: balancesheetequity70389
|
||||
Ref: #balancesheetequity70538
|
||||
Node: cashflow71099
|
||||
Ref: #cashflow71227
|
||||
Node: check-dates72255
|
||||
Ref: #check-dates72382
|
||||
Node: check-dupes72661
|
||||
Ref: #check-dupes72785
|
||||
Node: close73078
|
||||
Ref: #close73186
|
||||
Node: files76773
|
||||
Ref: #files76874
|
||||
Node: help77021
|
||||
Ref: #help77121
|
||||
Node: import78214
|
||||
Ref: #import78328
|
||||
Node: Importing balance assignments79116
|
||||
Ref: #importing-balance-assignments79264
|
||||
Node: incomestatement79913
|
||||
Ref: #incomestatement80047
|
||||
Node: prices81383
|
||||
Ref: #prices81498
|
||||
Node: print81777
|
||||
Ref: #print81887
|
||||
Node: print-unique86380
|
||||
Ref: #print-unique86506
|
||||
Node: register86791
|
||||
Ref: #register86918
|
||||
Node: Custom register output91090
|
||||
Ref: #custom-register-output91219
|
||||
Node: register-match92481
|
||||
Ref: #register-match92615
|
||||
Node: rewrite92966
|
||||
Ref: #rewrite93081
|
||||
Node: Re-write rules in a file94936
|
||||
Ref: #re-write-rules-in-a-file95070
|
||||
Node: Diff output format96280
|
||||
Ref: #diff-output-format96449
|
||||
Node: rewrite vs print --auto97541
|
||||
Ref: #rewrite-vs.-print---auto97720
|
||||
Node: roi98276
|
||||
Ref: #roi98374
|
||||
Node: stats99386
|
||||
Ref: #stats99485
|
||||
Node: tags100273
|
||||
Ref: #tags100371
|
||||
Node: test100665
|
||||
Ref: #test100749
|
||||
Node: ADD-ON COMMANDS101510
|
||||
Ref: #add-on-commands101620
|
||||
Node: Official add-ons102908
|
||||
Ref: #official-add-ons103048
|
||||
Node: api103136
|
||||
Ref: #api103225
|
||||
Node: ui103277
|
||||
Ref: #ui103376
|
||||
Node: web103434
|
||||
Ref: #web103523
|
||||
Node: Third party add-ons103569
|
||||
Ref: #third-party-add-ons103744
|
||||
Node: diff103880
|
||||
Ref: #diff103977
|
||||
Node: iadd104076
|
||||
Ref: #iadd104190
|
||||
Node: interest104273
|
||||
Ref: #interest104394
|
||||
Node: irr104489
|
||||
Ref: #irr104587
|
||||
Node: Experimental add-ons104718
|
||||
Ref: #experimental-add-ons104870
|
||||
Node: autosync105151
|
||||
Ref: #autosync105262
|
||||
Node: chart105501
|
||||
Ref: #chart105620
|
||||
Node: check105691
|
||||
Ref: #check105793
|
||||
|
||||
End Tag Table
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user