OG Advisory GroupOG Market Desk

OG Score Methodology

How the OG Market Desk Score is calculated — a multi-factor approach to market sentiment analysis.

Overview

The OG Score is a composite sentiment indicator ranging from -100 (extreme fear/bearish) to +100 (extreme greed/bullish). It combines 7 weighted factors that each independently assess a different dimension of market sentiment. When a factor lacks sufficient data, its weight is automatically redistributed to the remaining active factors — the score never fabricates a reading to fill a gap.

-100
Extreme Fear
0
Neutral
+100
Extreme Greed

What we publish, and what we don't

We publish every factor in the model, every data source behind it, every safeguard that protects it, and — below — every change we have ever made to how the score is computed. What we don't publish are the exact weightings, formulas, and calibration constants.

Two reasons. The calibration — tuned against months of recorded market data — is the proprietary core of the product. And a fully published parameter set is a gameable one: a score whose exact triggers are public can be manufactured. Factor-level transparency with proprietary calibration is the same standard long used by established scoring systems in finance.

Factor Breakdown

Listed roughly in order of influence. Price action and news carry the heaviest weights; no single factor can dominate the composite.

How the factors combine

  • Each factor independently produces a bounded reading, so no single input can blow out the composite.
  • Factors are combined as a weighted average. The weights are proprietary, fixed across all tickers, and every change to them is versioned in the changelog below.
  • A factor with no data drops out and its weight redistributes across the active factors — the "Active Factors" badge on each stock shows how many of the 7 contributed.
  • Momentum is computed after the other factors, from them — never from itself.

BTC OG Score

Bitcoin gets its own four-factor model on the dashboard tracker — distinct from the per-stock score above because the relevant signals are different (no sector peers, no analyst coverage, but a market-wide Fear & Greed reading).

Fear & Greed

The market-wide Crypto Fear & Greed Index, normalized to the OG Score range — the broad sentiment regime the whole asset class is trading in.

How to Read It
Greed regimes read positive, fear regimes negative; the score reflects the level itself, not a contrarian interpretation.

News Sentiment

Average tone of explicitly Bitcoin-about journalism — company press releases that merely mention BTC are filtered out, because miner and treasury PR is signal on those companies' pages, noise here. Reads live only: when an article rotates off the topic feed, it leaves the score immediately.

How to Read It
Positive when Bitcoin coverage skews favorable, negative when critical.

Price Momentum

24-hour BTC price change, normalized to the score range.

How to Read It
Green day positive, red day negative, proportional to the size of the move.

Volume

Direction-aware volume conviction, mirroring the stock factor: 24-hour volume against Bitcoin's own rolling monthly baseline, credited in the direction of the price move. Distinguishes heavy buying conviction, heavy selling pressure, thin rallies, and light selling.

How to Read It
Heavy volume amplifies whichever direction price moved; quiet volume mutes it.

Additional Signals

Divergence Detection

When the OG Score disagrees with price action by a significant margin, a divergence is flagged. Bullish divergence: price is down meaningfully while sentiment holds clearly positive. Bearish divergence: price is up meaningfully while sentiment reads clearly negative.

Signal Strength

Measures factor agreement. Strong: a clear majority of active factors agree on direction. Moderate: mixed but leaning. Weak: the factors genuinely disagree.

Missing Data Handling

When a factor lacks data (e.g., no news articles found), its weight is set to zero and the remaining factors' weights are automatically normalized. The "Active Factors" badge on each stock shows how many of the 7 factors had available data.

Data Pipeline & Resilience

Refresh Cadence

Stock quotes refresh every few minutes through the dashboard cache. Social and news data are re-warmed on multiple scheduled cycles through the day, throttled to stay inside upstream rate limits, and a daily sentiment snapshot is recorded after U.S. market close for momentum comparisons and the public validation research.

Data-Quality Safeguards

Bad data is refused, not smoothed over. Snapshots that fail integrity checks — a provider feed that desynchronizes, collapses to implausible volume, or stops updating while the underlying conversation keeps moving — are never written to history, and a confirmed-unreliable social feed is quarantined from the score entirely until it recovers, with its weight redistributed. Every write is audited nightly against what actually landed in the database.

Persistence & Fallback

Per-ticker news, social snapshots, and spike alerts are persisted with a rolling retention. When the live source is unreachable (rate limited, outage, or a freshly-listed ticker before its first refresh), the page falls back to the most recent persisted snapshot so it never renders blank. The BTC tracker is the one exception — it reads strictly live, so rotated-off articles disappear from the score immediately.

Spike Alerts

Each daily refresh runs a delta-detection pass against the rolling history. For every tracked metric (mentions, creators, engagements, social dominance) the current value is compared against 7-day, 30-day, and 90-day averages; a significant deviation fires an alert that shows on the ticker's social panel. Tickers without enough baseline history are skipped rather than guessed at.

Methodology Changelog

current: v1.4.0

Every change to how the score is computed is recorded here, in plain language, when it ships. Entries marked “backfill” were reconstructed from commit history when versioning was introduced. How well does the score line up with what happens next? See the validation research →

  • 2026-07-16v1.4.0

    News Sentiment coverage fix: the nightly snapshot now scores the same article set ticker pages already use (adding the pre-graded per-ticker news feed to the wire/RSS pool), and everywhere the factor is computed, only articles published in the last 72 hours count toward it. The news tab still displays 30 days; the score reads the current narrative. No formula changed — the factor was active on roughly 4 of 67 tickers per day before this; coverage rises sharply from today.

    Why: A news sentiment factor that silently sat out for 60+ tickers a day measured nothing; and month-old articles should inform research, not today's score.

  • 2026-07-07v1.3.1

    Nightly history snapshots now include the Social Sentiment factor. It has been live on the site since May 7, but the recording job was still passing no social data, so daily history rows silently redistributed its weight. No factor math changed.

    Why: Recorded history should reflect the same score the site computes; analyses of factor history should segment at this date.

  • 2026-06-12v1.3.0

    Methodology versioning introduced; daily snapshots now record the version that produced them. No factor math changed.

    Why: So score history can be segmented by methodology era and the validation page never mixes eras silently.

  • 2026-06-02v1.2.1 (backfill)

    Per-factor scores and weights began being recorded with each daily snapshot. No factor math changed.

    Why: Instrumentation for measuring each factor’s predictive value before considering any weight changes.

  • 2026-06-01v1.2.1 (backfill)

    Sentiment Momentum factor repaired after a week of missing baselines (May 26 – June 1).

    Why: A data gap, not a design change — noted so history from that week is read with care.

  • 2026-05-26v1.2.0 (backfill)

    Six-factor base score began being recorded alongside the total, enabling week-over-week Sentiment Momentum.

    Why: Momentum needs a stable baseline that excludes itself.

  • 2026-05-07v1.1.0 (backfill)

    Social Sentiment factor enabled, backed by LunarCrush (X + Reddit), with low-volume scores shrunk toward neutral.

    Why: A handful of posts shouldn’t swing a stock’s score; shrinkage keeps thin social data honest.

  • 2026-02-19v1.0.0 (backfill)

    Daily score snapshots began. Seven-factor model with the published weights.

    Why: Start of the recorded history used everywhere on this site.