2317 lines
		
	
	
		
			72 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			2317 lines
		
	
	
		
			72 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"t
 | |
| 
 | |
| .TH "hledger" "1" "May 2016" "hledger 0.28" "hledger User Manuals"
 | |
| 
 | |
| 
 | |
| 
 | |
| .SH NAME
 | |
| .PP
 | |
| hledger \- a command\-line accounting tool
 | |
| .SH SYNOPSIS
 | |
| .PP
 | |
| \f[C]hledger\ [\-f\ FILE]\ COMMAND\ [OPTIONS]\ [CMDARGS]\f[]
 | |
| .PD 0
 | |
| .P
 | |
| .PD
 | |
| \f[C]hledger\ [\-f\ FILE]\ ADDONCMD\ \-\-\ [OPTIONS]\ [CMDARGS]\f[]
 | |
| .SH DESCRIPTION
 | |
| .PP
 | |
| hledger is a cross\-platform program for tracking money, time, or any
 | |
| other commodity, using double\-entry accounting and a simple, editable
 | |
| file format.
 | |
| It is inspired by and largely compatible with ledger(1).
 | |
| Tested on unix, mac, windows, hledger aims to be a reliable, practical
 | |
| tool for daily use.
 | |
| .PP
 | |
| 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 financial
 | |
| transactions (in accounting terms, a general journal) and print useful
 | |
| reports on standard output, or export them as CSV.
 | |
| hledger can also read CSV files, converting them semi\-automatically to
 | |
| journal format.
 | |
| Additionally, hledger lists other hledger\-* executables found in the
 | |
| user's $PATH and can invoke them as subcommands.
 | |
| .PP
 | |
| The journal file is \f[C]~/.hledger.journal\f[] by default, or another
 | |
| file path specified by \f[C]$LEDGER_FILE\f[].
 | |
| (This should be a real environment variable, not a shell variable.) You
 | |
| can also specify a file with \f[C]\-f\ FILE\f[], or standard input with
 | |
| \f[C]\-f\-\f[].
 | |
| .PP
 | |
| Transactions are dated movements of money between two (or more) named
 | |
| accounts, and are recorded with journal entries like this:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| 2015/10/16\ bought\ food
 | |
| \ expenses:food\ \ \ \ \ \ \ \ \ \ $10
 | |
| \ assets:cash
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| For more about the format, see hledger_journal(5).
 | |
| .PP
 | |
| Most users use a text editor to edit the journal, usually with an editor
 | |
| mode such as ledger\-mode for added convenience.
 | |
| hledger's interactive add command is another way to record new
 | |
| transactions.
 | |
| hledger never changes existing transactions.
 | |
| .PP
 | |
| To get started, you can either save some entries like the above in
 | |
| \f[C]~/.hledger.journal\f[], or run \f[C]hledger\ add\f[] and follow the
 | |
| prompts.
 | |
| Then try some commands like \f[C]hledger\ print\f[] or
 | |
| \f[C]hledger\ balance\f[].
 | |
| See COMMANDS and EXAMPLES below.
 | |
| .SH EXAMPLES
 | |
| .PP
 | |
| Two simple transactions in hledger journal format:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| 2015/9/30\ gift\ received
 | |
| \ \ assets:cash\ \ \ $20
 | |
| \ \ income:gifts
 | |
| 
 | |
| 2015/10/16\ farmers\ market
 | |
| \ \ expenses:food\ \ \ \ $10
 | |
| \ \ assets:cash
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| Some basic reports:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ print
 | |
| 2015/09/30\ gift\ received
 | |
| \ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ $20
 | |
| \ \ \ \ income:gifts\ \ \ \ \ \ \ \ \ \ $\-20
 | |
| 
 | |
| 2015/10/16\ farmers\ market
 | |
| \ \ \ \ expenses:food\ \ \ \ \ \ \ \ \ \ \ $10
 | |
| \ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ $\-10
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ accounts\ \-\-tree
 | |
| assets
 | |
| \ \ cash
 | |
| expenses
 | |
| \ \ food
 | |
| income
 | |
| \ \ gifts
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $10\ \ assets:cash
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $10\ \ expenses:food
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-20\ \ income:gifts
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ register\ cash
 | |
| 2015/09/30\ gift\ received\ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $20\ \ \ \ \ \ \ \ \ \ \ $20
 | |
| 2015/10/16\ farmers\ market\ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-10\ \ \ \ \ \ \ \ \ \ \ $10
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| More commands:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ available\ commands
 | |
| $\ hledger\ add\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ add\ more\ transactions\ to\ the\ journal\ file
 | |
| $\ hledger\ balance\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ all\ accounts\ with\ aggregated\ balances
 | |
| $\ hledger\ balance\ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ detailed\ help\ for\ balance\ command
 | |
| $\ hledger\ balance\ \-\-depth\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ only\ top\-level\ accounts
 | |
| $\ hledger\ register\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ account\ postings,\ with\ running\ total
 | |
| $\ hledger\ reg\ income\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ postings\ to/from\ income\ accounts
 | |
| $\ hledger\ reg\ \[aq]assets:some\ bank:checking\[aq]\ #\ show\ postings\ to/from\ this\ checking\ account
 | |
| $\ hledger\ print\ desc:shop\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ transactions\ with\ shop\ in\ the\ description
 | |
| $\ hledger\ activity\ \-W\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ show\ transaction\ counts\ per\ week\ as\ a\ bar\ chart
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| With the journal
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| 2016/02/16\ Member\ Fee\ Payment\ John\ Doe
 | |
| \ \ \ \ assets:bank\ account\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 2\ EUR
 | |
| \ \ \ \ income:member\ fees\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-2\ EUR
 | |
| \ \ \ \ \ \ ;\ member:\ John\ Doe
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| the \-\-pivot comand will output the following:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ bal\ \-\-pivot\ member
 | |
| \ \ \ \ 2\ EUR\ \ assets:bank\ account
 | |
| \ \ \ \-2\ EUR\ \ member:John\ Doe
 | |
| \f[]
 | |
| .fi
 | |
| .SH OPTIONS
 | |
| .PP
 | |
| To see general usage and the command list: \f[C]hledger\ \-h\f[] or just
 | |
| \f[C]hledger\f[]
 | |
| .PP
 | |
| To see usage for a specific command: \f[C]hledger\ COMMAND\ \-h\f[]
 | |
| .PP
 | |
| Except for the General options below, options must be written after
 | |
| COMMAND, not before it.
 | |
| .PP
 | |
| Also, when invoking external add\-on commands, their options must be
 | |
| written after a double hyphen.
 | |
| (Or, you can invoke the external command directly.) Eg:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ ui\ \-\-\ \-\-register\ cash
 | |
| $\ hledger\-ui\ \-\-register\ cash
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| Options and command arguments can be intermixed.
 | |
| Arguments are usually interpreted as a search query which filters the
 | |
| data, see QUERIES.
 | |
| .PP
 | |
| There are three kinds of options.
 | |
| General options are always available and can appear anywhere in the
 | |
| command line:
 | |
| .TP
 | |
| .B \f[C]\-h\f[]
 | |
| show general usage (or after COMMAND, the command\[aq]s usage)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-help\f[]
 | |
| show the current program\[aq]s manual as plain text (or after an add\-on
 | |
| COMMAND, the add\-on\[aq]s manual)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-man\f[]
 | |
| show the current program\[aq]s manual with man
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-info\f[]
 | |
| show the current program\[aq]s manual with info
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-version\f[]
 | |
| show version
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-debug=N\f[]
 | |
| show debug output if N is 1\-9 (default: 0)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-f\ FILE\ \-\-file=FILE\f[]
 | |
| use a different input file.
 | |
| For stdin, use \-
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-rules\-file=RULESFILE\f[]
 | |
| Conversion rules file to use when reading CSV (default: FILE.rules)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-alias=OLD=NEW\f[]
 | |
| display accounts named OLD as NEW
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-ignore\-assertions\f[]
 | |
| ignore any failing balance assertions in the journal
 | |
| .RS
 | |
| .RE
 | |
| .PP
 | |
| Common reporting options are supported by most commands where
 | |
| applicable, and individual commands may provide additional
 | |
| command\-specific options.
 | |
| Both of these must be written after the command name.
 | |
| .TP
 | |
| .B \f[C]\-b\ \-\-begin=DATE\f[]
 | |
| include postings/txns on or after this date
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-e\ \-\-end=DATE\f[]
 | |
| include postings/txns before this date
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-D\ \-\-daily\f[]
 | |
| multiperiod/multicolumn report by day
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-W\ \-\-weekly\f[]
 | |
| multiperiod/multicolumn report by week
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-M\ \-\-monthly\f[]
 | |
| multiperiod/multicolumn report by month
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-Q\ \-\-quarterly\f[]
 | |
| multiperiod/multicolumn report by quarter
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-Y\ \-\-yearly\f[]
 | |
| multiperiod/multicolumn report by year
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-p\ \-\-period=PERIODEXP\f[]
 | |
| set start date, end date, and/or reporting interval all at once
 | |
| (overrides the flags above)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-date2\f[]
 | |
| show, and match with \-b/\-e/\-p/date:, secondary dates instead
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-C\ \-\-cleared\f[]
 | |
| include only cleared postings/txns
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-pending\f[]
 | |
| include only pending postings/txns
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-U\ \-\-uncleared\f[]
 | |
| include only uncleared (and pending) postings/txns
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-R\ \-\-real\f[]
 | |
| include only non\-virtual postings
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-depth=N\f[]
 | |
| hide accounts/postings deeper than N
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-E\ \-\-empty\f[]
 | |
| show items with zero amount, normally hidden
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-B\ \-\-cost\f[]
 | |
| show amounts in their cost price\[aq]s commodity
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-pivot\ TAG\f[]
 | |
| will transform the journal before any other processing by replacing the
 | |
| account name of every posting having the tag TAG with content VALUE by
 | |
| the account name "TAG:VALUE".
 | |
| .RS
 | |
| .RE
 | |
| The TAG will only match if it is a full\-length match.
 | |
| The pivot will only happen if the TAG is on a posting, not if it is on
 | |
| the transaction.
 | |
| If the tag value is a multi:level:account:name the new account name will
 | |
| be "TAG:multi:level:account:name".
 | |
| .RS
 | |
| .RE
 | |
| .SS Multiple files
 | |
| .PP
 | |
| You can specify multiple \f[C]\-f/\-\-file\ FILE\f[] options.
 | |
| This is like combining all the files into one, except they can have
 | |
| different formats.
 | |
| Also directives and aliases in one file do not affect subsequent files
 | |
| (if you need that, use the include directive instead).
 | |
| .SS Repeated options
 | |
| .PP
 | |
| Otherwise, if a reporting option is repeated, the last one takes
 | |
| precedence.
 | |
| Eg \-p jan \-p feb is equivalent to \-p feb.
 | |
| .SS Depth limiting
 | |
| .PP
 | |
| With the \f[C]\-\-depth\ N\f[] option, commands like account, balance
 | |
| and register will show only the uppermost accounts in the account tree,
 | |
| down to level N.
 | |
| Use this when you want a summary with less detail.
 | |
| .SS Smart dates
 | |
| .PP
 | |
| hledger\[aq]s user interfaces accept a flexible "smart date" syntax
 | |
| (unlike dates in the journal file).
 | |
| Smart dates allow some english words, can be relative to today\[aq]s
 | |
| date, and can have less\-significant date parts omitted (defaulting to
 | |
| 1).
 | |
| .PP
 | |
| Examples:
 | |
| .PP
 | |
| .TS
 | |
