Ghostfolio Evaluation Report
Date: 2025-01-20
Evaluator: John
Version Tested: Latest (Docker image)
Verdict: ❌ Not Viable for Production Use
Executive Summary
Ghostfolio was evaluated as a self-hosted portfolio tracking solution for managing investments across multiple brokerages (Fidelity, Charles Schwab, etc.). While the technical deployment was successful, the product itself lacks critical features necessary for serious portfolio management.
Recommendation: Do not deploy. Seek alternative solutions.
Technical Evaluation
✅ What Worked
Deployment & Infrastructure:
- Docker Compose setup deployed successfully
- PostgreSQL + Redis stack configured correctly
- Service health checks functioning
- Network isolation working as expected
- Port 3333 available and accessible
Integration Tooling:
- Export-to-Ghostfolio converter available
- CSV import workflow technically functional
- Yahoo Finance price integration working
- Multi-broker support (26+ brokers)
Self-Hosting:
- Privacy-focused architecture
- No external data sharing
- Full control over data
- Open source (AGPL-3.0)
❌ What Didn't Work
Portfolio Performance Analytics:
- Insufficient performance metrics
- Limited historical analysis capabilities
- Basic charting and visualization
- Missing advanced attribution analysis
- No tax-loss harvesting tools
- Limited benchmark comparison options
Integration & Workflow:
- No direct brokerage API integration
- Manual CSV export/import required
- Labor-intensive for regular updates
- No automatic position syncing
- Requires third-party conversion tools
- Friction in multi-account workflows
Feature Gaps:
- Limited customization for complex portfolios
- Basic reporting capabilities
- Missing dividend tracking features
- No options/derivatives support
- Limited asset class coverage
- Insufficient rebalancing tools
User Experience:
- Manual data entry burden
- No mobile app for quick updates
- Limited automation capabilities
- Steep learning curve for CSV workflow
Use Case Analysis
Required Features (Not Met)
Portfolio Tracking:
- ❌ Automatic position syncing from brokerages
- ❌ Real-time portfolio updates
- ❌ Advanced performance attribution
- ❌ Tax-lot tracking and reporting
- ❌ Comprehensive dividend/income tracking
Performance Analytics:
- ❌ Time-weighted return (TWR) calculations
- ❌ Money-weighted return (MWR/IRR) analysis
- ❌ Risk-adjusted performance metrics
- ❌ Sector/asset allocation analysis
- ❌ Custom benchmark comparisons
Workflow Efficiency:
- ❌ Direct brokerage integration
- ❌ Automated data refresh
- ❌ Bulk transaction import
- ❌ Mobile access for quick checks
Partially Met Features
Basic Tracking:
- ✅ Manual transaction entry
- ✅ Multi-account support
- ✅ CSV import (with conversion)
- ⚠️ Price updates (Yahoo Finance only)
Visualization:
- ✅ Basic portfolio charts
- ✅ Asset allocation pie charts
- ⚠️ Limited historical views
- ❌ Advanced analytics dashboards
Comparison to Alternatives
Commercial Solutions (Better Fit)
Personal Capital / Empower:
- ✅ Direct brokerage integration
- ✅ Automatic syncing
- ✅ Advanced analytics
- ✅ Mobile apps
- ❌ Not self-hosted
- ❌ Privacy concerns
Mint (Intuit):
- ✅ Direct integration
- ✅ Automatic updates
- ⚠️ Basic investment tracking
- ❌ Not self-hosted
- ❌ Privacy concerns
Self-Hosted Alternatives
Portfolio Performance:
- ✅ Advanced analytics
- ✅ Better reporting
- ⚠️ Still requires manual CSV import
- ✅ More mature feature set
Custom Beancount Solution:
- ✅ Already deployed
- ✅ Full control
- ✅ Powerful query language
- ❌ Requires custom tooling
- ⚠️ Steeper learning curve
Decision Rationale
Why Ghostfolio Was Rejected
-
Manual workflow too burdensome: Exporting CSVs from multiple brokerages, converting formats, and importing regularly is not sustainable for active portfolio management.
-
Insufficient analytics: Missing critical performance metrics needed for informed investment decisions (TWR, IRR, risk metrics, attribution analysis).
-
No direct integrations: Lack of API connections to major US brokerages (Fidelity, Schwab) makes it impractical for real-time tracking.
-
Product maturity: While technically functional, Ghostfolio is not mature enough for serious portfolio management needs.
-
Better alternatives exist: Both commercial solutions (with trade-offs) and other self-hosted options provide better feature sets.
What Would Make Ghostfolio Viable
Critical additions needed:
- Direct brokerage API integrations (Plaid, Yodlee, or native)
- Advanced performance analytics (TWR, MWR, attribution)
- Automated data refresh capabilities
- Tax-lot tracking and reporting
- Options/derivatives support
- Mobile app for quick access
Timeline: These are fundamental architectural features that would require significant development. Not expected in near term.
Lessons Learned
Technical Success
The evaluation process validated:
- Docker deployment methodology works well
- Service documentation approach is effective
- One-shot setup script pattern is valuable
- Health checks and monitoring are essential
Product Evaluation Process
What worked:
- Quick technical deployment allowed rapid evaluation
- Hands-on testing revealed feature gaps
- Documentation review identified limitations early
What to improve:
- Could have researched feature set more thoroughly before deployment
- Should create evaluation criteria checklist before testing
- Need to balance technical feasibility with product viability
Recommendations
Immediate Actions
- Do not deploy Ghostfolio to production
- Archive deployment files for future reference
- Document evaluation for future tool assessments
Alternative Paths
Option A: Commercial Solution (Recommended)
- Evaluate Personal Capital / Empower
- Accept privacy trade-offs for functionality
- Use for portfolio tracking only
- Keep sensitive data in Beancount
Option B: Enhanced Beancount
- Build custom portfolio analytics on Beancount
- Leverage existing transaction data
- Create custom reporting dashboards
- Maintain full privacy and control
Option C: Wait and Monitor
- Track Ghostfolio development
- Re-evaluate in 6-12 months
- Monitor for API integration features
- Consider contributing to project
Conclusion
Ghostfolio represents a promising direction for self-hosted portfolio management, but is not yet mature enough for production use. The technical deployment was successful, validating our infrastructure approach, but the product lacks critical features for serious portfolio tracking.
Final Verdict: Not recommended for deployment at this time.
Preserve: Technical documentation and deployment files for future reference or re-evaluation.
Next Steps: Evaluate alternative solutions that better meet portfolio tracking requirements.
Evaluation Completed: 2025-01-20
Files Preserved: 97 Kiro/ghostfolio/ (archived, not deployed)
Status: Evaluation complete, product rejected