mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-28 04:46:31 +03:00
79ca4a767e
This commit introduces the commandline argument -%/--percent to show percentages of the column's total instead of the absolute amounts for each account in reports. The signs of the values are preserved. This option is especially useful for the balance and incomestatement commands. If there are multiple commodities involved in a report hledger bails with an error message. This can be avoided by using --cost. Also note that if one uses -% with the balance command the chances are high that all numbers are 0. This is due to the fact that by default balance sums up to zero. If one wants to use -% in a meaningful way with balance one has to add a query. In order to keep the implementation as simple as possible --tree has no influence over how the percentages are calculated, i.e., the percentages always represent the fraction of the columns total. If one wants to know the percentages relative to a parent account, one has to use a query to narrow down the accounts.
309 lines
16 KiB
Plaintext
309 lines
16 KiB
Plaintext
# 1. Simple statement works
|
|
hledger -f - incomestatement
|
|
<<<
|
|
2016/1/1
|
|
income 1
|
|
b
|
|
>>>
|
|
Income Statement 2016/01/01
|
|
|
|
|| 2016/01/01
|
|
==========++============
|
|
Revenues ||
|
|
----------++------------
|
|
income || -1
|
|
----------++------------
|
|
|| -1
|
|
==========++============
|
|
Expenses ||
|
|
----------++------------
|
|
----------++------------
|
|
||
|
|
==========++============
|
|
Net: || -1
|
|
>>>2
|
|
>>>= 0
|
|
|
|
# 2. Period reporting works for a specific year
|
|
hledger -f - incomestatement -b 2016 -e 2017
|
|
<<<
|
|
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
|
|
>>>
|
|
Income Statement 2016
|
|
|
|
|| 2016
|
|
===================++=========
|
|
Revenues ||
|
|
-------------------++---------
|
|
revenue:clients:B || $10.00
|
|
-------------------++---------
|
|
|| $10.00
|
|
===================++=========
|
|
Expenses ||
|
|
-------------------++---------
|
|
expense:hosting || $50.00
|
|
-------------------++---------
|
|
|| $50.00
|
|
===================++=========
|
|
Net: || $-40.00
|
|
>>>2
|
|
>>>= 0
|
|
|
|
# 3. Period reporting works for two years
|
|
hledger -f - incomestatement -b 2015 -e 2017
|
|
<<<
|
|
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
|
|
>>>
|
|
Income Statement 2015/01/01-2016/12/31
|
|
|
|
|| 2015/01/01-2016/12/31
|
|
===================++=======================
|
|
Revenues ||
|
|
-------------------++-----------------------
|
|
revenue:clients:A || $10,000.00
|
|
revenue:clients:B || $10.00
|
|
-------------------++-----------------------
|
|
|| $10,010.00
|
|
===================++=======================
|
|
Expenses ||
|
|
-------------------++-----------------------
|
|
expense:hosting || $50.00
|
|
-------------------++-----------------------
|
|
|| $50.00
|
|
===================++=======================
|
|
Net: || $9,960.00
|
|
>>>2
|
|
>>>= 0
|
|
|
|
# 4. Period reporting works for one month
|
|
hledger -f - incomestatement -b 2015/10 -e 2015/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
|
|
>>>
|
|
Income Statement 2015/10
|
|
|
|
|| Oct
|
|
===================++============
|
|
Revenues ||
|
|
-------------------++------------
|
|
revenue:clients:A || $10,000.00
|
|
-------------------++------------
|
|
|| $10,000.00
|
|
===================++============
|
|
Expenses ||
|
|
-------------------++------------
|
|
-------------------++------------
|
|
||
|
|
===================++============
|
|
Net: || $10,000.00
|
|
>>>2
|
|
>>>= 0
|
|
|
|
# 5. Period reporting works for one month in another year
|
|
hledger -f - incomestatement -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
|
|
>>>
|
|
Income Statement 2016/10
|
|
|
|
|| Oct
|
|
==========++=====
|
|
Revenues ||
|
|
----------++-----
|
|
----------++-----
|
|
|| 0
|
|
==========++=====
|
|
Expenses ||
|
|
----------++-----
|
|
----------++-----
|
|
|| 0
|
|
==========++=====
|
|
Net: || 0
|
|
>>>2
|
|
>>>= 0
|
|
|
|
# 6. Multicolumn test
|
|
# old (arithmetic sign):
|
|
# Income Statement
|
|
#
|
|
# || 2008/01 2008/02 2008/03 2008/04 2008/05 2008/06 2008/07 2008/08 2008/09 2008/10 2008/11 2008/12 Total Average
|
|
# ===================++==============================================================================================================================
|
|
# Revenues ||
|
|
# -------------------++------------------------------------------------------------------------------------------------------------------------------
|
|
# income:gifts || 0 0 0 0 0 $-1 0 0 0 0 0 0 $-1 0
|
|
# income:salary || $-1 0 0 0 0 0 0 0 0 0 0 0 $-1 0
|
|
# -------------------++------------------------------------------------------------------------------------------------------------------------------
|
|
# || $-1 0 0 0 0 $-1 0 0 0 0 0 0 $-2 0
|
|
# ===================++==============================================================================================================================
|
|
# Expenses ||
|
|
# -------------------++------------------------------------------------------------------------------------------------------------------------------
|
|
# expenses:food || 0 0 0 0 0 $1 0 0 0 0 0 0 $1 0
|
|
# expenses:supplies || 0 0 0 0 0 $1 0 0 0 0 0 0 $1 0
|
|
# -------------------++------------------------------------------------------------------------------------------------------------------------------
|
|
# || 0 0 0 0 0 $2 0 0 0 0 0 0 $2 0
|
|
# ===================++==============================================================================================================================
|
|
# Total || $-1 0 0 0 0 $1 0 0 0 0 0 0 0 0
|
|
#
|
|
hledger -f sample.journal incomestatement -p 'monthly in 2008' -AT
|
|
>>>
|
|
Income Statement 2008
|
|
|
|
|| Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Total Average
|
|
===================++==============================================================================
|
|
Revenues ||
|
|
-------------------++------------------------------------------------------------------------------
|
|
income:gifts || 0 0 0 0 0 $1 0 0 0 0 0 0 $1 0
|
|
income:salary || $1 0 0 0 0 0 0 0 0 0 0 0 $1 0
|
|
-------------------++------------------------------------------------------------------------------
|
|
|| $1 0 0 0 0 $1 0 0 0 0 0 0 $2 0
|
|
===================++==============================================================================
|
|
Expenses ||
|
|
-------------------++------------------------------------------------------------------------------
|
|
expenses:food || 0 0 0 0 0 $1 0 0 0 0 0 0 $1 0
|
|
expenses:supplies || 0 0 0 0 0 $1 0 0 0 0 0 0 $1 0
|
|
-------------------++------------------------------------------------------------------------------
|
|
|| 0 0 0 0 0 $2 0 0 0 0 0 0 $2 0
|
|
===================++==============================================================================
|
|
Net: || $1 0 0 0 0 $-1 0 0 0 0 0 0 0 0
|
|
>>>= 0
|
|
|
|
# 7. Multicolumn test (historical)
|
|
# old (arithmetic sign):
|
|
# Income Statement (Historical Ending Balances)
|
|
#
|
|
# || 2008/01/31 2008/02/29 2008/03/31 2008/04/30 2008/05/31 2008/06/30 2008/07/31 2008/08/31 2008/09/30 2008/10/31 2008/11/30 2008/12/31
|
|
# ===================++================================================================================================================================================
|
|
# Revenues ||
|
|
# -------------------++------------------------------------------------------------------------------------------------------------------------------------------------
|
|
# income:gifts || 0 0 0 0 0 $-1 $-1 $-1 $-1 $-1 $-1 $-1
|
|
# income:salary || $-1 $-1 $-1 $-1 $-1 $-1 $-1 $-1 $-1 $-1 $-1 $-1
|
|
# -------------------++------------------------------------------------------------------------------------------------------------------------------------------------
|
|
# || $-1 $-1 $-1 $-1 $-1 $-2 $-2 $-2 $-2 $-2 $-2 $-2
|
|
# ===================++================================================================================================================================================
|
|
# Expenses ||
|
|
# -------------------++------------------------------------------------------------------------------------------------------------------------------------------------
|
|
# expenses:food || 0 0 0 0 0 $1 $1 $1 $1 $1 $1 $1
|
|
# expenses:supplies || 0 0 0 0 0 $1 $1 $1 $1 $1 $1 $1
|
|
# -------------------++------------------------------------------------------------------------------------------------------------------------------------------------
|
|
# || 0 0 0 0 0 $2 $2 $2 $2 $2 $2 $2
|
|
# ===================++================================================================================================================================================
|
|
# Total || $-1 $-1 $-1 $-1 $-1 0 0 0 0 0 0 0
|
|
#
|
|
hledger -f sample.journal incomestatement -p 'monthly in 2008' --historical
|
|
>>>
|
|
Income Statement 2008/01/31,,2008/12/31 (Historical Ending Balances)
|
|
|
|
|| 2008/01/31 2008/02/29 2008/03/31 2008/04/30 2008/05/31 2008/06/30 2008/07/31 2008/08/31 2008/09/30 2008/10/31 2008/11/30 2008/12/31
|
|
===================++================================================================================================================================================
|
|
Revenues ||
|
|
-------------------++------------------------------------------------------------------------------------------------------------------------------------------------
|
|
income:gifts || 0 0 0 0 0 $1 $1 $1 $1 $1 $1 $1
|
|
income:salary || $1 $1 $1 $1 $1 $1 $1 $1 $1 $1 $1 $1
|
|
-------------------++------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|| $1 $1 $1 $1 $1 $2 $2 $2 $2 $2 $2 $2
|
|
===================++================================================================================================================================================
|
|
Expenses ||
|
|
-------------------++------------------------------------------------------------------------------------------------------------------------------------------------
|
|
expenses:food || 0 0 0 0 0 $1 $1 $1 $1 $1 $1 $1
|
|
expenses:supplies || 0 0 0 0 0 $1 $1 $1 $1 $1 $1 $1
|
|
-------------------++------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|| 0 0 0 0 0 $2 $2 $2 $2 $2 $2 $2
|
|
===================++================================================================================================================================================
|
|
Net: || $1 $1 $1 $1 $1 0 0 0 0 0 0 0
|
|
>>>= 0
|
|
|
|
# 8. Percentage test
|
|
hledger -f sample.journal incomestatement -p 'quarterly 2008' -T --average -%
|
|
>>>
|
|
Income Statement 2008
|
|
|
|
|| 2008q1 2008q2 2008q3 2008q4 Total Average
|
|
===================++====================================================
|
|
Revenues ||
|
|
-------------------++----------------------------------------------------
|
|
income:gifts || 0 100.0 % 0 0 50.0 % 50.0 %
|
|
income:salary || 100.0 % 0 0 0 50.0 % 50.0 %
|
|
-------------------++----------------------------------------------------
|
|
|| 100.0 % 100.0 % 0 0 100.0 % 100.0 %
|
|
===================++====================================================
|
|
Expenses ||
|
|
-------------------++----------------------------------------------------
|
|
expenses:food || 0 50.0 % 0 0 50.0 % 50.0 %
|
|
expenses:supplies || 0 50.0 % 0 0 50.0 % 50.0 %
|
|
-------------------++----------------------------------------------------
|
|
|| 0 100.0 % 0 0 100.0 % 100.0 %
|
|
>>>= 0
|
|
|