{
 "name": "Rams Index · the web",
 "edition": "web-2026-10",
 "season": "0",
 "url": "https://www.rams.ai/index/web",
 "method": "https://www.rams.ai/index/method",
 "renderedFrom": "2026-10-09",
 "renderedTo": "2026-10-10",
 "license": "https://creativecommons.org/licenses/by/4.0/",
 "creator": "Rams (rams.ai)",
 "status": "Season 0. One judge pass per site. Until the designer agreement read the Index is the judge's opinion.",
 "index": {
  "formula": "(gradeSum - 7) / 28 * 100",
  "range": [
   0,
   100
  ],
  "interval": "Index ± 5.2 (95%), from 64 pages judged twice a day apart (one judgment sd 2.67).",
  "place": "Place on the board, 1 for the highest Rams Index.",
  "rankRange": "Every place one judgment's noise allows: sites within the 95% bound on a difference of two single judgments sit inside the noise of each other, so their order is not proven."
 },
 "judge": "claude-sonnet-4-6",
 "viewports": {
  "desktop": 1440,
  "phone": 390
 },
 "listed": 152,
 "sites": [
  {
   "place": 1,
   "rankRange": {
    "best": 1,
    "worst": 18
   },
   "name": "Squarespace",
   "host": "squarespace.com",
   "group": "saas",
   "category": "commerce",
   "index": 67.9,
   "ci95": [
    62.7,
    73.1
   ],
   "gradeSum": 26,
   "grades": {
    "hierarchy": 3.5,
    "typography": 4,
    "spacing": 3.5,
    "color": 4,
    "components": 4,
    "composure": 3,
    "craft": 4
   },
   "pageScore": 94,
   "desktop": 91,
   "phone": 97,
   "findings": [
    "Three competing stat numerals at equal weight",
    "Promo banner 'take 20% off' label is redundant",
    "Carousel side cards clipped at both edges without visual resolution"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 2,
   "rankRange": {
    "best": 1,
    "worst": 18
   },
   "name": "Cloudflare",
   "host": "cloudflare.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 67.9,
   "ci95": [
    62.7,
    73.1
   ],
   "gradeSum": 26,
   "grades": {
    "hierarchy": 3.5,
    "typography": 4,
    "spacing": 3,
    "color": 4,
    "components": 4,
    "composure": 3.5,
    "craft": 4
   },
   "pageScore": 93,
   "desktop": 91,
   "phone": 94,
   "findings": [
    "Competing 'Run' card headlines lack differentiation",
    "Sub-headline body copy contrast is low on orange hero",
    "Event banner sits too close to the h1 headline"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 3,
   "rankRange": {
    "best": 1,
    "worst": 18
   },
   "name": "Linear",
   "host": "linear.app",
   "group": "saas",
   "category": "dev-tools",
   "index": 67.9,
   "ci95": [
    62.7,
    73.1
   ],
   "gradeSum": 26,
   "grades": {
    "hierarchy": 4,
    "typography": 4,
    "spacing": 3,
    "color": 4,
    "components": 4,
    "composure": 3,
    "craft": 4
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Description and 'New Loops' pill misaligned on same row",
    "Two-tone headline technique undercut by near-equal weight",
    "Uneven vertical rhythm between hero headline and description"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 4,
   "rankRange": {
    "best": 1,
    "worst": 24
   },
   "name": "Allbirds",
   "host": "allbirds.com",
   "group": "consumer",
   "category": "retail",
   "index": 66.1,
   "ci95": [
    60.9,
    71.3
   ],
   "gradeSum": 25.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3,
    "spacing": 4,
    "color": 4,
    "components": 4,
    "composure": 3,
    "craft": 4
   },
   "pageScore": 93,
   "desktop": 91,
   "phone": 94,
   "findings": [
    "Left-panel sketch illustration competes with hero copy",
    "Two CTA buttons at bottom-right are nearly equal weight",
    "Eyebrow label 'ALL NEW DASHER NZ COLLECTION' is nearly illegible"
   ],
   "hidden": [
    "newsletter"
   ],
   "flags": []
  },
  {
   "place": 5,
   "rankRange": {
    "best": 1,
    "worst": 24
   },
   "name": "Framer",
   "host": "framer.com",
   "group": "saas",
   "category": "design-tools",
   "index": 66.1,
   "ci95": [
    60.9,
    71.3
   ],
   "gradeSum": 25.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 3,
    "color": 4,
    "components": 4,
    "composure": 3.5,
    "craft": 4
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "\"New: Skills\" link competes with CTA row",
    "Uneven vertical rhythm between hero video and logo strip",
    "Single type register throughout hero and sub-sections"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 6,
   "rankRange": {
    "best": 1,
    "worst": 24
   },
   "name": "Halide",
   "host": "halide.cam",
   "group": "consumer",
   "category": "apps",
   "index": 66.1,
   "ci95": [
    60.9,
    71.3
   ],
   "gradeSum": 25.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 3,
    "color": 4,
    "components": 4,
    "composure": 3.5,
    "craft": 4
   },
   "pageScore": 90,
   "desktop": 91,
   "phone": 89,
   "findings": [
    "Body copy bleeds to viewport edge",
    "Excessive dead air between hero devices and headline section",
    "Subtitle weight competes with headline at the copy section"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 7,
   "rankRange": {
    "best": 1,
    "worst": 27
   },
   "name": "teenage engineering",
   "host": "teenage.engineering",
   "group": "consumer",
   "category": "hardware",
   "index": 64.3,
   "ci95": [
    59.1,
    69.5
   ],
   "gradeSum": 25,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 3.5,
    "color": 4.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 94,
   "desktop": 94,
   "phone": 94,
   "findings": [
    "Navigation sub-items listed in reversed visual order",
    "Header nav Japanese-text column overflows visual frame",
    "Two-line announcement text lacks vertical rhythm separation"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 8,
   "rankRange": {
    "best": 1,
    "worst": 27
   },
   "name": "Descript",
   "host": "descript.com",
   "group": "saas",
   "category": "ai",
   "index": 64.3,
   "ci95": [
    59.1,
    69.5
   ],
   "gradeSum": 25,
   "grades": {
    "hierarchy": 4,
    "typography": 4,
    "spacing": 3,
    "color": 4,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Logo row clipped at right edge",
    "Testimonial company logos inconsistently sized and clipped",
    "Uneven vertical gap between hero text block and product UI"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 9,
   "rankRange": {
    "best": 1,
    "worst": 27
   },
   "name": "Metalab",
   "host": "metalab.com",
   "group": "saas",
   "category": "design-tools",
   "index": 64.3,
   "ci95": [
    59.1,
    69.5
   ],
   "gradeSum": 25,
   "grades": {
    "hierarchy": 3.5,
    "typography": 4,
    "spacing": 3,
    "color": 4,
    "components": 3.5,
    "composure": 3,
    "craft": 4
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Intro paragraph floats without anchor",
    "Client list and headline compete for left-edge ownership",
    "Headline stagger reads as accidental misalignment"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 10,
   "rankRange": {
    "best": 1,
    "worst": 27
   },
   "name": "Railway",
   "host": "railway.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 64.3,
   "ci95": [
    59.1,
    69.5
   ],
   "gradeSum": 25,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 3,
    "color": 4,
    "components": 4,
    "composure": 3,
    "craft": 4
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Excessive dead space between hero UI panel and logo strip",
    "Secondary CTA 'Agents' button contrast is borderline on dark background",
    "Nav text-gray-800 class on dark background may render low-contrast"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 11,
   "rankRange": {
    "best": 1,
    "worst": 36
   },
   "name": "Sketch",
   "host": "sketch.com",
   "group": "saas",
   "category": "design-tools",
   "index": 62.5,
   "ci95": [
    57.3,
    67.7
   ],
   "gradeSum": 24.5,
   "grades": {
    "hierarchy": 4,
    "typography": 3,
    "spacing": 3.5,
    "color": 3,
    "components": 4,
    "composure": 3.5,
    "craft": 3.5
   },
   "pageScore": 93,
   "desktop": 91,
   "phone": 94,
   "findings": [
    "Hero layout split creates unbalanced weight",
    "Single type register throughout hero",
    "Accent color spent on both CTA and promo title simultaneously"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 12,
   "rankRange": {
    "best": 1,
    "worst": 36
   },
   "name": "Craft",
   "host": "craft.do",
   "group": "saas",
   "category": "design-tools",
   "index": 62.5,
   "ci95": [
    57.3,
    67.7
   ],
   "gradeSum": 24.5,
   "grades": {
    "hierarchy": 4,
    "typography": 4,
    "spacing": 3,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Hero app screenshot clipped at right edge",
    "Feature icon row lacks visual weight differentiation",
    "Excessive dead air between hero and feature section"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 13,
   "rankRange": {
    "best": 1,
    "worst": 36
   },
   "name": "Gamma",
   "host": "gamma.app",
   "group": "saas",
   "category": "ai",
   "index": 62.5,
   "ci95": [
    57.3,
    67.7
   ],
   "gradeSum": 24.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 4,
    "spacing": 3,
    "color": 4,
    "components": 3,
    "composure": 3,
    "craft": 4
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Rightmost preview card clipped at viewport edge",
    "Two 'Start for free' CTAs visible without differentiation",
    "Abrupt section transition between dark hero and sky-blue section"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 14,
   "rankRange": {
    "best": 1,
    "worst": 47
   },
   "name": "Cursor",
   "host": "cursor.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 60.7,
   "ci95": [
    55.5,
    65.9
   ],
   "gradeSum": 24,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 4,
    "composure": 3,
    "craft": 4
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Hero headline left-aligned against full-width demo image",
    "Two equal-weight CTA buttons with no clear primary",
    "Logo bar logos unevenly spaced optically"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 15,
   "rankRange": {
    "best": 1,
    "worst": 47
   },
   "name": "Docker",
   "host": "docker.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 60.7,
   "ci95": [
    55.5,
    65.9
   ],
   "gradeSum": 24,
   "grades": {
    "hierarchy": 3.5,
    "typography": 4,
    "spacing": 3,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 91,
   "desktop": 88,
   "phone": 94,
   "findings": [
    "Feature cards cut off at right edge",
    "Logo row clipped on right side",
    "Uneven vertical gap below hero section"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 16,
   "rankRange": {
    "best": 1,
    "worst": 47
   },
   "name": "JetBrains",
   "host": "jetbrains.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 60.7,
   "ci95": [
    55.5,
    65.9
   ],
   "gradeSum": 24,
   "grades": {
    "hierarchy": 3,
    "typography": 3.5,
    "spacing": 3,
    "color": 4,
    "components": 4,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Hero image bleeds asymmetrically into page edges",
    "Tab row ('For devs / For teams / For orgs') lacks visual weight relative to the large IDE screenshot below",
    "Excess vertical dead space between IDE screenshot and 'For {developers}' heading"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 17,
   "rankRange": {
    "best": 1,
    "worst": 47
   },
   "name": "Clerk",
   "host": "clerk.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 60.7,
   "ci95": [
    55.5,
    65.9
   ],
   "gradeSum": 24,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 3,
    "color": 3.5,
    "components": 4,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 90,
   "desktop": 88,
   "phone": 91,
   "findings": [
    "Hero section visual weight imbalance",
    "Tab row competes with demo panel as focal point",
    "Uneven vertical rhythm between hero text and demo section"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 18,
   "rankRange": {
    "best": 1,
    "worst": 47
   },
   "name": "Vercel",
   "host": "vercel.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 60.7,
   "ci95": [
    55.5,
    65.9
   ],
   "gradeSum": 24,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 3,
    "color": 4,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 88,
   "desktop": 81,
   "phone": 94,
   "findings": [
    "Hero subtitle list orphaned from headline",
    "Hero composition splits into three disconnected zones with no clear focal axis",
    "Announcement bar text and CTA lack breathing room between them"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 19,
   "rankRange": {
    "best": 4,
    "worst": 58
   },
   "name": "Postman",
   "host": "postman.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 58.9,
   "ci95": [
    53.7,
    64.1
   ],
   "gradeSum": 23.5,
   "grades": {
    "hierarchy": 3,
    "typography": 4,
    "spacing": 3,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Hero demo panel nearly empty",
    "Competing install call-to-action rows",
    "Logo strip right edge clipped"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 20,
   "rankRange": {
    "best": 4,
    "worst": 58
   },
   "name": "Wise",
   "host": "wise.com",
   "group": "saas",
   "category": "fintech",
   "index": 58.9,
   "ci95": [
    53.7,
    64.1
   ],
   "gradeSum": 23.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 3.5,
    "composure": 3.5,
    "craft": 3.5
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Competing CTA buttons",
    "Country flag carousel feels unanchored",
    "Uneven vertical rhythm between feature icons and text"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 21,
   "rankRange": {
    "best": 4,
    "worst": 58
   },
   "name": "Flighty",
   "host": "flighty.com",
   "group": "consumer",
   "category": "travel",
   "index": 58.9,
   "ci95": [
    53.7,
    64.1
   ],
   "gradeSum": 23.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 2.5,
    "color": 3,
    "components": 4,
    "composure": 3.5,
    "craft": 3.5
   },
   "pageScore": 90,
   "desktop": 86,
   "phone": 94,
   "findings": [
    "Large dead zone above hero headline",
    "Award badges compete equally with subhead",
    "Notification cards flanking phone clip behind device unevenly"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 22,
   "rankRange": {
    "best": 4,
    "worst": 58
   },
   "name": "Sentry",
   "host": "sentry.io",
   "group": "saas",
   "category": "dev-tools",
   "index": 58.9,
   "ci95": [
    53.7,
    64.1
   ],
   "gradeSum": 23.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 3,
    "color": 4,
    "components": 3,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Competing CTA button treatments",
    "Duplicate CTA buttons with inconsistent treatment",
    "Excessive dead space between hero product panel and logo strip"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 23,
   "rankRange": {
    "best": 4,
    "worst": 58
   },
   "name": "Neon",
   "host": "neon.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 58.9,
   "ci95": [
    53.7,
    64.1
   ],
   "gradeSum": 23.5,
   "grades": {
    "hierarchy": 3,
    "typography": 4,
    "spacing": 3,
    "color": 4,
    "components": 3,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 86,
   "desktop": 91,
   "phone": 81,
   "findings": [
    "Banner text truncated mid-sentence",
    "Partner logo strip clipped at right edge",
    "Two-tone headline technique applied inconsistently"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 24,
   "rankRange": {
    "best": 4,
    "worst": 58
   },
   "name": "Gumroad",
   "host": "gumroad.com",
   "group": "saas",
   "category": "commerce",
   "index": 58.9,
   "ci95": [
    53.7,
    64.1
   ],
   "gradeSum": 23.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 3,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 85,
   "desktop": 78,
   "phone": 91,
   "findings": [
    "Redundant hero text echo in feature card",
    "Asymmetric card treatment between 'Sell anything' and 'Make your own road'",
    "Inconsistent vertical gap between heading and body copy across feature cards"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 25,
   "rankRange": {
    "best": 7,
    "worst": 85
   },
   "name": "Rippling",
   "host": "rippling.com",
   "group": "saas",
   "category": "fintech",
   "index": 57.1,
   "ci95": [
    51.9,
    62.3
   ],
   "gradeSum": 23,
   "grades": {
    "hierarchy": 3,
    "typography": 3.5,
    "spacing": 3,
    "color": 4,
    "components": 3,
    "composure": 3.5,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Privacy text renders incomplete sentence",
    "Accolade section: three equally-weighted rating blocks compete without visual anchor",
    "Product card grid: uneven vertical rhythm between row 1 and row 2"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 26,
   "rankRange": {
    "best": 7,
    "worst": 85
   },
   "name": "Apple",
   "host": "apple.com",
   "group": "consumer",
   "category": "hardware",
   "index": 57.1,
   "ci95": [
    51.9,
    62.3
   ],
   "gradeSum": 23,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3.5,
    "color": 3,
    "components": 3,
    "composure": 4,
    "craft": 3.5
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Asymmetric CTA button sizing creates visual imbalance",
    "Inconsistent button pair treatment across sections",
    "Callout copy breaks expected typographic tier"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 27,
   "rankRange": {
    "best": 7,
    "worst": 85
   },
   "name": "Retool",
   "host": "retool.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 57.1,
   "ci95": [
    51.9,
    62.3
   ],
   "gradeSum": 23,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3.5,
    "spacing": 2.5,
    "color": 4,
    "components": 3.5,
    "composure": 2.5,
    "craft": 3.5
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Mobile nav menu overlapping hero content",
    "Hero headline competes with dark background imagery",
    "App gallery grid crops rightmost column"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 28,
   "rankRange": {
    "best": 11,
    "worst": 99
   },
   "name": "Nike",
   "host": "nike.com",
   "group": "consumer",
   "category": "retail",
   "index": 55.4,
   "ci95": [
    50.2,
    60.6
   ],
   "gradeSum": 22.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 4,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Excessive dead space between grid cards and Nike Training section",
    "Shop-category labels lack visual weight differentiation from surrounding context",
    "Hero headline placement crowds bottom-left edge"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 29,
   "rankRange": {
    "best": 11,
    "worst": 99
   },
   "name": "v0",
   "host": "v0.app",
   "group": "saas",
   "category": "ai",
   "index": 55.4,
   "ci95": [
    50.2,
    60.6
   ],
   "gradeSum": 22.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Excessive dead space between hero and template section",
    "Template filter tabs and 'Browse all' mixed in same row with inconsistent weight",
    "Bottom template row shows empty gray placeholder cards"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 30,
   "rankRange": {
    "best": 11,
    "worst": 99
   },
   "name": "Bear",
   "host": "bear.app",
   "group": "consumer",
   "category": "apps",
   "index": 55.4,
   "ci95": [
    50.2,
    60.6
   ],
   "gradeSum": 22.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3.5,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Hero headline word 'love' wraps to overlap underline decoration ambiguously",
    "Competing section headings at equal weight",
    "Awards row year labels optically detached from titles"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 31,
   "rankRange": {
    "best": 11,
    "worst": 99
   },
   "name": "Obsidian",
   "host": "obsidian.md",
   "group": "saas",
   "category": "productivity",
   "index": 55.4,
   "ci95": [
    50.2,
    60.6
   ],
   "gradeSum": 22.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Hero text truncated at left edge",
    "Dual CTA weight imbalance in features section",
    "Feature section bold leads and body copy lack tonal differentiation"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 32,
   "rankRange": {
    "best": 11,
    "worst": 99
   },
   "name": "Anthropic",
   "host": "anthropic.com",
   "group": "saas",
   "category": "ai",
   "index": 55.4,
   "ci95": [
    50.2,
    60.6
   ],
   "gradeSum": 22.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3.5,
    "spacing": 2.5,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 88,
   "desktop": 78,
   "phone": 97,
   "findings": [
    "Two competing headline moments with equal visual weight",
    "Excessive dead air between hero and product section",
    "Three release cards use identical label/value treatment with large vertical gap mid-card"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 33,
   "rankRange": {
    "best": 11,
    "worst": 99
   },
   "name": "Pentagram",
   "host": "pentagram.com",
   "group": "saas",
   "category": "design-tools",
   "index": 55.4,
   "ci95": [
    50.2,
    60.6
   ],
   "gradeSum": 22.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3,
    "spacing": 3.5,
    "color": 3,
    "components": 3,
    "composure": 3.5,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "Hero caption text low contrast on photographic background",
    "Truncated dropdown label",
    "Uneven vertical rhythm between hero and editorial section"
   ],
   "hidden": [
    "consent"
   ],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 34,
   "rankRange": {
    "best": 11,
    "worst": 99
   },
   "name": "Rivian",
   "host": "rivian.com",
   "group": "consumer",
   "category": "hardware",
   "index": 55.4,
   "ci95": [
    50.2,
    60.6
   ],
   "gradeSum": 22.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3.5,
    "craft": 3.5
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "Hero body copy contrast insufficient against dark cinematic background",
    "Two CTA buttons have near-equal visual weight competing for attention",
    "Two CTA buttons receive identical visual weight with inconsistent styling"
   ],
   "hidden": [
    "consent"
   ],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 35,
   "rankRange": {
    "best": 11,
    "worst": 99
   },
   "name": "Stripe",
   "host": "stripe.com",
   "group": "saas",
   "category": "fintech",
   "index": 55.4,
   "ci95": [
    50.2,
    60.6
   ],
   "gradeSum": 22.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3.5,
    "color": 4,
    "components": 3.5,
    "composure": 3,
    "craft": 2.5
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "Animated counter value renders with excessive decimal precision",
    "Animating percentage value shows excessive decimal precision",
    "Hero gradient bleeds into navigation zone without containment"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 36,
   "rankRange": {
    "best": 11,
    "worst": 99
   },
   "name": "Plaid",
   "host": "plaid.com",
   "group": "saas",
   "category": "fintech",
   "index": 55.4,
   "ci95": [
    50.2,
    60.6
   ],
   "gradeSum": 22.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3.5,
    "spacing": 3,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 86,
   "phone": 83,
   "findings": [
    "Partner logo strip clips at both edges",
    "Misaligned CTA button pair",
    "Two CTA buttons carry near-equal visual weight"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 37,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Square",
   "host": "squareup.com",
   "group": "saas",
   "category": "fintech",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 4,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 93,
   "desktop": 91,
   "phone": 94,
   "findings": [
    "Inconsistent CTA button treatments",
    "Headline sits uncomfortably high in the frame, cutting across the subject's head",
    "No overlay scrim: white headline contrast is marginal in lighter sky/building zones"
   ],
   "hidden": [],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 38,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Calendly",
   "host": "calendly.com",
   "group": "saas",
   "category": "productivity",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3.5,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Hero section bottom half underutilized",
    "Announcement banner text truncated on visible width",
    "Second section icon cluster lacks visual rest"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 39,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Netlify",
   "host": "netlify.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 4,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Competing CTA weight below primary buttons",
    "Uneven vertical rhythm between hero and logo strip",
    "Feature card label typography matches body: no register shift"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 40,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Supabase",
   "host": "supabase.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Uneven vertical rhythm between hero and feature grid",
    "Logo strip container border creates awkward visual break",
    "\"Use one or all.\" tagline competes with section body copy weight"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 41,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Warby Parker",
   "host": "warbyparker.com",
   "group": "consumer",
   "category": "retail",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3.5,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Two competing CTA buttons share equal visual weight",
    "Benefits bar text is unevenly distributed across the strip",
    "Section heading color accent ('new arrivals') reads as a link, not a label"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 42,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Superhuman",
   "host": "superhuman.com",
   "group": "saas",
   "category": "productivity",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 3,
    "composure": 3.5,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 86,
   "phone": 94,
   "findings": [
    "Hero section hard crop on right edge",
    "Two competing CTAs of near-equal visual weight in hero",
    "Excessive vertical dead space between logo strip and 'Superhuman Go' section"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 43,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Teamwork",
   "host": "teamwork.com",
   "group": "saas",
   "category": "productivity",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3.5,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 88,
   "phone": 91,
   "findings": [
    "Subheading semantic mismatch",
    "Stat cards: uneven vertical rhythm between label, numeral, and description",
    "Tab bar: inconsistent active-state visual weight vs inactive tabs"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 44,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Mercury",
   "host": "mercury.com",
   "group": "saas",
   "category": "fintech",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 3,
    "composure": 3.5,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Duplicate 'Open account' CTA labels in same viewport",
    "Hero text floats too high, leaving vast dead lower field",
    "Duplicate 'Open account' label: navbar CTA and form CTA identical wording in same viewport"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 45,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Mistral AI",
   "host": "mistral.ai",
   "group": "saas",
   "category": "ai",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3.5,
    "spacing": 2.5,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 86,
   "phone": 91,
   "findings": [
    "Excessive dead space above hero headline",
    "Pixel-art decorative elements compete with hero type without a clear hierarchy",
    "Emoji/icon embedded mid-headline disrupts typographic authority"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 46,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Notion",
   "host": "notion.com",
   "group": "saas",
   "category": "productivity",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3.5,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Logo strip clipped at both edges",
    "Pill animation element clips into headline flow awkwardly",
    "Dual CTAs carry equal visual weight"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 47,
   "rankRange": {
    "best": 14,
    "worst": 111
   },
   "name": "Warp",
   "host": "warp.dev",
   "group": "saas",
   "category": "dev-tools",
   "index": 53.6,
   "ci95": [
    48.4,
    58.8
   ],
   "gradeSum": 22,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 3,
    "composure": 3,
    "craft": 3.5
   },
   "pageScore": 85,
   "desktop": 83,
   "phone": 86,
   "findings": [
    "Vertical margin notes bleed into content area",
    "Mismatched CTA button treatments",
    "Two CTA buttons compete with near-equal visual weight"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 48,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "Dropbox",
   "host": "dropbox.com",
   "group": "saas",
   "category": "productivity",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 88,
   "phone": 94,
   "findings": [
    "Competing secondary CTAs with equal visual weight",
    "Excessive dead air between hero and social-proof strip",
    "Logo strip optical inconsistency: logos at very different weights and sizes"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 49,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "Shopify",
   "host": "shopify.com",
   "group": "saas",
   "category": "commerce",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Two-tone headline lacks tonal differentiation",
    "Card grid images have uneven heights and ragged bottom edge",
    "Excessive dead space between image grid and next section"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 50,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "Zendesk",
   "host": "zendesk.com",
   "group": "saas",
   "category": "productivity",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Accent color spent across competing elements",
    "Redundant 'Try for free' CTA duplication",
    "Excessive dead air between logo bar and section headline"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 51,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "Atlassian",
   "host": "atlassian.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 88,
   "phone": 91,
   "findings": [
    "Two CTA treatments competing at equal visual weight",
    "Accent word 'and' in purple breaks headline rhythm without tonal payoff",
    "Uneven vertical rhythm between banner, nav, and hero headline"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 52,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "Discord",
   "host": "discord.com",
   "group": "consumer",
   "category": "apps",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 86,
   "phone": 94,
   "findings": [
    "Inconsistent CTA button treatment",
    "Excessive dead zone between hero and feature section",
    "Feature section text block lacks visual entry point"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 53,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "Lovable",
   "host": "lovable.dev",
   "group": "saas",
   "category": "ai",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 4,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 89,
   "phone": 91,
   "findings": [
    "Excessive dead space above hero headline",
    "Gradient bleeds off-screen with no compositional closure",
    "Excessive dead space above hero headline"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 54,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "ClickUp",
   "host": "clickup.com",
   "group": "saas",
   "category": "productivity",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Headline tonal split falls flat on mobile",
    "Mixed weight headline with gradient accent competes with itself",
    "Uneven vertical rhythm between hero CTA and product screenshot"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 55,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "ElevenLabs",
   "host": "elevenlabs.io",
   "group": "saas",
   "category": "ai",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 86,
   "phone": 91,
   "findings": [
    "Competing CTA instances: 'Sign up' appears twice at equal weight",
    "H2 body-copy block visually competes with H1 headline",
    "Excessive dead space between logo grid and 'Two platforms' section"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 56,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "Wrike",
   "host": "wrike.com",
   "group": "saas",
   "category": "productivity",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 86,
   "phone": 91,
   "findings": [
    "Logo strip clipped at both edges",
    "Two equal-weight CTAs compete in hero",
    "Feature card grid mixes two-column and three-column rows without a unifying rhythm"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 57,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "Ramp",
   "host": "ramp.com",
   "group": "saas",
   "category": "fintech",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 83,
   "phone": 86,
   "findings": [
    "Stats ticker clipped at right edge",
    "Live percentage ticker visually orphaned",
    "Live percentage counter too prominent for a label"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 58,
   "rankRange": {
    "best": 19,
    "worst": 120
   },
   "name": "Webflow",
   "host": "webflow.com",
   "group": "saas",
   "category": "design-tools",
   "index": 51.8,
   "ci95": [
    46.6,
    57
   ],
   "gradeSum": 21.5,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3,
    "spacing": 3,
    "color": 3.5,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 82,
   "desktop": 83,
   "phone": 81,
   "findings": [
    "Hero carousel cards clipped at both edges",
    "Card images clipped at viewport edge",
    "Caption text truncated below cards"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 59,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Todoist",
   "host": "todoist.com",
   "group": "saas",
   "category": "productivity",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 93,
   "desktop": 91,
   "phone": 94,
   "findings": [
    "Decorative icon fragments float without anchor",
    "Excessive dead air between press-quote strip and 'Capture tasks' section",
    "Section label and heading use near-identical weight and color relationship across repeated sections"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 60,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Datadog",
   "host": "datadoghq.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Hero dashboard image bleeds to left edge asymmetrically",
    "Uneven vertical rhythm between hero CTA buttons and dashboard image",
    "Two competing CTAs with near-equal visual weight"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 61,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "HubSpot",
   "host": "hubspot.com",
   "group": "saas",
   "category": "productivity",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Chat widget overlaps bottom-right card content",
    "Dual CTA buttons in nav and hero compete with equal visual weight",
    "Uneven vertical rhythm between hero and photo strip"
   ],
   "hidden": [
    "consent"
   ],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 62,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Wix",
   "host": "wix.com",
   "group": "saas",
   "category": "commerce",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Stats panel left-anchored, not centered",
    "Duplicate 'Get Started' CTAs with identical treatment",
    "Single type register throughout: no voice shift"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 63,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Family",
   "host": "family.co",
   "group": "saas",
   "category": "fintech",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 88,
   "phone": 91,
   "findings": [
    "Hero subheading duplicates section heading below",
    "Feature card row lacks visual rhythm: left card is significantly taller",
    "Excessive dead space between hero and 'Explore Ethereum' section"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 64,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "GitLab",
   "host": "about.gitlab.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 88,
   "phone": 91,
   "findings": [
    "Hero cards float without anchoring: right half of hero is empty",
    "Two competing CTA buttons in nav with near-identical visual weight",
    "Single typographic register throughout: no voice shift"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 65,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Hugging Face",
   "host": "huggingface.co",
   "group": "saas",
   "category": "ai",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 88,
   "phone": 91,
   "findings": [
    "Large dead zone between hero and trending section",
    "Second large dead zone mid-page (between trending and 'Home of ML')",
    "Competing section entry points at page bottom"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 66,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "1Password",
   "host": "1password.com",
   "group": "saas",
   "category": "productivity",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Two CTAs compete with equal visual weight",
    "Logo grid has irregular gaps in middle rows",
    "Two competing 'Talk to sales' CTAs at the same visual weight"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 67,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Adobe",
   "host": "adobe.com",
   "group": "saas",
   "category": "design-tools",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Two body paragraphs compete equally with no tonal differentiation",
    "Eyebrow label redundancy",
    "Excessive dead air between CTA and bottom cards"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 68,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Canva",
   "host": "canva.com",
   "group": "saas",
   "category": "design-tools",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "CTA button low contrast on gradient background",
    "Feature cards clipped at right edge",
    "Tab bar and section heading compete for section entry"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 69,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Dribbble",
   "host": "dribbble.com",
   "group": "saas",
   "category": "design-tools",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Popular pill row clips without visual affordance",
    "Tab labels duplicate nav items",
    "Uneven vertical rhythm between bullet list items"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 70,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Revolut",
   "host": "revolut.com",
   "group": "saas",
   "category": "fintech",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Banner competes with hero headline",
    "Hero text competes with image subject",
    "Notification banner text left-margin inconsistency"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 71,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Slack",
   "host": "slack.com",
   "group": "saas",
   "category": "productivity",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Third tab label clipped at viewport edge",
    "Two CTA buttons competing equally in hero",
    "Dual 'Get started' buttons: redundant label"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 72,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "SurveyMonkey",
   "host": "surveymonkey.com",
   "group": "saas",
   "category": "productivity",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Feedback tab overlaps nav/content area",
    "Hero product screenshot crops brand logos",
    "Three stat numerals compete equally"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 73,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Things",
   "host": "culturedcode.com",
   "group": "saas",
   "category": "productivity",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 86,
   "phone": 91,
   "findings": [
    "App screenshot clipped at right edge",
    "'Simply Powerful' section icon competes with heading",
    "Navigation items clipped at right viewport edge"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 74,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "PayPal",
   "host": "paypal.com",
   "group": "saas",
   "category": "fintech",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3.5,
    "spacing": 2.5,
    "color": 3,
    "components": 3.5,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 88,
   "desktop": 81,
   "phone": 94,
   "findings": [
    "Excessive dead space between segment control and headline",
    "No visible CTA in the hero",
    "Segment control orphaned far above headline"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 75,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Deel",
   "host": "deel.com",
   "group": "saas",
   "category": "fintech",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 87,
   "desktop": 83,
   "phone": 91,
   "findings": [
    "Hero split creates mismatched visual weight",
    "Competing CTA instances at same visual weight",
    "Oversized vertical gap between logo stripe and 'What Deel Does' section"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 76,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Lyft",
   "host": "lyft.com",
   "group": "consumer",
   "category": "mobility-delivery",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 78,
   "phone": 94,
   "findings": [
    "Redundant section label duplicates heading",
    "Hero section image and text panel vertically misaligned",
    "Inconsistent vertical rhythm between section breaks"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 77,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Arc",
   "host": "arc.net",
   "group": "saas",
   "category": "productivity",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2,
    "color": 3.5,
    "components": 3.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 86,
   "phone": 83,
   "findings": [
    "Dead air between hero section and testimonial block",
    "Dead blue zone between hero and testimonial section",
    "FYI disclaimer competes visually with CTA buttons"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 78,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Brex",
   "host": "brex.com",
   "group": "saas",
   "category": "fintech",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 83,
   "phone": 86,
   "findings": [
    "Competing heading levels at same visual weight",
    "Duplicate headline renders twice",
    "Excessive vertical dead space in hero above headline"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 79,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Hootsuite",
   "host": "hootsuite.com",
   "group": "saas",
   "category": "productivity",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 91,
   "phone": 78,
   "findings": [
    "Hero text truncated/crowded on dark overlay",
    "Brand logo strip clips at right edge",
    "Dual CTA buttons misaligned vertically"
   ],
   "hidden": [
    "consent"
   ],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 80,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Miro",
   "host": "miro.com",
   "group": "saas",
   "category": "design-tools",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3.5,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 78,
   "phone": 91,
   "findings": [
    "Large dead zone between logo strip and feature section",
    "Partially rendered/empty progress bar element in mid-page",
    "Hero subtitle competes with hero headline in weight"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 81,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "monday.com",
   "host": "monday.com",
   "group": "saas",
   "category": "productivity",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 78,
   "phone": 91,
   "findings": [
    "Hero tag-pill row duplicated in 'agents' section",
    "Two 'Get Started' CTAs compete at equal visual weight",
    "Uneven vertical rhythm between major sections"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 82,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Medium",
   "host": "medium.com",
   "group": "consumer",
   "category": "media",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 4,
    "spacing": 2,
    "color": 3,
    "components": 3.5,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 82,
   "desktop": 78,
   "phone": 86,
   "findings": [
    "Excessive dead space above hero content",
    "Hero illustration clipped at right edge",
    "Excessive dead space above hero headline"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 83,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Runway",
   "host": "runwayml.com",
   "group": "saas",
   "category": "ai",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 82,
   "desktop": 78,
   "phone": 86,
   "findings": [
    "Competing section headings at same visual weight",
    "Inconsistent CTA button counts across three parallel cards",
    "Hero body copy line-length too long relative to column"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 84,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "PostHog",
   "host": "posthog.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3.5,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 81,
   "desktop": 83,
   "phone": 78,
   "findings": [
    "Competing focal points in hero section",
    "Modal card overlaps and obscures nav items behind it",
    "Two CTAs of near-equal visual weight compete in the card"
   ],
   "hidden": [],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 85,
   "rankRange": {
    "best": 25,
    "worst": 125
   },
   "name": "Headspace",
   "host": "headspace.com",
   "group": "consumer",
   "category": "apps",
   "index": 50,
   "ci95": [
    44.8,
    55.2
   ],
   "gradeSum": 21,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 80,
   "desktop": 78,
   "phone": 81,
   "findings": [
    "Split hero headline treated as two competing elements",
    "Right hero card content clipped / no product image parity",
    "Headline split across two elements with inconsistent weight"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 86,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Grammarly",
   "host": "grammarly.com",
   "group": "saas",
   "category": "productivity",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 91,
   "desktop": 91,
   "phone": 91,
   "findings": [
    "Feature card row clipped at right edge",
    "Excessive dead space between logo marquee and 'Better writing' section",
    "Duplicate CTA label in hero area"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 87,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Substack",
   "host": "substack.com",
   "group": "consumer",
   "category": "media",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 2.5,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 88,
   "phone": 91,
   "findings": [
    "Dual promotional banners competing",
    "Orange accent overspent",
    "Right-panel login block visually equal to feed content"
   ],
   "hidden": [
    "app"
   ],
   "flags": []
  },
  {
   "place": 88,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Asana",
   "host": "asana.com",
   "group": "saas",
   "category": "productivity",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3.5,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Excessive dead space below form",
    "Excessive dead space between hero CTA and social proof strip",
    "Orphaned horizontal rule above 'Asana Work Graph®' accordion"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 89,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Strava",
   "host": "strava.com",
   "group": "consumer",
   "category": "apps",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3.5,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 86,
   "phone": 91,
   "findings": [
    "Vast dead space below footer",
    "Three sign-up buttons carry nearly equal visual weight",
    "Footer column spacing is inconsistent"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 90,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Faire",
   "host": "faire.com",
   "group": "saas",
   "category": "commerce",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 2.5,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 87,
   "desktop": 88,
   "phone": 86,
   "findings": [
    "Hero text legibility against low-contrast background",
    "Competing CTAs at same visual weight",
    "Single typographic register throughout: no voice shift"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 91,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Loom",
   "host": "loom.com",
   "group": "saas",
   "category": "productivity",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 2.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 87,
   "desktop": 88,
   "phone": 86,
   "findings": [
    "Two CTA buttons with inconsistent visual treatment",
    "Duplicate 'Get Loom for free' CTA within close vertical proximity",
    "Excessive vertical dead space between hero video and social-proof headline"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 92,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Sonos",
   "host": "sonos.com",
   "group": "consumer",
   "category": "hardware",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "Redundant promotional message in banner and card",
    "Redundant promotional messaging: banner duplicates section headline",
    "Two large centered headings competing in close vertical proximity"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 93,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Spotify",
   "host": "spotify.com",
   "group": "consumer",
   "category": "media",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "Right-edge cards clipped mid-content",
    "Third song card label clipped at viewport edge",
    "'Featured Charts' section shows duplicate chart cards"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 94,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Airtable",
   "host": "airtable.com",
   "group": "saas",
   "category": "productivity",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 88,
   "phone": 81,
   "findings": [
    "Cookie modal occludes primary content",
    "Two CTA buttons have mismatched heights",
    "Competing CTA weights"
   ],
   "hidden": [],
   "flags": [
    "consent",
    "overlay"
   ]
  },
  {
   "place": 95,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Klaviyo",
   "host": "klaviyo.com",
   "group": "saas",
   "category": "commerce",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 83,
   "phone": 86,
   "findings": [
    "Excessive dead space between logo bar and hero section",
    "Cookie banner occludes primary CTA",
    "Orange geometric shape behind hero device mockup reads as accidental"
   ],
   "hidden": [],
   "flags": [
    "consent"
   ]
  },
  {
   "place": 96,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Mailchimp",
   "host": "mailchimp.com",
   "group": "saas",
   "category": "productivity",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 82,
   "desktop": 78,
   "phone": 86,
   "findings": [
    "Modal image bleeds outside modal boundary",
    "Two calls-to-action compete at equal visual weight in the modal footer",
    "Review logos row clipped at right edge"
   ],
   "hidden": [
    "consent"
   ],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 97,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Tailwind CSS",
   "host": "tailwindcss.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 2.5,
    "spacing": 3,
    "color": 3.5,
    "components": 3,
    "composure": 3,
    "craft": 2.5
   },
   "pageScore": 82,
   "desktop": 78,
   "phone": 86,
   "findings": [
    "Exposed utility class annotations visible in hero",
    "Two 'Get started' CTAs with conflicting z-index/visibility",
    "Visible utility class annotations in body copy"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 98,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Pitch",
   "host": "pitch.com",
   "group": "saas",
   "category": "design-tools",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3.5,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 81,
   "desktop": 83,
   "phone": 78,
   "findings": [
    "Hero headline clipped at viewport edges",
    "Hero headline clipped at right edge",
    "Two CTAs visually compete with unresolved weight relationship"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 99,
   "rankRange": {
    "best": 28,
    "worst": 127
   },
   "name": "Telegram",
   "host": "telegram.org",
   "group": "consumer",
   "category": "apps",
   "index": 48.2,
   "ci95": [
    43,
    53.4
   ],
   "gradeSum": 20.5,
   "grades": {
    "hierarchy": 3,
    "typography": 2.5,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 80,
   "desktop": 78,
   "phone": 81,
   "findings": [
    "Duplicated 'Recent News' section heading",
    "Asymmetric desktop download layout: two labels misaligned on a shared visual axis",
    "Truncated card titles mid-sentence"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 100,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "GitHub",
   "host": "github.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 86,
   "phone": 94,
   "findings": [
    "Excessive dead space between hero CTA and editor visual",
    "Editor mockup clipped at bottom",
    "Two CTAs of near-equal visual weight compete in the hero"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 101,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "Smartsheet",
   "host": "smartsheet.com",
   "group": "saas",
   "category": "productivity",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Large empty gradient zone with orphaned play button",
    "Duplicate 'AI' headline concept",
    "Hero right-side left empty, play button floats without context"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 102,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "Uber",
   "host": "uber.com",
   "group": "consumer",
   "category": "mobility-delivery",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 89,
   "desktop": 86,
   "phone": 91,
   "findings": [
    "Orphaned vertical line in mid-section",
    "Excessive dead-air gap above 'How to request a ride'",
    "'Log in to check your activity' competes visually with 'See prices' CTA"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 103,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "Kickstarter",
   "host": "kickstarter.com",
   "group": "consumer",
   "category": "retail",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 2.5,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 87,
   "desktop": 88,
   "phone": 86,
   "findings": [
    "App banner competes with site header as dual top rails",
    "Competing section labels at same visual weight",
    "Uneven vertical gap between hero banner and category nav"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 104,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "DuckDuckGo",
   "host": "duckduckgo.com",
   "group": "consumer",
   "category": "apps",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "Notification drawer interrupts search bar flow",
    "Excessive dead space between search bar and privacy modal",
    "'Trusted by tens of millions worldwide!' competes with CTA card"
   ],
   "hidden": [],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 105,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "Peloton",
   "host": "onepeloton.com",
   "group": "consumer",
   "category": "hardware",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 91,
   "phone": 81,
   "findings": [
    "Excessive dead space between hero CTAs and 'The Peloton lineup' section",
    "Second CTA button clipped at right edge",
    "Equal-weight CTA buttons with no primary/secondary distinction"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 106,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "SoundCloud",
   "host": "soundcloud.com",
   "group": "consumer",
   "category": "media",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "First trending card clipped at left edge",
    "Large dead zone between hero and bottom nav",
    "\"or\" connector between search and upload lacks visual weight differentiation"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 107,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "Trello",
   "host": "trello.com",
   "group": "saas",
   "category": "productivity",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 2.5,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 83,
   "phone": 88,
   "findings": [
    "Hero image clips at right edge",
    "'TRELLO 101' label competes weakly as a section divider",
    "Uneven vertical rhythm between hero sub-elements"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 108,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "Duolingo",
   "host": "duolingo.com",
   "group": "consumer",
   "category": "apps",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 78,
   "phone": 91,
   "findings": [
    "Excessive dead space above hero content",
    "Two CTAs lack clear visual differentiation",
    "Hero layout is left-heavy with illustration crowding the text column"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 109,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "Figma",
   "host": "figma.com",
   "group": "saas",
   "category": "design-tools",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 2.5,
    "color": 3.5,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 78,
   "phone": 91,
   "findings": [
    "Hero layout splits into three disconnected zones",
    "'Get started' CTA orphaned with no supporting copy",
    "Excessive dead vertical space between hero and body copy"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 110,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "Glossier",
   "host": "glossier.com",
   "group": "consumer",
   "category": "retail",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 2.5,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 82,
   "desktop": 78,
   "phone": 86,
   "findings": [
    "Blue 'NEW' badges clash with brand palette",
    "Hero text card competes with editorial hero image",
    "Hero text card interrupts the editorial photograph"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 111,
   "rankRange": {
    "best": 37,
    "worst": 127
   },
   "name": "Signal",
   "host": "signal.org",
   "group": "consumer",
   "category": "apps",
   "index": 46.4,
   "ci95": [
    41.2,
    51.6
   ],
   "gradeSum": 20,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 82,
   "desktop": 78,
   "phone": 86,
   "findings": [
    "Hero text-column vertically unanchored",
    "'Share Without Insecurity' section: extreme left-right imbalance",
    "CTA button icon redundancy"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 112,
   "rankRange": {
    "best": 48,
    "worst": 128
   },
   "name": "Etsy",
   "host": "etsy.com",
   "group": "consumer",
   "category": "retail",
   "index": 44.6,
   "ci95": [
    39.4,
    49.8
   ],
   "gradeSum": 19.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 3,
    "color": 2.5,
    "components": 3,
    "composure": 3,
    "craft": 2.5
   },
   "pageScore": 89,
   "desktop": 91,
   "phone": 86,
   "findings": [
    "Date incongruity: 'fall 2026' on a seasonal page",
    "Two section headers compete at identical weight",
    "Hero banner asymmetry feels accidental, not authored"
   ],
   "hidden": [
    "app"
   ],
   "flags": []
  },
  {
   "place": 113,
   "rankRange": {
    "best": 48,
    "worst": 128
   },
   "name": "Gusto",
   "host": "gusto.com",
   "group": "saas",
   "category": "fintech",
   "index": 44.6,
   "ci95": [
    39.4,
    49.8
   ],
   "gradeSum": 19.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 88,
   "desktop": 86,
   "phone": 89,
   "findings": [
    "Hero content floats high with vast dead lower-hero area",
    "Duplicate 'Create free account' CTA",
    "Two equal-weight CTAs with no clear primary"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 114,
   "rankRange": {
    "best": 48,
    "worst": 128
   },
   "name": "Structured",
   "host": "structured.app",
   "group": "consumer",
   "category": "apps",
   "index": 44.6,
   "ci95": [
    39.4,
    49.8
   ],
   "gradeSum": 19.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 2.5,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 88,
   "desktop": 86,
   "phone": 89,
   "findings": [
    "Hero section has no visible headline or CTA",
    "Nav bar floats over full-bleed video with no background treatment",
    "Nav wordmark and CTA contrast against variable photo background"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 115,
   "rankRange": {
    "best": 48,
    "worst": 128
   },
   "name": "Zoho",
   "host": "zoho.com",
   "group": "saas",
   "category": "productivity",
   "index": 44.6,
   "ci95": [
    39.4,
    49.8
   ],
   "gradeSum": 19.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 2.5,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 85,
   "desktop": 78,
   "phone": 91,
   "findings": [
    "Split hero: two competing focal regions with no clear primary",
    "Two 'BUILD WITH AGENTS' CTAs at identical weight in the same horizontal band",
    "Inconsistent vertical rhythm between hero sections"
   ],
   "hidden": [],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 116,
   "rankRange": {
    "best": 48,
    "worst": 128
   },
   "name": "Pipedrive",
   "host": "pipedrive.com",
   "group": "saas",
   "category": "productivity",
   "index": 44.6,
   "ci95": [
    39.4,
    49.8
   ],
   "gradeSum": 19.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 2.5,
    "composure": 3,
    "craft": 3
   },
   "pageScore": 84,
   "desktop": 86,
   "phone": 81,
   "findings": [
    "Redundant social-proof claims",
    "Duplicate 'Try it free' CTA label",
    "Inconsistent vertical gaps between checklist items"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 117,
   "rankRange": {
    "best": 48,
    "worst": 128
   },
   "name": "Panic",
   "host": "panic.com",
   "group": "consumer",
   "category": "apps",
   "index": 44.6,
   "ci95": [
    39.4,
    49.8
   ],
   "gradeSum": 19.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 82,
   "desktop": 78,
   "phone": 86,
   "findings": [
    "Asymmetric top-zone dead air vs. content crowding",
    "Two section labels compete with identical visual weight",
    "Hero takeover section clips/bleeds into app grid without visual closure"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 118,
   "rankRange": {
    "best": 48,
    "worst": 128
   },
   "name": "Zoom",
   "host": "zoom.com",
   "group": "saas",
   "category": "productivity",
   "index": 44.6,
   "ci95": [
    39.4,
    49.8
   ],
   "gradeSum": 19.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 82,
   "desktop": 78,
   "phone": 86,
   "findings": [
    "Hero carousel cards bleed to viewport edge without containment",
    "Two CTAs compete at equal visual weight in hero",
    "Competing CTAs with equal visual weight"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 119,
   "rankRange": {
    "best": 48,
    "worst": 128
   },
   "name": "BambooHR",
   "host": "bamboohr.com",
   "group": "saas",
   "category": "productivity",
   "index": 44.6,
   "ci95": [
    39.4,
    49.8
   ],
   "gradeSum": 19.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 2.5,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 74,
   "desktop": 88,
   "phone": 59,
   "findings": [
    "Cookie banner occludes primary content",
    "Two-colour headline split lacks clear intent",
    "Bold inline phrase in body copy competes with headline hierarchy"
   ],
   "hidden": [],
   "flags": [
    "consent",
    "overlay"
   ]
  },
  {
   "place": 120,
   "rankRange": {
    "best": 48,
    "worst": 128
   },
   "name": "Airbnb",
   "host": "airbnb.com",
   "group": "consumer",
   "category": "travel",
   "index": 44.6,
   "ci95": [
    39.4,
    49.8
   ],
   "gradeSum": 19.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 3,
    "color": 3,
    "components": 3,
    "composure": 2,
    "craft": 3
   },
   "pageScore": 73,
   "desktop": 59,
   "phone": 86,
   "findings": [
    "Modal occludes content beneath without dimmed overlay",
    "Modal clips 'Explore experiences nearby' section mid-row",
    "Floating toast overlaps card content"
   ],
   "hidden": [],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 121,
   "rankRange": {
    "best": 59,
    "worst": 128
   },
   "name": "WhatsApp",
   "host": "whatsapp.com",
   "group": "consumer",
   "category": "apps",
   "index": 42.9,
   "ci95": [
    37.7,
    48.1
   ],
   "gradeSum": 19,
   "grades": {
    "hierarchy": 3,
    "typography": 2,
    "spacing": 2.5,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 90,
   "desktop": 88,
   "phone": 91,
   "findings": [
    "Competing focal points in hero",
    "Excessive vertical dead air between sections",
    "Floating chat bubble elements feel unanchored"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 122,
   "rankRange": {
    "best": 59,
    "worst": 128
   },
   "name": "IKEA",
   "host": "ikea.com",
   "group": "consumer",
   "category": "retail",
   "index": 42.9,
   "ci95": [
    37.7,
    48.1
   ],
   "gradeSum": 19,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2,
    "color": 3,
    "components": 3,
    "composure": 2,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "Yellow panel top half is empty dead air without intent",
    "Excessive dead space below region picker",
    "Sub-heading and headline share near-identical visual weight in card captions"
   ],
   "hidden": [
    "consent"
   ],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 123,
   "rankRange": {
    "best": 59,
    "worst": 128
   },
   "name": "Twitch",
   "host": "twitch.tv",
   "group": "consumer",
   "category": "media",
   "index": 42.9,
   "ci95": [
    37.7,
    48.1
   ],
   "gradeSum": 19,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 2.5,
    "color": 2.5,
    "components": 3,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "Hero carousel lacks clear focal dominance",
    "Right-column stream card clipped off-screen",
    "Section header rhythm is inconsistent"
   ],
   "hidden": [
    "app"
   ],
   "flags": []
  },
  {
   "place": 124,
   "rankRange": {
    "best": 59,
    "worst": 128
   },
   "name": "OpenAI",
   "host": "openai.com",
   "group": "saas",
   "category": "ai",
   "index": 42.9,
   "ci95": [
    37.7,
    48.1
   ],
   "gradeSum": 19,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 2,
    "color": 3,
    "components": 3,
    "composure": 2,
    "craft": 3
   },
   "pageScore": 82,
   "desktop": 78,
   "phone": 86,
   "findings": [
    "Excessive dead space in hero section",
    "Large unaccounted black gap between hero and content grid",
    "Excessive dead vertical space between headline block and bottom content strip"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 125,
   "rankRange": {
    "best": 59,
    "worst": 128
   },
   "name": "Brevo",
   "host": "brevo.com",
   "group": "saas",
   "category": "productivity",
   "index": 42.9,
   "ci95": [
    37.7,
    48.1
   ],
   "gradeSum": 19,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 2.5,
    "color": 3,
    "components": 2.5,
    "composure": 2.5,
    "craft": 3
   },
   "pageScore": 81,
   "desktop": 83,
   "phone": 78,
   "findings": [
    "Hero image clipped at right edge",
    "Headline split creates awkward three-chunk rhythm",
    "Two CTA buttons carry near-identical visual weight"
   ],
   "hidden": [
    "consent"
   ],
   "flags": []
  },
  {
   "place": 126,
   "rankRange": {
    "best": 86,
    "worst": 129
   },
   "name": "Perplexity",
   "host": "perplexity.ai",
   "group": "saas",
   "category": "ai",
   "index": 41.1,
   "ci95": [
    35.9,
    46.3
   ],
   "gradeSum": 18.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 2,
    "color": 3,
    "components": 3,
    "composure": 2,
    "craft": 3
   },
   "pageScore": 86,
   "desktop": 86,
   "phone": 86,
   "findings": [
    "Massive dead air below content fold",
    "Headline floats in uncommitted vertical space",
    "'Search' label above headline is redundant with 'Search anything' card below"
   ],
   "hidden": [],
   "flags": [
    "consent"
   ]
  },
  {
   "place": 127,
   "rankRange": {
    "best": 86,
    "worst": 129
   },
   "name": "Chime",
   "host": "chime.com",
   "group": "saas",
   "category": "fintech",
   "index": 41.1,
   "ci95": [
    35.9,
    46.3
   ],
   "gradeSum": 18.5,
   "grades": {
    "hierarchy": 2.5,
    "typography": 3,
    "spacing": 2,
    "color": 3,
    "components": 3,
    "composure": 2.5,
    "craft": 2.5
   },
   "pageScore": 75,
   "desktop": 59,
   "phone": 91,
   "findings": [
    "Massive dead zone below trust bar",
    "Trust-bar items clipped at left edge",
    "Hero bullet links lack visual differentiation from body text"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 128,
   "rankRange": {
    "best": 112,
    "worst": 129
   },
   "name": "Replit",
   "host": "replit.com",
   "group": "saas",
   "category": "dev-tools",
   "index": 37.5,
   "ci95": [
    32.3,
    42.7
   ],
   "gradeSum": 17.5,
   "grades": {
    "hierarchy": 3,
    "typography": 3,
    "spacing": 1.5,
    "color": 3,
    "components": 3,
    "composure": 1.5,
    "craft": 2.5
   },
   "pageScore": 84,
   "desktop": 81,
   "phone": 86,
   "findings": [
    "Excessive dead space above hero content",
    "Large empty region below the prompt UI",
    "Excessive dead space above headline"
   ],
   "hidden": [],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 129,
   "rankRange": {
    "best": 126,
    "worst": 131
   },
   "name": "Indeed",
   "host": "indeed.com",
   "group": "consumer",
   "category": "community-local",
   "index": 33.9,
   "ci95": [
    28.7,
    39.1
   ],
   "gradeSum": 16.5,
   "grades": {
    "hierarchy": 2,
    "typography": 2.5,
    "spacing": 2.5,
    "color": 2.5,
    "components": 3,
    "composure": 1.5,
    "craft": 2.5
   },
   "pageScore": 78,
   "desktop": 78,
   "phone": 78,
   "findings": [
    "Excessive dead space below fold",
    "Duplicate brand lockup competes with navbar logo",
    "Two competing CTA button styles in same row context"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 130,
   "rankRange": {
    "best": 129,
    "worst": 132
   },
   "name": "YouTube",
   "host": "youtube.com",
   "group": "consumer",
   "category": "media",
   "index": 28.6,
   "ci95": [
    23.4,
    33.8
   ],
   "gradeSum": 15,
   "grades": {
    "hierarchy": 2,
    "typography": 2.5,
    "spacing": 2,
    "color": 2.5,
    "components": 2.5,
    "composure": 1.5,
    "craft": 2
   },
   "pageScore": 88,
   "desktop": 89,
   "phone": 86,
   "findings": [
    "Vast empty black void below content",
    "Large dead zone below nudge card",
    "Two competing 'Sign in' CTAs with equal visual weight"
   ],
   "hidden": [],
   "flags": []
  },
  {
   "place": 131,
   "rankRange": {
    "best": 129,
    "worst": 132
   },
   "name": "Wikipedia",
   "host": "wikipedia.org",
   "group": "consumer",
   "category": "community-local",
   "index": 26.8,
   "ci95": [
    21.6,
    32
   ],
   "gradeSum": 14.5,
   "grades": {
    "hierarchy": 2,
    "typography": 2.5,
    "spacing": 2.5,
    "color": 2.5,
    "components": 2,
    "composure": 1,
    "craft": 2
   },
   "pageScore": 69,
   "desktop": 78,
   "phone": 59,
   "findings": [
    "Donation overlay fully obscures page content",
    "Donation panel overlaps and occludes main content",
    "Two competing calls-to-action in the donation panel header"
   ],
   "hidden": [],
   "flags": [
    "overlay"
   ]
  },
  {
   "place": 132,
   "rankRange": {
    "best": 130,
    "worst": 132
   },
   "name": "Midjourney",
   "host": "midjourney.com",
   "group": "saas",
   "category": "ai",
   "index": 25,
   "ci95": [
    19.8,
    30.2
   ],
   "gradeSum": 14,
   "grades": {
    "hierarchy": 1.5,
    "typography": 2.5,
    "spacing": 1.5,
    "color": 3,
    "components": 2,
    "composure": 1.5,
    "craft": 2
   },
   "pageScore": 69,
   "desktop": 78,
   "phone": 59,
   "findings": [
    "Hero viewport is entirely empty: no content above the fold",
    "Hero viewport is entirely empty: no visible content",
    "Duplicate CTA button set: nav bar and mid-page pill repeat identical actions"
   ],
   "hidden": [],
   "flags": []
  }
 ],
 "skipped": [
  {
   "name": "Booking.com",
   "host": "booking.com",
   "reason": "not_the_page_error"
  },
  {
   "name": "Calm",
   "host": "calm.com",
   "reason": "http_403"
  },
  {
   "name": "DoorDash",
   "host": "doordash.com",
   "reason": "not_the_page_bot_challenge"
  },
  {
   "name": "eBay",
   "host": "ebay.com",
   "reason": "http_403"
  },
  {
   "name": "Expedia",
   "host": "expedia.com",
   "reason": "http_429"
  },
  {
   "name": "Instacart",
   "host": "instacart.com",
   "reason": "robots_disallow"
  },
  {
   "name": "Letterboxd",
   "host": "letterboxd.com",
   "reason": "not_the_page_bot_challenge"
  },
  {
   "name": "Netflix",
   "host": "netflix.com",
   "reason": "robots_disallow"
  },
  {
   "name": "Nothing",
   "host": "nothing.tech",
   "reason": "render_failed"
  },
  {
   "name": "OpenTable",
   "host": "opentable.com",
   "reason": "navigate_error"
  },
  {
   "name": "Patagonia",
   "host": "patagonia.com",
   "reason": "not_the_page_maintenance"
  },
  {
   "name": "Spline",
   "host": "spline.design",
   "reason": "render_failed"
  },
  {
   "name": "Target",
   "host": "target.com",
   "reason": "not_the_page_bot_challenge"
  },
  {
   "name": "Walmart",
   "host": "walmart.com",
   "reason": "not_the_page_bot_challenge"
  },
  {
   "name": "Yelp",
   "host": "yelp.com",
   "reason": "robots_disallow"
  },
  {
   "name": "Zillow",
   "host": "zillow.com",
   "reason": "not_the_page_bot_challenge"
  }
 ],
 "withdrawn": [
  {
   "name": "CARROT Weather",
   "host": "meetcarrot.com",
   "reason": "empty_band"
  },
  {
   "name": "Craigslist",
   "host": "craigslist.org",
   "reason": "blank_phone"
  },
  {
   "name": "Raycast",
   "host": "raycast.com",
   "reason": "empty_hero"
  },
  {
   "name": "Render",
   "host": "render.com",
   "reason": "mid_animation"
  }
 ]
}