| tab(@);
 | |
| l l.
 | |
| T{
 | |
| \f[C]2009/1/1\f[], \f[C]2009/01/01\f[], \f[C]2009\-1\-1\f[],
 | |
| \f[C]2009.1.1\f[]
 | |
| T}@T{
 | |
| simple dates, several separators allowed
 | |
| T}
 | |
| T{
 | |
| \f[C]2009/1\f[], \f[C]2009\f[]
 | |
| T}@T{
 | |
| same as above \- a missing day or month defaults to 1
 | |
| T}
 | |
| T{
 | |
| \f[C]1/1\f[], \f[C]january\f[], \f[C]jan\f[], \f[C]this\ year\f[]
 | |
| T}@T{
 | |
| relative dates, meaning january 1 of the current year
 | |
| T}
 | |
| T{
 | |
| \f[C]next\ year\f[]
 | |
| T}@T{
 | |
| january 1 of next year
 | |
| T}
 | |
| T{
 | |
| \f[C]this\ month\f[]
 | |
| T}@T{
 | |
| the 1st of the current month
 | |
| T}
 | |
| T{
 | |
| \f[C]this\ week\f[]
 | |
| T}@T{
 | |
| the most recent monday
 | |
| T}
 | |
| T{
 | |
| \f[C]last\ week\f[]
 | |
| T}@T{
 | |
| the monday of the week before this one
 | |
| T}
 | |
| T{
 | |
| \f[C]lastweek\f[]
 | |
| T}@T{
 | |
| spaces are optional
 | |
| T}
 | |
| T{
 | |
| \f[C]today\f[], \f[C]yesterday\f[], \f[C]tomorrow\f[]
 | |
| T}@T{
 | |
| T}
 | |
| .TE
 | |
| .SS Reporting interval
 | |
| .PP
 | |
| A reporting interval can be specified so that commands like register,
 | |
| balance and activity will divide their reports into multiple report
 | |
| periods.
 | |
| The basic intervals can be selected with one of \f[C]\-D/\-\-daily\f[],
 | |
| \f[C]\-W/\-\-weekly\f[], \f[C]\-M/\-\-monthly\f[],
 | |
| \f[C]\-Q/\-\-quarterly\f[], or \f[C]\-Y/\-\-yearly\f[].
 | |
| More complex intervals may be specified with a period expression.
 | |
| .SS Period expressions
 | |
| .PP
 | |
| The \f[C]\-p/\-\-period\f[] option accepts period expressions, a
 | |
| shorthand way of expressing a start date, end date, and or reporting
 | |
| interval all at once.
 | |
| Note a period expression on the command line will cause any other date
 | |
| flags
 | |
| (\f[C]\-b\f[]/\f[C]\-e\f[]/\f[C]\-D\f[]/\f[C]\-W\f[]/\f[C]\-M\f[]/\f[C]\-Q\f[]/\f[C]\-Y\f[])
 | |
| to be ignored.
 | |
| .PP
 | |
| hledger\[aq]s period expressions are similar to Ledger\[aq]s, though not
 | |
| identical.
 | |
| Here\[aq]s a basic period expression specifying the first quarter of
 | |
| 2009.
 | |
| Note, hledger always treats start dates as inclusive and end dates as
 | |
| exclusive:
 | |
| .PP
 | |
| \f[C]\-p\ "from\ 2009/1/1\ to\ 2009/4/1"\f[]
 | |
| .PP
 | |
| Keywords like "from" and "to" are optional, and so are the spaces, as
 | |
| long as you don\[aq]t run two dates together.
 | |
| "to" can also be written as "\-".
 | |
| These are equivalent to the above:
 | |
| .PP
 | |
| .TS
 | |
| tab(@);
 | |
| l.
 | |
| T{
 | |
| \f[C]\-p\ "2009/1/1\ 2009/4/1"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p2009/1/1to2009/4/1\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p2009/1/1\-2009/4/1\f[]
 | |
| T}
 | |
| .TE
 | |
| .PP
 | |
| Dates are smart dates, so if the current year is 2009, the above can
 | |
| also be written as:
 | |
| .PP
 | |
| .TS
 | |
| tab(@);
 | |
| l.
 | |
| T{
 | |
| \f[C]\-p\ "1/1\ 4/1"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "january\-apr"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "this\ year\ to\ 4/1"\f[]
 | |
| T}
 | |
| .TE
 | |
| .PP
 | |
| If you specify only one date, the missing start or end date will be the
 | |
| earliest or latest transaction in your journal:
 | |
| .PP
 | |
| .TS
 | |
| tab(@);
 | |
| l l.
 | |
| T{
 | |
| \f[C]\-p\ "from\ 2009/1/1"\f[]
 | |
| T}@T{
 | |
| everything after january 1, 2009
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "from\ 2009/1"\f[]
 | |
| T}@T{
 | |
| the same
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "from\ 2009"\f[]
 | |
| T}@T{
 | |
| the same
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "to\ 2009"\f[]
 | |
| T}@T{
 | |
| everything before january 1, 2009
 | |
| T}
 | |
| .TE
 | |
| .PP
 | |
| A single date with no "from" or "to" defines both the start and end date
 | |
| like so:
 | |
| .PP
 | |
| .TS
 | |
| tab(@);
 | |
| l l.
 | |
| T{
 | |
| \f[C]\-p\ "2009"\f[]
 | |
| T}@T{
 | |
| the year 2009; equivalent to "2009/1/1 to 2010/1/1"
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "2009/1"\f[]
 | |
| T}@T{
 | |
| the month of jan; equivalent to "2009/1/1 to 2009/2/1"
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "2009/1/1"\f[]
 | |
| T}@T{
 | |
| just that day; equivalent to "2009/1/1 to 2009/1/2"
 | |
| T}
 | |
| .TE
 | |
| .PP
 | |
| Period expressions can also start with (or be) a reporting interval:
 | |
| \f[C]daily\f[], \f[C]weekly\f[], \f[C]monthly\f[], \f[C]quarterly\f[],
 | |
| \f[C]yearly\f[], or one of the \f[C]every\ ...\f[] expressions below.
 | |
| Optionally the word \f[C]in\f[] may appear between the reporting
 | |
| interval and the start/end dates.
 | |
| Examples:
 | |
| .PP
 | |
| .TS
 | |
| tab(@);
 | |
| l.
 | |
| T{
 | |
| \f[C]\-p\ "weekly\ from\ 2009/1/1\ to\ 2009/4/1"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "monthly\ in\ 2008"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "bimonthly\ from\ 2008"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "quarterly"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "every\ 2\ weeks"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "every\ 5\ days\ from\ 1/3"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "every\ 15th\ day\ of\ month"\f[]
 | |
| T}
 | |
| T{
 | |
| \f[C]\-p\ "every\ 4th\ day\ of\ week"\f[]
 | |
| T}
 | |
| .TE
 | |
| .SS Regular Expressions
 | |
| .PP
 | |
| hledger uses regular expressions in a number of places:
 | |
| .IP \[bu] 2
 | |
| query terms, on the command line and in the hledger\-web search form:
 | |
| \f[C]REGEX\f[], \f[C]desc:REGEX\f[], \f[C]cur:REGEX\f[],
 | |
| \f[C]tag:...=REGEX\f[]
 | |
| .IP \[bu] 2
 | |
| CSV rules conditional blocks: \f[C]if\ REGEX\ ...\f[]
 | |
| .IP \[bu] 2
 | |
| account alias directives and options:
 | |
| \f[C]alias\ /REGEX/\ =\ REPLACEMENT\f[],
 | |
| \f[C]\-\-alias\ /REGEX/=REPLACEMENT\f[]
 | |
| .PP
 | |
| hledger\[aq]s regular expressions come from the regex\-tdfa library.
 | |
| In general they:
 | |
| .IP \[bu] 2
 | |
| are case insensitive
 | |
| .IP \[bu] 2
 | |
| are infix matching (do not need to match the entire thing being matched)
 | |
| .IP \[bu] 2
 | |
| are POSIX extended regular expressions
 | |
| .IP \[bu] 2
 | |
| also support GNU word boundaries (\\<, \\>, \\b, \\B)
 | |
| .IP \[bu] 2
 | |
| and parenthesised capturing groups and numeric backreferences in
 | |
| replacement strings
 | |
| .IP \[bu] 2
 | |
| do not support mode modifiers like (?s)
 | |
| .PP
 | |
| Some things to note:
 | |
| .IP \[bu] 2
 | |
| In the \f[C]alias\f[] directive and \f[C]\-\-alias\f[] option, regular
 | |
| expressions must be enclosed in forward slashes (\f[C]/REGEX/\f[]).
 | |
| Elsewhere in hledger, these are not required.
 | |
| .IP \[bu] 2
 | |
| To match a regular expression metacharacter like \f[C]$\f[] as a literal
 | |
| character, prepend a backslash.
 | |
| Eg to search for amounts with the dollar sign in hledger\-web, write
 | |
| \f[C]cur:\\$\f[].
 | |
| .IP \[bu] 2
 | |
| On the command line, some metacharacters like \f[C]$\f[] have a special
 | |
| meaning to the shell and so must be escaped a second time, with single
 | |
| or double quotes or another backslash.
 | |
| Eg, to match amounts with the dollar sign from the command line, write
 | |
| \f[C]cur:\[aq]\\$\[aq]\f[] or \f[C]cur:\\\\$\f[].
 | |
| .SH QUERIES
 | |
| .PP
 | |
| One of hledger\[aq]s strengths is being able to quickly report on
 | |
| precise subsets of your data.
 | |
| Most commands accept an optional query expression, written as arguments
 | |
| after the command name, to filter the data by date, account name or
 | |
| other criteria.
 | |
| The syntax is similar to a web search: one or more space\-separated
 | |
| search terms, quotes to enclose whitespace, optional prefixes to match
 | |
| specific fields.
 | |
| Multiple search terms are combined as follows:
 | |
| .PP
 | |
| All commands except print: show transactions/postings/accounts which
 | |
| match (or negatively match)
 | |
| .IP \[bu] 2
 | |
| any of the description terms AND
 | |
| .IP \[bu] 2
 | |
| any of the account terms AND
 | |
| .IP \[bu] 2
 | |
| all the other terms.
 | |
| .PP
 | |
| The print command: show transactions which
 | |
| .IP \[bu] 2
 | |
| match any of the description terms AND
 | |
| .IP \[bu] 2
 | |
| have any postings matching any of the positive account terms AND
 | |
| .IP \[bu] 2
 | |
| have no postings matching any of the negative account terms AND
 | |
| .IP \[bu] 2
 | |
| match all the other terms.
 | |
| .PP
 | |
| The following kinds of search terms can be used:
 | |
| .TP
 | |
| .B \f[B]\f[C]REGEX\f[]\f[]
 | |
| match account names by this regular expression
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]acct:REGEX\f[]\f[]
 | |
| same as above
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]amt:N,\ amt:<N,\ amt:<=N,\ amt:>N,\ amt:>=N\f[]\f[]
 | |
| match postings with a single\-commodity amount that is equal to, less
 | |
| than, or greater than N.
 | |
| (Multi\-commodity amounts are not tested, and will always match.) The
 | |
| comparison has two modes: if N is preceded by a + or \- sign (or is 0),
 | |
| the two signed numbers are compared.
 | |
| Otherwise, the absolute magnitudes are compared, ignoring sign.
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]code:REGEX\f[]\f[]
 | |
| match by transaction code (eg check number)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]cur:REGEX\f[]\f[]
 | |
| match postings or transactions including any amounts whose
 | |
