Skip to main content

Common financial calculations.

Project description

python_finance_tools
=========


## Overview ##

This is a set of common financial calculations. It is a work in progress.

## Functions ##

### pv - Present Value of a Cash Flow[1]

Usage:
pv(cash_flow, period, cost_of_capital)

Arguments:

** cash_flow: this is self-explanatory, it's the amount of cash flowing in or out

** period: the period in which this cash flow occurs. It should match the cost_of_capital's period. For example, if you're paying an quarterly interest rate of 5%, your cash_flow should be a quarterly number and your cost_of_capital should be .05.

** cost_of_capital[2]: The weighted average cost of capital for your business. If you're capital structure is 50% debt and 50% equity, you would calculate your cost_of_capital by evently weighting your interest rate on debt and expected rate of return on equity. If you are simply seeing how much a certain amount of cash will be worth in the future, the cost_of_capital is the risk-free interest rate, a good proxy for that is the rate of a short-term government bond because theoretically, those have no risk of default[4].


Output: the present value of the cash flow.

Sample: the value of recieving $100 in 2 years, assuming an annual risk-free interest rate of 3%:

>>> from finance_tools import pv
>>> pv(100, 2, .03)
94.25959091337543


### dcf - Discounted Cash Flow Valuation[3]

Theoretically, a business is worth the present value of its future cash flows.

Usage:
dcf(cash_flows, cost_of_capital)

Arguments:

** cash_flows: This can be a list or dictionary. If a list, it assumes the index corresponds to the period. If a dictionary, the key:value interpretation is period:cash_flow.

** cost_of_capital: Described above. For a business, a conceptual way to think about this is how risky the business is. A riskier business merits a higher cost of capital. A good approximation for the cost of capital of a business is the rate at which a bank is willing to lend to your business.

Output: The valuation of your cash generating entity/business.

Sample: My business is generating $100 this year, and 10% more every year for the next 2 years. One person owns all of the equity and I can get a business loan at 7% annually.

>>>from finance_tools import pv, dcf
>>>dcf([100, 100*1.1, 100*1.1**2, 100*1.1**3], .07)
417.1390718529881

Sample 2: Suppose a business will lose $200 in its current year of operation, and $100 the next year, and then break even, and grow at a rate of $100 per year for 3 years, assuming a WACC of 10%:

>>>dcf({0:-200, 1:-100, 2: 0, 3:100, 4:200, 5:300}, .10)
107.1014771718275

Equivalently:

>>>dcf([-200, -100, 0, 100, 200, 300], .10)
107.1014771718275

Years do not need to be continuous. This is useful for more abstract investments/businesses:

Recieving $1000 5 quarters from now, and $5452 12 quarters from now, assuming a 17% cost of capital and an initial investment today of $1300:

>>>dcf({0:-1300, 5:1000, 12:5452}, .17)
-15.325903934344126

What if we're able to pay 4 quarters into the future as opposed to today?

>>>dcf({4:-1300, 5:1000, 12:5452}, .17)
590.9290333625488

A positive DCF means this would be a good investment.

This is a useful analysis to run, because seeing how fluctuations in future cash flows impact valuation lets businesses make better decisions from a value-maximizing perspective.

If you see anything incorrect, please let me know. Thank you.


[1] http://en.wikipedia.org/wiki/Present_value
[2] http://en.wikipedia.org/wiki/Weighted_average_cost_of_capital
[3] http://en.wikipedia.org/wiki/Discounted_cash_flow
[4] http://en.wikipedia.org/wiki/Risk-free_interest_rate

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finance_tools-0.1.tar.gz (2.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page