Methodology · BETR Score v1.0

How we calculate it.
Openly.

BETR Score is a 0–100 number that summarizes a creator's campaign credibility. Six weighted facets. No black-box magic. Every input is observable, every weight is published, every update is version-stamped, every score is auditable, and every creator has the right to appeal.

0-100
Weighted sum of six facets
Each facet is computed independently in [0, 1], weighted, summed, and scaled to 100. Composite scoring gives directional accuracy even when one facet has sparse data — the confidence label drops to signal it.
Section 1 · How we compute

The six facets, in full.

For each facet we publish the raw input signals, the normalization method that turns them into 0–1, the weight in the final composite, the recompute cadence, and the anti-gaming protections in code today.

Reach

16%

How many real humans this creator can put a message in front of, right now. Not lifetime audience — we explicitly weight recent reach because a 2018 viral video doesn't help a 2026 campaign.

Input signals
  • ·Subscriber / follower counts across connected platforms
  • ·Median view count on last 30 posts (per-platform, then composite)
  • ·Cross-platform overlap discount (we subtract the estimated double-count)
  • ·L90 view share vs lifetime to penalize inherited reach
Normalization

Log-transformed view + follower counts, then percentile-ranked within the creator's category cohort. The percentile becomes the 0-1 score so a fashion creator at the 80th percentile of fashion reach scores the same as a tech creator at the 80th percentile of tech reach.

Weight in final score

16% of the composite. Final score = round(100 × Σ wᵢ · facetᵢ) where weights sum to 1.0.

Recompute cadence

Every 6h via the analyze-creator worker.

Anti-gaming protections
  • ✕Follower-velocity anomaly detector flags 10x spikes in 7 days and quarantines them for human review
  • ✕Bought-follower estimator (engagement-to-follower ratio outliers) discounts inflated counts
  • ✕We never trust raw follower count as the score — only its percentile relative to peers

Engagement

20%

Are viewers engaging substantively, or just clicking through? We weight comment depth over likes, replies-to-comment over reactions, and saves over shares because saved content is content the audience will revisit.

Input signals
  • ·Comment word-count distribution (median + p90 length)
  • ·Reply-to-comment ratio (does the creator engage back)
  • ·Save / share ratio vs view count
  • ·Sentiment-tagged comment volume (positive + neutral, not just any reply)
Normalization

Each input is z-scored within the creator's category cohort and clamped to [-3, +3]. The four z-scores are averaged, then mapped through a logistic curve to land in [0, 1]. This makes the score robust to one viral post dragging the median.

Weight in final score

20% of the composite. Final score = round(100 × Σ wᵢ · facetᵢ) where weights sum to 1.0.

Recompute cadence

Every 6h via the analyze-creator worker.

Anti-gaming protections
  • ✕Bot-detection on engagement: comment-burst detection (>30 identical-template comments in 5 min) auto-flags
  • ✕Sentiment-weighted: pure-emoji and < 3-word comments count at 0.2x weight
  • ✕Reply-to-self comments (creator replying to themselves to inflate count) are excluded

Quality

18%

Is the creator's topical and stylistic identity coherent and well-made? Brands match on this — too scattered or too rough = too risky. We score both the consistency and the absolute craft.

Input signals
  • ·Topic distribution entropy across last 30 posts (model classification)
  • ·Vibe consistency score (embedding cosine variance over recent uploads)
  • ·Aspect-ratio + duration consistency (production discipline proxy)
  • ·Caption + on-screen-copy readability (Flesch-Kincaid on transcripts)
Normalization

Entropy is inverted (low entropy = focused = higher score), capped at the 95th percentile to avoid rewarding single-topic monotony. Vibe variance is mapped through an inverse-square curve. Final composite is a weighted mean of all four inputs.

Weight in final score

18% of the composite. Final score = round(100 × Σ wᵢ · facetᵢ) where weights sum to 1.0.

Recompute cadence

Daily via the analyze-creator worker; vibe model refreshes weekly.

