JBD documentation

Every metric, score, and autonomous agent behavior in JBD โ€” explained. Click the info icon on any dashboard to jump straight to the relevant section here.

Core concepts in 30 seconds

The autonomous agent
A cloud process that runs every 2 minutes, pulls fresh signals, writes strategy reports with citations, detects anomalies, and clusters mentions into topics โ€” without anyone pressing a button.
Mention
A single occurrence of your brand being referenced anywhere we monitor (a tweet, a news article, a Wikipedia edit, a forum post, etc.). Each mention is deduplicated, sentiment-tagged, and stored with its reach and engagement.
Reach
Estimated number of people who could have seen a mention. For social it's usually the author's follower count; for news it's the outlet's audience size.
Sentiment
Classification of each mention as positive / neutral / negative. Reliable at aggregate level; individual sarcasm or context may be mis-labeled.
Share of Voice
Your share of the total conversation, across your brand and competitors you track. 100% means we see no competitor mentions in the same window.
Composite score
A 0โ€“100 number designed for quick visual scanning. We always expose the formula so you can trust it โ€” they are never AI magic.

โญComposite scores

High-level 0โ€“100 indicators of overall brand health, visibility, and influence.

Reputation Score

#

A 0โ€“100 score for how positively the market talks about your brand, weighted by reach.

The Reputation Score is a composite 0โ€“100 measure of brand reputation health.

It starts from a neutral baseline of 50 and moves ยฑ50 based on how positive vs. negative your mentions are, weighted by the reach of each mention โ€” a single viral negative post matters more than many small positive ones.

  • 70โ€“100 โ†’ strong positive reputation
  • 40โ€“69 โ†’ neutral / mixed
  • 0โ€“39 โ†’ negative-skewed, action recommended
Formula
baseline        = 50
reach_weighted  = (ฮฃ reach[pos] โˆ’ ฮฃ reach[neg]) / (ฮฃ reach[pos] + ฮฃ reach[neg])
count_weighted  = (count[pos] โˆ’ count[neg]) / total_count
blend           = 0.6 ร— reach_weighted + 0.4 ร— count_weighted
reputation      = clamp(0, 100, round(50 + blend ร— 50))
Source:sns_mentions (sentiment + reach)

Presence Score

#

A 0โ€“100 score for overall brand visibility. Higher = more people are seeing you.

The Presence Score measures how visible your brand is in the monitored window, regardless of sentiment.

It blends log-scaled reach (weight 70%) and log-scaled mention count (weight 30%), each normalized so the realistic range โ€” from a small local brand up to a global brand with reach in the billions โ€” maps onto 0โ€“100 without saturating at the top. Log scaling means a doubling from 10K โ†’ 20K reach is the same jump as 1B โ†’ 2B, so the score stays comparable across very different brand sizes.

Formula
reach_component  = min(1, log10(total_reach + 1) / 10)     // ~0 at reach 1, 1.0 near 1e10
volume_component = min(1, log10(total_mentions + 1) / 4)    // ~0 at 1 mention, 1.0 near 1e4
presence         = round((reach_component ร— 0.7 + volume_component ร— 0.3) ร— 100)
Source:sns_mentions (reach + count, full-volume SQL)

Influence Score (brand level)

#

A 0โ€“100 score for how much high-reach amplification your brand gets.

The Influence Score (brand level) captures whether your brand is being amplified by a few very high-reach sources (major news outlets, large accounts) rather than only small mentions.

It sums the reach of your top-5 highest-reach mentions and log-normalizes that total. It is computed over the full mention set (not a sample), so it reflects all of your coverage in the window.

*Note*: A related per-author score exists on the Influencers page โ€” that version ranks individual profiles.

Formula
topReachSum = sum of reach of the top 5 mentions by reach (over the full set)
influence   = round(min(100, (log10(topReachSum + 1) / 10) ร— 100))   // 1.0 near 1e10
Source:sns_mentions (top-N reach, full-volume SQL)

