TRADE WITH
PRECISION.
MASTER YOUR
PSYCHOLOGY.
The only trading journal that enforces discipline at the server level. Built for serious prop traders — track every trade, every emotion.
Everything you need to
master the game
Six integrated modules working together — from trade capture to AI analysis to psychological enforcement.
HIGH-FIDELITY
TRADE JOURNAL
Every trade. Every emotion. Every R-multiple mapped against your psychological state at execution. This isn't logging — it's behavioral forensics.
DISCIPLINE AUDIT
& LOCKOUT
Three hard-coded enforcement layers built directly into the Django backend. There are no overrides. There are no exceptions.
DailyReview is detected server-side. Terminal stays locked until resolved.is_locked_out flag fires server-side. Your terminal enforces a hard stop — no override exists.Audit Debt Detected
You disconnected on Apr 10, 2026 without completing your End-of-Day Review. Settle this record to unlock the terminal.
LIVE COMMUNITY
FEED
Share your best setups publicly. Get peer review from other traders. Browse live trades and learn from the network's execution discipline.
Select Your Tier
Upgrade your terminal. Master your psychology. Build your edge.
Starter
Free forever
Pro
For serious traders
Elite
Everything in Pro, plus:
Institutional-grade encryption. Cancel anytime.
FREQUENTLY ASKED QUESTIONS
Everything you need to know before you deploy capital.
When you trade during a session but close your browser without completing the End-of-Day Review in the Routines page, Pipgrow's backend detects a missing DailyReview record for that date. The next time you open the dashboard, a full-screen modal blocks access until you retrospectively log your closing emotional state and rule compliance. Enforced server-side in views.py — no bypasses.
The Routines page sums all net_pnl values in your TradeLog for today. If the total hits -$500.00, the is_locked_out flag is set to True, the progress bar turns red, and a lockout banner appears. The threshold is defined in views.py as daily_loss_limit = -500.0 and can be adjusted to match your personal risk parameters.
The import uses a Smart Scanner in upload_csv(). It scans for the real header row by looking for keywords like DATE or PAIR, skipping decorative rows. Column matching uses fuzzy keyword search via get_value(), which strips emojis and whitespace before comparing. Also auto-detects semicolon-delimited European Excel formats. Supported date format: YYYY.MM.DD HH:MM:SS.
A 3-pillar chronological table built in dashboard_view() that reconstructs every trading day as a narrative. For each day it shows your Morning Check-In mood (Pillar 1), every trade with its emotion tag (Pillar 2), and your End-of-Day Review result with rule compliance (Pillar 3). Navigate between days using arrow controls. It shows exactly how your emotional state at session start predicts P/L by end of day.
For every day with a completed DailyReview, the dashboard sums the P/L of all trades. If the review shows both respected_stop_loss and no_fomo_entries are True, that day's P/L goes into the "Rules Followed" bucket. Otherwise it's in "Rules Broken." The resulting two figures directly quantify the financial cost of your discipline decisions over time.
The pricing page is currently a UI prototype — payment processing has not been implemented in this version. The Pro tier is presented as a product vision. In the current build, all features are accessible to registered users. Stripe payment gateway integration is the next development milestone after the academic defence.
Pipgrow uses a custom Django middleware class called TimezoneMiddleware. On every request, it reads the user's UserProfile.timezone field (a pytz timezone string) and calls timezone.activate(). All DateTimeField values — including trade execution timestamps — are correctly localized per trader. A user in Amsterdam and a user in Dubai each see their own local time in the dashboard.