Anti-gaming protections
  • ✕We don't reward 'spam one topic forever' — the entropy cap kills that strategy
  • ✕Vibe embedding model is retrained weekly on a held-out brand-curated set so creators can't reverse-engineer it
  • ✕Caption stuffing (>50% keyword density) reads as low-readability and pulls the score down

Brand Fit

16%

How well this creator's body of work aligns with a specific brand brief. This is the most contextual facet — when scored standalone we use the platform-wide category-fit signal; when scored against a brief we re-run with the brief's vibe + ICP embedded.

Input signals
  • ·Brief embedding (vibe + tone + ICP) cosine similarity to the creator's recent-work embedding
  • ·Category match weight (luxury, beauty, tech, etc. — taxonomic)
  • ·Past-brand history with the same vertical (boosts, never subtracts)
  • ·Stated creator preferences vs the brief's call-to-action type
Normalization

Cosine similarity in [0, 1] is multiplied by a category-match boost (1.0–1.2x). The product is clamped to [0, 1]. When a brief context is absent, we use a 'platform median brief' embedding so the score is still comparable across creators.

Weight in final score

16% of the composite. Final score = round(100 × Σ wᵢ · facetᵢ) where weights sum to 1.0.

Recompute cadence

On-demand per-brief, plus weekly category-fit refresh.

Anti-gaming protections
  • ✕Creators can't see the brief embedding, so 'vibe-match the keyword list' isn't a strategy
  • ✕Category match is taxonomic — claiming a category you don't post in is detected and audit-logged
  • ✕Past-brand history can't push the score above 1.0; it's a tiebreaker, not a backdoor

Audience Trust

18%

Does this creator's audience trust them enough that a brand mention will convert? We weight first-party signals (comment-to-purchase intent, save-then-search behavior) over hype metrics. Includes brand-safety because un-trusted creators don't move product.

