Scoring methodology
Kol Proof uses two scoring layers per dimension: deterministic math (formulas applied to raw account data) and LLM judgment (a model reading the account's content and assigning a qualitative score). Each rubric adds up to 100 points. Letter grades are then assigned from the total.
Grade scale
KOL value
Measures whether this account is worth partnering with for a campaign: reach, engagement authenticity, posting habits, and brand safety.
| Dimension | Kind | Max pts | How it's calculated |
|---|---|---|---|
| Audience size | Deterministic | 20 | log₁₀(followers) scaled from 1k → 0 to 5M → 20 |
| Engagement rate | Deterministic | 20 | Engagements per 1k impressions (ER‰); 50‰ = full score |
| Audience quality (proxy) | Deterministic | 15 | Follower/following ratio sweet-spot around 8× |
| Content cadence | Deterministic | 10 | Posts/day sweet-spot at 0.1, 2, or 30 per day |
| Verification & status | Deterministic | 5 | Counts verified signals (blue/business/government/legacy) |
| Content focus / topic clarity | LLM | 15 | Model judges whether tweets cluster on one topic or scatter |
| Brand safety | LLM | 15 | Model flags controversy, political polarization, offensive content |
Credibility
Measures how much the account's profile signals a genuine subject-matter expert with an organically grown audience.
| Dimension | Kind | Max pts | How it's calculated |
|---|---|---|---|
| Original output ratio | Deterministic | 15 | Share of original posts vs. retweets (higher = more credible) |
| Posting consistency | Deterministic | 15 | Coefficient of variation of inter-post gaps; steady cadence scores higher |
| Audience depth | Deterministic | 15 | Follower/following ratio as a proxy for organic growth |
| Account age | Deterministic | 10 | Older accounts score higher; sweet-spot at 2–4 years |
| Verification stack | Deterministic | 5 | Any verification signal present |
| Content expertise | LLM | 15 | Model rates whether content reflects domain knowledge |
| Domain consistency | LLM | 15 | Model checks that posts stay in one knowledge domain |
| Peer engagement | LLM | 10 | Model assesses quality of replies and quote-tweet conversations |
Account quality
Anti-spam / authenticity check: flags bot-like patterns, incomplete profiles, and engagement manipulation before they drain your budget.
| Dimension | Kind | Max pts | How it's calculated |
|---|---|---|---|
| Profile completeness | Deterministic | 15 | Bio ≥20 chars, avatar, location, URL, display name — 3 pts each |
| Account age | Deterministic | 10 | Newer accounts score lower |
| Posting cadence sanity | Deterministic | 10 | Penalises burst-posting (>50/day) and dormancy (<0.02/day) |
| Engagement / followers ratio | Deterministic | 10 | Checks that engagement scales with follower count |
| Original content ratio | Deterministic | 20 | High retweet ratio is a quality red flag |
| Follower / following sanity | Deterministic | 10 | Extreme ratios (follow-back farms or buying follows) score low |
| Verification | Deterministic | 10 | Verified account gets a quality boost |
| Content quality | LLM | 15 | Model rates writing quality, originality, and signal-to-noise |
Topic fit
Measures how well this account's content, audience, and bio align with a specific campaign topic you supply.
| Dimension | Kind | Max pts | How it's calculated |
|---|---|---|---|
| Bio fit | LLM | 25 | Model reads the bio and rates alignment with your topic |
| Recent content fit | LLM | 40 | Model scores last N tweets against your topic (most important signal) |
| On-topic engagement uplift | LLM | 15 | Model checks whether on-topic posts outperform average engagement |
| Topic-weighted reach | Hybrid | 20 | log₁₀(followers) × LLM topic-fit confidence (0–1) |
In development / mock mode (when TSKGONE_* env vars are unset), LLM dimensions are stubbed with fixture data rather than real model output. Deploy with the env vars set to score against live account data.