Skip to main content

Common financial calculations.

Project description


## Overview ##

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

## Functions ##

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

pv(cash_flow, period, cost_of_capital)


** 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)

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

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

dcf(cash_flows, cost_of_capital)


** 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)

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)


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

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)

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

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

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.


Project details

Release history Release notifications

This version
History Node


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
finance_tools-0.1.tar.gz (2.5 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page