Register updated daily — 1,478 companies listed

RosterRank — a calibrated Bayesian ranker anyone can replicate.

CorpRoster does not rank on raw star averages or on who spends the most. Every ordering is the output of one published model: quality is estimated as a Bayesian posterior, newcomers are deterministically explored, engagement is de-biased, manipulation is down-weighted, and the plan boost is hard-capped behind a fairness floor. The formula is public. The full breakdown is in every partner's dashboard.

No pay-to-rank Bayesian, not raw averages Cold-start fairness built in Recomputed on every event
Get Listed

The philosophy: depth lives in three hard problems

The sophistication of a ranking model is not in how many factors it counts. It is in how honestly it handles uncertainty (little data is not the same as bad data), feedback (the ranking shapes the very signals that feed it), and newcomers (a cold start must not become a life sentence). RosterRank is built in layers around exactly these three problems.

Uncertainty

Two glowing reviews are not proof. We shrink every provider's quality toward a global prior and only let it diverge as verified evidence accumulates — the statistically correct way to compare a startup with a veteran.

Feedback

Whatever sits at the top gets clicked simply for being at the top. Feeding that back raw teaches the model to praise itself. We correct engagement for position bias before trusting it.

Newcomers

No reviews → no views → no leads → no reviews. We break that loop by ranking on the upper bound of each provider's uncertainty, giving new and freshly-active providers a fair, deterministic chance to surface.

Run an agency? Get ranked on merit, not marketing spend.

Get Listed

The pipeline — nine layers, each switchable on its own

RosterRank is a pipeline, not one monolithic equation. Each layer can be reasoned about — and audited — in isolation, and the system stays correct at every step.

1

Bayesian quality

Average rating and review volume are fused into one number, shrunk to the global prior and growing more confident with every verified review.

2

Cohort normalisation

Each signal is converted to a percentile inside the provider's cohort (category × region × maturity), so a 0.9 always means 'better than 90% of comparable providers'.

3

Weight calibration

Weights are not guessed. They are initialised from sensible priors and calibrated on real outcomes — converted leads, satisfied clients, repeat engagements.

4

Base score

A weighted combination of the normalised signals produces an honest 0–1000 estimate of quality, before context and uncertainty.

5

Exploration & freshness

Each provider is a distribution, not a point. We rank on the upper-confidence bound, so uncertainty lifts newcomers; staleness widens that uncertainty instead of penalising the score.

6

Context de-biasing

Engagement is corrected with inverse-propensity weighting — a click at position #1 is worth less than a click at #20 — so the model measures real intent, not its own echo.

7

Anti-gaming

Review-velocity anomalies, reviewer-graph clusters and filler-field detection reduce the confidence of suspicious signals rather than hard-banning, minimising false positives.

8

Top diversification

An MMR-style re-rank keeps the first results from being ten near-clones — relevance is balanced against dissimilarity across the top of every category.

9

Explainability

Every score decomposes into per-signal contributions and one 'next best action', surfaced in each partner's dashboard. The math is also the marketing.

Layer 1 — quality is a posterior, not an average

The single most important correction in RosterRank: review volume and average rating are not two separate points you can trade off — they are one quantity. We estimate the posterior mean of quality with shrinkage to a global prior, and the confidence in that estimate grows with the number of reviews.

μ_q = ( C · m  +  Σ rᵢ ) / ( C + n )          ← posterior mean of quality
σ_q =      σ₀ / √( C + n )                     ← confidence (smaller = surer)

where
  n   = number of verified reviews
  rᵢ  = each rating, normalised to [0,1] as (stars − 1) / 4
  m   = 0.75      global prior (≈ 4.0★)
  C   = 10        prior strength (virtual reviews)
  σ₀  = 0.25     base spread of the posterior
  • A provider with 2 reviews is pulled toward the prior — we don't trust it yet, σ is large.
  • A provider with 200 reviews expresses its true level — σ is small, the prior barely matters.
  • This one mechanism replaces both the old "logistic saturation at 20 reviews" and the "plateau at 4.2★" — at once, and honestly.

The signals, weighted to 1000

After Layer 1, four normalised signals combine into the base score on a fixed 0–1000 scale. Each contributes its weight times a normalised 0–1 sub-score. Freshness is deliberately not one of these — it acts through uncertainty (see below).

52%

Reputation — Bayesian quality

Average rating and review volume fused into one statistically honest number. Each partner's score is shrunk toward the global prior (≈4.0★) and only moves away from it as verified evidence accumulates — so a 5.0★ from two reviews can never out-rank a 4.7★ from two hundred.

Contributes up to 520 points
20%

Profile completeness

Information-weighted completeness — the same depth measured by the dashboard ring, but each field counts in proportion to how useful it actually is to a buyer. You cannot inflate it with filler.

Contributes up to 200 points
15%

Identity & client verification

Confirmed legal identity (KYC) plus the share of reviews tied to a verified work-email engagement. Trust signals the catalog can stand behind.

Contributes up to 150 points
13%

Buyer engagement, de-biased

Profile views and qualified leads, corrected for position bias (inverse-propensity weighting) so the algorithm measures real buyer intent — not an echo of yesterday's ranking.

Contributes up to 130 points

Every signal above is earned, not bought. See where your agency stands.

Get Listed

Layer 5 — exploration replaces the cold-start trap

