Skip to content

Releases: GeneBO98/tradetally

v2.4.1

14 Apr 03:30

Choose a tag to compare

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

08 Apr 04:35

Choose a tag to compare

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.yaml file 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

03 Apr 14:48

Choose a tag to compare

Full Changelog: v2.3.0...v2.3.1

v2.3.0

03 Apr 01:10

Choose a tag to compare

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...v2.3.0

v2.2.1

11 Mar 23:30

Choose a tag to compare

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_URL env 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

24 Feb 16:04

Choose a tag to compare

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_prices database 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_monitoring cache (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 .dockerignore file 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 side field for IBKR partial-close executions in edit form
  • Fixed missing entryTime in 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 flexibleAuth middleware
  • Fixed registration validation and password placeholder display
  • Fixed AI provider configuration for OpenAI
  • Fixed update-native.sh compatibility with sh and 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 migrate to create the new historical_prices and analytics index tables
  • No breaking API changes
  • Docker image: potentialmidas/tradetally:2.2.0 (pinned) or potentialmidas/tradetally:latest

v2.1.8

10 Feb 21:09

Choose a tag to compare

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 nightly Docker 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

27 Jan 01:31

Choose a tag to compare

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

14 Jan 20:49

Choose a tag to compare

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

02 Jan 16:37

Choose a tag to compare

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