Methodology Specification

MRI METHODOLOGY

MSP Ranking Index

A reproducible 0–100 algorithmic rating for managed service providers (MSPs) and IT service companies.HRI™ ranks web hosts; MRI ranks MSPs. Three components, no Performance weight, no paid placements.

Version 1.0Revised 15 July 2026Range [0, 100] ∩ ℤTerms apply

HRI VS MRI

HRI™

Ranks web hosting companies. Four base components (25 each) plus signal augmentation. Performance (benchmarks / CrUX / tier) is part of the score. Full HRI methodology →

MRI

Ranks MSPs / IT service providers. Trust 50 + Completeness 25 + Freshness 25. Performance excluded. No signal-augmentation layer in v1. Browse live rankings at /msp →

ABSTRACT

MRI is a composite measure of public-signal quality for managed service providers. The score decomposes additively into three components: Tₘ (Trust, [0, 50]), C (Completeness, [0, 25]), and F (Freshness, [0, 25]). Performance is not a term.

Trust reuses the same honesty-preserving calcTrust function as HRI, called with knownTierTrustBonus = 0, then doubled and capped at 50. Completeness and Freshness call the same functions as HRI. Scores are stored on host_scores.score_msp_* so pure-host HRI totals remain untouched.

72
/ 100
Example MRI(m)
Tₘ=36 · C=18 · F=18 · P=∅

FORMAL DEFINITION

For any managed service provider m in the directory:

MRI(m) = min(100, Tₘ(m) + C(m) + F(m)) Tₘ(m) = min(50, 2 · calcTrust(m, 0)) C(m) = calcCompleteness(m) // [0, 25] F(m) = calcFreshness(m.updated_at) // [0, 25] P(m) = 0 // excluded in v1 MRI(m) ∈ {0, 1, 2, ..., 100} Source of truth: calcMspScoreTotal in src/lib/hostscore.ts

Pure-host HRI continues to use calcScoreTotal score_total. MSP directory pages order by score_msp_total.

COMPONENTS

Formulas mirror calcMspScoreTotal and the shared Trust / Completeness / Freshness helpers in src/lib/hostscore.ts.

Trust 50/100
Completeness 25/100
Freshness 25/100
Trust (Tₘ)[0, 50]

Multi-platform review signal, profile vintage, and verified ownership - doubled from the HRI Trust base, without hosting-tier bonus.

T_hri(m) = calcTrust(m, knownTierTrustBonus = 0) // integer [0, 25] Tₘ(m) = min(50, 2 · T_hri(m)) calcTrust sub-terms (same honesty rules as HRI): rating_term(m) // [0, 8] Google rating, or Trustpilot fallback [0, 6] + volume_term(m) // [0, 7] log-banded review count (TP fallback [0, 4]) + vintage_term(m) // [0, 5] age-banded founded_year + verified_term(m) // {0, 5} 5 · 𝟙(claimed_at ≠ null) + tier_bonus // forced 0 for MRI (HRI may award 5 when P ≥ 18) + tp_term(m) // [0, 2] Trustpilot corroboration (alongside Google only) + g2_term(m) // [0, 2] G2 corroboration
Sub-terms
  • DoublingMRI doubles the HRI Trust base so reputation carries half the total weight (50/100). Cap at 50 after doubling.
  • tier_bonus offHRI awards +5 Trust when Performance ≥ 18. MRI passes knownTierTrustBonus = 0 so hosting infrastructure quality never enters an MSP score.
  • HonestyNo fabricated reviews. Rating and volume terms only fire when third-party platform data is present. Trustpilot substitutes at a discounted ceiling when Google is absent; corroboration bonuses apply only alongside Google.
Inputs
hosts.google_ratinghosts.google_review_counthosts.founded_yearhosts.claimed_athosts.trustpilot_scorehosts.trustpilot_review_counthosts.g2_ratinghosts.g2_review_count
Completeness (C)[0, 25]

Disclosure of public profile data - identical to HRI Completeness.

C(m) = clamp(0, 25, 5 · 𝟙(url ≠ null) + 3 · 𝟙(description ≠ null) + 3 · 𝟙(logo_url ≠ null) + 3 · 𝟙(claimed_at ≠ null) + 2 · 𝟙(city ≠ null ∨ country ≠ null) + 5 · 𝟙(segment ≠ null) + 2 · 𝟙(founded_year ≠ null) + 2 · 𝟙(affiliate_url ≠ null ∨ affiliate_network ≠ null) )
Sub-terms
  • Shared componentcalcCompleteness is shared with HRI. Filling public profile fields moves Completeness the same way for MSPs and hosts.
  • SaturationMaximum unaugmented total is 25. Additional fields beyond a saturating subset do not lift C.
