Grading Methodology

ShipGrade grades are fully transparent. This page explains exactly how your trust score is calculated — what we scan, how we weight it, and what the letter grades mean.

Grade Scale

Your composite trust score (0–100) maps to a letter grade that buyers can understand at a glance.

A
90 – 100 · Excellent

Strong security posture, reliable uptime, complete compliance signals

B
80 – 89 · Good

Most trust signals in place, minor gaps to address

C
65 – 79 · Fair

Notable gaps in security, privacy, or reliability — buyers may hesitate

D
50 – 64 · Needs Improvement

Significant trust deficits — multiple scanners flagging issues

F
Below 50 · Poor

Critical trust issues across multiple categories

How Scoring Works

Your trust score is a weighted composite of individual scanner scores. Each scanner runs its checks (pass/fail) and produces a component score from 0–100. Those component scores are then combined using the weight distribution for your product type.

The formula is straightforward: Trust Score = sum(component_score × weight)

Website Weight Distribution

Security30%
Uptime25%
Privacy15%
DNS10%
Performance10%
Builder Profile10%

MCP Server Weight Distribution

Permissions25%
Authentication20%
Dependencies20%
Code Safety20%
Project Health15%

Dynamic weight redistribution

If a scanner doesn't have data yet (e.g., uptime on a newly registered product), its weight is redistributed proportionally across the scanners that do have data. This means your score is never penalized for missing data — it's calculated from what we've observed so far, and improves as more data comes in.

Website Scanners

Website products are assessed by 6 HTTP-based scanners. Each scanner runs multiple checks and produces a score out of 100.

SSL / TLS

3 checks

Verifies that your site uses a valid SSL/TLS certificate and properly enforces encrypted connections.

  • Certificate validity — is the certificate present and not expired?
  • HTTPS redirect — does HTTP automatically redirect to HTTPS?
  • HSTS header — is Strict-Transport-Security configured?

Security Headers

8 checks

Checks for HTTP security headers that protect users from common attacks like clickjacking, XSS, and content injection.

  • Content-Security-Policy — controls which resources the browser can load
  • X-Frame-Options — prevents your site from being embedded in iframes (clickjacking)
  • X-Content-Type-Options — prevents MIME-type sniffing
  • Referrer-Policy, Permissions-Policy, HSTS, X-XSS-Protection, Server header

Uptime & Reliability

4 checks

Monitors your product's availability with hourly pings and calculates reliability metrics over a rolling 30-day window.

  • 30-day uptime percentage — what fraction of pings got a successful response (40 pts)
  • Average response time — how fast your server responds (25 pts)
  • Last 24h availability — recent reliability snapshot (20 pts)
  • Consistency — number of days with zero outages (15 pts)
Cold start note: When you first register a product, we have no uptime history. This component starts at 0 and grows as we collect data over days and weeks. The weight is redistributed until enough data exists.

Performance

4 checks

Measures how quickly your product loads and whether it follows performance best practices.

  • Time to First Byte (TTFB) — how fast the server starts responding
  • Compression — is gzip/brotli enabled?
  • Redirect chains — unnecessary redirects that slow down load times
  • HTTP version — is the server using HTTP/2 or HTTP/3?

DNS & Infrastructure

4 checks

Verifies your DNS configuration and email security records — signals that you manage your infrastructure responsibly.

  • DNSSEC — DNS response authenticity validation
  • SPF record — specifies which mail servers can send email for your domain
  • DMARC record — email authentication policy (scored by policy strength)
  • CAA record — controls which certificate authorities can issue certs for your domain

Privacy & Compliance

4 checks

Checks for the legal and privacy signals that users expect from a trustworthy product.

  • Privacy policy — is there an accessible privacy policy page?
  • Terms of service — is there a terms/ToS page?
  • Cookie consent — detects 20+ cookie consent providers
  • Contact information — can users reach a real person?

MCP Server Scanners

MCP server products are assessed via static source code analysis — we download the repo or package and analyze it directly. No HTTP requests are made to the product itself. Supports JavaScript, TypeScript, Python, Go, and Rust.

Permissions & Scope

4 checks · 25%

Evaluates how many tools the server exposes and whether it follows the principle of least privilege.

  • Tool count — fewer, focused tools are better than sprawling APIs
  • Scope breadth — file, network, database, shell, and crypto domains
  • Input validation — uses Zod, Joi, or MCP inputSchema
  • Least privilege — no eval(), exec(), or dangerous patterns

Authentication

4 checks · 20%

Checks whether the server implements proper authentication and handles secrets safely.

  • Auth middleware — is authentication implemented?
  • Auth approach — OAuth, API keys, bearer tokens
  • Secret handling — environment variables, not hardcoded values
  • Transport config — stdio vs HTTP binding

Dependencies

4 checks · 20%

Analyzes the project's dependency tree for known vulnerabilities (via the OSV database), staleness, and supply chain hygiene.

  • Known vulnerabilities — cross-referenced against the OSV database
  • Dependency count — lean dependency trees are safer
  • Freshness — are dependencies reasonably up to date?
  • Lockfile — is there a lockfile for reproducible builds?

Code Safety

4 checks · 20%

Scans source code for hardcoded secrets, injection risks, and error handling patterns. Uses a rule engine with 221 rules covering 129 services.

  • No hardcoded secrets — detects API keys, tokens, and credentials (AWS, Stripe, GitHub, Slack, and 125+ more)
  • Injection safety — no unsanitized user input in shell commands or queries
  • Error handling — language-aware detection (try/catch, Result types, if err patterns)
  • Network safety — safe HTTP patterns and connection handling

Project Health

5 checks · 15%

Evaluates overall project quality signals — the kind of practices that indicate a well-maintained codebase.

  • Type safety — TypeScript, type annotations, or language-level type systems
  • Tests present — per-language test detection
  • License — is there an open-source license?
  • Documentation — README, inline docs, API documentation
  • Project activity — recent commits and maintenance signals

Builder Profile (Website Only)

For website products, 10% of your trust score comes from your builder profile completeness. This signals that a real, reachable person stands behind the product. MCP server products don't include this component.

Field Points
Identity verified 30
Display name 10
Bio 10
Website URL 10
GitHub handle 10
Product description 10
Tech stack 10
Twitter handle 5
LinkedIn URL 5
Total 100

Identity verification carries the most weight (30 points) because it's the strongest signal that a real, accountable person is behind the product.

Improving Your Score

When you view your scan results in the dashboard, failing checks are shown first — each with a plain-language explanation of what's wrong and how to fix it. For each failing check, we provide an AI-ready remediation prompt you can paste directly into Claude Code, Cursor, Copilot, or any AI coding tool.

The most impactful improvements are usually:

  • Add missing security headers — a few lines of server config can dramatically improve your Security score
  • Add a privacy policy and terms of service — often just a page you need to create and link
  • Complete your builder profile — fill in all fields and verify your identity for a 10-point boost
  • Wait for uptime data — your uptime score grows automatically as we collect data over days and weeks

Re-scans run automatically every day, so your score updates within 24 hours of making changes. You can also trigger a manual re-scan from your dashboard.

Frequently Asked Questions

Why did I get a C even though my site seems fine?

The most common reason is missing security headers (CSP, X-Frame-Options, etc.) — these are invisible to users but critical for browser security. The second most common is a new product without uptime history yet. Check your dashboard for the specific failing checks.

My uptime score is 0 — is that a bug?

No. Uptime scoring is based on observed data, and we need to monitor your product for a few days before we have meaningful numbers. During this period, the uptime weight is redistributed to other categories so your overall score isn't penalized. Your uptime score will climb as we collect more data.

How often are scans re-run?

Daily automatic re-scans for all scanner types, plus hourly uptime pings for website products. You can also trigger a manual re-scan from your dashboard (rate-limited to once per 8 hours per product).

Can buyers see my scan details?

Public profiles show which checks passed or failed, but never show detailed findings like vulnerability IDs, specific header values, or source code analysis. Only you see the detailed remediation guidance in your private dashboard.

What languages do MCP server scanners support?

JavaScript/TypeScript, Python, Go, and Rust. The scanners detect language-specific patterns for error handling, testing, injection, environment variables, and more.

Is the scoring algorithm open source?

The methodology is fully documented on this page — every weight, threshold, and check. We believe transparency is essential for a trust platform. If you think a check is unfair or miscalibrated, we want to hear about it.

Ready to see your grade?

Register your product and get your trust profile in under 2 minutes.

Join the Beta