AVE (Advertising Value Equivalent)

#

Estimated USD value of your earned media โ€” what you'd have paid to reach the same eyeballs with ads.

AVE is a PR industry standard that estimates how much it would have cost to reach the same audience through paid advertising, based on each platform's typical CPM (cost per thousand impressions).

We use the following per-platform CPM estimates (USD per 1,000 impressions):

PlatformCPM
News$15
LinkedIn$12
YouTube$10
Instagram$7
TikTok$6
Facebook$6
X$5
Blog$5
Bluesky$4
Mastodon$4
Reddit$3
HackerNews$3
Wikipedia$2

AVE is a directional metric โ€” it's not a replacement for properly modelled media value, but it lets you talk to finance and PR stakeholders in a dollar amount they recognize.

Formula
AVE_usd = ฮฃ (mention.reach / 1000) ร— CPM[mention.source]
Source:sns_mentions (reach ร— platform CPM)

Share of Voice

#

What percentage of the conversation about you + your competitors is about your brand.

Share of Voice (SoV) = your brand's mention volume รท (your brand + tracked competitors).

When no competitor data is available (Talkwalker project not yet configured), SoV defaults to 100 โ€” treat with caution. When you configure competitor tracking, this value reflects real-world category share.

Formula
SoV = round((brand_mentions / (brand_mentions + ฮฃ competitor_mentions)) ร— 100)
Source:sns_mentions + bundle.competitor_comparison

๐Ÿ“ŠVolume & reach

Raw counts that power everything else.

Total Mentions

#

Total brand mentions observed in the selected window.

Every individual brand mention we collected via Talkwalker (X, news, blogs, Reddit, Facebook, Instagram, YouTube, Bluesky, forums, โ€ฆ) in the current time range. Each mention is deduplicated by external_id (platform + post id) so reposts don't double-count.

Source:sns_mentions (count, distinct)

Total Reach

#

Estimated number of people who could have seen your mentions. Sum of author followers.

Reach is the estimated number of people exposed to a mention. For social media, reach is typically the author's follower count at the time of posting. For news / blogs, we use the outlet's estimated audience.

Total reach is the sum across all mentions in the selected window. It's an upper-bound estimate โ€” a follower may not have actually seen the post due to algorithmic distribution.

Source:sns_mentions.reach (sum)

Total Engagement

#

Sum of likes + reposts + replies + comments across all mentions.

Platform-native engagement counters combined into a single number. Different platforms weight differently (Reddit points vs Twitter likes vs LinkedIn reactions) so use this as a relative trend, not a cross-platform absolute.

Source:sns_mentions.engagement (sum)

User Generated Content

#

Mentions authored by identifiable individuals (not official outlets).

We count a mention as user-generated if the platform is a social network AND we successfully resolved an author handle. This excludes news, blogs, and other non-social surfaces.

Source:sns_mentions (social sources + author non-null)

Social media reach

#

Sum of reach from social platform mentions only (excludes news / blogs / forums).

Subset of total reach that came from social platforms: X, Instagram, TikTok, YouTube, Facebook, LinkedIn, Threads, Bluesky, Mastodon, Reddit.

Compare against Non-Social reach to understand whether your visibility is driven by earned media (news) or organic social activity โ€” each has different half-life and remediation playbook.

Source:sns_mentions reach sum where source โˆˆ social platforms
Related:Total Reach

Non-Social reach

#

Sum of reach from news outlets, blogs, and forums.

Reach from non-social surfaces โ€” news, blogs, forums.

Non-social reach is typically more persistent (news articles stay indexed and rank for months) but slower to move โ€” editorial cycles, not algorithmic bursts.

Source:sns_mentions reach sum where source โˆ‰ social platforms

Mentions by source

#

Breakdown of mention volume across platforms, with sentiment overlay.