Input signals
  • ·Subscriber-to-engagement ratio (low ratio = passive audience)
  • ·Repeat-commenter rate (same viewers come back across 30 posts)
  • ·Brand-safety flag history from BEST consumer reports
  • ·Disclosure-rate hygiene (#ad compliance on sponsored posts)
Normalization

Each input becomes a sub-score in [0, 1] via category-cohort percentile. Brand-safety flags are subtractive: a 'medium' flag knocks 0.15 off the trust score, 'high' knocks 0.40. The four are averaged.

Weight in final score

18% of the composite. Final score = round(100 × Σ wᵢ · facetᵢ) where weights sum to 1.0.

Recompute cadence

Weekly via the analyze-creator worker; reputation flags propagate hourly.

Anti-gaming protections
  • ✕Repeat-commenter rate uses BEST first-party data, not the platform API — much harder to inflate with bots
  • ✕Brand-safety flags require a human reviewer to apply 'high' severity
  • ✕Disclosure-rate hygiene rewards proactive #ad use; we don't penalize honest mistakes flagged < 24h

Production

12%

Does this creator deliver finished, on-brand assets? This is the smallest weight because a great storyteller with rough production can still convert. But brands paying $25K+ for hero deliverables want production quality baked into the score.

Input signals
  • ·Average shot length consistency (proxy for editorial pacing)
  • ·Audio quality (peak-normalized loudness + noise floor)
  • ·Resolution + frame-rate compliance vs the platform's recommended specs
  • ·Watermark + EXIF integrity check (catches re-uploaded stolen assets)
Normalization

Each input becomes a 0-1 sub-score with clear floors and ceilings (e.g., audio peak at -14 LUFS = 1.0, below -23 LUFS = 0.0). The four are averaged with a 1.1x boost if all four hit the ceiling (rewarding consistent craft).

Weight in final score

12% of the composite. Final score = round(100 × Σ wᵢ · facetᵢ) where weights sum to 1.0.

Recompute cadence

Per-asset on ingest; per-creator rollup daily.

Anti-gaming protections
  • ✕Watermark + EXIF check on production blocks re-uploaded stolen assets from boosting the score
  • ✕We don't reward 4K when the platform delivers 1080p — the resolution check is platform-aware
  • ✕Loudness normalization happens server-side, so creators can't game with peak-only audio levels
Section 2 · What we don't use

Signals we explicitly refuse.

Trust by negative example. These signals are commonplace in the influence-scoring industry; we don't use them and here is why.

Raw follower count as a primary input
Bought followers exist. We percentile-rank within category cohorts and discount velocity anomalies — but the raw count never directly drives the score.
Paid amplification (boosted posts, ad-spent reach)
A boosted post tells us about budget, not about audience trust. We filter ad-tagged impressions out of the engagement and reach inputs.
Gendered, racial, or age-based audience proxies
We score creators on what they do, not who their audience is demographically. Demographics surface on the brand-side dossier as context, never inside the score.
Sentiment of the creator's politics or personal beliefs
Brand safety scopes to brand-safety: hate speech, illegal content, content guideline violations. Political views, religious views, lifestyle choices stay out.
Pay-to-rank or platform-promoted slots
There is no path for a creator (or a brand) to pay to raise a BETR score. If we ever change this it will be loudly disclosed and version-stamped.
Third-party scraped 'influence' scores from other platforms
We compute from first-party data on the platforms a creator connects, plus BEST consumer data. We don't import HypeAuditor / Klear / Modash scores — their methodology is opaque, ours is published here.
Section 3 · Volatility & confidence

Every score ships with a confidence label.

A score of 84 from a creator with 18 months of data and 300+ posts is different from a score of 84 from a creator with 6 weeks of data and 12 posts. We surface that difference explicitly.

High confidence
±2 pts typical
≥ 6 months connected · ≥ 30 posts per platform · all six facets resolve from first-party data.
Medium confidence
±5 pts typical
≥ 3 months connected · ≥ 12 posts per platform · one or two facets fall back to category median.
Low confidence
±10+ pts
< 3 months connected, < 12 posts, or three or more facets fall back to category median. The label tells brands to run a manual fit check.
Concrete example. A creator who posts twice a week for two years on YouTube + Instagram with all the analytics-API permissions granted will land in the high-confidence band — their score is a real-time read of performance. A creator who connected last week and has 8 posts will land in low-confidence; their score is directionally useful but should not be used as the sole basis for a $50K booking. The confidence label is shown everywhere the score is shown — brand dossier, ranked match results, the auto-shortlist, the appeal form.
Section 4 · Bands

How to read the number.

The 0–100 number is continuous, but four bands give brand operators a quick verdict at a glance.

0-39
Limited evidence
Insufficient signal — most often a brand-new creator.
40-64
Worth assessing
Real signal, but coherence or engagement gaps. Run a fit check.
65-84
Strong fit
Pro tier auto-unlock at 65. Solid choice for most campaigns.
85-100
Top fit
Top decile across the platform. Premium creators.
Section 5 · Appeal process

Wrong about you? Tell us.

A score that you can't push back on isn't a credible score. Every creator can challenge any facet, attach evidence, and get a human review.

How it works

Pick the facet you think is wrong, write what we missed, attach up to three pieces of evidence (a recent post that tells the real story, a screenshot of cross-platform reach we don't see, a contract clause that recontextualizes brand-fit). A reviewer responds within 3 business days — adjusted scores write to the audit log and surface to any brand looking at your dossier.

Open appeal form →
Section 6 · Audit log

Brand-side, second opinion.

Brands also get an audit view. Every score on a brand-facing dossier exposes its top-three contributing signals per facet, the last computed_at timestamp, the confidence label, and a one-click 'flag inaccuracy'.

What brands see
  • · All 6 facet scores with their weights and confidence labels
  • · Top 3 contributing signals per facet (the actual numbers)
  • · Last computed_at timestamp + the worker that wrote the score
  • · One-click "Flag inaccuracy" that routes to our review queue
Visible to brand operators
Versioning: BETR Score v1.0 has been active since 2026-04-15. We publish a change-log at every weight or input revision. The previous version (v0.9) and its weights are archived and accessible on request. Last updated: 2026-05-23. Sparse data: when a facet lacks inputs (e.g., fewer than 20 videos), it scores at category median and the confidence label drops accordingly — we never silently treat sparse data as a low score. Questions: scores@betr.ai.