How to build a trading journal in Google Sheets
Step-by-step guide to make a trading journal in Google Sheets or Excel, with the columns, formulas and Stats tab that actually matter, plus when to upgrade.

If you're searching for how to create a trading journal in Google Sheets, or how to make a trading journal in Google Sheets (or Excel), you already know the hard part: discipline beats prediction. A journal is how you turn random outcomes into a measurable edge. This guide walks you through building one yourself in a spreadsheet, gives you the exact columns and formulas to copy, and is honest about where a sheet stops being enough.
Why bother journaling at all
Without a journal you remember your best trade and your worst trade. Everything in between blurs together. A journal forces three things:
- Honesty about what you actually traded vs. what your plan said.
- Patterns you can only see across 50+ trades, not 5.
- A feedback loop so the next trade is sharper than the last.
A spreadsheet is a perfectly fine place to start. Don't let "I need the perfect tool" become another excuse to not log.
The columns that actually matter
Most beginner journals fail because they track 30 columns nobody fills in. Start with these 12. You can always add more later. The same columns work identically in Google Sheets and Excel, so pick whichever you already have open.
| Column | Why it matters |
|---|---|
| Date | Lets you slice performance by day, week, month |
| Pair / Symbol | So you can spot which instruments actually pay you |
| Direction (Long / Short) | Reveals directional bias |
| Setup / Concept | The single most important column, your edge lives here |
| Entry price | For R-multiple math |
| Stop loss | Defines risk before you click buy |
| Take profit | Defines your planned reward |
| Risk % | Position size as a % of account, not in dollars |
| Result (Win / Loss / BE) | Categorical outcome |
| P&L % | Outcome as a % of account |
| R-multiple | Outcome in units of risk (e.g. +2R, -1R) |
| Notes / emotion | One honest sentence: were you patient, FOMO'd, revenge-trading? |
That last column is the one nobody fills in, and the one that tells you the most.
Step-by-step in Google Sheets
- Open a new Sheet. Name it
Trading Journal — YYYY. - Row 1 = headers. Paste the 12 columns above into A1:L1. Freeze the row:
View → Freeze → 1 row. - Format the date column. Select column A →
Format → Number → Date. - Add a data-validation dropdown for "Direction". Select C2:C →
Data → Data validation → Dropdown → Long, Short. - Same for Result. I2:I → Dropdown:
Win, Loss, BE. - R-multiple formula. In K2 paste:
=IF(I2="Win", (F2-E2)/(E2-G2)*IF(C2="Long",1,-1), IF(I2="Loss", -1, 0))Drag it down. For shorts it inverts automatically. - Summary tab. Add a second sheet called
Stats(see the formulas in the next section). - Conditional formatting on the Result column. Green for "Win", red for "Loss", grey for "BE". Visual feedback matters more than you think.
- Lock it.
File → Make a copyevery quarter so you have a frozen snapshot.
In Excel the steps are identical. Data Validation is on the Data tab, and conditional formatting is on Home.
Google Sheets formulas that actually matter
If you already log P&L and risk in dollars, you don't need the long R-multiple formula above. Use the simple version. Both work, pick whichever matches how your sheet is set up.
R-multiple (simple, when you log P&L and risk separately):
=IF(J2=0,"",(K2/J2))
Where J is the dollar risk on the trade and K is the realised P&L. Result is in R units (+2 means you made twice what you risked).
Win flag helper (hidden column M):
=IF(I2="Win",1,0)
Lets the Stats tab sum wins without re-typing COUNTIF logic everywhere.
Plan-followed column (column N, dropdown Yes / No):
The one column most retail traders skip. Without it you can't tell whether a losing week was the market or you.
The Stats tab
Add a second sheet called Stats and paste these one-liners. Assumes your trades live on a sheet called Trades.
| Metric | Formula |
|---|---|
| Total trades | =COUNTA(Trades!A2:A) |
| Wins | =COUNTIF(Trades!I2:I,"Win") |
| Losses | =COUNTIF(Trades!I2:I,"Loss") |
| Win rate | =COUNTIF(Trades!I2:I,"Win")/COUNTA(Trades!I2:I) |
| Average R | =AVERAGE(Trades!K2:K) |
| Expectancy (per trade, in R) | =AVERAGE(Trades!K2:K) |
| Plan adherence | =COUNTIF(Trades!N2:N,"Yes")/COUNTA(Trades!N2:N) |
A note on expectancy: average R per trade is your expectancy when R is calculated correctly. If it's positive, every trade has a positive expected value. If it's negative, no amount of position-sizing fixes it.
Format Win rate and Plan adherence cells as percentages (Format → Number → Percent). That's it, that's the dashboard.
Don't want to build it yourself?
Honest answer: the 12 columns above are the template. Open a blank sheet, paste them as headers, and you have a working trading journal in two minutes. There's no magic file that makes it better.
If you'd rather skip the spreadsheet entirely and start logging today in a tool that already has the structure, discipline score, weekly review and calendar built in, start free with Create Impacts. No credit card, no setup, your first trade logged in under a minute.
Either way: log every trade the same day. Backfilling kills the honesty.
Reviewing the journal (this is where the edge appears)
A journal you never read is a diary. Every week, sit down for 20 minutes and answer four questions:
- Which setup paid me this week? Filter by the "Setup" column.
- Which setup cost me? Same filter, the other side.
- How many trades broke my plan? Read the Plan-followed column.
- What's the one rule I'll add next week? Write it down before Monday.
Do this for 12 weeks and you'll have something most retail traders never build: a written, evidence-based playbook.
Where a spreadsheet starts to break
Honest moment. Sheets work great until they don't. The cracks usually show up around trade 100:
- Screenshots. Pasting chart images into cells turns the file into a 200MB monster that crashes on mobile.
- Multi-account math. Funded + personal + challenge accounts in one sheet quickly becomes a nightmare of nested IFs.
- Calendar view. A daily P&L heatmap in Sheets is possible but painful.
- Tags + filtering. Free-text "concept" columns drift (
LCC,lcc,L.C.C.) and your stats lie. - Mobile + sharing. Google Sheets on mobile is fine for reading and painful for logging. Sharing the file with a coach means giving up edit history or building a second view-only copy.
- Discipline tracking. Plan compliance, missed trades, weekly reviews, none of this fits cleanly in a grid.
If you've hit any of those, the spreadsheet has done its job. It got you to the point where you need real tooling.
When to upgrade to a dedicated journal
Create Impacts is the next step when:
- You're logging more than ~5 trades a week.
- You trade across multiple accounts (personal, funded, prop challenges).
- You want a calendar, equity curve and pattern-level analytics without writing formulas.
- You care about why you took the trade, emotions, plan compliance, missed trades.
- You want a weekly Sunday Market Breakdown and review streaks to keep you honest.
You can start free and import your spreadsheet later. If you want to see how it compares to the Excel route in more depth, read Trading journal vs spreadsheet.
The takeaway
A Google Sheets or Excel trading journal is a great first 90 days. The columns above, the formulas in the Stats tab, and a weekly review beat 95% of traders who don't journal at all. When the sheet itself starts costing you time, switch to a tool built for the job. The journal is the edge, the format is just the wrapper.
Track your discipline, not just your P&L
Create Impacts is the trading journal for serious traders. 14-day free trial, no credit card.
Start free trial