Reviewing a trade requires the trader to look between the two software to get a visual understanding of their trade decision.

Table entries strip away the "WHY" behind entries and exits and it is not possible to visualize the trade by looking at the numbers.
02 - Goals
Laying out what I want to achieve
Designer intent
This project also served as an exploration into AI-assisted prototyping applied to a real-world problem
03 - Strategy
Understanding constraints and the notable features of the sites I did research on
Key constraints and early decisions
Constraints I might face
Live price APIs were unreliable or restricted
Backend setup would add a lot of overhead early on
I needed to know if the core idea even worked first
Validation and user testing for my app
What I decided to do
Keep the app local-first and offline
Upload price and trade data manually
Build a lightweight prototype before committing to backend work
Reach out to traders
Why
Manual uploads gave me clean, accurate data from the broker
Avoided spending time and money on infrastructure too early
Let me test whether visual trade review was actually useful
To get user feedback
How traders review trades today
Tradezella
Online platform
Monthly costs
Comprehensive feature set, including ability to see entry and exit on a chart
Spreadsheet based methods
Can be online or written down
Free
Simply a table for traders to input price and other parameters
My thinking
As a prototype, I'll keep this local first
Not going for subscription model until features are more stablised
Focus on features that help traders preserve trade context
04 - Creation of the app, key decisions and tradeoffs
Building TradeViz involved real technical constraints. Rather than forcing backend integration early, I focused on preserving the core trade review experience.
Key challenges
Decisions & trade-offs
Core features needed repeated iterations to stablize
I focused on stabilizing core interactions one at a time, validating each before moving on.
Broker price APIs were unreliable and restrictive
I pivoted to manual price data uploads, which has the advantage of using native data direct from the broker instead of relying on other brokers' price data.
Some core features weren't supported by the charting library
I used an opaque rectangle as a visual mask to hide future pricing. This simulates replay and enables chronological trade review without switching charting libraries.
05 - What I Built
What I wanted to validate
Whether reviewing trades directly inside the chart was more useful than table-based methods
Whether Isolated Mode helped reduce cognitive load
Whether replay added value during post-trade review
Whether a local, manual-upload prototype was acceptable at this stage
Key feedback themes
Visual context was clearly more useful than tables
“It’s very hard to visualise a trade by just numbers.”
“I’d rather review trades this way than using tables.”
Seeing trades embedded directly within market structure helped users understand why trades were taken, validating the decision to move away from spreadsheet-style review toward visual context.
Isolated Mode reduced noise, but flexibility mattered
“I’d like to see all trades layered at once to understand why a trader layers entries.”
While isolating trades helped users focus on individual decisions, traders also wanted the option to view multiple trades together when they belonged to the same setup. This suggested that isolation should be optional rather than enforced.
Replay was considered an important review tool
“Replay is very important — it helps understand how the trade behaves over time.”
Replay helped traders reconstruct how trades played out over time, reinforcing the value of chronological review even within the technical constraints of the prototype.
Manual uploads were acceptable short-term, but automation is expected
“Live syncing would be more convenient, but people usually review trades at the end of the day anyway.”
Users understood manual uploads as a prototype limitation and accepted them for review purposes, while still expecting live syncing if the product were taken further. This validated the decision to defer integration early while clarifying future expectations.
Tying it back to my goals