| currency/commodity symbol is fully matched by REGEX.
 | |
| (For a partial match, use \f[C]\&.*REGEX.*\f[]).
 | |
| Note, to match characters which are regex\-significant, like the dollar
 | |
| sign (\f[C]$\f[]), you need to prepend \f[C]\\\f[].
 | |
| And when using the command line you need to add one more level of
 | |
| quoting to hide it from the shell, so eg do:
 | |
| \f[C]hledger\ print\ cur:\[aq]\\$\[aq]\f[] or
 | |
| \f[C]hledger\ print\ cur:\\\\$\f[].
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]desc:REGEX\f[]\f[]
 | |
| match transaction descriptions
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]date:PERIODEXPR\f[]\f[]
 | |
| match dates within the specified period.
 | |
| PERIODEXPR should not include a reporting interval.
 | |
| The command\-line \f[C]\-\-date2\f[] flag makes this match secondary
 | |
| dates instead (like the \f[C]\-b\f[]/\f[C]\-e\f[]/\f[C]\-p\f[] options).
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]date2:PERIODEXPR\f[]\f[]
 | |
| match secondary dates within the specified period.
 | |
| PERIODEXPR should not include a reporting interval.
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]depth:N\f[]\f[]
 | |
| match (or display, depending on command) accounts at or above this depth
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]real:,\ real:0\f[]\f[]
 | |
| match real or virtual postings respectively
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]status:*,\ status:!,\ status:\f[]\f[]
 | |
| match cleared, pending, or uncleared/pending transactions respectively
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]tag:REGEX[=REGEX]\f[]\f[]
 | |
| match by tag name, and optionally also by tag value.
 | |
| Note a tag: query is considered to match a transaction if it matches any
 | |
| of the postings.
 | |
| Also remember that postings inherit the tags of their parent
 | |
| transaction.
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[B]\f[C]not:\f[]\f[]
 | |
| before any of the above negates the match.
 | |
| .RS
 | |
| .RE
 | |
| .PP
 | |
| Some of these can also be expressed as command\-line options (eg
 | |
| \f[C]depth:2\f[] is equivalent to \f[C]\-\-depth\ 2\f[]).
 | |
| Generally you can mix options and query arguments, and the resulting
 | |
| query will be their intersection (perhaps excluding the
 | |
| \f[C]\-p/\-\-period\f[] option).
 | |
| .SH COMMANDS
 | |
| .PP
 | |
| hledger provides a number of subcommands; \f[C]hledger\f[] with no
 | |
| arguments shows a list.
 | |
| .PP
 | |
| If you install additional \f[C]hledger\-*\f[] packages, or if you put
 | |
| programs or scripts named \f[C]hledger\-NAME\f[] in your PATH, these
 | |
| will also be listed as subcommands.
 | |
| .PP
 | |
| Run a subcommand by writing its name as first argument (eg
 | |
| \f[C]hledger\ incomestatement\f[]).
 | |
| You can also write any unambiguous prefix of a command name
 | |
| (\f[C]hledger\ inc\f[]), or one of the standard short aliases displayed
 | |
| in the command list (\f[C]hledger\ is\f[]).
 | |
| .SS accounts
 | |
| .PP
 | |
| Show account names.
 | |
| .TP
 | |
| .B \f[C]\-\-tree\f[]
 | |
| show short account names, as a tree
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-flat\f[]
 | |
| show full account names, as a list (default)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-drop=N\f[]
 | |
| in flat mode: omit N leading account name parts
 | |
| .RS
 | |
| .RE
 | |
| .PP
 | |
| This command lists all account names that are in use (ie, all the
 | |
| accounts which have at least one transaction posting to them).
 | |
| With query arguments, only matched account names are shown.
 | |
| .PP
 | |
| It shows a flat list by default.
 | |
| With \f[C]\-\-tree\f[], it uses indentation to show the account
 | |
| hierarchy.
 | |
| .PP
 | |
| In flat mode you can add \f[C]\-\-drop\ N\f[] to omit the first few
 | |
| account name components.
 | |
| .PP
 | |
| Examples:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ accounts\ \-\-tree
 | |
| assets
 | |
| \ \ bank
 | |
| \ \ \ \ checking
 | |
| \ \ \ \ saving
 | |
| \ \ cash
 | |
| expenses
 | |
| \ \ food
 | |
| \ \ supplies
 | |
| income
 | |
| \ \ gifts
 | |
| \ \ salary
 | |
| liabilities
 | |
| \ \ debts
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ accounts\ \-\-drop\ 1
 | |
| bank:checking
 | |
| bank:saving
 | |
| cash
 | |
| food
 | |
| supplies
 | |
| gifts
 | |
| salary
 | |
| debts
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ accounts
 | |
| assets:bank:checking
 | |
| assets:bank:saving
 | |
| assets:cash
 | |
| expenses:food
 | |
| expenses:supplies
 | |
| income:gifts
 | |
| income:salary
 | |
| liabilities:debts
 | |
| \f[]
 | |
| .fi
 | |
| .SS activity
 | |
| .PP
 | |
| Show an ascii barchart of posting counts per interval.
 | |
| .PP
 | |
| The activity command displays an ascii histogram showing transaction
 | |
| counts by day, week, month or other reporting interval (by day is the
 | |
| default).
 | |
| With query arguments, it counts only matched transactions.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ activity\ \-\-quarterly
 | |
| 2008\-01\-01\ **
 | |
| 2008\-04\-01\ *******
 | |
| 2008\-07\-01\ 
 | |
| 2008\-10\-01\ **
 | |
| \f[]
 | |
| .fi
 | |
| .SS add
 | |
| .PP
 | |
| Prompt for transactions and add them to the journal.
 | |
| .TP
 | |
| .B \f[C]\-\-no\-new\-accounts\f[]
 | |
| don\[aq]t allow creating new accounts; helps prevent typos when entering
 | |
| account names
 | |
| .RS
 | |
| .RE
 | |
| .PP
 | |
| Many hledger users edit their journals directly with a text editor, or
 | |
| generate them from CSV.
 | |
| For more interactive data entry, there is the \f[C]add\f[] command,
 | |
| which prompts interactively on the console for new transactions, and
 | |
| appends them to the journal file (if there are multiple
 | |
| \f[C]\-f\ FILE\f[] options, the first file is used.) Existing
 | |
| transactions are not changed.
 | |
| This is the only hledger command that writes to the journal file.
 | |
| .PP
 | |
| To use it, just run \f[C]hledger\ add\f[] and follow the prompts.
 | |
| You can add as many transactions as you like; when you are finished,
 | |
| enter \f[C]\&.\f[] or press control\-d or control\-c to exit.
 | |
| .PP
 | |
| Features:
 | |
| .IP \[bu] 2
 | |
| add tries to provide useful defaults, using the most similar recent
 | |
| transaction (by description) as a template.
 | |
| .IP \[bu] 2
 | |
| You can also set the initial defaults with command line arguments.
 | |
| .IP \[bu] 2
 | |
| Readline\-style edit keys can be used during data entry.
 | |
| .IP \[bu] 2
 | |
| The tab key will auto\-complete whenever possible \- accounts,
 | |
| descriptions, dates (\f[C]yesterday\f[], \f[C]today\f[],
 | |
| \f[C]tomorrow\f[]).
 | |
| If the input area is empty, it will insert the default value.
 | |
| .IP \[bu] 2
 | |
| If the journal defines a default commodity, it will be added to any bare
 | |
| numbers entered.
 | |
| .IP \[bu] 2
 | |
| A parenthesised transaction code may be entered following a date.
 | |
| .IP \[bu] 2
 | |
| Comments and tags may be entered following a description or amount.
 | |
| .IP \[bu] 2
 | |
| If you make a mistake, enter \f[C]<\f[] at any prompt to restart the
 | |
| transaction.
 | |
| .IP \[bu] 2
 | |
| Input prompts are displayed in a different colour when the terminal
 | |
| supports it.
 | |
| .PP
 | |
| Example (see the tutorial for a detailed explanation):
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ add
 | |
| Adding\ transactions\ to\ journal\ file\ /src/hledger/data/sample.journal
 | |
| Any\ command\ line\ arguments\ will\ be\ used\ as\ defaults.
 | |
| Use\ tab\ key\ to\ complete,\ readline\ keys\ to\ edit,\ enter\ to\ accept\ defaults.
 | |
| An\ optional\ (CODE)\ may\ follow\ transaction\ dates.
 | |
| An\ optional\ ;\ COMMENT\ may\ follow\ descriptions\ or\ amounts.
 | |
| If\ you\ make\ a\ mistake,\ enter\ <\ at\ any\ prompt\ to\ restart\ the\ transaction.
 | |
| To\ end\ a\ transaction,\ enter\ .\ when\ prompted.
 | |
| To\ quit,\ enter\ .\ at\ a\ date\ prompt\ or\ press\ control\-d\ or\ control\-c.
 | |
| Date\ [2015/05/22]:\ 
 | |
| Description:\ supermarket
 | |
| Account\ 1:\ expenses:food
 | |
| Amount\ \ 1:\ $10
 | |
| Account\ 2:\ assets:checking
 | |
| Amount\ \ 2\ [$\-10.0]:\ 
 | |
| Account\ 3\ (or\ .\ or\ enter\ to\ finish\ this\ transaction):\ .
 | |
| 2015/05/22\ supermarket
 | |
| \ \ \ \ expenses:food\ \ \ \ \ \ \ \ \ \ \ \ \ $10
 | |
| \ \ \ \ assets:checking\ \ \ \ \ \ \ \ $\-10.0
 | |
| 
 | |
| Save\ this\ transaction\ to\ the\ journal\ ?\ [y]:\ 
 | |
| Saved.
 | |
| Starting\ the\ next\ transaction\ (.\ or\ ctrl\-D/ctrl\-C\ to\ quit)
 | |
| Date\ [2015/05/22]:\ <CTRL\-D>\ $
 | |
| \f[]
 | |
| .fi
 | |
| .SS balance
 | |
| .PP
 | |
| Show accounts and their balances.
 | |
| Alias: bal.
 | |
| .TP
 | |
| .B \f[C]\-\-tree\f[]
 | |
| show short account names, as a tree
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-flat\f[]
 | |
| show full account names, as a list (default)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-drop=N\f[]
 | |
| in flat mode: omit N leading account name parts
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-format=LINEFORMAT\f[]
 | |
| in single\-column balance reports: use this custom line format
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-no\-elide\f[]
 | |
| in tree mode: don\[aq]t squash boring parent accounts
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-H\ \-\-historical\f[]
 | |
| in multicolumn mode: show historical ending balances
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-cumulative\f[]
 | |
| in multicolumn mode: show accumulated ending balances
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-A\ \-\-average\f[]
 | |
| in multicolumn mode: show a row average column
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-T\ \-\-row\-total\f[]
 | |
| in multicolumn mode: show a row total column
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-N\ \-\-no\-total\f[]
 | |
| don\[aq]t show the final total row
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-V\ \-\-value\f[]
 | |
| show amounts as their current market value in their default valuation
 | |
| commodity
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-o\ FILE[.FMT]\ \-\-output\-file=FILE[.FMT]\f[]
 | |
| write output to FILE instead of stdout.
 | |
| A recognised FMT suffix influences the format.
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-O\ FMT\ \-\-output\-format=FMT\f[]
 | |
| select the output format.
 | |
| Supported formats: txt, csv.
 | |
| .RS
 | |
| .RE
 | |
| .PP
 | |
| The balance command displays accounts and balances.
 | |
| It is hledger\[aq]s most featureful and most useful command.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ assets
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ bank:saving
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ \ \ cash
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2\ \ expenses
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ food
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ supplies
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ income
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ gifts
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ salary
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ liabilities:debts
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| More precisely, the balance command shows the \f[I]change\f[] to each
 | |
| account\[aq]s balance caused by all (matched) postings.
 | |
| In the common case where you do not filter by date and your journal sets
 | |
| the correct opening balances, this is the same as the account\[aq]s
 | |
| ending balance.
 | |
| .PP
 | |
| By default, accounts are displayed hierarchically, with subaccounts
 | |
| indented below their parent.
 | |
| "Boring" accounts, which contain a single interesting subaccount and no
 | |
| balance of their own, are elided into the following line for more
 | |
| compact output.
 | |
| (Use \f[C]\-\-no\-elide\f[] to prevent this.)
 | |
| .PP
 | |
| Each account\[aq]s balance is the "inclusive" balance \- it includes the
 | |
| balances of any subaccounts.
 | |
| .PP
 | |
| Accounts which have zero balance (and no non\-zero subaccounts) are
 | |
| omitted.
 | |
| Use \f[C]\-E/\-\-empty\f[] to show them.
 | |
| .PP
 | |
| A final total is displayed by default; use \f[C]\-N/\-\-no\-total\f[] to
 | |
| suppress it:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-p\ 2008/6\ expenses\ \-\-no\-total
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2\ \ expenses
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ food
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ supplies
 | |
| \f[]
 | |
| .fi
 | |
| .SS Flat mode
 | |
| .PP
 | |
| To see a flat list of full account names instead of the default
 | |
| hierarchical display, use \f[C]\-\-flat\f[].
 | |
| In this mode, accounts (unless depth\-clipped) show their "exclusive"
 | |
| balance, excluding any subaccount balances.
 | |
| In this mode, you can also use \f[C]\-\-drop\ N\f[] to omit the first
 | |
| few account name components.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-p\ 2008/6\ expenses\ \-N\ \-\-flat\ \-\-drop\ 1
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ food
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ supplies
 | |
| \f[]
 | |
| .fi
 | |
| .SS Depth limited balance reports
 | |
| .PP
 | |
| With \f[C]\-\-depth\ N\f[], balance shows accounts only to the specified
 | |
| depth.
 | |
| This is very useful to show a complex charts of accounts in less detail.
 | |
| In flat mode, balances from accounts below the depth limit will be shown
 | |
| as part of a parent account at the depth limit.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-N\ \-\-depth\ 1
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ assets
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2\ \ expenses
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ income
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ liabilities
 | |
| \f[]
 | |
| .fi
 | |
| .SS Multicolumn balance reports
 | |
| .PP
 | |
| With a reporting interval, multiple balance columns will be shown, one
 | |
| for each report period.
 | |
| There are three types of multi\-column balance report, showing different
 | |
| information:
 | |
| .IP "1." 3
 | |
| By default: each column shows the sum of postings in that period, ie the
 | |
| account\[aq]s change of balance in that period.
 | |
| This is useful eg for a monthly income statement:
 | |
| .RS 4
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-\-quarterly\ income\ expenses\ \-E
 | |
| Balance\ changes\ in\ 2008:
 | |
| 
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ 2008q1\ \ 2008q2\ \ 2008q3\ \ 2008q4\ 
 | |
| ===================++=================================
 | |
| \ expenses:food\ \ \ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ 
 | |
| \ expenses:supplies\ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ 
 | |
| \ income:gifts\ \ \ \ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ 
 | |
| \ income:salary\ \ \ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ 
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ 
 | |
| \f[]
 | |
| .fi
 | |
| .RE
 | |
| .IP "2." 3
 | |
| With \f[C]\-\-cumulative\f[]: each column shows the ending balance for
 | |
| that period, accumulating the changes across periods, starting from 0 at
 | |
| the report start date:
 | |
| .RS 4
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-\-quarterly\ income\ expenses\ \-E\ \-\-cumulative
 | |
| Ending\ balances\ (cumulative)\ in\ 2008:
 | |
| 
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ 2008/03/31\ \ 2008/06/30\ \ 2008/09/30\ \ 2008/12/31\ 
 | |
| ===================++=================================================
 | |
| \ expenses:food\ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ 
 | |
| \ expenses:supplies\ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ 
 | |
| \ income:gifts\ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\ 
 | |
| \ income:salary\ \ \ \ \ ||\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ $\-1\ 
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\ 
 | |
| \f[]
 | |
| .fi
 | |
| .RE
 | |
| .IP "3." 3
 | |
| With \f[C]\-\-historical/\-H\f[]: each column shows the actual
 | |
| historical ending balance for that period, accumulating the changes
 | |
| across periods, starting from the actual balance at the report start
 | |
| date.
 | |
| This is useful eg for a multi\-period balance sheet, and when you are
 | |
| showing only the data after a certain start date:
 | |
| .RS 4
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ ^assets\ ^liabilities\ \-\-quarterly\ \-\-historical\ \-\-begin\ 2008/4/1
 | |
| Ending\ balances\ (historical)\ in\ 2008/04/01\-2008/12/31:
 | |
| 
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ 2008/06/30\ \ 2008/09/30\ \ 2008/12/31\ 
 | |
| ======================++=====================================
 | |
| \ assets:bank:checking\ ||\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ \ 0\ 
 | |
| \ assets:bank:saving\ \ \ ||\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ $1\ 
 | |
| \ assets:cash\ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ $\-2\ \ \ \ \ \ \ \ \ $\-2\ \ \ \ \ \ \ \ \ $\-2\ 
 | |
| \ liabilities:debts\ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ $1\ 
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ 0\ 
 | |
| \f[]
 | |
| .fi
 | |
| .RE
 | |
| .PP
 | |
| Multi\-column balance reports display accounts in flat mode by default;
 | |
| to see the hierarchy, use \f[C]\-\-tree\f[].
 | |
| .PP
 | |
| With a reporting interval (like \f[C]\-\-quarterly\f[] above), the
 | |
| report start/end dates will be adjusted if necessary so that they
 | |
| encompass the displayed report periods.
 | |
| This is so that the first and last periods will be "full" and comparable
 | |
| to the others.
 | |
| .PP
 | |
| The \f[C]\-E/\-\-empty\f[] flag does two things in multicolumn balance
 | |
| reports: first, the report will show all columns within the specified
 | |
| report period (without \-E, leading and trailing columns with all zeroes
 | |
| are not shown).
 | |
| Second, all accounts which existed at the report start date will be
 | |
| considered, not just the ones with activity during the report period
 | |
| (use \-E to include low\-activity accounts which would otherwise would
 | |
| be omitted).
 | |
| .PP
 | |
| The \f[C]\-T/\-\-row\-total\f[] flag adds an additional column showing
 | |
| the total for each row.
 | |
| .PP
 | |
| The \f[C]\-A/\-\-average\f[] flag adds a column showing the average
 | |
| value in each row.
 | |
| .PP
 | |
| Here\[aq]s an example of all three:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-Q\ income\ expenses\ \-\-tree\ \-ETA
 | |
| Balance\ changes\ in\ 2008:
 | |
| 
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ 2008q1\ \ 2008q2\ \ 2008q3\ \ 2008q4\ \ \ \ Total\ \ Average\ 
 | |
| ============++===================================================
 | |
| \ expenses\ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $2\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ $2\ \ \ \ \ \ \ $1\ 
 | |
| \ \ \ food\ \ \ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ 0\ 
 | |
| \ \ \ supplies\ ||\ \ \ \ \ \ \ 0\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ 0\ 
 | |
| \ income\ \ \ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ $\-2\ \ \ \ \ \ $\-1\ 
 | |
| \ \ \ gifts\ \ \ \ ||\ \ \ \ \ \ \ 0\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ 0\ 
 | |
| \ \ \ salary\ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ 0\ 
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ ||\ \ \ \ \ $\-1\ \ \ \ \ \ $1\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ 0\ 
 | |
| 
 | |
| #\ Average\ is\ rounded\ to\ the\ dollar\ here\ since\ all\ journal\ amounts\ are
 | |
| \f[]
 | |
| .fi
 | |
| .SS Market value
 | |
| .PP
 | |
| The \f[C]\-V/\-\-value\f[] flag converts all the reported amounts to
 | |
| their "current market value" using their default market price.
 | |
| That is the latest market price (P directive) found in the journal (or
 | |
| an included file), for the amount\[aq]s commodity, dated on or before
 | |
| the report end date.
 | |
| .PP
 | |
| Unlike Ledger, hledger\[aq]s \-V only uses the market prices recorded
 | |
| with P directives, ignoring transaction prices recorded as part of
 | |
| posting amounts (which \-B/\-\-cost uses).
 | |
| Using \-B and \-V together is allowed.
 | |
| .SS Custom balance output
 | |
| .PP
 | |
| In simple (non\-multi\-column) balance reports, you can customise the
 | |
| output with \f[C]\-\-format\ FMT\f[]:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-\-format\ "%20(account)\ %12(total)"
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets\ \ \ \ \ \ \ \ \ \ $\-1
 | |
| \ \ \ \ \ \ \ \ \ bank:saving\ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cash\ \ \ \ \ \ \ \ \ \ $\-2
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ expenses\ \ \ \ \ \ \ \ \ \ \ $2
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ food\ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ supplies\ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ income\ \ \ \ \ \ \ \ \ \ $\-2
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ gifts\ \ \ \ \ \ \ \ \ \ $\-1
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ salary\ \ \ \ \ \ \ \ \ \ $\-1
 | |
| \ \ \ liabilities:debts\ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| The FMT format string (plus a newline) specifies the formatting applied
 | |
| to each account/balance pair.
 | |
| It may contain any suitable text, with data fields interpolated like so:
 | |
| .PP
 | |
| \f[C]%[MIN][.MAX](FIELDNAME)\f[]
 | |
| .IP \[bu] 2
 | |
| MIN pads with spaces to at least this width (optional)
 | |
| .IP \[bu] 2
 | |
| MAX truncates at this width (optional)
 | |
| .IP \[bu] 2
 | |
| FIELDNAME must be enclosed in parentheses, and can be one of:
 | |
| .RS 2
 | |
| .IP \[bu] 2
 | |
| \f[C]depth_spacer\f[] \- a number of spaces equal to the account\[aq]s
 | |
| depth, or if MIN is specified, MIN * depth spaces.
 | |
| .IP \[bu] 2
 | |
| \f[C]account\f[] \- the account\[aq]s name
 | |
| .IP \[bu] 2
 | |
| \f[C]total\f[] \- the account\[aq]s balance/posted total, right
 | |
| justified
 | |
| .RE
 | |
| .PP
 | |
| Also, FMT can begin with an optional prefix to control how
 | |
| multi\-commodity amounts are rendered:
 | |
| .IP \[bu] 2
 | |
| \f[C]%_\f[] \- render on multiple lines, bottom\-aligned (the default)
 | |
| .IP \[bu] 2
 | |
| \f[C]%^\f[] \- render on multiple lines, top\-aligned
 | |
| .IP \[bu] 2
 | |
| \f[C]%,\f[] \- render on one line, comma\-separated
 | |
| .PP
 | |
| There are some quirks.
 | |
| Eg in one\-line mode, \f[C]%(depth_spacer)\f[] has no effect, instead
 | |
| \f[C]%(account)\f[] has indentation built in.
 | |
|  Experimentation may be needed to get pleasing results.
 | |
| .PP
 | |
| Some example formats:
 | |
| .IP \[bu] 2
 | |
| \f[C]%(total)\f[] \- the account\[aq]s total
 | |
| .IP \[bu] 2
 | |
