Skip to main content

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)

Source distribution for finmodels 2.0.4
File Size Uploaded Provenance
finmodels-2.0.4.tar.gz 4.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for finmodels 2.0.4
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page