← sable.tools

Methodology

How Sable measures, derives, and interprets community health. Every metric in the portal is tagged with its signal type so you know exactly what you're looking at.

Signal Types

Every data point in Sable is classified by how it was produced. This taxonomy is surfaced throughout the portal via colored badges so you can calibrate your confidence accordingly.

measured

Measured

Deterministic values calculated directly from raw platform data. Reproducible given the same inputs. Examples: engagement rate, unique mentioners, bot reply rate.
derived

Derived

Computed from measured signals using defined formulas. The math is deterministic but the choice of formula involves judgment. Examples: content lift, format baselines, diagnostic deltas.
interpretive

Interpretive

AI-generated or human-judgment-based assessments. Not deterministic — running the same inputs may produce different outputs. Examples: letter grades, MVL assessment, sentiment analysis, cultist candidate selection.
mixed

Mixed

Combines measured inputs with interpretive framing. The underlying arithmetic is reproducible, but the labeling or thresholds are judgment calls. Examples: structural resilience classification, community health trajectory.

Grading System

Community health is summarized as a letter grade (A through F) by the Cult Grader diagnostic system. Grades are interpretive signals— they represent an AI-assisted holistic assessment, not a mechanical formula.

A

Exceptional

B

Healthy

C

Developing

D

Struggling

F

Critical

Grades consider engagement depth, recurring participation, lateral conversation structure, bot contamination, content performance, and cultural signal health. An INC (incomplete) grade is assigned when insufficient data exists to make a meaningful assessment. Grade history is tracked across diagnostic runs to compute trajectory.

Core Metrics

These measured values form the foundation of all derived and interpretive outputs.

measured

Engagement Rate

Ratio of active participants to total community members within the diagnostic window. Measures breadth of participation.
measured

Recurring Account Share

Proportion of engaged accounts that appeared in more than one diagnostic window. A proxy for retention and genuine investment in the community.
measured

Unique Mentioners

Count of distinct accounts that mentioned or engaged with the community's primary handles/channels during the window.
measured

Bot Reply Rate

Estimated proportion of replies generated by automated accounts. Detected via behavioral signals (response latency, content patterns). When high (>30%), other metrics should be interpreted with caution.
measured

Lateral Reply Pairs

Count of unique user-to-user reply pairs (excluding replies to the project account). Measures organic peer-to-peer conversation.
measured

Community Graph Density

Edge density of the interaction graph: actual connections divided by maximum possible connections among active participants.

Engagement Decomposition

Raw engagement rate blends genuine recurring participation with transient visitors and bot noise. Decomposition separates these layers to show what's real.

Genuine Floor

genuine_floor = recurring_account_share × engagement_rate

Engagement attributable to returning community members.

Transient Ceiling

transient_ceiling = engagement_rate − genuine_floor

Gap between total engagement and the genuine floor — new, unknown, or one-time participants.

Bot-Adjusted Rate

bot_adjusted = engagement_rate × (1 − bot_reply_rate)

Engagement after factoring out estimated bot activity. Null when bot data is unavailable.

The arithmetic is derived (deterministic from measured inputs), but the framing of “genuine” vs “transient” is interpretive — hence signal type mixed.

Structural Resilience

Measures how dependent a community's conversation structure is on a small number of nodes, using a Herfindahl-style concentration index.

Pair Saturation

pair_saturation = lateral_reply_pairs / (mentioners × (mentioners − 1) / 2)

How much of the theoretical maximum peer connectivity is realized.

Concentration Index

concentration = 1 − min(density × 10, 1) × min(pair_saturation × 100, 1)

Clamped to [0, 1]. Lower is more distributed.

Distributed

< 0.3

Concentrated

0.3–0.7

Fragile

≥ 0.7

A fragile community depends heavily on a few key connectors. If those accounts go inactive, lateral conversation collapses. Distributed communities sustain themselves through many independent conversation threads.

Counterfactual Projection

Projects what key metrics would look like if Sable activity ceased, using exponential decay toward the pre-engagement baseline.

Decay Model

decay(t) = baseline + (current − baseline) × e^(−λt)

λ = ln(2) / 60, calibrated so 50% of the gap closes in 60 days. The first diagnostic run serves as the baseline proxy.

This is a directional projection, not a causal prediction. Actual outcomes depend on community dynamics, market conditions, and factors outside Sable's control. Requires at least 2 diagnostic runs to compute.

Trajectory & Contradiction Detection

Trajectory summarizes grade direction across all diagnostic runs. Requires at least 3 runs with non-INC grades.

  • Improving — grade delta ≥ +1 from first to last run
  • Stable — grade delta between −1 and +1
  • Declining — grade delta ≤ −1
  • Volatile — max swing ≥ 2 but net change < 2 (oscillating)

Contradiction Detection

When the grade trajectory says “improving” but both engagement rate and recurring account share declined (or vice versa), a contradiction flag is raised. This catches cases where the interpretive grade may be misleading relative to measured trends.

Report Confidence

Each report receives a confidence level synthesized from three factors: data freshness, sample size sufficiency, and bot contamination.

Starts at score 3 (high), degrades on:

  • −1 per stale or unavailable data source (diagnostic, tracking sync, pulse scan)
  • −1 if any metric has low sample size
  • −1 if bot reply rate exceeds 50%

High

score 3

Moderate

score 2

Low

score 1

Insufficient

score 0

Term Adoption Curves

Emergent community terms (slang, memes, cultural vocabulary) are tracked over time and fitted to a logistic S-curve to estimate adoption stage.

Logistic Model

f(x) = L / (1 + e^(−k × (x − x₀)))

L = max observed usage (×1.05), k = growth rate, x₀ = midpoint. Fitted via grid search minimizing sum of squared residuals. Requires ≥3 data points.

R-squared is reported alongside the fit to indicate how well the sigmoid model matches actual adoption data. Poor fits (low R²) suggest the term may not be following a typical adoption curve.

Data Freshness

Every data section displays a freshness indicator. Staleness in upstream sources cascades to downstream sections.

Fresh

< 24hPulsing dot

Recent

1–7 daysAmber dot

Stale

> 7 daysRed dot

When a primary source (diagnostic, tracking sync, or pulse scan) goes stale, all sections that depend on it display a cascade warning identifying the stale upstream source and its last update date.

Sample Size Handling

Metrics derived from small sample sizes are flagged with a low-sample warning. The threshold is determined by the upstream diagnostic system and surfaced as a status on each metric's sample context.

When sample size is low, the metric is labeled n=X (low) — directional only to indicate that while the direction may be informative, the precise value should not be relied upon for decisions.

Data Sources

The portal assembles community intelligence from four primary systems. Each contributes a specific data domain.

mixed

Cult Grader

Runs diagnostic assessments of community health. Produces letter grades, engagement metrics, entity graphs, language analysis, and strategic recommendations. Each diagnostic run generates a point-in-time snapshot of the community.
derived

Slopper

Tracks content performance across platforms. Provides posting cadence, format baselines, topic signals, and engagement lift analysis. Powers the Content Performance and Format Analysis sections.
mixed

Lead Identifier

Evaluates prospective communities for fit and readiness. Used internally by the operator team to prioritize outreach.
measured

SablePlatform

The entity and relationship graph. Tracks community members, handles, tags, actions, and outcomes. Provides the structural foundation that other systems build on.

Refresh Cadence

Different data sources update on different schedules. Freshness is surfaced per-section in the portal via colored indicators.

  • Diagnostics— per-run, triggered by operators. Typical cadence: weekly to monthly depending on the community.
  • Content performance— automated weekly cycle. Format baselines and topic signals update with each cycle.
  • Entity graph— continuous. Entity tags and relationships update as new data flows through the platform.
  • Prospect scores— per-run, triggered alongside or independently of diagnostics.

The freshness indicator on each section reflects the last update from its upstream source, not when the portal last loaded.

Staleness Cascade

When an upstream data source goes stale, all portal sections that depend on it inherit a staleness warning. This prevents misleading freshness signals on derived data.

Cascade Rule

if source.status = stale → all dependent sections show warning

Each section's dependency on upstream sources is defined in the cascade map. A stale diagnostic, for example, marks all grade, metric, recommendation, and language sections as stale.

Cascade warnings identify the specific stale source and its last update date, so you can distinguish between “this section’s own data is old” and “this section depends on something that’s old.”

Deployment Modes

The portal operates in two modes, determined by its deployment configuration.

  • Live— connected to real data sources. Sections reflect actual community state and update according to each source’s refresh cadence.
  • Demo— uses representative sample data for previews and evaluation. Demo data is clearly labeled and does not reflect any real community.

In live mode, sections that cannot reach their data source display the specific reason (unavailable, timeout, authentication) rather than falling back to sample data.