Sage
From bright to bold. Designing Sage’s dual-mode interface for focused, all-day financial decision-making.
Sage is a voice and text chatbot that helps people analyze correlated stock pairs, two stocks that historically move together, like Coke and Pepsi, Visa and Mastercard, or Ford and GM. Its job is to spot when that historical relationship breaks, flag it, and surface the news that might explain why. It doesn’t tell you what to do. It doesn’t place trades. It doesn’t give advice.

Some stocks tend to move together because the companies behind them operate in the same industry and respond to the same market forces. Pairs trading is the strategy of watching for the moments that pattern breaks when one stock in a pair moves up while the other stays flat or drops. Traders who follow this believe the pair will eventually snap back, which can create an opportunity.
There’s no shortage of financial data. The problem is that doing this well means stitching together three things at once: live price spreads, historical context, and news sentiment. Today, that means switching between a brokerage app, a data terminal, and a news site.
Occupying the gap
Sage is a free analysis tool, not an advisor, sitting between retail trading needs and subscription-locked platforms like Robinhood Cortex. It supports voice and text input with on-screen visualizations across three core capabilities: Arbitrage Watchlist, Financial News, and Paper Trading.

Sage sits at the bottom right corner of the robinhood app
Claude Code · React · Microsoft Azure Speech API · FMP API · Finnhub API · Conversation Design Canvas · Personality Framework
Deliberately flat personality

"Mastercard is currently about $197 more expensive than Visa, which is right around the usual gap. Nothing unusual today — these two are behaving like they normally do."
News as context, never commentary
When spreads widen, two explanations exist: statistical noise or a fundamental event. Sage surfaces recent headlines without sentiment scores or interpretive framing, positioning the user as analyst, not as a passive recipient of a recommendation.

Three writing principles
Why this was a conversation
Before designing the conversation, I had to justify designing one at all. Pairs-trading lookups passed almost every test for conversational interaction, users already discuss these topics with other people, they need to navigate multiple apps to complete the task, and they can do it while multitasking. The one constraint: it can't be truly hands-free, since the charts and tables need a screen.

Arbitrage Watchlist

01 — Suggest Pairs
Users select a sector; Sage returns historically correlated pairs with 90-day correlation scores. The system covers 11 sectors with 55 curated pre-selected stock pairs: Coke/Pepsi, Visa/Mastercard, Ford/GM, and more.

02 — Check Spread
Sage displays the current spread against the historical average in plain language. The interface includes charts with a shaded typical gap band, comparison tables across 30, 90, and 365-day windows, and automatically surfaced recent headlines, none of it framed as a signal.
03 — Set Alert
When a spread diverges meaningfully from its historical average, Sage notifies the user. Alerts are framed descriptively, never as action directives, keeping the user as the decision-maker at every step of the process.

How it was built
Sage is a React-based multimodal app built with Claude Code. It accepts voice and text input, and returns voice and text output alongside on-screen elements like tappable sector chips, comparison tables, and news cards. Users can switch between voice and text mid-session. Three APIs power it:

The spread calculation itself uses a price ratio with an RSI overlay and a z-score for deviation, but none of that math ever reaches the user. They see a chart, a number, and a plain-language sentence.

Each omission in Sage's writing represented an opportunity for influence that the tool deliberately rejected. No alarm language at statistical thresholds, no sentiment scores, no reassurance messaging. Restraint is not a limitation, it is the defining characteristic of a tool that respects the user's autonomy as an analyst.
Tiered vocabulary versions for beginner and experienced traders, real-world validation with retail traders, expanded Financial News feature, and Paper Trading simulation.



