The Problem

Advertising measures
everything except impact.

Impressions count eyeballs, not reactions. Click-through rates measure curiosity, not connection. A/B tests tell you which headline won, not why. The industry optimizes for attention while ignoring what attention does to people.

We built an instrument that measures the thing everyone skips: how four independent models read the emotion in your words, and exactly where they disagree.

01

The Instrument

How VibeScore works

01

Four independent models

Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google), and Grok (xAI) each score your content against eight primary emotion dimensions. No model sees the others' output. No consensus pressure.

02

Eight emotional dimensions

Joy, Trust, Fear, Surprise, Sadness, Disgust, Anger, Anticipation. Each scored 0-1 by each model. Not sentiment (positive/negative) — full emotional resolution.

03

Divergence is the product

Where models agree, the signal is clear. Where they disagree, your content is being interpreted differently by different cognitive architectures — the same way different audience segments will read it.

04

Physics-based scoring

Raw emotion vectors pass through a physics engine: purity (focus), intensity (strength), drag (conflict penalty), trajectory (stability). The output is a VibeScore from 0 to 1000.

02

The Proof

Benchmarks, not promises

0.569

Core-emotion macro-F1 on GoEmotions

n=500, seed 42. Beats the ~0.46 fine-tuned BERT baseline.

0.437

All-eight macro-F1 (we show it too)

Lower than core-4: mapping 8 emotions onto the dataset costs us. We publish it anyway.

4

Competing AI models

Anthropic, OpenAI, Google, xAI — different training, same test

0–1000

VibeScore range

Centered at 500; valence sets direction, signal sets strength, drag penalizes conflict

03

The Framework

Eight emotions,
digitized.

Our measurement framework identifies eight primary emotions arranged in opposing pairs. Each pair creates drag when both are active, the same way a wave and its inverse cancel out. We model each emotion as a waveform so the pairs can interfere; the frequencies below are labels for that math, not claims about sound or healing.

Emotion

Opposing Pair

Frequency

Group

Joy

Sadness

528 Hz

Constructive

Trust

Disgust

396 Hz

Constructive

Fear

Anger

174 Hz

Reactive

Surprise

Anticipation

639 Hz

Dynamic

Sadness

Joy

285 Hz

Reflective

Disgust

Trust

741 Hz

Reactive

Anger

Fear

852 Hz

Reactive

Anticipation

Surprise

417 Hz

Constructive

04

The Physics

The VibeScore formula

VibeScore = 500 + Valence × Signal × (1 − Drag/100) × 500

Signal = Purity × 0.6 + Intensity × 0.4

Valence (direction)

Which way the feeling points, −1 to +1. Each emotion carries a signed weight; surprise borrows the valence of its neighbors. This is why grief reads low and joy reads high — a plain average can't tell them apart.

Signal (strength)

Purity × 0.6 + Intensity × 0.4. Purity is the normalized standard deviation — a focused tone rather than noise; Intensity is the peak emotion. Strength without direction is just volume.

Drag (penalty)

25 points per active opposite-valence pair (max 100). Joy + Sadness conflict and pull toward neutral; Fear + Anger share a direction and compound, so they do not. The bittersweet case is the classic drag.

Stable

Drag < 20

Clean signal, no active conflicts

Wobble

20 ≤ Drag < 50

Minor conflicts, message is mixed

Decaying

Drag ≥ 50

Multiple conflicts, signal is degrading

Score Something Now

First score is free · No signup required