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