Skip to main content
The product worked. The market didn't. - hero image
Back to work

WSB Sentiment

Shipped

The product worked. The market didn't.

WSB Sentiment turns Wall Street Bets' Reddit sentiment, plus news, options flow, insider trading, and short-squeeze data, into a real-time buy/sell/hold signal per stock. I researched, designed, and built it solo, and shipped real subscription infrastructure to find out if anyone would pay for it. Thirty-four people signed up. None converted - a clear enough answer to stop rather than keep subsidizing it myself.

Quick scan

  • The idea came from a podcast host describing his own problem: by the time he read Wall Street Bets' sentiment shift on a stock, it had already moved. I knew how to build the fix, so I did.
  • It fuses Reddit sentiment with news, options flow, insider trading activity, and a short-squeeze signal into one buy/sell/hold call per stock, refreshed in near real time.
  • WSB's language is built to be misread - irony and sarcasm are the house style. I built a few-shot classifier on my own curated examples, using my own fluency in the sub's dialect to teach it the difference.
  • Several of the dashboard's signals weren't in the original plan - they came from real investors telling me what the tool was missing.
  • I shipped real subscription infrastructure - Stripe, tiered feature gating - to find out if anyone would actually pay. 34 signups, zero conversions was a clear enough answer to stop.

Team

Solo - research, design, and full-stack build

Role

Product, design, and engineering

Timeline

Started over a semester break, MHCID program at UC Irvine; grew into a shipped product

Status

Live, development paused - real infrastructure, no validated paid demand

Overview

This one came out of a stranger's frustration, not mine. A podcast host was describing a pattern he kept running into: by the time he read Wall Street Bets' sentiment shift on a stock, it had already moved. He wished someone would build something that alerted him the moment sentiment turned, instead of after it already had. I knew how to build that, so I did.

The real problem was speed and attention. Reading one subreddit closely enough to catch a genuine sentiment shift means watching it constantly - miss half a day and the signal you'd act on is already stale. I wanted something that watched continuously and told you the moment it mattered, instead of something you had to babysit yourself.

The WSB Sentiment live dashboard, showing aggregate buy/sell/hold signal counts, a trending-tickers panel, and a grid of per-stock sentiment cards

The live dashboard - aggregate signal counts up top, trending tickers by mention volume, then a card per stock.

One call, built from more than sentiment

Reddit mention counts and a bullish/bearish/neutral split are the base layer, but sentiment alone lies plenty - a stock can be loudly bullish on WSB while its price is already falling. Each card cross-references sentiment against the stock's actual price move, options flow, insider trading activity, news volume, and short-squeeze potential, then synthesizes all of it into one buy/sell/hold call - with a one-click link straight into Robinhood if you want to act on it.

What one card actually shows

Mentions and the sentiment split are the entry point, but the row that matters most is Divergence - whether the crowd's mood actually agrees with where the price is moving. The dashboard states it plainly, card by card: "Sentiment aligns with market move" or "Sentiment diverges from market move." A stock reading bullish while diverging from its own price is a very different signal than one where sentiment and price agree.

Below that sits the rest of the signal stack - options flow (call/put ratio), a Bag Holders flag, a Psychology read, insider-trading sentiment, and squeeze potential. Several of these weren't in the original build; they came from conversations with real investors (see below).

Two expanded stock cards (LCID and T) showing the full signal set: mentions, sentiment split, market-move divergence, options flow, bag holders, psychology, insider sentiment, social sentiment, and squeeze potential, each with a one-click Sell on Robinhood action

Two real cards from the live dashboard - sentiment is one row out of nine.

The actual hard problem: WSB doesn't say what it means

Wall Street Bets' native dialect runs on irony. A post dripping with confidence is often a joke about a bad trade; a phrase that reads as pure conviction can mean the opposite depending entirely on context a keyword scanner can't see. A system that reads WSB literally gets the direction backward constantly.

I'd read the sub closely enough, for long enough, to tell the difference myself - which posts were sincere and which were a bit. So instead of guessing, I built a few-shot classifier: curated real examples of sarcastic versus sincere posts from what I already knew how to read, fed them to the model as the pattern to follow, and kept refining the example set until it classified consistently. The model didn't learn WSB's dialect from nothing - it learned it from someone who already could read it.

Signals that came from real conversations, not a spec

Bag Holders and Psychology weren't in the original plan. A handful of people who actually invest looked at an early version and told me where a plain sentiment score fell short:

  • A Bag Holders flag, surfaced on cards where the sentiment reads less like a real buy signal and more like people talking themselves into holding a position.
  • A Psychology read, giving a sense of the crowd's mood beyond a raw bullish/bearish count.
  • The market-move Divergence signal above, so sentiment is never read in isolation from what the price is actually doing.

The call to stop

Running near-real-time scraping and AI inference across dozens of tickers costs real money every month, not a one-time build cost.

Constraint

The only honest way to know if this was worth continuing to fund was real willingness to pay - not a guess, not a survey.

Decision

I shipped the full subscription layer for real: Stripe integration, tiered feature gating, the works. Free users got the live dashboard; paid tiers unlocked the rest.

Resolution

34 signups, zero converted to a paid tier. That's not ambiguous. I couldn't keep personally covering the infrastructure cost for a product with no validated paying demand, so active development stopped. It's still live for my own use.

What this was actually about

The build itself worked end to end: a real-time data pipeline across Reddit, news, and market data; an AI layer trained on my own domain fluency to solve a genuinely hard sarcasm-detection problem; features shaped by real investor feedback instead of my own guesses; and a real payments and subscription system, not a mocked-up pricing page.

The part I'd point to as the actual skill isn't the build - it's that I ran the experiment honestly enough to trust the answer, and stopped when the answer was no. Shipping something is easy to overvalue; knowing when a working product still isn't worth subsidizing is the harder, less comfortable call, and I made it before it cost more than my own time.