;update manuals
This commit is contained in:
		
							parent
							
								
									ec3ad14ae5
								
							
						
					
					
						commit
						d40d53ae02
					
				| @ -1332,15 +1332,13 @@ market prices to show amount values in another commodity. | ||||
| See Valuation. | ||||
| .SS Declaring accounts | ||||
| .PP | ||||
| \f[C]account\f[R] directives can be used to pre-declare accounts. | ||||
| Though not required, they can provide several benefits: | ||||
| \f[C]account\f[R] directives can be used to declare accounts (ie, the | ||||
| places that amounts are transferred from and to). | ||||
| Though not required, these declarations can provide several benefits: | ||||
| .IP \[bu] 2 | ||||
| They can document your intended chart of accounts, providing a | ||||
| reference. | ||||
| .IP \[bu] 2 | ||||
| They can store extra information about accounts (account numbers, notes, | ||||
| etc.) | ||||
| .IP \[bu] 2 | ||||
| They can help hledger know your accounts\[aq] types (asset, liability, | ||||
| equity, revenue, expense), useful for reports like balancesheet and | ||||
| incomestatement. | ||||
| @ -1348,17 +1346,55 @@ incomestatement. | ||||
| They control account display order in reports, allowing non-alphabetic | ||||
| sorting (eg Revenues to appear above Expenses). | ||||
| .IP \[bu] 2 | ||||
| They can store extra information about accounts (account numbers, notes, | ||||
| etc.) | ||||
| .IP \[bu] 2 | ||||
| They help with account name completion in the add command, hledger-iadd, | ||||
| hledger-web, ledger-mode etc. | ||||
| .IP \[bu] 2 | ||||
| In strict mode, they restrict which accounts may be posted to by | ||||
| transactions, which helps detect typos. | ||||
| .PP | ||||
| The simplest form is just the word \f[C]account\f[R] followed by a | ||||
| hledger-style account name, eg: | ||||
| hledger-style account name, eg this account directive declares the | ||||
| \f[C]assets:bank:checking\f[R] account: | ||||
| .IP | ||||
| .nf | ||||
| \f[C] | ||||
| account assets:bank:checking | ||||
| \f[R] | ||||
| .fi | ||||
| .SS Account existence | ||||
| .PP | ||||
| By default, accounts come into existence when a transaction references | ||||
| them. | ||||
| This is convenient, but when you mis-spell an account name in a | ||||
| transaction, hledger won\[aq]t be able to detect it. | ||||
| Usually this isn\[aq]t a big problem, as you\[aq]ll notice the error in | ||||
| balance reports, or when reconciling account balances. | ||||
| .PP | ||||
| When you want more error checking, you can enable strict mode with the | ||||
| \f[C]-s\f[R]/\f[C]--strict\f[R] flag. | ||||
| Then hledger will will report an error if any transaction references an | ||||
| account that has not been declared by an account directive. | ||||
| Some things to note: | ||||
| .IP \[bu] 2 | ||||
| The declaration is case-sensitive; transactions must use the correct | ||||
| account name capitalisation. | ||||
| .IP \[bu] 2 | ||||
| The account directive\[aq]s scope is \[dq]whole file and below\[dq] (see | ||||
| directives). | ||||
| This means it affects all of the current file, and any files it | ||||
| includes, but not parent or sibling files. | ||||
| The position of account directives within the file does not matter, | ||||
| though it\[aq]s usual to put them at the top. | ||||
| .IP \[bu] 2 | ||||
| Accounts can only be declared in \f[C]journal\f[R] files (but will | ||||
| affect included files in other formats). | ||||
| .IP \[bu] 2 | ||||
| It\[aq]s currently not possible to declare \[dq]all possible | ||||
| subaccounts\[dq] with a wildcard; every account posted to must be | ||||
| declared. | ||||
| .SS Account comments | ||||
| .PP | ||||
| Comments, beginning with a semicolon, can be added: | ||||
|  | ||||
| @ -1202,37 +1202,71 @@ File: hledger_journal.info,  Node: Declaring accounts,  Next: Rewriting accounts | ||||
| 1.13.8 Declaring accounts | ||||
| ------------------------- | ||||
| 
 | ||||
| 'account' directives can be used to pre-declare accounts.  Though not | ||||
| required, they can provide several benefits: | ||||
| 'account' directives can be used to declare accounts (ie, the places | ||||
| that amounts are transferred from and to).  Though not required, these | ||||
| declarations can provide several benefits: | ||||
| 
 | ||||
|    * They can document your intended chart of accounts, providing a | ||||
|      reference. | ||||
|    * They can store extra information about accounts (account numbers, | ||||
|      notes, etc.) | ||||
|    * They can help hledger know your accounts' types (asset, liability, | ||||
|      equity, revenue, expense), useful for reports like balancesheet and | ||||
|      incomestatement. | ||||
|    * They control account display order in reports, allowing | ||||
|      non-alphabetic sorting (eg Revenues to appear above Expenses). | ||||
|    * They can store extra information about accounts (account numbers, | ||||
|      notes, etc.) | ||||
|    * They help with account name completion in the add command, | ||||
|      hledger-iadd, hledger-web, ledger-mode etc. | ||||
|    * In strict mode, they restrict which accounts may be posted to by | ||||
|      transactions, which helps detect typos. | ||||
| 
 | ||||
|    The simplest form is just the word 'account' followed by a | ||||
| hledger-style account name, eg: | ||||
| hledger-style account name, eg this account directive declares the | ||||
| 'assets:bank:checking' account: | ||||
| 
 | ||||
| account assets:bank:checking | ||||
| 
 | ||||
| * Menu: | ||||
| 
 | ||||
| * Account existence:: | ||||
| * Account comments:: | ||||
| * Account subdirectives:: | ||||
| * Account types:: | ||||
| * Account display order:: | ||||
| 
 | ||||
|  | ||||
| File: hledger_journal.info,  Node: Account comments,  Next: Account subdirectives,  Up: Declaring accounts | ||||
| File: hledger_journal.info,  Node: Account existence,  Next: Account comments,  Up: Declaring accounts | ||||
| 
 | ||||
| 1.13.8.1 Account comments | ||||
| 1.13.8.1 Account existence | ||||
| .......................... | ||||
| 
 | ||||
| By default, accounts come into existence when a transaction references | ||||
| them.  This is convenient, but when you mis-spell an account name in a | ||||
| transaction, hledger won't be able to detect it.  Usually this isn't a | ||||
| big problem, as you'll notice the error in balance reports, or when | ||||
| reconciling account balances. | ||||
| 
 | ||||
|    When you want more error checking, you can enable strict mode with | ||||
| the '-s'/'--strict' flag.  Then hledger will will report an error if any | ||||
| transaction references an account that has not been declared by an | ||||
| account directive.  Some things to note: | ||||
| 
 | ||||
|    * The declaration is case-sensitive; transactions must use the | ||||
|      correct account name capitalisation. | ||||
|    * The account directive's scope is "whole file and below" (see | ||||
|      directives).  This means it affects all of the current file, and | ||||
|      any files it includes, but not parent or sibling files.  The | ||||
|      position of account directives within the file does not matter, | ||||
|      though it's usual to put them at the top. | ||||
|    * Accounts can only be declared in 'journal' files (but will affect | ||||
|      included files in other formats). | ||||
|    * It's currently not possible to declare "all possible subaccounts" | ||||
|      with a wildcard; every account posted to must be declared. | ||||
| 
 | ||||
|  | ||||
| File: hledger_journal.info,  Node: Account comments,  Next: Account subdirectives,  Prev: Account existence,  Up: Declaring accounts | ||||
| 
 | ||||
| 1.13.8.2 Account comments | ||||
| ......................... | ||||
| 
 | ||||
| Comments, beginning with a semicolon, can be added: | ||||
| @ -1252,7 +1286,7 @@ account assets:bank:checking  ; same-line comment, note 2+ spaces before ; | ||||
|  | ||||
| File: hledger_journal.info,  Node: Account subdirectives,  Next: Account types,  Prev: Account comments,  Up: Declaring accounts | ||||
| 
 | ||||
| 1.13.8.2 Account subdirectives | ||||
| 1.13.8.3 Account subdirectives | ||||
| .............................. | ||||
| 
 | ||||
| We also allow (and ignore) Ledger-style indented subdirectives, just for | ||||
| @ -1270,7 +1304,7 @@ account ACCTNAME  [ACCTTYPE] [;COMMENT] | ||||
|  | ||||
| File: hledger_journal.info,  Node: Account types,  Next: Account display order,  Prev: Account subdirectives,  Up: Declaring accounts | ||||
| 
 | ||||
| 1.13.8.3 Account types | ||||
| 1.13.8.4 Account types | ||||
| ...................... | ||||
| 
 | ||||
| hledger recognises five main types of account, corresponding to the | ||||
| @ -1349,7 +1383,7 @@ account expenses     X | ||||
|  | ||||
| File: hledger_journal.info,  Node: Account display order,  Prev: Account types,  Up: Declaring accounts | ||||
| 
 | ||||
| 1.13.8.4 Account display order | ||||
| 1.13.8.5 Account display order | ||||
| .............................. | ||||
| 
 | ||||
| Account directives also set the order in which accounts are displayed, | ||||
| @ -1962,48 +1996,50 @@ Node: Declaring market prices43555 | ||||
| Ref: #declaring-market-prices43750 | ||||
| Node: Declaring accounts44607 | ||||
| Ref: #declaring-accounts44793 | ||||
| Node: Account comments45718 | ||||
| Ref: #account-comments45881 | ||||
| Node: Account subdirectives46305 | ||||
| Ref: #account-subdirectives46500 | ||||
| Node: Account types46813 | ||||
| Ref: #account-types46997 | ||||
| Node: Account display order50043 | ||||
| Ref: #account-display-order50213 | ||||
| Node: Rewriting accounts51364 | ||||
| Ref: #rewriting-accounts51549 | ||||
| Node: Basic aliases52306 | ||||
| Ref: #basic-aliases52452 | ||||
| Node: Regex aliases53156 | ||||
| Ref: #regex-aliases53328 | ||||
| Node: Combining aliases54047 | ||||
| Ref: #combining-aliases54240 | ||||
| Node: Aliases and multiple files55516 | ||||
| Ref: #aliases-and-multiple-files55725 | ||||
| Node: end aliases56304 | ||||
| Ref: #end-aliases56461 | ||||
| Node: Default parent account56562 | ||||
| Ref: #default-parent-account56730 | ||||
| Node: Periodic transactions57614 | ||||
| Ref: #periodic-transactions57789 | ||||
| Node: Periodic rule syntax59661 | ||||
| Ref: #periodic-rule-syntax59867 | ||||
| Node: Two spaces between period expression and description!60571 | ||||
| Ref: #two-spaces-between-period-expression-and-description60890 | ||||
| Node: Forecasting with periodic transactions61574 | ||||
| Ref: #forecasting-with-periodic-transactions61879 | ||||
| Node: Budgeting with periodic transactions63934 | ||||
| Ref: #budgeting-with-periodic-transactions64173 | ||||
| Node: Auto postings64582 | ||||
| Ref: #auto-postings64722 | ||||
| Node: Auto postings and multiple files66901 | ||||
| Ref: #auto-postings-and-multiple-files67105 | ||||
| Node: Auto postings and dates67314 | ||||
| Ref: #auto-postings-and-dates67588 | ||||
| Node: Auto postings and transaction balancing / inferred amounts / balance assertions67763 | ||||
| Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions68114 | ||||
| Node: Auto posting tags68456 | ||||
| Ref: #auto-posting-tags68671 | ||||
| Node: Account existence45990 | ||||
| Ref: #account-existence46151 | ||||
| Node: Account comments47387 | ||||
| Ref: #account-comments47576 | ||||
| Node: Account subdirectives48000 | ||||
| Ref: #account-subdirectives48195 | ||||
| Node: Account types48508 | ||||
| Ref: #account-types48692 | ||||
| Node: Account display order51738 | ||||
| Ref: #account-display-order51908 | ||||
| Node: Rewriting accounts53059 | ||||
| Ref: #rewriting-accounts53244 | ||||
| Node: Basic aliases54001 | ||||
| Ref: #basic-aliases54147 | ||||
| Node: Regex aliases54851 | ||||
| Ref: #regex-aliases55023 | ||||
| Node: Combining aliases55742 | ||||
| Ref: #combining-aliases55935 | ||||
| Node: Aliases and multiple files57211 | ||||
| Ref: #aliases-and-multiple-files57420 | ||||
| Node: end aliases57999 | ||||
| Ref: #end-aliases58156 | ||||
| Node: Default parent account58257 | ||||
| Ref: #default-parent-account58425 | ||||
| Node: Periodic transactions59309 | ||||
| Ref: #periodic-transactions59484 | ||||
| Node: Periodic rule syntax61356 | ||||
| Ref: #periodic-rule-syntax61562 | ||||
| Node: Two spaces between period expression and description!62266 | ||||
| Ref: #two-spaces-between-period-expression-and-description62585 | ||||
| Node: Forecasting with periodic transactions63269 | ||||
| Ref: #forecasting-with-periodic-transactions63574 | ||||
| Node: Budgeting with periodic transactions65629 | ||||
| Ref: #budgeting-with-periodic-transactions65868 | ||||
| Node: Auto postings66277 | ||||
| Ref: #auto-postings66417 | ||||
| Node: Auto postings and multiple files68596 | ||||
| Ref: #auto-postings-and-multiple-files68800 | ||||
| Node: Auto postings and dates69009 | ||||
| Ref: #auto-postings-and-dates69283 | ||||
| Node: Auto postings and transaction balancing / inferred amounts / balance assertions69458 | ||||
| Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions69809 | ||||
| Node: Auto posting tags70151 | ||||
| Ref: #auto-posting-tags70366 | ||||
|  | ||||
| End Tag Table | ||||
| 
 | ||||
|  | ||||
| @ -941,15 +941,13 @@ FILE FORMAT | ||||
|        values in another commodity.  See Valuation. | ||||
| 
 | ||||
|    Declaring accounts | ||||
|        account directives can be used to pre-declare accounts.  Though not re- | ||||
|        quired, they can provide several benefits: | ||||
|        account directives can be used to declare accounts (ie, the places that | ||||
|        amounts are transferred from and to).  Though not required, these  dec- | ||||
|        larations can provide several benefits: | ||||
| 
 | ||||
|        o They can document your intended chart of accounts, providing a refer- | ||||
|          ence. | ||||
| 
 | ||||
|        o They  can  store  extra  information about accounts (account numbers, | ||||
|          notes, etc.) | ||||
| 
 | ||||
|        o They can help hledger know your accounts'  types  (asset,  liability, | ||||
|          equity,  revenue,  expense), useful for reports like balancesheet and | ||||
|          incomestatement. | ||||
| @ -957,18 +955,52 @@ FILE FORMAT | ||||
|        o They control account display order in  reports,  allowing  non-alpha- | ||||
|          betic sorting (eg Revenues to appear above Expenses). | ||||
| 
 | ||||
|        o They  help  with account name completion in the add command, hledger- | ||||
|        o They  can  store  extra  information about accounts (account numbers, | ||||
|          notes, etc.) | ||||
| 
 | ||||
|        o They help with account name completion in the add  command,  hledger- | ||||
|          iadd, hledger-web, ledger-mode etc. | ||||
| 
 | ||||
|        o In  strict  mode,  they  restrict  which accounts may be posted to by | ||||
|          transactions, which helps detect typos. | ||||
| 
 | ||||
|        The simplest form is just the word account followed by a  hledger-style | ||||
|        account name, eg: | ||||
|        account name, eg this account directive declares the assets:bank:check- | ||||
|        ing account: | ||||
| 
 | ||||
|               account assets:bank:checking | ||||
| 
 | ||||
|    Account existence | ||||
|        By default, accounts come into existence when a transaction  references | ||||
|        them.   This is convenient, but when you mis-spell an account name in a | ||||
|        transaction, hledger won't be able to detect it.  Usually this isn't  a | ||||
|        big  problem,  as  you'll  notice the error in balance reports, or when | ||||
|        reconciling account balances. | ||||
| 
 | ||||
|        When you want more error checking, you can enable strict mode with  the | ||||
|        -s/--strict flag.  Then hledger will will report an error if any trans- | ||||
|        action references an account that has not been declared by  an  account | ||||
|        directive.  Some things to note: | ||||
| 
 | ||||
|        o The  declaration is case-sensitive; transactions must use the correct | ||||
|          account name capitalisation. | ||||
| 
 | ||||
|        o The account directive's scope is "whole file and below"  (see  direc- | ||||
|          tives).  This means it affects all of the current file, and any files | ||||
|          it includes, but not parent or sibling files.  The  position  of  ac- | ||||
|          count  directives  within the file does not matter, though it's usual | ||||
|          to put them at the top. | ||||
| 
 | ||||
|        o Accounts can only be declared in journal files (but will  affect  in- | ||||
|          cluded files in other formats). | ||||
| 
 | ||||
|        o It's  currently  not  possible  to declare "all possible subaccounts" | ||||
|          with a wildcard; every account posted to must be declared. | ||||
| 
 | ||||
|    Account comments | ||||
|        Comments, beginning with a semicolon, can be added: | ||||
| 
 | ||||
