- Complete MVP for tracking Fidelity brokerage account performance - Transaction import from CSV with deduplication - Automatic FIFO position tracking with options support - Real-time P&L calculations with market data caching - Dashboard with timeframe filtering (30/90/180 days, 1 year, YTD, all time) - Docker-based deployment with PostgreSQL backend - React/TypeScript frontend with TailwindCSS - FastAPI backend with SQLAlchemy ORM Features: - Multi-account support - Import via CSV upload or filesystem - Open and closed position tracking - Balance history charting - Performance analytics and metrics - Top trades analysis - Responsive UI design Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
5.8 KiB
5.8 KiB
myFidelityTracker - Project Summary
Overview
Complete MVP for tracking Fidelity brokerage account performance with transaction import, position tracking, and real-time P&L calculations.
What's Been Built
✅ Backend (Python/FastAPI)
- Database Models: Account, Transaction, Position (with junction tables)
- CSV Parser: Fidelity-specific parser with deduplication
- Services:
- Import Service (file upload + filesystem import)
- Position Tracker (FIFO matching, options support)
- Performance Calculator (with Yahoo Finance integration)
- API Endpoints:
- Accounts (CRUD)
- Transactions (list, filter, pagination)
- Positions (open/closed, stats)
- Analytics (overview, balance history, top trades)
- Import (upload + filesystem)
- Database: PostgreSQL with Alembic migrations
- Features: Deduplication, real-time P&L, market data caching
✅ Frontend (React/TypeScript)
- Components:
- Dashboard (metrics cards + charts)
- Account Manager (create/list/delete accounts)
- Import Dropzone (drag-drop + filesystem import)
- Transaction Table (filterable, sortable)
- Position Cards (open/closed with P&L)
- Performance Chart (balance over time)
- Metrics Cards (KPIs)
- Styling: TailwindCSS with Robinhood-inspired design
- State Management: React Query for data fetching
- Routing: Tab-based navigation
✅ Infrastructure
- Docker Compose: Multi-container setup (postgres, backend, frontend)
- Nginx: Reverse proxy for SPA routing + API proxying
- Multi-arch: Supports amd64 and arm64
- Volumes: Persistent database + import directory
- Health Checks: Service readiness monitoring
✅ Developer Experience
- Documentation:
- README.md (comprehensive guide)
- QUICKSTART.md (2-minute setup)
- API docs (auto-generated at /docs)
- Scripts:
- start.sh (automated startup with health checks)
- stop.sh (graceful shutdown)
- seed_demo_data.py (demo data loader)
- Environment: .env.example template
- Git: .gitignore configured
Key Features
Transaction Management
- Import via CSV upload or filesystem
- Automatic deduplication using SHA-256 hashing
- Support for stocks, calls, puts
- Handle assignments, expirations, rolls
Position Tracking
- Automatic FIFO matching
- Multi-leg position support
- Open vs. closed positions
- Partial position closes
- Average entry/exit prices
Performance Analytics
- Realized P&L (closed positions)
- Unrealized P&L (open positions with live prices)
- Win rate calculation
- Average win/loss metrics
- Top trades analysis
- Balance history charting
User Experience
- Clean, modern UI (Robinhood-inspired)
- Mobile-responsive design
- Real-time data updates
- Intuitive navigation
- Error handling with user feedback
Architecture
Data Flow
CSV File → Parser → Deduplication → Database (Transactions)
↓
Position Tracker (FIFO)
↓
Positions DB
↓
Performance Calculator + Yahoo Finance
↓
Analytics API
↓
React Frontend
Tech Stack
- Backend: Python 3.11, FastAPI, SQLAlchemy, PostgreSQL, Pandas, yfinance
- Frontend: React 18, TypeScript, Vite, TailwindCSS, React Query, Recharts
- Infrastructure: Docker, Docker Compose, Nginx
File Structure
fidelity/
├── backend/
│ ├── app/
│ │ ├── api/endpoints/ # API routes
│ │ ├── models/ # Database models
│ │ ├── schemas/ # Pydantic schemas
│ │ ├── services/ # Business logic
│ │ ├── parsers/ # CSV parsers
│ │ └── utils/ # Helper functions
│ ├── alembic/ # DB migrations
│ ├── Dockerfile
│ ├── requirements.txt
│ └── seed_demo_data.py
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── api/ # API client
│ │ ├── types/ # TypeScript types
│ │ └── styles/ # CSS
│ ├── Dockerfile
│ ├── nginx.conf
│ └── package.json
├── imports/ # CSV import directory
├── docker-compose.yml
├── start.sh
├── stop.sh
├── README.md
├── QUICKSTART.md
└── .env.example
Getting Started
Quick Start
cd /Users/chris/Desktop/fidelity
./start.sh
Access
- Frontend: http://localhost:3000
- Backend: http://localhost:8000
- API Docs: http://localhost:8000/docs
Demo Data
cp History_for_Account_X38661988.csv imports/
docker-compose exec backend python seed_demo_data.py
Testing Checklist
✅ To Test
- Start application (
./start.sh) - Create account via UI
- Import sample CSV
- Verify transactions imported
- Check positions calculated
- View dashboard metrics
- Test filters and sorting
- Verify P&L calculations
- Check responsive design
- Test re-import (deduplication)
Future Enhancements
- Additional brokerages (Schwab, E*TRADE, Robinhood)
- Authentication/multi-user
- Tax reporting (wash sales, capital gains)
- Email notifications
- Dark mode
- PDF export
- AI trade recommendations
- Backtesting
Notes
- Uses FIFO for position matching
- Market data cached for 60 seconds
- Options pricing uses Yahoo Finance (may not be perfect)
- Designed for personal use (single-user)
Status: ✅ MVP Complete and Ready for Testing Last Updated: January 2026