Most explanations of a trade blotter stop at the definition. That is the easy part. The hard part is the one nobody shows you: what does a filled-in blotter actually look like, and which columns are worth the effort?
This article gives you a worked example, explains every field, and hands you a template you can copy today.
If you need the definition first, start with what a trade blotter is and come back here.
The one-sentence version
A trade blotter is a chronological record of executed trades, one row per execution, capturing what was traded, when, at what price, in what size, and at what cost.
Note the word executed. A blotter records fills, not intentions. An order you cancelled never happened as far as the blotter is concerned.
A worked example
Here is a single trading day for a discretionary futures and FX trader. This is what a usable blotter looks like — not a theoretical column list.
| # | Date | Time (UTC) | Symbol | Side | Qty | Price | Gross | Fees | Net | Account |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 2026-08-31 | 08:14:22 | EURUSD | Buy | 100,000 | 1.09420 | — | 3.20 | — | FX-01 |
| 2 | 2026-08-31 | 09:02:47 | EURUSD | Sell | 100,000 | 1.09585 | +165.00 | 3.20 | +158.60 | FX-01 |
| 3 | 2026-08-31 | 09:41:03 | ES | Sell | 2 | 5,842.25 | — | 4.10 | — | FUT-02 |
| 4 | 2026-08-31 | 10:17:55 | ES | Buy | 1 | 5,836.75 | +275.00 | 2.05 | +268.85 | FUT-02 |
| 5 | 2026-08-31 | 11:30:12 | ES | Buy | 1 | 5,845.00 | -137.50 | 2.05 | -143.65 | FUT-02 |
| 6 | 2026-08-31 | 13:05:40 | XAUUSD | Buy | 10 | 2,418.60 | — | 6.00 | — | FX-01 |
| 7 | 2026-08-31 | 15:48:19 | XAUUSD | Sell | 10 | 2,406.10 | -1,250.00 | 6.00 | -1,262.00 | FX-01 |
Three things this example shows that a column list never would.
Rows 3 to 5 are a single trade split across two exits. The short of 2 ES contracts was closed in two pieces, one profitable and one not. A blotter records each fill separately. Anything that merges them into one line is no longer a blotter — it is a summary, and summaries hide exactly the behaviour you want to inspect.
Opening fills have no gross P&L. Row 1 shows a cost but no result, because nothing is realised yet. Putting a number there is the single most common beginner error.
Fees appear on every row, including openings. The gold trade lost 1,250 on price and 1,262 after costs. Over a year, that 12-per-round-turn difference is the gap between a system that works and one that does not.
Every column, and whether you need it
Mandatory
| Column | Why it exists |
|---|---|
| Timestamp | Sequencing, session analysis, dispute resolution. Date alone is not enough. |
| Symbol | Grouping by instrument is the first useful cut of the data. |
| Side | Buy or Sell. Not "long" or "short" — a blotter records the action, not the resulting position. |
| Quantity | In the instrument's native unit: contracts, shares, lots, units. Be consistent. |
| Price | The fill price, not the price you wanted. |
| Fees | Commission, exchange fees, financing, swap. Separated from gross, never netted silently. |
| Account | Essential the moment you have more than one, and mandatory if any of them is a prop firm account. |
Worth adding
| Column | Why |
|---|---|
| Order type | Market, limit, stop. Reveals whether your slippage comes from your entries. |
| Venue / broker | Only relevant with multiple execution destinations. |
| Trade ID | Links the fills that belong to one position. Without it, rows 3 to 5 above are three unrelated events. |
| Gross vs Net | Keeping both is what makes cost analysis possible. |
Not a blotter's job
Setup name, conviction level, screenshot, emotional state, lesson learned. These matter enormously — they simply belong in a trading journal, not a blotter. The distinction is covered in trade blotter vs trading journal.
Mixing the two produces a document that is too heavy to keep updated and too unstructured to compute anything from. That is the number one reason blotters get abandoned in week three.
Copy-paste template
Header row for a spreadsheet:
trade_id,date,time_utc,symbol,side,quantity,price,order_type,gross_pnl,fees,net_pnl,account,notes
Two starter rows:
T-0001,2026-08-31,08:14:22,EURUSD,BUY,100000,1.09420,LIMIT,,3.20,,FX-01,
T-0001,2026-08-31,09:02:47,EURUSD,SELL,100000,1.09585,MARKET,165.00,3.20,158.60,FX-01,
Three rules that make this template survive contact with reality:
- One row per fill. Never per idea, never per day.
- One timezone, forever. Pick UTC or your exchange's local time and never switch. Mixed timezones silently destroy any session-based analysis.
- Leave P&L blank on openings. Blank means "not realised yet". Zero means "realised, flat" — a completely different statement.
The four mistakes that kill a blotter
Recording intentions instead of fills. If you write down the trade you meant to take rather than the one that filled, you are measuring your plan, not your execution. Slippage becomes invisible, which means it becomes free.
Netting fees into price. Adjusting the entry price to "include" costs feels tidy. It makes your true cost of trading unmeasurable, and cost of trading is usually the largest controllable variable in a retail account.
Backfilling on Sunday. A blotter written from memory three days later is fiction with a timestamp. If you cannot record it the day it happened, record less — fewer columns, filled honestly, beat twenty columns filled from memory.
Rounding. 1.0942 is not 1.09420. On 100,000 units, that fourth decimal is real money, and rounding it away means your blotter and your account statement will never reconcile.
From blotter to decision
A blotter on its own is an archive. It becomes useful the moment you aggregate it: net result by instrument, by session, by order type, by day of week. That is where the gold trade above stops being a bad day and starts being a pattern — or an outlier.
TradeStack is built on exactly this structure. You record each trade with its timestamp, size, price and fees, and the statistics — win rate, R:R, expectancy, profit factor, max drawdown, hold rate — are computed from that record rather than from a mental average.
TradeStack uses manual entry. There is no automatic CSV, MT4 or MT5 import. That is deliberate: typing a fill forces you to look at it, and the looking is where the value is.
Key takeaways
- One row per fill, never per idea.
- Openings carry costs but no P&L.
- Keep gross and net separate — costs are the thing you can actually control.
- Blotter records what happened. Journal records why. Keep them apart.
- A short blotter kept daily beats a detailed one kept never.



