Together with -E, this shows a balance for both used and declared accounts (excluding empty parent accounts, which are usually not wanted in list-mode reports). This is somewhat consistent with --declared in the accounts and payees commands, except for the leaf account restriction. The idea of this is to be able to see a useful "complete" balance report, even when you don't have transactions in all of your declared accounts yet. I mainly want this for hledger-ui, but there's no harm in exposing it in the balance CLI as well.
		
			
				
	
	
		
			200 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 1.
 | |
| hledger -f sample.journal balance --tree
 | |
| >>>
 | |
|                  $-1  assets
 | |
|                   $1    bank:saving
 | |
|                  $-2    cash
 | |
|                   $2  expenses
 | |
|                   $1    food
 | |
|                   $1    supplies
 | |
|                  $-2  income
 | |
|                  $-1    gifts
 | |
|                  $-1    salary
 | |
|                   $1  liabilities:debts
 | |
| --------------------
 | |
|                    0  
 | |
| >>>=0
 | |
| 
 | |
| # 2.
 | |
| hledger -f sample.journal balance --tree o
 | |
| >>>
 | |
|                   $1  expenses:food
 | |
|                  $-2  income
 | |
|                  $-1    gifts
 | |
|                  $-1    salary
 | |
| --------------------
 | |
|                  $-1  
 | |
| >>>=0
 | |
| 
 | |
| # 3. Period reporting works for a specific year
 | |
| hledger -f - balance -b 2016 -e 2017 -N
 | |
| <<<
 | |
| 2015/10/10 Client A | Invoice #1
 | |
|     assets:receivables      $10,000.00
 | |
|     revenue:clients:A      -$10,000.00
 | |
| 
 | |
| 2015/11/02 Deposit | Invoice #1
 | |
|     assets:checking         $10,000.00
 | |
|     assets:receivables     -$10,000.00
 | |
| 
 | |
| 2016/02/01 Client B | Invoice #2
 | |
|     assets:receivables          $10.00
 | |
|     revenue:clients:B          -$10.00
 | |
| 
 | |
| 2016/02/15 ACME | Hosting Costs
 | |
|     expense:hosting             $50.00
 | |
|     assets:checking            -$50.00
 | |
| 
 | |
| 2016/03/01 Deposit | Invoice #2
 | |
|     assets:checking             $10.00
 | |
|     assets:receivables         -$10.00
 | |
| >>>
 | |
|              $-40.00  assets:checking
 | |
|               $50.00  expense:hosting
 | |
|              $-10.00  revenue:clients:B
 | |
| >>>2
 | |
| >>>= 0
 | |
| 
 | |
| # 4. Period reporting works for two years
 | |
| hledger -f - balance --tree -b 2015 -e 2017 -N
 | |
| <<<
 | |
| 2015/10/10 Client A | Invoice #1
 | |
|     assets:receivables      $10,000.00
 | |
|     revenue:clients:A      -$10,000.00
 | |
| 
 | |
| 2015/11/02 Deposit | Invoice #1
 | |
|     assets:checking         $10,000.00
 | |
|     assets:receivables     -$10,000.00
 | |
| 
 | |
| 2016/02/01 Client B | Invoice #2
 | |
|     assets:receivables          $10.00
 | |
|     revenue:clients:B          -$10.00
 | |
| 
 | |
| 2016/02/15 ACME | Hosting Costs
 | |
|     expense:hosting             $50.00
 | |
|     assets:checking            -$50.00
 | |
| 
 | |
| 2016/03/01 Deposit | Invoice #2
 | |
|     assets:checking             $10.00
 | |
|     assets:receivables         -$10.00
 | |
| >>>
 | |
|            $9,960.00  assets:checking
 | |
|               $50.00  expense:hosting
 | |
|          $-10,010.00  revenue:clients
 | |
|          $-10,000.00    A
 | |
|              $-10.00    B
 | |
| >>>2
 | |
| >>>= 0
 | |
| 
 | |
| # 5. Period reporting works for one month
 | |
| hledger -f - balance --tree -b 2015/11 -e 2015/12 -N
 | |
| <<<
 | |
| 2015/10/10 Client A | Invoice #1
 | |
|     assets:receivables      $10,000.00
 | |
