# hledger-interest: computes interest for a given account

hledger-interest is a small command-line utility based on Simon
Michael's hleder library. Its purpose is to compute interest for a
given ledger account. Using command line flags, the program can be
configured to use various schemes for day-counting, such as act/act,
30*360, 30E*360, and 30/360isda. Furthermore, it supports a (small)
number of interest schemes, i.e. annual interest with a fixed rate and
the scheme mandated by the German BGB288 (Basiszins für
Verbrauchergeschäfte). Extending support for other schemes is fairly
easy, but currently requires changing to the source code.
As an example, consider the following loan, stored in a file called
`test.ledger`

:
> 2008*09*26 Loan
> Assets:Bank EUR 10000.00
> Liabilities:Loan
>
> 2008*11*27 Payment
> Assets:Bank EUR -3771.12
> Liabilities:Loan
>
> 2009*05*03 Payment
> Assets:Bank EUR -1200.00
> Liabilities:Loan
>
> 2010*12*10 Payment
> Assets:Bank EUR -3700.00
> Liabilities:Loan
Suppose that loan earns 5% interest per year, and payments amortize
interest before amortizing the principal claim, then the resulting
ledger would look like this:
> $ hledger-interest --file=test.ledger --source=Expenses:Interest --target=Liabilities:Loan --30-360 --annual=0.05 Liabilities:Loan
> 2008*09*26 Loan
> Assets:Bank EUR 10000.00
> Liabilities:Loan
>
> 2008*11*27 Payment
> Assets:Bank EUR -3771.12
> Liabilities:Loan
>
> 2008*11*27 5.00% interest for EUR -10000.00 over 61 days
> Liabilities:Loan EUR -84.72
> Expenses:Interest
>
> 2008*12*31 5.00% interest for EUR -6313.60 over 34 days
> Liabilities:Loan EUR -29.81
> Expenses:Interest
>
> 2009*05*03 Payment
> Assets:Bank EUR -1200.00
> Liabilities:Loan
>
> 2009*05*03 5.00% interest for EUR -6343.42 over 123 days
> Liabilities:Loan EUR -108.37
> Expenses:Interest
>
> 2009*12*31 5.00% interest for EUR -5251.78 over 238 days
> Liabilities:Loan EUR -173.60
> Expenses:Interest
>
> 2010*12*10 Payment
> Assets:Bank EUR -3700.00
> Liabilities:Loan
>
> 2010*12*10 5.00% interest for EUR -5425.38 over 340 days
> Liabilities:Loan EUR -256.20
> Expenses:Interest
>
> 2010*12*31 5.00% interest for EUR -1981.58 over 21 days
> Liabilities:Loan EUR -5.78
> Expenses:Interest
Running the utility with `--help`

gives a brief overview over the
available options:
> Usage: hledger-interest [OPTION...] ACCOUNT
> -h --help print this message and exit
> -V --version show version number and exit
> -v --verbose echo input ledger to stdout (default)
> -q --quiet don't echo input ledger to stdout
> --today update account until today
> -f FILE --file=FILE input ledger file
> -s ACCOUNT --source=ACCOUNT interest source account
> -t ACCOUNT --target=ACCOUNT interest target account
> --act use `act`

day counting convention
> --30-360 use `30/360`

day counting convention
> --30E-360 use `30E/360`

day counting convention
> --30E-360isda use `30E/360isda`

day counting convention
> --constant=RATE constant interest rate
> --annual=RATE annual interest rate
> --bgb288 compute interest according to German BGB288

Versions | 1.0, 1.1, 1.2, 1.3, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.5, 1.5.1 |
---|---|

Dependencies | base (>=3 && <5), Cabal, hledger-lib (==0.14.*), mtl, time [details] |

License | BSD-3-Clause |

Author | Peter Simons <simons@cryp.to> |

Maintainer | Peter Simons <simons@cryp.to> |

Revised | Revision 1 made by PeterSimons at Mon Oct 31 07:22:26 UTC 2016 |

Category | Finance |

Home page | http://github.com/peti/hledger-interest |

Source repo | head: git clone git://github.com/peti/hledger-interest.git |

Uploaded | by PeterSimons at Sun Aug 21 17:52:26 UTC 2011 |

Distributions | Debian:1.4.4, LTSHaskell:1.5.1, NixOS:1.5.1, Stackage:1.5.1, openSUSE:1.5.1 |

Executables | hledger-interest |

Downloads | 4567 total (27 in the last 30 days) |

Rating | (no votes yet) [estimated by rule of succession] |

Your Rating | |

Status | Docs not available [build log] All reported builds failed as of 2016-11-18 [all 7 reports] Hackage Matrix CI |

## Downloads

- hledger-interest-1.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.