Confluence Journal · Web app · AI features
Built a trading journal that records the why
I'm learning to trade forex, and most journals I tried only tracked numbers: entry, exit, profit or loss. They couldn't tell me why a trade worked, or whether I was trading the way I'd been taught. So I designed and built Confluence Journal, a journal where the reasoning comes first and the numbers follow.

Problem
Trading journals record what happened, not why. Notes get rewritten after the result is known, so you can't tell good decisions from lucky ones.
What I did
Designed and built a rationale-first journal: reasoning is locked before the trade plays out, AI tags the confluences used, and every checklist and rule comes from my own words.
Result
Live and still in testing in my own backtesting and forward testing. I'm tracking what to measure and will report results once I have 100 trades of data.
Context
I practise trading with a top-down approach: decide the bias on a higher timeframe, find where price is, wait for a trigger on a lower timeframe, and check the timing. Each of those signals is a confluence, and the idea is that the more of them line up, the better the trade.
I backtest on FX Replay and kept notes alongside. The problem was that my notes and my results lived in separate places, and I wrote most of my reasoning after I already knew how the trade ended. A winner always looked well planned in hindsight. A loser always had an obvious mistake.
The problem
Hindsight rewrites the story
Reasoning written after the outcome is shaped by the outcome. Without a record from before, there's nothing honest to learn from.
Numbers without reasons
Spreadsheets and platform exports show win rate and R, but not which setup or habit produced them.
Study and practice were disconnected
My course notes lived in one place and my trades in another, so I couldn't check whether I was applying what I'd been taught.
Key decisions
The rationale comes first, and it gets locked
The trade form is ordered the way a trade actually happens. You add the pair and charts, then write your rationale, then lock it. The lock button says why it's there: lock before you play the trade out, so hindsight can't change it. The result, outcome notes and outcome screenshots come after, in their own step.
logging a trade
- Pick the pair and add the chart from before the entry
- Write or dictate the rationale
- Lock the rationale
- Play the trade out
- Add the result, outcome notes and outcome chart
- Cross-check it against the course notes
- Dictation using the browser's free speech recognition, because talking through a chart is faster than typing. A Fix dictation button cleans up misheard trading terms.
- Drafts save automatically, so closing the drawer mid-trade doesn't lose anything.

- Trades waiting for a result can be saved early and matched later with the synced FX Replay trade, which fills in prices, session and R.
AI reads the reasoning, then tags only what was used
Tagging confluences by hand is tedious, so people skip it. Find confluences sends the rationale to Claude, which tags each confluence with its stage and timeframe. It also flags contradictions, gaps and unclear parts, quoting my own words back to me.
I grouped every confluence into five stages, each with its own colour, so a trade card shows at a glance which parts of the analysis were covered:
- Bias: the higher-timeframe direction
- Location: where price is
- Trigger: lower-timeframe confirmation
- Timing: time of day and news
- Mindset: execution and emotion
Confluences can carry a timeframe and can be marked as missing, such as no buyers on the weekly, because what wasn't there often matters as much as what was. The AI only tags what I actually said. It never guesses from the chart.

Every insight is built from my own words
The checklist, rules and setup views are not pre-filled templates. Each pair gets its own checklist made from the concepts I mention in that pair's rationales. A trade is ticked only for what I wrote down.
- Setups shows where my edge is: win rate and average R for each confluence, with small samples marked early so I don't over-read five trades.
- Rules lets me write the rules I trade by and compares trades where I followed every rule with trades where I broke one.
- Overview answers How you're doing, and what to work on, including backtest against forward test, what my losing trades have in common, and an AI study plan based only on my numbers.

When there isn't enough data, the empty state explains what's needed, for example after about 10 trades with rationales, this tells you what to study, what to stop and what to keep doing.
Connect the journal to what I'm learning
I added a Study area that holds my course notes and class transcripts in a hand-drawn notebook style. Practice sessions ask questions in simple, everyday English and grade every answer. A reading pin marks where I stopped in a lesson, on every device.
After a trade, Cross-check compares my rationale and outcome with my notes, then sorts the trade into one of four boxes: followed the method or broke it, and won or lost. A loss where I followed the method is a very different lesson from a win where I broke it.

An Ask button on every page answers questions about whatever is on screen, such as a lesson paragraph, a practice question or an open trade, using my notes.
Make AI costs visible
Every AI action shows its approximate cost in naira on the button, about ₦1 for a cross-check. A usage page tracks credit left, spending by type and a monthly budget cap. Knowing the cost up front makes the AI features feel safe to use, not something to ration.
Testing & iteration
I use the journal on my laptop and my phone, so I tested it on both and fixed what got in the way:
- The trade drawer freezes the page behind it on phones, stacks its fields and uses 16px inputs so the screen doesn't zoom.
- A skeleton loading screen replaced the plain Loading your journal… message.
- The trade view puts the rationale and outcome first and screenshots last, because reading the reasoning is the point.
- The cross-check result became calmer. I removed a percentage score that made a single check feel like a grade.
- Light and dark themes share one set of colour tokens. Colour is limited to the five stages and the stat tiles, so it always carries meaning.
Outcome so far
Confluence Journal is live, and I'm still testing it in my own backtesting and forward testing. Early on, I've noticed:
- I skipped the rationale after losing trades. Before the lock existed, I often didn't write my reasoning at all, especially after a loser. So I changed the flow: I start logging the trade before it plays out, write the rationale and lock it, then add the outcome once the trade is done. When I import my trades from FX Replay, the two records merge into one.
- Logging keeps getting simpler. I use the log-trade flow every session. Whenever I hit a bug I fix it, and whenever I spot a step I can remove, I remove it. It's noticeably simpler now than the first version.
What I'm measuring next
- Whether trades that follow every rule outperform the ones that break one, once there are enough to trust (50 trades)
- Which confluences actually hold up across backtest and forward test
- How often I write a rationale before the trade versus skip it
I'll update this case study once I have 100 trades of data.
Reflection
Designing for myself made the feedback loop very short. I could feel friction the same day and fix it the next. It also taught me how much of a tool's usefulness depends on small trust decisions: locking the rationale, never guessing a tag, labelling small samples as early, and showing what AI costs before you tap.