Startup and Corporate Investment and Financial Planning Simulator for Python.
NPV provides a very high level simulation facility for getting the NPV (net presevent value) score for any business idea. By default, the simulation automatically generates:
- monthly and annual income statement
- monthly and annual cashflow statement
- monthly and annual growth statistics
Simulation is based on set of input variables and volatility computations that can be adjusted as needed for each project.
Additionally, facility for performing a Monte Carlo simulation is provided, and a method for generating key financial metrics individually.
NPV, or Net Present Value, is the difference between the present value of cash inflows and the present value of cash outflows over a period of time. Its main use-case is in capital budgeting to analyze profitability of a projected investment or project[1].
NPV is widely used by managers and investors to support decision making on large investments. For long it has been the gold standard tool for merger and acquisition activity, but is referred to as the 'discounted cash flow model' in that context. In fact, NPV is the model that Warren Buffet uses to evaluate companies[2].
pip install npv
or:
pip install git+https://github.com/mikkokotila/npv.git
import npv
model = npv.NPV(params)
model
now contains financial statements and other assets.
model.monte_carlo(1000, 'ebitda')
model = npv.NPV('params.txt')
Parameter | Example Value | Description |
---|---|---|
core | 100 | what the business is delivering |
revenue | 30000 | revenue per delivery |
resource | 8500 | cost of resource per delivery |
core_change | 0.5 | maximum annual change of deliverable |
core_incertainty | 1 | level of incertainty |
core_steps | 30 | number choices between minimum and maximum |
revenue_change | 0.2 | max annual change of revenue |
revenue_incertainty | 1 | level of incertainty |
revenue_steps | 100 | number choices between minimum and maximum |
resource_change | 0.2 | max annual change of resouce cost |
resource_incertainty | 0.2 | level of incertainty |
resource_steps | 10 | number choices between minimum and maximum |
sales_salary | 96000 | annual salary per sales person |
production_salary | 75000 | annual salary per production person |
manager_salary | 132000 | annual salary per manager |
service_salary | 96000 | annual salary per service person |
admin_salary | 60000 | annual salary per admin person |
core_per_sales | 10 | number deliverables a sales person can handle |
core_per_production | 5 | number of deliverables a production person can handle |
core_per_manager | 50 | number of deliverables a manager can handle |
core_per_service | 20 | number of deliverables a service person can handle |
core_per_admin | 200 | number of deliverables an admin person can handle |
salaries_change | 0.05 | max annual change in sales |
salaries_incertainty | 0.1 | level of incertainty |
salaries_steps | 10 | number choices between minimum and maximum |
employer_liabilities | 0.45 | extra costs in addition to salaries |
employer_misc | 0.03 | other employer costs |
marketing_cost | 0.1 | marketing cost as a factor of revenue |
other_cost | 0.1 | other business costs |
tax_rate | 0.21 | the tax rate the business is subject to |
depreciation_years | 10 | how many years to depreciate investment |
capital_investment | 100000 | initial investment into the business |
rate_of_return | 0.1 | the rate of return (ROR) |
risk_factor | 2 | a factor effects the likeliness of change to be negative |
core_static | False | cores are same every year if True |
revenue_static | False | revenue is same every year if True |
resource_static | False | resource is same every year if True |
Below some additional details is provided for (some of) the parameters.
There are three fundamental aspects in the model; the core deliverable, revenue per deliverable, and cost of resource per deliverable.
This is the core deliverable the company is profiding, for example a campaign, a tooth brush, a unit of electricity, and so on.
This is the average revenue that is incurred from selling one core unit e.g. a tooth brush.
This is the key resource needed in order for the company to be able to produce the core deliverable e.g. a datacenter needs servers.
There are several general aspects such as the period that should be forecasted.
The number of years that will be forecasted for the business.
A fixed income tax-rate the business is subject to.
The total amount of the initial investment into the business. NOTE: this will be the only entry for year-1 and will be added to the 'years' parameter.
(missing)
Each of the three fundamental aspect are subject to change each year. A new growth factor is generated based on three factors.
The maximum rate of change for the aspect e.g. the maximum rate of change per annum for revenue is 3 (300%).
The level of incertainty related with the change e.g. the incertainty of revenue change per annum is 0.9 (90%) where rate of change of 300% would result in 30% to 300% change.
The number of steps between the minimum and maximum values for change e.g. in the case of the above example 10 steps would yield possibilities 30%, 60%, 90%...300% and so forth.
[1] https://www.investopedia.com/terms/n/npv.asp
[2] https://hbr.org/2014/11/a-refresher-on-net-present-value