Stacked bar showing how your total mention volume decomposes across platforms, with Positive / Neutral / Negative counts per source.

Read this chart to answer: *"On which platform is sentiment trending negative?"* A platform where negatives dominate may need a dedicated response playbook.

Source:sns_mentions group by source, sentiment

Date range

#

7 / 14 / 30 / 90 days โ€” the window used for every KPI on the page.

The selected date range controls how far back in time the KPIs and charts query. Longer ranges are smoother (noise-resistant) but less responsive to this-week events.

Defaults: 30 days on Overview. Changing the range re-queries sns_mentions with the new boundaries.

Source:URL param ?range=30d

(cached) marker

#

The KPIs shown were loaded from server cache โ€” usually <3 minutes old.

To keep dashboard load times fast, tenant-level KPI snapshots are cached in memory for 3 minutes. The (cached) marker just tells you "these numbers are from cache, not re-aggregated live".

Click ๐Ÿ”„ Refresh to force a fresh computation โ€” useful right after you know a new mention has come in.

Source:In-memory Map<tenantId, snapshot>

๐ŸŽฏSentiment

How positive or negative your conversations are.

Sentiment Score

#

A โˆ’1 to +1 net sentiment (displayed here as ร—100 for readability). Counts positive minus negative.

The Sentiment Score is the classic โˆ’1 to +1 balance, displayed here multiplied by 100 for readability (so โˆ’50 to +50).

Unlike the Reputation Score, it does not weight by reach โ€” it's a pure count-based sentiment index useful when you want to see whether conversation volume is shifting tone, independent of how big the accounts are.

Formula
sentiment = (positive โˆ’ negative) / total_mentions
Source:sns_mentions (sentiment)

Positive mentions

#

Count of mentions classified as positive in the selected window.

A positive mention expresses approval, praise, satisfaction, or positive intent toward your brand. Sentiment classification happens at ingest time using the upstream source's tag (Talkwalker) or the LLM when the source doesn't tag sentiment.

Aggregate-level positive counts are reliable; individual mentions may occasionally be mis-classified due to sarcasm or domain-specific language.

Source:sns_mentions where sentiment = 'positive'

Neutral mentions

#

Count of mentions classified as neutral โ€” factual, non-opinionated.

Neutral mentions are those that reference your brand without a clear positive or negative stance โ€” news announcements, list inclusions, product specs, informational posts.

Neutral volume is often the largest bucket for B2C brands and is a leading indicator of general awareness.

Source:sns_mentions where sentiment = 'neutral'

Negative mentions

#

Count of mentions classified as negative โ€” complaints, criticism, problems.

A negative mention expresses dissatisfaction, criticism, service failure, or other adverse sentiment toward your brand. The Storm Alert system specifically watches for spikes in this count.

Source:sns_mentions where sentiment = 'negative'

Positive ratio

#

Positive mentions as a percentage of total.

positive_count / total_count ร— 100

A healthy B2C brand typically sits in the 40โ€“70% positive ratio range. Values above 80% may indicate filter-bubble / friend-network bias. Values below 20% warrant action.

Formula
positive_ratio_% = round(positive_count / total_count ร— 100)
Source:sns_mentions aggregate

Negative ratio

#

Negative mentions as a percentage of total. Action threshold โ‰ˆ 15%.

negative_count / total_count ร— 100

Use 15% as a rough action threshold โ€” above that, set aside team time to investigate root causes. Sustained values over 25% signal a reputational issue that needs crisis response planning.

Formula
negative_ratio_% = round(negative_count / total_count ร— 100)
Source:sns_mentions aggregate

๐Ÿ“ฃSocial & Auto SNS

Publishing, engagement, inbox and influencer metrics.

Engagement Rate

#

Engagement divided by reach, as a percentage. Benchmarks vary by platform.

engagement / reach ร— 100%

