Journaling advice usually stops at "write everything down." Storage isn't feedback. I wanted a grade: fixed bars, printed in the open, same verdict every run.
So the grader reads a journal CSV and computes: profit factor, payoff, win rate, average win/loss, expectancy, max drawdown, longest loss run — then flags patterns against a published scorecard. Here is the actual, unedited output on the included sample journal (24 trades):
JOURNAL GRADE — samples/sample_journal.csv
Trades : 24 (14 wins / 10 losses)
Win rate : 58.3%
Average win : $3.36
Average loss : $-9.01
Payoff : 0.373
Profit factor : 0.522
Net : $-43.10
Expectancy / trade: $-1.80
Max drawdown : $75.20
Longest loss run : 4
FLAGS:
- PF BELOW DESK BAR — profit factor 0.5216 is under 1.20.
- PAYOFF DISCIPLINE FAIL — average loss $9.01 is bigger than average win $3.36 and the win rate (58.3%) is under 65%.
- STACKING — 4 positions open at once (max); lot size escalated after a loss 3 time(s).
- MISSING STOP — 4 of 24 trades have no stop recorded.
DESK VERDICT: BELOW THE DESK BAR — PF under 1.20.
The interesting line is STACKING. The journal's worst drawdown didn't come from its biggest single loss — it came from four correlated positions, each "small," all wrong at the same price, with size escalating after losses. That's a pattern a spreadsheet of your trades already contains; most people just never compute it.
The tool is plain Python (stdlib only, offline, places no orders). It's the Journal Grader — standalone $9.99: https://baldwinson3.gumroad.com/l/journal-grader — and it's also in the Trader Skill Pack with a risk gate, position sizer, and exit planner: https://baldwinson3.gumroad.com/l/trader-skill-pack
Run it on your own journal and the verdict might be kinder. The bars don't move either way — that's the point.
Educational tool, not financial advice. The sample journal is fabricated, labelled fabricated, and fails on purpose.
Top comments (0)