Reality Scoring

Understanding how Unveil calculates and interprets reality scores.

Reality Score

The Reality Score is a number from 0 to 100 that represents our heuristic assessment of how "real" a web product appears to be. A higher score indicates more evidence of a functional, shipped product, while a lower score suggests the site may be primarily marketing content without substantial functionality behind it.

Heuristic Assessment
The Reality Score is a probabilistic assessment based on observable signals. It does not claim to be definitive truth. A low score doesn't mean a product is fake—it means we detected fewer signals of functionality during our analysis.

Score Ranges

75-100: Appears Legitimate

HIGH CONFIDENCE

Strong evidence of a functional product. Multiple positive signals detected including authentication flows, API integrations, dynamic content, and production-grade security configurations.

55-74: Some Concerns

MODERATE

Mixed signals detected. Some evidence of functionality exists alongside potential red flags. The site may be in development, partially deployed, or have limited functionality behind the marketing layer.

35-54: Likely Performative

LOW CONFIDENCE

Limited evidence of real functionality. The site appears to be primarily marketing content. Consider requesting a demo or proof of functionality before making commitments.

0-34: Insufficient Data

INCONCLUSIVE

Unable to gather enough signals for a confident assessment. This may occur with sites that block automated access, have aggressive caching, or use unusual technical configurations.

Evidence Markers

Evidence markers are individual signals that contribute to the overall score. Each marker has a type (positive, negative, or neutral), a category, and a weight that affects the final calculation.

Positive Signals

SignalDescriptionWeight
Auth Flow DetectedLogin/signup functionality observed+15
API Calls PresentDynamic data fetching from APIs+12
Modern FrameworkReact, Vue, Angular, etc. detected+10
Valid TLSProper HTTPS configuration+8
Security HeadersCSP, HSTS, and other headers+5

Negative Signals

SignalDescriptionWeight
Placeholder ContentLorem ipsum or similar detected-15
Static OnlyNo dynamic content or API calls-10
No User InteractionNo functional forms or buttons-8
Missing HSTSNo HTTP Strict Transport Security-5

Neutral Signals

Neutral signals are observations that neither strongly support nor detract from the reality assessment. They provide context without significantly affecting the score.

  • Analytics services present (Google Analytics, Segment, etc.)
  • CDN usage detected
  • Standard meta tags and SEO configuration
  • Common third-party integrations (fonts, icons)

Weight System

The final score is calculated by aggregating all evidence marker weights against a baseline score. The algorithm normalizes results to fall within the 0-100 range and applies category multipliers for certain signal combinations.

// Simplified scoring algorithm
baseScore = 50
for each marker in evidenceMarkers:
  baseScore += marker.weight
  
// Apply category bonuses
if hasAuth AND hasAPI:
  baseScore += 10
  
// Normalize to 0-100
finalScore = clamp(baseScore, 0, 100)

Example Output

Here's an example of a scan result with scoring information:

{
  "score": 78,
  "verdict": "legitimate",
  "verdictLabel": "Appears Legitimate",
  "evidence": {
    "markers": [
      {
        "type": "positive",
        "category": "Authentication",
        "title": "Auth Flow Detected",
        "weight": 15
      },
      {
        "type": "positive",
        "category": "Tech Stack",
        "title": "Next.js Detected",
        "weight": 10
      },
      {
        "type": "negative",
        "category": "Security",
        "title": "No HSTS Header",
        "weight": -5
      }
    ]
  }
}