Financial Calculator
Comprehensive financial calculations including future value, present value, discount/markup pricing, compound interest, and comparative tables.
Quick Start
CLI Usage
# Future Value
python3 scripts/calculate.py fv 10000 0.05 10 12
# PV=$10,000, Rate=5%, Years=10, Monthly compounding
# Present Value
python3 scripts/calculate.py pv 20000 0.05 10 12
# FV=$20,000, Rate=5%, Years=10, Monthly compounding
# Discount
python3 scripts/calculate.py discount 100 20
# Price=$100, Discount=20%
# Markup
python3 scripts/calculate.py markup 100 30
# Cost=$100, Markup=30%
# Future Value Table
python3 scripts/calculate.py fv_table 10000 0.03 0.05 0.07 --periods 1 5 10 20
# Principal=$10,000, Rates=3%,5%,7%, Periods=1,5,10,20 years
# Discount Table
python3 scripts/calculate.py discount_table 100 10 15 20 25 30
# Price=$100, Discounts=10%,15%,20%,25%,30%
Web UI
Launch the interactive calculator:
./scripts/launch_ui.sh [port]
# Default port: 5050
# Opens at: http://localhost:5050
# Auto-creates venv and installs Flask if needed
Or manually:
cd skills/financial-calculator
python3 -m venv venv # First time only
venv/bin/pip install flask # First time only
venv/bin/python scripts/web_ui.py [port]
Features:
- 7 calculator types with intuitive tabs
- Real-time calculations
- Interactive tables
- Beautiful gradient UI
- Mobile-responsive design
Calculators
1. Future Value (FV)
Calculate what an investment will be worth in the future with compound interest.
Use cases:
- Investment growth projections
- Savings account growth
- Retirement planning
Inputs:
- Principal amount
- Annual interest rate (%)
- Time period (years)
- Compounding frequency (annual/quarterly/monthly/daily)
2. Present Value (PV)
Calculate the current value of a future amount (discounted value).
Use cases:
- Loan valuation
- Bond pricing
- Investment analysis
Inputs:
- Future value
- Annual discount rate (%)
- Time period (years)
- Compounding frequency
3. Discount Calculator
Calculate final price after applying percentage discount.
Use cases:
- Retail pricing
- Sale calculations
- Cost savings analysis
Inputs:
- Original price
- Discount percentage
Outputs:
- Discount amount
- Final price
- Savings percentage
4. Markup Calculator
Calculate selling price from cost and markup percentage.
Use cases:
- Product pricing
- Profit margin calculation
- Business pricing strategy
Inputs:
- Cost price
- Markup percentage
Outputs:
- Markup amount
- Selling price
- Profit margin (as % of selling price)
5. Compound Interest
Detailed breakdown of compound interest calculations.
Use cases:
- Interest analysis
- Effective rate comparison
- Loan interest calculation
Outputs:
- Final amount
- Total interest earned
- Effective annual rate
6. Future Value Table
Generate comparison table across multiple rates and time periods.
Use cases:
- Investment scenario comparison
- Rate shopping
- Long-term planning
Features:
- Add multiple interest rates
- Add multiple time periods
- View all combinations in sortable table
- See total gain and gain percentage
7. Discount Table
Compare multiple discount percentages for the same price.
Use cases:
- Bulk pricing strategies
- Promotional planning
- Price comparison
Features:
- Add multiple discount percentages
- See all discount scenarios
- Compare final prices and savings
Installation
Requires Python 3.7+ and Flask:
pip install flask
Or with venv:
python3 -m venv venv
source venv/bin/activate
pip install flask
Python API
Import the calculation module:
from calculate import (
future_value,
present_value,
discount_amount,
markup_price,
compound_interest,
generate_fv_table,
generate_discount_table
)
# Calculate FV
fv = future_value(
present_value=10000,
rate=0.05, # 5% as decimal
periods=10,
compound_frequency=12 # Monthly
)
# Generate table
table = generate_fv_table(
principal=10000,
rates=[0.03, 0.05, 0.07], # As decimals
periods=[1, 5, 10, 20]
)
Formulas
See references/formulas.md for detailed mathematical formulas, examples, and use cases for all calculations.
Tips
Rate Format:
- CLI: Use decimals (0.05 for 5%)
- Web UI: Use percentages (5 for 5%)
- Python API: Use decimals (0.05 for 5%)
Compounding Frequencies:
- 1 = Annual
- 4 = Quarterly
- 12 = Monthly
- 365 = Daily
Table Generation: Best practices for meaningful comparisons:
- FV tables: Use 3-5 rates, 4-6 time periods
- Discount tables: Use 5-10 discount percentages
- Keep tables focused for easier analysis
Performance:
- Web UI calculations are instant
- Tables with >100 combinations may take a few seconds
- CLI is fastest for single calculations
Common Workflows
Investment Planning
- Use FV Calculator to project single investment
- Generate FV Table to compare different rates
- Check Compound Interest for detailed breakdown
Pricing Strategy
- Use Markup Calculator to set selling price
- Generate Discount Table to plan promotions
- Compare margins and final prices
Loan Analysis
- Use PV Calculator to value loan
- Check Compound Interest for total interest cost
- Generate FV Table to compare loan terms