| \f[C]%\-20.20(account)\f[] \- the account\[aq]s name, left justified,
 | |
| padded to 20 characters and clipped at 20 characters
 | |
| .IP \[bu] 2
 | |
| \f[C]%,%\-50(account)\ \ %25(total)\f[] \- account name padded to 50
 | |
| characters, total padded to 20 characters, with multiple commodities
 | |
| rendered on one line
 | |
| .IP \[bu] 2
 | |
| \f[C]%20(total)\ \ %2(depth_spacer)%\-(account)\f[] \- the default
 | |
| format for the single\-column balance report
 | |
| .SS Output destination
 | |
| .PP
 | |
| The balance, print, register and stats commands can write their output
 | |
| to a destination other than the console.
 | |
| This is controlled by the \f[C]\-o/\-\-output\-file\f[] option.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-o\ \-\ \ \ \ \ #\ write\ to\ stdout\ (the\ default)
 | |
| $\ hledger\ balance\ \-o\ FILE\ \ #\ write\ to\ FILE
 | |
| \f[]
 | |
| .fi
 | |
| .SS CSV output
 | |
| .PP
 | |
| The balance, print and register commands can write their output as CSV.
 | |
| This is useful for exporting data to other applications, eg to make
 | |
| charts in a spreadsheet.
 | |
| This is controlled by the \f[C]\-O/\-\-output\-format\f[] option, or by
 | |
| specifying a \f[C]\&.csv\f[] file extension with
 | |
| \f[C]\-o/\-\-output\-file\f[].
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-O\ csv\ \ \ \ \ \ \ #\ write\ CSV\ to\ stdout
 | |
| $\ hledger\ balance\ \-o\ FILE.csv\ \ #\ write\ CSV\ to\ FILE.csv
 | |
| \f[]
 | |
| .fi
 | |
| .SS balancesheet
 | |
| .PP
 | |
| Show a balance sheet.
 | |
| Alias: bs.
 | |
| .TP
 | |
| .B \f[C]\-\-flat\f[]
 | |
| show full account names, as a list (default)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-drop=N\f[]
 | |
| in flat mode: omit N leading account name parts
 | |
| .RS
 | |
| .RE
 | |
| .PP
 | |
| This command displays a simple balance sheet.
 | |
| It currently assumes that you have top\-level accounts named
 | |
| \f[C]asset\f[] and \f[C]liability\f[] (plural forms also allowed.)
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balancesheet
 | |
| Balance\ Sheet
 | |
| 
 | |
| Assets:
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ assets
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ bank:saving
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ \ \ cash
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 
 | |
| Liabilities:
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ liabilities:debts
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| 
 | |
| Total:
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| \f[]
 | |
| .fi
 | |
| .SS cashflow
 | |
| .PP
 | |
| Show a cashflow statement.
 | |
| Alias: cf.
 | |
| .TP
 | |
| .B \f[C]\-\-flat\f[]
 | |
| show full account names, as a list (default)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-drop=N\f[]
 | |
| in flat mode: omit N leading account name parts
 | |
| .RS
 | |
| .RE
 | |
| .PP
 | |
| This command displays a simple cashflow statement It shows the change in
 | |
| all "cash" (ie, liquid assets) accounts for the period.
 | |
| It currently assumes that cash accounts are under a top\-level account
 | |
| named \f[C]asset\f[] and do not contain \f[C]receivable\f[] or
 | |
| \f[C]A/R\f[] (plural forms also allowed.)
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ cashflow
 | |
| Cashflow\ Statement
 | |
| 
 | |
| Cash\ flows:
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ assets
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ bank:saving
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ \ \ cash
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 
 | |
| Total:
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| \f[]
 | |
| .fi
 | |
| .SS help
 | |
| .PP
 | |
| Show any of the hledger manuals.
 | |
| .PP
 | |
| The \f[C]help\f[] command displays any of the main hledger man pages.
 | |
| (Unlike \f[C]hledger\ \-\-help\f[], which displays only the hledger man
 | |
| page.) Run it with no arguments to list available topics (their names
 | |
| are shortened for easier typing), and run \f[C]hledger\ help\ TOPIC\f[]
 | |
| to select one.
 | |
| The output is similar to a man page, but fixed width.
 | |
| It may be long, so you may wish to pipe it into a pager.
 | |
| See also info and man.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ help
 | |
| Choose\ a\ topic,\ eg:\ hledger\ help\ cli
 | |
| cli,\ ui,\ web,\ api,\ journal,\ csv,\ timeclock,\ timedot
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ help\ cli\ |\ less
 | |
| 
 | |
| hledger(1)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ hledger\ User\ Manuals\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ hledger(1)
 | |
| 
 | |
| 
 | |
| 
 | |
| NAME
 | |
| \ \ \ \ \ \ \ hledger\ \-\ a\ command\-line\ accounting\ tool
 | |
| 
 | |
| SYNOPSIS
 | |
| \ \ \ \ \ \ \ hledger\ [\-f\ FILE]\ COMMAND\ [OPTIONS]\ [CMDARGS]
 | |
| \ \ \ \ \ \ \ hledger\ [\-f\ FILE]\ ADDONCMD\ \-\-\ [OPTIONS]\ [CMDARGS]
 | |
| :
 | |
| \f[]
 | |
| .fi
 | |
| .SS incomestatement
 | |
| .PP
 | |
| Show an income statement.
 | |
| Alias: is.
 | |
| .TP
 | |
| .B \f[C]\-\-flat\f[]
 | |
| show full account names, as a list (default)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-\-drop=N\f[]
 | |
| in flat mode: omit N leading account name parts
 | |
| .RS
 | |
| .RE
 | |
| .PP
 | |
| This command displays a simple income statement.
 | |
| It currently assumes that you have top\-level accounts named
 | |
| \f[C]income\f[] (or \f[C]revenue\f[]) and \f[C]expense\f[] (plural forms
 | |
| also allowed.)
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ incomestatement
 | |
| Income\ Statement
 | |
| 
 | |
| Revenues:
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ income
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ gifts
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ salary
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| 
 | |
| Expenses:
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2\ \ expenses
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ food
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ supplies
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2
 | |
| 
 | |
| Total:
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| \f[]
 | |
| .fi
 | |
| .SS info
 | |
| .PP
 | |
| Show any of the hledger manuals using info.
 | |
| .PP
 | |
| The \f[C]info\f[] command displays any of the hledger reference manuals
 | |
| using the info hypertextual documentation viewer.
 | |
| This can be a very efficient way to browse large manuals.
 | |
| It requires the "info" program to be available in your PATH.
 | |
| .PP
 | |
| As with help, run it with no arguments to list available topics
 | |
| (manuals).
 | |
| .SS man
 | |
| .PP
 | |
| Show any of the hledger manuals using man.
 | |
| .PP
 | |
| The \f[C]man\f[] command displays any of the hledger reference manuals
 | |
| using man, the standard documentation viewer on unix systems.
 | |
| This will fit the text to your terminal width, and probably invoke a
 | |
| pager automatically.
 | |
| It requires the "man" program to be available in your PATH.
 | |
| .PP
 | |
| As with help, run it with no arguments to list available topics
 | |
| (manuals).
 | |
| .SS print
 | |
| .PP
 | |
| Show transactions from the journal.
 | |
| .TP
 | |
| .B \f[C]\-m\ STR\ \-\-match=STR\f[]
 | |
| show the transaction whose description is most similar to STR, and is
 | |
| most recent
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-o\ FILE[.FMT]\ \-\-output\-file=FILE[.FMT]\f[]
 | |
| write output to FILE instead of stdout.
 | |
| A recognised FMT suffix influences the format.
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-O\ FMT\ \-\-output\-format=FMT\f[]
 | |
| select the output format.
 | |
| Supported formats: txt, csv.
 | |
| .RS
 | |
| .RE
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ print
 | |
| 2008/01/01\ income
 | |
| \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ income:salary\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 
 | |
| 2008/06/01\ gift
 | |
| \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ income:gifts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 
 | |
| 2008/06/02\ save
 | |
| \ \ \ \ assets:bank:saving\ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 
 | |
| 2008/06/03\ *\ eat\ &\ shop
 | |
| \ \ \ \ expenses:food\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ expenses:supplies\ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| 
 | |
| 2008/12/31\ *\ pay\ off
 | |
| \ \ \ \ liabilities:debts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| The print command displays full transactions from the journal file,
 | |
| tidily formatted and showing all amounts explicitly.
 | |
| The output of print is always a valid hledger journal, but it does
 | |
| always not preserve all original content exactly (eg directives).
 | |
| .PP
 | |
| hledger\[aq]s print command also shows all unit prices in effect, or
 | |
| (with \-B/\-\-cost) shows cost amounts.
 | |
| .PP
 | |
| The print command also supports output destination and CSV output.
 | |
| .SS register
 | |
| .PP
 | |
| Show postings and their running total.
 | |
| Alias: reg.
 | |
| .TP
 | |
| .B \f[C]\-H\ \-\-historical\f[]
 | |
| include prior postings in the running total
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-A\ \-\-average\f[]
 | |
| show a running average instead of the running total (implies \-\-empty)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-r\ \-\-related\f[]
 | |
| show postings\[aq] siblings instead
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-w\ N\ \-\-width=N\f[]
 | |
| set output width (default: terminal width or COLUMNS.
 | |
| \-wN,M sets description width as well)
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-o\ FILE[.FMT]\ \-\-output\-file=FILE[.FMT]\f[]
 | |
| write output to FILE instead of stdout.
 | |
| A recognised FMT suffix influences the format.
 | |
| .RS
 | |
| .RE
 | |
| .TP
 | |
| .B \f[C]\-O\ FMT\ \-\-output\-format=FMT\f[]
 | |
| select the output format.
 | |
| Supported formats: txt, csv.
 | |
| .RS
 | |
| .RE
 | |
| .PP
 | |
| The register command displays postings, one per line, and their running
 | |
| total.
 | |
| This is typically used with a query selecting a particular account, to
 | |
| see that account\[aq]s activity:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ register\ checking
 | |
| 2008/01/01\ income\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| 2008/06/01\ gift\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ \ \ $2
 | |
| 2008/06/02\ save\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| 2008/12/31\ pay\ off\ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| The \f[C]\-\-historical\f[]/\f[C]\-H\f[] flag adds the balance from any
 | |
| undisplayed prior postings to the running total.
 | |
| This is useful when you want to see only recent activity, with a
 | |
| historically accurate running balance:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ register\ checking\ \-b\ 2008/6\ \-\-historical
 | |
| 2008/06/01\ gift\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ \ \ $2
 | |
| 2008/06/02\ save\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| 2008/12/31\ pay\ off\ \ \ \ \ \ \ \ \ \ \ \ \ \ assets:bank:checking\ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| The \f[C]\-\-depth\f[] option limits the amount of sub\-account detail
 | |
| displayed.
 | |
| .PP
 | |
| The \f[C]\-\-average\f[]/\f[C]\-A\f[] flag shows the running average
 | |
| posting amount instead of the running total (so, the final number
 | |
| displayed is the average for the whole report period).
 | |
| This flag implies \f[C]\-\-empty\f[] (see below).
 | |
| It works best when showing just one account and one commodity.
 | |
| .PP
 | |
| The \f[C]\-\-related\f[]/\f[C]\-r\f[] flag shows the \f[I]other\f[]
 | |
| postings in the transactions of the postings which would normally be
 | |
| shown.
 | |
| .PP
 | |
| With a reporting interval, register shows summary postings, one per
 | |
