TradeTally uses a simple two-tier system: Free and Pro ($8/month)
Tagline: "Get started journaling easily"
- Basic dashboard
- Unlimited trade journaling + core metrics (P/L, win rate, profit factor, etc.)
- Unlimited journal entries
- Calendar view (P/L per day)
- Leaderboard (view-only, top 10 rankings)
- Basic charts (equity curve, volume, performance by day)
- Trade import from brokers
- Trade tags (strategies, setups)
- Trades: Unlimited total trades
- Batch Import: Up to 100 trades per import (to prevent abuse)
- Journal Entries: Unlimited
- Watchlists: 0 (Pro only)
- Price Alerts: 0 (Pro only)
- Leaderboard: View-only (cannot participate)
- API Access: No
Price: $8/month Tagline: "Unlock your trading edge" Message: "Upgrade to Pro to understand why you win or lose - not just how often."
- Unlimited batch imports (no 100-trade import limit)
- Import large CSV files without restrictions
- Financial news feed (for open positions)
- Upcoming earnings calendar (for tracked symbols)
- SQN (System Quality Number)
- Kelly Criterion (optimal position sizing)
- MAE/MFE (Maximum Adverse/Favorable Excursion)
- K-Ratio (risk-adjusted performance)
- Sector breakdowns
- Time-of-day analysis
- Day of week patterns
- Per-symbol analytics
- Per-strategy analytics
- Revenge trading detection
- Overconfidence analytics (win streak position sizing analysis)
- Loss aversion (holding losers too long)
- Trading personality typing
- Behavioral alerts (real-time)
- Heart rate tracking (correlation with trading)
- Sleep tracking (quality vs performance)
- Stress tracking (stress level correlation)
- Up to 20 watchlists (100 symbols each)
- Up to 100 price alerts
- Email alerts
- iOS push notifications
- Real-time price monitoring
- Advanced filters (compare by strategy, timeframe)
- Participate in rankings
- View all rankings (unlimited)
- API access (10,000 calls/day)
- Webhooks
- AI Insights (powered by configurable AI providers)
- AI trade analysis
- Advanced filtering
- Custom metrics
- Export reports
- Automatic trade blocking (based on behavioral triggers)
Protected routes (require Pro tier):
/api/behavioral-analytics/*- All behavioral analytics/api/health/*- Health Analytics/api/watchlist/*- All watchlist features/api/price-alerts/*- All price alerts
Routes with requiresTier: 'pro' metadata:
/analytics/behavioral- Behavioral Analytics/analytics/health- Health Analytics/markets- Watchlists & Price Alerts/watchlists/:id- Watchlist Detail
The router checks tier and redirects free users to the pricing page:
if (to.meta.requiresTier) {
const requiredTier = to.meta.requiresTier
const userTier = authStore.user?.tier || 'free'
if (requiredTier === 'pro' && userTier !== 'pro') {
next({
name: 'pricing',
query: {
upgrade: 'required',
feature: to.name,
from: to.fullPath
}
})
}
}- Can see Pro features in navigation with "Pro" badges
- Can click on Pro features
- Will be redirected to pricing page when they try to access
- Pricing page will show which feature they tried to access
- Full access to all features
- Always have Pro tier access (automatic)
featurestable with 47 defined featuresusers.tiercolumn ('free' or 'pro')subscriptionstable for Stripe integrationtier_overridestable for admin manual tier assignments
/backend/src/config/tierLimits.js- Defines all tier limits and quotas/backend/src/services/tierService.js- Tier logic and feature access/backend/src/middleware/tierAuth.js- Middleware for protecting routes
// Check feature access
await TierService.hasFeatureAccess(userId, 'behavioral_analytics');
// Get user tier
const tier = await TierService.getUserTier(userId);
// Check trade limits
const canAdd = await TierService.canAddTrades(userId, 10);
// Get usage stats
const usage = await TierService.getUserUsageStats(userId);
// Get pricing info
const pricing = TierService.getPricing();
// Get tier comparison
const comparison = TierService.getTierComparison();- Self-hosted: Billing automatically disabled (all users get Pro features)
- SaaS (tradetally.io): Billing enabled, Stripe integration
- Admin users always get Pro tier
- Tier overrides allow manual Pro access with optional expiration
dashboardnews_feedearnings_calendarbasic_journalingtrade_importtrade_taggingcore_metricsbasic_chartscalendar_viewleaderboard_view
unlimited_tradesunlimited_journalsadvanced_analyticssqn_analysiskelly_criterionmae_mfek_ratiosector_breakdowntime_analysisday_of_weeksymbol_analyticsstrategy_analyticsbehavioral_analyticsrevenge_trading_detectionoverconfidence_analyticsloss_aversionpersonality_typingbehavioral_alertshealth_analyticsheart_rate_trackingsleep_trackingstress_trackingwatchlistsprice_alertsemail_alertspush_notificationsrealtime_monitoringleaderboard_filtersleaderboard_competeapi_accesswebhooksai_insightsai_trade_analysisadvanced_filteringcustom_metricsexport_reportstrade_blocking
"Unlock Kelly ratio, SQN, and advanced metrics with Pro - only $8/month."
"Upgrade to Pro to understand why you win or lose - not just how often."