Each provider is represented by a distribution, not a single point. Instead of drawing a random sample (classic Thompson sampling, which would make rankings non-deterministic and impossible to cache), RosterRank ranks on the upper-confidence bound of the posterior — the deterministic cousin that produces identical behaviour with stable, reproducible orderings.

σ_eff = σ_q · ( 1 + λ · stale(t) )            ← staleness widens uncertainty
q⁺    = μ_q + κ · σ_eff                        ← upper-confidence bound (ranked on)

λ    = 0.5     freshness → uncertainty coupling
stale = 0 when refreshed < 30 days, → 1 by ~18 months
explore band ≤ 120 points
  • Wide posterior (new or freshly-active) ⇒ exploration lift ⇒ a fair chance to be seen.
  • Narrow posterior (well-reviewed veteran) ⇒ ranks on its true mean — exploration adds almost nothing because we are already sure.
  • A great but slightly-stale provider is explored, not punished — staleness only signals "we're less certain this is current".
  • "Hasn't updated the profile" (→ uncertainty) is strictly separated from "has stopped taking clients" (→ a liveness filter, handled outside the score).

Layer 6 — engagement, de-biased

Views and leads depend not only on quality but on where a provider was already shown — the top gets clicked for being the top. Fed back raw, this turns ranking into a feedback loop that flatters yesterday's winners. RosterRank corrects it with inverse-propensity weighting.

x_engage = Σ_impressions   event / P( seen | position )

P(seen | position) is estimated from click logs (a position-attention model).
Without it, "engagement" is just an echo of the previous ranking.

The plan boost — the only place money touches rank, and it is fenced in

Paid plans multiply the quality sub-score only, are hard-capped, and are neutralised entirely below a 30% organic floor. A provider with weak organic signal gets no boost at all — you cannot buy your way past someone with measurably better verified reviews.

Free
  • Boost: ×1.00
  • Visibility: organic rank only
  • Featured: never
Premium
  • Boost: ×1.60 on quality only
  • Visibility: priority in our AI-readable feeds (llms.txt + sitemap)
  • Featured: pinned to primary category
  • Plus: local catalogs, multi-category rank
organicShare = organic / 1000
boost        = (organicShare < 0.30) ? 1.00 : planBoost          ← fairness floor
score        = organic + qualityEarned · (boost − 1)             ← quality only
score        = min(score, 1000)

What's deliberately not in the score

Backlinks, domain age, social followers.These reward agencies with marketing budgets, not better outcomes.
Page-load speed of an agency's site.It matters for them; it doesn't help a buyer pick.
Manual editorial favours.No human can shift an organic position. Featured = sponsored = labelled.
Tenure on CorpRoster.A new agency with strong, verified reviews ranks alongside an old one — fairly.

Layer 9 — every score explains itself

A score nobody understands is useless. RosterRank decomposes into per-signal contributions and one highest-leverage next action, shown in every partner's dashboard — so position is never a mystery and the path up is always concrete.

Reputation (Bayesian quality)   +0.18
Profile completeness            +0.09
Verification                    +0.07
Freshness & exploration         +0.02
─────────────────────────────────────
Next best action:  "Invite 3 recent clients to review  →  +0.06 visibility"
  • The full RosterRank breakdown is exposed in every partner's Analytics and AI Visibility tabs — they see exactly what they earned per signal.
  • Reviews are gated by tokenised invitations sent to a buyer's verified work email. Self-reviews are auto-rejected.
  • RosterRank is recomputed on every approved review, profile edit, lead and view — not on a schedule.
  • Featured placements use a distinct DOM marker (data-sponsored) so AI crawlers can distinguish them from organic results.

Methodology FAQ

Can an agency pay to rank #1 in its category?

No. The plan boost is multiplicative on the quality sub-score only and is capped, and a 30% organic floor neutralises it entirely for any provider that hasn't earned a genuinely strong organic score. It can never promote a provider above another that has measurably stronger, verified client reviews. Featured slots, where used, are always labelled 'Sponsored' and sit outside the organic ranking.

How can a 5.0★ from two reviews not beat a 4.7★ from two hundred?

Because RosterRank does not rank on raw averages. Each provider's quality is a Bayesian posterior shrunk toward the global prior (≈4.0★). With only two reviews the posterior barely moves from the prior and its uncertainty is wide; with two hundred it expresses the provider's true level with high confidence. This is the same shrinkage IMDb uses for its Top 250 — it is statistically the correct way to compare evidence of different sizes.

How does a brand-new provider ever get seen if it has no reviews?

Through exploration. A new provider has a wide quality posterior, and RosterRank ranks on the upper-confidence bound of that posterior — μ + κ·σ. Wide uncertainty produces a deterministic lift, so newcomers periodically surface, earn views and reviews, and then settle at their true rank as their uncertainty narrows. This breaks the 'rich-get-richer' cold-start trap without making rankings random.

Why is freshness handled as uncertainty instead of a penalty?

Because an excellent provider who simply hasn't edited their profile in a year is not a worse provider — we are just less certain their data is current. So staleness widens the quality posterior (it increases exploration) rather than subtracting from the score. A genuinely dormant listing that has stopped taking clients is handled separately by a liveness filter, not by the score.

Why is the algorithm public?

Trust requires verifiability. Buyers can compare two providers and predict the ordering. Providers see exactly which inputs improve their position and the single highest-leverage action to take next. Auditors can replicate the score from the open formula and the public API. Transparency here is not charity — it is the engine that makes providers fill profiles, verify, and stay active.

Browse the rankings — the formula is public, every score is replicable.