| interval, aggregating the postings to each account:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ register\ \-\-monthly\ income
 | |
| 2008/01\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ income:salary\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 2008/06\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ income:gifts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| Periods with no activity, and summary postings with a zero amount, are
 | |
| not shown by default; use the \f[C]\-\-empty\f[]/\f[C]\-E\f[] flag to
 | |
| see them:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ register\ \-\-monthly\ income\ \-E
 | |
| 2008/01\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ income:salary\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 2008/02\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 2008/03\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 2008/04\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 2008/05\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| 2008/06\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ income:gifts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| 2008/07\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| 2008/08\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| 2008/09\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| 2008/10\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| 2008/11\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| 2008/12\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| Often, you\[aq]ll want to see just one line per interval.
 | |
| The \f[C]\-\-depth\f[] option helps with this, causing subaccounts to be
 | |
| aggregated:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ register\ \-\-monthly\ assets\ \-\-depth\ 1h
 | |
| 2008/01\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| 2008/06\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| 2008/12\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ assets\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1\ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| Note when using report intervals, if you specify start/end dates these
 | |
| will be adjusted outward if necessary to contain a whole number of
 | |
| intervals.
 | |
| This ensures that the first and last intervals are full length and
 | |
| comparable to the others in the report.
 | |
| .SS Custom register output
 | |
| .PP
 | |
| register uses the full terminal width by default, except on windows.
 | |
| You can override this by setting the \f[C]COLUMNS\f[] environment
 | |
| variable (not a bash shell variable) or by using the
 | |
| \f[C]\-\-width\f[]/\f[C]\-w\f[] option.
 | |
| .PP
 | |
| The description and account columns normally share the space equally
 | |
| (about half of (width \- 40) each).
 | |
| You can adjust this by adding a description width as part of
 | |
| \-\-width\[aq]s argument, comma\-separated: \f[C]\-\-width\ W,D\f[] .
 | |
| Here\[aq]s a diagram:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| <\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\ width\ (W)\ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->
 | |
| date\ (10)\ \ description\ (D)\ \ \ \ \ \ \ account\ (W\-41\-D)\ \ \ \ \ amount\ (12)\ \ \ balance\ (12)
 | |
| DDDDDDDDDD\ dddddddddddddddddddd\ \ aaaaaaaaaaaaaaaaaaa\ \ AAAAAAAAAAAA\ \ AAAAAAAAAAAA
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| and some examples:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ reg\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ use\ terminal\ width\ (or\ 80\ on\ windows)
 | |
| $\ hledger\ reg\ \-w\ 100\ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ use\ width\ 100
 | |
| $\ COLUMNS=100\ hledger\ reg\ \ \ \ \ \ \ \ \ #\ set\ with\ one\-time\ environment\ variable
 | |
| $\ export\ COLUMNS=100;\ hledger\ reg\ #\ set\ till\ session\ end\ (or\ window\ resize)
 | |
| $\ hledger\ reg\ \-w\ 100,40\ \ \ \ \ \ \ \ \ \ \ #\ set\ overall\ width\ 100,\ description\ width\ 40
 | |
| $\ hledger\ reg\ \-w\ $COLUMNS,40\ \ \ \ \ \ #\ use\ terminal\ width,\ and\ set\ description\ width
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| The register command also supports the \f[C]\-o/\-\-output\-file\f[] and
 | |
| \f[C]\-O/\-\-output\-format\f[] options for controlling output
 | |
| destination and CSV output.
 | |
| .SS stats
 | |
| .PP
 | |
| Show some journal statistics.
 | |
| .TP
 | |
| .B \f[C]\-o\ FILE[.FMT]\ \-\-output\-file=FILE[.FMT]\f[]
 | |
| write output to FILE instead of stdout.
 | |
| A recognised FMT suffix influences the format.
 | |
| .RS
 | |
| .RE
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ stats
 | |
| Main\ journal\ file\ \ \ \ \ \ \ \ :\ /src/hledger/data/sample.journal
 | |
| Included\ journal\ files\ \ \ :\ 
 | |
| Transactions\ span\ \ \ \ \ \ \ \ :\ 2008\-01\-01\ to\ 2009\-01\-01\ (366\ days)
 | |
| Last\ transaction\ \ \ \ \ \ \ \ \ :\ 2008\-12\-31\ (2333\ days\ ago)
 | |
| Transactions\ \ \ \ \ \ \ \ \ \ \ \ \ :\ 5\ (0.0\ per\ day)
 | |
| Transactions\ last\ 30\ days:\ 0\ (0.0\ per\ day)
 | |
| Transactions\ last\ 7\ days\ :\ 0\ (0.0\ per\ day)
 | |
| Payees/descriptions\ \ \ \ \ \ :\ 5
 | |
| Accounts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ 8\ (depth\ 3)
 | |
| Commodities\ \ \ \ \ \ \ \ \ \ \ \ \ \ :\ 1\ ($)
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| The stats command displays summary information for the whole journal, or
 | |
| a matched part of it.
 | |
| With a reporting interval, it shows a report for each report period.
 | |
| .PP
 | |
| The stats command also supports \f[C]\-o/\-\-output\-file\f[] for
 | |
| controlling output destination.
 | |
| .SS test
 | |
| .PP
 | |
| Run built\-in unit tests.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ test
 | |
| Cases:\ 74\ \ Tried:\ 74\ \ Errors:\ 0\ \ Failures:\ 0
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| This command runs hledger\[aq]s built\-in unit tests and displays a
 | |
| quick report.
 | |
| With a regular expression argument, it selects only tests with matching
 | |
| names.
 | |
| It\[aq]s mainly used in development, but it\[aq]s also nice to be able
 | |
| to check your hledger executable for smoke at any time.
 | |
| .SH ADD\-ON COMMANDS
 | |
| .PP
 | |
| Add\-on commands are executables in your PATH whose name starts with
 | |
| \f[C]hledger\-\f[] and ends with any of these file extensions: none,
 | |
| \f[C]\&.hs\f[],\f[C]\&.lhs\f[],\f[C]\&.pl\f[],\f[C]\&.py\f[],\f[C]\&.rb\f[],\f[C]\&.rkt\f[],\f[C]\&.sh\f[],\f[C]\&.bat\f[],\f[C]\&.com\f[],\f[C]\&.exe\f[].
 | |
| Also, an add\-on\[aq]s name may not be the same as any built\-in command
 | |
| or alias.
 | |
| .PP
 | |
| hledger will detect these and include them in the command list and let
 | |
| you invoke them with \f[C]hledger\ ADDONCMD\f[].
 | |
| However there are some limitations:
 | |
| .IP \[bu] 2
 | |
| Options appearing before ADDONCMD will be visible only to hledger and
 | |
| will not be passed to the add\-on.
 | |
| Eg: \f[C]hledger\ \-h\ web\f[] shows hledger\[aq]s usage,
 | |
| \f[C]hledger\ web\ \-h\f[] shows hledger\-web\[aq]s usage.
 | |
| .IP \[bu] 2
 | |
| Options understood only by the add\-on must go after a \f[C]\-\-\f[]
 | |
| argument to hide them from hledger, which would otherwise reject them.
 | |
| Eg: \f[C]hledger\ web\ \-\-\ \-\-server\f[].
 | |
| .PP
 | |
| Sometimes it may be more convenient to just run the add\-on directly,
 | |
| eg: \f[C]hledger\-web\ \-\-server\f[].
 | |
| .PP
 | |
| Add\-ons which are written in haskell can take advantage of the
 | |
| hledger\-lib library for journal parsing, reporting, command\-line
 | |
| options, etc.
 | |
| .PP
 | |
| Here are some hledger add\-ons available from Hackage, the extra
 | |
| directory in the hledger source, or elsewhere:
 | |
| .SS api
 | |
| .PP
 | |
| Web API server, see hledger\-api.
 | |
| .SS autosync
 | |
| .PP
 | |
| Download OFX bank data and/or convert OFX to hledger journal format.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ autosync\ \-\-help
 | |
| usage:\ hledger\-autosync\ [\-h]\ [\-m\ MAX]\ [\-r]\ [\-a\ ACCOUNT]\ [\-l\ LEDGER]\ [\-i\ INDENT]
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [\-\-initial]\ [\-\-fid\ FID]\ [\-\-assertions]\ [\-d]\ [\-\-hledger]
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [\-\-slow]\ [\-\-which]
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ [PATH]
 | |
| 
 | |
| Synchronize\ ledger.
 | |
| 
 | |
| positional\ arguments:
 | |
| \ \ PATH\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ do\ not\ sync;\ import\ from\ OFX\ file
 | |
| 
 | |
| optional\ arguments:
 | |
| \ \ \-h,\ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ show\ this\ help\ message\ and\ exit
 | |
| \ \ \-m\ MAX,\ \-\-max\ MAX\ \ \ \ \ maximum\ number\ of\ days\ to\ process
 | |
| \ \ \-r,\ \-\-resync\ \ \ \ \ \ \ \ \ \ do\ not\ stop\ until\ max\ days\ reached
 | |
| \ \ \-a\ ACCOUNT,\ \-\-account\ ACCOUNT
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ account\ name\ for\ import
 | |
| \ \ \-l\ LEDGER,\ \-\-ledger\ LEDGER
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ specify\ ledger\ file\ to\ READ\ for\ syncing
 | |
| \ \ \-i\ INDENT,\ \-\-indent\ INDENT
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ number\ of\ spaces\ to\ use\ for\ indentation
 | |
| \ \ \-\-initial\ \ \ \ \ \ \ \ \ \ \ \ \ create\ initial\ balance\ entries
 | |
| \ \ \-\-fid\ FID\ \ \ \ \ \ \ \ \ \ \ \ \ pass\ in\ fid\ value\ for\ OFX\ files\ that\ do\ not\ supply\ it
 | |
| \ \ \-\-assertions\ \ \ \ \ \ \ \ \ \ create\ balance\ assertion\ entries
 | |
| \ \ \-d,\ \-\-debug\ \ \ \ \ \ \ \ \ \ \ enable\ debug\ logging
 | |
| \ \ \-\-hledger\ \ \ \ \ \ \ \ \ \ \ \ \ force\ use\ of\ hledger\ (on\ by\ default\ if\ invoked\ as\ hledger\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ autosync)
 | |
| \ \ \-\-slow\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ use\ slow,\ but\ possibly\ more\ robust,\ method\ of\ calling\ ledger
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (no\ subprocess)
 | |
| \ \ \-\-which\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ display\ which\ version\ of\ ledger/hledger/ledger\-python\ will
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ be\ used\ by\ ledger\-autosync\ to\ check\ for\ previous
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ transactions
 | |
| $\ head\ acct1.ofx
 | |
| OFXHEADER:100
 | |
| DATA:OFXSGML
 | |
| VERSION:102
 | |
| SECURITY:NONE
 | |
| ENCODING:USASCII
 | |
| CHARSET:1252
 | |
| COMPRESSION:NONE
 | |
| OLDFILEUID:NONE
 | |
| NEWFILEUIDe:8509488b59d1bb45
 | |
| 
 | |
| $\ hledger\ autosync\ acct1.ofx
 | |
| 2013/08/30\ MONTHLY\ SERVICE\ FEE
 | |
| \ \ \ \ ;\ ofxid:\ 3000.4303001832.201308301
 | |
| \ \ \ \ WF:4303001832\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-$6.00
 | |
| \ \ \ \ [assets:business:bank:wf:bchecking:banking]\ \ $6.00
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| ledger\-autosync, which includes a \f[C]hledger\-autosync\f[] alias,
 | |
| downloads transactions from your bank(s) via OFX, and prints just the
 | |
