How It Works
The pipeline, step by step
A worked example
"Acme Corp beats Q2 earnings estimates but lowers full-year guidance"
Shares fell in early trading as investors focused on the softer outlook despite the earnings beat.
A general sentiment model reads the word "beats" and calls this positive. But the app also runs a finance-specific check for guidance language: it detects "lowers full-year guidance" right next to an earnings event, recognizes that pattern as a "beat and lower", historically a case where the market reacts to the guidance cut, not the beat, and applies a penalty that flips the final sentiment negative.
This exact scenario is covered by an automated test, so a future code change can't silently break it without a test failing first.
Known limits
The scoring is rules, not a trained model. Weights started as hand-set guesses. They only begin adapting to real outcomes after 30 scored signals have matured, so early scores reflect assumptions rather than evidence.
Coverage is uneven. A ticker with two signals and one with twenty both get a score, but they are not equally reliable. The signal count is shown everywhere for that reason; click any Vibe Score to see exactly how many signals and what weights produced it.
Sentiment analysis can still misread text. It catches the classic "beats estimates, guides lower" trap (see the worked example), but it is not a person: sarcasm, unusual phrasing, or a genuinely novel situation can still fool it.
Predictions decline to guess when evidence is thin. Fewer than 12 historically similar cases and the forecast doesn't get made at all, rather than being made up.
Paper fills are optimistic. The simulator fills instantly at the last quote with a small slippage assumption. Real fills are worse, especially for thin names and options.
Novelty decays by clock, not by content. Twenty outlets rewriting the same wire story register as twenty documents, not one event.
Options scores can be negative on purpose. A contract can match the screened-for setup perfectly and still be a bad bet once its price is accounted for; see the Options Scanner page.
Signal weights
Example: turning components into a score
Risk limits
Data sources
Reddit blocks datacenter IPs on both its JSON and RSS endpoints, so it runs locally without credentials but needs OAuth keys to work on Vercel. X removed free read access. Connectors that fail are logged and skipped; the rest of the run continues. See the Sources page to add your own subreddits or RSS feeds, or to see exactly which subreddits and feed URLs each connector is pulling from right now.