hledger-irr: computes the internal rate of return of an investment
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
hledger-irr is a small command-line utility based on Simon Michael's hledger library. Its purpose is to compute the internal rate of return, also known as the effective interest rate, of a given investment. After specifying what account holds the investment, and what account stores the gains (or losses, or fees, or cost), it calculates the hypothetical annualy rate of fixed rate investment that would have provided the exact same cash flow.
As an example, consider the following irregular investment recorded in a file
called speculation.ledger
. The account “Speculation” holds the investment which
could be, for example, a stock. Regularly, we make sure that the value of the
account matches the value of the stock, by moving money from or to the account
“Rate Gain”. It does not really matter when we adjust the price, as long as it
is correct at the end of our reporting period.
2011-01-01 Some wild speculation – I wonder if it pays off Speculation €100.00 Cash 2011-02-01 More speculation (and adjustment of value) Cash -€10.00 Rate Gain -€1.00 Speculation 2011-03-01 Lets pull out some money (and adjustment of value) Cash €30.00 Rate Gain -€3.00 Speculation 2011-04-01 More speculation (and it lost some money!) Cash -€50.00 Rate Gain € 5.00 Speculation 2011-05-01 Getting some money out (and adjustment of value) Speculation -€44.00 Rate Gain -€ 3.00 Cash 2011-06-01 Emptying the account (after adjusting the value) Speculation -€85.00 Cash €90.00 Rate Gain -€ 5.00
We can now calculate the rate of return for the whole time or just for parts of it (and be freaked out by the volatility of the investment):
$ hledger-irr -f speculation.ledger -t "Rate Gain" -i Speculation -c Resolving dependencies... Build profile: -w ghc-8.0.2 -O1 In order, the following will be built (use -v for more details): - hledger-irr-0.1.1.12 (exe:hledger-irr) (configuration changed) Configuring executable 'hledger-irr' for hledger-irr-0.1.1.12.. Preprocessing executable 'hledger-irr' for hledger-irr-0.1.1.12.. Building executable 'hledger-irr' for hledger-irr-0.1.1.12.. 2011/01/01: €-100.00 2011/02/01: €-10.00 2011/03/01: €30.00 2011/04/01: €-50.00 2011/05/01: €47.00 2011/06/01: €90.00 2011/01/01 - 2017/12/18: -100.00% $ hledger-irr -f speculation.ledger -t "Rate Gain" -i Speculation -e 2011-03-01 Up to date 2011/01/01 - 2011/03/01: 26.12% $ hledger-irr -f speculation.ledger -t "Rate Gain" -i Speculation -b 2011-03-01 Up to date 2011/03/01 - 2017/12/18: -100.00% $ hledger-irr -f speculation.ledger -t "Rate Gain" -i Speculation --monthly Up to date 2011/01/01 - 2011/02/01: 12.49% 2011/02/01 - 2011/03/01: 41.55% 2011/03/01 - 2011/04/01: -51.44% 2011/04/01 - 2011/05/01: 32.24% 2011/05/01 - 2011/06/01: 95.92%
Running the utility with --help
gives a brief overview over the
available options:
$ hledger-irr --help Up to date Usage: hledger-irr [OPTION...] -h --help print this message and exit -V --version show version number and exit -c --cashflow also show all revant transactions -f FILE --file=FILE input ledger file (pass '-' for stdin) -i ACCOUNT --investment-account=ACCOUNT investment account -t ACCOUNT --interest-account=ACCOUNT interest/gain/fees/losses account -b DATE --begin=DATE calculate interest from this date -e DATE --end=DATE calculate interest until this date -D --daily calculate interest for each day -W --weekly calculate interest for each week -M --monthly calculate interest for each month -Y --yearly calculate interest for each year
Known bugs and issues:
Currenlty, hledger-irr does not cope well with multiple commodities (e.g. Euro and Dollar, or shares).
Also, interest or fees that do not pass through the account selected by
--investment-account
are not taken into consideration.
Properties
Versions | 0.1, 0.1.1, 0.1.1.1, 0.1.1.2, 0.1.1.3, 0.1.1.4, 0.1.1.5, 0.1.1.6, 0.1.1.7, 0.1.1.8, 0.1.1.9, 0.1.1.10, 0.1.1.11, 0.1.1.12, 0.1.1.12, 0.1.1.13, 0.1.1.14, 0.1.1.15, 0.1.1.16 |
---|---|
Change log | None available |
Dependencies | base (>=3 && <5), Cabal, Decimal, hledger-lib (>=1 && <1.5), statistics (>=0.10), text, time [details] |
License | BSD-3-Clause |
Author | Joachim Breitner <mail@joachim-breitner.de> |
Maintainer | Joachim Breitner <mail@joachim-breitner.de> |
Category | Finance |
Source repo | head: darcs get http://darcs.nomeata.de/hledger-irr |
Uploaded | by JoachimBreitner at 2017-12-19T01:13:29Z |
Downloads
- hledger-irr-0.1.1.12.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees