Download
Download trading-journal-template.csv (CSV, 1 KB) — opens in Excel, Numbers, Google Sheets, Notion, or any plain-text editor.
The file has one header row plus one example row to show the expected format. Delete the example row, then add your own trades.
What's in the template
Eleven columns, ordered for fast entry:
| Column | Required? | Format | Example |
|---|---|---|---|
Date | Required | YYYY-MM-DD | 2026-05-15 |
Ticker | Required | Symbol | AAPL |
Direction | Required | Long / Short | Long |
Entry Price | Optional | Number | 187.45 |
Exit Price | Optional | Number | 192.30 |
Position Size | Optional | Shares / contracts | 100 |
P&L | Required | Dollar amount; negatives for losses | 485.00 |
Emotion | Required | One of 8 (see below) | Calm |
Setup | Required | One of 7 (see below) | Breakout |
Execution Rating | Required | A / B / C | A |
Reflection | Optional | Free text | Followed the plan, exited on the first sign of weakness |
The required columns are the minimum the pattern engine cares about. Optional columns add useful detail but the engine still works without them.
The locked taxonomies
The taxonomies are deliberately small. The reasoning lives on Pattern detection; the short version is that statistical inference works better when the same dimension is captured the same way on every trade.
Emotion states (one per trade, choose one of 8):
- Calm
- Focused
- Confident
- Anxious
- FOMO
- Hyped
- Frustrated
- Bored
Setup tags (one per trade, choose one of 7):
- Breakout
- Dip Buy
- Earnings Play
- Gap Fill
- Momentum
- Reversal
- Scalp
Execution rating (one per trade, choose one of 3):
- Disciplined — followed the plan exactly
- Mixed — partially followed the plan
- Impulsive — acted outside the plan
If you use any tag outside this list, the data still works in a spreadsheet. Keeping to the same taxonomies as Kyra makes your journal easier to compare with the app's pattern categories.
Why these fields and not others
The eleven columns above were chosen because they are the minimum input that supports statistical pattern detection on a personal trade history. Specifically:
- Date, Direction, P&L — required for any time-series or win-rate analysis.
- Emotion + Setup + Execution Rating — the three dimensions where behavioral patterns most consistently appear. Capturing all three on every trade is what lets the engine cross-tab them (e.g., "your FOMO Breakout trades vs your Calm Breakout trades").
- Reflection — optional context the trader can read back later. The engine does not parse this field; it's for the trader's own use.
Columns deliberately omitted: tax lot ID, fees, slippage, broker fields, strategy ID. These are useful for accounting but rarely useful for behavioral pattern detection. A spreadsheet can carry them in additional columns without affecting the schema above.
For the reasoning behind the locked schema vs editable taxonomies, see the Kyra vs a spreadsheet page.
How to use the template effectively
Three habits that make the template useful instead of decorative:
- Log every trade, not just the memorable ones. A journal that captures only the wins or only the losses is a biased sample. Patterns derived from biased samples are noise. Aim for 100% coverage of trades in the session.
- Fill the required fields on the same day. The emotion you felt while taking a trade is hard to reconstruct accurately three days later. Same-day entry preserves the signal the engine eventually mines.
- Don't add columns the engine cares about. If you add an "anxiety_level_1_to_10" column, the engine cannot use it — there's no Kyra UI for it, and the cross-tab logic depends on the locked taxonomies. Custom columns are fine for your own analysis; they just don't migrate.
When the template stops being enough
A spreadsheet works well up to roughly 50–100 trades. Past that, two limits start to bind:
- Logging friction. Opening the spreadsheet, finding the next row, typing the fields, and saving takes 60–90 seconds per trade. On a busy day this adds 10+ minutes of admin and most traders skip entries. Kyra's Quick P&L mode logs a trade in under 10 seconds, which is the floor that makes daily journaling sustainable.
- Statistical inference. A spreadsheet can compute averages and conditional aggregates, but it cannot tell you whether the difference between two cells (e.g., FOMO win rate vs Calm win rate) is statistically real given your sample sizes, or whether it is noise that will regress. Kyra's pattern engine runs Bayesian inference and Fisher's exact test on these cross-tabs, surfaces the ones that pass a sample-size and significance check, and gates the rest until more evidence accumulates.
If you cross those thresholds and decide to switch, the template's schema is designed to import into Kyra cleanly via CSV when that ships. The trade-off between staying in a spreadsheet vs switching is covered in detail on Kyra vs a spreadsheet.
License
The template is free for personal use. Redistribute, modify, or share it freely; attribution appreciated but not required. The template itself contains no code, no analytics, and no tracking — it is plain CSV.
The template is the simplest possible scaffold for behavioral trade journaling. It is not a competitor to Kyra; it is the on-ramp for traders who want a structured starting point before deciding whether to upgrade their journaling to the pattern-detection layer.
For more free calculators (position size, risk/reward, P&L), see Tools.