Skip to main content

Lab

How BullYeah calculates its outputs and governs model changes.

Methodology

How BullYeah Scores Work

Plain math, not a black box. Every number below is deterministic and reproducible from public market data - nothing here is AI-invented.

Four separate outputs, never blended into one number

Direction Score (0-100)

A weighted blend of the pillars that matter for your chosen horizon (momentum, trend, sentiment, fundamentals, valuation, and more) - centered on 50 (neutral). Displayed as a 7-tier label from Strong Bearish to Strong Bullish.

Data Confidence (0-100%)

How much real, agreeing data actually backs up the Direction Score - not a prediction of how likely the stock is to move. A score built on thin or conflicting evidence gets its label capped - it can never display as confidently as one built on complete data.

Risk (0-100, inverted)

Higher Risk means MORE risk, not more reward - the opposite direction from every other score here on purpose, so a "bullish and risky" setup can never be confused with a "bullish and safe" one.

Opportunity (0-100)

A risk-adjusted attractiveness score: Direction minus the Risk engine's penalty points. Answers "how attractive is this setup once risk is weighed against direction" - a genuinely different question from the raw Direction score, and what Top Stocks ranks by.

Horizon Alignment (e.g. "Great Company, Bad Entry" or "Tactical Pop") is a separate, complementary concept, not a fifth output and not a replacement for Opportunity above - it's a plain-English label for how your Day, Swing, and Invest Direction scores relate to each other, not a per-horizon score in its own right. See the next section for the same stock across all three horizons.

Confidence caps the label - always

A Direction Score of 88 built on thin, conflicting, or incomplete data should never display with the same confidence as an 88 built on complete, agreeing evidence. So the raw score is capped by how much it's actually backed up:

Confidence ≥ 75% → full range permitted (Strong Bullish / Strong Bearish allowed)
Confidence ≥ 60% → capped at Bullish / Bearish
Confidence ≥ 40% → capped at Lean Bullish / Lean Bearish
Confidence < 40% → shown as "Insufficient or Low-Confidence Data"

Example: a raw score of 88 with 52% Confidence displays as "Lean Bullish - Low Confidence," never "Strong Bullish."

The same stock, three different questions

Day, Swing, and Invest aren't the same score computed on different timeframes of the same chart - each one re-weights entirely different evidence, because each one is answering a genuinely different question.

Day Trade - "Is today's move real?"

Leans hardest on signed volume and breaking sentiment - does trading activity actually confirm the move, and is there fresh news driving it right now.

Swing Trade - "Does this have days-to-weeks follow-through?"

Balances technicals with earnings momentum and the broader market regime - continuation evidence, not just today's tape.

Invest - "Is this a good long-term business at a fair price?"

Leans almost entirely on fundamentals and valuation - real financial-statement health and whether the price already reflects it, not short-term price action.

Crypto: adapted, not faked

The full institutional methodology for crypto calls for data this app doesn't have a feed for yet - on-chain flows, derivatives positioning. Rather than invent placeholder numbers for those pillars, we drop them entirely and redistribute their weight across the pillars we can compute for real from public price data (momentum, trend, and a genuine cross-asset regime read). A pillar we can't honestly compute is not shown - it's never simulated.

This is why a crypto Confidence score is often lower than an equivalent stock's - it's an honest reflection of covering fewer real pillars, not a bug.

Adaptive Scoring: learning from real outcomes, not a black box

BullYeah's pillar weights are no longer permanently fixed - they nudge over time based on which pillars actually correlated with real subsequent returns, measured from every score this app has ever logged (see the Score Ledger). This is plain correlation math, not a neural network or an opaque model: each pillar's weight can only move ±4% per retune, is hard-capped to a ±30% band around its original value, and a retune only happens once at least 25 real graded outcomes exist for that horizon. The exact rationale for every weight change is logged and visible on the Score Ledger page.

On Top Stocks specifically, a second mechanism ("HistoricalTwin") compares a stock's current pillar scores against BullYeah's own past closed picks with similar scoring characteristics, and surfaces a Buy/Hold/Exit label with plain-English reasoning. It stays a neutral "Hold" until there's real sample size (30+ closed picks, 5+ similar past setups) behind it - it never invents an early signal.

Scope: adaptive weights currently apply to stock scoring only (Day/Swing/Invest). Crypto and Bitcoin scoring are unaffected for now - a disclosed limitation, not an oversight.

Still evolving

BullYeah is under active development. Every score you see today is being permanently logged so that, over time, we can show a real track record instead of just asking you to trust the math. This page will be updated as the methodology evolves - it always reflects exactly what the app currently computes.