|     revenue:clients:A      -$10,000.00
 | |
| 
 | |
| 2015/11/02 Deposit | Invoice #1
 | |
|     assets:checking         $10,000.00
 | |
|     assets:receivables     -$10,000.00
 | |
| 
 | |
| 2016/02/01 Client B | Invoice #2
 | |
|     assets:receivables          $10.00
 | |
|     revenue:clients:B          -$10.00
 | |
| 
 | |
| 2016/02/15 ACME | Hosting Costs
 | |
|     expense:hosting             $50.00
 | |
|     assets:checking            -$50.00
 | |
| 
 | |
| 2016/03/01 Deposit | Invoice #2
 | |
|     assets:checking             $10.00
 | |
|     assets:receivables         -$10.00
 | |
| >>>
 | |
|                    0  assets
 | |
|           $10,000.00    checking
 | |
|          $-10,000.00    receivables
 | |
| >>>2
 | |
| >>>= 0
 | |
| 
 | |
| # 6. Period reporting works for one month in another year
 | |
| hledger -f - balance -b 2016/10 -e 2016/11
 | |
| <<<
 | |
| 2015/10/10 Client A | Invoice #1
 | |
|     assets:receivables      $10,000.00
 | |
|     revenue:clients:A      -$10,000.00
 | |
| 
 | |
| 2015/11/02 Deposit | Invoice #1
 | |
|     assets:checking         $10,000.00
 | |
|     assets:receivables     -$10,000.00
 | |
| 
 | |
| 2016/02/01 Client B | Invoice #2
 | |
|     assets:receivables          $10.00
 | |
|     revenue:clients:B          -$10.00
 | |
| 
 | |
| 2016/02/15 ACME | Hosting Costs
 | |
|     expense:hosting             $50.00
 | |
|     assets:checking            -$50.00
 | |
| 
 | |
| 2016/03/01 Deposit | Invoice #2
 | |
|     assets:checking             $10.00
 | |
|     assets:receivables         -$10.00
 | |
| >>>
 | |
| --------------------
 | |
|                    0  
 | |
| >>>2
 | |
| >>>= 0
 | |
| 
 | |
| # 7. Default CSV output. 
 | |
| hledger -f - balance -N --output-format=csv
 | |
| <<<
 | |
| 2021-01-01 Test
 | |
|     Assets:ABC   "AB.C" 1
 | |
|     Assets:Cash       -$1
 | |
| >>>
 | |
| "account","balance"
 | |
| "Assets:ABC","""AB.C"" 1"
 | |
| "Assets:Cash","$-1"
 | |
| >>>= 0
 | |
| 
 | |
| # 8. CSV output always shows full account names, even in tree mode (#1565).
 | |
| hledger -f - balance -N --output-format=csv --tree
 | |
| <<<
 | |
| 2021-01-01 Test
 | |
|     Assets:ABC   "AB.C" 1
 | |
|     Assets:Cash       -$1
 | |
| >>>
 | |
| "account","balance"
 | |
| "Assets","$-1, ""AB.C"" 1"
 | |
| "Assets:ABC","""AB.C"" 1"
 | |
| "Assets:Cash","$-1"
 | |
| >>>= 0
 | |
| 
 | |
| # 9. --declared includes all declared leaf accounts, even if they have no postings.
 | |
| # They are filtered, depth-clipped, and form trees like the others.
 | |
| hledger -f - balance -NE --declared --tree --depth 2 a
 | |
| <<<
 | |
| account a
 | |
| account a:aa
 | |
| account a:ab
 | |
| account a:ac:aca
 | |
| account b
 | |
| >>>
 | |
|                    0  a
 | |
|                    0    aa
 | |
|                    0    ab
 | |
| >>>= 0
 | |
| 
 | |
| # 10. In list mode we can see that non-leaf declared accounts are excluded.
 | |
| hledger -f - balance -NE --declared --flat
 | |
| <<<
 | |
| account a
 | |
| account a:aa
 | |
| account a:ab
 | |
| account a:ac:aca
 | |
| account b
 | |
| >>>
 | |
|                    0  a:aa
 | |
|                    0  a:ab
 | |
|                    0  a:ac:aca
 | |
|                    0  b
 | |
| >>>= 0
 |