{ "info": { "author": "Ken Kundert", "author_email": "tvm@nurdletech.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Office/Business :: Financial" ], "description": "TVM - Time Value of Money\n=========================\n\n:Author: Ken Kundert\n:Version: 0.3.0\n:Released: 2019-04-04\n\n\nWhat?\n-----\n\nTime value of money calculations relate the following quantities:\n\n- future value\n- present value\n- payments\n- number of periods\n- discount rate\n\n*tvm* computes one of these values (other than discount rate) given the others.\n\nThe number of periods is split between two values, the number of years and the \nnumber of periods per year (the frequency).\n\n\nGetting Started\n---------------\n\nInstall using::\n\n pip3 install --user tvm\n\nThis installs *tvm* to ~/.local/bin; make sure this directory is on your path.\n\nUsage::\n\n tvm [options] [fv|pv|pmt|years]\n\nOptions::\n\n -f , --fv future value\n -p , --pv present value\n -P , --pmt payment per period\n -y , --years total number of years\n -n , --freq number of payments per year\n -r , --rate annual discount rate\n -i, --ignore ignore any previously specified values\n\nIf a value is not given it is recalled from the previous invocation.\nSpecify --ignore to use the default values for all unspecified options,\nwhich are: pv=0, fv=0, pmt=0, years=30, freq=12.\n\nWhen the program runs, it always prints the computed value first, and then \nprints the remaining values to make it easy for you to confirm that you used the \nright values.\n\nSavings Accounts\n----------------\n\nConsider case where you have a interest bearing account that pays 5% per annum \ncompounded monthly. If you start with $10,000, you can compute the amount you \nwill have after 5 years with::\n\n tvm --pv=10000 --rate=5 --freq=12 --years=5 fv\n\nThe amount in 5 years is referred to as the future value (fv). The current \namount is the present value (pv). The frequency is the number of periods per \nyear. The program responds with::\n\n fv = $12,833.59\n pv = $10,000.00\n pmt = $0.00\n r = 5%\n N = 60\n\n*N* is the total number of periods and equals the product of the years and the \nnumber of periods per year.\n\nYou can specify values with SI scale factors, units, and commas. The units and \ncommas are ignored. So you can do the same thing with either::\n\n tvm --pv='$10,000' --rate=5% --freq=12 --years=5 fv\n\nor::\n\n tvm --pv=10k --rate=5% --freq=12 --years=5 fv\n\nThe quotes are needed in the first case to prevent $ from being interpreted by \nthe shell.\n\n*tvm* remembers the values specified on the previous invocation and uses them if \nthey are not specified. This allows you to rapidly run what-if experiments \nwithout having to re-specify values that do not change.\nSo, once you have run the first command, you can now quickly determine how much \nyou will have in 10 years using::\n\n tvm -y 10\n\n fv = $16,470.09\n pv = $10,000.00\n pmt = $0.00\n r = 5%\n N = 120\n\nWithout changing anything else, you can determine what happens if you make an \nadditional $100 contribution each month::\n\n tvm --pmt 100\n\n fv = $31,998.32\n pv = $10,000.00\n pmt = $100.00\n r = 5%\n N = 120\n\n\nLoans\n-----\n\nYou can also use *tvm* to explore loans. For example, you can compute the \npayment for a mortgage given the principal, interest rate, and length::\n\n tvm --ignore --pv=-250k --rate=4.375 --years=30 pmt\n\n pmt = $1,248.21\n pv = -$250,000.00\n fv = $0.00\n r = 4.38%\n N = 360\n\nThe --ignore option was added so that we start from scratch; any values that\nwere previously specified are ignored.\n\nYou can now understand how paying a little extra affects how long it takes\nto pay off the loan using::\n\n tvm --pmt=1.5k years\n\n years = 21.42\n pv = -$250,000.00\n pmt = $1,500.00\n fv = $0.00\n r = 4.38%\n N = 257.08\n\nTo compute the payments for a 5-year interest only balloon mortgage, use::\n\n tvm -y 5 -f -250k pmt\n\n pmt = $911.46\n pv = -$250,000.00\n fv = -$250,000.00\n r = 4.38%\n N = 60", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/kenkundert/tvm/tarball/master", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kenkundert/tvm", "keywords": "money,interest,loans,savings,annuity", "license": "GPLv3+", "maintainer": "", "maintainer_email": "", "name": "tvm", "package_url": "https://pypi.org/project/tvm/", "platform": "", "project_url": "https://pypi.org/project/tvm/", "project_urls": { "Download": "https://github.com/kenkundert/tvm/tarball/master", "Homepage": "https://github.com/kenkundert/tvm" }, "release_url": "https://pypi.org/project/tvm/0.3.0/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Time Value of Money", "version": "0.3.0" }, "last_serial": 5100650, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "846641bf6f091886b53661fe80a775c4", "sha256": "b822f97657dd9f8ce226f68d793021520bc3ddbf5bd637f08d1825db62bc1503" }, "downloads": -1, "filename": "tvm-0.0.0.tar.gz", "has_sig": false, "md5_digest": "846641bf6f091886b53661fe80a775c4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3903, "upload_time": "2019-04-04T06:08:18", "url": "https://files.pythonhosted.org/packages/6c/46/25015740c11112646f07954f7fd7ee533f523a027fcbbfd21839e0cb23a0/tvm-0.0.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "33501862acbf0bc8a39405a383dd6d95", "sha256": "62dc947f43a4bfd28d185254c915a9a7ce38c225aab6cdfcaca2e6995882d24b" }, "downloads": -1, "filename": "tvm-0.3.0.tar.gz", "has_sig": false, "md5_digest": "33501862acbf0bc8a39405a383dd6d95", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4644, "upload_time": "2019-04-04T19:52:32", "url": "https://files.pythonhosted.org/packages/d5/21/adb1f04c1a69c2db5aa55f69289c35bbb1af07daad2892ef0f1752efc95c/tvm-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "33501862acbf0bc8a39405a383dd6d95", "sha256": "62dc947f43a4bfd28d185254c915a9a7ce38c225aab6cdfcaca2e6995882d24b" }, "downloads": -1, "filename": "tvm-0.3.0.tar.gz", "has_sig": false, "md5_digest": "33501862acbf0bc8a39405a383dd6d95", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4644, "upload_time": "2019-04-04T19:52:32", "url": "https://files.pythonhosted.org/packages/d5/21/adb1f04c1a69c2db5aa55f69289c35bbb1af07daad2892ef0f1752efc95c/tvm-0.3.0.tar.gz" } ] }