v2.7.0
TradeTally 2.7.0 is a major release headlined by a full dashboard redesign, a consistent theme-aware UI across the app, and substantial additions to analytics, investments, broker sync, and alerts.
Highlights
Command-center dashboard redesign
The legacy four-card dashboard is replaced by a focused two-column command center:
- Hero ribbon with net P&L, win rate, profit factor, current streak, today's snapshot, and a fill-to-width sparkline
- Win-rate gauge with W/L/BE tiles and a full stat ladder (avg win/loss, R/R, best/worst, expectancy, profit factor)
- Equity curve plus a monthly calendar heatmap (click a day to filter trades)
- AI insight carousel surfacing earnings and news context for open positions, with history-aware action recommendations (optional AI refinement on Pro / self-hosted)
- Risk and momentum signals for everyone (revenge proxy, hot/cold streak, position-size drift, outsized loss, win-rate drift), with the Pro behavioral pipeline layered on when available
- Inline customize mode: drag to reorder sections and toggle visibility, including the news/earnings rail
Theme-aware UI across the app
- A new theme-aware dropdown component replaces native select menus app-wide. It respects your theme color, supports search, and is never clipped inside scrollable cards or modals
- Hide individual strategies, setups, and tags so dropdowns only show what you actually use; hidden items stay attached to existing trades, and the remaining options are ordered most-used first (#332)
- Manual strategy selection and ordering during import
Analytics
- Breakeven-aware win rates everywhere: trades scratched at entry are classified by gross P&L (P&L + commissions + fees) instead of counting as fee-driven losses. Win rate is shown both including and excluding breakeven across the analytics card, trade list, hero ribbon, monthly totals, and the symbol/tag/strategy/hour breakdowns
- Per-instrument breakeven tolerance in ticks, with a default plus per-underlying overrides (e.g. ES 2, NQ 5); futures tick size auto-populates on trade create/update and backfills existing trades
- Section tabs added to Performance (Overview / By Time / By Symbol and Strategy / By Trade Size) and Behavioral Analytics (Overview / Patterns / Settings)
- Monthly page gains Tag and Strategy filters plus breakeven stats on every row
- MAE/MFE analytics charts (Maximum Adverse / Favorable Excursion) with a futures points mode and contract-multiplier support; post-exit MAE/MFE tracking, plus manual after-trade entry for futures and instruments without intraday data
Investments and portfolio
- Plaid funding sync: connect a bank or investment account on the Cashflow page to pull transfers into account cashflow. Synced transactions land in a review queue with bulk approve/reject/revert and an option to apply the same decision to other transactions with a matching description (e.g. recurring payroll or subscriptions)
- Rebalancing overhaul: recent daily P&L bar chart, an allocation editor that preserves unsaved edits with per-row save feedback and a "Save all" button, drift measured against normalized targets, and a rebalance impact summary (cash to buy, sell proceeds, net cash verdict, and realized P&L if every suggested sell were executed)
- Symbol-keyed portfolio targets settable on any position, including open-trade-derived ones
- Account comparison workflow: multi-select accounts for a side-by-side metric grid with deltas vs the leader, plus a dedicated comparison view; the Daily Win Rate chart now overlays a P/L ratio per day
- Inline-editable benchmark symbol in the performance chart heading; holdings/portfolio analysis enriched with daily portfolio snapshots
Broker sync, alerts, and notifications
- Direct OAuth broker sync adapters: connect Alpaca and TradeStation via OAuth, in addition to existing sync flows
- Price-alert webhook destinations: deliver alerts to Slack/Discord webhooks with a webhook manager and auto-detected provider type; iOS push notifications now fire on price-alert triggers
- Web mentions (beta): monitor the web for mentions of your holdings, surfaced on the holding detail view and a dedicated page
- Notifications: free tier can now mark notifications as read, plus a dismiss button
Trade journal and playbooks
- Playbook required-strategy/setup/tags fields now use dropdown pickers populated from your existing data, eliminating the case-sensitive typo class that silently broke rule matching
- Edit the color of existing tags (#320)
- Stock Valuation (DCF) analyzer: add a symbol to a watchlist or set a price alert directly from the analyzer (Pro)
Profile and account
- Tabbed profile split into Profile / Security / Notifications / Trading
- Upload, change, or remove a profile picture
- New billing-instance users receive an automatic 14-day Pro trial on registration
- Admin moved into the user popover with a tab strip across admin pages (Users, OAuth Applications, Testimonials, Backups)
Under the hood and fixes
- Canonical P&L engine: per-execution P&L is now computed once at write time by a single engine and stored, replacing three divergent FIFO implementations that could disagree across Calendar, Trade Detail, and totals. Includes a backfill with dry-run / apply / rollback modes
- Notional-aware position-size drift, so a 7-MES to 1-ES switch no longer reads as sizing down when notional actually grew (#330)
- Imports: fixed a crash when closing a position across multiple imports (#335); semicolon-delimited CSVs (NinjaTrader) with European decimal commas; Schwab option symbols normalized to the underlying and fractional-share Schwab CSVs supported; option metadata normalized across broker import paths; futures roots containing digits recognized (e.g. M2K)
- Scanner: 8-pillars count kept in sync with the detail view; fractional-market-cap stocks no longer dropped from the nightly scan
- Active/visible Finnhub quote requests prioritized for faster live quotes
- Auth: stale-cookie redirect loops resolved; transient DB errors return 503 instead of logging users out; auth-protected images load reliably (#328)
- Commission no longer double-counted on edit when one leg is zero-cost
- Backend startup staggered with cached auth lookups and deferred P&L backfill