Typical ranges (rough industry benchmarks):

  • Instagram: 1โ€“3%
  • TikTok: 4โ€“9%
  • X: 0.5โ€“1%
  • LinkedIn: 2โ€“5%
  • YouTube: 2โ€“6% (for community tab; videos are different)

Use as a platform-relative trend, not a cross-platform absolute.

Source:sns_mentions (engagement / reach)

Influencer Score (per profile)

#

Per-author score combining their total reach and engagement with your brand.

Scores individual public profiles that mention your brand:

log(reach + 1) + engagement ร— 0.1

Higher = more likely this single profile is worth engaging with or befriending (media tour, guest post invite, etc.).

Source:sns_mentions grouped by (source, author)

Best Time to Post

#

Platform-specific time windows where historical engagement has been highest.

These are the windows during which posts by you or your competitors in your industry historically earn the highest engagement rate. Use as a starting point โ€” your own audience will refine these over time.

Source:Industry-wide platform norms (will be personalized to your audience after 30 days of posting data)

Content calendar

#

4-week drag-and-drop calendar showing every scheduled post across platforms.

A unified calendar view of every post that's scheduled, drafted, or pending approval across all connected platforms. Each day cell shows platform-colored dots โ€” at a glance you can spot gaps (days with no content), stacks (too many posts competing), and platform mix (e.g. "Mondays are too IG-heavy").

Drag to reschedule. Click a cell to see the full list of posts for that day.

Source:scheduled_posts

Connected accounts

#

Each social platform's account status, followers, and 7-day follower delta.

Each connected platform shows:

  • Handle (@username)
  • Follower count with 7-day delta (+/-)
  • Posts / week rolling count
  • Engagement rate per platform (platform-native)
  • Last sync timestamp โ€” shows "Reconnect" if the OAuth token expired

Accounts needing reconnection are visibly grayed out so you can fix them before your scheduled posts fail.

Source:connected_accounts table

Upcoming queue

#

Posts scheduled for the next 14 days, with status badges and platform icons.

Chronological list of the next 14 days of content. Each item shows:

  • Platform icons (a post can publish to multiple platforms simultaneously)
  • Scheduled time
  • Status badge: scheduled (approved + queued) / draft (not yet submitted) / approval needed (waiting on client)
  • Caption preview

Click any item to edit or reschedule.

Source:scheduled_posts where status IN (scheduled, draft, approval_needed)

Pending client approvals

#

Posts awaiting approval from a client, with 1-click Approve / Request edit buttons.

For agencies and in-house teams with a review layer. Each card shows the post preview, who submitted it, how long it has been waiting, and Urgent flag if it is close to its scheduled time.

Clicking Approve releases the post to the publishing queue. Request edit sends a structured comment back to the author.

Source:scheduled_posts where status = 'approval_needed'

Engagement trend (30d)

#

Daily total engagement per platform over 30 days (multi-line chart).

Each connected platform renders as a separate line so you can see which channels are compounding and which are cooling. Click a legend entry to isolate one platform.

Sudden drops often mean the algorithm changed. Sustained rises often mean a narrative is working โ€” check Top posts for the winners.

Source:Aggregated engagement per post per day

Top posts (30d)

#

Your best-performing content in the last 30 days, ranked by composite engagement.

Top 5 posts ranked by a blend of likes + comments + shares + reach. Use this to extract content themes that work and pitch them into next month's calendar.

Source:scheduled_posts + platform engagement data

Social inbox

#

Unified feed of mentions, DMs, and comments across every connected platform, with sentiment + urgency flags.

One pane of glass for all inbound social messaging. Each item shows:

  • Platform icon
  • Author handle
  • Type (@mention / DM / comment)
  • Sentiment badge (green / gray / red)
  • Urgent flag (triggered by certain keywords like "help", "broken", "angry")
  • Message preview + time

Replying from the inbox creates a native platform reply.

Source:Polled from each connected platform API

