finmodels
finmodels is a Python package designed for financial analysis and optimization. It includes a collection of financial models, such as Discounted Cash Flow (DCF) valuation and Mean-Variance Portfolio Optimization. With finmodels, you can perform essential financial calculations to support investment decisions and portfolio management.
Key Features
Discounted Cash Flow (DCF) Valuation: Calculate the present value of future cash flows to assess the intrinsic value of an investment.
Portfolio Optimization: Optimize portfolio allocations using Mean-Variance Optimization to balance returns and risk.
The Leveraged Buyout (LBO) Model: LBO Model is a financial analysis tool used in corporate finance for
evaluating the acquisition of a company using a significant amount of borrowed funds.
IPO Model: IPO Model is a simple Python script for calculating the Initial Public Offering (IPO) valuation using a discounted cash flow (DCF) model.
Installation
You can install the package using pip:
pip install finmodels
Usage Discounted Cash Flow (DCF) Valuation
Example usage of DCF valuation
import finmodels as fm
cash_flows = [100, 150, 200, 250]
discount_rate = 0.1
dcf_value = fm.calculate_dcf(cash_flows, discount_rate)
print("DCF Value:", dcf_value)
Example usage of Portfolio Optimization
import finmodels as fm
import numpy as np
# Example usage of portfolio optimization
expected_returns = np.array([0.05, 0.08, 0.12])
covariance_matrix = np.array([[0.001, 0.0005, 0.0002],
[0.0005, 0.002, 0.001],
[0.0002, 0.001, 0.003]])
optimal_weights = fm.optimize_portfolio(expected_returns, covariance_matrix)
print("Optimal Portfolio Weights:", optimal_weights)
Example usage of Leveraged Buyout (LBO) Model
import finmodels as fm
# Example usage
acquisition_price_example = 1000
equity_percentage_example = 0.3
debt_interest_rate_example = 0.05
projection_years_example = 5
# Create an instance of LBOModel
lbo_model = fm.LBOModel(acquisition_price_example, equity_percentage_example,
debt_interest_rate_example, projection_years_example)
# Calculate and print equity returns
equity_returns_result = lbo_model.calculate_equity_returns()
print(f"Equity Returns for each year: {equity_returns_result}")
Example usage of IPO Model
import finmodels as fm
# Example usage
initial_valuation = 500000000 # Initial company valuation before IPO
funds_raised = 100000000 # Funds raised during the IPO
operating_income = 75000000 # Annual operating income before IPO
growth_rate = 0.05 # Annual growth rate of operating income
years = 5 # Number of years for the IPO model
ipo_model = fm.IPOModel(initial_valuation, funds_raised, operating_income, growth_rate, years)
ipo_model.print_summary()
Contributors
Tamilselvan Arjunan
License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for finmodels 2.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| finmodels-2.0.4.tar.gz | 4.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| finmodels-2.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.7 kB
Release files / finmodels-2.0.4.tar.gz
| Download URL | finmodels-2.0.4.tar.gz |
|---|---|
| Size | 4.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a434bfeb462969d8a6c0cf0bd5b737b49730a06e3c369b23bb609d822d7d4c62
|
|
BLAKE2b-256 checksum How to use checksums |
76130948afbcaf979c1671920bb222121e6806efab8dc4d6c38bafdba50a9434
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.8.4
|
Release files / finmodels-2.0.4-py3-none-any.whl
| Download URL | finmodels-2.0.4-py3-none-any.whl |
|---|---|
| Size | 5.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8a0acea0a4c9f2befedc4c08294f9b6c424ddb569105ac9d3373f10f60db5ae7
|
|
BLAKE2b-256 checksum How to use checksums |
c28693c70ab068cd7624c3d1ef3c1cf95183b023ce2d2135fc2b1382a2422420
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.8.4
|
Security for finmodels 2.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.