Sage

Sage

A conversational assistant for financial enthusiasts

A conversational assistant for financial enthusiasts

From bright to bold. Designing Sage’s dual-mode interface for focused, all-day financial decision-making.

From bright to bold. Designing Sage’s dual-mode interface for focused, all-day financial decision-making.

Conversation Design

Conversation Design

Financial Bot

0 to 1 Design

Financial Bot

Financial Bot

Sentiment Analysis

Prototyping

Sentiment Analysis

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.

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.

Role

Role

Conversational Designer

Conversational Designer

Team

Team

Solo

Solo

TOOL STACK

TOOL STACK

Claude Code · React · Microsoft Azure Speech API · FMP API · Finnhub API · Conversation Design Canvas · Personality Framework

Claude Code · React · Microsoft Azure Speech API · FMP API · Finnhub API · Conversation Design Canvas · Personality Framework

What pairs trading is, and
Why doing it well is hard today

What pairs trading is, and why doing it well is hard today

What pairs trading is, and
Why doing it well is hard today

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.

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.

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.

Four problems follow:

Four problems follow:

Fragmented platforms

Fragmented platforms

No single tool combines live price data, historical spreads, and market news in one view.

No single tool combines live price data, historical spreads, and market news in one view.

No unified alert system

No unified alert system

Divergence signals across all three data layers cannot be monitored together from one place.

Divergence signals across all three data layers cannot be monitored together from one place.

High cognitive barrier

High cognitive barrier

Traders without quant backgrounds struggle to interpret z-scores and RSI overlays on their own.

Traders without quant backgrounds struggle to interpret z-scores and RSI overlays on their own.

Timing delays

Timing delays

Switching between tools to stitch information together causes missed entry and exit windows.

Switching between tools to stitch information together causes missed entry and exit windows.

Occupying the gap

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 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

TOOL STACK

TOOL STACK

Claude Code · React · Microsoft Azure Speech API · FMP API · Finnhub API · Conversation Design Canvas · Personality Framework

Claude Code · React · Microsoft Azure Speech API · FMP API · Finnhub API · Conversation Design Canvas · Personality Framework

Deliberately flat personality

Deliberately flat personality

Every useful thing Sage could do had a near-twin that crossed into financial advice. The core design challenge was writing sentences that inform without nudging. Rather than flagging 3-sigma events with alarm language, Sage maintains neutral composure — avoiding the risk of amplifying user anxiety or unconsciously driving trading behavior.

Every useful thing Sage could do had a near-twin that crossed into financial advice. The core design challenge was writing sentences that inform without nudging. Rather than flagging 3-sigma events with alarm language, Sage maintains neutral composure, avoiding the risk of amplifying user anxiety or unconsciously driving trading behavior.

EXAMPLE RESPONSE — TYPICAL SPREAD

EXAMPLE RESPONSE — TYPICAL SPREAD

"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."

"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

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.

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

Three writing principles

Plain language over jargon

Plain language over jargon

No "z-score" or "deviation" ever reaches the user. The math stays in the backend.

No "z-score" or "deviation" ever reaches the user. The math stays in the backend.

Subject-verb-object structure

Subject-verb-object structure

Easy to parse when listened to, easy to skim when read. Sage speaks in complete sentences, not fragments.

Easy to parse when listened to, easy to skim when read. Sage speaks in complete sentences, not fragments.

End-focus principle

End-focus principle

The actionable takeaway — "nothing unusual today" — sits at the end of the sentence, where attention lands last.

The actionable takeaway — "nothing unusual today" — sits at the end of the sentence, where attention lands last.

Why this was a conversation

Why this was a conversation

So Sage supports voice for input and quick listening, but doesn’t pretend to be hands-free. The multimodal handoff, start a query by voice, see the chart and news cards on screen, finish the alert setup by tapping, reflects that constraint rather than fighting it.

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.

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.

So Sage supports voice for input and quick listening, but doesn’t pretend to be hands-free. The multimodal handoff, start a query by voice, see the chart and news cards on screen, finish the alert setup by tapping, reflects that constraint rather than fighting it.

Arbitrage Watchlist

Arbitrage Watchlist

Three intents, one conversation

Three intents, one conversation

01 — Suggest Pairs

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.

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

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.

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

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.

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

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:

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:

UNDER THE HOOD

UNDER THE HOOD

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.

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.

Most of the work was deciding what not to say

Most of the work was deciding what not to say

Most of the work was deciding
what not to say

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.

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.

Future development

Future development

Tiered vocabulary versions for beginner and experienced traders, real-world validation with retail traders, expanded Financial News feature, and Paper Trading simulation.

Tiered vocabulary versions for beginner and experienced traders, real-world validation with retail traders, expanded Financial News feature, and Paper Trading simulation.

© 2026- Shreesa Shrestha

© 2026- Shreesa Shrestha