Research Methodology

How Goodfirms ranks
80,000+ firms
- the algorithm in full.

Every ranking on Goodfirms is produced by the Leaders Matrix algorithm: a two-axis scoring system that plots each firm by Core Competencies (how specialized they are in the service you're browsing) and 360-Performance View (how well they execute). This page documents the exact formulas, weights, refinements, and update process behind every position you see.

Last reviewed:May 13, 2026
Algorithm version:v3.2
Update cadence:Weekly
SPONSORSHIP DOES NOT AFFECT RANK

The two-axis Leaders Matrix

For each service category, every verified firm is scored on two composite axes (0-100 each) and plotted into one of four quadrants. The position you see on any ranking page is computed from the firm's exact coordinates on this matrix.

360-PERFORMANCE VIEW (Y) →

Industry Contenders

Best in class on both axes

Industry Leaders

Strong execution, broad focus

Upcoming Achievers

Specialized but moderate execution

Market Influencers

Promising, lower track record

CORE COMPETENCIES (X) →

Industry Leaders

Top-right

Excel on both Core Competencies and 360-Performance. Both axes ≥ 70. The default ranking shows these firms first.

Industry Contenders

Top-left

Strong execution (Y ≥ 70) but broader service focus (X < 50). High-quality generalists.

Market Influencers

Bottom-right

Deeply specialized (X ≥ 50) but moderate execution (Y < 70). Good fit if specialization matters more than scale.

Upcoming Achievers

Bottom-left

Below 50 on both axes. New entrants or smaller boutiques. Higher risk, but often best price-performance.

How each axis is calculated

Both axes are weighted composites of sub-signals. Every sub-signal is normalized to a 0-100 scale before being combined. Below are the exact formulas and weights used in v3.2 of the algorithm.

Y-AXIS

360-Performance View

A composite of execution quality, market presence, and credibility signals. 0-100.

Component
Weight
Client Reviews
50%
Market Presence
30%
Goodfirms Score
20%
Total 360-Performance
100%

Client Reviews - 50% weight

Star rating (3.0-5.0 mapped to 0-100)
50%
Review volume (log-scaled, capped at 200)
30%
Recency (% reviews in last 18 months)
20%
// Client review composite
RatingScore  = (rating - 3) / 2 * 100
VolumeScore  = min(log10(reviews + 1) / log10(200), 1) * 100
RecencyScore = recent_pct * 100
ClientReviews = 0.50×Rating + 0.30×Volume + 0.20×Recency

Market Presence - 30% weight

Six equally-weighted sub-signals (5% each):

Industry Focus - number of verticals served, weighted by depth

Client Focus - diversity of client sizes (Fortune 500 to startups)

Market Experience - years in business, employees, projects shipped

Reputation - press mentions, industry awards, certifications

Social Media Presence - followers and engagement on LinkedIn, X

Geographic Presence - countries with active clients or offices

Goodfirms Score - 20% weight

Verification depth - completion of 4-step vetting (background check, client interviews, portfolio audit, ongoing review) - 40% of Goodfirms Score

Response time - average time to first reply to buyer inquiries - 30%

Mystery shopper assessment - anonymous outreach scoring professionalism and sales process - 30%

X-AXIS

Core Competencies

A composite of how specialized the firm is in the specific service being ranked. 0-100.

Component
Weight
Service Focus Ratio
40%
Portfolio Depth
30%
Portfolio Quality
20%
Service Experience
10%
Total Core Competencies
100%

Service Focus Ratio - 40% weight

What percentage of the firm's portfolio (by revenue or by project count) falls within the service category being ranked.

ServiceFocus = (projects_in_service / total_projects) * 100

A firm with 90% of its portfolio in Mobile App Development scores 90; a generalist with 25% mobile work scores 25.

Portfolio Depth - 30% weight

Number of verified projects in the service area, log-scaled and capped at 50.

PortfolioDepth = min(log10(projects + 1) / log10(50), 1) * 100

Portfolio Quality - 20% weight

Case study depth - does the portfolio item include outcomes, metrics, client name?

Visual quality - screenshots, demos, live URLs vs. text-only descriptions

Project recency - work shipped in the last 24 months

Client logo authenticity - verified vs. claimed

Service Experience - 10% weight

Years the firm has been actively offering this specific service. Capped at 10 years (firms older than 10 years saturate at full score).

ServiceExperience = min(years_offering / 10, 1) * 100

Worked example - scoring a real firm

Take a hypothetical firm “Acme Studio” being ranked in the Mobile App Development category. Here's exactly how their position on the Leaders Matrix is calculated.

Acme Studio - Mobile App Development

Inputs: 4.9★ rating from 155 verified reviews · 70% reviews in last 18 months · Full 4-step verified · 2h avg response · 28 verified mobile projects · 92% of portfolio is mobile · 6 years offering mobile.

Y-axis (360-Performance View)

VolumeScore = log10(156) / log10(200) × 100 = 95
RecencyScore = 0.70 × 100 = 70
ClientReviews = 0.5(95) + 0.3(95) + 0.2(70) = 90
MarketPresence = (avg of 6 sub-signals) = 78
GoodfirmsScore = (vet 100 + resp 100 + shopper 85) / 3 = 95
360-Performance = 0.5(90) + 0.3(78) + 0.2(95) = 87.4

X-axis (Core Competencies)

ServiceFocus = 92% portfolio is mobile = 92
PortfolioDepth = log10(29) / log10(50) × 100 = 86
PortfolioQuality = (case studies + recency) avg = 82
ServiceExperience = min(6/10, 1) × 100 = 60
CoreCompetencies = 0.4(92) + 0.3(86) + 0.2(82) + 0.1(60) = 85.8
Final position:(86, 87)→ top-right quadrant → Industry Leader

Three refinements that prevent gaming

The raw formulas above produce reasonable rankings most of the time, but three failure modes break them: low-sample bias, stale reviews, and pay-to-rank. Each is addressed below.

Statistical Smoothing

Bayesian shrinkage for low-review firms

A firm with 3 perfect reviews shouldn't outrank a firm with 100 reviews averaging 4.8. We shrink the raw rating toward the platform mean (currently 4.4) using a Bayesian prior with k = 10.

adjusted_rating = (n × raw_rating + k × platform_mean) / (n + k)

Effect: A firm with 3 reviews at 5.0 has its score pulled 77% toward 4.4 (final: 4.5). A firm with 100 reviews at 5.0 is barely shrunk (final: 4.95).

Time Decay

Exponential recency weighting on reviews

Reviews from 3 years ago shouldn't carry the same weight as reviews from last month. Each review is multiplied by a decay factor based on its age.

review_weight = exp(-months_old / 18)

Effect: A fresh review (0 months) = weight 1.00. A 6-month-old review = 0.72. An 18-month-old review = 0.37. A 36-month-old review = 0.14. Effectively, reviews older than 3 years contribute almost nothing.

Conflict of Interest

Sponsorship excluded from scoring

Sponsored placements never enter the algorithm. PRO members and paid placements receive visible badges and dedicated ad slots, but their algorithmic position on the Leaders Matrix is computed identically to free listings.

If a sponsored firm appears in Industry Leaders, it's because their independently-computed scores put them there - not because they paid.

Quality Floor

Eligibility filters before scoring

Firms must clear three thresholds to be ranked at all:

  • At least 10 verified reviews
  • Average rating of 3.5 or higher
  • Verification status of 3 of 4 steps completed

Firms below these thresholds are listed but not ranked. About 23% of applicant firms make it onto the platform; of those, 71% meet the eligibility floor for ranking.

How often the algorithm runs

The Leaders Matrix is recomputed on a weekly cadence. Between recomputes, scores can change as new reviews arrive and verification status updates - but the displayed rankings only refresh once per week to give the page stability.

Weekly
Full algorithm recompute every Monday at 06:00 UTC
23%
Acceptance rate of firms that apply to be listed on the platform
1.2M
Verified client reviews powering rating calculations across every category

Algorithm version history

We publish a changelog every time the algorithm changes meaningfully so listed firms can understand how their ranking might be affected.

v3.2
2026-05-13
Added Bayesian shrinkage with k=10 to neutralize low-review outliers. Increased recency decay window from 24 to 18 months. Added Mystery Shopper as 30% of Goodfirms Score (was 0%).
v3.1
2026-02-04
Increased Client Reviews weight on Y-axis from 45% to 50%. Reduced Market Presence from 35% to 30%. Raised the review-volume cap from 100 to 200.
v3.0
2025-11-18
Major rewrite. Switched from min-max normalization to weighted composite scoring. Introduced explicit weights for all sub-signals. Published full formula on this page for the first time.
v2.8
2025-08-22
Added the eligibility floor (≥10 reviews, ≥3.5 rating, 3-of-4 verification) to prevent thin-data firms from appearing in any quadrant.
v2.7
2025-05-09
Introduced recency decay on individual reviews using an exponential weight function.

Frequently asked questions

Why does Goodfirms use a 2-axis matrix instead of a single ranked list?
A single ranked list flattens two fundamentally different qualities - execution (how well a firm delivers) and specialization (how focused they are in the service you need) - into one number, which can mislead. A firm with 95% mobile-app focus and 80% execution is a better mobile app pick than a Fortune-500-trusted generalist with 95% execution but only 30% mobile focus. The two-axis matrix lets buyers see both dimensions and choose what matters most for their project.
Can a firm pay to rank higher?
No. Sponsorship is structurally separated from the ranking algorithm. PRO membership unlocks premium ad placements (clearly labeled "Sponsored"), but the algorithmic position on the Leaders Matrix is computed identically for free and paid listings. The Bayesian shrinkage, recency decay, and eligibility filters apply the same way regardless of sponsorship status.
How do you prevent firms from gaming the algorithm with fake reviews?
Five protections compound: (1) Every review requires reviewer email verification and a client-firm relationship check; (2) Random sample of reviews receive a direct phone or video call from our research team; (3) Review volume is log-scaled and capped at 200, so a firm can't get a 10× boost from buying 1000 fake reviews; (4) Bayesian shrinkage pulls firms with abnormally few reviews toward the platform mean; (5) Recency decay neutralizes any historical batch of fake reviews after ~3 years.
What is the Goodfirms Score, exactly?
The Goodfirms Score is a 0-100 number combining three internally-computed signals: (1) Verification depth - completion of our 4-step vetting process (40% weight); (2) Response time - average hours to first reply to buyer inquiries (30%); (3) Mystery shopper assessment - anonymous outreach by our research team posing as a prospective client, scoring professionalism, transparency, and sales process (30%). The mystery shopper component is conducted at random throughout the year and the firm is never informed.
Can a firm appear in multiple Leaders Matrices?
Yes. If a firm offers multiple services that both meet the eligibility floor (10+ reviews, 3.5+ rating, 3-of-4 verified) and score highly on Core Competencies for each, they appear in multiple matrices. Importantly, the X-axis (Core Competencies) is computed per service category, so a firm doing 60% mobile and 40% web development might score 60 on the mobile matrix's X-axis and 40 on the web matrix's X-axis - appearing in different quadrants in each.
How can a firm improve their ranking?
Five highest-impact actions: (1) Collect more verified reviews (especially in the last 18 months - recency matters); (2) Complete the 4-step verification if not already done; (3) Add detailed case studies to the portfolio, with outcomes and live URLs; (4) Reduce response time to buyer inquiries to under 4 hours; (5) Focus the portfolio on the firm's strongest service category to improve the X-axis Service Focus Ratio.
Why does my firm's ranking change from week to week?
Several factors: new reviews land each week (yours or competitors'); recency decay reduces the weight of older reviews; verification levels change; portfolio updates are crawled and scored; and competitor firms may also improve their scores. A firm's absolute score rarely moves more than 2-3 points week-over-week, but relative position can shift if the firm is bunched closely with peers. Major recalibrations happen with each algorithm version bump (see version history below).
Goodfirms Research Methodology - Leaders Matrix Algorithm