|        o on  the  same line, after two or more spaces (because ; is allowed in | ||||
|        o on the same line, after two or more spaces (because ; is  allowed  in | ||||
|          account names) | ||||
| 
 | ||||
|        o on the next lines, indented | ||||
| @ -982,7 +1014,7 @@ FILE FORMAT | ||||
|        Same-line comments are not supported by Ledger, or hledger <1.13. | ||||
| 
 | ||||
|    Account subdirectives | ||||
|        We also allow (and ignore) Ledger-style  indented  subdirectives,  just | ||||
|        We  also  allow  (and ignore) Ledger-style indented subdirectives, just | ||||
|        for compatibility.: | ||||
| 
 | ||||
|               account assets:bank:checking | ||||
| @ -1001,21 +1033,21 @@ FILE FORMAT | ||||
|        Asset, Liability, Equity, Revenue, Expense. | ||||
| 
 | ||||
|        These account types are important for controlling which accounts appear | ||||
|        in  the  balancesheet, balancesheetequity, incomestatement reports (and | ||||
|        in the balancesheet, balancesheetequity, incomestatement  reports  (and | ||||
|        probably for other things in future). | ||||
| 
 | ||||
|        Additionally, we recognise the Cash type, which is also an  Asset,  and | ||||
|        which  causes  accounts to appear in the cashflow report.  ("Cash" here | ||||
|        means liquid assets, eg bank balances but typically not investments  or | ||||
|        Additionally,  we  recognise the Cash type, which is also an Asset, and | ||||
|        which causes accounts to appear in the cashflow report.   ("Cash"  here | ||||
|        means  liquid assets, eg bank balances but typically not investments or | ||||
|        receivables.) | ||||
| 
 | ||||
|    Declaring account types | ||||
|        Generally, to make these reports work you should declare your top-level | ||||
|        accounts and their types, using account directives with type: tags. | ||||
| 
 | ||||
|        The tag's value should be one of: Asset,  Liability,  Equity,  Revenue, | ||||
|        Expense,  Cash,  A,  L, E, R, X, C (all case insensitive).  The type is | ||||
|        inherited by all subaccounts except where they override it.   Here's  a | ||||
|        The  tag's  value  should be one of: Asset, Liability, Equity, Revenue, | ||||
|        Expense, Cash, A, L, E, R, X, C (all case insensitive).   The  type  is | ||||
|        inherited  by  all subaccounts except where they override it.  Here's a | ||||
|        complete example: | ||||
| 
 | ||||
|               account assets       ; type: Asset | ||||
| @ -1027,8 +1059,8 @@ FILE FORMAT | ||||
|               account expenses     ; type: Expense | ||||
| 
 | ||||
|    Auto-detected account types | ||||
|        If  you  happen  to use common english top-level account names, you may | ||||
|        not need to declare account types, as they will be  detected  automati- | ||||
|        If you happen to use common english top-level account  names,  you  may | ||||
|        not  need  to declare account types, as they will be detected automati- | ||||
|        cally using the following rules: | ||||
| 
 | ||||
|        If  name  matches  regular   account type is: | ||||
| @ -1041,7 +1073,7 @@ FILE FORMAT | ||||
|        ^(income|revenue)s?(:|$)     Revenue | ||||
|        ^expenses?(:|$)              Expense | ||||
| 
 | ||||
|        If  account type is Asset and name does not contain regu-   account  type | ||||
|        If account type is Asset and name does not contain  regu-   account  type | ||||
|        lar expression:                                             is: | ||||
|        -------------------------------------------------------------------------- | ||||
|        (investment|receivable|:A/R|:fixed)                         Cash | ||||
| @ -1051,9 +1083,9 @@ FILE FORMAT | ||||
| 
 | ||||
|    Interference from auto-detected account types | ||||
|        If you assign any account type, it's a good idea to assign all of them, | ||||
|        to  prevent any confusion from mixing declared and auto-detected types. | ||||
|        Although it's unlikely to happen in real life, here's an example:  with | ||||
|        the  following  journal, balancesheetequity shows "liabilities" in both | ||||
|        to prevent any confusion from mixing declared and auto-detected  types. | ||||
|        Although  it's unlikely to happen in real life, here's an example: with | ||||
|        the following journal, balancesheetequity shows "liabilities"  in  both | ||||
|        Liabilities and Equity sections.  Declaring another account as type:Li- | ||||
|        ability would fix it: | ||||
| 
 | ||||
| @ -1065,8 +1097,8 @@ FILE FORMAT | ||||
|                 equity       -2 | ||||
| 
 | ||||
|    Old account type syntax | ||||
|        In  some  hledger  journals  you might instead see this old syntax (the | ||||
|        letters ALERX, separated from the account name by two or more  spaces); | ||||
|        In some hledger journals you might instead see  this  old  syntax  (the | ||||
|        letters  ALERX, separated from the account name by two or more spaces); | ||||
|        this is deprecated and may be removed soon: | ||||
| 
 | ||||
|               account assets       A | ||||
| @ -1076,8 +1108,8 @@ FILE FORMAT | ||||
|               account expenses     X | ||||
| 
 | ||||
|    Account display order | ||||
|        Account  directives also set the order in which accounts are displayed, | ||||
|        eg in reports, the hledger-ui  accounts  screen,  and  the  hledger-web | ||||
|        Account directives also set the order in which accounts are  displayed, | ||||
|        eg  in  reports,  the  hledger-ui  accounts screen, and the hledger-web | ||||
|        sidebar.  By default accounts are listed in alphabetical order.  But if | ||||
|        you have these account directives in the journal: | ||||
| 
 | ||||
| @ -1099,20 +1131,20 @@ FILE FORMAT | ||||
| 
 | ||||
|        Undeclared accounts, if any, are displayed last, in alphabetical order. | ||||
| 
 | ||||
|        Note  that  sorting  is  done at each level of the account tree (within | ||||
|        each group of sibling accounts under the same parent).  And  currently, | ||||
|        Note that sorting is done at each level of  the  account  tree  (within | ||||
|        each  group of sibling accounts under the same parent).  And currently, | ||||
|        this directive: | ||||
| 
 | ||||
|               account other:zoo | ||||
| 
 | ||||
|        would  influence the position of zoo among other's subaccounts, but not | ||||
|        would influence the position of zoo among other's subaccounts, but  not | ||||
|        the position of other among the top-level accounts.  This means: | ||||
| 
 | ||||
|        o you will sometimes declare parent accounts (eg account  other  above) | ||||
|        o you  will  sometimes declare parent accounts (eg account other above) | ||||
|          that you don't intend to post to, just to customize their display or- | ||||
|          der | ||||
| 
 | ||||
|        o sibling accounts stay together (you couldn't display x:y  in  between | ||||
|        o sibling  accounts  stay together (you couldn't display x:y in between | ||||
|          a:b and a:c). | ||||
| 
 | ||||
|    Rewriting accounts | ||||
| @ -1130,14 +1162,14 @@ FILE FORMAT | ||||
|        o customising reports | ||||
| 
 | ||||
|        Account aliases also rewrite account names in account directives.  They | ||||
|        do  not  affect account names being entered via hledger add or hledger- | ||||
|        do not affect account names being entered via hledger add  or  hledger- | ||||
|        web. | ||||
| 
 | ||||
|        See also Rewrite account names. | ||||
| 
 | ||||
|    Basic aliases | ||||
|        To set an account alias, use the alias directive in your journal  file. | ||||
|        This  affects all subsequent journal entries in the current file or its | ||||
|        To  set an account alias, use the alias directive in your journal file. | ||||
|        This affects all subsequent journal entries in the current file or  its | ||||
|        included files.  The spaces around the = are optional: | ||||
| 
 | ||||
|               alias OLD = NEW | ||||
| @ -1145,49 +1177,49 @@ FILE FORMAT | ||||
|        Or, you can use the --alias 'OLD=NEW' option on the command line.  This | ||||
|        affects all entries.  It's useful for trying out aliases interactively. | ||||
| 
 | ||||
|        OLD  and  NEW  are case sensitive full account names.  hledger will re- | ||||
|        place any occurrence of the old account name with the new one.   Subac- | ||||
|        OLD and NEW are case sensitive full account names.   hledger  will  re- | ||||
|        place  any occurrence of the old account name with the new one.  Subac- | ||||
|        counts are also affected.  Eg: | ||||
| 
 | ||||
|               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" | ||||
| 
 | ||||
|    Regex aliases | ||||
|        There  is  also a more powerful variant that uses a regular expression, | ||||
|        There is also a more powerful variant that uses a  regular  expression, | ||||
|        indicated by the forward slashes: | ||||
| 
 | ||||
|               alias /REGEX/ = REPLACEMENT | ||||
| 
 | ||||
|        or --alias '/REGEX/=REPLACEMENT'. | ||||
| 
 | ||||
|        REGEX is a case-insensitive regular expression.   Anywhere  it  matches | ||||
|        inside  an  account name, the matched part will be replaced by REPLACE- | ||||
|        MENT.  If REGEX contains parenthesised match groups, these can be  ref- | ||||
|        REGEX  is  a  case-insensitive regular expression.  Anywhere it matches | ||||
|        inside an account name, the matched part will be replaced  by  REPLACE- | ||||
|        MENT.   If REGEX contains parenthesised match groups, these can be ref- | ||||
|        erenced by the usual numeric backreferences in REPLACEMENT.  Eg: | ||||
| 
 | ||||
|               alias /^(.+):bank:([^:]+):(.*)/ = \1:\2 \3 | ||||
|               ; rewrites "assets:bank:wells fargo:checking" to  "assets:wells fargo checking" | ||||
| 
 | ||||
|        Also  note that REPLACEMENT continues to the end of line (or on command | ||||
|        line, to end of option argument), so it  can  contain  trailing  white- | ||||
|        Also note that REPLACEMENT continues to the end of line (or on  command | ||||
|        line,  to  end  of  option argument), so it can contain trailing white- | ||||
|        space. | ||||
| 
 | ||||
|    Combining aliases | ||||
|        You  can  define  as many aliases as you like, using journal directives | ||||
|        You can define as many aliases as you like,  using  journal  directives | ||||
|        and/or command line options. | ||||
| 
 | ||||
|        Recursive aliases - where an account name is rewritten  by  one  alias, | ||||
|        then  by  another  alias, and so on - are allowed.  Each alias sees the | ||||
|        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 | ||||
|        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 | ||||
|        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 | ||||
|        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: | ||||
| @ -1198,20 +1230,20 @@ FILE FORMAT | ||||
| 
 | ||||
|        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- | ||||
|        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 | ||||
|        In  case  of  trouble,  adding  --debug=6 to the command line will show | ||||
|        which aliases are being applied when. | ||||
| 
 | ||||
|    Aliases and multiple files | ||||
|        As  explained at Directives and multiple files, alias directives do not | ||||
|        As explained at Directives and multiple files, alias directives do  not | ||||
|        affect parent or sibling files.  Eg in this command, | ||||
| 
 | ||||
|               hledger -f a.aliases -f b.journal | ||||
| 
 | ||||
|        account aliases defined in a.aliases will not  affect  b.journal.   In- | ||||
|        account  aliases  defined  in a.aliases will not affect b.journal.  In- | ||||
|        cluding the aliases doesn't work either: | ||||
| 
 | ||||
|               include a.aliases | ||||
| @ -1233,14 +1265,14 @@ FILE FORMAT | ||||
|               include c.journal  ; also affected | ||||
| 
 | ||||
|    end aliases | ||||
|        You can clear (forget) all  currently  defined  aliases  with  the  end | ||||
|        You  can  clear  (forget)  all  currently  defined aliases with the end | ||||
|        aliases directive: | ||||
| 
 | ||||
|               end aliases | ||||
| 
 | ||||
|    Default parent account | ||||
|        You  can  specify  a  parent account which will be prepended to all ac- | ||||
|        counts within a section of the journal.  Use the apply account and  end | ||||
|        You can specify a parent account which will be  prepended  to  all  ac- | ||||
|        counts  within a section of the journal.  Use the apply account and end | ||||
|        apply account directives like so: | ||||
| 
 | ||||
|               apply account home | ||||
| @ -1257,7 +1289,7 @@ FILE FORMAT | ||||
|                   home:food           $10 | ||||
|                   home:cash          $-10 | ||||
| 
 | ||||
|        If  end  apply  account  is omitted, the effect lasts to the end of the | ||||
|        If end apply account is omitted, the effect lasts to  the  end  of  the | ||||
|        file.  Included files are also affected, eg: | ||||
| 
 | ||||
|               apply account business | ||||
| @ -1266,50 +1298,50 @@ FILE FORMAT | ||||
|               apply account personal | ||||
|               include personal.journal | ||||
| 
 | ||||
|        Prior to hledger 1.0, legacy account and end spellings were  also  sup- | ||||
|        Prior  to  hledger 1.0, legacy account and end spellings were also sup- | ||||
|        ported. | ||||
| 
 | ||||
|        A  default parent account also affects account directives.  It does not | ||||
|        affect account names being entered via hledger add or hledger-web.   If | ||||
|        account  aliases are present, they are applied after the default parent | ||||
|        A default parent account also affects account directives.  It does  not | ||||
|        affect  account names being entered via hledger add or hledger-web.  If | ||||
|        account aliases are present, they are applied after the default  parent | ||||
|        account. | ||||
| 
 | ||||
|    Periodic transactions | ||||
|        Periodic transaction rules describe transactions that recur.  They  al- | ||||
|        low  hledger  to  generate  temporary  future transactions to help with | ||||
|        forecasting, so you don't have to write out each one  in  the  journal, | ||||
|        and  it's easy to try out different forecasts.  Secondly, they are also | ||||
|        Periodic  transaction rules describe transactions that recur.  They al- | ||||
|        low hledger to generate temporary  future  transactions  to  help  with | ||||
|        forecasting,  so  you  don't have to write out each one in the journal, | ||||
|        and it's easy to try out different forecasts.  Secondly, they are  also | ||||
|        used to define the budgets shown in budget reports. | ||||
| 
 | ||||
|        Periodic transactions can be a little tricky, so before you  use  them, | ||||
|        Periodic  transactions  can be a little tricky, so before you use them, | ||||
|        read this whole section - or at least these tips: | ||||
| 
 | ||||
|        1. Two  spaces  accidentally  added or omitted will cause you trouble - | ||||
|        1. Two spaces accidentally added or omitted will cause  you  trouble  - | ||||
|           read about this below. | ||||
| 
 | ||||
|        2. For troubleshooting, show the generated  transactions  with  hledger | ||||
|           print   --forecast  tag:generated  or  hledger  register  --forecast | ||||
|        2. For  troubleshooting,  show  the generated transactions with hledger | ||||
|           print  --forecast  tag:generated  or  hledger  register   --forecast | ||||
|           tag:generated. | ||||
| 
 | ||||
|        3. Forecasted transactions will begin only  after  the  last  non-fore- | ||||
|        3. Forecasted  transactions  will  begin  only after the last non-fore- | ||||
|           casted transaction's date. | ||||
| 
 | ||||
|        4. Forecasted  transactions  will  end 6 months from today, by default. | ||||
|        4. Forecasted transactions will end 6 months from  today,  by  default. | ||||
|           See below for the exact start/end rules. | ||||
| 
 | ||||
|        5. period expressions can be tricky.   Their  documentation  needs  im- | ||||
|        5. period  expressions  can  be  tricky.  Their documentation needs im- | ||||
|           provement, but is worth studying. | ||||
| 
 | ||||
|        6. Some  period  expressions  with a repeating interval must begin on a | ||||
|           natural boundary of that interval.  Eg in  weekly  from  DATE,  DATE | ||||
|           must  be a monday.  ~ weekly from 2019/10/1 (a tuesday) will give an | ||||
|        6. Some period expressions with a repeating interval must  begin  on  a | ||||
|           natural  boundary  of  that  interval.  Eg in weekly from DATE, DATE | ||||
|           must be a monday.  ~ weekly from 2019/10/1 (a tuesday) will give  an | ||||
|           error. | ||||
| 
 | ||||
|        7. Other period expressions with an interval are automatically expanded | ||||
|           to  cover a whole number of that interval.  (This is done to improve | ||||
|           to cover a whole number of that interval.  (This is done to  improve | ||||
|           reports, but it also affects periodic transactions.  Yes, it's a bit | ||||
|           inconsistent  with  the  above.)  Eg: ~ every 10th day of month from | ||||
|           2020/01, which is equivalent to ~  every  10th  day  of  month  from | ||||
|           inconsistent with the above.) Eg: ~ every 10th  day  of  month  from | ||||
|           2020/01,  which  is  equivalent  to  ~  every 10th day of month from | ||||
|           2020/01/01, will be adjusted to start on 2019/12/10. | ||||
| 
 | ||||
|    Periodic rule syntax | ||||
| @ -1321,17 +1353,17 @@ FILE FORMAT | ||||
|                   expenses:rent          $2000 | ||||
|                   assets:bank:checking | ||||
| 
 | ||||
|        There  is  an additional constraint on the period expression: the start | ||||
|        date must fall on a natural boundary of the interval.  Eg monthly  from | ||||
|        There is an additional constraint on the period expression:  the  start | ||||
|        date  must fall on a natural boundary of the interval.  Eg monthly from | ||||
|        2018/1/1 is valid, but monthly from 2018/1/15 is not. | ||||
| 
 | ||||
|        Partial  or  relative dates (M/D, D, tomorrow, last week) in the period | ||||
|        expression can work (useful or not).  They will be relative to  today's | ||||
|        date,  unless  a  Y  default year directive is in effect, in which case | ||||
|        Partial or relative dates (M/D, D, tomorrow, last week) in  the  period | ||||
|        expression  can work (useful or not).  They will be relative to today's | ||||
|        date, unless a Y default year directive is in  effect,  in  which  case | ||||
|        they will be relative to Y/1/1. | ||||
| 
 | ||||
|    Two spaces between period expression and description! | ||||
|        If the period expression is  followed  by  a  transaction  description, | ||||
|        If  the  period  expression  is  followed by a transaction description, | ||||
|        these must be separated by two or more spaces.  This helps hledger know | ||||
|        where the period expression ends, so that descriptions can not acciden- | ||||
|        tally alter their meaning, as in this example: | ||||
| @ -1345,67 +1377,67 @@ FILE FORMAT | ||||
| 
 | ||||
|        So, | ||||
| 
 | ||||
|        o Do  write two spaces between your period expression and your transac- | ||||
|        o Do write two spaces between your period expression and your  transac- | ||||
|          tion description, if any. | ||||
| 
 | ||||
|        o Don't accidentally write two spaces in the middle of your period  ex- | ||||
|        o Don't  accidentally write two spaces in the middle of your period ex- | ||||
|          pression. | ||||
| 
 | ||||
|    Forecasting with periodic transactions | ||||
|        The  --forecast  flag  activates  any periodic transaction rules in the | ||||
|        journal.  They will generate temporary  recurring  transactions,  which | ||||
|        are  not  saved  in  the  journal,  but  will appear in all reports (eg | ||||
|        The --forecast flag activates any periodic  transaction  rules  in  the | ||||
|        journal.   They  will  generate temporary recurring transactions, which | ||||
|        are not saved in the journal,  but  will  appear  in  all  reports  (eg | ||||
|        print).  This can be useful for estimating balances into the future, or | ||||
|        experimenting  with  different scenarios.  Or, it can be used as a data | ||||
|        experimenting with different scenarios.  Or, it can be used as  a  data | ||||
|        entry aid: describe recurring transactions, and every so often copy the | ||||
|        output of print --forecast into the journal. | ||||
| 
 | ||||
|        These  transactions  will  have  an extra tag indicating which periodic | ||||
|        These transactions will have an extra  tag  indicating  which  periodic | ||||
|        rule generated them: generated-transaction:~ PERIODICEXPR.  And a simi- | ||||
|        lar,  hidden  tag  (beginning  with  an underscore) which, because it's | ||||
|        never displayed by print, can be used to match  transactions  generated | ||||
|        lar, hidden tag (beginning with  an  underscore)  which,  because  it's | ||||
|        never  displayed  by print, can be used to match transactions generated | ||||
|        "just now": _generated-transaction:~ PERIODICEXPR. | ||||
| 
 | ||||
|        Periodic  transactions  are  generated within some forecast period.  By | ||||
|        Periodic transactions are generated within some  forecast  period.   By | ||||
|        default, this | ||||
| 
 | ||||
|        o begins on the later of | ||||
| 
 | ||||
|          o the report start date if specified with -b/-p/date: | ||||
| 
 | ||||
|          o the day after the latest normal (non-periodic) transaction  in  the | ||||
|          o the  day  after the latest normal (non-periodic) transaction in the | ||||
|            journal, or today if there are no normal transactions. | ||||
| 
 | ||||
|        o ends  on  the  report  end  date  if specified with -e/-p/date:, or 6 | ||||
|        o ends on the report end date  if  specified  with  -e/-p/date:,  or  6 | ||||
|          months (180 days) from today. | ||||
| 
 | ||||
|        This means that periodic transactions will begin only after the  latest | ||||
|        recorded  transaction.   And a recorded transaction dated in the future | ||||
|        can prevent generation of periodic transactions.  (You can  avoid  that | ||||
|        This  means that periodic transactions will begin only after the latest | ||||
|        recorded transaction.  And a recorded transaction dated in  the  future | ||||
|        can  prevent  generation of periodic transactions.  (You can avoid that | ||||
|        by writing the future transaction as a one-time periodic rule instead - | ||||
|        put tilde before the date, eg ~ YYYY-MM-DD ...). | ||||
| 
 | ||||
|        Or, you can set your own arbitrary "forecast period", which can overlap | ||||
|        recorded  transactions,  and need not be in the future, by providing an | ||||
|        option argument, like --forecast=PERIODEXPR.  Note the equals  sign  is | ||||
|        recorded transactions, and need not be in the future, by  providing  an | ||||
|        option  argument,  like --forecast=PERIODEXPR.  Note the equals sign is | ||||
|        required, a space won't work.  PERIODEXPR is a period expression, which | ||||
|        can specify the start date, end date, or both, like in a  date:  query. | ||||
|        (See  also  hledger.1  ->  Report  start  &  end date).  Some examples: | ||||
|        can  specify  the start date, end date, or both, like in a date: query. | ||||
|        (See also hledger.1 ->  Report  start  &  end  date).   Some  examples: | ||||
|        --forecast=202001-202004, --forecast=jan-, --forecast=2020. | ||||
| 
 | ||||
|    Budgeting with periodic transactions | ||||
|        With the --budget flag, currently supported  by  the  balance  command, | ||||
|        each  periodic transaction rule declares recurring budget goals for the | ||||
|        specified accounts.  Eg the first example  above  declares  a  goal  of | ||||
|        spending  $2000  on  rent  (and  also,  a goal of depositing $2000 into | ||||
|        checking) every month.  Goals and actual performance can then  be  com- | ||||
|        With  the  --budget  flag,  currently supported by the balance command, | ||||
|        each periodic transaction rule declares recurring budget goals for  the | ||||
|        specified  accounts.   Eg  the  first  example above declares a goal of | ||||
|        spending $2000 on rent (and also,  a  goal  of  depositing  $2000  into | ||||
|        checking)  every  month.  Goals and actual performance can then be com- | ||||
|        pared in budget reports. | ||||
| 
 | ||||
|        See also: Budgeting and Forecasting. | ||||
| 
 | ||||
|    Auto postings | ||||
|        "Automated  postings"  or  "auto postings" are extra postings which get | ||||
|        added automatically to transactions which match  certain  queries,  de- | ||||
|        "Automated postings" or "auto postings" are extra  postings  which  get | ||||
|        added  automatically  to  transactions which match certain queries, de- | ||||
|        fined by "auto posting rules", when you use the --auto flag. | ||||
| 
 | ||||
|        An auto posting rule looks a bit like a transaction: | ||||
| @ -1415,27 +1447,27 @@ FILE FORMAT | ||||
|                   ... | ||||
|                   ACCOUNT  [AMOUNT] | ||||
| 
 | ||||
|        except  the  first  line is an equals sign (mnemonic: = suggests match- | ||||
|        ing), followed by a query (which matches existing postings),  and  each | ||||
|        "posting"  line  describes  a  posting to be generated, and the posting | ||||
|        except the first line is an equals sign (mnemonic:  =  suggests  match- | ||||
|        ing),  followed  by a query (which matches existing postings), and each | ||||
|        "posting" line describes a posting to be  generated,  and  the  posting | ||||
|        amounts can be: | ||||
| 
 | ||||
|        o a normal amount with a commodity symbol, eg $2.  This  will  be  used | ||||
|        o a  normal  amount  with a commodity symbol, eg $2.  This will be used | ||||
|          as-is. | ||||
| 
 | ||||
|        o a number, eg 2.  The commodity symbol (if any) from the matched post- | ||||
|          ing will be added to this. | ||||
| 
 | ||||
|        o a numeric multiplier, eg *2 (a star followed by  a  number  N).   The | ||||
|        o a  numeric  multiplier,  eg  *2 (a star followed by a number N).  The | ||||
|          matched posting's amount (and total price, if any) will be multiplied | ||||
|          by N. | ||||
| 
 | ||||
|        o a multiplier with a commodity symbol, eg *$2 (a star, number  N,  and | ||||
|        o a  multiplier  with a commodity symbol, eg *$2 (a star, number N, and | ||||
|          symbol S).  The matched posting's amount will be multiplied by N, and | ||||
|          its commodity symbol will be replaced with S. | ||||
| 
 | ||||
|        Any query term containing spaces must be enclosed in single  or  double | ||||
|        quotes,  as on the command line.  Eg, note the quotes around the second | ||||
|        Any  query  term containing spaces must be enclosed in single or double | ||||
|        quotes, as on the command line.  Eg, note the quotes around the  second | ||||
|        query term below: | ||||
| 
 | ||||
|               = expenses:groceries 'expenses:dining out' | ||||
| @ -1474,24 +1506,24 @@ FILE FORMAT | ||||
| 
 | ||||
|    Auto postings and multiple files | ||||
|        An auto posting rule can affect any transaction in the current file, or | ||||
|        in  any  parent file or child file.  Note, currently it will not affect | ||||
|        in any parent file or child file.  Note, currently it will  not  affect | ||||
|        sibling files (when multiple -f/--file are used - see #1212). | ||||
| 
 | ||||
|    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 | ||||
|        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, auto postings are added: | ||||
| 
 | ||||
|        o after  missing amounts are inferred, and transactions are checked for | ||||
|        o after missing amounts are inferred, and transactions are checked  for | ||||
|          balancedness, | ||||
| 
 | ||||
|        o but before balance assertions are checked. | ||||
| 
 | ||||
|        Note this means that journal entries must be balanced both  before  and | ||||
|        Note  this  means that journal entries must be balanced both before and | ||||
|        after auto postings are added.  This changed in hledger 1.12+; see #893 | ||||
|        for background. | ||||
| 
 | ||||
| @ -1501,11 +1533,11 @@ FILE FORMAT | ||||
|        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 | ||||
|        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 auto posting rules will | ||||
|        Also, any transaction that has been changed by auto posting rules  will | ||||
|        have these tags added: | ||||
| 
 | ||||
|        o modified: - this transaction was modified | ||||
| @ -1516,7 +1548,7 @@ FILE FORMAT | ||||
| 
 | ||||
| 
 | ||||
| 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) | ||||
| 
 | ||||
| 
 | ||||
| @ -1530,7 +1562,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) | ||||
| 
 | ||||
|  | ||||
| @ -88,6 +88,9 @@ use some other field or tag for the account name | ||||
| \f[B]\f[CB]-I --ignore-assertions\f[B]\f[R] | ||||
| disable balance assertion checks (note: does not disable balance | ||||
| assignments) | ||||
| .TP | ||||
| \f[B]\f[CB]-s --strict\f[B]\f[R] | ||||
| do extra error checking (check that all posted accounts are declared) | ||||
| .PP | ||||
| hledger reporting options: | ||||
| .TP | ||||
|  | ||||
| @ -99,6 +99,10 @@ the data. | ||||
| 
 | ||||
|      disable balance assertion checks (note: does not disable balance | ||||
|      assignments) | ||||
| '-s --strict' | ||||
| 
 | ||||
|      do extra error checking (check that all posted accounts are | ||||
|      declared) | ||||
| 
 | ||||
|    hledger reporting options: | ||||
| 
 | ||||
| @ -517,24 +521,24 @@ Tag Table: | ||||
| Node: Top71 | ||||
| Node: OPTIONS1476 | ||||
| Ref: #options1573 | ||||
| Node: keys5545 | ||||
| Ref: #keys5640 | ||||
| Node: screens9972 | ||||
| Ref: #screens10077 | ||||
| Node: accounts screen10167 | ||||
| Ref: #accounts-screen10295 | ||||
| Node: Register screen12510 | ||||
| Ref: #register-screen12665 | ||||
| Node: Transaction screen14662 | ||||
| Ref: #transaction-screen14820 | ||||
| Node: Error screen15690 | ||||
| Ref: #error-screen15812 | ||||
| Node: ENVIRONMENT16056 | ||||
| Ref: #environment16170 | ||||
| Node: FILES16977 | ||||
| Ref: #files17076 | ||||
| Node: BUGS17289 | ||||
| Ref: #bugs17366 | ||||
| Node: keys5640 | ||||
| Ref: #keys5735 | ||||
| Node: screens10067 | ||||
| Ref: #screens10172 | ||||
| Node: accounts screen10262 | ||||
| Ref: #accounts-screen10390 | ||||
| Node: Register screen12605 | ||||
| Ref: #register-screen12760 | ||||
| Node: Transaction screen14757 | ||||
| Ref: #transaction-screen14915 | ||||
| Node: Error screen15785 | ||||
| Ref: #error-screen15907 | ||||
| Node: ENVIRONMENT16151 | ||||
| Ref: #environment16265 | ||||
| Node: FILES17072 | ||||
| Ref: #files17171 | ||||
| Node: BUGS17384 | ||||
| Ref: #bugs17461 | ||||
|  | ||||
| End Tag Table | ||||
| 
 | ||||
|  | ||||
| @ -84,6 +84,10 @@ OPTIONS | ||||
|               disable balance assertion checks (note: does not disable balance | ||||
|               assignments) | ||||
| 
 | ||||
|        -s --strict | ||||
|               do  extra error checking (check that all posted accounts are de- | ||||
|               clared) | ||||
| 
 | ||||
|        hledger reporting options: | ||||
| 
 | ||||
|        -b --begin=DATE | ||||
| @ -108,7 +112,7 @@ OPTIONS | ||||
|               multiperiod/multicolumn report by year | ||||
| 
 | ||||
|        -p --period=PERIODEXP | ||||
|               set  start date, end date, and/or reporting interval all at once | ||||
|               set start date, end date, and/or reporting interval all at  once | ||||
|               using period expressions syntax | ||||
| 
 | ||||
|        --date2 | ||||
| @ -131,21 +135,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/selling amount at transaction time | ||||
| 
 | ||||
|        -V --market | ||||
|               convert amounts to their market value in default valuation  com- | ||||
|               convert  amounts to their market value in default valuation com- | ||||
|               modities | ||||
| 
 | ||||
|        -X --exchange=COMM | ||||
|               convert amounts to their market value in commodity COMM | ||||
| 
 | ||||
|        --value | ||||
|               convert  amounts  to  cost  or  market value, more flexibly than | ||||
|               convert amounts to cost or  market  value,  more  flexibly  than | ||||
|               -B/-V/-X | ||||
| 
 | ||||
|        --infer-value | ||||
| @ -154,15 +158,15 @@ OPTIONS | ||||
|        --auto apply automated posting rules to modify transactions. | ||||
| 
 | ||||
|        --forecast | ||||
|               generate future transactions from  periodic  transaction  rules, | ||||
|               for  the  next 6 months or till report end date.  In hledger-ui, | ||||
|               generate  future  transactions  from periodic transaction rules, | ||||
|               for the next 6 months or till report end date.   In  hledger-ui, | ||||
|               also make ordinary future transactions visible. | ||||
| 
 | ||||
|        --color=WHEN (or --colour=WHEN) | ||||
|               Should color-supporting commands use ANSI color  codes  in  text | ||||
|               output.   'auto' (default): whenever stdout seems to be a color- | ||||
|               supporting terminal.  'always' or 'yes': always, useful eg  when | ||||
|               piping  output  into  'less  -R'.   'never'  or  'no': never.  A | ||||
|               Should  color-supporting  commands  use ANSI color codes in text | ||||
|               output.  'auto' (default): whenever stdout seems to be a  color- | ||||
|               supporting  terminal.  'always' or 'yes': always, useful eg when | ||||
|               piping output into  'less  -R'.   'never'  or  'no':  never.   A | ||||
|               NO_COLOR environment variable overrides this. | ||||
| 
 | ||||
|        When a reporting option appears more than once in the command line, the | ||||
| @ -182,91 +186,91 @@ 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.) | ||||
| 
 | ||||
| keys | ||||
|        ?  shows a help dialog listing all keys.  (some of these also appear in | ||||
|        ? shows a help dialog listing all keys.  (some of these also appear  in | ||||
|        the quick help at the bottom of each screen.) press ? again (or escape, | ||||
|        or left, or q) to close it.  the following keys work on most screens: | ||||
| 
 | ||||
|        the cursor keys navigate: right (or enter) goes deeper, left returns to | ||||
|        the previous screen, up/down/page up/page  down/home/end  move  up  and | ||||
|        the  previous  screen,  up/down/page  up/page down/home/end move up and | ||||
|        down through lists.  Emacs-style (ctrl-p/ctrl-n/ctrl-f/ctrl-b) movement | ||||
|        keys are also supported (but not  vi-style  keys,  since  hledger-1.19, | ||||
|        sorry!).   A  tip:  movement  speed  is limited by your keyboard repeat | ||||
|        rate, to move faster you may want to adjust it.  (If you're on  a  mac, | ||||
|        keys  are  also  supported  (but not vi-style keys, since hledger-1.19, | ||||
|        sorry!).  A tip: movement speed is  limited  by  your  keyboard  repeat | ||||
|        rate,  to  move faster you may want to adjust it.  (If you're on a mac, | ||||
|        the karabiner app is one way to do that.) | ||||
| 
 | ||||
|        with  shift pressed, the cursor keys adjust the report period, limiting | ||||
|        the transactions to be shown  (by  default,  all  are  shown).   shift- | ||||
|        down/up  steps downward and upward through these standard report period | ||||
|        durations: year, quarter, month,  week,  day.   then,  shift-left/right | ||||
|        moves  to the previous/next period.  T sets the report period to today. | ||||
|        with the --watch option, when viewing a "current" period  (the  current | ||||
|        with shift pressed, the cursor keys adjust the report period,  limiting | ||||
|        the  transactions  to  be  shown  (by  default, all are shown).  shift- | ||||
|        down/up steps downward and upward through these standard report  period | ||||
|        durations:  year,  quarter,  month,  week, day.  then, shift-left/right | ||||
|        moves to the previous/next period.  T sets the report period to  today. | ||||
|        with  the  --watch option, when viewing a "current" period (the current | ||||
|        day, week, month, quarter, or year), the period will move automatically | ||||
|        to track the current date.  to set a non-standard period, you can use / | ||||
|        and a date: query. | ||||
| 
 | ||||
|        /  lets  you  set a general filter query limiting the data shown, using | ||||
|        the same query terms as in hledger and hledger-web.  while editing  the | ||||
|        query,  you  can  use ctrl-a/e/d/k, bs, cursor keys; press enter to set | ||||
|        / lets you set a general filter query limiting the  data  shown,  using | ||||
|        the  same query terms as in hledger and hledger-web.  while editing the | ||||
|        query, you can use ctrl-a/e/d/k, bs, cursor keys; press  enter  to  set | ||||
|        it, or escapeto cancel.  there are also keys for quickly adjusting some | ||||
|        common  filters  like account depth and transaction status (see below). | ||||
|        common filters like account depth and transaction status  (see  below). | ||||
|        backspace or delete removes all filters, showing all transactions. | ||||
| 
 | ||||
|        as mentioned above, by default hledger-ui hides future  transactions  - | ||||
|        as  mentioned  above, by default hledger-ui hides future transactions - | ||||
|        both ordinary transactions recorded in the journal, and periodic trans- | ||||
|        actions generated by rule.  f  toggles  forecast  mode,  in  which  fu- | ||||
|        actions  generated  by  rule.   f  toggles  forecast mode, in which fu- | ||||
|        ture/forecasted transactions are shown.  (experimental) | ||||
| 
 | ||||
|        escape  resets the UI state and jumps back to the top screen, restoring | ||||
|        escape resets the UI state and jumps back to the top screen,  restoring | ||||
|        the app's initial state at startup.  Or, it cancels minibuffer data en- | ||||
|        try or the help dialog. | ||||
| 
 | ||||
|        ctrl-l redraws the screen and centers the selection if possible (selec- | ||||
|        tions near the top won't be centered, since we don't scroll  above  the | ||||
|        tions  near  the top won't be centered, since we don't scroll above the | ||||
|        top). | ||||
| 
 | ||||
|        g  reloads from the data file(s) and updates the current screen and any | ||||
|        previous screens.  (with large files, this  could  cause  a  noticeable | ||||
|        g reloads from the data file(s) and updates the current screen and  any | ||||
|        previous  screens.   (with  large  files, this could cause a noticeable | ||||
|        pause.) | ||||
| 
 | ||||
|        i  toggles  balance  assertion  checking.  disabling balance assertions | ||||
|        i toggles balance assertion  checking.   disabling  balance  assertions | ||||
|        temporarily can be useful for troubleshooting. | ||||
| 
 | ||||
|        a runs command-line hledger's add  command,  and  reloads  the  updated | ||||
|        a  runs  command-line  hledger's  add  command, and reloads the updated | ||||
|        file.  this allows some basic data entry. | ||||
| 
 | ||||
|        a  is like a, but runs the hledger-iadd tool, which provides a terminal | ||||
|        interface.  this key will be available if hledger-iadd is installed  in | ||||
|        a is like a, but runs the hledger-iadd tool, which provides a  terminal | ||||
|        interface.   this key will be available if hledger-iadd is installed in | ||||
|        $path. | ||||
| 
 | ||||
|        e  runs $hledger_ui_editor, or $editor, or a default (emacsclient -a "" | ||||
|        -nw) on the journal file.  with some editors (emacs,  vi),  the  cursor | ||||
|        will  be  positioned  at  the current transaction when invoked from the | ||||
|        register and transaction screens, and at the error location (if  possi- | ||||
|        e runs $hledger_ui_editor, or $editor, or a default (emacsclient -a  "" | ||||
|        -nw)  on  the  journal file.  with some editors (emacs, vi), the cursor | ||||
|        will be positioned at the current transaction  when  invoked  from  the | ||||
|        register  and transaction screens, and at the error location (if possi- | ||||
|        ble) when invoked from the error screen. | ||||
| 
 | ||||
|        b  toggles cost mode, showing amounts in their transaction price's com- | ||||
|        b toggles cost mode, showing amounts in their transaction price's  com- | ||||
|        modity (like toggling the -b/--cost flag). | ||||
| 
 | ||||
|        v toggles value mode, showing amounts' current market  value  in  their | ||||
|        default  valuation  commodity  (like  toggling  the  -v/--market flag). | ||||
|        note, "current market value" means the value on the report end date  if | ||||
|        specified,  otherwise today.  to see the value on another date, you can | ||||
|        temporarily set that as the report end date.  eg: to see a  transaction | ||||
|        as  it  was  valued  on july 30, go to the accounts or register screen, | ||||
|        v  toggles  value  mode, showing amounts' current market value in their | ||||
|        default valuation  commodity  (like  toggling  the  -v/--market  flag). | ||||
|        note,  "current market value" means the value on the report end date if | ||||
|        specified, otherwise today.  to see the value on another date, you  can | ||||
|        temporarily  set that as the report end date.  eg: to see a transaction | ||||
|        as it was valued on july 30, go to the  accounts  or  register  screen, | ||||
|        press /, and add date:-7/30 to the query. | ||||
| 
 | ||||
|        at most one of cost or value mode can be active at once. | ||||
| 
 | ||||
|        there's not yet any visual reminder when cost or value mode is  active; | ||||
|        there's  not yet any visual reminder when cost or value mode is active; | ||||
|        for now pressing b b v should reliably reset to normal mode. | ||||
| 
 | ||||
|        with  --watch  active,  if  you  save an edit to the journal file while | ||||
|        with --watch active, if you save an edit  to  the  journal  file  while | ||||
|        viewing the transaction screen in cost or value mode, the b/v keys will | ||||
|        stop  working.   to  work  around, press g to force a manual reload, or | ||||
|        stop working.  to work around, press g to force  a  manual  reload,  or | ||||
|        exit the transaction screen. | ||||
| 
 | ||||
|        q quits the application. | ||||
| @ -275,43 +279,43 @@ keys | ||||
| 
 | ||||
| screens | ||||
|    accounts screen | ||||
|        this is normally the first screen displayed.   it  lists  accounts  and | ||||
|        their  balances,  like hledger's balance command.  by default, it shows | ||||
|        all accounts and their latest ending balances (including  the  balances | ||||
|        of  subaccounts).  if you specify a query on the command line, it shows | ||||
|        this  is  normally  the  first screen displayed.  it lists accounts and | ||||
|        their balances, like hledger's balance command.  by default,  it  shows | ||||
|        all  accounts  and their latest ending balances (including the balances | ||||
|        of subaccounts).  if you specify a query on the command line, it  shows | ||||
|        just the matched accounts and the balances from matched transactions. | ||||
| 
 | ||||
|        Account names are shown as a flat list by default; press  t  to  toggle | ||||
|        tree  mode.   In  list  mode,  account balances are exclusive of subac- | ||||
|        counts, except where subaccounts are hidden by a depth limit  (see  be- | ||||
|        Account  names  are  shown as a flat list by default; press t to toggle | ||||
|        tree mode.  In list mode, account  balances  are  exclusive  of  subac- | ||||
|        counts,  except  where subaccounts are hidden by a depth limit (see be- | ||||
|        low).  In tree mode, all account balances are inclusive of subaccounts. | ||||
| 
 | ||||
|        To  see  less detail, press a number key, 1 to 9, to set a depth limit. | ||||
|        To see less detail, press a number key, 1 to 9, to set a  depth  limit. | ||||
|        Or use - to decrease and +/= to increase the depth limit.  0 shows even | ||||
|        less  detail, collapsing all accounts to a single total.  To remove the | ||||
|        less detail, collapsing all accounts to a single total.  To remove  the | ||||
|        depth limit, set it higher than the maximum account depth, or press ES- | ||||
|        CAPE. | ||||
| 
 | ||||
|        H toggles between showing historical balances or period balances.  His- | ||||
|        torical balances (the default) are ending balances at the  end  of  the | ||||
|        report  period,  taking  into account all transactions before that date | ||||
|        (filtered by the filter query if any),  including  transactions  before | ||||
|        the  start  of  the report period.  In other words, historical balances | ||||
|        are what you would see on a bank statement  for  that  account  (unless | ||||
|        disturbed  by a filter query).  Period balances ignore transactions be- | ||||
|        fore the report start date, so they show the change in  balance  during | ||||
|        torical  balances  (the  default) are ending balances at the end of the | ||||
|        report period, taking into account all transactions  before  that  date | ||||
|        (filtered  by  the  filter query if any), including transactions before | ||||
|        the start of the report period.  In other  words,  historical  balances | ||||
|        are  what  you  would  see on a bank statement for that account (unless | ||||
|        disturbed by a filter query).  Period balances ignore transactions  be- | ||||
|        fore  the  report start date, so they show the change in balance during | ||||
|        the report period.  They are more useful eg when viewing a time log. | ||||
| 
 | ||||
|        U toggles filtering by unmarked status, including or excluding unmarked | ||||
|        postings in the balances.  Similarly, P toggles pending postings, and C | ||||
|        toggles  cleared postings.  (By default, balances include all postings; | ||||
|        if you activate one or two status filters, only those postings are  in- | ||||
|        toggles cleared postings.  (By default, balances include all  postings; | ||||
|        if  you activate one or two status filters, only those postings are in- | ||||
|        cluded; and if you activate all three, the filter is removed.) | ||||
| 
 | ||||
|        R toggles real mode, in which virtual postings are ignored. | ||||
| 
 | ||||
|        Z  toggles  nonzero  mode, in which only accounts with nonzero balances | ||||
|        are shown (hledger-ui shows zero items by default, unlike  command-line | ||||
|        Z toggles nonzero mode, in which only accounts  with  nonzero  balances | ||||
|        are  shown (hledger-ui shows zero items by default, unlike command-line | ||||
|        hledger). | ||||
| 
 | ||||
|        Press right or enter to view an account's transactions register. | ||||
| @ -320,63 +324,63 @@ screens | ||||
|        This screen shows the transactions affecting a particular account, like | ||||
|        a check register.  Each line represents one transaction and shows: | ||||
| 
 | ||||
|        o the other account(s) involved, in abbreviated form.   (If  there  are | ||||
|          both  real  and virtual postings, it shows only the accounts affected | ||||
|        o the  other  account(s)  involved, in abbreviated form.  (If there are | ||||
|          both real and virtual postings, it shows only the  accounts  affected | ||||
|          by real postings.) | ||||
| 
 | ||||
|        o the overall change to the current account's balance; positive for  an | ||||
|        o the  overall change to the current account's balance; positive for an | ||||
|          inflow to this account, negative for an outflow. | ||||
| 
 | ||||
|        o the running historical total or period total for the current account, | ||||
|          after the transaction.  This can be toggled with H.  Similar  to  the | ||||
|          accounts  screen,  the  historical  total is affected by transactions | ||||
|          (filtered by the filter query) before the report  start  date,  while | ||||
|          after  the  transaction.  This can be toggled with H.  Similar to the | ||||
|          accounts screen, the historical total  is  affected  by  transactions | ||||
|          (filtered  by  the  filter query) before the report start date, while | ||||
|          the period total is not.  If the historical total is not disturbed by | ||||
|          a filter query, it will be the running historical balance  you  would | ||||
|          a  filter  query, it will be the running historical balance you would | ||||
|          see on a bank register for the current account. | ||||
| 
 | ||||
|        Transactions  affecting  this account's subaccounts will be included in | ||||
|        Transactions affecting this account's subaccounts will be  included  in | ||||
|        the register if the accounts screen is in tree mode, or if it's in list | ||||
|        mode  but  this  account  has  subaccounts which are not shown due to a | ||||
|        depth limit.  In other words, the register always  shows  the  transac- | ||||
|        tions  contributing  to the balance shown on the accounts screen.  Tree | ||||
|        mode but this account has subaccounts which are  not  shown  due  to  a | ||||
|        depth  limit.   In  other words, the register always shows the transac- | ||||
|        tions contributing to the balance shown on the accounts  screen.   Tree | ||||
|        mode/list mode can be toggled with t here also. | ||||
| 
 | ||||
|        U toggles filtering by unmarked  status,  showing  or  hiding  unmarked | ||||
|        U  toggles  filtering  by  unmarked  status, showing or hiding unmarked | ||||
|        transactions.  Similarly, P toggles pending transactions, and C toggles | ||||
|        cleared transactions.  (By default, transactions with all statuses  are | ||||
|        shown;  if  you activate one or two status filters, only those transac- | ||||
|        cleared  transactions.  (By default, transactions with all statuses are | ||||
|        shown; if you activate one or two status filters, only  those  transac- | ||||
|        tions are shown; and if you activate all three, the filter is removed.) | ||||
| 
 | ||||
|        R toggles real mode, in which virtual postings are ignored. | ||||
| 
 | ||||
|        Z toggles nonzero mode, in which only transactions  posting  a  nonzero | ||||
|        change  are  shown (hledger-ui shows zero items by default, unlike com- | ||||
|        Z  toggles  nonzero  mode, in which only transactions posting a nonzero | ||||
|        change are shown (hledger-ui shows zero items by default,  unlike  com- | ||||
|        mand-line hledger). | ||||
| 
 | ||||
|        Press right (or enter) to view the selected transaction in detail. | ||||
| 
 | ||||
|    Transaction screen | ||||
|        This screen shows a single transaction, as  a  general  journal  entry, | ||||
|        similar  to  hledger's  print command and journal format (hledger_jour- | ||||
|        This  screen  shows  a  single transaction, as a general journal entry, | ||||
|        similar to hledger's print command and  journal  format  (hledger_jour- | ||||
|        nal(5)). | ||||
| 
 | ||||
|        The transaction's date(s) and any cleared flag, transaction  code,  de- | ||||
|        scription,  comments, along with all of its account postings are shown. | ||||
|        Simple transactions have two postings, but there can  be  more  (or  in | ||||
|        The  transaction's  date(s) and any cleared flag, transaction code, de- | ||||
|        scription, comments, along with all of its account postings are  shown. | ||||
|        Simple  transactions  have  two  postings, but there can be more (or in | ||||
|        certain cases, fewer). | ||||
| 
 | ||||
|        up  and  down will step through all transactions listed in the previous | ||||
|        account register screen.  In the title bar, the numbers in  parentheses | ||||
|        show  your  position  within that account register.  They will vary de- | ||||
|        up and down will step through all transactions listed in  the  previous | ||||
|        account  register screen.  In the title bar, the numbers in parentheses | ||||
|        show your position within that account register.  They  will  vary  de- | ||||
|        pending on which account register you came from (remember most transac- | ||||
|        tions  appear  in multiple account registers).  The #N number preceding | ||||
|        tions appear in multiple account registers).  The #N  number  preceding | ||||
|        them is the transaction's position within the complete unfiltered jour- | ||||
|        nal, which is a more stable id (at least until the next reload). | ||||
| 
 | ||||
|    Error screen | ||||
|        This  screen  will appear if there is a problem, such as a parse error, | ||||
|        when you press g to reload.  Once you have fixed the problem,  press  g | ||||
|        This screen will appear if there is a problem, such as a  parse  error, | ||||
|        when  you  press g to reload.  Once you have fixed the problem, press g | ||||
|        again to reload and resume normal operation.  (Or, you can press escape | ||||
|        to cancel the reload attempt.) | ||||
| 
 | ||||
| @ -384,15 +388,15 @@ ENVIRONMENT | ||||
|        COLUMNS The screen width to use.  Default: the full terminal width. | ||||
| 
 | ||||
|        LEDGER_FILE The journal file path when not specified with -f.  Default: | ||||
|        ~/.hledger.journal  (on  windows,  perhaps C:/Users/USER/.hledger.jour- | ||||
|        ~/.hledger.journal (on  windows,  perhaps  C:/Users/USER/.hledger.jour- | ||||
|        nal). | ||||
| 
 | ||||
|        A typical value is ~/DIR/YYYY.journal,  where  DIR  is  a  version-con- | ||||
|        trolled  finance directory and YYYY is the current year.  Or ~/DIR/cur- | ||||
|        A  typical  value  is  ~/DIR/YYYY.journal,  where DIR is a version-con- | ||||
|        trolled finance directory and YYYY is the current year.  Or  ~/DIR/cur- | ||||
|        rent.journal, where current.journal is a symbolic link to YYYY.journal. | ||||
| 
 | ||||
|        On Mac computers, you can set this and other environment variables in a | ||||
|        more  thorough  way that also affects applications started from the GUI | ||||
|        more thorough way that also affects applications started from  the  GUI | ||||
|        (say, an Emacs dock icon).  Eg on MacOS Catalina I have a ~/.MacOSX/en- | ||||
|        vironment.plist file containing | ||||
| 
 | ||||
| @ -403,13 +407,13 @@ ENVIRONMENT | ||||
|        To see the effect you may need to killall Dock, or reboot. | ||||
| 
 | ||||
| FILES | ||||
|        Reads  data from one or more files in hledger journal, timeclock, time- | ||||
|        dot,  or  CSV  format  specified   with   -f,   or   $LEDGER_FILE,   or | ||||
|        $HOME/.hledger.journal           (on          windows,          perhaps | ||||
|        Reads data from one or more files in hledger journal, timeclock,  time- | ||||
|        dot,   or   CSV   format   specified   with  -f,  or  $LEDGER_FILE,  or | ||||
|        $HOME/.hledger.journal          (on          windows,           perhaps | ||||
|        C:/Users/USER/.hledger.journal). | ||||
| 
 | ||||
| BUGS | ||||
|        The need to precede options with -- when invoked from hledger  is  awk- | ||||
|        The  need  to precede options with -- when invoked from hledger is awk- | ||||
|        ward. | ||||
| 
 | ||||
|        -f- doesn't work (hledger-ui can't read from stdin). | ||||
| @ -417,24 +421,24 @@ BUGS | ||||
|        -V affects only the accounts screen. | ||||
| 
 | ||||
|        When you press g, the current and all previous screens are regenerated, | ||||
|        which may cause a noticeable pause with large files.  Also there is  no | ||||
|        which  may cause a noticeable pause with large files.  Also there is no | ||||
|        visual indication that this is in progress. | ||||
| 
 | ||||
|        --watch  is  not yet fully robust.  It works well for normal usage, but | ||||
|        many file changes in a short time (eg  saving  the  file  thousands  of | ||||
|        times  with an editor macro) can cause problems at least on OSX.  Symp- | ||||
|        toms include: unresponsive UI, periodic resetting of the  cursor  posi- | ||||
|        --watch is not yet fully robust.  It works well for normal  usage,  but | ||||
|        many  file  changes  in  a  short time (eg saving the file thousands of | ||||
|        times with an editor macro) can cause problems at least on OSX.   Symp- | ||||
|        toms  include:  unresponsive UI, periodic resetting of the cursor posi- | ||||
|        tion, momentary display of parse errors, high CPU usage eventually sub- | ||||
|        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 | ||||
|        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) | ||||
| 
 | ||||
| 
 | ||||
| @ -448,7 +452,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) | ||||
| 
 | ||||
|  | ||||
| @ -118,6 +118,9 @@ use some other field or tag for the account name | ||||
| \f[B]\f[CB]-I --ignore-assertions\f[B]\f[R] | ||||
| disable balance assertion checks (note: does not disable balance | ||||
| assignments) | ||||
| .TP | ||||
| \f[B]\f[CB]-s --strict\f[B]\f[R] | ||||
| do extra error checking (check that all posted accounts are declared) | ||||
| .PP | ||||
| hledger reporting options: | ||||
| .TP | ||||
|  | ||||
| @ -127,6 +127,10 @@ before options, as shown in the synopsis above. | ||||
| 
 | ||||
|      disable balance assertion checks (note: does not disable balance | ||||
|      assignments) | ||||
| '-s --strict' | ||||
| 
 | ||||
|      do extra error checking (check that all posted accounts are | ||||
|      declared) | ||||
| 
 | ||||
|    hledger reporting options: | ||||
| 
 | ||||
| @ -587,20 +591,20 @@ Tag Table: | ||||
| Node: Top72 | ||||
| Node: OPTIONS1752 | ||||
| Ref: #options1857 | ||||
| Node: PERMISSIONS8861 | ||||
| Ref: #permissions9000 | ||||
| Node: EDITING UPLOADING DOWNLOADING10212 | ||||
| Ref: #editing-uploading-downloading10393 | ||||
| Node: RELOADING11227 | ||||
| Ref: #reloading11361 | ||||
| Node: JSON API11794 | ||||
| Ref: #json-api11908 | ||||
| Node: ENVIRONMENT17398 | ||||
| Ref: #environment17514 | ||||
| Node: FILES18247 | ||||
| Ref: #files18347 | ||||
| Node: BUGS18560 | ||||
| Ref: #bugs18638 | ||||
| Node: PERMISSIONS8956 | ||||
| Ref: #permissions9095 | ||||
| Node: EDITING UPLOADING DOWNLOADING10307 | ||||
| Ref: #editing-uploading-downloading10488 | ||||
| Node: RELOADING11322 | ||||
| Ref: #reloading11456 | ||||
| Node: JSON API11889 | ||||
| Ref: #json-api12003 | ||||
| Node: ENVIRONMENT17493 | ||||
| Ref: #environment17609 | ||||
| Node: FILES18342 | ||||
| Ref: #files18442 | ||||
| Node: BUGS18655 | ||||
| Ref: #bugs18733 | ||||
|  | ||||
| End Tag Table | ||||
| 
 | ||||
|  | ||||
| @ -108,6 +108,10 @@ OPTIONS | ||||
|               disable balance assertion checks (note: does not disable balance | ||||
|               assignments) | ||||
| 
 | ||||
|        -s --strict | ||||
|               do extra error checking (check that all posted accounts are  de- | ||||
|               clared) | ||||
| 
 | ||||
|        hledger reporting options: | ||||
| 
 | ||||
|        -b --begin=DATE | ||||
| @ -132,7 +136,7 @@ OPTIONS | ||||
|               multiperiod/multicolumn report by year | ||||
| 
 | ||||
|        -p --period=PERIODEXP | ||||
|               set start date, end date, and/or reporting interval all at  once | ||||
|               set  start date, end date, and/or reporting interval all at once | ||||
|               using period expressions syntax | ||||
| 
 | ||||
|        --date2 | ||||
| @ -155,21 +159,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/selling amount at transaction time | ||||
| 
 | ||||
|        -V --market | ||||
|               convert  amounts to their market value in default valuation com- | ||||
|               convert amounts to their market value in default valuation  com- | ||||
|               modities | ||||
| 
 | ||||
|        -X --exchange=COMM | ||||
|               convert amounts to their market value in commodity COMM | ||||
| 
 | ||||
|        --value | ||||
|               convert amounts to cost or  market  value,  more  flexibly  than | ||||
|               convert  amounts  to  cost  or  market value, more flexibly than | ||||
|               -B/-V/-X | ||||
| 
 | ||||
|        --infer-value | ||||
| @ -178,15 +182,15 @@ OPTIONS | ||||
|        --auto apply automated posting rules to modify transactions. | ||||
| 
 | ||||
|        --forecast | ||||
|               generate  future  transactions  from periodic transaction rules, | ||||
|               for the next 6 months or till report end date.   In  hledger-ui, | ||||
|               generate future transactions from  periodic  transaction  rules, | ||||
|               for  the  next 6 months or till report end date.  In hledger-ui, | ||||
|               also make ordinary future transactions visible. | ||||
| 
 | ||||
|        --color=WHEN (or --colour=WHEN) | ||||
|               Should  color-supporting  commands  use ANSI color codes in text | ||||
|               output.  'auto' (default): whenever stdout seems to be a  color- | ||||
|               supporting  terminal.  'always' or 'yes': always, useful eg when | ||||
|               piping output into  'less  -R'.   'never'  or  'no':  never.   A | ||||
|               Should color-supporting commands use ANSI color  codes  in  text | ||||
|               output.   'auto' (default): whenever stdout seems to be a color- | ||||
|               supporting terminal.  'always' or 'yes': always, useful eg  when | ||||
|               piping  output  into  'less  -R'.   'never'  or  'no': never.  A | ||||
|               NO_COLOR environment variable overrides this. | ||||
| 
 | ||||
|        When a reporting option appears more than once in the command line, the | ||||
| @ -206,54 +210,54 @@ OPTIONS | ||||
|               show debug output (levels 1-9, default: 1) | ||||
| 
 | ||||
|        A @FILE argument will be expanded to the contents of FILE, which should | ||||
|        contain  one  command line option/argument per line.  (To prevent this, | ||||
|        contain one command line option/argument per line.  (To  prevent  this, | ||||
|        insert a -- argument before.) | ||||
| 
 | ||||
|        By default, hledger-web starts the web app in "transient mode" and also | ||||
|        opens it in your default web browser if possible.  In this mode the web | ||||
|        app will keep running for as long as you have it open in a browser win- | ||||
|        dow,  and will exit after two minutes of inactivity (no requests and no | ||||
|        browser windows viewing it).  With --serve, it just runs  the  web  app | ||||
|        without  exiting,  and logs requests to the console.  With --serve-api, | ||||
|        only the JSON web api (see  below)  is  served,  with  the  usual  HTML | ||||
|        dow, and will exit after two minutes of inactivity (no requests and  no | ||||
|        browser  windows  viewing  it).  With --serve, it just runs the web app | ||||
|        without exiting, and logs requests to the console.   With  --serve-api, | ||||
|        only  the  JSON  web  api  (see  below)  is served, with the usual HTML | ||||
|        server-side web UI disabled. | ||||
| 
 | ||||
|        By  default the server listens on IP address 127.0.0.1, accessible only | ||||
|        to local requests.  You can  use  --host  to  change  this,  eg  --host | ||||
|        By default the server listens on IP address 127.0.0.1, accessible  only | ||||
|        to  local  requests.   You  can  use  --host  to change this, eg --host | ||||
|        0.0.0.0 to listen on all configured addresses. | ||||
| 
 | ||||
|        Similarly,  use --port to set a TCP port other than 5000, eg if you are | ||||
|        Similarly, use --port to set a TCP port other than 5000, eg if you  are | ||||
|        running multiple hledger-web instances. | ||||
| 
 | ||||
|        Both of these options are ignored when --socket is used.  In this case, | ||||
|        it  creates  an  AF_UNIX socket file at the supplied path and uses that | ||||
|        for communication.  This is an  alternative  way  of  running  multiple | ||||
|        hledger-web  instances  behind a reverse proxy that handles authentica- | ||||
|        tion for different users.  The path can be  derived  in  a  predictable | ||||
|        it creates an AF_UNIX socket file at the supplied path  and  uses  that | ||||
|        for  communication.   This  is  an  alternative way of running multiple | ||||
|        hledger-web instances behind a reverse proxy that  handles  authentica- | ||||
|        tion  for  different  users.   The path can be derived in a predictable | ||||
|        way, eg by using the username within the path.  As an example, nginx as | ||||
|        reverse proxy can use the variable $remote_user to derive a  path  from | ||||
|        the  username  used  in  a  HTTP  basic  authentication.  The following | ||||
|        proxy_pass directive allows access to all  hledger-web  instances  that | ||||
|        reverse  proxy  can use the variable $remote_user to derive a path from | ||||
|        the username used  in  a  HTTP  basic  authentication.   The  following | ||||
|        proxy_pass  directive  allows  access to all hledger-web instances that | ||||
|        created a socket in /tmp/hledger/: | ||||
| 
 | ||||
|                 proxy_pass http://unix:/tmp/hledger/${remote_user}.socket; | ||||
| 
 | ||||
|        You  can use --base-url to change the protocol, hostname, port and path | ||||
|        You can use --base-url to change the protocol, hostname, port and  path | ||||
|        that appear in hyperlinks, useful eg for integrating hledger-web within | ||||
|        a  larger website.  The default is http://HOST:PORT/ using the server's | ||||
|        a larger website.  The default is http://HOST:PORT/ using the  server's | ||||
|        configured host address and TCP port (or http://HOST if PORT is 80). | ||||
| 
 | ||||
|        With --file-url you can set a different base url for static  files,  eg | ||||
|        With  --file-url  you can set a different base url for static files, eg | ||||
|        for better caching or cookie-less serving on high performance websites. | ||||
| 
 | ||||
| PERMISSIONS | ||||
|        By  default,  hledger-web  allows  anyone  who can reach it to view the | ||||
|        By default, hledger-web allows anyone who can  reach  it  to  view  the | ||||
|        journal and to add new transactions, but not to change existing data. | ||||
| 
 | ||||
|        You can restrict who can reach it by | ||||
| 
 | ||||
|        o setting the IP address it listens on (see --host above).  By  default | ||||
|          it  listens  on  127.0.0.1,  accessible to all users on the local ma- | ||||
|        o setting  the IP address it listens on (see --host above).  By default | ||||
|          it listens on 127.0.0.1, accessible to all users  on  the  local  ma- | ||||
|          chine. | ||||
| 
 | ||||
|        o putting it behind an authenticating proxy, using eg apache or nginx | ||||
| @ -263,44 +267,44 @@ PERMISSIONS | ||||
|        You can restrict what the users who reach it can do, by | ||||
| 
 | ||||
|        o using the --capabilities=CAP[,CAP..] flag when you start it, enabling | ||||
|          one  or  more  of  the  following capabilities.  The default value is | ||||
|          one or more of the following  capabilities.   The  default  value  is | ||||
|          view,add: | ||||
| 
 | ||||
|          o view - allows viewing the journal file and all included files | ||||
| 
 | ||||
|          o add - allows adding new transactions to the main journal file | ||||
| 
 | ||||
|          o manage - allows editing, uploading or downloading the main  or  in- | ||||
|          o manage  -  allows editing, uploading or downloading the main or in- | ||||
|            cluded files | ||||
| 
 | ||||
|        o using  the  --capabilities-header=HTTPHEADER  flag  to specify a HTTP | ||||
|          header from which it will read capabilities to  enable.   hledger-web | ||||
|          on  Sandstorm  uses  the  X-Sandstorm-Permissions header to integrate | ||||
|        o using the --capabilities-header=HTTPHEADER flag  to  specify  a  HTTP | ||||
|          header  from  which it will read capabilities to enable.  hledger-web | ||||
|          on Sandstorm uses the  X-Sandstorm-Permissions  header  to  integrate | ||||
|          with Sandstorm's permissions.  This is disabled by default. | ||||
| 
 | ||||
| EDITING, UPLOADING, DOWNLOADING | ||||
|        If you enable the manage capability mentioned above, you'll see  a  new | ||||
|        "spanner"  button  to the right of the search form.  Clicking this will | ||||
|        let you edit, upload, or download the journal file or any files it  in- | ||||
|        If  you  enable the manage capability mentioned above, you'll see a new | ||||
|        "spanner" button to the right of the search form.  Clicking  this  will | ||||
|        let  you edit, upload, or download the journal file or any files it in- | ||||
|        cludes. | ||||
| 
 | ||||
|        Note,  unlike any other hledger command, in this mode you (or any visi- | ||||
|        Note, unlike any other hledger command, in this mode you (or any  visi- | ||||
|        tor) can alter or wipe the data files. | ||||
| 
 | ||||
|        Normally whenever a file is changed in this way,  hledger-web  saves  a | ||||
|        numbered  backup  (assuming  file permissions allow it, the disk is not | ||||
|        full, etc.) hledger-web is not aware of version control  systems,  cur- | ||||
|        rently;  if  you  use one, you'll have to arrange to commit the changes | ||||
|        Normally  whenever  a  file is changed in this way, hledger-web saves a | ||||
|        numbered backup (assuming file permissions allow it, the  disk  is  not | ||||
|        full,  etc.)  hledger-web is not aware of version control systems, cur- | ||||
|        rently; if you use one, you'll have to arrange to  commit  the  changes | ||||
|        yourself (eg with a cron job or a file watcher like entr). | ||||
| 
 | ||||
|        Changes which would leave the journal file(s) unparseable or  non-valid | ||||
|        (eg  with  failing balance assertions) are prevented.  (Probably.  This | ||||
|        Changes  which would leave the journal file(s) unparseable or non-valid | ||||
|        (eg with failing balance assertions) are prevented.   (Probably.   This | ||||
|        needs re-testing.) | ||||
| 
 | ||||
| RELOADING | ||||
|        hledger-web detects changes made to the files by other means (eg if you | ||||
|        edit  it  directly,  outside  of hledger-web), and it will show the new | ||||
|        data when you reload the page or navigate to a new page.  If  a  change | ||||
|        edit it directly, outside of hledger-web), and it  will  show  the  new | ||||
|        data  when  you reload the page or navigate to a new page.  If a change | ||||
|        makes a file unparseable, hledger-web will display an error message un- | ||||
|        til the file has been fixed. | ||||
| 
 | ||||
| @ -308,8 +312,8 @@ RELOADING | ||||
|        that both machine clocks are roughly in step.) | ||||
| 
 | ||||
| JSON API | ||||
|        In  addition to the web UI, hledger-web also serves a JSON API that can | ||||
|        be used to get data or add new transactions.  If you want the JSON  API | ||||
|        In addition to the web UI, hledger-web also serves a JSON API that  can | ||||
|        be  used to get data or add new transactions.  If you want the JSON API | ||||
|        only, you can use the --serve-api flag.  Eg: | ||||
| 
 | ||||
|               $ hledger-web -f examples/sample.journal --serve-api | ||||
| @ -326,7 +330,7 @@ JSON API | ||||
|               /accounttransactions/ACCOUNTNAME | ||||
| 
 | ||||
|        Eg, all account names in the journal (similar to the accounts command). | ||||
|        (hledger-web's JSON does not include newlines, here we  use  python  to | ||||
|        (hledger-web's  JSON  does  not include newlines, here we use python to | ||||
|        prettify it): | ||||
| 
 | ||||
|               $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool | ||||
| @ -367,25 +371,25 @@ JSON API | ||||
|                                       "aprice": null, | ||||
|               ... | ||||
| 
 | ||||
|        Most  of  the  JSON corresponds to hledger's data types; for details of | ||||
|        what the fields mean, see the Hledger.Data.Json haddock docs and  click | ||||
|        on  the various data types, eg Transaction.  And for a higher level un- | ||||
|        Most of the JSON corresponds to hledger's data types;  for  details  of | ||||
|        what  the fields mean, see the Hledger.Data.Json haddock docs and click | ||||
|        on the various data types, eg Transaction.  And for a higher level  un- | ||||
|        derstanding, see the journal manual. | ||||
| 
 | ||||
|        In some cases there is outer JSON corresponding to a "Report" type.  To | ||||
|        understand  that,  go to the Hledger.Web.Handler.MiscR haddock and look | ||||
|        at the source for the appropriate handler to see what it  returns.   Eg | ||||
|        understand that, go to the Hledger.Web.Handler.MiscR haddock  and  look | ||||
|        at  the  source for the appropriate handler to see what it returns.  Eg | ||||
|        for /accounttransactions it's getAccounttransactionsR, returning a "ac- | ||||
|        countTransactionsReport ...".  Looking up the haddock for that  we  can | ||||
|        see  that  /accounttransactions  returns  an AccountTransactionsReport, | ||||
|        which consists of a report title and a list  of  AccountTransactionsRe- | ||||
|        countTransactionsReport  ...".   Looking up the haddock for that we can | ||||
|        see that  /accounttransactions  returns  an  AccountTransactionsReport, | ||||
|        which  consists  of a report title and a list of AccountTransactionsRe- | ||||
|        portItem (etc). | ||||
| 
 | ||||
|        You  can  add  a  new  transaction to the journal with a PUT request to | ||||
|        /add, if hledger-web was started with the add  capability  (enabled  by | ||||
|        You can add a new transaction to the journal  with  a  PUT  request  to | ||||
|        /add,  if  hledger-web  was started with the add capability (enabled by | ||||
|        default).  The payload must be the full, exact JSON representation of a | ||||
|        hledger transaction (partial data won't do).  You can get  sample  JSON | ||||
|        from  hledger-web's  /transactions  or /accounttransactions, or you can | ||||
|        hledger  transaction  (partial data won't do).  You can get sample JSON | ||||
|        from hledger-web's /transactions or /accounttransactions,  or  you  can | ||||
|        export it with hledger-lib, eg like so: | ||||
| 
 | ||||
|               .../hledger$ stack ghci hledger-lib | ||||
| @ -481,22 +485,22 @@ JSON API | ||||
|                   "tstatus": "Unmarked" | ||||
|               } | ||||
| 
 | ||||
|        And  here's how to test adding it with curl.  This should add a new en- | ||||
|        And here's how to test adding it with curl.  This should add a new  en- | ||||
|        try to your journal: | ||||
| 
 | ||||
|               $ curl http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.json | ||||
| 
 | ||||
| ENVIRONMENT | ||||
|        LEDGER_FILE The journal file path when not specified with -f.  Default: | ||||
|        ~/.hledger.journal  (on  windows,  perhaps C:/Users/USER/.hledger.jour- | ||||
|        ~/.hledger.journal (on  windows,  perhaps  C:/Users/USER/.hledger.jour- | ||||
|        nal). | ||||
| 
 | ||||
|        A typical value is ~/DIR/YYYY.journal,  where  DIR  is  a  version-con- | ||||
|        trolled  finance directory and YYYY is the current year.  Or ~/DIR/cur- | ||||
|        A  typical  value  is  ~/DIR/YYYY.journal,  where DIR is a version-con- | ||||
|        trolled finance directory and YYYY is the current year.  Or  ~/DIR/cur- | ||||
|        rent.journal, where current.journal is a symbolic link to YYYY.journal. | ||||
| 
 | ||||
|        On Mac computers, you can set this and other environment variables in a | ||||
|        more  thorough  way that also affects applications started from the GUI | ||||
|        more thorough way that also affects applications started from  the  GUI | ||||
|        (say, an Emacs dock icon).  Eg on MacOS Catalina I have a ~/.MacOSX/en- | ||||
|        vironment.plist file containing | ||||
| 
 | ||||
| @ -507,13 +511,13 @@ ENVIRONMENT | ||||
|        To see the effect you may need to killall Dock, or reboot. | ||||
| 
 | ||||
| FILES | ||||
|        Reads  data from one or more files in hledger journal, timeclock, time- | ||||
|        dot,  or  CSV  format  specified   with   -f,   or   $LEDGER_FILE,   or | ||||
|        $HOME/.hledger.journal           (on          windows,          perhaps | ||||
|        Reads data from one or more files in hledger journal, timeclock,  time- | ||||
|        dot,   or   CSV   format   specified   with  -f,  or  $LEDGER_FILE,  or | ||||
|        $HOME/.hledger.journal          (on          windows,           perhaps | ||||
|        C:/Users/USER/.hledger.journal). | ||||
| 
 | ||||
| BUGS | ||||
|        The need to precede options with -- when invoked from hledger  is  awk- | ||||
|        The  need  to precede options with -- when invoked from hledger is awk- | ||||
|        ward. | ||||
| 
 | ||||
|        -f- doesn't work (hledger-web can't read from stdin). | ||||
| @ -527,7 +531,7 @@ BUGS | ||||
| 
 | ||||
| 
 | ||||
| REPORTING BUGS | ||||
|        Report  bugs at http://bugs.hledger.org (or on the #hledger IRC channel | ||||
|        Report bugs at http://bugs.hledger.org (or on the #hledger IRC  channel | ||||
|        or hledger mail list) | ||||
| 
 | ||||
| 
 | ||||
| @ -541,7 +545,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) | ||||
| 
 | ||||
|  | ||||
| @ -566,6 +566,9 @@ use some other field or tag for the account name | ||||
| \f[B]\f[CB]-I --ignore-assertions\f[B]\f[R] | ||||
| disable balance assertion checks (note: does not disable balance | ||||
| assignments) | ||||
| .TP | ||||
| \f[B]\f[CB]-s --strict\f[B]\f[R] | ||||
| do extra error checking (check that all posted accounts are declared) | ||||
| .PP | ||||
| General reporting options: | ||||
| .TP | ||||
| @ -1060,6 +1063,25 @@ use a single parent file which includes the others | ||||
| .IP \[bu] 2 | ||||
| or concatenate the files into one before reading, eg: | ||||
| \f[C]cat a.journal b.journal | hledger -f- CMD\f[R]. | ||||
| .SS Strict mode | ||||
| .PP | ||||
| hledger checks input files for valid data. | ||||
| By default, the most important errors are detected, while still | ||||
| accepting easy journal files without a lot of declarations: | ||||
| .IP \[bu] 2 | ||||
| Are the input files parseable, with valid syntax ? | ||||
| .IP \[bu] 2 | ||||
| Are all transactions balanced ? | ||||
| .IP \[bu] 2 | ||||
| Do all balance assertions pass ? | ||||
| .PP | ||||
| With the \f[C]-s\f[R]/\f[C]--strict\f[R] flag, additional checks are | ||||
| performed: | ||||
| .IP \[bu] 2 | ||||
| Are all accounts referenced by transactions declared with an account | ||||
| directive ? | ||||
| .PP | ||||
| \f[I]experimental.\f[R] | ||||
| .SS Output destination | ||||
| .PP | ||||
| hledger commands send their output to the terminal by default. | ||||
|  | ||||
| @ -500,6 +500,7 @@ File: hledger.info,  Node: OPTIONS,  Next: COMMANDS,  Prev: COMMON TASKS,  Up: T | ||||
| * Special characters in arguments and queries:: | ||||
| * Unicode characters:: | ||||
| * Input files:: | ||||
| * Strict mode:: | ||||
| * Output destination:: | ||||
| * Output format:: | ||||
| * Regular expressions:: | ||||
| @ -557,6 +558,10 @@ by most hledger commands, run 'hledger -h'. | ||||
| 
 | ||||
|      disable balance assertion checks (note: does not disable balance | ||||
|      assignments) | ||||
| '-s --strict' | ||||
| 
 | ||||
|      do extra error checking (check that all posted accounts are | ||||
|      declared) | ||||
| 
 | ||||
|    General reporting options: | ||||
| 
 | ||||
| @ -934,7 +939,7 @@ hledger is expected to handle non-ascii characters correctly: | ||||
|      terminal, and vice versa.  (See eg #961). | ||||
| 
 | ||||
|  | ||||
| File: hledger.info,  Node: Input files,  Next: Output destination,  Prev: Unicode characters,  Up: OPTIONS | ||||
| File: hledger.info,  Node: Input files,  Next: Strict mode,  Prev: Unicode characters,  Up: OPTIONS | ||||
| 
 | ||||
| 2.7 Input files | ||||
| =============== | ||||
| @ -997,9 +1002,30 @@ big journal.  There are some limitations with this: | ||||
|      a.journal b.journal | hledger -f- CMD'. | ||||
| 
 | ||||
|  | ||||
| File: hledger.info,  Node: Output destination,  Next: Output format,  Prev: Input files,  Up: OPTIONS | ||||
| File: hledger.info,  Node: Strict mode,  Next: Output destination,  Prev: Input files,  Up: OPTIONS | ||||
| 
 | ||||
| 2.8 Output destination | ||||
| 2.8 Strict mode | ||||
| =============== | ||||
| 
 | ||||
| hledger checks input files for valid data.  By default, the most | ||||
| important errors are detected, while still accepting easy journal files | ||||
| without a lot of declarations: | ||||
| 
 | ||||
|    * Are the input files parseable, with valid syntax ? | ||||
|    * Are all transactions balanced ? | ||||
|    * Do all balance assertions pass ? | ||||
| 
 | ||||
|    With the '-s'/'--strict' flag, additional checks are performed: | ||||
| 
 | ||||
|    * Are all accounts referenced by transactions declared with an | ||||
|      account directive ? | ||||
| 
 | ||||
|    _experimental._ | ||||
| 
 | ||||
|  | ||||
| File: hledger.info,  Node: Output destination,  Next: Output format,  Prev: Strict mode,  Up: OPTIONS | ||||
| 
 | ||||
| 2.9 Output destination | ||||
| ====================== | ||||
| 
 | ||||
| hledger commands send their output to the terminal by default.  You can | ||||
| @ -1017,8 +1043,8 @@ $ hledger print -o -        # write to stdout (the default) | ||||
|  | ||||
| File: hledger.info,  Node: Output format,  Next: Regular expressions,  Prev: Output destination,  Up: OPTIONS | ||||
| 
 | ||||
| 2.9 Output format | ||||
| ================= | ||||
| 2.10 Output format | ||||
| ================== | ||||
| 
 | ||||
| Some commands (print, register, the balance commands) offer a choice of | ||||
| output format.  In addition to the usual plain text format ('txt'), | ||||
| @ -1071,7 +1097,7 @@ $ hledger balancesheet -o foo.txt -O html   # write HTML to foo.txt | ||||
|  | ||||
| File: hledger.info,  Node: Regular expressions,  Next: Smart dates,  Prev: Output format,  Up: OPTIONS | ||||
| 
 | ||||
| 2.10 Regular expressions | ||||
| 2.11 Regular expressions | ||||
| ======================== | ||||
| 
 | ||||
| hledger uses regular expressions in a number of places: | ||||
| @ -1116,7 +1142,7 @@ they support: | ||||
|  | ||||
| File: hledger.info,  Node: Smart dates,  Next: Report start & end date,  Prev: Regular expressions,  Up: OPTIONS | ||||
| 
 | ||||
| 2.11 Smart dates | ||||
| 2.12 Smart dates | ||||
| ================ | ||||
| 
 | ||||
| hledger's user interfaces accept a flexible "smart date" syntax (unlike | ||||
| @ -1155,7 +1181,7 @@ results: | ||||
|  | ||||
| File: hledger.info,  Node: Report start & end date,  Next: Report intervals,  Prev: Smart dates,  Up: OPTIONS | ||||
| 
 | ||||
| 2.12 Report start & end date | ||||
| 2.13 Report start & end date | ||||
| ============================ | ||||
| 
 | ||||
| Most hledger reports show the full span of time represented by the | ||||
| @ -1198,7 +1224,7 @@ thismonth' | ||||
|  | ||||
| File: hledger.info,  Node: Report intervals,  Next: Period expressions,  Prev: Report start & end date,  Up: OPTIONS | ||||
| 
 | ||||
| 2.13 Report intervals | ||||
| 2.14 Report intervals | ||||
| ===================== | ||||
| 
 | ||||
| A report interval can be specified so that commands like register, | ||||
| @ -1211,7 +1237,7 @@ intervals can not be specified with a query. | ||||
|  | ||||
| File: hledger.info,  Node: Period expressions,  Next: Depth limiting,  Prev: Report intervals,  Up: OPTIONS | ||||
| 
 | ||||
| 2.14 Period expressions | ||||
| 2.15 Period expressions | ||||
| ======================= | ||||
| 
 | ||||
| The '-p/--period' option accepts period expressions, a shorthand way of | ||||
| @ -1336,7 +1362,7 @@ start date and exclusive end date): | ||||
|  | ||||
| File: hledger.info,  Node: Depth limiting,  Next: Pivoting,  Prev: Period expressions,  Up: OPTIONS | ||||
| 
 | ||||
| 2.15 Depth limiting | ||||
| 2.16 Depth limiting | ||||
| =================== | ||||
| 
 | ||||
| With the '--depth N' option (short form: '-N'), commands like account, | ||||
| @ -1348,7 +1374,7 @@ less detail.  This flag has the same effect as a 'depth:' query argument | ||||
|  | ||||
| File: hledger.info,  Node: Pivoting,  Next: Valuation,  Prev: Depth limiting,  Up: OPTIONS | ||||
| 
 | ||||
| 2.16 Pivoting | ||||
| 2.17 Pivoting | ||||
| ============= | ||||
| 
 | ||||
| Normally hledger sums amounts, and organizes them in a hierarchy, based | ||||
| @ -1405,7 +1431,7 @@ $ hledger balance --pivot member acct:. | ||||
|  | ||||
| File: hledger.info,  Node: Valuation,  Prev: Pivoting,  Up: OPTIONS | ||||
| 
 | ||||
| 2.17 Valuation | ||||
| 2.18 Valuation | ||||
| ============== | ||||
| 
 | ||||
| Instead of reporting amounts in their original commodity, hledger can | ||||
| @ -1432,7 +1458,7 @@ usually one of those is all you need. | ||||
|  | ||||
| File: hledger.info,  Node: -B Cost,  Next: -V Value,  Up: Valuation | ||||
| 
 | ||||
| 2.17.1 -B: Cost | ||||
| 2.18.1 -B: Cost | ||||
| --------------- | ||||
| 
 | ||||
| The '-B/--cost' flag converts amounts to their cost or sale amount at | ||||
| @ -1441,7 +1467,7 @@ transaction time, if they have a transaction price specified. | ||||
|  | ||||
| File: hledger.info,  Node: -V Value,  Next: -X Value in specified commodity,  Prev: -B Cost,  Up: Valuation | ||||
| 
 | ||||
| 2.17.2 -V: Value | ||||
| 2.18.2 -V: Value | ||||
| ---------------- | ||||
| 
 | ||||
| The '-V/--market' flag converts amounts to market value in their default | ||||
| @ -1451,7 +1477,7 @@ _valuation date(s)_, if any.  More on these in a minute. | ||||
|  | ||||
| File: hledger.info,  Node: -X Value in specified commodity,  Next: Valuation date,  Prev: -V Value,  Up: Valuation | ||||
| 
 | ||||
| 2.17.3 -X: Value in specified commodity | ||||
| 2.18.3 -X: Value in specified commodity | ||||
| --------------------------------------- | ||||
| 
 | ||||
| The '-X/--exchange=COMM' option is like '-V', except you tell it which | ||||
| @ -1461,7 +1487,7 @@ that. | ||||
|  | ||||
| File: hledger.info,  Node: Valuation date,  Next: Market prices,  Prev: -X Value in specified commodity,  Up: Valuation | ||||
| 
 | ||||
| 2.17.4 Valuation date | ||||
| 2.18.4 Valuation date | ||||
| --------------------- | ||||
| 
 | ||||
| Since market prices can change from day to day, market value reports | ||||
| @ -1478,7 +1504,7 @@ of the period, by default. | ||||
|  | ||||
| File: hledger.info,  Node: Market prices,  Next: --infer-value market prices from transactions,  Prev: Valuation date,  Up: Valuation | ||||
| 
 | ||||
| 2.17.5 Market prices | ||||
| 2.18.5 Market prices | ||||
| -------------------- | ||||
| 
 | ||||
| _(experimental)_ | ||||
| @ -1509,7 +1535,7 @@ converted. | ||||
|  | ||||
| File: hledger.info,  Node: --infer-value market prices from transactions,  Next: Valuation commodity,  Prev: Market prices,  Up: Valuation | ||||
| 
 | ||||
| 2.17.6 -infer-value: market prices from transactions | ||||
| 2.18.6 -infer-value: market prices from transactions | ||||
| ---------------------------------------------------- | ||||
| 
 | ||||
| _(experimental)_ | ||||
| @ -1544,7 +1570,7 @@ you, read all of this Valuation section carefully, and try adding | ||||
|  | ||||
| File: hledger.info,  Node: Valuation commodity,  Next: Simple valuation examples,  Prev: --infer-value market prices from transactions,  Up: Valuation | ||||
| 
 | ||||
| 2.17.7 Valuation commodity | ||||
| 2.18.7 Valuation commodity | ||||
| -------------------------- | ||||
| 
 | ||||
| _(experimental)_ | ||||
| @ -1584,7 +1610,7 @@ converted. | ||||
|  | ||||
| File: hledger.info,  Node: Simple valuation examples,  Next: --value Flexible valuation,  Prev: Valuation commodity,  Up: Valuation | ||||
| 
 | ||||
| 2.17.8 Simple valuation examples | ||||
| 2.18.8 Simple valuation examples | ||||
| -------------------------------- | ||||
| 
 | ||||
| Here are some quick examples of '-V': | ||||
| @ -1619,7 +1645,7 @@ $ hledger -f t.j bal -N euros -V | ||||
|  | ||||
| File: hledger.info,  Node: --value Flexible valuation,  Next: More valuation examples,  Prev: Simple valuation examples,  Up: Valuation | ||||
| 
 | ||||
| 2.17.9 -value: Flexible valuation | ||||
| 2.18.9 -value: Flexible valuation | ||||
| --------------------------------- | ||||
| 
 | ||||
| '-B', '-V' and '-X' are special cases of the more general '--value' | ||||
| @ -1667,7 +1693,7 @@ this commodity, deducing market prices as described above. | ||||
|  | ||||
| File: hledger.info,  Node: More valuation examples,  Next: Effect of valuation on reports,  Prev: --value Flexible valuation,  Up: Valuation | ||||
| 
 | ||||
| 2.17.10 More valuation examples | ||||
| 2.18.10 More valuation examples | ||||
| ------------------------------- | ||||
| 
 | ||||
| Here are some examples showing the effect of '--value', as seen with | ||||
| @ -1781,7 +1807,7 @@ $ hledger print -X A | ||||
|  | ||||
| File: hledger.info,  Node: Effect of valuation on reports,  Prev: More valuation examples,  Up: Valuation | ||||
| 
 | ||||
| 2.17.11 Effect of valuation on reports | ||||
| 2.18.11 Effect of valuation on reports | ||||
| -------------------------------------- | ||||
| 
 | ||||
| Here is a reference for how valuation is supposed to affect each part of | ||||
| @ -4406,190 +4432,192 @@ Node: Migrating to a new file16412 | ||||
| Ref: #migrating-to-a-new-file16560 | ||||
| Node: OPTIONS16859 | ||||
| Ref: #options16966 | ||||
| Node: General options17336 | ||||
| Ref: #general-options17461 | ||||
| Node: Command options20767 | ||||
| Ref: #command-options20918 | ||||
| Node: Command arguments21316 | ||||
| Ref: #command-arguments21463 | ||||
| Node: Queries22343 | ||||
| Ref: #queries22498 | ||||
| Node: Special characters in arguments and queries26460 | ||||
| Ref: #special-characters-in-arguments-and-queries26688 | ||||
| Node: More escaping27139 | ||||
| Ref: #more-escaping27301 | ||||
| Node: Even more escaping27597 | ||||
| Ref: #even-more-escaping27791 | ||||
| Node: Less escaping28462 | ||||
| Ref: #less-escaping28624 | ||||
| Node: Unicode characters28869 | ||||
| Ref: #unicode-characters29051 | ||||
| Node: Input files30463 | ||||
| Ref: #input-files30606 | ||||
| Node: Output destination32905 | ||||
| Ref: #output-destination33057 | ||||
| Node: Output format33482 | ||||
| Ref: #output-format33632 | ||||
| Node: Regular expressions35799 | ||||
| Ref: #regular-expressions35956 | ||||
| Node: Smart dates37692 | ||||
| Ref: #smart-dates37843 | ||||
| Node: Report start & end date39204 | ||||
| Ref: #report-start-end-date39376 | ||||
| Node: Report intervals40873 | ||||
| Ref: #report-intervals41038 | ||||
| Node: Period expressions41428 | ||||
| Ref: #period-expressions41588 | ||||
| Node: Depth limiting45961 | ||||
| Ref: #depth-limiting46105 | ||||
| Node: Pivoting46437 | ||||
| Ref: #pivoting46560 | ||||
| Node: Valuation48236 | ||||
| Ref: #valuation48338 | ||||
| Node: -B Cost49027 | ||||
| Ref: #b-cost49131 | ||||
| Node: -V Value49264 | ||||
| Ref: #v-value49410 | ||||
| Node: -X Value in specified commodity49605 | ||||
| Ref: #x-value-in-specified-commodity49804 | ||||
| Node: Valuation date49953 | ||||
| Ref: #valuation-date50121 | ||||
| Node: Market prices50543 | ||||
| Ref: #market-prices50723 | ||||
| Node: --infer-value market prices from transactions51665 | ||||
| Ref: #infer-value-market-prices-from-transactions51914 | ||||
| Node: Valuation commodity53196 | ||||
| Ref: #valuation-commodity53405 | ||||
| Node: Simple valuation examples54631 | ||||
| Ref: #simple-valuation-examples54833 | ||||
| Node: --value Flexible valuation55492 | ||||
| Ref: #value-flexible-valuation55700 | ||||
| Node: More valuation examples57647 | ||||
| Ref: #more-valuation-examples57856 | ||||
| Node: Effect of valuation on reports59861 | ||||
| Ref: #effect-of-valuation-on-reports60049 | ||||
| Node: COMMANDS67068 | ||||
| Ref: #commands67176 | ||||
| Node: accounts68284 | ||||
| Ref: #accounts68382 | ||||
| Node: activity69081 | ||||
| Ref: #activity69191 | ||||
| Node: add69574 | ||||
| Ref: #add69675 | ||||
| Node: aregister72468 | ||||
| Ref: #aregister72580 | ||||
| Node: aregister and custom posting dates73953 | ||||
| Ref: #aregister-and-custom-posting-dates74126 | ||||
| Ref: #output-format-174719 | ||||
| Node: balance75124 | ||||
| Ref: #balance75241 | ||||
| Node: Classic balance report76721 | ||||
| Ref: #classic-balance-report76894 | ||||
| Node: Customising the classic balance report78218 | ||||
| Ref: #customising-the-classic-balance-report78446 | ||||
| Node: Colour support80522 | ||||
| Ref: #colour-support80689 | ||||
| Node: Flat mode80785 | ||||
| Ref: #flat-mode80933 | ||||
| Node: Depth limited balance reports81346 | ||||
| Ref: #depth-limited-balance-reports81531 | ||||
| Node: Percentages81987 | ||||
| Ref: #percentages82144 | ||||
| Node: Sorting by amount83281 | ||||
| Ref: #sorting-by-amount83447 | ||||
| Node: Multicolumn balance report83941 | ||||
| Ref: #multicolumn-balance-report84127 | ||||
| Node: Budget report89724 | ||||
| Ref: #budget-report89867 | ||||
| Node: Budget report start date95156 | ||||
| Ref: #budget-report-start-date95321 | ||||
| Node: Nested budgets96653 | ||||
| Ref: #nested-budgets96798 | ||||
| Ref: #output-format-2100281 | ||||
| Node: balancesheet100442 | ||||
| Ref: #balancesheet100578 | ||||
| Node: balancesheetequity102090 | ||||
| Ref: #balancesheetequity102239 | ||||
| Node: cashflow103315 | ||||
| Ref: #cashflow103443 | ||||
| Node: check-dates104659 | ||||
| Ref: #check-dates104786 | ||||
| Node: check-dupes105065 | ||||
| Ref: #check-dupes105191 | ||||
| Node: close105484 | ||||
| Ref: #close105592 | ||||
| Node: close usage107114 | ||||
| Ref: #close-usage107207 | ||||
| Node: codes110020 | ||||
| Ref: #codes110128 | ||||
| Node: commodities110840 | ||||
| Ref: #commodities110967 | ||||
| Node: descriptions111049 | ||||
| Ref: #descriptions111177 | ||||
| Node: diff111481 | ||||
| Ref: #diff111587 | ||||
| Node: files112634 | ||||
| Ref: #files112734 | ||||
| Node: help112881 | ||||
| Ref: #help112981 | ||||
| Node: import114062 | ||||
| Ref: #import114176 | ||||
| Node: Importing balance assignments115098 | ||||
| Ref: #importing-balance-assignments115279 | ||||
| Node: Commodity display styles115928 | ||||
| Ref: #commodity-display-styles116099 | ||||
| Node: incomestatement116228 | ||||
| Ref: #incomestatement116361 | ||||
| Node: notes117706 | ||||
| Ref: #notes117819 | ||||
| Node: payees118187 | ||||
| Ref: #payees118293 | ||||
| Node: prices118713 | ||||
| Ref: #prices118819 | ||||
| Node: print119160 | ||||
| Ref: #print119270 | ||||
| Node: print-unique124066 | ||||
| Ref: #print-unique124192 | ||||
| Node: register124477 | ||||
| Ref: #register124604 | ||||
| Node: Custom register output129053 | ||||
| Ref: #custom-register-output129182 | ||||
| Node: register-match130519 | ||||
| Ref: #register-match130653 | ||||
| Node: rewrite131004 | ||||
| Ref: #rewrite131119 | ||||
| Node: Re-write rules in a file132974 | ||||
| Ref: #re-write-rules-in-a-file133108 | ||||
| Node: Diff output format134318 | ||||
| Ref: #diff-output-format134487 | ||||
| Node: rewrite vs print --auto135579 | ||||
| Ref: #rewrite-vs.-print---auto135758 | ||||
| Node: roi136314 | ||||
| Ref: #roi136412 | ||||
| Node: stats148622 | ||||
| Ref: #stats148721 | ||||
| Node: tags149509 | ||||
| Ref: #tags149607 | ||||
| Node: test150126 | ||||
| Ref: #test150234 | ||||
| Node: Add-on commands150981 | ||||
| Ref: #add-on-commands151098 | ||||
| Node: ui152441 | ||||
| Ref: #ui152529 | ||||
| Node: web152583 | ||||
| Ref: #web152686 | ||||
| Node: iadd152802 | ||||
| Ref: #iadd152913 | ||||
| Node: interest152995 | ||||
| Ref: #interest153102 | ||||
| Node: ENVIRONMENT153342 | ||||
| Ref: #environment153454 | ||||
| Node: FILES154439 | ||||
| Ref: #files-1154542 | ||||
| Node: LIMITATIONS154755 | ||||
| Ref: #limitations154874 | ||||
| Node: TROUBLESHOOTING155616 | ||||
| Ref: #troubleshooting155729 | ||||
| Node: General options17352 | ||||
| Ref: #general-options17477 | ||||
| Node: Command options20878 | ||||
| Ref: #command-options21029 | ||||
| Node: Command arguments21427 | ||||
| Ref: #command-arguments21574 | ||||
| Node: Queries22454 | ||||
| Ref: #queries22609 | ||||
| Node: Special characters in arguments and queries26571 | ||||
| Ref: #special-characters-in-arguments-and-queries26799 | ||||
| Node: More escaping27250 | ||||
| Ref: #more-escaping27412 | ||||
| Node: Even more escaping27708 | ||||
| Ref: #even-more-escaping27902 | ||||
| Node: Less escaping28573 | ||||
| Ref: #less-escaping28735 | ||||
| Node: Unicode characters28980 | ||||
| Ref: #unicode-characters29162 | ||||
| Node: Input files30574 | ||||
| Ref: #input-files30710 | ||||
| Node: Strict mode33009 | ||||
| Ref: #strict-mode33145 | ||||
| Node: Output destination33626 | ||||
| Ref: #output-destination33778 | ||||
| Node: Output format34203 | ||||
| Ref: #output-format34355 | ||||
| Node: Regular expressions36522 | ||||
| Ref: #regular-expressions36679 | ||||
| Node: Smart dates38415 | ||||
| Ref: #smart-dates38566 | ||||
| Node: Report start & end date39927 | ||||
| Ref: #report-start-end-date40099 | ||||
| Node: Report intervals41596 | ||||
| Ref: #report-intervals41761 | ||||
| Node: Period expressions42151 | ||||
| Ref: #period-expressions42311 | ||||
| Node: Depth limiting46684 | ||||
| Ref: #depth-limiting46828 | ||||
| Node: Pivoting47160 | ||||
| Ref: #pivoting47283 | ||||
| Node: Valuation48959 | ||||
| Ref: #valuation49061 | ||||
| Node: -B Cost49750 | ||||
| Ref: #b-cost49854 | ||||
| Node: -V Value49987 | ||||
| Ref: #v-value50133 | ||||
| Node: -X Value in specified commodity50328 | ||||
| Ref: #x-value-in-specified-commodity50527 | ||||
| Node: Valuation date50676 | ||||
| Ref: #valuation-date50844 | ||||
| Node: Market prices51266 | ||||
| Ref: #market-prices51446 | ||||
| Node: --infer-value market prices from transactions52388 | ||||
| Ref: #infer-value-market-prices-from-transactions52637 | ||||
| Node: Valuation commodity53919 | ||||
| Ref: #valuation-commodity54128 | ||||
| Node: Simple valuation examples55354 | ||||
| Ref: #simple-valuation-examples55556 | ||||
| Node: --value Flexible valuation56215 | ||||
| Ref: #value-flexible-valuation56423 | ||||
| Node: More valuation examples58370 | ||||
| Ref: #more-valuation-examples58579 | ||||
| Node: Effect of valuation on reports60584 | ||||
| Ref: #effect-of-valuation-on-reports60772 | ||||
| Node: COMMANDS67791 | ||||
| Ref: #commands67899 | ||||
| Node: accounts69007 | ||||
| Ref: #accounts69105 | ||||
| Node: activity69804 | ||||
| Ref: #activity69914 | ||||
| Node: add70297 | ||||
| Ref: #add70398 | ||||
| Node: aregister73191 | ||||
| Ref: #aregister73303 | ||||
| Node: aregister and custom posting dates74676 | ||||
| Ref: #aregister-and-custom-posting-dates74849 | ||||
| Ref: #output-format-175442 | ||||
| Node: balance75847 | ||||
| Ref: #balance75964 | ||||
| Node: Classic balance report77444 | ||||
| Ref: #classic-balance-report77617 | ||||
| Node: Customising the classic balance report78941 | ||||
| Ref: #customising-the-classic-balance-report79169 | ||||
| Node: Colour support81245 | ||||
| Ref: #colour-support81412 | ||||
| Node: Flat mode81508 | ||||
| Ref: #flat-mode81656 | ||||
| Node: Depth limited balance reports82069 | ||||
| Ref: #depth-limited-balance-reports82254 | ||||
| Node: Percentages82710 | ||||
| Ref: #percentages82867 | ||||
| Node: Sorting by amount84004 | ||||
| Ref: #sorting-by-amount84170 | ||||
| Node: Multicolumn balance report84664 | ||||
| Ref: #multicolumn-balance-report84850 | ||||
| Node: Budget report90447 | ||||
| Ref: #budget-report90590 | ||||
| Node: Budget report start date95879 | ||||
| Ref: #budget-report-start-date96044 | ||||
| Node: Nested budgets97376 | ||||
| Ref: #nested-budgets97521 | ||||
| Ref: #output-format-2101004 | ||||
| Node: balancesheet101165 | ||||
| Ref: #balancesheet101301 | ||||
| Node: balancesheetequity102813 | ||||
| Ref: #balancesheetequity102962 | ||||
| Node: cashflow104038 | ||||
| Ref: #cashflow104166 | ||||
| Node: check-dates105382 | ||||
| Ref: #check-dates105509 | ||||
| Node: check-dupes105788 | ||||
| Ref: #check-dupes105914 | ||||
| Node: close106207 | ||||
| Ref: #close106315 | ||||
| Node: close usage107837 | ||||
| Ref: #close-usage107930 | ||||
| Node: codes110743 | ||||
| Ref: #codes110851 | ||||
| Node: commodities111563 | ||||
| Ref: #commodities111690 | ||||
| Node: descriptions111772 | ||||
| Ref: #descriptions111900 | ||||
| Node: diff112204 | ||||
| Ref: #diff112310 | ||||
| Node: files113357 | ||||
| Ref: #files113457 | ||||
| Node: help113604 | ||||
| Ref: #help113704 | ||||
| Node: import114785 | ||||
| Ref: #import114899 | ||||
| Node: Importing balance assignments115821 | ||||
| Ref: #importing-balance-assignments116002 | ||||
| Node: Commodity display styles116651 | ||||
| Ref: #commodity-display-styles116822 | ||||
| Node: incomestatement116951 | ||||
| Ref: #incomestatement117084 | ||||
| Node: notes118429 | ||||
| Ref: #notes118542 | ||||
| Node: payees118910 | ||||
| Ref: #payees119016 | ||||
| Node: prices119436 | ||||
| Ref: #prices119542 | ||||
| Node: print119883 | ||||
| Ref: #print119993 | ||||
| Node: print-unique124789 | ||||
| Ref: #print-unique124915 | ||||
| Node: register125200 | ||||
| Ref: #register125327 | ||||
| Node: Custom register output129776 | ||||
| Ref: #custom-register-output129905 | ||||
| Node: register-match131242 | ||||
| Ref: #register-match131376 | ||||
| Node: rewrite131727 | ||||
| Ref: #rewrite131842 | ||||
| Node: Re-write rules in a file133697 | ||||
| Ref: #re-write-rules-in-a-file133831 | ||||
| Node: Diff output format135041 | ||||
| Ref: #diff-output-format135210 | ||||
| Node: rewrite vs print --auto136302 | ||||
| Ref: #rewrite-vs.-print---auto136481 | ||||
| Node: roi137037 | ||||
| Ref: #roi137135 | ||||
| Node: stats149345 | ||||
| Ref: #stats149444 | ||||
| Node: tags150232 | ||||
| Ref: #tags150330 | ||||
| Node: test150849 | ||||
| Ref: #test150957 | ||||
| Node: Add-on commands151704 | ||||
| Ref: #add-on-commands151821 | ||||
| Node: ui153164 | ||||
| Ref: #ui153252 | ||||
| Node: web153306 | ||||
| Ref: #web153409 | ||||
| Node: iadd153525 | ||||
| Ref: #iadd153636 | ||||
| Node: interest153718 | ||||
| Ref: #interest153825 | ||||
| Node: ENVIRONMENT154065 | ||||
| Ref: #environment154177 | ||||
| Node: FILES155162 | ||||
| Ref: #files-1155265 | ||||
| Node: LIMITATIONS155478 | ||||
| Ref: #limitations155597 | ||||
| Node: TROUBLESHOOTING156339 | ||||
| Ref: #troubleshooting156452 | ||||
|  | ||||
| End Tag Table | ||||
| 
 | ||||
|  | ||||
| @ -464,6 +464,10 @@ OPTIONS | ||||
|               disable balance assertion checks (note: does not disable balance | ||||
|               assignments) | ||||
| 
 | ||||
|        -s --strict | ||||
|               do extra error checking (check that all posted accounts are  de- | ||||
|               clared) | ||||
| 
 | ||||
|        General reporting options: | ||||
| 
 | ||||
|        -b --begin=DATE | ||||
| @ -488,7 +492,7 @@ OPTIONS | ||||
|               multiperiod/multicolumn report by year | ||||
| 
 | ||||
|        -p --period=PERIODEXP | ||||
|               set start date, end date, and/or reporting interval all at  once | ||||
|               set  start date, end date, and/or reporting interval all at once | ||||
|               using period expressions syntax | ||||
| 
 | ||||
|        --date2 | ||||
| @ -511,21 +515,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/selling amount at transaction time | ||||
| 
 | ||||
|        -V --market | ||||
|               convert  amounts to their market value in default valuation com- | ||||
|               convert amounts to their market value in default valuation  com- | ||||
|               modities | ||||
| 
 | ||||
|        -X --exchange=COMM | ||||
|               convert amounts to their market value in commodity COMM | ||||
| 
 | ||||
|        --value | ||||
|               convert amounts to cost or  market  value,  more  flexibly  than | ||||
|               convert  amounts  to  cost  or  market value, more flexibly than | ||||
|               -B/-V/-X | ||||
| 
 | ||||
|        --infer-value | ||||
| @ -534,15 +538,15 @@ OPTIONS | ||||
|        --auto apply automated posting rules to modify transactions. | ||||
| 
 | ||||
|        --forecast | ||||
|               generate  future  transactions  from periodic transaction rules, | ||||
|               for the next 6 months or till report end date.   In  hledger-ui, | ||||
|               generate future transactions from  periodic  transaction  rules, | ||||
|               for  the  next 6 months or till report end date.  In hledger-ui, | ||||
|               also make ordinary future transactions visible. | ||||
| 
 | ||||
|        --color=WHEN (or --colour=WHEN) | ||||
|               Should  color-supporting  commands  use ANSI color codes in text | ||||
|               output.  'auto' (default): whenever stdout seems to be a  color- | ||||
|               supporting  terminal.  'always' or 'yes': always, useful eg when | ||||
|               piping output into  'less  -R'.   'never'  or  'no':  never.   A | ||||
|               Should color-supporting commands use ANSI color  codes  in  text | ||||
|               output.   'auto' (default): whenever stdout seems to be a color- | ||||
|               supporting terminal.  'always' or 'yes': always, useful eg  when | ||||
|               piping  output  into  'less  -R'.   'never'  or  'no': never.  A | ||||
|               NO_COLOR environment variable overrides this. | ||||
| 
 | ||||
|        When a reporting option appears more than once in the command line, the | ||||
| @ -554,26 +558,26 @@ OPTIONS | ||||
|        To see options for a particular command, including command-specific op- | ||||
|        tions, run: hledger COMMAND -h. | ||||
| 
 | ||||
|        Command-specific  options  must  be written after the command name, eg: | ||||
|        Command-specific options must be written after the  command  name,  eg: | ||||
|        hledger print -x. | ||||
| 
 | ||||
|        Additionally, if the command is an addon, you may need to put  its  op- | ||||
|        tions  after  a  double-hyphen, eg: hledger ui -- --watch.  Or, you can | ||||
|        Additionally,  if  the command is an addon, you may need to put its op- | ||||
|        tions after a double-hyphen, eg: hledger ui -- --watch.   Or,  you  can | ||||
|        run the addon executable directly: hledger-ui --watch. | ||||
| 
 | ||||
|    Command arguments | ||||
|        Most hledger commands accept arguments after the  command  name,  which | ||||
|        Most  hledger  commands  accept arguments after the command name, which | ||||
|        are often a query, filtering the data in some way. | ||||
| 
 | ||||
|        You  can  save  a  set of command line options/arguments in a file, and | ||||
|        then reuse them by writing @FILENAME as a command line  argument.   Eg: | ||||
|        hledger  bal  @foo.args.   (To prevent this, eg if you have an argument | ||||
|        that begins with a literal @, precede it with --, eg:  hledger  bal  -- | ||||
|        You can save a set of command line options/arguments  in  a  file,  and | ||||
|        then  reuse  them by writing @FILENAME as a command line argument.  Eg: | ||||
|        hledger bal @foo.args.  (To prevent this, eg if you  have  an  argument | ||||
|        that  begins  with  a literal @, precede it with --, eg: hledger bal -- | ||||
|        @ARG). | ||||
| 
 | ||||
|        Inside  the  argument file, each line should contain just one option or | ||||
|        Inside the argument file, each line should contain just one  option  or | ||||
|        argument.  Avoid the use of spaces, except inside quotes (or you'll see | ||||
|        a  confusing  error).  Between a flag and its argument, use = (or noth- | ||||
|        a confusing error).  Between a flag and its argument, use =  (or  noth- | ||||
|        ing).  Bad: | ||||
| 
 | ||||
|               assets depth:2 | ||||
| @ -585,7 +589,7 @@ OPTIONS | ||||
|               depth:2 | ||||
|               -X=USD | ||||
| 
 | ||||
|        For special characters (see below), use one less level of quoting  than | ||||
|        For  special characters (see below), use one less level of quoting than | ||||
|        you would at the command prompt.  Bad: | ||||
| 
 | ||||
|               -X"$" | ||||
| @ -597,16 +601,16 @@ OPTIONS | ||||
|        See also: Save frequently used options. | ||||
| 
 | ||||
|    Queries | ||||
|        One  of  hledger's strengths is being able to quickly report on precise | ||||
|        subsets of your data.  Most commands accept an optional  query  expres- | ||||
|        sion,  written  as arguments after the command name, to filter the data | ||||
|        by date, account name or other criteria.  The syntax is  similar  to  a | ||||
|        One of hledger's strengths is being able to quickly report  on  precise | ||||
|        subsets  of  your data.  Most commands accept an optional query expres- | ||||
|        sion, written as arguments after the command name, to filter  the  data | ||||
|        by  date,  account  name or other criteria.  The syntax is similar to a | ||||
|        web search: one or more space-separated search terms, quotes to enclose | ||||
|        whitespace, prefixes to match specific fields, a not: prefix to  negate | ||||
|        whitespace,  prefixes to match specific fields, a not: prefix to negate | ||||
|        the match. | ||||
| 
 | ||||
|        We  do  not yet support arbitrary boolean combinations of search terms; | ||||
|        instead most commands show transactions/postings/accounts  which  match | ||||
|        We do not yet support arbitrary boolean combinations of  search  terms; | ||||
|        instead  most  commands show transactions/postings/accounts which match | ||||
|        (or negatively match): | ||||
| 
 | ||||
|        o any of the description terms AND | ||||
| @ -627,31 +631,31 @@ OPTIONS | ||||
| 
 | ||||
|        o match all the other terms. | ||||
| 
 | ||||
|        The  following  kinds  of search terms can be used.  Remember these can | ||||
|        The following kinds of search terms can be used.   Remember  these  can | ||||
|        also be prefixed with not:, eg to exclude a particular subaccount. | ||||
| 
 | ||||
|        REGEX, acct:REGEX | ||||
|               match account names by this regular expression.  (With  no  pre- | ||||
|               match  account  names by this regular expression.  (With no pre- | ||||
|               fix, acct: is assumed.)  same as above | ||||
| 
 | ||||
|        amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N | ||||
|               match  postings with a single-commodity amount that is equal to, | ||||
|               less than, or greater than N.  (Multi-commodity amounts are  not | ||||
|               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, | ||||
|               are compared.  Otherwise, the absolute magnitudes are  compared, | ||||
|               ignoring sign. | ||||
| 
 | ||||
|        code:REGEX | ||||
|               match by transaction code (eg check number) | ||||
| 
 | ||||
|        cur:REGEX | ||||
|               match postings or transactions including any amounts whose  cur- | ||||
|               rency/commodity  symbol  is fully matched by REGEX.  (For a par- | ||||
|               match  postings or transactions including any amounts whose cur- | ||||
|               rency/commodity symbol is fully matched by REGEX.  (For  a  par- | ||||
|               tial match, use .*REGEX.*).  Note, to match characters which are | ||||
|               regex-significant, like the dollar sign ($), you need to prepend | ||||
|               \.  And when using the command line you need  to  add  one  more | ||||
|               level  of  quoting  to hide it from the shell, so eg do: hledger | ||||
|               \.   And  when  using  the command line you need to add one more | ||||
|               level of quoting to hide it from the shell, so  eg  do:  hledger | ||||
|               print cur:'\$' or hledger print cur:\\$. | ||||
| 
 | ||||
|        desc:REGEX | ||||
| @ -659,20 +663,20 @@ OPTIONS | ||||
| 
 | ||||
|        date:PERIODEXPR | ||||
|               match dates within the specified period.  PERIODEXPR is a period | ||||
|               expression  (with  no  report  interval).   Examples: date:2016, | ||||
|               date:thismonth,  date:2000/2/1-2/15,  date:lastweek-.   If   the | ||||
|               --date2  command  line  flag  is present, this matches secondary | ||||
|               expression (with  no  report  interval).   Examples:  date:2016, | ||||
|               date:thismonth,   date:2000/2/1-2/15,  date:lastweek-.   If  the | ||||
|               --date2 command line flag is  present,  this  matches  secondary | ||||
|               dates instead. | ||||
| 
 | ||||
|        date2:PERIODEXPR | ||||
|               match secondary dates within the specified period. | ||||
| 
 | ||||
|        depth:N | ||||
|               match (or display, depending on command) accounts  at  or  above | ||||
|               match  (or  display,  depending on command) accounts at or above | ||||
|               this depth | ||||
| 
 | ||||
|        note:REGEX | ||||
|               match  transaction  notes  (part  of  description right of |, or | ||||
|               match transaction notes (part of  description  right  of  |,  or | ||||
|               whole description when there's no |) | ||||
| 
 | ||||
|        payee:REGEX | ||||
| @ -686,35 +690,35 @@ OPTIONS | ||||
|               match unmarked, pending, or cleared transactions respectively | ||||
| 
 | ||||
|        tag:REGEX[=REGEX] | ||||
|               match  by  tag  name,  and optionally also by tag value.  Note a | ||||
|               tag: query is considered to match a transaction  if  it  matches | ||||
|               any  of  the  postings.  Also remember that postings inherit the | ||||
|               match by tag name, and optionally also by  tag  value.   Note  a | ||||
|               tag:  query  is  considered to match a transaction if it matches | ||||
|               any of the postings.  Also remember that  postings  inherit  the | ||||
|               tags of their parent transaction. | ||||
| 
 | ||||
|        The following special search term is used automatically in hledger-web, | ||||
|        only: | ||||
| 
 | ||||
|        inacct:ACCTNAME | ||||
|               tells  hledger-web to show the transaction register for this ac- | ||||
|               tells hledger-web to show the transaction register for this  ac- | ||||
|               count.  Can be filtered further with acct etc. | ||||
| 
 | ||||
|        Some of these can also be expressed as command-line options (eg depth:2 | ||||
|        is  equivalent  to --depth 2).  Generally you can mix options and query | ||||
|        arguments, and the resulting query will be their intersection  (perhaps | ||||
|        is equivalent to --depth 2).  Generally you can mix options  and  query | ||||
|        arguments,  and the resulting query will be their intersection (perhaps | ||||
|        excluding the -p/--period option). | ||||
| 
 | ||||
|    Special characters in arguments and queries | ||||
|        In shell command lines, option and argument values which contain "prob- | ||||
|        lematic" characters, ie spaces, and also characters significant to your | ||||
|        shell  such as <, >, (, ), | and $, should be escaped by enclosing them | ||||
|        shell such as <, >, (, ), | and $, should be escaped by enclosing  them | ||||
|        in quotes or by writing backslashes before the characters.  Eg: | ||||
| 
 | ||||
|        hledger  register  -p  'last  year'   "accounts   receivable   (receiv- | ||||
|        hledger   register   -p   'last  year'  "accounts  receivable  (receiv- | ||||
|        able|payable)" amt:\>100. | ||||
| 
 | ||||
|    More escaping | ||||
|        Characters significant both to the shell and in regular expressions may | ||||
|        need one extra level of escaping.  These include parentheses, the  pipe | ||||
|        need  one extra level of escaping.  These include parentheses, the pipe | ||||
|        symbol and the dollar sign.  Eg, to match the dollar symbol, bash users | ||||
|        should do: | ||||
| 
 | ||||
| @ -725,9 +729,9 @@ OPTIONS | ||||
|        hledger balance cur:\\$ | ||||
| 
 | ||||
|    Even more escaping | ||||
|        When hledger runs an addon executable (eg you type hledger ui,  hledger | ||||
|        runs  hledger-ui),  it  de-escapes  command-line  options and arguments | ||||
|        once, so you might need to triple-escape.  Eg in bash, running  the  ui | ||||
|        When  hledger runs an addon executable (eg you type hledger ui, hledger | ||||
|        runs hledger-ui), it  de-escapes  command-line  options  and  arguments | ||||
|        once,  so  you might need to triple-escape.  Eg in bash, running the ui | ||||
|        command and matching the dollar sign, it's: | ||||
| 
 | ||||
|        hledger ui cur:'\\$' | ||||
| @ -752,8 +756,8 @@ OPTIONS | ||||
|        hledger-ui cur:\\$ | ||||
| 
 | ||||
|    Less escaping | ||||
|        Inside  an  argument  file,  or  in  the  search field of hledger-ui or | ||||
|        hledger-web, or at a GHCI prompt, you need one less level  of  escaping | ||||
|        Inside an argument file, or  in  the  search  field  of  hledger-ui  or | ||||
|        hledger-web,  or  at a GHCI prompt, you need one less level of escaping | ||||
|        than at the command line.  And backslashes may work better than quotes. | ||||
|        Eg: | ||||
| 
 | ||||
| @ -762,41 +766,41 @@ OPTIONS | ||||
|    Unicode characters | ||||
|        hledger is expected to handle non-ascii characters correctly: | ||||
| 
 | ||||
|        o they should be parsed correctly in input files  and  on  the  command | ||||
|          line,  by all hledger tools (add, iadd, hledger-web's search/add/edit | ||||
|        o they  should  be  parsed  correctly in input files and on the command | ||||
|          line, by all hledger tools (add, iadd, hledger-web's  search/add/edit | ||||
|          forms, etc.) | ||||
| 
 | ||||
|        o they should be displayed correctly by  all  hledger  tools,  and  on- | ||||
|        o they  should  be  displayed  correctly  by all hledger tools, and on- | ||||
|          screen alignment should be preserved. | ||||
| 
 | ||||
|        This requires a well-configured environment.  Here are some tips: | ||||
| 
 | ||||
|        o A  system  locale must be configured, and it must be one that can de- | ||||
|          code the characters being used.  In bash, you can set a  locale  like | ||||
|          this:  export LANG=en_US.UTF-8.  There are some more details in Trou- | ||||
|          bleshooting.  This step is essential - without it, hledger will  quit | ||||
|          on  encountering a non-ascii character (as with all GHC-compiled pro- | ||||
|        o A system locale must be configured, and it must be one that  can  de- | ||||
|          code  the  characters being used.  In bash, you can set a locale like | ||||
|          this: export LANG=en_US.UTF-8.  There are some more details in  Trou- | ||||
|          bleshooting.   This step is essential - without it, hledger will quit | ||||
|          on encountering a non-ascii character (as with all GHC-compiled  pro- | ||||
|          grams). | ||||
| 
 | ||||
|        o your terminal software (eg  Terminal.app,  iTerm,  CMD.exe,  xterm..) | ||||
|        o your  terminal  software  (eg  Terminal.app, iTerm, CMD.exe, xterm..) | ||||
|          must support unicode | ||||
| 
 | ||||
|        o the terminal must be using a font which includes the required unicode | ||||
|          glyphs | ||||
| 
 | ||||
|        o the terminal should be configured to display wide characters as  dou- | ||||
|        o the  terminal should be configured to display wide characters as dou- | ||||
|          ble width (for report alignment) | ||||
| 
 | ||||
|        o on  Windows, for best results you should run hledger in the same kind | ||||
|          of environment in which it was built.  Eg hledger built in the  stan- | ||||
|          dard  CMD.EXE  environment  (like  the binaries on our download page) | ||||
|          might show display problems when run in a cygwin  or  msys  terminal, | ||||
|        o on Windows, for best results you should run hledger in the same  kind | ||||
|          of  environment in which it was built.  Eg hledger built in the stan- | ||||
|          dard CMD.EXE environment (like the binaries  on  our  download  page) | ||||
|          might  show  display  problems when run in a cygwin or msys terminal, | ||||
|          and vice versa.  (See eg #961). | ||||
| 
 | ||||
|    Input files | ||||
|        hledger reads transactions from a data file (and the add command writes | ||||
|        to it).  By default this file is $HOME/.hledger.journal (or on Windows, | ||||
|        something  like C:/Users/USER/.hledger.journal).  You can override this | ||||
|        something like C:/Users/USER/.hledger.journal).  You can override  this | ||||
|        with the $LEDGER_FILE environment variable: | ||||
| 
 | ||||
|               $ setenv LEDGER_FILE ~/finance/2016.journal | ||||
| @ -810,49 +814,67 @@ OPTIONS | ||||
| 
 | ||||
|               $ cat some.journal | hledger -f- | ||||
| 
 | ||||
|        Usually the data file is in hledger's journal format, but it can be  in | ||||
|        Usually  the data file is in hledger's journal format, but it can be in | ||||
|        any of the supported file formats, which currently are: | ||||
| 
 | ||||
|        Reader:    Reads:                                    Used  for  file  exten- | ||||
|                                                             sions: | ||||
|        ----------------------------------------------------------------------------- | ||||
|        journal    hledger journal files and  some  Ledger   .journal   .j  .hledger | ||||
|        journal    hledger  journal  files and some Ledger   .journal  .j   .hledger | ||||
|                   journals, for transactions                .ledger | ||||
|        time-      timeclock  files, for precise time log-   .timeclock | ||||
|        time-      timeclock files, for precise time  log-   .timeclock | ||||
|        clock      ging | ||||
|        timedot    timedot  files,  for  approximate  time   .timedot | ||||
|                   logging | ||||
|        csv        comma/semicolon/tab/other-separated       .csv .ssv .tsv | ||||
|                   values, for data import | ||||
| 
 | ||||
|        hledger detects the format automatically based on the  file  extensions | ||||
|        shown  above.   If  it  can't  recognise the file extension, it assumes | ||||
|        journal format.  So for non-journal files,  it's  important  to  use  a | ||||
|        hledger  detects  the format automatically based on the file extensions | ||||
|        shown above.  If it can't recognise  the  file  extension,  it  assumes | ||||
|        journal  format.   So  for  non-journal  files, it's important to use a | ||||
|        recognised file extension, so as to either read successfully or to show | ||||
|        relevant error messages. | ||||
| 
 | ||||
|        When you can't ensure the right file extension, not to worry:  you  can | ||||
|        When  you  can't ensure the right file extension, not to worry: you can | ||||
|        force a specific reader/format by prefixing the file path with the for- | ||||
|        mat and a colon.  Eg to read a .dat file as csv: | ||||
| 
 | ||||
|               $ hledger -f csv:/some/csv-file.dat stats | ||||
|               $ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:- | ||||
| 
 | ||||
|        You can specify multiple -f options, to read multiple files as one  big | ||||
|        You  can specify multiple -f options, to read multiple files as one big | ||||
|        journal.  There are some limitations with this: | ||||
| 
 | ||||
|        o directives in one file will not affect the other files | ||||
| 
 | ||||
|        o balance  assertions  will  not see any account balances from previous | ||||
|        o balance assertions will not see any account  balances  from  previous | ||||
|          files | ||||
| 
 | ||||
|        If you need either of those things, you can | ||||
| 
 | ||||
|        o use a single parent file which includes the others | ||||
| 
 | ||||
|        o or concatenate the files into one before reading, eg:  cat  a.journal | ||||
|        o or  concatenate  the files into one before reading, eg: cat a.journal | ||||
|          b.journal | hledger -f- CMD. | ||||
| 
 | ||||
|    Strict mode | ||||
|        hledger checks input files for valid data.  By default, the most impor- | ||||
|        tant  errors  are  detected,  while  still accepting easy journal files | ||||
|        without a lot of declarations: | ||||
| 
 | ||||
|        o Are the input files parseable, with valid syntax ? | ||||
| 
 | ||||
|        o Are all transactions balanced ? | ||||
| 
 | ||||
|        o Do all balance assertions pass ? | ||||
| 
 | ||||
|        With the -s/--strict flag, additional checks are performed: | ||||
| 
 | ||||
|        o Are all accounts referenced by transactions declared with an  account | ||||
|          directive ? | ||||
| 
 | ||||
|        experimental. | ||||
| 
 | ||||
|    Output destination | ||||
|        hledger commands send their output to the terminal by default.  You can | ||||
|        of course redirect this, eg into a file, using standard shell syntax: | ||||
| @ -981,6 +1003,7 @@ OPTIONS | ||||
|        last/this/next             -1, 0, 1 periods from the current period | ||||
|        day/week/month/quar- | ||||
|        ter/year | ||||
| 
 | ||||
|        20181201                   8 digit YYYYMMDD with valid year month and day | ||||
|        201812                     6 digit YYYYMM with valid year and month | ||||
| 
 | ||||
| @ -1071,7 +1094,6 @@ OPTIONS | ||||
|                             1, 2009 | ||||
|        -p "from 2009/1"     the same | ||||
|        -p "from 2009"       the same | ||||
| 
 | ||||
|        -p "to 2009"         everything  before january | ||||
|                             1, 2009 | ||||
| 
 | ||||
| @ -1117,6 +1139,7 @@ OPTIONS | ||||
|        2008/11/25" | ||||
|        -p    "quarterly     from   starts  on  2009/04/01,  ends on 2009/06/30, | ||||
|        2009-05-05 to 2009-06-01"   which are first and last days of Q2 2009 | ||||
| 
 | ||||
|        -p      "yearly      from   starts on 2009/01/01, first day of 2009 | ||||
|        2009-12-29" | ||||
| 
 | ||||
| @ -1569,8 +1592,6 @@ OPTIONS | ||||
|        balance | ||||
|        (bs,   bse, | ||||
|        cf, is) | ||||
| 
 | ||||
| 
 | ||||
|        balance       sums of costs   value at  re-    not     sup-   value at  re-   value      at | ||||
|        changes                       port  end  or    ported         port or jour-   DATE/today of | ||||
|                                      today of sums                   nal  end   of   sums of post- | ||||
| @ -1593,6 +1614,8 @@ OPTIONS | ||||
|                      start           postings  be-                   postings  be- | ||||
|                                      fore   report                   fore   report | ||||
|                                      start                           start | ||||
| 
 | ||||
| 
 | ||||
|        balance       sums of costs   same       as    not     sup-   balance         value      at | ||||
|        changes       of   postings   --value=end      ported         change     in   DATE/today of | ||||
|        (bal,   is,   in period                                       each  period,   sums of post- | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user