# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.0] - 2025-10-26

### Added
- **Core Package Structure**: Complete package architecture with modular design
- **Time Value of Money (TVM) Module**: Comprehensive financial calculations
  - Basic TVM functions: future_value, present_value, compound_interest
  - Rate conversions: effective_rate, nominal_rate
  - Continuous compounding calculations
- **Annuity Functions**: Complete annuity calculations
  - Ordinary annuities: PV and FV calculations
  - Annuity due: PV and FV calculations  
  - Generic annuity functions with due/ordinary options
- **Bond Valuation**: Professional bond analysis tools
  - Bond pricing given YTM
  - Yield-to-maturity calculations
  - Macaulay and modified duration
  - Bond convexity calculations
- **Loan Analysis**: Complete loan management tools
  - Periodic payment calculations
  - Remaining balance tracking
  - Total interest calculations
  - Full amortization schedule generation
- **Cash Flow Analysis**: Investment evaluation tools
  - Net Present Value (NPV)
  - Internal Rate of Return (IRR) with robust solving
  - Payback period calculations
  - Discounted payback period
  - Profitability index
- **Core Utilities**: Foundation components
  - Input validation functions (validate_weights, validate_returns, validate_positive)
  - Data conversion utilities (to_numpy, ensure_1d, ensure_2d)
  - Custom exception hierarchy (QFinBoxError, ValidationError, DataError, CalculationError)
  - Financial calculation helpers (annualized returns and volatility)
- **Documentation**: Comprehensive docstrings with examples for all functions
- **Type Safety**: Full type hints throughout codebase
- **Testing**: Complete test suite demonstrating all functionality
- **Integration**: Seamless NumPy, Pandas, and SciPy integration

### Technical Features
- Python 3.8+ compatibility
- Professional financial formulas and calculations
- Robust input validation and error handling
- Advanced numerical methods for complex calculations
- Clean namespace organization (`qf.tvm.*` access pattern)
- Pandas DataFrame integration for structured outputs

### Dependencies
- NumPy >= 1.21.0
- Pandas >= 1.3.0
- SciPy >= 1.7.0
- Optional: matplotlib, seaborn for visualization
- Optional: yfinance for market data

## [Unreleased]

### Planned Features
- Risk management tools
- Portfolio optimization algorithms
- Market simulation capabilities
- Advanced derivatives pricing
- Statistical analysis tools
- Data fetching utilities