Releases: GeneBO98/tradetally
Releases · GeneBO98/tradetally
v2.4.1
TradeTally v2.4.1
Released: April 13, 2026
TradeTally v2.4.1 rolls up the latest develop changes into main, with fixes for trade P&L accuracy, CSV import resilience, account filtering, and IBKR futures confirmation parsing, plus a few quality-of-life improvements across the app.
Highlights
- Fixed open-position P&L calculations and related dashboard summaries so gross P&L and open-trade totals stay accurate.
- Improved import parsing for malformed Tradovate rows and IBKR futures trade confirmations.
- Added shared stock logo support across symbol views and updated the home page with an iOS App Store section.
Fixes And Improvements
- Fixed account filtering behavior in views that summarize open trades.
- Improved dashboard request performance.
- Ignored additional local generated data and documentation files to keep release branches clean.
- Updated the navigation and related UI flows to support the latest account-filter and symbol metadata changes.
Upgrade Notes
- This release is backward-compatible and does not introduce intended breaking changes.
TradeTally v2.4.0
TradeTally v2.4.0
Released: April 7, 2026
TradeTally v2.4.0 adds new account configuration and automated trade-analysis capabilities, improves the import workflow, and hardens CSV parsing across several ThinkorSwim and PaperMoney edge cases.
Highlights
- Added a display currency setting for non-USD users so P&L, commissions, prices, and analytics can be shown in a selected account currency while market data remains in USD.
- Added automatic MAE/MFE calculation for eligible closed trades using Finnhub candle data for Pro users on trade creation, update, and import workflows.
- Improved import UX, including better import result handling and related dashboard flow updates.
Fixes And Improvements
- Fixed ThinkorSwim CSV imports to support options contracts, including option metadata parsing and correct contract multipliers.
- Fixed pre-import validation so ThinkorSwim files can find the actual header row more reliably.
- Fixed ThinkorSwim imports to stop parsing at the Cash Balance section boundary.
- Fixed CSV imports that include Excel-style formula notation before parse time.
- Fixed duplicate same-second CSV fills during parsing.
- Fixed PaperMoney futures P&L calculation.
- Fixed analytics currency formatting crashes introduced by the new currency-display flow.
- Fixed Pro chart entitlement checks so eligible Pro users are not blocked from chart visualization.
- Fixed admin and owner accounts being shown unnecessary upgrade prompts for chart features.
- Fixed initial balance dates for new accounts so they default to the earliest trade date when appropriate.
- Fixed backend startup permissions for upload and log directories in non-root deployments.
- Removed the stale
docker-compose.example.yamlfile from the repository.
Upgrade Notes
- Run the latest backend migration before deploying this release. This release adds migration
170_add_display_currency.sql. - Auto-calculated MAE/MFE relies on Finnhub candle data and is only applied for eligible Pro users.
- This release is backward-compatible and does not introduce intended breaking changes.
What's Changed
Full Changelog: v2.3.1...v2.4.0
v2.3.1
Full Changelog: v2.3.0...v2.3.1
v2.3.0
What's New
Features
- Behavioral Analytics & Playbook Adherence - Add playbook adherence reviews and behavioral analytics
- TraderVue CSV Import - Import trades from TraderVue CSV exports
- AvaTrade Parser - Add AvaTrade parser and CSV localization layer for non-English exports
- Multiple IBKR Flex Query Connections - Support multiple IBKR Flex Query connections per user
- Partial Exit Analytics - New analytics page for partial exits with min eligible trades filter
- Watchlist 8 Pillars Auto-Analysis - Automatically load and persist 8 Pillars analysis for watchlists
- Guided Onboarding Flow - Add guided onboarding and sample data management
- In-App Support Contact Form - Replace mailto link with in-app support contact form
- Twenty CRM & Invoice Ninja Sync - Add Twenty CRM and Invoice Ninja sync services
- Subscription Management - Add direct cancel and reactivate subscription endpoints
- Account Aliases - Add account aliases to global account filter
- Pro Tier Enforcement - Enforce Pro tier on API keys, webhooks, leaderboards, and partial exits
- Review Request Emails & Testimonials - Add review request email and testimonials system
- Homepage Redesign - Redesign homepage to lead with behavioral analytics
- User Activity Tracking - Add granular user activity tracking for marketing, analytics, and CRM
- Admin Enhancements - Modernize admin analytics with auto-refresh, consolidated cards, and server-side user filtering
- Email Improvements - Add subscription welcome email, tier-tagged support links, email logging, and brand colors
- Unlinked Account Identifiers - Add unlinked account identifiers and sample data endpoints
- Import View Overhaul - Improved UX and expanded broker support
- Active Connections Indicator - Add active connections indicator to platform analytics page
Bug Fixes
- Fix P&L showing $0 in trade detail and sync quick-add accounts
- Preserve execution data on split trades (#283)
- Scope duplicate detection per account during import (#282)
- Prevent groupTrades() from merging separate round-trips of same option
- Correct P&L calculation for commission rebates and execution consistency
- Use exact trade P&L in calendar view when all exits are on same date
- Sanitize Alpha Vantage "None" strings in dividend date fields
- Same-day Schwab sync returning 0 transactions (#274)
- Merge duplicate open positions caused by incomplete option metadata (#266)
- Reduce import page load time for faster file picker response (#259)
- Repair 2FA login broken by auth hardening
- Improve import UX, OAuth feedback, checkout error handling, and billing button visibility
- Dynamically generate dashboard month filter options
- Auto-login for new accounts
Security & Infrastructure
- Harden auth, webhooks, billing, and logging
- Address security scan findings across frontend and backend
- Harden backup file handling
- Remove stale analytics integration, replaced by PostHog
- Restore multi-arch Docker builds (amd64 + arm64)
- Pin Docker base image to alpine3.21 to resolve zlib vulnerabilities
- Add release automation workflows
- Reduce prod API error noise
- Bump GitHub Actions to latest versions
Full Changelog
v2.2.1
New Features
- WebAuthn/Passkey login support - Passwordless authentication via biometrics and security keys
- Shell trade and fill order API endpoints - New API for creating shell trades and filling orders
- Automated trial conversion emails - Personalized emails with admin tracking
- Cookie consent banner - GDPR-compliant PostHog analytics consent
- Comprehensive CSV parser test suite - CI test gate for parser changes
Performance
- Eliminate live Finnhub calls from page loads - Cache analytics until invalidated, significantly reducing API calls
- Prevent unnecessary earnings/news re-fetches during auto-update cycles
Bug Fixes
- iOS app connectivity - Server discovery endpoints now use
INSTANCE_URLenv variable, fixing HTTPS detection behind reverse proxies - IBKR broker sync - Multiple fixes for duplicate trade/execution detection, multi-day positions, and Flex Query multi-section CSV support
- CSV parser timezone - Convert import times to UTC using user's timezone
- Alpaca - Fixed options price fetching
- TradingView - Unified parsers into single broker with auto sub-format detection, futures support, lastTradeEndTime error fix
- Webull - Support alternate CSV export format
- Lightspeed - Fix parseLightspeedTransactions return value
- Tradovate - Fix date parsing and auto-close expired options on broker sync
- Calendar - Fixed risk context, totals display, and added YTD profit
- R-Multiple - Use backend weighted_target_r for planned risk:reward consistency
- API key auth - Fix authentication on GET /trades/:id
- Partial fills - Fix closing trades prematurely
- Strategy filter - Fix strategy filter behavior
- Time period filter - Include exit dates in filtering
- Account identifier - Fix overflow display issue
Improvements
- Updated date handling with support for multiple target hit analysis entries
- Improved import page responsiveness
- IBKR flex query sync now includes older trades
- Hardened backend against Snyk code findings
- Added nginx security headers
- Direct SQL for broker sync operations (replacing ORM for reliability)
- Docker build compatibility fixes
v2.2.0
New Features
- Tastytrade CSV Parser - Full support for importing trades from Tastytrade, including correct average price calculation (divides out multiplier for options)
- TradingView Parser Improvements - Case-insensitive header matching, handles missing Closing Time field, support for TradingView Performance and Paper trading exports
- TradeStation Support - Added CSV parser for TradeStation exports
- Persistent Historical Price Cache - New
historical_pricesdatabase table stores all fetched OHLCV data permanently. Alpha Vantage chart requests now check DB before calling the API, dramatically reducing usage of the 25 calls/day free tier limit. Finnhub quotes, crypto quotes, and the price monitoring service all persist prices to this cache automatically - Price-First Position Quotes - Open positions and holdings now read from the
price_monitoringcache (updated every 30 seconds) before hitting Finnhub, significantly reducing API calls - Deferred Email Verification - New users get a 7-day grace period before email verification is enforced, simplifying the registration flow
- Email Template Redesign - Modern minimal email templates with consistent branding
- Email Unsubscribe - Users can now unsubscribe from email communications directly from email links
- Import Help UX - When a supported broker import returns 0 trades, a "Need Help?" section appears with links to documentation and a pre-filled support ticket
- Charts on Trade Creation - Support for adding charts and images to trades during creation (not just after)
- Manual Premium Input for Open Options - Auto-calculated P&L is hidden for open options; users can input manual premium instead
- Dockerignore - Added
.dockerignorefile for faster, smaller Docker builds
Bug Fixes
- Fixed CUSIP queue race condition causing duplicate processing
- Fixed IBKR partial exit trades creating mixed execution format
- Fixed missing
sidefield for IBKR partial-close executions in edit form - Fixed missing
entryTimein partial-close executions across all parsers - Fixed IBKR broker sync CSV parser issues
- Fixed TradingView parser failing on case-sensitive headers
- Fixed trade filters defaulting incorrectly (now defaults to All Time) and active filter count
- Fixed journal calendar date handling and Tastytrade date parsing
- Fixed back button reliability and date dropdown element on dashboard
- Fixed JWT user lookup in
flexibleAuthmiddleware - Fixed registration validation and password placeholder display
- Fixed AI provider configuration for OpenAI
- Fixed
update-native.shcompatibility withshand working directory - Resolved npm dependency vulnerabilities via overrides
Performance & Infrastructure
- Analytics Performance Indexes - New database indexes for faster analytics queries
- Trade Dropdown Optimization - Switched trade dropdown functions to reduce page load times
- Frontend Performance - Multiple rounds of performance improvements across views
- Removed Unused Finnhub Methods - Cleaned up dead API code
- Repository Cleanup - Moved scripts to
scripts/directory, removed stale utility files, deleted legacy migration scripts and test data - SEO Improvements - Updated meta tags, sitemap, robots.txt, and public-facing pages
- Docker CI Workflow - Refactored for clearer branch/tag build triggers (develop -> nightly, main -> latest, tags -> versioned)
Security
- Secret Handling Hardened - Sensitive values are now redacted in all logging output
- API Key Auth on Trade Endpoints - Main trade endpoints now accept API key authentication
- Dependency Updates - Express 4.22.0 -> 4.22.1, Vue 3.5.26 -> 3.5.27, plus frontend/backend vulnerability fixes
UI/UX
- Public Pages Overhaul - Redesigned landing, features, pricing, and FAQ pages
- Frontend Design Updates - Refreshed styling across multiple views
- Dashboard Improvements - Better layout and date dropdown behavior
Migration Notes
- Run
npm run migrateto create the newhistorical_pricesand analytics index tables - No breaking API changes
- Docker image:
potentialmidas/tradetally:2.2.0(pinned) orpotentialmidas/tradetally:latest
v2.1.8
New Features
- Trade Splitting - Split grouped trades and select specific executions to separate
- IBKR Japan Support - Added support for IBKR Japan Flex Query export format
- Dollar Stop Loss - Can now set stop loss as a fixed dollar amount
- Time Display Preference - Configurable time display format in settings
- Schwab Fallback Price Source - Self-hosted instances can use Schwab as fallback for price data when Finnhub limits are hit
- Unsorted Account Filter - Filter to show trades without account assignment
- Configurable Finnhub Rate Limits - Self-hosted users can configure API rate limits
- Execution-Level Calendar P&L - More granular P&L tracking in calendar view
- Nightly Docker Builds - Develop branch now triggers
nightlyDocker image builds
Bug Fixes
- Fixed commission being lost when editing trades with execution fees=0
- Fixed duplicate detection bug in IBKR parser
- Fixed Alpha Vantage chart data to use daily-only for free tier compatibility
- Fixed Management R calculation with commission-adjusted Actual R
- Fixed Target P&L direct calculation and R-Performance commission adjustment
- Fixed Management Impact R-value calculations for multi-target trades
- Fixed LoD calculation to get "to the left" instead of actual day low
- Fixed P&L calculation for partial exits
- Fixed calendar P&L calculations and fee handling
- Fixed trades store not refreshing after import log deletion
- Fixed JSON handling in backup/restore
Improvements
- Better CSV header tracking for import reliability
- More comprehensive backup data coverage
- Auto-complete suggestions for Symbols on watchlists and stock analyzer
- Improved parser failure tracking
- Better error handling for import issues
- Updated Schwab auto parser
- Trade management page now shows chart number on trade list
v2.1.7
What's New in v2.1.7
New Features
- Trade Management with R-Multiple Analysis - Enhanced trade tracking with R-multiple calculations for better risk management
- Questrade Broker Support - Full integration for Questrade users including import and sync
- Stock Analyzer Tool - New comprehensive stock analysis tool with DCF valuation, PE ratios, and P/FCF metrics
- Cryptocurrency Support - Added support for tracking cryptocurrency trades
- Financial Statements - View company financial statements directly in the app
- Account ID Support for CSV Imports - Better handling of multi-account imports
Improvements
- Improved options and futures calculations with templates
- Enhanced grouping for options trades
- Better AI analysis rendering
- Stock scanner improvements with Russell 2000 support
- Background task optimization for prioritizing user API requests
- Date filter for accounts and cashflows
- Hideable unused trade edit options
Bug Fixes
- Fixed R-Multiple calculation - Now correctly uses stop loss (risk-based) instead of take profit
- Fixed duplicate detection in Schwab parser
- Fixed Questrade partial position during import
- Fixed Interactive Brokers sync issues
- Fixed calendar for closed trade dates with improved color gradients
- Fixed options not auto-closing and commission rebate issues
- Fixed parser case sensitivity
- Fixed commissions being added to short positions incorrectly
- Fixed double commission sum in accounts and cashflows
- Fixed timezone issues for analytics
- Fixed 8 Pillars symbol lookup
- Fixed tag dropdown visibility
Security
- OWASP security updates
- Multiple Snyk vulnerability fixes
- Upgraded dependencies for improved security
Note: Run node recalculate_r_values.js in the backend directory to update R-values for existing trades.
v2.1.6 - 8 Pillars Investment Analysis
What's New
8 Pillars Investment Analysis
- Added Paul Gabrail's value investing methodology for stock analysis
- Investment screener with symbol search
- Portfolio holdings tracking with cost basis and lots
- Dividend tracking integration
- Watchlist integration with 8 Pillars analysis tab
- Stock price charts with multiple timeframes
- Cached analysis results for performance
Broker Sync Improvements
- Enhanced Schwab broker sync integration
- Sync frequency options for IBKR
- Fixed Schwab broker grouping and trade deletion
- Fixed IBKR options parsing issues
- Better cache updating from broker syncs
Year Wrapped Feature
- Added Year Wrapped slides
- Fixed streaks wrap-up slide
Bug Fixes
- Fixed timezone issues with admin user analytics
- Fixed Webull P&L percentage calculations
- Fixed quantity discrepancy on trades table
- Fixed filter issues and P&L % change after edit
- Fixed commission decimal limits
- Fixed 0 price allowance for expired options
- Resolved frontend inconsistencies
Admin Features
- Added analytics page for admin users
Dependencies
- Upgraded Vue from 3.5.24 to 3.5.25
- Upgraded various npm packages (axios, sharp, node-gyp, @anthropic-ai/sdk)
v2.1.5 - Broker Sync for IBKR & Schwab
What's New
Broker Sync
- Interactive Brokers (IBKR) - Automated trade sync via Flex Query
- Charles Schwab - OAuth-based trade sync with automatic token refresh
- Resolved Options P&L calculation for IBKR
Improvements
- Enhanced CSV transaction parsing with multiplier support
- Tag autocomplete in trade form
- Mobile UI consistency improvements
- Performance optimizations across dashboard and trade loading
- Improved date formatting consistency using formatTradeDate utility
Fixes
- Fixed Schwab CSV importer position detection
- Fixed execution detection logic for Schwab
- Fixed trades with same entry time handling
- Fixed Tradovate grouping P&L issue
- Fixed dashboard laggy loading
- Fixed date parsing issues
- Fixed commission rebates (issue #113)
- Fixed backup/restore functionality
- Fixed export and P&L discrepancy
Infrastructure
- Multi-platform Docker build support
- Backup service refactoring with improved error handling
Dependencies
- Updated vue-chartjs, marked, axios, vue, vue-router
- Security vulnerability fixes