Overview
The Portfolio Management feature allows you to track your current stock, ETF, and mutual fund holdings with real-time price updates from Finnhub.io. View comprehensive metrics, allocation charts, and performance analysis all in one place.Key Features
Real-time Pricing
Automatic price updates from Finnhub API
Multi-Asset Support
Track stocks, ETFs, and mutual funds
Visual Analytics
Interactive allocation and performance charts
CSV Import
Bulk import holdings from CSV files
Using the Portfolio
Adding Holdings
1
Click Add Holding
Navigate to the Portfolio page and click the “Add Holding” button
2
Fill in Details
- Symbol: Stock ticker (e.g., AAPL, MSFT)
- Type: Select stock, ETF, or mutual_fund
- Shares: Number of shares owned
- Average Cost: Your average cost per share
- Notes: Optional notes about the holding
3
Save
Click “Save” to add the holding to your portfolio
CSV Upload
Upload a CSV file with the following format:See the CSV Upload guide for detailed formatting instructions.
Portfolio Metrics
The dashboard displays four key summary cards:| Metric | Description |
|---|---|
| Total Value | Current market value of all holdings |
| Total Cost | Total amount invested (shares × average cost) |
| Total Gain/Loss | Dollar amount gained or lost |
| Total Return | Percentage return on investment |
Charts
Allocation Chart
Interactive doughnut chart showing:- Percentage of portfolio in each holding
- Dollar amounts on hover
- Click legend to show/hide holdings
Performance Chart
Bar chart displaying:- Gain/loss for each holding
- Green bars for profitable holdings
- Red bars for losing holdings
Managing Holdings
Edit a Holding
- Click the edit (✏️) button next to any holding
- Update the fields you want to change
- Click “Save”
Delete a Holding
- Click the delete (🗑️) button next to any holding
- Confirm the deletion
Price Updates
Click the “Refresh Prices” button to fetch the latest market prices for all holdings. Prices are also automatically refreshed when viewing the page if the last update was more than 15 minutes ago.Rate Limiting
The free Finnhub API tier allows:- 60 requests per minute
- Real-time US stock quotes
- Delayed mutual fund prices (typically 15-30 minutes)
Technical Details
Price Update Logic
When refreshing prices, the application:- Checks the last update timestamp
- If > 15 minutes old, fetches new prices
- Makes API calls in batches to respect rate limits
- Updates the database with new prices and timestamp
- Recalculates portfolio metrics
Data Storage
Holdings are stored in theholdings table with the following schema: