# How to Tag Trades So Your Journal Can Answer Questions

> Learn how to tag trades with a small set of setup, mistake and context tags, defined once and applied the same way, so your journal can answer real questions.

Canonical: https://www.journalx.io/guides/how-to-tag-trades

To tag trades usefully, start from the questions you want answered, then keep three small tag families: one setup tag per trade, mistake tags for every rule break, and two or three context tags you can see before entry. Define each tag in one line, apply it at the right moment, and audit the list monthly.

Learning how to tag trades is what turns a trading journal from a list of fills into something you can query. A tag is a label you attach to a trade so you can group it with similar trades later: every opening range breakout, every trade where you moved the stop, every trade taken into scheduled news. With good tags, "which setup pays me" and "what do my mistakes cost" become two filters instead of an evening with a spreadsheet.

Most tag lists fail in the same three ways. They grow to 40 labels that each cover four trades. The same idea gets three spellings ("ORB", "orb breakout", "opening range"). Or the tag gets picked after the result is known, so winners drift into the setup you like and losers into "other." The steps below avoid all three. They assume you already [keep a trading journal](/guides/how-to-keep-a-trading-journal) and log a planned stop on every trade, so results can be read in [R-multiples](/glossary/r-multiple).

## Step 1: Write down the questions your tags must answer

Tags exist to answer questions, so write the questions first. Every tag you create later should serve one of them, and a tag that serves none is clutter.

Most traders need answers to the same short list:

| Question                                                 | Tag family that answers it                                                        |
| -------------------------------------------------------- | --------------------------------------------------------------------------------- |
| Which of my setups has a positive expectancy?            | Setup                                                                             |
| Do I follow my plan, and what does breaking it cost?     | Mistake                                                                           |
| Does a setup work better in some conditions than others? | Context                                                                           |
| Which session, symbol or side do I trade best?           | None. Your journal already records time, symbol and direction, so don't tag them. |

That last row matters. Anything the journal already stores as a field (entry time, symbol, long or short, account, holding time) can be filtered directly. Tagging it again only adds work and a second place for the two to disagree.

## Step 2: Split your tags into setup, mistake and context

Three families with different rules keep the list readable and the numbers clean.

**Setup tags say what kind of trade it was.** Every trade gets exactly one. A [setup](/glossary/setup) is a named, repeatable pattern with its own entry, stop and invalidation, such as "opening range breakout" or "VWAP pullback." If a trade fits none of your setups, tag it "no setup" rather than leaving it blank. That bucket is worth watching on its own.

**Mistake tags say how the execution departed from the plan.** A trade gets none, one or several. Keep them to observable actions: moved stop, chased entry, early exit, oversized, unplanned trade. "Impatient" and "felt off" are moods, and two people (or you on two different days) will apply them differently. If your rules aren't written down yet, start with [how to create a trading plan](/guides/how-to-create-a-trading-plan), because a mistake tag needs a written rule to be measured against.

**Context tags describe conditions you could see before entry.** Gap of more than 1% at the open. Index above or below its 20-day average. Scheduled news within 30 minutes. Each context dimension gets one tag per trade, so every trade is either "gap day" or "no gap," never both.

If you can only know the tag after the session ends, it isn't context, it's hindsight. "Trend day" is the classic trap: you only learn it was a trend day at the close, so every trade on that day gets judged with knowledge you didn't have when you clicked. Replace it with something visible at entry, such as a gap at the open or price above the prior day's high.

## Step 3: Keep the vocabulary small enough to measure

Every tag splits your sample, and small samples tell you very little. The rough 95% range around a group's [expectancy](/glossary/expectancy) is 1.96 × the standard deviation of its trade results ÷ the square root of its trade count. With a typical spread of 1.5R per trade, that range is about ±0.27R on 120 trades, ±0.66R on 20 trades and ±1.3R on 5.

![The 95% range around expectancy for 120 trades from a strategy with a true edge of +0.30R per trade, split evenly across 1, 3, 6, 12 and 24 tags. Unsplit, the range runs from +0.03R to +0.57R. At 24 tags of 5 trades each it runs from −1.01R to +1.61R.](https://assets.journalx.io/marketing/guides/how-to-tag-trades/tag-sample-size.avif)

The figure shows what that means for one quarter of 120 trades. Unsplit, the range sits entirely above zero. Split across three setup tags, each tag's range already crosses zero, even though the underlying edge never changed. Split across 24 tags, each one could be a big winner or a big loser, and the data can't tell which.

A practical rule follows: **a tag earns its place only if it will collect 20 or more trades in the period you review.** For someone taking 100 to 150 trades a quarter, that usually works out to:

- 3 to 5 setup tags, plus "no setup"
- 4 or 5 mistake tags
- 2 or 3 context dimensions, each with two values

That is roughly a dozen tags. It feels thin at first. It is also about as much as a quarter of trading can support. [How many trades you need to judge a strategy](/blog/how-many-trades-to-evaluate-a-strategy) covers the sample-size math in more depth.

## Step 4: Define each tag in one line, in a tag dictionary

A tag is only consistent if it has a written definition you can check a trade against. Keep a short tag dictionary next to your trading plan: the tag, its family, and one sentence that decides whether a trade gets it.

| Tag                     | Family  | Applies when                                                                                        |
| ----------------------- | ------- | --------------------------------------------------------------------------------------------------- |
| setup: ORB              | Setup   | Entry on a break of the first 15-minute range, stop on the other side of the range                  |
| setup: VWAP pullback    | Setup   | Entry on the first pullback to VWAP after a move away from it, stop beyond the pullback low or high |
| setup: failed breakdown | Setup   | Entry back inside a range after a break below support fails, stop under the failed low              |
| no setup                | Setup   | The trade matched none of the setups above                                                          |
| mistake: moved stop     | Mistake | The stop was moved further from entry after the order was placed                                    |
| mistake: chased entry   | Mistake | Filled more than 0.25R past the planned entry price                                                 |
| mistake: early exit     | Mistake | Closed manually before the stop or target with no written exit rule triggered                       |
| mistake: unplanned      | Mistake | No plan was written before entry                                                                    |
| context: gap day        | Context | The symbol opened more than 1% away from the prior close                                            |
| context: news window    | Context | Scheduled news was due within 30 minutes of entry                                                   |

Three naming habits keep the list clean:

- **Prefix by family** ("setup:", "mistake:", "context:"), or give each family its own color. Your tag list then sorts itself, and you can see at a glance whether a trade has its setup tag.
- **One spelling, forever.** Pick "ORB" or "opening range breakout" and never type the other. Software can ignore capital letters. It can't tell that two different names mean the same thing.
- **Name the action, not the feeling.** "mistake: moved stop" can be checked against the order history. "mistake: greedy" can't.

## Step 5: Tag at the right moment

When you tag matters as much as what you tag. The research on [hindsight bias](https://en.wikipedia.org/wiki/Hindsight_bias), going back to Baruch Fischhoff's experiments in the 1970s, found that people who know how something turned out judge that outcome as more likely, and more obvious, than they did before they knew. A trader who tags a trade after seeing the result is exposed to exactly that.

- **Setup and context: before entry.** Tag them when you write the plan, while you still don't know the result. If you missed that moment, tag from the entry screenshot with the result hidden.
- **Mistakes: after the close, the same day.** Compare the fills with the written plan and add a mistake tag for every departure. A [pre-trade checklist](/blog/pre-trade-checklist) makes this quick, because the plan is already on paper.
- **Never re-tag after a review.** If a weekly review shows that a trade was mislabeled, fix it only when the label broke the written definition. Re-labeling because the trade "felt more like" another setup slowly turns your setup stats into a record of your moods.

## Step 6: Ask your tags the questions from Step 1

Once a quarter of trades is tagged, the questions from Step 1 become filters. Here is one worked quarter of 120 trades, every result in R.

**Which setup pays?** Filter by setup tag and read each group's expectancy:

| Setup            | Trades | Expectancy | Net result |
| ---------------- | ------ | ---------- | ---------- |
| ORB              | 52     | +0.31R     | +16.1R     |
| VWAP pullback    | 41     | +0.12R     | +4.9R      |
| Failed breakdown | 27     | −0.08R     | −2.2R      |
| All trades       | 120    | +0.16R     | +18.9R     |

The blended +0.16R hides a lot. Nearly all of the quarter's result came from one setup, and the third one lost a little. With 27 trades and a range of roughly ±0.57R, the failed breakdown isn't proven broken. It is the first candidate for a closer look next quarter.

**What do my mistakes cost?** Filter by mistake tag, then compare with the clean trades:

| Group                 | Trades | Expectancy | Net result |
| --------------------- | ------ | ---------- | ---------- |
| No mistake tag        | 92     | +0.36R     | +33.4R     |
| mistake: moved stop   | 9      | −1.12R     | −10.1R     |
| mistake: chased entry | 11     | −0.56R     | −6.2R      |
| mistake: early exit   | 8      | +0.21R     | +1.7R      |
| Any mistake           | 28     | −0.52R     | −14.6R     |

The clean trades earned more than twice the blended average. Moved stops alone cost about 10R, more than half of what the quarter made. Early exits show a positive number, which is the trap with that tag: their cost isn't a loss but the gap between where you got out and where the plan said to get out. Read them against [maximum favorable excursion](/glossary/maximum-favorable-excursion) or the planned target, not against zero.

**Does context change a setup?** Cross one setup with one context tag, and only when both groups have enough trades. In this quarter, ORB on gap days returned +0.59R over 19 trades and +0.15R over 33 trades without a gap. That looks like a big difference. But 19 trades carry a range of roughly ±0.67R, so the gap-day number could plausibly be anywhere from slightly negative to above +1R. It is a lead worth tagging for another quarter, not a rule to trade yet. The full order for reading these numbers is in [how to analyze your trading performance](/guides/how-to-analyze-your-trading-performance).

## Step 7: Audit the tag list once a month

Tag lists drift, so give them five minutes during your [monthly trading review](/guides/monthly-trading-review):

1. **Count trades per tag.** A tag with fewer than five trades in three months is either rare or redundant. Merge it into a broader tag or retire it.
2. **Check the "no setup" share.** If it climbs above about 10% of trades, either you are trading a pattern you haven't named yet (define it and add a tag) or you are taking trades outside your plan (that's a mistake tag, not a new setup).
3. **Look for synonyms.** Two tags that always appear on the same trades are one tag. Keep one.
4. **Retire, don't redefine.** When a definition needs to change, archive the old tag and create a new one with a date in the dictionary. A tag whose meaning changed halfway through a sample describes nothing.

## Tagging trades in JournalX

In JournalX, tags are created once under Settings and reused across trades, Gameplans and notes, each with its own color, so a family-per-color scheme takes a minute to set up. The trades list and the dashboard both filter by tag, and filters stack, so "ORB, gap day, no mistake tag" is one view rather than a pivot table. A setup can also live as a Gameplan with its rules written out, which keeps the setup's definition and its results on one page. Archiving a tag hides it from new trades without deleting it from the old ones, which is exactly what the "retire, don't redefine" rule needs.

Set up your tag families, import your trades and see which setups carry your results.

A good tag list is short, defined in writing and applied at the moment you still don't know the outcome. Built that way, tags let your journal answer the questions that decide what you trade next quarter: which setup pays, what your rule breaks cost and which conditions change the picture. Everything else is decoration.