| new ones as journal entries which you can add to your journal.
 | |
| It can also operate on .OFX files which you\[aq]ve downloaded manually.
 | |
| It can be a nice alternative to hledger\[aq]s built\-in CSV reader,
 | |
| especially if your bank supports OFX download.
 | |
| .SS diff
 | |
| .PP
 | |
| Show transactions present in one journal file but not another
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ diff\ \-\-help
 | |
| Usage:\ hledger\-diff\ account:name\ left.journal\ right.journal
 | |
| $\ cat\ a.journal
 | |
| 1/1
 | |
| \ (acct:one)\ \ 1
 | |
| 
 | |
| $\ cat\ b.journal
 | |
| 1/1
 | |
| \ (acct:one)\ \ 1
 | |
| 2/2
 | |
| \ (acct:two)\ \ 2
 | |
| 
 | |
| $\ hledger\ diff\ acct:two\ a.journal\ b.journal
 | |
| Unmatched\ transactions\ in\ the\ first\ journal:
 | |
| 
 | |
| Unmatched\ transactions\ in\ the\ second\ journal:
 | |
| 
 | |
| 2015/02/02
 | |
| \ \ \ \ (acct:two)\ \ \ \ \ \ \ \ \ \ \ \ $2
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| hledger\-diff compares two journal files.
 | |
| Given an account name, it prints out the transactions affecting that
 | |
| account which are in one journal file but not in the other.
 | |
| This can be useful for reconciling existing journals with bank
 | |
| statements.
 | |
| .SS equity
 | |
| .PP
 | |
| Print a journal entry that resets account balances to zero.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ balance\ \-\-flat\ \-E\ assets\ liabilities
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ \ assets:bank:checking
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ assets:bank:saving
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2\ \ assets:cash
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1\ \ liabilities:debts
 | |
| \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| $\ hledger\ equity\ assets\ liabilities
 | |
| 2015/05/23
 | |
| \ \ \ \ assets:bank:saving\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| \ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $2
 | |
| \ \ \ \ liabilities:debts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-1
 | |
| \ \ \ \ equity:closing\ balances\ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| 
 | |
| 2015/05/23
 | |
| \ \ \ \ assets:bank:saving\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $\-2
 | |
| \ \ \ \ liabilities:debts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ $1
 | |
| \ \ \ \ equity:opening\ balances\ \ \ \ \ \ \ \ \ \ \ \ \ 0
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| This prints a journal entry which zeroes out the specified accounts (or
 | |
| all accounts) with a transfer to/from "equity:closing balances" (like
 | |
| Ledger\[aq]s equity command).
 | |
| Also, it prints an similar entry with opposite sign for restoring the
 | |
| balances from "equity:opening balances".
 | |
| .PP
 | |
| These can be useful for ending one journal file and starting a new one,
 | |
| respectively.
 | |
| By zeroing your asset and liability accounts at the end of a file and
 | |
| restoring them at the start of the next one, you will see correct
 | |
| asset/liability balances whether you run hledger on just one file, or on
 | |
| several files concatenated with include.
 | |
| .SS interest
 | |
| .PP
 | |
| Generate interest transactions.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ interest\ \-\-help
 | |
| Usage:\ hledger\-interest\ [OPTION...]\ ACCOUNT
 | |
| \ \ \-h\ \ \ \ \ \ \ \ \ \ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ print\ this\ message\ and\ exit
 | |
| \ \ \-V\ \ \ \ \ \ \ \ \ \ \-\-version\ \ \ \ \ \ \ \ \ show\ version\ number\ and\ exit
 | |
| \ \ \-v\ \ \ \ \ \ \ \ \ \ \-\-verbose\ \ \ \ \ \ \ \ \ echo\ input\ ledger\ to\ stdout\ (default)
 | |
| \ \ \-q\ \ \ \ \ \ \ \ \ \ \-\-quiet\ \ \ \ \ \ \ \ \ \ \ don\[aq]t\ echo\ input\ ledger\ to\ stdout
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-today\ \ \ \ \ \ \ \ \ \ \ compute\ interest\ up\ until\ today
 | |
| \ \ \-f\ FILE\ \ \ \ \ \-\-file=FILE\ \ \ \ \ \ \ input\ ledger\ file\ (pass\ \[aq]\-\[aq]\ for\ stdin)
 | |
| \ \ \-s\ ACCOUNT\ \ \-\-source=ACCOUNT\ \ interest\ source\ account
 | |
| \ \ \-t\ ACCOUNT\ \ \-\-target=ACCOUNT\ \ interest\ target\ account
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-act\ \ \ \ \ \ \ \ \ \ \ \ \ use\ \[aq]act\[aq]\ day\ counting\ convention
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-30\-360\ \ \ \ \ \ \ \ \ \ use\ \[aq]30/360\[aq]\ day\ counting\ convention
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-30E\-360\ \ \ \ \ \ \ \ \ use\ \[aq]30E/360\[aq]\ day\ counting\ convention
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-30E\-360isda\ \ \ \ \ use\ \[aq]30E/360isda\[aq]\ day\ counting\ convention
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-constant=RATE\ \ \ constant\ interest\ rate
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-annual=RATE\ \ \ \ \ annual\ interest\ rate
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-bgb288\ \ \ \ \ \ \ \ \ \ compute\ interest\ according\ to\ German\ BGB288
 | |
| \ \ \ \ \ \ \ \ \ \ \ \ \ \ \-\-ing\-diba\ \ \ \ \ \ \ \ compute\ interest\ according\ for\ Ing\-Diba\ Tagesgeld\ account
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ cat\ interest.journal
 | |
| 2008/09/26\ Loan
 | |
| \ \ \ \ \ Assets:Bank\ \ \ \ \ \ \ \ \ \ EUR\ 10000.00
 | |
| \ \ \ \ \ Liabilities:Bank
 | |
| 
 | |
| 2008/11/27\ Payment
 | |
| \ \ \ \ \ Assets:Bank\ \ \ \ \ \ \ \ \ \ EUR\ \-3771.12
 | |
| \ \ \ \ \ Liabilities:Bank
 | |
| 
 | |
| 2009/05/03\ Payment
 | |
| \ \ \ \ \ Assets:Bank\ \ \ \ \ \ \ \ \ \ EUR\ \-1200.00
 | |
| \ \ \ \ \ Liabilities:Bank
 | |
| 
 | |
| 2010/12/10\ Payment
 | |
| \ \ \ \ \ Assets:Bank\ \ \ \ \ \ \ \ \ \ EUR\ \-3700.00
 | |
| \ \ \ \ \ Liabilities:Bank
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ interest\ \-\-\ \-f\ interest.journal\ \-\-source=Expenses:Interest\ \\
 | |
| \ \ \ \ \-\-target=Liabilities:Bank\ \-\-30\-360\ \-\-annual=0.05\ Liabilities:Bank
 | |
| 2008/09/26\ Loan
 | |
| \ \ \ \ Assets:Bank\ \ \ \ \ \ \ EUR\ 10000.00
 | |
| \ \ \ \ Liabilities:Bank\ \ EUR\ \-10000.00
 | |
| 
 | |
| 2008/11/27\ 0.05%\ interest\ for\ EUR\ \-10000.00\ over\ 61\ days
 | |
| \ \ \ \ Liabilities:Bank\ \ \ \ \ EUR\ \-84.72
 | |
| \ \ \ \ Expenses:Interest\ \ \ \ \ EUR\ 84.72
 | |
| 
 | |
| 2008/11/27\ Payment
 | |
| \ \ \ \ Assets:Bank\ \ \ \ \ \ \ EUR\ \-3771.12
 | |
| \ \ \ \ Liabilities:Bank\ \ \ EUR\ 3771.12
 | |
| 
 | |
| 2008/12/31\ 0.05%\ interest\ for\ EUR\ \-6313.60\ over\ 34\ days
 | |
| \ \ \ \ Liabilities:Bank\ \ \ \ \ EUR\ \-29.81
 | |
| \ \ \ \ Expenses:Interest\ \ \ \ \ EUR\ 29.81
 | |
| 
 | |
| 2009/05/03\ 0.05%\ interest\ for\ EUR\ \-6343.42\ over\ 123\ days
 | |
| \ \ \ \ Liabilities:Bank\ \ \ \ EUR\ \-108.37
 | |
| \ \ \ \ Expenses:Interest\ \ \ \ EUR\ 108.37
 | |
| 
 | |
| 2009/05/03\ Payment
 | |
| \ \ \ \ Assets:Bank\ \ \ \ \ \ \ EUR\ \-1200.00
 | |
| \ \ \ \ Liabilities:Bank\ \ \ EUR\ 1200.00
 | |
| 
 | |
| 2009/12/31\ 0.05%\ interest\ for\ EUR\ \-5251.78\ over\ 238\ days
 | |
| \ \ \ \ Liabilities:Bank\ \ \ \ EUR\ \-173.60
 | |
| \ \ \ \ Expenses:Interest\ \ \ \ EUR\ 173.60
 | |
| 
 | |
| 2010/12/10\ 0.05%\ interest\ for\ EUR\ \-5425.38\ over\ 340\ days
 | |
| \ \ \ \ Liabilities:Bank\ \ \ \ EUR\ \-256.20
 | |
| \ \ \ \ Expenses:Interest\ \ \ \ EUR\ 256.20
 | |
| 
 | |
| 2010/12/10\ Payment
 | |
| \ \ \ \ Assets:Bank\ \ \ \ \ \ \ EUR\ \-3700.00
 | |
| \ \ \ \ Liabilities:Bank\ \ \ EUR\ 3700.00
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| hledger\-interest computes interests for a given account.
 | |
| Using command line flags, the program can be configured to use various
 | |
| schemes for day\-counting, such as act/act, 30/360, 30E/360, and
 | |
| 30/360isda.
 | |
| Furthermore, it supports a (small) number of interest schemes, i.e.
 | |
| annual interest with a fixed rate and the scheme mandated by the German
 | |
| BGB288 (Basiszins für Verbrauchergeschäfte).
 | |
| See the package page for more.
 | |
| .SS irr
 | |
| .PP
 | |
| Calculate internal rate of return.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ irr\ \-\-help
 | |
| Usage:\ hledger\-irr\ [OPTION...]
 | |
| \ \ \-h\ \ \ \ \ \ \ \ \ \ \-\-help\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ print\ this\ message\ and\ exit
 | |
| \ \ \-V\ \ \ \ \ \ \ \ \ \ \-\-version\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ show\ version\ number\ and\ exit
 | |
| \ \ \-c\ \ \ \ \ \ \ \ \ \ \-\-cashflow\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ also\ show\ all\ revant\ transactions
 | |
| \ \ \-f\ FILE\ \ \ \ \ \-\-file=FILE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ input\ ledger\ file\ (pass\ \[aq]\-\[aq]\ for\ stdin)
 | |
| \ \ \-i\ ACCOUNT\ \ \-\-investment\-account=ACCOUNT\ \ investment\ account
 | |
| \ \ \-t\ ACCOUNT\ \ \-\-interest\-account=ACCOUNT\ \ \ \ interest/gain/fees/losses\ account
 | |
| \ \ \-b\ DATE\ \ \ \ \ \-\-begin=DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ from\ this\ date
 | |
| \ \ \-e\ DATE\ \ \ \ \ \-\-end=DATE\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ until\ this\ date
 | |
| \ \ \-D\ \ \ \ \ \ \ \ \ \ \-\-daily\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ for\ each\ day
 | |
| \ \ \-W\ \ \ \ \ \ \ \ \ \ \-\-weekly\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ for\ each\ week
 | |
