← Back to Home
✨ Multi-Provider CSV Import System
- 9 broker parsers — M1 Finance, Robinhood, Charles Schwab, Fidelity, TD Ameritrade, Trading 212, eToro, Coinbase, Interactive Brokers (IBKR)
- Auto-detection engine — automatically identifies your broker from CSV format with manual override option
- File picker with drag-and-drop — upload CSV files directly or paste text
- Preview table with inline editing — review and edit symbol, name, quantity, and type before importing
- Row removal — remove unwanted assets from preview before import
- Manual column mapper — generic fallback for unsupported CSV formats; map your columns to Symbol/Name/Quantity
- Crypto symbol resolver — converts plain crypto symbols (BTC, ETH) to Finnhub format (BINANCE:BTCUSDT)
- Person assignment — assign to Person 1, Person 2, or Both (50/50 split)
- 4-step wizard UI — Load → Review & Edit → Assign Person → Import with progress indicators
- Provider detection badge — shows detected broker with override dropdown
- Import summary — displays assets added vs updated after import
- Fully responsive mobile design — 2x2 grid layout for steps, optimized touch targets
- Dynamic person names loaded from app settings
✨ Chart Time Range Filters
- Portfolio Value Over Time (History page) — now has 7D / 30D / YTD / All filter buttons
- Daily Gain / Loss (Charts page) — now has 7D / 30D / YTD / All filter buttons
- Cumulative Return (%) (Charts page) — now has 7D / 30D / YTD / All filter buttons; base value recalculates relative to the start of the selected window
- Portfolio Composition Over Time (Charts page) — now has 7D / 30D / YTD / All filter buttons
- Smart empty states — when a filter is active with no matching snapshots, a specific message is shown (e.g. “No snapshots found for the last 7 days”)
🐛 Bug Fixes
- Portfolio Composition Over Time was blank even with multiple snapshots — snapshots saved before the
byType field was introduced were being silently excluded; older snapshots now render with zero values per category
- Navigation bar not spanning full viewport width on all screen sizes — fixed using
calc(100% + 40px) to correctly break out of body padding on desktop, with a matching mobile override
🔄 Changes
- API Key Banner refactored from inline styles to proper CSS classes with a responsive
@media breakpoint — content stacks vertically and the Settings button goes full-width on mobile
✨ New Pages
- Added FAQ page — accordion-style with 5 sections: General, Privacy & Data, API Keys, Assets & Tracking, Troubleshooting
- Added About page — project values, principles, tech stack, and credits
- Rebuilt User Guide — full redesign with nav bar, table of contents, numbered steps, feature grids, and site footer
📊 New Charts
- Daily Gain/Loss — green/red bar chart from snapshot history
- Savings vs Invested — donut split between market-exposed assets and savings
- Composition Over Time — stacked bar showing asset mix shift across snapshots
- Cumulative Return — % return line chart from first snapshot to present
- Performance Scatter — each asset plotted by daily % change vs total value (savings excluded)
- New charts positioned above Top/Bottom performers section
- Top/Bottom performers reduced from 10 to 5 for cleaner display
📈 History Chart
- Line chart on History page showing Combined, Person 1, and Person 2 portfolio values over time
- Snapshots now record per-person values and asset-type breakdown (Stocks, Crypto, Metals, Savings)
🔄 Changes
- Removed duplicate Combined Total card from Portfolio page (Total Value card already covers this)
- FAQ and About links added to all page navigation bars and site footers
- Sitemap updated with FAQ and About pages
- Fixed missing Twitter Card meta tags on 404 page
- Guide page crypto symbol format corrected (Finnhub format
BINANCE:BTCUSDT, not CoinGecko IDs)
📱 Mobile Improvements
- Comprehensive mobile CSS overhaul — charts, tables, modals, quick stats, and controls now fully responsive
- Charts container switches to single column on mobile
- Asset table scrolls horizontally on small screens
- Search and action buttons stretch full width on mobile
📱 Mobile Improvements
- Summary cards now display in compact 2-column layout on phones (previously single column)
- Combined Total card moved to top and spans full width on mobile for better visibility
- Combined Total card text centered on mobile devices
- Navigation bar alignment fixed and optimized for mobile view
- Reduced card padding and gaps for more efficient use of screen space
- Person breakdown cards (summary-grid) optimized with smaller fonts and tighter spacing
- Overall improved visual hierarchy and space utilization on smaller screens
✨ New Features
- Dynamic person names in Charts page - comparison chart title now updates based on custom names set in settings
- Modal requires explicit closing - asset add/edit window can only be closed via X, Cancel, or Save buttons (no accidental dismissal)
🐛 Bug Fixes
- Fixed News page API key loading - now properly reads Finnhub API key from localStorage settings
- Charts page now shows correct dynamic names instead of hardcoded "Dean vs Sam" (defaults to "John vs Maria")
🔧 Changes
- Removed dividend fields from asset add/edit modal (simplified form)
- Added 60px top margin to modal for better spacing from navigation bar
- Quantity adjustment controls now display inline (compact horizontal layout for + Add / − Remove buttons)
- Streamlined asset management interface for faster data entry
✨ New Features
- Comprehensive SEO meta tags across all pages (descriptions, keywords, canonical URLs)
- Open Graph tags for enhanced social media sharing on Facebook and LinkedIn
- Twitter Card tags for better link previews on Twitter
- Robots meta tags for appropriate indexing (public pages indexed, private tools excluded)
- Enhanced page titles with descriptive keywords for better search visibility
- API key initialization in History page from stored settings
🐛 Bug Fixes
- History page now properly loads API keys from localStorage (no more "API key not configured" errors)
- Crypto price fetching now works correctly when refreshing from History page
- Current Value in History page now displays change amount and percentage from previous snapshot
- Change($) and Change(%) columns in snapshot history now show proper green/red color coding
🔧 Changes
- Updated all canonical URLs and OG tags with actual domain (freeportfoliotracker.com)
- Improved SEO visibility for landing, guide, privacy, terms, and updates pages
- Enhanced meta descriptions for better search engine click-through rates
- Made internal app pages (portfolio, history, charts) noindex to keep user data private
- Added color-coded change indicators throughout History page for better visual feedback
✨ New Features
- Transaction tracking system - automatically records all portfolio changes (bought, sold, increased, decreased)
- Expandable transaction history in History page - click to view transactions for each day
- Live transaction value calculations showing quantity × current stock price
- Color-coded transaction badges (green for bought/increased, red for sold/decreased)
- Persistent sticky navigation bar across Portfolio and History pages
- Centered navigation layout for better visual balance
🐛 Bug Fixes
- Fixed sticky navigation positioning (now stays at top when scrolling)
- Resolved overflow-x issues that prevented sticky behavior
- Improved horizontal scroll containment in asset tables
🔧 Changes
- Improved transaction terminology: "Bought" instead of "Added", "Sold" instead of "Decreased"
- Replaced transaction icons (📈 for bought instead of ➕)
- Simplified transaction display by removing verbose calculation breakdowns
- Navigation bar now extends full width with proper margins
- Changed overflow-x from hidden to clip for better sticky support
- Updated body padding to accommodate sticky navigation
🐛 Bug Fixes
- Fixed cookie consent "Accept" button functionality
- Resolved Google Analytics and GTM loading issues
✨ New Features
- Cookie consent system now available on all pages
- Complete analytics coverage across the entire app
🔄 Changes
- Switched from Buy Me a Coffee to Ko-fi for donations
- Updated support links and branding throughout
✨ New Features
- Professional favicon and app icons added
- Toast notifications and loading overlays for better feedback
- Clickable logo in app header linking to landing page
- Smooth animations throughout the entire interface
- Enhanced hover effects on buttons, tables, and cards
✨ New Features
- GDPR-compliant cookie consent banner
- Terms of Use page with comprehensive usage terms
- Custom domain support (freeportfoliotracker.com)
- Privacy-first analytics (opt-in only)
✨ New Features
- Google Analytics 4 and Google Tag Manager integration
- Smart symbol search with real-time autocomplete
- Keyboard navigation for search (arrow keys, Enter, Escape)
- Setup banner for missing API keys
- Enhanced security with XSS protection
🔄 Changes
- License changed from MIT to CC BY-NC-SA 4.0
- App renamed to "Free Portfolio Tracker"
- Improved demo data with realistic diversified portfolio
🎉 Initial Release
- Multi-asset portfolio tracking (stocks, crypto, metals, savings)
- Track holdings for up to 2 people with customizable names
- Real-time price updates from trusted APIs
- 100% privacy-first - all data stays on your device
- Import/Export portfolios as JSON or CSV
- Historical performance tracking with snapshots
- Beautiful dark theme UI with responsive design
- Search, filter, and sort your entire portfolio
- No installation required - works in any browser