Inputs
hosts.urlhosts.descriptionhosts.logo_urlhosts.claimed_athosts.cityhosts.countryhosts.segmenthosts.founded_yearhosts.affiliate_urlhosts.affiliate_network
Freshness (F)[0, 25]

Recency of profile updates - identical to HRI Freshness base (MRI v1 has no signal-augmentation bump).

Δd = floor((now − updated_at) / 1 day) F(m) = { 25 if Δd ≤ 30; 20 if 30 < Δd ≤ 90; 15 if 90 < Δd ≤ 180; 10 if 180 < Δd ≤ 365; 5 otherwise } // null updated_at → 5
Sub-terms
  • Shared componentcalcFreshness(updated_at) is shared with HRI. MRI v1 does not add the HRI signal-augmentation freshness bump (0.5 · Σ D(σ)).
  • RecomputeScores recompute as profile and review data refresh. Stale listings lose Freshness in steps.
Inputs
hosts.updated_at

WHY PERFORMANCE IS EXCLUDED

HRI Performance measures hosting delivery: controlled benchmarks, CrUX Core Web Vitals on the provider origin, and infrastructure tier fallbacks. Those signals answer “how fast / reliable is this hosting platform?” They do not answer “how well does this MSP manage IT, security, or helpdesk?”

  • CWV / marketing-site speed reflects the MSP’s website build, not service quality.
  • Hosting benchmarks assume a customer site on the provider’s plan - not an MSP relationship.
  • Infrastructure tier is an editorial hosting lookup; using it would also leak into Trust via the HRI tier bonus, which MRI disables.

VERSIONING

Current version1.0 · revised 15 July 2026ChangeMRI v1 ships as a three-component index for MSPs. Trust is 2× the honesty-preserving calcTrust used by HRI, with the hosting-tier bonus forced to 0 so Performance cannot leak into Trust. Completeness and Freshness reuse the same HRI base functions. Performance (CWV, benchmarks, hosting tiers) is explicitly excluded. Signal augmentation and MSP-native signals (local re-rank, SLA/certs/stack) are deferred to v2.v2 deferredLocal re-rank, SLA/certs, and stack MSP-native signals - not shipped in v1.LegalTerms of Service · MRI is a published methodology

LIMITATIONS

  • Public-signal quality. MRI correlates with but is not identical to subjective MSP service quality.
  • No MSP-native signals yet. Certifications, SLA terms, and local service mix are not in v1.
  • Sample bias. Claimed, well-reviewed profiles outrank thin public footprints even when service quality is strong.
  • Not a recommendation. Use MRI as one shortlist input; confirm scope and pricing directly with providers.

FREQUENTLY ASKED

How is MRI different from HRI?

HRI ranks web hosting companies with four base components (Trust, Completeness, Freshness, Performance) plus a signal-augmentation layer. MRI ranks managed service providers with Trust 50 + Completeness 25 + Freshness 25. Performance is excluded because Core Web Vitals, load benchmarks, and hosting infrastructure tiers are not meaningful quality signals for MSPs.

Can I pay to improve my MRI?

MRI is entirely algorithmic and derived from publicly verifiable profile and review inputs. No managed service provider can pay for a higher position, and there are no affiliate placements in the MSP rankings.

Why is Performance excluded from MRI?

CWV field data, controlled hosting benchmarks, and infrastructure tier lookups measure website and hosting platform quality. An MSP’s marketing site speed or hosting stack does not reflect managed IT, cybersecurity, or helpdesk service quality, so including Performance would distort rankings.

What comes in MRI v2?

v2 is deferred. Planned MSP-native signals include local re-rank, SLA and certification signals, and stack/service-mix factors. Until then, Completeness and Freshness reuse the shared HRI components without the hosting signal-augmentation layer.

Where are MRI rankings published?

Browse the MSP directory at /msp. City, state, and country pages order providers by score_msp_total. Host methodology remains at /hri.

Browse MSP Rankings →Host HRI Methodology →
Gautam Khorana
About the author

Founder, HostList.io · Co-founder, Seahawk Media · Host of the WP Legends podcast.

Data reports
Most Reliable Web Hosting Companies, Ranked by HRI
View report
Largest Web Hosting Companies, Ranked by Public Footprint
View report
Web Hosting Companies by Country
View report