AI assistant (CaptionAI / ImageAI / Inbox auto-reply)

#

Three AI tools for drafting captions, generating visuals, and proposing inbox replies.

The Auto SNS workspace includes three on-demand AI tools powered by the agent runtime LLM:

  • CaptionAI โ€” given a topic or link, draft platform-optimized captions (X tone vs LinkedIn tone).
  • ImageAI โ€” brand-voice-constrained visual generation for post headers.
  • Inbox auto-reply โ€” draft a reply for any social inbox item, ready for you to edit and send.

All outputs are suggestions, never sent automatically without your click.

Source:agent runtime LLM (per-tenant)

๐Ÿค–The autonomous agent

Storm alerts, topic clusters, proposals โ€” what the agent writes and detects while you sleep.

Storm Alert

#

A 2ฯƒ spike or drop in a brand metric, often accompanied by an AI-written explanation.

A Storm Alert fires when one of these metrics deviates by more than 2 standard deviations from its 7-day rolling baseline:

  • Daily mention count
  • Daily total reach
  • Daily negative-sentiment count
  • Daily positive-sentiment count

Severity is assigned by how far past 2ฯƒ the value went:

  • minor (2ฯƒโ€“2.5ฯƒ)
  • moderate (2.5ฯƒโ€“3ฯƒ)
  • major (3ฯƒโ€“4ฯƒ)
  • critical (โ‰ฅ4ฯƒ)

The autonomous agent then writes a short explanation (โ‰ค2 sentences, using the sample mentions from the anomaly day) so you don't have to investigate manually.

Formula
baseline        = mean(last_7_days[metric])
std             = stddev(last_7_days[metric])
deviation       = (today โˆ’ baseline) / std
if |deviation| โ‰ฅ 2 โ†’ emit anomaly
Source:metric_anomalies table (detected + explained by the LLM)

Anomaly Detector

#

The background loop that finds unusual spikes/drops and explains them with AI.

The cloud-tick runs the anomaly detector (the tick fires every 30 minutes; the detector itself is guarded by a TTL so it does meaningful work a few times a day). It:

1. Aggregates today + previous 7 days of mentions / reach / sentiment counts. 2. Computes rolling mean + standard deviation. 3. Flags any day in the last 3 days that exceeds 2ฯƒ deviation. 4. Inserts a row into metric_anomalies (idempotent via unique index on tenant/metric/date). 5. For the single most-recent unexplained anomaly, calls the LLM with a prompt that includes up to 5 sample mentions from that day, and stores the explanation.

This is the Storm Alert + AI Anomaly Detector pattern.

Source:cloud-tick anomaly-detector.server.ts
Related:Storm Alert

AI Topic Analysis

#

Recent mentions grouped into 5โ€“8 recurring themes by the autonomous agent.

Every 6 hours, the autonomous agent takes the latest 150 mentions and asks the LLM to cluster them into 5โ€“8 topic clusters, each with:

  • A short human-readable label (e.g. "Pricing and evaluation")
  • A 1-sentence summary of what the cluster is about
  • The member mentions

Per-cluster we compute:

  • Mention count
  • Total reach
  • Total engagement
  • Sentiment breakdown (positive / neutral / negative)
  • Share of Voice โ€” cluster mentions รท total in batch

This is the AI Topic Analysis feature โ€” a qualitative summary of what the market is talking about, not just how much.

Source:topic_clusters table (regenerated every 6h)

Agent Proposal

#

A concrete recommendation generated by the agent from observed evidence.

When the agent runtime writes a section report (rotating through all sections, each refreshed when it is older than ~2 hours), it also proposes specific next moves with:

  • An explicit recommended action
  • The evidence that triggered it
  • Expected impact

Proposals can be pinned to stay visible in the Strategy workspace.

Source:analytics_reports (level='proposal')

Something unclear? Tell us โ€” this doc is generated from app/lib/docs/metrics-glossary.ts in the repo.