Fintech · Trading analytics SaaS

Better Trade Journey

Trading journal SaaS for MetaTrader 5. Imports trade history and tracks win rate, R:R, drawdown and expectancy automatically.

Industry
Fintech · Trading analytics SaaS
Services
Custom Software, Web Development

01

The challenge

Retail and prop-firm traders on MetaTrader 5 have a detailed trade history at their fingertips, but turning it into insight usually means copying rows into spreadsheets and rebuilding the same formulas every week. The team behind Better Trade Journey wanted a product that does this work for them: upload an MT5 statement, get performance statistics you can trust, and keep a journal of why each trade was taken.

The hard part is the data. MT5 reports differ between brokers in column layout, file encoding and symbol naming, and one malformed file must never stall the app or quietly skew a trader's numbers. The platform also needed an operator console so the team could support users and keep the import pipeline healthy.

02

What we built

We designed and built Better Trade Journey as a TypeScript monorepo on Turborepo, keeping the domain logic apart from the UI so the calculations that matter most can be tested on their own.

  • MT5 import pipeline — parsers for MT5 HTML and XLSX reports that detect the file type, handle UTF-16 encoded exports and map broker-specific column layouts. Parsing and saving run as BullMQ jobs on Redis in a dedicated worker, so large uploads never slow down the web app.
  • Analytics engine — a standalone, unit-tested package that computes net P&L, win rate, average R:R, profit factor, cumulative P&L and drawdown curves, breakdowns by weekday, hour, trading session and holding time, and a risk-of-ruin simulation.
  • Fast dashboards — a daily-stats rollup is recalculated after every import, so the P&L calendar loads instantly instead of re-scanning every trade.
  • Journal and strategies — trade notes, tags, screenshots and strategy playbooks with statistics for each strategy.
  • Admin console — user management, a parser error log showing the broker, file and error for every failed import, broker presets for column mapping, a global symbol directory, and an audit trail of admin actions.

The app runs on the Next.js 15 App Router with a type-safe tRPC API and Drizzle ORM over PostgreSQL, and is covered by Vitest unit tests and Playwright end-to-end tests.

03

The result

We delivered the trade journal, analytics dashboards, MT5 import pipeline and admin console, with the public site live at bettertradejourney.com.

Traders upload an MT5 statement and the statistics are rebuilt in the background. When an import fails, the support team can see which file failed and why, without having to guess. Because every formula lives in one standalone, tested package, new metrics can be added later without reworking the screens.

04

Technology

  • Next.js 15
  • TypeScript
  • tRPC
  • TanStack Query
  • Drizzle ORM
  • PostgreSQL
  • BullMQ
  • Redis
  • Turborepo
  • Tailwind CSS

Have a project like this?

Tell us what you're building. We'll reply within 1–2 business days with next steps and a rough estimate.