I used to journal setups and emotions, then wonder why my expectancy looked fine while the account crawled. The missing piece was a simple cost column: spread paid + commission + any slippage, in R or cash, on every closed scalp.
Within a fortnight the data was blunt. AUDUSD and EURJPY that felt clean were eating 0.3–0.5R more than EURUSD on the same session. Friday afternoons looked “okay” until costs turned half the green days beige. I stopped arguing with the tape and started ranking pairs by net R after costs, not win rate.
Practical notes I keep:
- Log cost at fill time, not “average spread” from memory
- Tag session (London / overlap / late NY) — costs are not flat
- Review weekly: drop any pair where median cost > 25% of median winner