4–8h
To build a proper Notion journal from scratch
15+
Database fields needed for meaningful analysis
0
Built-in analytics charts in Notion

1. Why traders use Notion

Notion wasn't built for traders. But three things make it the most popular DIY journal platform anyway.

Everything in one place. Most serious traders already use Notion for planning, research, and notes. Adding a trade database means your market thesis, trade log, and post-session review all live in the same workspace — linked, searchable, connected.

Flexibility. Dedicated trading journals are rigid. They track what the developer decided to track. Notion lets you add a property for anything: prop firm rules, emotional state, trading session, news catalyst, screenshot links. You build exactly what your edge requires.

Cost. Notion's free tier handles everything you need for a trading journal. Most dedicated journals cost $30–80/month. For a trader building consistency before scaling, that's a meaningful difference.

The tradeoff is real too. Notion has no charts, no equity curve, no auto-import, and no AI coaching. We'll cover how to close that gap at the end — but first, let's build the journal right.

2. Database structure

A solid Notion trading journal uses three linked databases, not one. Most traders start with a single trade log and eventually hit its limits. Building three from the start saves a painful rebuild later.

📋 Trade Log

One row per trade. All entry/exit data, P&L, tags, screenshots. The core database — everything else links here.

📅 Session Journal

One row per trading day. Pre-session plan, post-session review, emotional state, market notes. Rolls up trade count and P&L from Trade Log.

📚 Playbook

One row per strategy or setup. Describes the rules, links to example trades, tracks aggregate stats for that specific setup.

Link them with Notion relations: Trade Log → Session Journal (which session did this trade happen in?), Trade Log → Playbook (which setup is this?). Once linked, rollups let you see total P&L per session and win rate per setup — automatically.

3. Every field you need

Here are the fields that actually matter for the Trade Log database. Sorted by priority — build the first group first, add the rest as your process matures.

Field Type Notes
DateDateInclude time if you trade intraday
InstrumentSelectEURUSD, BTC, NQ — use Select for filtering
DirectionSelectLong / Short
EntryNumberEntry price
Stop LossNumberPlanned stop level
Take ProfitNumberPlanned target
ExitNumberActual exit price
SizeNumberLots, contracts, or units
P&L ($)NumberNet result in account currency
ResultFormulaWin / Loss / Breakeven — auto-calculated
Planned R:RFormulaCalculated from Entry, SL, TP
Actual R:RFormulaCalculated from Entry, SL, Exit
SetupRelationLinks to Playbook database
SessionSelectLondon / NY / Asia / Overlap
EmotionSelectCalm / Anxious / Impatient / FOMO / Confident
Rule BreakCheckboxDid you break your own rules?
ScreenshotFilesChart image at entry and exit
NotesTextWhat did you see? What went right/wrong?

4. Formulas that work

Notion formulas use a JavaScript-like syntax. These four handle 90% of what traders need.

Result (Win / Loss / Breakeven)
if(prop("P&L ($)") > 0, "✅ Win", if(prop("P&L ($)") < 0, "❌ Loss", "⚪ Breakeven"))
Planned R:R (requires Entry, Stop Loss, Take Profit)
round(abs(prop("Take Profit") - prop("Entry")) / abs(prop("Entry") - prop("Stop Loss")) * 100) / 100
Actual R:R (requires Entry, Stop Loss, Exit)
round(abs(prop("Exit") - prop("Entry")) / abs(prop("Entry") - prop("Stop Loss")) * 100) / 100
Did you let the winner run? (Actual R:R vs Planned)
if(prop("Actual R:R") >= prop("Planned R:R"), "✅ Held", "⚠️ Cut early")

For win rate and average R:R across all trades, use rollups in the Session Journal database — roll up the Result field as "Count by value" and P&L as "Average".

5. Views and filters

The same database should serve multiple purposes. Set up these views once and switch between them depending on what you're analysing.

📊 Default (Table)

All fields visible. Sorted by date descending. Your main entry view after each trade.

🏆 Winners

Filter: Result = Win. Sorted by Actual R:R descending. Study what your best trades look like.

⚠️ Rule Breaks

Filter: Rule Break = checked. Your most important review view — what you did when you went off-script.

📅 By Setup

Group by Setup. See aggregate P&L per strategy. Instantly shows which setups to trade more, which to cut.

🌍 By Session

Group by Session. Tells you if you trade better in London or NY — most traders are surprised by the answer.

🧠 By Emotion

Group by Emotion. The single most revealing view in the journal — P&L sorted by your mental state.

6. Where Notion falls short

Notion is powerful, but it has hard limits that matter for serious traders.

No charts

Notion cannot draw an equity curve, session heatmap, or drawdown chart. You see numbers, not patterns.

No auto-import

Every trade must be entered manually. A 20-trade day takes 20+ minutes to log. Most traders quit within a month.

No AI analysis

Notion cannot read your data and tell you "you lose 73% of trades on Fridays after 2pm". You have to find that yourself.

No prop firm tracking

FTMO daily loss limits, trailing drawdown, consistency rules — none of this can be enforced or visualised natively in Notion.

The practical solution is not to abandon Notion — it's to embed TSB analytics widgets inside your Notion pages. TSB syncs trades from your broker automatically, then lets you embed interactive charts (equity curve, P&L heatmap, win rate by session, prop firm tracker) directly inside Notion using an embed block. You get the flexibility of Notion with the analytics of a dedicated journal — without running two separate apps.

7. Free template

TSB's free Notion trading journal template includes everything from this guide pre-built:

  • Trade Log database with all 18 fields and formulas already configured
  • Session Journal database linked via relations and rollups
  • Playbook database for tracking setups
  • All 6 views set up and filtered
  • Weekly review template
  • Pre-market checklist