Inspiration
Retail trading has exploded among young Canadians, but platforms like Wealthsimple and Questrade are designed to make trading frictionless — not thoughtful. Behavioral finance research shows that over 80% of retail traders lose money, and the biggest culprits aren't bad stock picks — they're cognitive biases: overtrading, loss aversion, and revenge trading. We wanted to build the tool that trading platforms don't give you: a mirror that shows you your own patterns and coaches you to break them.
What it does
financia is a mobile app where you upload your trade history (CSV) and instantly get a bias analysis. The app uses deterministic detection algorithms — not LLM guessing — to identify three key biases with explainable evidence: Overtrading: trades/day, time between trades, balance turnover, hourly clustering Loss Aversion: hold time asymmetry between winners and losers, risk/reward ratio, small-win rate Revenge Trading: post-loss trade frequency, win-rate drop after losses, position size escalation Each bias gets a severity score (LOW / MEDIUM / HIGH) backed by specific evidence from your data. From there, the app generates a personalized action plan with rules, micro-habits, a brokerage fee comparison (featuring National Bank Direct Brokerage), safer ETF alternatives, financial literacy modules, a journaling tool, and a Rest Mode cooldown timer that helps you step away when emotions run high. An optional AI Coach (powered by Google Gemini via a secure backend proxy) provides conversational guidance grounded in your actual metrics — no hallucinated advice.
How we built it
The frontend is an Expo (React Native) app written in TypeScript with Expo Router for file-based navigation. We used useReducer with a global AppContext for state management and react-native-gifted-charts for data visualization (cumulative P&L, hourly heatmaps, post-loss patterns). Trade files are parsed client-side with PapaParse. The backend is a lightweight Express server that proxies requests to Google Gemini, with Zod schema validation to ensure structured, reliable LLM output. The app includes a full fallback system so it works completely offline without an API key. We designed the UI around a dark navy "bank-grade" theme with a centralized design system (colors, spacing, typography, shadows) — intentionally avoiding the "default AI dashboard" look.
Challenges we ran into
Bias detection at scale: The judging dataset is 20x larger than our sample data. We wrapped heavy computation in InteractionManager.runAfterInteractions to keep the UI responsive during analysis of thousands of trades. LLM reliability: Gemini sometimes returns malformed JSON. We added Zod validation with a deterministic fallback pipeline so the app never shows a broken state. Keeping it honest: We resisted the temptation to have the LLM "detect" biases. All detection is pure heuristic math with transparent evidence — the LLM only generates coaching language and literacy content on top of deterministic results.
Accomplishments that we're proud of
Deterministic bias detection with real explainability. Every bias flag comes with specific, human-readable evidence pulled from the user's actual data — not vague LLM summaries. When financia says "you hold losses 2.3x longer than winners," it's math, not a guess. Rest Mode with intentional friction. We built a cooldown timer that requires a written reflection to exit early. It's a small design choice, but it's grounded in behavioral science — forcing a pause between impulse and action is one of the most effective interventions for emotional trading.
What we learned
Behavioral finance is a deep field, and translating academic concepts like the disposition effect into concrete, actionable heuristics (hold-time ratio > 1.5x = loss aversion signal) was both challenging and rewarding. We also learned that good fintech UX means adding friction in the right places — the Rest Mode reflection requirement is intentionally annoying, and that's the point.
What's next for Financia
Real brokerage API integration. Replace the simulated login with OAuth connections to platforms like Wealthsimple and Questrade via their public APIs, enabling automatic trade import instead of manual CSV upload.
Built With
- expo.io
- express.js
- geminiapi
- node.js
- reactnative
- typescript

Log in or sign up for Devpost to join the conversation.