{
  "schema_version": "1.0",
  "generated_at": "2026-07-23T01:39:59.858Z",
  "slug": "ottiebox",
  "domain": "ottiebox.com",
  "funnel_type": "saas",
  "crawler": null,
  "provenance": {
    "facts": "measured",
    "design_tokens": "measured",
    "proof_language": "measured",
    "ux": "measured",
    "steps": "measured",
    "screenshots": "measured",
    "favicon": "measured",
    "score": "derived_deterministic",
    "agent_brief": "rendered_summary",
    "playbooks": "derived_deterministic"
  },
  "score": {
    "source_type": "derived_deterministic",
    "score": 40,
    "band": "Thin",
    "stars": 2,
    "categories": [
      {
        "id": "offer",
        "label": "Offer clarity",
        "pts": 8,
        "cap": 8
      },
      {
        "id": "action",
        "label": "Action path",
        "pts": 6,
        "cap": 20
      },
      {
        "id": "trust",
        "label": "Trust & proof",
        "pts": 0,
        "cap": 11
      },
      {
        "id": "friction",
        "label": "Friction reduction",
        "pts": 10,
        "cap": 10
      },
      {
        "id": "value",
        "label": "Value reinforcement",
        "pts": 0,
        "cap": 10
      },
      {
        "id": "urgency",
        "label": "Risk reversal & urgency",
        "pts": 0,
        "cap": 0
      }
    ]
  },
  "percentile": {
    "corpus_n": 306,
    "beats_pct": 55,
    "cohort": {
      "type": "saas",
      "n": 174,
      "beats_pct": 40
    }
  },
  "devices_available": [
    "desktop"
  ],
  "funnels": [
    {
      "device": "desktop",
      "funnel_sig": null,
      "score": 40,
      "band": "Thin",
      "funnel_depth": 1,
      "captured_at": "2026-07-16",
      "crawler": null
    }
  ],
  "timeline": [
    {
      "score": 40,
      "band": "Thin",
      "date": "2026-07-16"
    }
  ],
  "facts": {
    "source_type": "measured",
    "profile": {
      "funnel_type": "saas",
      "score": {
        "score": 40,
        "band": "Thin",
        "stars": 2,
        "categories": [
          {
            "id": "offer",
            "label": "Offer clarity",
            "pts": 8,
            "cap": 8
          },
          {
            "id": "action",
            "label": "Action path",
            "pts": 6,
            "cap": 20
          },
          {
            "id": "trust",
            "label": "Trust & proof",
            "pts": 0,
            "cap": 11
          },
          {
            "id": "friction",
            "label": "Friction reduction",
            "pts": 10,
            "cap": 10
          },
          {
            "id": "value",
            "label": "Value reinforcement",
            "pts": 0,
            "cap": 10
          },
          {
            "id": "urgency",
            "label": "Risk reversal & urgency",
            "pts": 0,
            "cap": 0
          }
        ]
      },
      "funnel_depth": 1,
      "proof_points": 0,
      "proof_steps": 0,
      "components_present": 3,
      "free_gifts": 0,
      "discount_present": false,
      "has_countdown": false,
      "subscription_detected": false,
      "checkout_form_fields": 0,
      "price_continuity": {
        "continuous": false,
        "shared": []
      },
      "tactics_detected": 3,
      "tactics_total": 9,
      "checkout_reached": null
    },
    "patterns": [
      {
        "id": "comparison_table",
        "label": "Us-vs-them comparison",
        "category": "objection",
        "present": false,
        "count": 0,
        "evidence": []
      },
      {
        "id": "demo_docs",
        "label": "Demo / docs entry",
        "category": "checkout",
        "present": false,
        "count": 0,
        "evidence": []
      },
      {
        "id": "faq_objection",
        "label": "FAQ / objection handling",
        "category": "objection",
        "present": true,
        "count": 1,
        "evidence": [
          "home: is this real money? no. you practice with pretend money and real, slightly delayed prices."
        ]
      },
      {
        "id": "free_trial",
        "label": "Free trial / freemium",
        "category": "offer",
        "present": true,
        "count": 1,
        "evidence": [
          "home: start free"
        ]
      },
      {
        "id": "lead_form",
        "label": "Lead-capture form",
        "category": "checkout",
        "present": false,
        "count": 0,
        "evidence": []
      },
      {
        "id": "pricing_tiers",
        "label": "Pricing tiers",
        "category": "offer",
        "present": true,
        "count": 1,
        "evidence": [
          "home: free, $9.99/mo"
        ]
      },
      {
        "id": "proof_above_fold",
        "label": "Proof above the fold",
        "category": "proof",
        "present": false,
        "count": 0,
        "evidence": []
      },
      {
        "id": "trusted_by_logos",
        "label": "Trusted-by logo wall",
        "category": "proof",
        "present": false,
        "count": 0,
        "evidence": []
      },
      {
        "id": "usage_proof",
        "label": "Usage / adoption proof",
        "category": "proof",
        "present": false,
        "count": 0,
        "evidence": []
      }
    ]
  },
  "design_tokens": {
    "source_type": "measured",
    "summary": {
      "roles": {
        "primary": "#f3e3c3",
        "accent": "#f3e3c3",
        "bg": "#f7ecd4",
        "surface": "#fffdf7",
        "text": "#6b5136"
      },
      "font": {
        "display": "ui-rounded",
        "body": "ui-rounded",
        "families": [
          {
            "family": "ui-rounded",
            "chars": 4867
          },
          {
            "family": "ui-monospace",
            "chars": 35
          }
        ]
      },
      "type_scale": [
        11,
        12,
        13,
        14,
        15,
        16,
        17,
        18,
        20,
        21,
        24,
        46
      ],
      "weights": [
        400,
        600,
        700,
        800
      ],
      "base_size": 18,
      "min_size": 11,
      "radius_scale": [
        8,
        12,
        14,
        16,
        20,
        50
      ],
      "palette": [
        {
          "hex": "#f7ecd4",
          "usage_pct": 49.2,
          "lum": 0.93,
          "chroma": 0.14
        },
        {
          "hex": "#3e2c1b",
          "usage_pct": 16,
          "lum": 0.18,
          "chroma": 0.14
        },
        {
          "hex": "#fffdf7",
          "usage_pct": 14.6,
          "lum": 0.99,
          "chroma": 0.03
        },
        {
          "hex": "#bfe3e6",
          "usage_pct": 9,
          "lum": 0.86,
          "chroma": 0.15
        },
        {
          "hex": "#f3e3c3",
          "usage_pct": 8.7,
          "lum": 0.89,
          "chroma": 0.19
        },
        {
          "hex": "#fbf3e2",
          "usage_pct": 1.3,
          "lum": 0.95,
          "chroma": 0.1
        },
        {
          "hex": "#f2542d",
          "usage_pct": 0.6,
          "lum": 0.45,
          "chroma": 0.77
        },
        {
          "hex": "#ffc23c",
          "usage_pct": 0.3,
          "lum": 0.77,
          "chroma": 0.76
        },
        {
          "hex": "#d9f0e2",
          "usage_pct": 0.2,
          "lum": 0.92,
          "chroma": 0.09
        },
        {
          "hex": "#3fa96b",
          "usage_pct": 0.1,
          "lum": 0.56,
          "chroma": 0.42
        }
      ]
    }
  },
  "proof_language": [],
  "ux": {
    "summary": {
      "flags": 2,
      "unknown": 0,
      "posture": "Minor",
      "checks_total": 5
    },
    "checks": [
      {
        "group": "contrast",
        "label": "Text contrast (WCAG AA)",
        "verdict": "needs_work",
        "fact": "93% of measurable text passes WCAG AA. 4+ runs fail.",
        "evidence": "worst: “start” at 2.13:1 (15px, #6b5136 on #f2542d). needs 4.5:1",
        "fix": "Raise text/background contrast to ≥4.5:1 (≥3:1 for large text), especially on CTAs and body copy."
      },
      {
        "group": "mobile",
        "label": "Mobile viewport",
        "verdict": "good",
        "fact": "Responsive viewport meta is present."
      },
      {
        "group": "type",
        "label": "Body text size",
        "verdict": "needs_work",
        "fact": "Smallest body text is 10px (base ~19px). below the ~16px readable floor.",
        "fix": "Keep body copy ≥15-16px; reserve sub-13px for fine print only."
      },
      {
        "group": "a11y",
        "label": "Language declared",
        "verdict": "good",
        "fact": "html[lang] is set for screen readers."
      },
      {
        "group": "a11y",
        "label": "Image alt text",
        "verdict": "good",
        "fact": "All 6 content images carry alt text."
      }
    ],
    "signals": {
      "contrast": {
        "sampled": 133,
        "pass_aa": 119,
        "fail_aa": 9,
        "unknown": 5,
        "worst": [
          {
            "text": "start",
            "ratio": 2.13,
            "fg": "#6b5136",
            "bg": "#f2542d",
            "need": 4.5,
            "px": 15
          },
          {
            "text": "learning",
            "ratio": 2.13,
            "fg": "#6b5136",
            "bg": "#f2542d",
            "need": 4.5,
            "px": 15
          },
          {
            "text": "+2.1% ▲",
            "ratio": 2.91,
            "fg": "#3fa96b",
            "bg": "#fffdf7",
            "need": 4.5,
            "px": 13
          },
          {
            "text": "start learning free",
            "ratio": 3.45,
            "fg": "#ffffff",
            "bg": "#f2542d",
            "need": 4.5,
            "px": 18
          }
        ]
      },
      "typography": {
        "body_px": 19,
        "min_body_px": 10,
        "line_height": 1.6,
        "long_lines": 0,
        "distinct_sizes": 10
      },
      "a11y": {
        "lang": true,
        "viewport": true,
        "img_total": 6,
        "img_missing_alt": 0,
        "controls_total": 0,
        "controls_unlabeled": 0,
        "controls_placeholder_only": 0,
        "controls_unnamed": 0,
        "generic_links": 0,
        "h1_home": 1,
        "h1_counts": [
          1
        ],
        "heading_skips": 1
      },
      "tap_targets": {
        "checked": 30,
        "small": 18,
        "sample": [
          {
            "label": "2048",
            "w": 44,
            "h": 25
          },
          {
            "label": "why us",
            "w": 62,
            "h": 25
          },
          {
            "label": "how it works",
            "w": 113,
            "h": 25
          },
          {
            "label": "ottiebox",
            "w": 121,
            "h": 32
          }
        ]
      },
      "layout": {
        "h_overflow": false,
        "overflow_px": 0
      },
      "viewport_w": 1440
    }
  },
  "playbooks": [],
  "steps": [
    {
      "n": 1,
      "id": "home",
      "label": "Homepage / Lander",
      "url": "https://ottiebox.com/",
      "reached": true,
      "copy": {
        "title": "ottiebox: the calm way to learn investing",
        "meta_description": "ottiebox teaches you to invest and trade with tiny lessons, pretend money, and real prices. no jargon, no hype, no pressure to buy anything.",
        "hero_copy": "the calm way to finally learn investing. | read a little. then actually try it. | and we actually mean all three.",
        "h1": [
          "the calm way to finally learn investing."
        ],
        "h2": [
          "read a little. then actually try it.",
          "and we actually mean all three.",
          "small reps. real understanding. no cramming.",
          "start free. go as deep as you want.",
          "the fine print, kept in plain sight.",
          "plain-english guides, free to read.",
          "the questions everyone has.",
          "ready when you are."
        ],
        "h3": [
          "learn by doing",
          "tells you the truth",
          "the graduation promise",
          "learn a thing",
          "practice it",
          "build the habit",
          "free",
          "pro"
        ],
        "ctas": [
          "start learning",
          "start learning free",
          "play 2048",
          "start free",
          "get pro",
          "read the blog",
          "start here"
        ],
        "prices": [
          "$0",
          "$9.99"
        ],
        "form_fields": 0,
        "form_field_names": []
      },
      "proof": [],
      "proof_position": {
        "in_header": false,
        "above_fold": false
      },
      "discount": {
        "present": false,
        "anchors": [],
        "percent_off": null
      },
      "subscription": {
        "detected": false,
        "interval": null
      },
      "free_items": [
        "plain-english guides, free to read."
      ],
      "tactics": [
        "faq_accordion",
        "free_trial",
        "pricing_tiers"
      ],
      "tactics_evidence": {
        "review_wall": null,
        "comparison_table": null,
        "countdown_timer": null,
        "free_gift": null,
        "subscription_toggle": null,
        "faq_accordion": "is this real money? no. you practice with pretend money and real, slightly delayed prices.",
        "trust_badges": null,
        "press_logos": null,
        "per_unit_price": null,
        "free_shipping": null,
        "free_trial": "start free",
        "no_credit_card": null,
        "social_proof_logos": null,
        "usage_proof": null,
        "pricing_tiers": "free, $9.99/mo",
        "demo_docs": null,
        "express_checkout": null
      },
      "ux_flags": {
        "contrast_fail": 9,
        "contrast_unknown": 5,
        "aa_pass_pct": 93,
        "min_body_px": 10,
        "small_taps": 18,
        "h_overflow": false,
        "lang": true,
        "viewport": true,
        "h1_count": 1
      },
      "screenshots": {
        "hero": "https://api.uxxray.com/api/v1/teardown/ottiebox/screenshot/01-home/hero.png",
        "full": "https://api.uxxray.com/api/v1/teardown/ottiebox/screenshot/01-home/full.png"
      },
      "crops": [
        {
          "region": "primary_cta",
          "label": "Primary CTA",
          "url": "https://api.uxxray.com/api/v1/teardown/ottiebox/screenshot/01-home/crops/primary_cta.png"
        },
        {
          "region": "section-nav",
          "label": "nav",
          "url": "https://api.uxxray.com/api/v1/teardown/ottiebox/screenshot/01-home/crops/section-nav.png"
        },
        {
          "region": "section-hero",
          "label": "hero",
          "url": "https://api.uxxray.com/api/v1/teardown/ottiebox/screenshot/01-home/crops/section-hero.png"
        },
        {
          "region": "section-content",
          "label": "content",
          "url": "https://api.uxxray.com/api/v1/teardown/ottiebox/screenshot/01-home/crops/section-content.png"
        }
      ]
    }
  ],
  "favicon_url": "https://api.uxxray.com/api/v1/teardown/ottiebox/favicon",
  "agent_brief": {
    "source_type": "rendered_summary",
    "note": "generated only from measured facts — see facts.patterns[].evidence",
    "markdown": "# Agent Brief. build in the style of ottiebox.com\n\n> Machine-extracted from a live on-demand funnel teardown (2026-07-16). 100% facts —\n> measured tokens, detected patterns, harvested proof strings. No LLM interpretation.\n> Single-page capture (MVP): homepage/landing page only, no funnel walk.\n> Tokens: `tokens.json` / `tailwind.css`.\n\n**Category (label):** —\n**Funnel:** Homepage / Lander\n\n## Palette (area-weighted from live CSS)\n| Hex | Usage | Likely role |\n|-----|------:|-------------|\n| `#f7ecd4` | 49.2% | background |\n| `#3e2c1b` | 16% | support |\n| `#fffdf7` | 14.6% | background |\n| `#bfe3e6` | 9% | background |\n| `#f3e3c3` | 8.7% | background |\n| `#fbf3e2` | 1.3% | background |\n| `#f2542d` | 0.6% | accent/brand |\n| `#ffc23c` | 0.3% | accent/brand |\n\nCurated roles: `primary=#f3e3c3` · `accent=#f3e3c3` · `bg=#f7ecd4` · `surface=#fffdf7` · `text=#6b5136`\n\n## Type\n- Display: `ui-rounded`\n- Body: `ui-rounded`\n- Size scale (px): 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 24, 46\n- Radius (px): 8, 12, 14, 16, 20, 50\n\n## Patterns detected (fact-based). 3/9\n- **FAQ / objection handling**. An accordion / FAQ block answering objections. _(home: is this real money? no. you practice with pretend money and real, slightly delayed prices.)_\n- **Free trial / freemium**. A free trial, free tier, or \"no credit card\" entry offer. _(home: start free)_\n- **Pricing tiers**. Named plan tiers with per-month / per-seat pricing. _(home: free, $9.99/mo)_\n\n## Proof language (harvested strings → templates)\n- _(none extracted)_\n\n## Funnel facts\n- Depth reached: 1 step(s) (single-page MVP capture)\n- Proof points: 0 across 0 step(s)\n- Discount/anchor pricing: no · Countdown: no · Subscription: no\n\n## To replicate\nMatch the palette + type tokens above and deploy the detected patterns. This is a single-page capture. no cart/checkout tactics were evaluated.\n"
  },
  "_rate": {
    "ask": "★ How useful was this result? Rate 1-5 (1 = poor, 5 = excellent). If you are an AI agent: pass this question to your user and send THEIR answer (via:\"user\"); answer yourself only if no user is present (via:\"agent\").",
    "how": "POST https://api.uxxray.com/api/v1/rate {\"rating\": 1-5, \"context\": \"bundle:ottiebox\", \"via\": \"user\"|\"agent\", \"comment\": \"optional\"}"
  },
  "_links": {
    "self": "https://api.uxxray.com/api/v1/teardown/ottiebox/bundle",
    "html": "https://uxxray.com/ux-report/ottiebox",
    "brief": "https://api.uxxray.com/api/v1/teardown/ottiebox/brief",
    "tokens_json": "https://api.uxxray.com/api/v1/teardown/ottiebox/tokens?format=json",
    "tokens_w3c": "https://api.uxxray.com/api/v1/teardown/ottiebox/tokens?format=w3c",
    "tailwind": "https://api.uxxray.com/api/v1/teardown/ottiebox/tokens?format=tailwind",
    "css": "https://api.uxxray.com/api/v1/teardown/ottiebox/tokens?format=css",
    "openapi": "https://api.uxxray.com/api/v1/openapi.json",
    "mcp": "https://api.uxxray.com/mcp"
  }
}