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.
Strong security posture, reliable uptime, complete compliance signals
Most trust signals in place, minor gaps to address
Notable gaps in security, privacy, or reliability — buyers may hesitate
Significant trust deficits — multiple scanners flagging issues
Critical trust issues across multiple categories
| Grade | Score Range | Label | What It Means |
|---|---|---|---|
| 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
MCP Server Weight Distribution
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 checksVerifies 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 checksChecks 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 checksMonitors 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)
Performance
4 checksMeasures 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 checksVerifies 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 checksChecks 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