iScore
One number per provider, against its category peers, with its width printed beside it. Computed from the sourced facts already on each page by the rules below — nothing set by hand, nothing a provider stated, and nothing a provider paid for.
Peers
A provider is scored only against providers in the same category. A database is never measured against a CDN, and a provider that belongs to two categories gets two scores, each against its own peers. Every median, every spread and every prior below is the category's, recomputed on each build from whatever is on file that day.
How one fact becomes a number
Each documented fact that can be decided becomes a score from 0 to 100. A fact with a magnitude in a unit family at least one peer shares is put on a log scale (uptime on a "nines" scale, a fee percentage as is), turned into a robust z-score against the peer median using the median absolute deviation, and blended with its percentile among peers — leaning on the percentile when the category is small. Price-shaped families are inverted so cheaper is higher, using the same lower-is-better set the comparison lean uses.
A yes / limited / no fact scores 100 / 50 / 0. A boolean scores 100 or 0, inverted where true is the worse answer (a card required for the free tier). The free-offer type sits on a fixed ladder from always-free at 100 to none at 0. A fact that is prose with none of those shapes is not scored; it still counts as evidence, because "documented but unrankable" is not the same as "undocumented".
What each fact weighs
Every criterion score carries a weight, the product of four terms. Freshness: 1 inside the fact's staleness window, halving for each window beyond it, never below 0.25. Confidence: official pricing and docs count 1, an official marketing page 0.9, a third-party source 0.7. Confirmation: 0.8 if the last monthly drift check could not re-read the source. Information: 0.25 to 1, in proportion to how much the criterion separates peers — a certification every peer holds still counts, at a quarter of the weight of the one that decides.
Pillars, and the facts that feed them
Criteria roll up into four relative pillars. The lists below are read from the criteria currently on file, placed the way the model places them, so they change when the data does.
Price
Free tier · Kind of free offer · What the free plan includes · Credit card to start · When the free offer ends · Entry paid plan · Pricing model · Per-transaction fee · Egress over allowance · When you exceed a cap · Startup credit program · Storage price · Operations price · Ingest price per GB · Query price · Input price, top model · Output price, top model · Input price, cheapest model · Batch discount · Price per 1,000 over · Price per SSO connection · H100 SXM, per GPU-hour · Cheapest GPU, per hour · Billing granularity · Reserved pricing · Price per extra concurrent job
Capacity and limits
Sites or apps included · Included bandwidth · File, inode or volume limit · Build allowance · Concurrent builds · Max request duration · CPU time limit · Connection limit · Point-in-time recovery · Backup retention · Retention window · Context window · Max output tokens · Emails included · Log retention · Users included · Maximum message size · Message retention · Maximum delay · Largest GPU offered · Countries served
Capabilities
Storage (entry plan) · Memory (entry plan) · Monthly visits cap · Edge function timeout · Streaming response limit · Managed connection pooling · Git deployment · Docker deployment · Containers · Scheduled jobs · Persistent processes · Persistent storage · Managed databases · Edge network · Scales to zero · Autoscaling · Regions · Engine · When idle · Database branching · Real-time subscriptions · Read replicas · Rewind in place · Minimum storage duration · S3-compatible API · Events included · Session replay · Self-hostable · Prompt caching · Rate limits · Dedicated IP · Inbound email · Multi-factor authentication · Included per month · Concurrency · Dead letter queue · Operations included per month · Max dataset size, entry plan · Data persistence · Multi-region replication · Max vector dimensions · Similarity metrics supported · Hybrid search (vector + keyword) · Metadata filtering · Max job duration · Self-hosted runners · Secret versioning · Dynamic (short-lived) secrets · Points of presence · Image optimization
Trust and compliance
Uptime SLA · Works without cookies · SAML single sign-on · SCIM provisioning · Audit logs · Support on entry paid plan · Response time commitment · SOC 2 · ISO 27001 · HIPAA · GDPR / data residency · PCI DSS · Encryption at rest · Customer-managed keys · Role-based access control · Merchant of record · DNSSEC · Private networking / VPC · Dedicated infrastructure
A pillar's raw score is the weighted mean of its criteria. It is then shrunk toward the category by an empirical-Bayes estimate: the posterior mean given how many criteria were scored, the within-provider spread pooled across the category, and the between-provider spread of the pillar. A provider scored on one criterion moves most of the way back to the category middle; one scored on twelve barely moves. The same posterior gives the 80% interval printed beside every score. A pillar the provider has no scored criterion in takes the category prior at the prior's full width — it is not dropped, because dropping it would hand its weight to whichever pillars the provider happens to document.
Two pillars are not relative. Evidence is how much is known: 40% breadth (facts documented against the fullest record in the category), 25% freshness, 20% source confidence, 15% share confirmed by the drift check. Adoption is a crawler's live-site count and, where a repository is mapped, GitHub stars — one crawler per category, never two summed, each on a log scale among covered peers.
Weights
The overall score is the weighted mean of the pillars. These weights are inetGeek's read of what decides the purchase in each category — disclosed here, exported in the JSON, and the one part of the model that is opinion rather than arithmetic. Every category not listed uses the default row.
| Category | Price | Capacity and limits | Capabilities | Trust and compliance | Evidence | Adoption |
|---|---|---|---|---|---|---|
| Default | 25% | 20% | 20% | 15% | 10% | 10% |
| LLM APIs | 35% | 25% | 15% | 10% | 10% | 10% |
| GPU compute | 40% | 25% | 10% | 10% | 10% | 10% |
| Payments | 35% | 5% | 15% | 30% | 10% | 10% |
| Secrets management | 15% | 10% | 20% | 35% | 10% | 10% |
| Authentication | 25% | 15% | 20% | 25% | 10% | 10% |
| Object storage | 35% | 20% | 15% | 15% | 10% | 10% |
| CDN | 25% | 25% | 15% | 15% | 10% | 15% |
| VPS and cloud | 30% | 30% | 10% | 15% | 10% | 10% |
| Mass-market hosting | 30% | 25% | 10% | 15% | 10% | 15% |
| Managed hosting | 25% | 25% | 15% | 15% | 10% | 15% |
Rows are renormalised over the pillars that exist for a category: a category no crawler covers has no adoption pillar, and its weight is shared out rather than counted as a penalty.
For providers: what moves the number
The score is a function of what you publish, read on a schedule. There is no form to fill in and nobody to email. The route to a higher score is the same as the route to a more useful page: state the facts this site tracks, as numbers where they are numbers, on pages a fetch can read.
Price
- Publish an entry paid price as a plain amount on an official pricing page. A price stated as a number is scored against the category median; one stated as "contact us" or as a worked example is not scored at all.
- State the free offer precisely: a permanent free tier scores above a trial, a trial above nothing. Say whether a card is required.
- Per-unit rates (per GB, per million tokens, per thousand emails) count when the page states the number. A rate table beats a paragraph.
Capacity and limits
- Publish limits as numbers with units: storage, memory, request duration, connections, retention windows, regions. A limit written as a sentence ("generous", "scales with your plan") is documented but cannot be placed on a scale.
- One number per limit on the entry paid plan. A range across five tiers is read at the entry tier.
Capabilities
- Say clearly whether each capability exists — yes, limited, or no. A documented "no" scores 0, but it also counts as evidence, and it beats the reader assuming the worst.
- Where a capability is partial, say what the limit is. "Limited" scores 50 and the qualifier is shown beside it.
Trust and compliance
- Keep a trust or security page that names the certifications you hold — SOC 2, ISO 27001, HIPAA, PCI DSS — and the controls you offer: encryption at rest, customer-managed keys, RBAC, private networking, data residency.
- Publish an uptime SLA as a percentage and a support response commitment as a time. Both are scored on their scale; neither is inferred.
Evidence
- Document more of the criteria this site tracks in your category. Breadth is 40% of the evidence pillar and the only part a provider fully controls.
- Keep pricing and limits on pages a plain fetch can read. Facts behind a JavaScript toggle or a hidden tooltip still count, but the monthly drift check cannot confirm them and they carry a lower confirmation weight.
- Facts are re-read on a schedule; a fact older than its staleness window loses weight. A stable URL that does not move helps both.
Adoption
- This pillar reads a crawler's live-site count and, where a public repository is mapped, GitHub stars. It is not something a provider edits, and it is weighted lightly for that reason. A provider no crawler fingerprints takes the category mean at full width rather than a zero.
If a figure on your page here is wrong or has changed, tell us and it is re-read against the source. The score follows the fact; it is never edited directly.
What it does not claim
It is not a benchmark; nothing here was measured by us. It is not a review; no opinion enters except the category weights above. It is not comparable across categories; a 70 in databases and a 70 in CDN are two different statements. And it is not precise beyond its interval — where two providers' bands overlap, the page says so, and the honest reading is that the sourced values decide, not the number.
