# multi-column balance reports # 1. Here are the postings used in most tests below: hledgerdev -f balance-multicol.journal register >>> 2012/12/31 (assets:checking) 10 10 2013/01/01 (assets:checking) 1 11 2013/01/15 (assets:checking) -1 10 2013/02/01 (assets:cash) 1 11 2013/02/02 (assets) 1 12 2013/03/01 (assets:checking) 1 13 >>>=0 # 2. A period balance (flow) report. --no-total also works but isn't pretty. hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --no-total >>> Change of balance (flow): || 2013/01/01-2013/01/31 2013/02/01-2013/02/28 2013/03/01-2013/03/31 =================++====================================================================== assets || 0 1 0 assets:cash || 0 1 0 assets:checking || 0 0 1 -----------------++---------------------------------------------------------------------- || >>>=0 # 3. With --empty, includes leading/trailing empty periods #hledgerdev -f balance-multicol.journal balance -p 'quarterly in 2013' --empty hledgerdev -f - balance -p 'quarterly in 2013' --empty <<< 2012/12/31 (a) 10 2013/1/1 (a) 1 2013/3/1 (a) 1 >>> Change of balance (flow): || 2013/01/01-2013/03/31 2013/04/01-2013/06/30 2013/07/01-2013/09/30 2013/10/01-2013/12/31 ===++============================================================================================= a || 2 0 0 0 ---++--------------------------------------------------------------------------------------------- || 2 0 0 0 >>>=0 # 4. A cumulative ending balance report. Column totals are the sum of # the highest-level displayed accounts (here, assets). hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --cumulative >>> Ending balance (cumulative): || 2013/01/31 2013/02/28 2013/03/31 =================++===================================== assets || 0 1 1 assets:cash || 0 1 1 assets:checking || 0 0 1 -----------------++------------------------------------- || 0 2 3 >>>=0 # 5. With the assets:cash account excluded. As with a single-column # balance --flat report, or ledger's balance --flat, assets' balance # includes the displayed subaccount and not the excluded one. hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --cumulative not:cash >>> Ending balance (cumulative): || 2013/01/31 2013/02/28 2013/03/31 =================++===================================== assets || 0 1 1 assets:checking || 0 0 1 -----------------++------------------------------------- || 0 1 2 >>>=0 # 6. A historical ending balance report. hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --historical >>> Ending balance (historical): || 2013/01/31 2013/02/28 2013/03/31 =================++===================================== assets || 0 1 1 assets:cash || 0 1 1 assets:checking || 10 10 11 -----------------++------------------------------------- || 10 12 13 >>>=0 # 7. With top-level accounts excluded. As always, column totals are the sum of # the highest-level displayed accounts, now assets:cash and assets:checking. hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' not:assets$ >>> Change of balance (flow): || 2013/01/01-2013/01/31 2013/02/01-2013/02/28 2013/03/01-2013/03/31 =================++====================================================================== assets:cash || 0 1 0 assets:checking || 0 0 1 -----------------++---------------------------------------------------------------------- || 0 1 1 >>>=0 # 8. cumulative: hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' not:assets$ --cumulative >>> Ending balance (cumulative): || 2013/01/31 2013/02/28 2013/03/31 =================++===================================== assets:cash || 0 1 1 assets:checking || 0 0 1 -----------------++------------------------------------- || 0 1 2 >>>=0 # 9. historical hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --historical >>> Ending balance (historical): || 2013/01/31 2013/02/28 2013/03/31 =================++===================================== assets || 0 1 1 assets:cash || 0 1 1 assets:checking || 10 10 11 -----------------++------------------------------------- || 10 12 13 >>>=0 # --depth # 10. A flow report with depth limiting. The depth limit aggregates the three accounts as "assets". hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --depth 1 >>> Change of balance (flow): || 2013/01/01-2013/01/31 2013/02/01-2013/02/28 2013/03/01-2013/03/31 ========++====================================================================== assets || 0 2 1 --------++---------------------------------------------------------------------- || 0 2 1 >>>=0 # 11. As above, but postings in the top-level assets account have been excluded. hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --depth 1 assets: >>> Change of balance (flow): || 2013/01/01-2013/01/31 2013/02/01-2013/02/28 2013/03/01-2013/03/31 ========++====================================================================== assets || 0 1 1 --------++---------------------------------------------------------------------- || 0 1 1 >>>=0 # 12. A cumulative balance report with depth limiting. hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --depth 1 --cumulative >>> Ending balance (cumulative): || 2013/01/31 2013/02/28 2013/03/31 ========++===================================== assets || 0 2 3 --------++------------------------------------- || 0 2 3 >>>=0 # 13. A historical balance report with depth limiting. hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --depth 1 --historical >>> Ending balance (historical): || 2013/01/31 2013/02/28 2013/03/31 ========++===================================== assets || 10 12 13 --------++------------------------------------- || 10 12 13 >>>=0 # 14. The three multicol balance report types again, this time with --tree hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --tree >>> Change of balance (flow): || 2013/01/01-2013/01/31 2013/02/01-2013/02/28 2013/03/01-2013/03/31 ============++====================================================================== assets || 0 2 1 cash || 0 1 0 checking || 0 0 1 ------------++---------------------------------------------------------------------- || 0 2 1 >>>=0 # 15. hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --cumulative --tree >>> Ending balance (cumulative): || 2013/01/31 2013/02/28 2013/03/31 ============++===================================== assets || 0 2 3 cash || 0 1 1 checking || 0 0 1 ------------++------------------------------------- || 0 2 3 >>>=0 # 16. hledgerdev -f balance-multicol.journal balance -p 'monthly in 2013' --historical --tree >>> Ending balance (historical): || 2013/01/31 2013/02/28 2013/03/31 ============++===================================== assets || 10 12 13 cash || 0 1 1 checking || 10 10 11 ------------++------------------------------------- || 10 12 13 >>>=0 # 17. --date2 should work hledgerdev -f- balance --monthly --date2 <<< 2014/1/1 (a) 1 2014/2/1=2014/1/31 (b) 1 >>> Change of balance (flow): || 2014/01/01-2014/01/31 ===++======================== a || 1 b || 1 ---++------------------------ || 2 >>>=0 # 18. All matched postings in the displayed intervals should be reported on. hledgerdev -f- balance -p 'monthly 2014/1/10-2014/2/20' <<< 2014/1/5 (before) 1 2014/2/1 (within) 1 2014/2/25 (after) 1 >>> Change of balance (flow): || 2014/01/01-2014/01/31 2014/02/01-2014/02/28 ========++=============================================== after || 0 1 before || 1 0 within || 0 1 --------++----------------------------------------------- || 1 2 >>>=0