| \ \ \-M\ \ \ \ \ \ \ \ \ \ \-\-monthly\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ for\ each\ month
 | |
| \ \ \-Y\ \ \ \ \ \ \ \ \ \ \-\-yearly\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ calculate\ interest\ for\ each\ year
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ cat\ irr.journal\ 
 | |
| 2011\-01\-01\ Some\ wild\ speculation\ \[en]\ I\ wonder\ if\ it\ pays\ off
 | |
| \ \ \ Speculation\ \ \ €100.00
 | |
| \ \ \ Cash
 | |
| 
 | |
| 2011\-02\-01\ More\ speculation\ (and\ adjustment\ of\ value)
 | |
| \ \ \ Cash\ \ \ \ \ \ \ \ \ \-€10.00
 | |
| \ \ \ Rate\ Gain\ \ \ \ \ \-€1.00
 | |
| \ \ \ Speculation
 | |
| 
 | |
| 2011\-03\-01\ Lets\ pull\ out\ some\ money\ (and\ adjustment\ of\ value)
 | |
| \ \ \ Cash\ \ \ \ \ \ \ \ \ \ €30.00
 | |
| \ \ \ Rate\ Gain\ \ \ \ \ \-€3.00
 | |
| \ \ \ Speculation
 | |
| 
 | |
| 2011\-04\-01\ More\ speculation\ (and\ it\ lost\ some\ money!)
 | |
| \ \ \ Cash\ \ \ \ \ \ \ \ \ \-€50.00
 | |
| \ \ \ Rate\ Gain\ \ \ \ \ €\ 5.00
 | |
| \ \ \ Speculation
 | |
| 
 | |
| 2011\-05\-01\ Getting\ some\ money\ out\ (and\ adjustment\ of\ value)
 | |
| \ \ \ Speculation\ \ \-€44.00
 | |
| \ \ \ Rate\ Gain\ \ \ \ \-€\ 3.00
 | |
| \ \ \ Cash
 | |
| 
 | |
| 2011\-06\-01\ Emptying\ the\ account\ (after\ adjusting\ the\ value)
 | |
| \ \ \ Speculation\ \ \ \-€85.00
 | |
| \ \ \ Cash\ \ \ \ \ \ \ \ \ \ \ €90.00
 | |
| \ \ \ Rate\ Gain\ \ \ \ \ \-€\ 5.00
 | |
| \f[]
 | |
| .fi
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\-irr\ \-f\ irr.journal\ \-t\ "Rate\ Gain"\ \-i\ Speculation\ \ \-\-monthly
 | |
| 2011/01/01\ \-\ 2011/02/01:\ 12.49%
 | |
| 2011/02/01\ \-\ 2011/03/01:\ 41.55%
 | |
| 2011/03/01\ \-\ 2011/04/01:\ \-51.44%
 | |
| 2011/04/01\ \-\ 2011/05/01:\ 32.24%
 | |
| 2011/05/01\ \-\ 2011/06/01:\ 95.92%
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| hledger\-irr computes the internal rate of return, also known as the
 | |
| effective interest rate, of a given investment.
 | |
| After specifying what account holds the investment, and what account
 | |
| stores the gains (or losses, or fees, or cost), it calculates the
 | |
| hypothetical annual rate of fixed rate investment that would have
 | |
| provided the exact same cash flow.
 | |
| See the package page for more.
 | |
| .SS print\-unique
 | |
| .PP
 | |
| Print only only journal entries which have a unique description.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ cat\ unique.journal
 | |
| 1/1\ test
 | |
| \ (acct:one)\ \ 1
 | |
| 2/2\ test
 | |
| \ (acct:two)\ \ 2
 | |
| $\ LEDGER_FILE=unique.journal\ hledger\ print\-unique
 | |
| (\-f\ option\ not\ supported)
 | |
| 2015/01/01\ test
 | |
| \ \ \ \ (acct:one)\ \ \ \ \ \ \ \ \ \ \ \ \ 1
 | |
| \f[]
 | |
| .fi
 | |
| .SS rewrite
 | |
| .PP
 | |
| Prints all journal entries, adding specified custom postings to matched
 | |
| entries.
 | |
| .PP
 | |
| hledger\-rewrite.hs, in hledger\[aq]s extra directory (compilation
 | |
| optional), adds postings to existing transactions, optionally with an
 | |
| amount based on the existing transaction\[aq]s first amount.
 | |
| See the script for more details.
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ hledger\ rewrite\ \-\-\ [QUERY]\ \ \ \ \ \ \ \ \-\-add\-posting\ "ACCT\ \ AMTEXPR"\ ...
 | |
| $\ hledger\ rewrite\ \-\-\ ^income\ \ \ \ \ \ \ \ \-\-add\-posting\ \[aq](liabilities:tax)\ \ *.33\[aq]
 | |
| $\ hledger\ rewrite\ \-\-\ expenses:gifts\ \-\-add\-posting\ \[aq](budget:gifts)\ \ *\-1"\[aq]
 | |
| \f[]
 | |
| .fi
 | |
| .SS ui
 | |
| .PP
 | |
| Curses\-style interface, see hledger\-ui.
 | |
| .SS web
 | |
| .PP
 | |
| Web interface, see hledger\-web.
 | |
| .SH TROUBLESHOOTING
 | |
| .SS Run\-time problems
 | |
| .PP
 | |
| Here are some issues you might encounter when you run hledger (and
 | |
| remember you can also seek help from the IRC channel, mail list or bug
 | |
| tracker):
 | |
| .PP
 | |
| \f[B]Successfully installed, but "No command \[aq]hledger\[aq]
 | |
| found"\f[]
 | |
| .PD 0
 | |
| .P
 | |
| .PD
 | |
| stack and cabal install binaries into a special directory, which should
 | |
| be added to your PATH environment variable.
 | |
| Eg on unix\-like systems, that is ~/.local/bin and ~/.cabal/bin
 | |
| respectively.
 | |
| .PP
 | |
| \f[B]I set a custom LEDGER_FILE, but hledger is still using the default
 | |
| file\f[]
 | |
| .PD 0
 | |
| .P
 | |
| .PD
 | |
| \f[C]LEDGER_FILE\f[] should be a real environment variable, not just a
 | |
| shell variable.
 | |
| The command \f[C]env\ |\ grep\ LEDGER_FILE\f[] should show it.
 | |
| You may need to use \f[C]export\f[].
 | |
| Here\[aq]s an explanation.
 | |
| .PP
 | |
| \f[B]"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
 | |
| character" errors\f[]
 | |
| .PD 0
 | |
| .P
 | |
| .PD
 | |
| In order to handle non\-ascii letters and symbols (like £), hledger
 | |
| needs an appropriate locale.
 | |
| This is usually configured system\-wide; you can also configure it
 | |
| temporarily.
 | |
| The locale may need to be one that supports UTF\-8, if you built hledger
 | |
| with GHC < 7.2 (or possibly always, I\[aq]m not sure yet).
 | |
| .PP
 | |
| Here\[aq]s an example of setting the locale temporarily, on ubuntu
 | |
| gnu/linux:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ file\ my.journal
 | |
| my.journal:\ UTF\-8\ Unicode\ text\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ <\-\ the\ file\ is\ UTF8\-encoded
 | |
| $\ locale\ \-a
 | |
| C
 | |
| en_US.utf8\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ <\-\ a\ UTF8\-aware\ locale\ is\ available
 | |
| POSIX
 | |
| $\ LANG=en_US.utf8\ hledger\ \-f\ my.journal\ print\ \ \ #\ <\-\ use\ it\ for\ this\ command
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| Here\[aq]s one way to set it permanently, there are probably better
 | |
| ways:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ echo\ "export\ LANG=en_US.UTF\-8"\ >>~/.bash_profile
 | |
| $\ bash\ \-\-login
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| If we preferred to use eg \f[C]fr_FR.utf8\f[], we might have to install
 | |
| that first:
 | |
| .IP
 | |
| .nf
 | |
| \f[C]
 | |
| $\ apt\-get\ install\ language\-pack\-fr
 | |
| $\ locale\ \-a
 | |
| C
 | |
| en_US.utf8
 | |
| fr_BE.utf8
 | |
| fr_CA.utf8
 | |
| fr_CH.utf8
 | |
| fr_FR.utf8
 | |
| fr_LU.utf8
 | |
| POSIX
 | |
| $\ LANG=fr_FR.utf8\ hledger\ \-f\ my.journal\ print
 | |
| \f[]
 | |
| .fi
 | |
| .PP
 | |
| Note some platforms allow variant locale spellings, but not all (ubuntu
 | |
| accepts \f[C]fr_FR.UTF8\f[], mac osx requires exactly
 | |
| \f[C]fr_FR.UTF\-8\f[]).
 | |
| .SS Known limitations
 | |
| .PP
 | |
| \f[B]Command line interface\f[]
 | |
| .PP
 | |
| Add\-on command options, unless they are also understood by the main
 | |
| hledger executable, must be written after \f[C]\-\-\f[], like this:
 | |
| \f[C]hledger\ web\ \-\-\ \-\-server\f[]
 | |
| .PP
 | |
| \f[B]Differences from Ledger\f[]
 | |
| .PP
 | |
| Not all of Ledger\[aq]s journal file syntax is supported.
 | |
| See file format differences.
 | |
| .PP
 | |
| hledger is slower than Ledger, and uses more memory, on large data
 | |
| files.
 | |
| .PP
 | |
| \f[B]Windows limitations\f[]
 | |
| .PP
 | |
| In a windows CMD window, non\-ascii characters and colours are not
 | |
| supported.
 | |
| .PP
 | |
| In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in
 | |
| hledger add.
 | |
| .SH ENVIRONMENT
 | |
| .PP
 | |
| \f[B]LEDGER_FILE\f[] sets the default journal file path.
 | |
| If not set, it is \f[C]~/.hledger.journal\f[].
 | |
| .PP
 | |
| \f[B]COLUMNS\f[] sets the default width used by the register command
 | |
| (normally the full terminal width).
 | |
| .SH FILES
 | |
| .PP
 | |
| Reads data from a hledger journal file (\f[C]$LEDGER_FILE\f[] or
 | |
| \f[C]~/.hledger.journal\f[] by default), or a CSV file plus associated
 | |
| CSV rules file.
 | |
| .SH BUGS
 | |
| .PP
 | |
| The need to precede options with \f[C]\-\-\f[] when invoked from hledger
 | |
| is awkward.
 | |
| .PP
 | |
| hledger can\[aq]t render non\-ascii characters when run from a Windows
 | |
| command prompt (up to Windows 7 at least).
 | |
| .PP
 | |
| When input data contains non\-ascii characters, a suitable system locale
 | |
| must be configured (or there will be an unhelpful error).
 | |
| Eg on POSIX, set LANG to something other than C.
 | |
| 
 | |
| 
 | |
| .SH "REPORTING BUGS"
 | |
| Report bugs at http://bugs.hledger.org
 | |
| (or on the #hledger IRC channel or hledger mail list)
 | |
| 
 | |
| .SH AUTHORS
 | |
| Simon Michael <simon@joyful.com> and contributors
 | |
| 
 | |
| .SH COPYRIGHT
 | |
| 
 | |
| Copyright (C) 2007-2016 Simon Michael.
 | |
| .br
 | |
| Released under GNU GPL v3 or later.
 | |
| 
 | |
| .SH SEE ALSO
 | |
| hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),
 | |
| hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5),
 | |
| ledger(1)
 | |
| 
 | |
| http://hledger.org
 |