{
  "schemaVersion": "deck-intelligence.v1",
  "id": "019dd923-5eff-723e-9be9-2e5e050be174",
  "slug": "6OIWEv0xq82cdVfq4tWC",
  "title": "UNICORN PITCH DECK: Hopper raises $175 million to build a travel super app as startups hold out for a post-vaccine tourism boom",
  "subtitle": "Hopper",
  "author": "Hopper",
  "pageCount": 28,
  "kind": "pitchdeck",
  "orientation": "landscape",
  "aspectRatio": 1.782,
  "document": {
    "id": "019dd923-5eff-723e-9be9-2e5e050be174",
    "slug": "6OIWEv0xq82cdVfq4tWC",
    "title": "UNICORN PITCH DECK: Hopper raises $175 million to build a travel super app as startups hold out for a post-vaccine tourism boom",
    "rawTitle": "UNICORN PITCH DECK: Hopper raises $175 million to build a travel super app as startups hold out for a post-vaccine tourism boom",
    "authorId": "Pitchdecks",
    "authorName": "Hopper",
    "authorDisplay": "Hopper",
    "kind": {
      "slug": "pitchdeck",
      "label": "Pitch deck"
    },
    "sourceType": {
      "slug": "strategy_consulting",
      "label": "Strategy consulting"
    },
    "fileName": "Unicorn-6OIWEv0x.pdf",
    "sourceUrl": "https://www.businessinsider.com/unicorn-pitch-deck-travel-hopper-raises-175-million-series-g-2021-8",
    "sourceDate": "2021-08-19 00:00:00",
    "presentationDate": null,
    "ingestedAt": "2026-04-27 08:36:51.877+00",
    "status": "ready",
    "pageCount": 28,
    "orientation": "landscape",
    "aspectRatio": 1.782,
    "targetCompany": null,
    "targetTicker": null,
    "metadata": {
      "local_root": "/tmp/legacy-images/6OIWEv0xq82cdVfq4tWC",
      "origin_corpus": "consulting"
    }
  },
  "coverage": {
    "pageCount": 28,
    "pagesIndexed": 28,
    "pagesWithImages": 28,
    "pagesWithMetadata": 28,
    "imageCoveragePct": 100,
    "metadataCoveragePct": 100,
    "componentCount": 160,
    "chartCount": 7,
    "metricSlides": 0,
    "toolMatches": 12,
    "documentToolMatches": 0,
    "frameworkMatches": 7,
    "arcMatches": 1,
    "beatMatches": 4,
    "loopMatches": 2,
    "patternMatches": 0,
    "storymakersMatch": false,
    "scoreAvailable": false,
    "reviewAvailable": false,
    "activistThesisAvailable": false,
    "pitchdeckMetadataAvailable": true,
    "pitchdeckProfileAvailable": true
  },
  "blocks": [],
  "matches": {
    "arcs": [
      {
        "arc": {
          "name": "Problem-Agitate-Solution",
          "slug": "problem-agitate-solution",
          "status": "active",
          "bestFor": "Sales pitches, urgency-driven, competitive displacement",
          "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
        "evidence": "The deck presents a clear problem, agitates it, and offers a solution.",
        "isPrimary": true,
        "confidence": 0.8,
        "extraction": {
          "at": "2026-07-16 21:30:56.748283+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": "doc-narrative-v1"
        }
      }
    ],
    "beats": [
      {
        "to": 5,
        "arc": {
          "name": "Problem-Agitate-Solution",
          "slug": "problem-agitate-solution",
          "status": "active",
          "bestFor": "Sales pitches, urgency-driven, competitive displacement",
          "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "from": 1,
        "name": "Problem",
        "beatId": "ee3febcc-2a43-4d58-9973-33f70d28983d",
        "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
        "beatType": {
          "name": "Problem (Identify pain)",
          "slug": "problem-agitate-solution-problem-identify-pain",
          "status": "active",
          "canonId": "019dd9b8-0e78-74bb-b8f6-54348367a131",
          "version": 1,
          "description": null
        },
        "evidence": "The deck identifies the pain points in the current travel app landscape.",
        "position": 0,
        "isPrimaryArc": true,
        "parentBeatType": {
          "name": "Complication",
          "slug": "complication",
          "status": "active",
          "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
          "version": 1,
          "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
        },
        "alignedBlockIds": null,
        "matchConfidence": 0.8
      },
      {
        "to": 10,
        "arc": {
          "name": "Problem-Agitate-Solution",
          "slug": "problem-agitate-solution",
          "status": "active",
          "bestFor": "Sales pitches, urgency-driven, competitive displacement",
          "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "from": 6,
        "name": "Agitate",
        "beatId": "a7fe2aff-d5a8-4f2b-a64d-f7e97e111443",
        "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
        "beatType": {
          "name": "Agitate (Make it worse)",
          "slug": "problem-agitate-solution-agitate-make-it-worse",
          "status": "active",
          "canonId": "019dd9b8-0f5a-71dd-bae7-8fadb0d09456",
          "version": 1,
          "description": null
        },
        "evidence": "The deck highlights the challenges faced by current travel apps.",
        "position": 1,
        "isPrimaryArc": true,
        "parentBeatType": {
          "name": "Development",
          "slug": "development",
          "status": "active",
          "canonId": "019dd9b8-0332-7008-b3aa-11b0840a57b1",
          "version": 1,
          "description": "The middle stretch in arcs that have one. Often where length problems creep in."
        },
        "alignedBlockIds": null,
        "matchConfidence": 0.8
      },
      {
        "to": 20,
        "arc": {
          "name": "Problem-Agitate-Solution",
          "slug": "problem-agitate-solution",
          "status": "active",
          "bestFor": "Sales pitches, urgency-driven, competitive displacement",
          "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "from": 11,
        "name": "Solution",
        "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
        "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
        "beatType": {
          "name": "Solution (Provide relief)",
          "slug": "problem-agitate-solution-solution-provide-relief",
          "status": "active",
          "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
          "version": 1,
          "description": null
        },
        "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
        "position": 2,
        "isPrimaryArc": true,
        "parentBeatType": {
          "name": "Resolution",
          "slug": "resolution",
          "status": "active",
          "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
          "version": 1,
          "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
        },
        "alignedBlockIds": null,
        "matchConfidence": 0.8
      },
      {
        "to": 25,
        "arc": {
          "name": "Problem-Agitate-Solution",
          "slug": "problem-agitate-solution",
          "status": "active",
          "bestFor": "Sales pitches, urgency-driven, competitive displacement",
          "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "from": 21,
        "name": "Satisfaction",
        "beatId": "a352804f-fdb9-4eb4-aec1-b0d03c94c479",
        "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
        "beatType": {
          "name": "Satisfaction",
          "slug": "monroes-sequence-satisfaction",
          "status": "active",
          "canonId": "019dd9b8-16a5-73c8-a3ce-00850dc2cbd8",
          "version": 1,
          "description": null
        },
        "evidence": "The deck showcases Hopper's traction and growth.",
        "position": 3,
        "isPrimaryArc": true,
        "parentBeatType": {
          "name": "Turn",
          "slug": "turn",
          "status": "active",
          "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
          "version": 1,
          "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
        },
        "alignedBlockIds": null,
        "matchConfidence": 0.8
      }
    ],
    "loops": [
      {
        "to": 10,
        "from": 6,
        "loop": {
          "name": "27_cost_of_inaction",
          "slug": "27-cost-of-inaction",
          "status": "active",
          "bestFor": "Urgent budget requests, compliance, risk mitigation",
          "canonId": "019dd956-70d1-7395-a15b-857ba858b394",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "The Status Quo -> The Hidden Costs Accumulating -> The Future State of Inaction -> The Tipping Point",
          "description": "Quantify what happens if the audience does nothing",
          "familyLabel": null,
          "categoryName": "Urgency",
          "categorySlug": "urgency"
        },
        "matchId": "aed93783-90fc-48da-9af7-4a4fcb6edc5f",
        "evidence": "The deck highlights the risks of not investing in a travel super app.",
        "position": 0,
        "objective": "What if we don't invest in a travel super app?",
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:30:56.945266+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": "doc-narrative-v1"
        }
      },
      {
        "to": 15,
        "from": 11,
        "loop": {
          "name": "47_quick_win_big_bet",
          "slug": "47-quick-win-big-bet",
          "status": "active",
          "bestFor": "Transformation planning, 100-day plans, resource allocation",
          "canonId": "019dd956-790d-708d-983e-ef9bbc68f741",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "The Full List -> Quick Wins (Low effort, High impact) -> Big Bets (High effort, High impact) -> Sequenced Roadmap",
          "description": "Separate initiatives into immediate wins and longer-term strategic bets",
          "familyLabel": null,
          "categoryName": "Consulting Framework",
          "categorySlug": "consulting-framework"
        },
        "matchId": "fb084591-9a46-4893-9b31-97623aa313d3",
        "evidence": "The deck presents Hopper's diversified travel offering as a quick win.",
        "position": 1,
        "objective": "Can we quickly win market share with a diversified travel offering?",
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:30:56.985159+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": "doc-narrative-v1"
        }
      }
    ],
    "tools": [
      {
        "tool": {
          "name": "Slide recipe: Cover",
          "slug": "cover-slide",
          "status": "active",
          "bestFor": null,
          "canonId": "019df269-2a08-767d-9128-e7431e6fe8a3",
          "version": 1,
          "bodyDocId": "019df269-29e5-7738-b5fa-6892e5dc8e65",
          "description": "The first ten seconds. Build it deliberately.",
          "familyLabel": "slide-recipe",
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "designer",
        "layer": "slide",
        "agents": [
          "designer"
        ],
        "matchId": "d45c05c2-d67f-4eb7-a758-d83c5e4b2c9d",
        "evidence": "type: cover",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-17 03:23:55.927093+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 1,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Executive summary",
          "slug": "executive-summary",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd9e1-4b63-72d5-9734-da757d91ca61",
          "version": 1,
          "bodyDocId": null,
          "description": "A condensed view of the entire argument on a single slide / block.",
          "familyLabel": null,
          "categoryName": null,
          "categorySlug": null
        },
        "agent": null,
        "layer": "slide",
        "agents": null,
        "matchId": "7d074752-56af-478b-8cb5-db558c30a2a9",
        "evidence": "type: executive_summary",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.9,
        "extraction": {
          "at": "2026-07-17 03:23:56.173037+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 3,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": "common",
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Audience Definition",
          "slug": "audience-definition",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-7f2a-775d-aeee-ff099bcb7756",
          "version": 1,
          "bodyDocId": null,
          "description": "Six key questions: Who are they? What do they know? What do they believe? What do they care about? What do they fear? What decisions can they make?",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "849029b3-e88d-4806-aa7f-598cc7b76fc2",
        "evidence": "Hopper is primarily used by Gen Z and Millennial females, with 70% of our booking customers under the age of 35 and 25% under the age of 25.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 22:22:11.931492+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 4,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Audience Persona",
          "slug": "audience-persona",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-7fe3-74e9-88b8-be0bea34f219",
          "version": 1,
          "bodyDocId": null,
          "description": "Detailed fictional profile of typical audience member including goals, frustrations, and context",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "52105308-405d-411e-b53e-b31dcff51204",
        "evidence": "Hopper is primarily used by Gen Z and Millennial females, with 70% of our booking customers under the age of 35 and 25% under the age of 25.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 22:22:11.973746+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 4,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Action Titles",
          "slug": "action-titles",
          "status": "active",
          "bestFor": "Any decision-grade deliverable — strategy recommendation, board update, investment memo, M&A review, post-mortem — where the reader is being asked to agree, decide, or act and will skim the title bar at speed.",
          "canonId": "019dd956-ac70-700b-a608-ba58e78f5dcc",
          "version": 1,
          "bodyDocId": "816dad3c-9983-41c1-a86e-978ebd582841",
          "description": "The McKinsey-bred discipline of writing every slide title as a complete declarative sentence with a verb and an insight, not a topic label. Each title is a sub-claim that ladders up to the deck's governing thought; read in sequence, the titles reconstruct the executive summary.",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Architect",
        "layer": "slide",
        "agents": [
          "Architect"
        ],
        "matchId": "76c7037e-9954-460e-8bc9-bf247f805cf8",
        "evidence": "We are building a travel marketplace that saves customers money, always.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": "Any decision-grade deliverable — strategy recommendation, board update, investment memo, M&A review, post-mortem — where the reader is being asked to agree, decide, or act and will skim the title bar at speed.",
        "confidence": 0.9,
        "extraction": {
          "at": "2026-07-16 22:22:12.057972+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": "Solves two failure modes at once. (1) The buried claim: action titles place the conclusion on the page before any analysis is read, so a busy reader doesn't reverse-engineer it from the chart. (2) The spineless deck: because each title is a claim, slides have to ladder up to the governing thought; logical gaps become visible as topic-shaped titles in a sequence that no longer reads as a story.",
        "antipattern": "Topic labels disguised as titles — Volume by quarter, Key findings, Pricing strategy, Margins have been impacted. No verb, or a passive verb with no agent, or a fact (Revenue grew 12%) without the so-what. Also: titles that overreach the chart's evidence, multi-claim X-grew-but-Y-fell welded titles, and mechanical repetition of the same X-drove-Y template across the deck.",
        "cardinality": null,
        "narrativePurpose": "Forces the deck to carry its argument in the title bar so a senior reader can extract the recommendation without opening a single slide; converts a binder of topics into a navigable pyramid where every slide is a node defending the apex."
      },
      {
        "tool": {
          "name": "Before-After-Bridge",
          "slug": "before-after-bridge",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-8604-7188-883f-42370288ad05",
          "version": 1,
          "bodyDocId": null,
          "description": "Narrative structure: Paint the before, show the after, explain the bridge",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "d1df3502-74de-4471-b618-17ee76611b99",
        "evidence": "The COVID-19 Shutdown was very impactful, but we have since recovered and are now +180% higher than our pre-pandemic high point from Q1 2020.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.8,
        "extraction": {
          "at": "2026-07-16 22:22:12.144286+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 6,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Audience Definition",
          "slug": "audience-definition",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-7f2a-775d-aeee-ff099bcb7756",
          "version": 1,
          "bodyDocId": null,
          "description": "Six key questions: Who are they? What do they know? What do they believe? What do they care about? What do they fear? What decisions can they make?",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "4fd4cae4-e5e0-4a02-a99a-d8d6c9c2581d",
        "evidence": "The slide presents a specific product feature and its benefits, indicating a clear understanding of the target audience's needs.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 22:22:06.07326+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 16,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Before-After-Bridge",
          "slug": "before-after-bridge",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-8604-7188-883f-42370288ad05",
          "version": 1,
          "bodyDocId": null,
          "description": "Narrative structure: Paint the before, show the after, explain the bridge",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "cb3b1275-0529-4b08-8252-1e4af459b2ac",
        "evidence": "The slide describes a product that helps users 'lock in' a price, implying a before-after scenario.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.8,
        "extraction": {
          "at": "2026-07-16 22:22:06.153249+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 17,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Value Proposition Canvas",
          "slug": "value-proposition-canvas",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-85a9-713f-8a1c-b6e5af5cc6cd",
          "version": 1,
          "bodyDocId": null,
          "description": "Mapping customer jobs/pains/gains to your value proposition",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "90b3a2ac-31da-450d-ac4a-5ba923b7c51b",
        "evidence": "The slide presents a product with specific benefits, such as 'refundability and flexibility', which are key components of a value proposition.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.6,
        "extraction": {
          "at": "2026-07-16 22:22:06.235189+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 18,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Problem-Agitate-Solve (PAS)",
          "slug": "problem-agitate-solve-pas",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-869f-7564-8d42-de54ed29ab90",
          "version": 1,
          "bodyDocId": null,
          "description": "Identify problem, agitate the pain, present the solution",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "d189c6ab-0b2a-4ddd-bb45-5c834cf9da58",
        "evidence": "The slide describes a problem (day-of-travel disruptions) and offers a solution (Disruption Protection), which is a key component of the PAS framework.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 22:22:06.313323+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 19,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Flywheel",
          "slug": "flywheel",
          "status": "active",
          "bestFor": null,
          "canonId": "019de52d-1ad8-75ab-9027-a40365590152",
          "version": 1,
          "bodyDocId": null,
          "description": null,
          "familyLabel": null,
          "categoryName": null,
          "categorySlug": null
        },
        "agent": null,
        "layer": "slide",
        "agents": null,
        "matchId": "7df4de48-f4f1-4071-8b65-dc67d8214094",
        "evidence": "The slide describes a growth loop where fintech spend leads to lower prices, higher conversion rates, and improved retention, which is a key component of a flywheel.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.8,
        "extraction": {
          "at": "2026-07-16 22:22:06.433219+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 21,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Storytelling: the closing ask",
          "slug": "closing-ask",
          "status": "active",
          "bestFor": null,
          "canonId": "019df269-24e0-70ab-8dd9-983832c1c665",
          "version": 1,
          "bodyDocId": "019df269-24bc-7554-b88d-245127606b8d",
          "description": "The single most important slide in the deck — after the cover. The final",
          "familyLabel": "narrative-block",
          "categoryName": "Narrative & Transformation",
          "categorySlug": "narrative-transformation"
        },
        "agent": "storyteller",
        "layer": "slide",
        "agents": [
          "storyteller"
        ],
        "matchId": "b70aeffa-972c-4f3b-bf49-0fe3132bebce",
        "evidence": "type: closing_ask",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.9,
        "extraction": {
          "at": "2026-07-16 22:22:01.02121+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 28,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      }
    ],
    "frameworks": [
      {
        "matchId": "431ad527-bc74-4466-930b-b6014396b112",
        "evidence": "The slide segments the user base by age and gender to demonstrate market value.",
        "framework": null,
        "confidence": 0.9,
        "extraction": {
          "at": "2026-05-02 16:42:51.215+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 8,
        "frameworkName": "audience-segmentation"
      },
      {
        "matchId": "8b7d0fe0-3981-41e1-a698-b36749213b64",
        "evidence": "Contrasting Hopper's acquisition strategy against industry incumbents.",
        "framework": null,
        "confidence": 0.9,
        "extraction": {
          "at": "2026-05-02 16:42:52.384+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 9,
        "frameworkName": "comparison_frame"
      },
      {
        "matchId": "2a4afc3d-4673-4cac-9628-8ba03bec6a39",
        "evidence": "Direct comparison of company performance against industry peers to establish competitive advantage.",
        "framework": null,
        "confidence": 0.9,
        "extraction": {
          "at": "2026-05-02 16:42:51.664+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 10,
        "frameworkName": "comparison-frame"
      },
      {
        "matchId": "8a0f0089-f4af-439b-ad7b-b13ee5488674",
        "evidence": "Explains the customer pain point (anxiety) and the solution (Price Freeze) to address it.",
        "framework": null,
        "confidence": 0.9,
        "extraction": {
          "at": "2026-05-02 16:42:54.214+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 17,
        "frameworkName": "value-proposition"
      },
      {
        "matchId": "af0afcf1-a85d-444e-986d-af2f6144387b",
        "evidence": "The text explicitly mentions 'fuels our growth loop' and describes a self-reinforcing cycle of lower prices and higher retention.",
        "framework": null,
        "confidence": 1,
        "extraction": {
          "at": "2026-05-02 16:42:54.505+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 21,
        "frameworkName": "flywheel"
      },
      {
        "matchId": "e0a7caa2-8b97-4e45-bcf4-48d0884be464",
        "evidence": "The chart tracks specific user groups (2016-2019 cohorts) over time to measure retention.",
        "framework": null,
        "confidence": 0.95,
        "extraction": {
          "at": "2026-05-02 16:42:59.773+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 23,
        "frameworkName": "cohort-analysis"
      },
      {
        "matchId": "dd7479e8-cfdc-4fc8-af9f-097748f4ea02",
        "evidence": "Chronological progression of company milestones",
        "framework": null,
        "confidence": 1,
        "extraction": {
          "at": "2026-05-02 16:42:57.82+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 24,
        "frameworkName": "timeline"
      }
    ],
    "patterns": []
  },
  "storymakers": null,
  "score": null,
  "review": null,
  "activistThesis": null,
  "pitchdeck": {
    "metadata": {
      "author": "Tasmin Lockwood",
      "fireId": "6OIWEv0xq82cdVfq4tWC",
      "sector": "fintech",
      "deckKind": "fundraise",
      "roundRaw": "Series G",
      "amountRaw": "$175 million",
      "amountUsd": "175000000",
      "scrapedAt": "2026-04-27 08:36:51.877+00",
      "sectorRaw": "fintech",
      "sourceUrl": "https://www.businessinsider.com/unicorn-pitch-deck-travel-hopper-raises-175-million-series-g-2021-8",
      "deckKindAt": "2026-04-28 07:19:06+00",
      "highlights": "Hopper has raised a $175 million Series G at a valuation of $3.5 billion. Founder and CEO Frederic Lalonde wants to build an Amazon-like \"super app\" for the travel industry. The travel fintech shared its 28-slide pitch deck with Insider. See more stories on Insider's business page.",
      "slideCount": 28,
      "companyName": "Unicorn",
      "description": "Hopper has raised a $175 million Series G at a valuation of $3.5 billion. Founder and CEO Frederic Lalonde wants to build an Amazon-like \"super app\" for the travel industry. The travel fintech shared its 28-slide pitch deck with Insider. See more stories on Insider's business page.  Travel fintech Hopper has raised a $175 million Series G at a $3.75 billion valuation.  The Canadian startup;; founded in 2007;; helps customers save money through AI-driven price comparisons and predictions. It does this across a range of options including air;; rail;; and accommodation.  Hopper also offers add-ons for travelers who want to freeze a price or rebook without extra costs. The company told Insider these services represent 50% of revenue as travellers are keen to pay for flexible bookings.  The travel company said it carries the financial risk when prices fluctuate and covers the costs;; which is why it identifies as a fintech. Hopper Cloud;; a newly launched enterprise offering;; lets companies sell these features directly to their customers.   The round was led by GPI Capital;; which has backed Patreon;; Zomato;; and Airbnb. The Series G raise brings the company's total raised to nearly $600 million;; and comes after a $170 million Series F in March;; which pushed Hopper's valuation over $1 billion for the first time.  Founder and chief executive Frederic Lalonde;; a former Expedia VP;; wants to build a \"super app\" for travel.  Travel ground to a halt during the pandemic;; and according to a UN World Tourism Organization tracker;; international arrivals between January and May 2021 were down 85% on the same period in 2019.  Though the pandemic slowed funding into travel startups through 2020;; Crunchbase reported that deals are beginning to tick back up.  Hopper said it is seeing bookings spike due to pent-up demand;; but that 85% of its business relates to domestic tourism. The company said it had its busiest day on record on Tuesday;; August 17;; but could not disclose figures to Insider.  The fresh funds will fuel Hopper's ambition to establish a presence in \"every major\" geographical market and industry vertical;; including home and activities.   It starts with an expansion into Europe and Asia by the end of the year.  The app's user base currently centres around North America;; where vaccination against coronavirus has slowed despite concern over new variants. Lalonde expects the Delta variant will have \"little impact\" on travel demand;; despite last year's widespread disruption.  \"I think we're going to see a slowdown in the next couple of weeks;; but it's all going to get made up in the back half of the year;;\" he told Insider. \"So;; the supercycle of demand that started at the beginning of this year is going to continue.\"  Lalonde said he is not chasing markets with higher vaccination rates;; such as Europe;; where travel rules have also relaxed;; but is building Hopper according to a five- to 10-year plan.   \"A lot of things were unknown;; but we made a deliberate decision not to build for a pandemic;;\" he said. \"You just can't build a successful travel company for a pandemic.\"  The company did press pause on some projects such as its corporate travel product;; instead pivoting resources to car rental services.   Hopper has let go of all offices except for its headquarters in Montreal;; and has continued to expand despite layoffs. The company said it started 2020 with 362 employees and now has roughly 1;;200 employees;; with many of those who were made redundant returning.  There are plans to grow the headcount by a further 500;; of which 300 will be in customer service.   The company is also looking to hire \"exceptional founders\" through acquisitions;; a strategy Lalonde said is responsible for Hopper's recent growth;; as both its car rental and cloud services were purpose-built by acquired teams.  Check out Hopper's pitch deck here:",
      "displayName": "UNICORN",
      "publishDate": "2021-08-19",
      "roundSeries": "series_e_plus",
      "articleTitle": "UNICORN PITCH DECK: Hopper raises $175 million to build a travel super app as startups hold out for a post-vaccine tourism boom",
      "leadInvestors": null,
      "deckKindSignal": "raises",
      "metaExtractedAt": "2026-04-28 07:16:02+00"
    },
    "profile": {
      "scores": {
        "yc": 0.4,
        "a16z": 0.555,
        "docsend": 0.2289,
        "hoffman": 0.2758,
        "mcclure": 0.42,
        "sequoia": 0.2289,
        "kawasaki": 0.35,
        "nextview": 0.6717,
        "slidebean": 0.3718,
        "founder_institute": 0.42
      },
      "nSlides": 28,
      "sequence": [
        "cover",
        "team_bio",
        "traction",
        "traction",
        "solution",
        "traction",
        "traction",
        "segmentation",
        "unfair_advantage",
        "traction",
        "solution",
        "solution",
        "solution",
        "traction",
        "solution",
        "unfair_advantage",
        "solution",
        "solution",
        "solution",
        "traction",
        "business_model",
        "traction",
        "traction",
        "roadmap",
        "solution",
        "market_sizing",
        "go_to_market",
        "closing_ask"
      ],
      "breakdown": {
        "yc": {
          "order": 0.5,
          "signal": 0,
          "jaccard": 0.5
        },
        "a16z": {
          "order": 0.6,
          "signal": 0,
          "jaccard": 0.75
        },
        "docsend": {
          "order": 0.2727,
          "signal": 0,
          "jaccard": 0.2941
        },
        "hoffman": {
          "order": 0.3636,
          "signal": 0,
          "jaccard": 0.3333
        },
        "mcclure": {
          "order": 0.4,
          "signal": 0.05,
          "jaccard": 0.5
        },
        "sequoia": {
          "order": 0.2727,
          "signal": 0,
          "jaccard": 0.2941
        },
        "kawasaki": {
          "order": 0.5,
          "signal": 0,
          "jaccard": 0.4
        },
        "nextview": {
          "order": 0.6667,
          "signal": 0.18,
          "jaccard": 0.5833
        },
        "slidebean": {
          "order": 0.4615,
          "signal": 0,
          "jaccard": 0.4667
        },
        "founder_institute": {
          "order": 0.4,
          "signal": 0.05,
          "jaccard": 0.5
        }
      },
      "matchedAt": "2026-04-27 21:51:54+00",
      "noveltyScore": 0.5783,
      "primaryScore": 0.6717,
      "noveltySignals": [
        "duplicated ≥3×: traction, solution",
        "non-canonical types: segmentation",
        "unusual length: 28 slides"
      ],
      "primaryProfile": "nextview",
      "secondaryScore": 0.555,
      "secondaryProfile": "a16z"
    }
  },
  "slides": [
    {
      "page": 1,
      "type": "setup",
      "title": "The slide features the Hopper logo and brand mascots on a blue and white background, with small Android and Apple icons in the bottom right corner.",
      "function": "front_matter",
      "imagePath": "https://imgproxy.kitesheet.com/FJGPfQNMFnAfj7bONWaoHoxsSz2aExrWa816sEpYbb8/rs:fit:1200:1200:0/q:82/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy82T0lXRXYweHE4MmNkVmZxNHRXQy9wMDAxLmpwZw",
      "rawType": "cover",
      "block": null,
      "metadata": {
        "slideType": "cover",
        "slideTypeCanon": {
          "name": "Cover",
          "slug": "cover",
          "status": "active",
          "canonId": "019de52d-05f2-729d-9f93-e0504f0a2410",
          "version": 1,
          "description": null
        },
        "function": "front_matter",
        "functionCanon": {
          "name": "Front matter",
          "slug": "front_matter",
          "status": "active",
          "canonId": "019de52d-133d-73f0-9e26-201eda96b098",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 7,
        "componentCount": 3,
        "textChars": 6,
        "nDataPoints": 0,
        "notes": "The slide features the Hopper logo and brand mascots on a blue and white background, with small Android and Apple icons in the bottom right corner.",
        "elementsJson": [
          "photo"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:49.502+00",
          "seconds": 2.024,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/1",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-1",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.05,
            "w": 0.05,
            "x": 0.92,
            "y": 0.91
          },
          "kind": "image",
          "text": null,
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Icon grid",
              "slug": "icon-grid",
              "status": "active",
              "canonId": "019de52c-fdfe-749d-9990-1db465a3eed4",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "icon-grid",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:49.502+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "bfc04cc8-5473-4e12-8ad7-78256bb20071",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.65,
            "w": 0.385,
            "x": 0.585,
            "y": 0.278
          },
          "kind": "image",
          "text": null,
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Illustration",
              "slug": "illustration",
              "status": "active",
              "canonId": "019de52c-fe76-7772-a5ac-c0b7294d7615",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "illustration",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:49.502+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ad3b57f9-afba-4d5f-a8f1-7b1cbea46f2b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.33,
            "w": 0.39,
            "x": 0.11,
            "y": 0.33
          },
          "kind": "image",
          "text": "hopper",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Logo",
              "slug": "logo",
              "status": "active",
              "canonId": "019de52c-fdaf-743d-94c4-d7c6a0e55302",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "logo",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:49.502+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ca195194-d40e-47e6-849c-73792421bea1",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Slide recipe: Cover",
            "slug": "cover-slide",
            "status": "active",
            "bestFor": null,
            "canonId": "019df269-2a08-767d-9128-e7431e6fe8a3",
            "version": 1,
            "bodyDocId": "019df269-29e5-7738-b5fa-6892e5dc8e65",
            "description": "The first ten seconds. Build it deliberately.",
            "familyLabel": "slide-recipe",
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "designer",
          "layer": "slide",
          "agents": [
            "designer"
          ],
          "matchId": "d45c05c2-d67f-4eb7-a758-d83c5e4b2c9d",
          "evidence": "type: cover",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-17 03:23:55.927093+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 1,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 5,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 1,
          "name": "Problem",
          "beatId": "ee3febcc-2a43-4d58-9973-33f70d28983d",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Problem (Identify pain)",
            "slug": "problem-agitate-solution-problem-identify-pain",
            "status": "active",
            "canonId": "019dd9b8-0e78-74bb-b8f6-54348367a131",
            "version": 1,
            "description": null
          },
          "evidence": "The deck identifies the pain points in the current travel app landscape.",
          "position": 0,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Complication",
            "slug": "complication",
            "status": "active",
            "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
            "version": 1,
            "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "thumbSrc": "https://imgproxy.kitesheet.com/A4-VOiIZUSnrvDT1NmIyVcrIHzmAi9giYif0ozPat8o/rs:fit:480:480:0/q:78/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy82T0lXRXYweHE4MmNkVmZxNHRXQy9wMDAxLmpwZw",
      "imagePathAlt": "https://imgproxy.kitesheet.com/fT0cJ0u28D15n-hcNHC-r2v7nuD_Z-CKk546JiY5hbY/rs:fit:1200:1200:0/q:82/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy82T0lXRXYweHE4MmNkVmZxNHRXQy9wMDAxLnBuZw",
      "thumbSrcAlt": "https://imgproxy.kitesheet.com/sA9OzkLZ7o2u83GUrdAJifOO4wl2xcJxKSnG0Ne9edE/rs:fit:480:480:0/q:78/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy82T0lXRXYweHE4MmNkVmZxNHRXQy9wMDAxLnBuZw"
    },
    {
      "page": 2,
      "type": "setup",
      "title": "The slide uses a two-row layout: top row for executives (blue circles) and bottom row for board members (green circles).",
      "function": "other",
      "rawType": "team_bio",
      "block": null,
      "metadata": {
        "slideType": "team_bio",
        "slideTypeCanon": {
          "name": "Team bio",
          "slug": "team_bio",
          "status": "active",
          "canonId": "019de52d-0a7d-7394-ae5b-037478e71f1e",
          "version": 1,
          "description": null
        },
        "function": "other",
        "functionCanon": {
          "name": "Other (fallback)",
          "slug": "other",
          "status": "active",
          "canonId": "019de52d-15e1-75bc-99dc-07732380e2ce",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 61,
        "componentCount": 13,
        "textChars": 195,
        "nDataPoints": 0,
        "notes": "The slide uses a two-row layout: top row for executives (blue circles) and bottom row for board members (green circles).",
        "elementsJson": [
          "headshot",
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:51.352+00",
          "seconds": 3.831,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/2",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-2",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.447,
            "y": 0.295
          },
          "kind": "image",
          "text": "Daniel Calderon",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1646ba09-ccbe-442f-ac44-09c98057f63c",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.607,
            "y": 0.295
          },
          "kind": "image",
          "text": "Ella Schreiber",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2b46ab43-185f-42f2-948d-351c915ad7db",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.544,
            "y": 0.615
          },
          "kind": "image",
          "text": "Sophie Forest",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "34218fcd-98b1-437f-b317-f4679be75f43",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.767,
            "y": 0.295
          },
          "kind": "image",
          "text": "Brian Carroll",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "38756465-b581-4bd2-87fd-cd93fd15e9fa",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.224,
            "y": 0.615
          },
          "kind": "image",
          "text": "Laurence Tosi",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "437c524c-71c3-4b43-bfdc-30bde403453d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.127,
            "y": 0.295
          },
          "kind": "image",
          "text": "Frederic Lalonde",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "52486c55-2b13-4cbf-ab06-0ef5c63399e7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.864,
            "y": 0.615
          },
          "kind": "image",
          "text": "Stephen Crawford",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "68139d02-75e8-40b5-9152-c84612c11e3b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.384,
            "y": 0.615
          },
          "kind": "image",
          "text": "Damien Steel",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6e593e25-e0ca-4a52-90ee-aaf7f4842517",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.704,
            "y": 0.615
          },
          "kind": "image",
          "text": "Jeff Fagnan",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "9b15f454-e69c-495c-a982-3af2f0b435a8",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.287,
            "y": 0.295
          },
          "kind": "image",
          "text": "Dakota Smith",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "9e063775-5b8f-493d-ac34-ba6fc1571569",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.064,
            "y": 0.615
          },
          "kind": "image",
          "text": "Patrick Pichette",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Headshot",
              "slug": "headshot",
              "status": "active",
              "canonId": "019de52c-fd5f-765c-9282-38b54f61bbbf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "eb1e57e9-5729-4819-9d56-da28c0858f13",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.04,
            "w": 0.95,
            "x": 0.064,
            "y": 0.875
          },
          "kind": "image",
          "text": "Associated company logos",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Logo grid",
              "slug": "logo-grid",
              "status": "active",
              "canonId": "019de52c-fdd7-7409-93e5-81280a8ca215",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "logo-grid",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "47bd75b4-4735-4c1d-9e71-dea314ee47c9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.045,
            "w": 0.335,
            "x": 0.088,
            "y": 0.135
          },
          "kind": "title",
          "text": "Meet the Hopper Team",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "035f8319-b0bd-4cee-9366-020819f04402",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 5,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 1,
          "name": "Problem",
          "beatId": "ee3febcc-2a43-4d58-9973-33f70d28983d",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Problem (Identify pain)",
            "slug": "problem-agitate-solution-problem-identify-pain",
            "status": "active",
            "canonId": "019dd9b8-0e78-74bb-b8f6-54348367a131",
            "version": 1,
            "description": null
          },
          "evidence": "The deck identifies the pain points in the current travel app landscape.",
          "position": 0,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Complication",
            "slug": "complication",
            "status": "active",
            "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
            "version": 1,
            "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 3,
      "type": "setup",
      "title": "Includes a logo grid of key investors at the bottom.",
      "function": "summarize",
      "rawType": "executive_summary",
      "block": null,
      "metadata": {
        "slideType": "executive_summary",
        "slideTypeCanon": {
          "name": "Executive summary",
          "slug": "executive_summary",
          "status": "active",
          "canonId": "019de52d-06be-73ff-81b3-f99fe7f0025e",
          "version": 1,
          "description": null
        },
        "function": "summarize",
        "functionCanon": {
          "name": "Summarize",
          "slug": "summarize",
          "status": "active",
          "canonId": "019de52d-1541-704f-b86f-bf7b75056373",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 67,
        "componentCount": 6,
        "textChars": 498,
        "nDataPoints": 6,
        "notes": "Includes a logo grid of key investors at the bottom.",
        "elementsJson": [
          "headline_text",
          "paragraph",
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:50.603+00",
          "seconds": 2.8,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/3",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-3",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Hopper sells $1.5B in travel and travel related financial services each year.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:28+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b68-c9224cb88e07",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.1,
            "x": 0.837,
            "y": 0.088
          },
          "kind": "image",
          "text": "Hopper logo",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Logo",
              "slug": "logo",
              "status": "active",
              "canonId": "019de52c-fdaf-743d-94c4-d7c6a0e55302",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "logo",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.603+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b5707210-914a-4699-a220-f382f501789e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.55,
            "x": 0.08,
            "y": 0.82
          },
          "kind": "image",
          "text": "Investor logos: CDPQ, Goldman Sachs, Capital One, OMERS Ventures",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Logo grid",
              "slug": "logo-grid",
              "status": "active",
              "canonId": "019de52c-fdd7-7409-93e5-81280a8ca215",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "logo-grid",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.603+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b1343d4d-612c-4e06-aa06-b726ab3b69a0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.45,
            "w": 0.85,
            "x": 0.08,
            "y": 0.25
          },
          "kind": "list",
          "text": "Largest travel app in North America with over 60 million downloads. Hopper sells $1.5B in travel and travel related financial services each year. Hopper has global travel inventory with over 300 airlines, 2 million hotels and 100 car rental companies. Hopper has raised nearly $600 million USD of private capital.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.603+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c475e125-5f76-4a5a-ac3e-c22dd9a442f2",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "downloads: 60 million",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:28+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b68-ce21eacbdff1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.25,
            "x": 0.08,
            "y": 0.13
          },
          "kind": "title",
          "text": "About Hopper",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.603+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d0c36be4-0fee-40f7-8b88-9d7b2479e3be",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Executive summary",
            "slug": "executive-summary",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd9e1-4b63-72d5-9734-da757d91ca61",
            "version": 1,
            "bodyDocId": null,
            "description": "A condensed view of the entire argument on a single slide / block.",
            "familyLabel": null,
            "categoryName": null,
            "categorySlug": null
          },
          "agent": null,
          "layer": "slide",
          "agents": null,
          "matchId": "7d074752-56af-478b-8cb5-db558c30a2a9",
          "evidence": "type: executive_summary",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.9,
          "extraction": {
            "at": "2026-07-17 03:23:56.173037+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 3,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": "common",
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 5,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 1,
          "name": "Problem",
          "beatId": "ee3febcc-2a43-4d58-9973-33f70d28983d",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Problem (Identify pain)",
            "slug": "problem-agitate-solution-problem-identify-pain",
            "status": "active",
            "canonId": "019dd9b8-0e78-74bb-b8f6-54348367a131",
            "version": 1,
            "description": null
          },
          "evidence": "The deck identifies the pain points in the current travel app landscape.",
          "position": 0,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Complication",
            "slug": "complication",
            "status": "active",
            "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
            "version": 1,
            "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 4,
      "type": "evidence",
      "title": "The slide uses a screenshot of an app store ranking list to provide social proof of Hopper's market position.",
      "function": "show_traction",
      "rawType": "traction",
      "block": null,
      "metadata": {
        "slideType": "traction",
        "slideTypeCanon": {
          "name": "Traction",
          "slug": "traction",
          "status": "active",
          "canonId": "019de52d-0edd-72ab-820f-3ebc71a9c542",
          "version": 1,
          "description": null
        },
        "function": "show_traction",
        "functionCanon": {
          "name": "Show traction",
          "slug": "show_traction",
          "status": "active",
          "canonId": "019de52d-16a8-756a-9b38-a7d35420561d",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 64,
        "componentCount": 6,
        "textChars": 449,
        "nDataPoints": 4,
        "notes": "The slide uses a screenshot of an app store ranking list to provide social proof of Hopper's market position.",
        "elementsJson": [
          "screenshot",
          "big_number",
          "bullet_list"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:50.949+00",
          "seconds": 3.122,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/4",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-4",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "We get more installs on a daily basis than our competitors and we don't pay for 60% of them.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:28+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b69-210f5ab09af8",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.8,
            "w": 0.37,
            "x": 0.064,
            "y": 0.1
          },
          "kind": "image",
          "text": "App store ranking list showing Hopper at rank 4",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Screenshot",
              "slug": "screenshot",
              "status": "active",
              "canonId": "019de52c-fd87-7509-8391-3d79fb339379",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "screenshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "84da7812-0dba-45f8-849f-d9abe7d53bfc",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.4,
            "x": 0.538,
            "y": 0.68
          },
          "kind": "list",
          "text": "Less Marketing: Our largest competitors outspend us $100 to $1 in digital marketing but their networks fail in the app ecosystem.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a96177af-e8dc-44f6-aba0-d6019a936f32",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.4,
            "x": 0.538,
            "y": 0.43
          },
          "kind": "list",
          "text": "60% Organic: We get more installs on a daily basis than our competitors and we don't pay for 60% of them.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "eac0e496-af04-43ec-9962-aa8ee8f1ebd4",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Monthly new installs: 2M+",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:28+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b69-252a55ca1ecb",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.12,
            "w": 0.4,
            "x": 0.538,
            "y": 0.138
          },
          "kind": "title",
          "text": "60M+ Installs Lifetime - 2M+ New Installs per Month",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f0446285-c299-402f-a1ed-4855c4df6668",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Audience Definition",
            "slug": "audience-definition",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-7f2a-775d-aeee-ff099bcb7756",
            "version": 1,
            "bodyDocId": null,
            "description": "Six key questions: Who are they? What do they know? What do they believe? What do they care about? What do they fear? What decisions can they make?",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "849029b3-e88d-4806-aa7f-598cc7b76fc2",
          "evidence": "Hopper is primarily used by Gen Z and Millennial females, with 70% of our booking customers under the age of 35 and 25% under the age of 25.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 22:22:11.931492+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 4,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Audience Persona",
            "slug": "audience-persona",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-7fe3-74e9-88b8-be0bea34f219",
            "version": 1,
            "bodyDocId": null,
            "description": "Detailed fictional profile of typical audience member including goals, frustrations, and context",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "52105308-405d-411e-b53e-b31dcff51204",
          "evidence": "Hopper is primarily used by Gen Z and Millennial females, with 70% of our booking customers under the age of 35 and 25% under the age of 25.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 22:22:11.973746+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 4,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 5,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 1,
          "name": "Problem",
          "beatId": "ee3febcc-2a43-4d58-9973-33f70d28983d",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Problem (Identify pain)",
            "slug": "problem-agitate-solution-problem-identify-pain",
            "status": "active",
            "canonId": "019dd9b8-0e78-74bb-b8f6-54348367a131",
            "version": 1,
            "description": null
          },
          "evidence": "The deck identifies the pain points in the current travel app landscape.",
          "position": 0,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Complication",
            "slug": "complication",
            "status": "active",
            "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
            "version": 1,
            "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 5,
      "type": "setup",
      "function": "inspire_vision",
      "rawType": "mission",
      "block": null,
      "metadata": {
        "slideType": "mission",
        "slideTypeCanon": {
          "name": "Mission",
          "slug": "mission",
          "status": "active",
          "canonId": "019de52d-0fce-7496-b34c-18fd6a6e3310",
          "version": 1,
          "description": null
        },
        "function": "inspire_vision",
        "functionCanon": {
          "name": "Inspire vision",
          "slug": "inspire_vision",
          "status": "active",
          "canonId": "019de52d-16d0-7756-83de-376eeac6fa40",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 38,
        "componentCount": 4,
        "textChars": 394,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "headline_text",
          "paragraph",
          "other"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:50.281+00",
          "seconds": 2.28,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/5",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-5",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Our proprietary Fintech offerings create unique value for customers and generate high margins for Hopper that we then use to lower the price of traveling itself.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:29+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b69-5781a02d6c5d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.8,
            "w": 0.3,
            "x": 0.05,
            "y": 0.1
          },
          "kind": "image",
          "text": null,
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Illustration",
              "slug": "illustration",
              "status": "active",
              "canonId": "019de52c-fe76-7772-a5ac-c0b7294d7615",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "illustration",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.281+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "53b9bc12-06fd-4a9a-8f36-55f389bc0f44",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.55,
            "x": 0.38,
            "y": 0.45
          },
          "kind": "paragraph",
          "text": "Our proprietary Fintech offerings create unique value for customers and generate high margins for Hopper that we then use to lower the price of traveling itself.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.281+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "14f3a3fb-9947-42f8-8aa3-ca72a1e63880",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.55,
            "x": 0.38,
            "y": 0.18
          },
          "kind": "title",
          "text": "We are building a travel marketplace that saves customers money, always.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Action title",
              "slug": "action-title",
              "status": "active",
              "canonId": "019de52c-fb31-734c-a0f5-a3935b73135d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "action-title",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.281+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "bc2e3e06-9eed-409a-ba82-4690d6b7d5c1",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Action Titles",
            "slug": "action-titles",
            "status": "active",
            "bestFor": "Any decision-grade deliverable — strategy recommendation, board update, investment memo, M&A review, post-mortem — where the reader is being asked to agree, decide, or act and will skim the title bar at speed.",
            "canonId": "019dd956-ac70-700b-a608-ba58e78f5dcc",
            "version": 1,
            "bodyDocId": "816dad3c-9983-41c1-a86e-978ebd582841",
            "description": "The McKinsey-bred discipline of writing every slide title as a complete declarative sentence with a verb and an insight, not a topic label. Each title is a sub-claim that ladders up to the deck's governing thought; read in sequence, the titles reconstruct the executive summary.",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Architect",
          "layer": "slide",
          "agents": [
            "Architect"
          ],
          "matchId": "76c7037e-9954-460e-8bc9-bf247f805cf8",
          "evidence": "We are building a travel marketplace that saves customers money, always.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": "Any decision-grade deliverable — strategy recommendation, board update, investment memo, M&A review, post-mortem — where the reader is being asked to agree, decide, or act and will skim the title bar at speed.",
          "confidence": 0.9,
          "extraction": {
            "at": "2026-07-16 22:22:12.057972+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": "Solves two failure modes at once. (1) The buried claim: action titles place the conclusion on the page before any analysis is read, so a busy reader doesn't reverse-engineer it from the chart. (2) The spineless deck: because each title is a claim, slides have to ladder up to the governing thought; logical gaps become visible as topic-shaped titles in a sequence that no longer reads as a story.",
          "antipattern": "Topic labels disguised as titles — Volume by quarter, Key findings, Pricing strategy, Margins have been impacted. No verb, or a passive verb with no agent, or a fact (Revenue grew 12%) without the so-what. Also: titles that overreach the chart's evidence, multi-claim X-grew-but-Y-fell welded titles, and mechanical repetition of the same X-drove-Y template across the deck.",
          "cardinality": null,
          "narrativePurpose": "Forces the deck to carry its argument in the title bar so a senior reader can extract the recommendation without opening a single slide; converts a binder of topics into a navigable pyramid where every slide is a node defending the apex."
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 5,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 1,
          "name": "Problem",
          "beatId": "ee3febcc-2a43-4d58-9973-33f70d28983d",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Problem (Identify pain)",
            "slug": "problem-agitate-solution-problem-identify-pain",
            "status": "active",
            "canonId": "019dd9b8-0e78-74bb-b8f6-54348367a131",
            "version": 1,
            "description": null
          },
          "evidence": "The deck identifies the pain points in the current travel app landscape.",
          "position": 0,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Complication",
            "slug": "complication",
            "status": "active",
            "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
            "version": 1,
            "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 6,
      "type": "evidence",
      "title": "The chart uses a visual marker (virus icon) to denote the start of the pandemic impact.",
      "function": "show_traction",
      "rawType": "traction",
      "block": null,
      "metadata": {
        "slideType": "traction",
        "slideTypeCanon": {
          "name": "Traction",
          "slug": "traction",
          "status": "active",
          "canonId": "019de52d-0edd-72ab-820f-3ebc71a9c542",
          "version": 1,
          "description": null
        },
        "function": "show_traction",
        "functionCanon": {
          "name": "Show traction",
          "slug": "show_traction",
          "status": "active",
          "canonId": "019de52d-16a8-756a-9b38-a7d35420561d",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 58,
        "componentCount": 6,
        "textChars": 367,
        "nDataPoints": 1,
        "notes": "The chart uses a visual marker (virus icon) to denote the start of the pandemic impact.",
        "elementsJson": [
          "headline_text",
          "bar_chart_vertical",
          "icon_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:50.343+00",
          "seconds": 2.229,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/6",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-6",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "The COVID-19 Shutdown was very impactful, but we have since recovered and are now +180% higher than our pre-pandemic high point from Q1 2020.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:29+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b69-b0cfe1e3212d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.55,
            "w": 0.82,
            "x": 0.088,
            "y": 0.35
          },
          "kind": "chart",
          "text": "Monthly Revenue",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Chart",
              "slug": "chart",
              "status": "active",
              "canonId": "019de52c-f9a0-76ef-adc6-0b859109d1f8",
              "version": 1,
              "description": "Quantitative chart."
            },
            "tool": null,
            "subkind": {
              "name": "Vertical bar chart",
              "slug": "bar-vertical",
              "status": "active",
              "canonId": "019de52c-fe9d-70f2-b3b7-a9ae294f5917",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bar-vertical",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.343+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "24016e95-e5f9-4af2-b688-8a4cbf7b7e7c",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.03,
            "x": 0.48,
            "y": 0.445
          },
          "kind": "image",
          "text": "COVID-19 marker",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Illustration",
              "slug": "illustration",
              "status": "active",
              "canonId": "019de52c-fe76-7772-a5ac-c0b7294d7615",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "illustration",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.343+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "73dfc9a7-b668-4bcb-87b5-b88582742198",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Monthly Revenue: +180%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:29+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b69-b5991203870e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.82,
            "x": 0.088,
            "y": 0.215
          },
          "kind": "subtitle",
          "text": "The COVID-19 Shutdown was very impactful, but we have since recovered and are now +180% higher than our pre-pandemic high point from Q1 2020.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Subtitle",
              "slug": "subtitle",
              "status": "active",
              "canonId": "82d821ee-2793-42e7-8f16-c6131385a3ce",
              "version": 1,
              "description": "Header-zone supporting text near the title (= ex body.description with bbox)."
            },
            "tool": null,
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.343+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1399afab-fa5e-4564-b8ff-4e4ccb4b78d2",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.45,
            "x": 0.088,
            "y": 0.135
          },
          "kind": "title",
          "text": "We've Recovered from the Shutdown",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:50.343+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cf3076ed-349c-4c37-89cb-288c066b1213",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Before-After-Bridge",
            "slug": "before-after-bridge",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-8604-7188-883f-42370288ad05",
            "version": 1,
            "bodyDocId": null,
            "description": "Narrative structure: Paint the before, show the after, explain the bridge",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "d1df3502-74de-4471-b618-17ee76611b99",
          "evidence": "The COVID-19 Shutdown was very impactful, but we have since recovered and are now +180% higher than our pre-pandemic high point from Q1 2020.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.8,
          "extraction": {
            "at": "2026-07-16 22:22:12.144286+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 6,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 10,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 6,
          "name": "Agitate",
          "beatId": "a7fe2aff-d5a8-4f2b-a64d-f7e97e111443",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Agitate (Make it worse)",
            "slug": "problem-agitate-solution-agitate-make-it-worse",
            "status": "active",
            "canonId": "019dd9b8-0f5a-71dd-bae7-8fadb0d09456",
            "version": 1,
            "description": null
          },
          "evidence": "The deck highlights the challenges faced by current travel apps.",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Development",
            "slug": "development",
            "status": "active",
            "canonId": "019dd9b8-0332-7008-b3aa-11b0840a57b1",
            "version": 1,
            "description": "The middle stretch in arcs that have one. Often where length problems creep in."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 10,
          "from": 6,
          "loop": {
            "name": "27_cost_of_inaction",
            "slug": "27-cost-of-inaction",
            "status": "active",
            "bestFor": "Urgent budget requests, compliance, risk mitigation",
            "canonId": "019dd956-70d1-7395-a15b-857ba858b394",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Status Quo -> The Hidden Costs Accumulating -> The Future State of Inaction -> The Tipping Point",
            "description": "Quantify what happens if the audience does nothing",
            "familyLabel": null
          },
          "matchId": "aed93783-90fc-48da-9af7-4a4fcb6edc5f",
          "evidence": "The deck highlights the risks of not investing in a travel super app.",
          "position": 0,
          "objective": "What if we don't invest in a travel super app?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.945266+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 7,
      "type": "evidence",
      "title": "The chart shows a significant divergence between Hopper and the competitor set starting in mid-2020.",
      "function": "show_traction",
      "rawType": "traction",
      "block": null,
      "metadata": {
        "slideType": "traction",
        "slideTypeCanon": {
          "name": "Traction",
          "slug": "traction",
          "status": "active",
          "canonId": "019de52d-0edd-72ab-820f-3ebc71a9c542",
          "version": 1,
          "description": null
        },
        "function": "show_traction",
        "functionCanon": {
          "name": "Show traction",
          "slug": "show_traction",
          "status": "active",
          "canonId": "019de52d-16a8-756a-9b38-a7d35420561d",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 64,
        "componentCount": 6,
        "textChars": 384,
        "nDataPoints": 58,
        "notes": "The chart shows a significant divergence between Hopper and the competitor set starting in mid-2020.",
        "elementsJson": [
          "action_title",
          "subtitle_text",
          "line_chart"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:51.562+00",
          "seconds": 3.166,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/7",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-7",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Our recovery is faster than the market and our North America air travel market share (MIDT) is now higher than prior to the pandemic.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:29+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b69-ff1911329191",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.55,
            "w": 0.82,
            "x": 0.088,
            "y": 0.35
          },
          "kind": "chart",
          "text": "Hopper Air Bookings Indexed Against 2019 Performance vs OTA Comp Set",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Chart",
              "slug": "chart",
              "status": "active",
              "canonId": "019de52c-f9a0-76ef-adc6-0b859109d1f8",
              "version": 1,
              "description": "Quantitative chart."
            },
            "tool": null,
            "subkind": {
              "name": "Line chart",
              "slug": "line",
              "status": "active",
              "canonId": "019de52c-ff62-778f-8f6c-a952ceae8677",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "line",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.562+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7c9c7cb6-3c6c-4b3a-91c7-046a79838eef",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.1,
            "x": 0.015,
            "y": 0.025
          },
          "kind": "image",
          "text": "Hopper",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Logo",
              "slug": "logo",
              "status": "active",
              "canonId": "019de52c-fdaf-743d-94c4-d7c6a0e55302",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "logo",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.562+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cbed56e6-fcdd-4367-85dd-45e3e97d3dbb",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Market Share: 151%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:29+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-02acc25fea91",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.82,
            "x": 0.088,
            "y": 0.235
          },
          "kind": "paragraph",
          "text": "Our recovery is faster than the market and our North America air travel market share (MIDT) is now higher than prior to the pandemic.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.562+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "61fca1dc-6948-45ab-b666-8aef7c4640e2",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.43,
            "x": 0.088,
            "y": 0.135
          },
          "kind": "title",
          "text": "We're Gaining Market Share",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.562+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7ec4cb4f-0b0f-4a4b-85bb-cdfa77f3de5e",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 10,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 6,
          "name": "Agitate",
          "beatId": "a7fe2aff-d5a8-4f2b-a64d-f7e97e111443",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Agitate (Make it worse)",
            "slug": "problem-agitate-solution-agitate-make-it-worse",
            "status": "active",
            "canonId": "019dd9b8-0f5a-71dd-bae7-8fadb0d09456",
            "version": 1,
            "description": null
          },
          "evidence": "The deck highlights the challenges faced by current travel apps.",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Development",
            "slug": "development",
            "status": "active",
            "canonId": "019dd9b8-0332-7008-b3aa-11b0840a57b1",
            "version": 1,
            "description": "The middle stretch in arcs that have one. Often where length problems creep in."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 10,
          "from": 6,
          "loop": {
            "name": "27_cost_of_inaction",
            "slug": "27-cost-of-inaction",
            "status": "active",
            "bestFor": "Urgent budget requests, compliance, risk mitigation",
            "canonId": "019dd956-70d1-7395-a15b-857ba858b394",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Status Quo -> The Hidden Costs Accumulating -> The Future State of Inaction -> The Tipping Point",
            "description": "Quantify what happens if the audience does nothing",
            "familyLabel": null
          },
          "matchId": "aed93783-90fc-48da-9af7-4a4fcb6edc5f",
          "evidence": "The deck highlights the risks of not investing in a travel super app.",
          "position": 0,
          "objective": "What if we don't invest in a travel super app?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.945266+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 8,
      "type": "analysis",
      "function": "analyze_data",
      "rawType": "segmentation",
      "block": null,
      "metadata": {
        "slideType": "segmentation",
        "slideTypeCanon": {
          "name": "Segmentation",
          "slug": "segmentation",
          "status": "active",
          "canonId": "019de52d-0917-75d5-9172-1b3b3c2f6400",
          "version": 1,
          "description": null
        },
        "function": "analyze_data",
        "functionCanon": {
          "name": "Analyze data",
          "slug": "analyze_data",
          "status": "active",
          "canonId": "019de52d-1590-7413-8c82-cc218cff40b4",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 55,
        "componentCount": 5,
        "textChars": 373,
        "nDataPoints": 14,
        "notes": null,
        "elementsJson": [
          "headline_text",
          "bar_chart_stacked"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:51.215+00",
          "seconds": 2.508,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/8",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-8",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Hopper is primarily used by Gen Z and Millennial females, with 70% of our booking customers under the age of 35 and 25% under the age of 25.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:35+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6d-57748df7d962",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.55,
            "w": 0.825,
            "x": 0.088,
            "y": 0.35
          },
          "kind": "chart",
          "text": "Stacked bar chart of age demographics by gender",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Chart",
              "slug": "chart",
              "status": "active",
              "canonId": "019de52c-f9a0-76ef-adc6-0b859109d1f8",
              "version": 1,
              "description": "Quantitative chart."
            },
            "tool": null,
            "subkind": {
              "name": "Stacked bar chart",
              "slug": "bar-stacked",
              "status": "active",
              "canonId": "019de52c-feec-74bf-9028-15b74f84f0a7",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bar-stacked",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.215+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f11e87fd-eae8-4e74-9dce-69789fe21fc4",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "user demographic: 70%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:35+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6d-595e1e63ee02",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.055,
            "w": 0.825,
            "x": 0.088,
            "y": 0.195
          },
          "kind": "paragraph",
          "text": "Hopper is primarily used by Gen Z and Millennial females, with 70% of our booking customers under the age of 35 and 25% under the age of 25.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.215+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4ea79d90-05bc-465f-a11a-5bd10bccc0a7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.045,
            "w": 0.385,
            "x": 0.088,
            "y": 0.135
          },
          "kind": "title",
          "text": "In a Valuable Demographic",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.215+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c84a35f3-97a8-407e-95e3-872a7e5130d1",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [
        {
          "matchId": "431ad527-bc74-4466-930b-b6014396b112",
          "evidence": "The slide segments the user base by age and gender to demonstrate market value.",
          "framework": null,
          "confidence": 0.9,
          "extraction": {
            "at": "2026-05-02 16:42:51.215+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 8,
          "frameworkName": "audience-segmentation"
        }
      ],
      "arcBeats": [
        {
          "to": 10,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 6,
          "name": "Agitate",
          "beatId": "a7fe2aff-d5a8-4f2b-a64d-f7e97e111443",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Agitate (Make it worse)",
            "slug": "problem-agitate-solution-agitate-make-it-worse",
            "status": "active",
            "canonId": "019dd9b8-0f5a-71dd-bae7-8fadb0d09456",
            "version": 1,
            "description": null
          },
          "evidence": "The deck highlights the challenges faced by current travel apps.",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Development",
            "slug": "development",
            "status": "active",
            "canonId": "019dd9b8-0332-7008-b3aa-11b0840a57b1",
            "version": 1,
            "description": "The middle stretch in arcs that have one. Often where length problems creep in."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 10,
          "from": 6,
          "loop": {
            "name": "27_cost_of_inaction",
            "slug": "27-cost-of-inaction",
            "status": "active",
            "bestFor": "Urgent budget requests, compliance, risk mitigation",
            "canonId": "019dd956-70d1-7395-a15b-857ba858b394",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Status Quo -> The Hidden Costs Accumulating -> The Future State of Inaction -> The Tipping Point",
            "description": "Quantify what happens if the audience does nothing",
            "familyLabel": null
          },
          "matchId": "aed93783-90fc-48da-9af7-4a4fcb6edc5f",
          "evidence": "The deck highlights the risks of not investing in a travel super app.",
          "position": 0,
          "objective": "What if we don't invest in a travel super app?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.945266+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 9,
      "type": "setup",
      "title": "The slide uses a series of pie charts to visually contrast the acquisition strategies.",
      "function": "compare_peers",
      "rawType": "competitive_analysis",
      "block": null,
      "metadata": {
        "slideType": "competitive_analysis",
        "slideTypeCanon": {
          "name": "Competitive analysis",
          "slug": "competitive_analysis",
          "status": "active",
          "canonId": "019de52d-093e-776b-94c6-c1573f5f1a31",
          "version": 1,
          "description": null
        },
        "function": "compare_peers",
        "functionCanon": {
          "name": "Compare peers",
          "slug": "compare_peers",
          "status": "active",
          "canonId": "019de52d-1453-72ba-a367-9ba3d34c1630",
          "version": 1,
          "description": null
        },
        "density": "overcrowded",
        "densityScore": 81,
        "componentCount": 9,
        "textChars": 547,
        "nDataPoints": 3,
        "notes": "The slide uses a series of pie charts to visually contrast the acquisition strategies.",
        "elementsJson": [
          "headline_text",
          "subtitle_text",
          "pie_chart"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:52.384+00",
          "seconds": 3.61,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/9",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-9",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Unlike the incumbent leaders in travel, Hopper does not rely on Paid Search or Meta Search for its users and instead acquires customers through lower-cost channels.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6b-ebd42caa029a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.4,
            "w": 0.84,
            "x": 0.08,
            "y": 0.45
          },
          "kind": "chart",
          "text": "Comparison of acquisition channels for Booking.com, Expedia, Trip Advisor, and Hopper",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Chart",
              "slug": "chart",
              "status": "active",
              "canonId": "019de52c-f9a0-76ef-adc6-0b859109d1f8",
              "version": 1,
              "description": "Quantitative chart."
            },
            "tool": null,
            "subkind": {
              "name": "Pie chart",
              "slug": "pie",
              "status": "active",
              "canonId": "019de52c-ffdb-71bb-a800-5c5ab9f1c373",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "pie",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.384+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8d634874-a03c-40f1-babf-ec773b5b02e7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.65,
            "x": 0.08,
            "y": 0.4
          },
          "kind": "legend",
          "text": "Direct, Web Search, App Store, Display, Email, Social",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Legend",
              "slug": "legend",
              "status": "active",
              "canonId": "31361933-3d22-4c70-bbad-0801e9fffc0c",
              "version": 1,
              "description": "Color/symbol decoder placed adjacent to a chart or diagram."
            },
            "tool": null,
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.384+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b351993d-4c94-41f9-8aa9-e8e65f6f0bff",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.05,
            "x": 0.73,
            "y": 0.45
          },
          "kind": "metric",
          "text": "65%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": null,
            "subkind": {
              "name": "Big number",
              "slug": "big-number",
              "status": "active",
              "canonId": "019de52c-fc70-70c8-b965-0584548a9204",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "big-number",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.384+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7236bf15-370e-494e-8ca9-9b895f1b524b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.05,
            "x": 0.73,
            "y": 0.8
          },
          "kind": "metric",
          "text": "30%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": null,
            "subkind": {
              "name": "Big number",
              "slug": "big-number",
              "status": "active",
              "canonId": "019de52c-fc70-70c8-b965-0584548a9204",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "big-number",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.384+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "9b565658-824d-477b-b669-ec6ddb32c6d7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.04,
            "x": 0.91,
            "y": 0.75
          },
          "kind": "metric",
          "text": "5%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": null,
            "subkind": {
              "name": "Big number",
              "slug": "big-number",
              "status": "active",
              "canonId": "019de52c-fc70-70c8-b965-0584548a9204",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "big-number",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.384+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b344545b-d5ee-4729-9d0f-f1ee8d12d28c",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "User acquisition channel mix: 65%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6b-ee61dd23d9e7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.07,
            "w": 0.84,
            "x": 0.08,
            "y": 0.21
          },
          "kind": "paragraph",
          "text": "Unlike the incumbent leaders in travel, Hopper does not rely on Paid Search or Meta Search for its users and instead acquires customers through lower-cost channels.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.384+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "12fff51e-a967-4a9e-83f2-88d02f6d023d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.84,
            "x": 0.08,
            "y": 0.13
          },
          "kind": "title",
          "text": "We Don't Rely on Google to Acquire Users",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.384+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "694559cf-321b-432e-a370-31a859a6428e",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [
        {
          "matchId": "8b7d0fe0-3981-41e1-a698-b36749213b64",
          "evidence": "Contrasting Hopper's acquisition strategy against industry incumbents.",
          "framework": null,
          "confidence": 0.9,
          "extraction": {
            "at": "2026-05-02 16:42:52.384+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 9,
          "frameworkName": "comparison_frame"
        }
      ],
      "arcBeats": [
        {
          "to": 10,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 6,
          "name": "Agitate",
          "beatId": "a7fe2aff-d5a8-4f2b-a64d-f7e97e111443",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Agitate (Make it worse)",
            "slug": "problem-agitate-solution-agitate-make-it-worse",
            "status": "active",
            "canonId": "019dd9b8-0f5a-71dd-bae7-8fadb0d09456",
            "version": 1,
            "description": null
          },
          "evidence": "The deck highlights the challenges faced by current travel apps.",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Development",
            "slug": "development",
            "status": "active",
            "canonId": "019dd9b8-0332-7008-b3aa-11b0840a57b1",
            "version": 1,
            "description": "The middle stretch in arcs that have one. Often where length problems creep in."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 10,
          "from": 6,
          "loop": {
            "name": "27_cost_of_inaction",
            "slug": "27-cost-of-inaction",
            "status": "active",
            "bestFor": "Urgent budget requests, compliance, risk mitigation",
            "canonId": "019dd956-70d1-7395-a15b-857ba858b394",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Status Quo -> The Hidden Costs Accumulating -> The Future State of Inaction -> The Tipping Point",
            "description": "Quantify what happens if the audience does nothing",
            "familyLabel": null
          },
          "matchId": "aed93783-90fc-48da-9af7-4a4fcb6edc5f",
          "evidence": "The deck highlights the risks of not investing in a travel super app.",
          "position": 0,
          "objective": "What if we don't invest in a travel super app?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.945266+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 10,
      "type": "setup",
      "title": "The chart uses color to distinguish Hopper (green) from competitors (red), emphasizing the contrast in performance.",
      "function": "compare_peers",
      "rawType": "competitive_analysis",
      "block": null,
      "metadata": {
        "slideType": "competitive_analysis",
        "slideTypeCanon": {
          "name": "Competitive analysis",
          "slug": "competitive_analysis",
          "status": "active",
          "canonId": "019de52d-093e-776b-94c6-c1573f5f1a31",
          "version": 1,
          "description": null
        },
        "function": "compare_peers",
        "functionCanon": {
          "name": "Compare peers",
          "slug": "compare_peers",
          "status": "active",
          "canonId": "019de52d-1453-72ba-a367-9ba3d34c1630",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 56,
        "componentCount": 5,
        "textChars": 409,
        "nDataPoints": 8,
        "notes": "The chart uses color to distinguish Hopper (green) from competitors (red), emphasizing the contrast in performance.",
        "elementsJson": [
          "headline_text",
          "bar_chart_horizontal"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:51.664+00",
          "seconds": 2.68,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/10",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-10",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "The travel industry faced its most severe crisis in a generation in 2020, but Hopper’s performance stands out as we grew our revenues by over 100%.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-5f161cc5aae1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.55,
            "w": 0.82,
            "x": 0.088,
            "y": 0.37
          },
          "kind": "chart",
          "text": "Year-Over-Year Change in Revenue 2020 vs 2019",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Chart",
              "slug": "chart",
              "status": "active",
              "canonId": "019de52c-f9a0-76ef-adc6-0b859109d1f8",
              "version": 1,
              "description": "Quantitative chart."
            },
            "tool": null,
            "subkind": {
              "name": "Horizontal bar chart",
              "slug": "bar-horizontal",
              "status": "active",
              "canonId": "019de52c-fec4-7221-986b-1cb5f5e84b1f",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bar-horizontal",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.664+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ce04221a-5251-4f9a-9543-cdfe1218167d",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Year-Over-Year Revenue Growth: 112%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-62d05114baab",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.82,
            "x": 0.088,
            "y": 0.185
          },
          "kind": "paragraph",
          "text": "The travel industry faced its most severe crisis in a generation in 2020, but Hopper's performance stands out as we grew our revenues by over 100%.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.664+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5e9c296d-1107-4db2-87f0-08d5b6baa22e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.04,
            "w": 0.45,
            "x": 0.088,
            "y": 0.135
          },
          "kind": "title",
          "text": "We Outperformed Competitors in 2020",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.664+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "58cb4bc0-4c56-4c41-9058-fc8e7384837d",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [
        {
          "matchId": "2a4afc3d-4673-4cac-9628-8ba03bec6a39",
          "evidence": "Direct comparison of company performance against industry peers to establish competitive advantage.",
          "framework": null,
          "confidence": 0.9,
          "extraction": {
            "at": "2026-05-02 16:42:51.664+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 10,
          "frameworkName": "comparison-frame"
        }
      ],
      "arcBeats": [
        {
          "to": 10,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 6,
          "name": "Agitate",
          "beatId": "a7fe2aff-d5a8-4f2b-a64d-f7e97e111443",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Agitate (Make it worse)",
            "slug": "problem-agitate-solution-agitate-make-it-worse",
            "status": "active",
            "canonId": "019dd9b8-0f5a-71dd-bae7-8fadb0d09456",
            "version": 1,
            "description": null
          },
          "evidence": "The deck highlights the challenges faced by current travel apps.",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Development",
            "slug": "development",
            "status": "active",
            "canonId": "019dd9b8-0332-7008-b3aa-11b0840a57b1",
            "version": 1,
            "description": "The middle stretch in arcs that have one. Often where length problems creep in."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 10,
          "from": 6,
          "loop": {
            "name": "27_cost_of_inaction",
            "slug": "27-cost-of-inaction",
            "status": "active",
            "bestFor": "Urgent budget requests, compliance, risk mitigation",
            "canonId": "019dd956-70d1-7395-a15b-857ba858b394",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Status Quo -> The Hidden Costs Accumulating -> The Future State of Inaction -> The Tipping Point",
            "description": "Quantify what happens if the audience does nothing",
            "familyLabel": null
          },
          "matchId": "aed93783-90fc-48da-9af7-4a4fcb6edc5f",
          "evidence": "The deck highlights the risks of not investing in a travel super app.",
          "position": 0,
          "objective": "What if we don't invest in a travel super app?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.945266+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 11,
      "type": "resolution",
      "title": "The 'Homes' category includes a 'FUTURE' tag, indicating it is an emerging or upcoming product line.",
      "function": "present_solution",
      "rawType": "solution",
      "block": null,
      "metadata": {
        "slideType": "solution",
        "slideTypeCanon": {
          "name": "Solution",
          "slug": "solution",
          "status": "active",
          "canonId": "019de52d-0eb5-72ff-8b70-ba70a4199282",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 50,
        "componentCount": 4,
        "textChars": 562,
        "nDataPoints": 1,
        "notes": "The 'Homes' category includes a 'FUTURE' tag, indicating it is an emerging or upcoming product line.",
        "elementsJson": [
          "headline_text",
          "icon_grid",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:52.235+00",
          "seconds": 3.151,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/11",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-11",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.04,
            "w": 0.08,
            "x": 0.76,
            "y": 0.89
          },
          "kind": "callout",
          "text": "FUTURE",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": null,
            "subkind": {
              "name": "Primary callout",
              "slug": "primary",
              "status": "active",
              "canonId": "019de52c-fbd1-70eb-a9ce-8997f8674c1d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.235+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5d54205b-4e29-4e0f-819e-b2084e78ac34",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.22,
            "w": 0.86,
            "x": 0.07,
            "y": 0.31
          },
          "kind": "image",
          "text": "Four circular illustrations representing Flights, Hotels, Cars, and Homes.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Illustration",
              "slug": "illustration",
              "status": "active",
              "canonId": "019de52c-fe76-7772-a5ac-c0b7294d7615",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "illustration",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.235+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1ff379b2-3f2d-4450-87ff-fed9f186116b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.86,
            "x": 0.07,
            "y": 0.54
          },
          "kind": "list",
          "text": "Flights: Air is where we first pioneered flight forecasting and price predictions on a mobile app. Hotels: Launched in 2018, our hotels product brings closed-user-group rates and mobile rates to our customers and saves them big bucks. Cars: We launched a native experience in our app in late 2020 and have already scaled the business materially. Homes: We're building a product to cover the other 50% of lodging spend for our under-35 user base.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.235+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c3230f24-2e29-4e38-9b60-5fe186e26252",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.72,
            "x": 0.14,
            "y": 0.15
          },
          "kind": "title",
          "text": "We Have a Diversified Travel Offering",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.235+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2d729650-26d0-4358-ac7c-2622184fb87e",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 11,
          "loop": {
            "name": "47_quick_win_big_bet",
            "slug": "47-quick-win-big-bet",
            "status": "active",
            "bestFor": "Transformation planning, 100-day plans, resource allocation",
            "canonId": "019dd956-790d-708d-983e-ef9bbc68f741",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Full List -> Quick Wins (Low effort, High impact) -> Big Bets (High effort, High impact) -> Sequenced Roadmap",
            "description": "Separate initiatives into immediate wins and longer-term strategic bets",
            "familyLabel": null
          },
          "matchId": "fb084591-9a46-4893-9b31-97623aa313d3",
          "evidence": "The deck presents Hopper's diversified travel offering as a quick win.",
          "position": 1,
          "objective": "Can we quickly win market share with a diversified travel offering?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.985159+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 12,
      "type": "resolution",
      "title": "The slide uses a screenshot of the mobile app to demonstrate the 'solution' in action.",
      "function": "present_solution",
      "rawType": "solution",
      "block": null,
      "metadata": {
        "slideType": "solution",
        "slideTypeCanon": {
          "name": "Solution",
          "slug": "solution",
          "status": "active",
          "canonId": "019de52d-0eb5-72ff-8b70-ba70a4199282",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 55,
        "componentCount": 5,
        "textChars": 597,
        "nDataPoints": 0,
        "notes": "The slide uses a screenshot of the mobile app to demonstrate the 'solution' in action.",
        "elementsJson": [
          "headline_text",
          "paragraph",
          "screenshot"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:51.58+00",
          "seconds": 2.364,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/12",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-12",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "A travel agency with great prices, great selection and great service.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:29+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-2c044ebe0182",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.95,
            "w": 0.35,
            "x": 0.625,
            "y": 0.025
          },
          "kind": "image",
          "text": "Hopper mobile app interface showing flight search results",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Screenshot",
              "slug": "screenshot",
              "status": "active",
              "canonId": "019de52c-fd87-7509-8391-3d79fb339379",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "screenshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.58+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f5fce99d-574c-49b5-9cd1-6523dc1e5607",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.4,
            "x": 0.05,
            "y": 0.45
          },
          "kind": "paragraph",
          "text": "We are under commercial contract with over 200 airlines, have support for unique rate constructs like hacker fares and virtual interlining and utilize dozens of connectivity options - GDS, NDC, API - in our relentless pursuit of the absolute best prices and selection for our customers. We pair this with a customer service offering that includes robust self-serve automation.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.58+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "add2a20d-c450-457e-8042-05a5a851aed1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.4,
            "x": 0.05,
            "y": 0.3
          },
          "kind": "title",
          "text": "A travel agency with great prices, great selection and great service.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Action title",
              "slug": "action-title",
              "status": "active",
              "canonId": "019de52c-fb31-734c-a0f5-a3935b73135d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "action-title",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.58+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c11b4759-6ce0-44ac-8658-d60ae8f8c5bb",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.35,
            "x": 0.05,
            "y": 0.15
          },
          "kind": "title",
          "text": "A World-Class Air Offering",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:51.58+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "25823605-00c9-4ffa-a994-1541dfb8e859",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 11,
          "loop": {
            "name": "47_quick_win_big_bet",
            "slug": "47-quick-win-big-bet",
            "status": "active",
            "bestFor": "Transformation planning, 100-day plans, resource allocation",
            "canonId": "019dd956-790d-708d-983e-ef9bbc68f741",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Full List -> Quick Wins (Low effort, High impact) -> Big Bets (High effort, High impact) -> Sequenced Roadmap",
            "description": "Separate initiatives into immediate wins and longer-term strategic bets",
            "familyLabel": null
          },
          "matchId": "fb084591-9a46-4893-9b31-97623aa313d3",
          "evidence": "The deck presents Hopper's diversified travel offering as a quick win.",
          "position": 1,
          "objective": "Can we quickly win market share with a diversified travel offering?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.985159+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 13,
      "type": "setup",
      "title": "The slide highlights both the product UI and the underlying business strategy (direct sales team) to improve margins.",
      "function": "present_solution",
      "rawType": "product_demo",
      "block": null,
      "metadata": {
        "slideType": "product_demo",
        "slideTypeCanon": {
          "name": "Product demo",
          "slug": "product_demo",
          "status": "active",
          "canonId": "019de52d-0f06-7288-84f2-7568c1020fce",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 71,
        "componentCount": 6,
        "textChars": 666,
        "nDataPoints": 3,
        "notes": "The slide highlights both the product UI and the underlying business strategy (direct sales team) to improve margins.",
        "elementsJson": [
          "headline_text",
          "action_title",
          "paragraph",
          "screenshot"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:52.111+00",
          "seconds": 2.364,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/13",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-13",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "We’re bringing users private rates cheaper than anywhere on the web.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:31+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6b-ccc48f12668b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.9,
            "w": 0.35,
            "x": 0.6,
            "y": 0.05
          },
          "kind": "image",
          "text": "Hopper mobile app interface showing hotel search results in Los Angeles.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Screenshot",
              "slug": "screenshot",
              "status": "active",
              "canonId": "019de52c-fd87-7509-8391-3d79fb339379",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "screenshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.111+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "e96aa619-00c4-4c85-9d2b-893e9d8b2921",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "category margin: 50%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:31+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6b-d3b2cacd439c",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.4,
            "w": 0.4,
            "x": 0.05,
            "y": 0.45
          },
          "kind": "paragraph",
          "text": "Hopper has over 2M properties in our marketplace. We’re pursuing a multi-sourced strategy where we’re aggregating the best rates from across the internet to bring our customers the absolute cheapest closed-user group or mobile-only rates. In 2021, we’ve already spun up a 20+ person direct sales team to start bringing our top performing hotels under contract - this will improve category margin by 50%.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.111+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "57a9b8c5-b7f9-4016-81c4-4ca0545681e4",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.4,
            "x": 0.05,
            "y": 0.32
          },
          "kind": "title",
          "text": "We’re bringing users private rates cheaper than anywhere on the web.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Action title",
              "slug": "action-title",
              "status": "active",
              "canonId": "019de52c-fb31-734c-a0f5-a3935b73135d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "action-title",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.111+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d9cfc94b-d316-4f21-924c-36aa0f81bea7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.4,
            "x": 0.05,
            "y": 0.15
          },
          "kind": "title",
          "text": "A Hotel Product with the Best Rates",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.111+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "260ee5d6-12f0-4af2-97ae-4b8a1d41324e",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 11,
          "loop": {
            "name": "47_quick_win_big_bet",
            "slug": "47-quick-win-big-bet",
            "status": "active",
            "bestFor": "Transformation planning, 100-day plans, resource allocation",
            "canonId": "019dd956-790d-708d-983e-ef9bbc68f741",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Full List -> Quick Wins (Low effort, High impact) -> Big Bets (High effort, High impact) -> Sequenced Roadmap",
            "description": "Separate initiatives into immediate wins and longer-term strategic bets",
            "familyLabel": null
          },
          "matchId": "fb084591-9a46-4893-9b31-97623aa313d3",
          "evidence": "The deck presents Hopper's diversified travel offering as a quick win.",
          "position": 1,
          "objective": "Can we quickly win market share with a diversified travel offering?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.985159+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 14,
      "type": "evidence",
      "title": "Includes a visual mockup of the Hopper mobile app interface showing car rental listings.",
      "function": "show_traction",
      "rawType": "traction",
      "block": null,
      "metadata": {
        "slideType": "traction",
        "slideTypeCanon": {
          "name": "Traction",
          "slug": "traction",
          "status": "active",
          "canonId": "019de52d-0edd-72ab-820f-3ebc71a9c542",
          "version": 1,
          "description": null
        },
        "function": "show_traction",
        "functionCanon": {
          "name": "Show traction",
          "slug": "show_traction",
          "status": "active",
          "canonId": "019de52d-16a8-756a-9b38-a7d35420561d",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 69,
        "componentCount": 6,
        "textChars": 605,
        "nDataPoints": 2,
        "notes": "Includes a visual mockup of the Hopper mobile app interface showing car rental listings.",
        "elementsJson": [
          "headline_text",
          "action_title",
          "paragraph",
          "screenshot"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:52.748+00",
          "seconds": 2.258,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/14",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-14",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "We launched in late 2020 and already cars has grown to ~15% of our travel bookings.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-77c02868805f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.9,
            "w": 0.4,
            "x": 0.55,
            "y": 0.05
          },
          "kind": "image",
          "text": "Hopper mobile app interface showing car rental listings",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Screenshot",
              "slug": "screenshot",
              "status": "active",
              "canonId": "019de52c-fd87-7509-8391-3d79fb339379",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "screenshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.748+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "22774f30-77ad-4b8e-a30c-21a7b27d8ba3",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "travel bookings: 15%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-7bbc97bd37e1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.4,
            "x": 0.05,
            "y": 0.4
          },
          "kind": "paragraph",
          "text": "We launched in late 2020 and already cars has grown to ~15% of our travel bookings. We are multi-sourcing to bring our customers the best rates possible. We’ve also contracted directly +40% of our volume, already, to both improve margins and add value to customers through things like waiving the under-25 fee on our customers bookings.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.748+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "64478ee8-09e1-4b20-8272-8c9425eee9fa",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.4,
            "x": 0.05,
            "y": 0.28
          },
          "kind": "title",
          "text": "Our newest travel category, Cars is still only at the beginning of its journey.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Action title",
              "slug": "action-title",
              "status": "active",
              "canonId": "019de52c-fb31-734c-a0f5-a3935b73135d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "action-title",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.748+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "76f53a06-4cb7-40ec-90a4-bf8127f19370",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.4,
            "x": 0.05,
            "y": 0.15
          },
          "kind": "title",
          "text": "Fast-Growing Car Rental Business",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.748+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "07069783-9ec0-43bd-98d1-f5ec973d56a1",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 11,
          "loop": {
            "name": "47_quick_win_big_bet",
            "slug": "47-quick-win-big-bet",
            "status": "active",
            "bestFor": "Transformation planning, 100-day plans, resource allocation",
            "canonId": "019dd956-790d-708d-983e-ef9bbc68f741",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Full List -> Quick Wins (Low effort, High impact) -> Big Bets (High effort, High impact) -> Sequenced Roadmap",
            "description": "Separate initiatives into immediate wins and longer-term strategic bets",
            "familyLabel": null
          },
          "matchId": "fb084591-9a46-4893-9b31-97623aa313d3",
          "evidence": "The deck presents Hopper's diversified travel offering as a quick win.",
          "position": 1,
          "objective": "Can we quickly win market share with a diversified travel offering?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.985159+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 15,
      "type": "resolution",
      "function": "present_solution",
      "rawType": "solution",
      "block": null,
      "metadata": {
        "slideType": "solution",
        "slideTypeCanon": {
          "name": "Solution",
          "slug": "solution",
          "status": "active",
          "canonId": "019de52d-0eb5-72ff-8b70-ba70a4199282",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 68,
        "componentCount": 6,
        "textChars": 601,
        "nDataPoints": 1,
        "notes": null,
        "elementsJson": [
          "action_title",
          "icon_grid",
          "paragraph"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:53.037+00",
          "seconds": 2.465,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/15",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-15",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.2,
            "w": 0.8,
            "x": 0.1,
            "y": 0.3
          },
          "kind": "image",
          "text": null,
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Icon grid",
              "slug": "icon-grid",
              "status": "active",
              "canonId": "019de52c-fdfe-749d-9990-1db465a3eed4",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "icon-grid",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.037+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6eb1928c-b0bb-4ded-9e1e-66075e277da9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.2,
            "x": 0.05,
            "y": 0.55
          },
          "kind": "list",
          "text": "Price Prediction: We predict future travel prices with 95% accuracy and send smart notifications that tell customers the best time to book.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.037+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "073254c5-b10a-430f-beb1-c78c2a6a112d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.2,
            "x": 0.52,
            "y": 0.55
          },
          "kind": "list",
          "text": "Cancel/Change for Any Reason: We underwrite and dynamically price our own fare class that makes non-refundable fares or rate types flexible.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.037+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "36874203-318e-4c51-be7c-01f7972e7769",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.2,
            "x": 0.75,
            "y": 0.55
          },
          "kind": "list",
          "text": "Disruption Protection: We instantly rebook customers to their destinations if they are disrupted at the airport or delayed, at no extra cost.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.037+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "40a48c31-ef56-487f-842a-21f994767cd0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.2,
            "x": 0.28,
            "y": 0.55
          },
          "kind": "list",
          "text": "Price Freeze: We lock flight and hotel prices from 1 hour to 14 days to protect customers from increases, for a fraction of the trip cost.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.037+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8ec44533-e04b-4083-b1c3-4c473ed97f9a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.8,
            "x": 0.1,
            "y": 0.15
          },
          "kind": "title",
          "text": "We Pair it All with Unique Fintech Products",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.037+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d9fce06a-a5ea-4ec2-ae71-9637e2e069c1",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 11,
          "loop": {
            "name": "47_quick_win_big_bet",
            "slug": "47-quick-win-big-bet",
            "status": "active",
            "bestFor": "Transformation planning, 100-day plans, resource allocation",
            "canonId": "019dd956-790d-708d-983e-ef9bbc68f741",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Full List -> Quick Wins (Low effort, High impact) -> Big Bets (High effort, High impact) -> Sequenced Roadmap",
            "description": "Separate initiatives into immediate wins and longer-term strategic bets",
            "familyLabel": null
          },
          "matchId": "fb084591-9a46-4893-9b31-97623aa313d3",
          "evidence": "The deck presents Hopper's diversified travel offering as a quick win.",
          "position": 1,
          "objective": "Can we quickly win market share with a diversified travel offering?",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:30:56.985159+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": "doc-narrative-v1"
          }
        }
      ],
      "locked": true
    },
    {
      "page": 16,
      "type": "resolution",
      "title": "The slide uses a visual representation of a smartphone lock screen to show real-world application of the predictive algorithm.",
      "function": "present_solution",
      "rawType": "solution",
      "block": null,
      "metadata": {
        "slideType": "solution",
        "slideTypeCanon": {
          "name": "Solution",
          "slug": "solution",
          "status": "active",
          "canonId": "019de52d-0eb5-72ff-8b70-ba70a4199282",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 29,
        "componentCount": 4,
        "textChars": 144,
        "nDataPoints": 1,
        "notes": "The slide uses a visual representation of a smartphone lock screen to show real-world application of the predictive algorithm.",
        "elementsJson": [
          "action_title",
          "screenshot"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:52.998+00",
          "seconds": 2.407,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/16",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-16",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.85,
            "w": 0.35,
            "x": 0.6,
            "y": 0.08
          },
          "kind": "image",
          "text": "Smartphone lock screen showing Hopper push notifications",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Screenshot",
              "slug": "screenshot",
              "status": "active",
              "canonId": "019de52c-fd87-7509-8391-3d79fb339379",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "screenshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.998+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "deeb2855-15a5-4e23-b205-a933401e8559",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.15,
            "x": 0.05,
            "y": 0.65
          },
          "kind": "metric",
          "text": "95%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": null,
            "subkind": {
              "name": "Big number",
              "slug": "big-number",
              "status": "active",
              "canonId": "019de52c-fc70-70c8-b965-0584548a9204",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "big-number",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.998+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2e09fb5e-e911-43d3-b29f-a3947be1ab34",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "prediction accuracy: 95%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-a7818f5f3b18",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.4,
            "w": 0.4,
            "x": 0.05,
            "y": 0.2
          },
          "kind": "title",
          "text": "Hopper predicts the future price of travel with 95% accuracy.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:52.998+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "677ab6cd-4ea6-4b92-b523-c8efa24bf725",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Audience Definition",
            "slug": "audience-definition",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-7f2a-775d-aeee-ff099bcb7756",
            "version": 1,
            "bodyDocId": null,
            "description": "Six key questions: Who are they? What do they know? What do they believe? What do they care about? What do they fear? What decisions can they make?",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "4fd4cae4-e5e0-4a02-a99a-d8d6c9c2581d",
          "evidence": "The slide presents a specific product feature and its benefits, indicating a clear understanding of the target audience's needs.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 22:22:06.07326+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 16,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 17,
      "type": "resolution",
      "title": "The slide uses a product screenshot to demonstrate the user interface of the Price Freeze feature.",
      "function": "present_solution",
      "rawType": "solution",
      "block": null,
      "metadata": {
        "slideType": "solution",
        "slideTypeCanon": {
          "name": "Solution",
          "slug": "solution",
          "status": "active",
          "canonId": "019de52d-0eb5-72ff-8b70-ba70a4199282",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "overcrowded",
        "densityScore": 82,
        "componentCount": 9,
        "textChars": 591,
        "nDataPoints": 3,
        "notes": "The slide uses a product screenshot to demonstrate the user interface of the Price Freeze feature.",
        "elementsJson": [
          "headline_text",
          "paragraph",
          "screenshot"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:54.214+00",
          "seconds": 3.52,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/17",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-17",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Lock in any price from 1 hour to 14 days - and it's free if you book.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:35+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6d-3aac32b33c97",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.9,
            "w": 0.4,
            "x": 0.55,
            "y": 0.05
          },
          "kind": "image",
          "text": "Mobile app interface showing Price Freeze details",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Screenshot",
              "slug": "screenshot",
              "status": "active",
              "canonId": "019de52c-fd87-7509-8391-3d79fb339379",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "screenshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.214+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6ed6b5d8-5f73-4e9c-816e-9f67486f7b3e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.08,
            "x": 0.6,
            "y": 0.1
          },
          "kind": "metric",
          "text": "$339",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": null,
            "subkind": {
              "name": "Big number",
              "slug": "big-number",
              "status": "active",
              "canonId": "019de52c-fc70-70c8-b965-0584548a9204",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "big-number",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.214+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "19b01a9f-9279-40f6-a4a5-551a7925b2cd",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.08,
            "x": 0.75,
            "y": 0.1
          },
          "kind": "metric",
          "text": "$40",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": null,
            "subkind": {
              "name": "Big number",
              "slug": "big-number",
              "status": "active",
              "canonId": "019de52c-fc70-70c8-b965-0584548a9204",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "big-number",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.214+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cf824fc5-1b5c-4d75-a02f-9e57e6aa3b0a",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "average price: $60",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:35+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6d-3c227d41d21c",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.2,
            "w": 0.4,
            "x": 0.05,
            "y": 0.38
          },
          "kind": "paragraph",
          "text": "Customers come to Hopper with anxiety about pricing volatility. We use our proprietary price forecasting technology to create an option-like product that lets users ease that anxiety by locking-in prices for up to 14 days.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.214+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "3c48537d-7b71-4d60-b396-7bb07ba907f4",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.4,
            "x": 0.05,
            "y": 0.65
          },
          "kind": "paragraph",
          "text": "Users pay an average of $60 for this product, but if they go on to book the travel they can use the price of the Price Freeze towards their trip.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.214+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "9ae54d38-f3fa-463e-b074-b74c06e32edf",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.38,
            "x": 0.05,
            "y": 0.26
          },
          "kind": "title",
          "text": "Lock in any price from 1 hour to 14 days - and it's free if you book.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Action title",
              "slug": "action-title",
              "status": "active",
              "canonId": "019de52c-fb31-734c-a0f5-a3935b73135d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "action-title",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.214+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "54abbe04-36f8-4db8-8ddf-0db42d6716fc",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.25,
            "x": 0.05,
            "y": 0.18
          },
          "kind": "title",
          "text": "Price Freeze",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.214+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "60632634-fcbf-4031-adc5-ca81f2f77326",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Before-After-Bridge",
            "slug": "before-after-bridge",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-8604-7188-883f-42370288ad05",
            "version": 1,
            "bodyDocId": null,
            "description": "Narrative structure: Paint the before, show the after, explain the bridge",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "cb3b1275-0529-4b08-8252-1e4af459b2ac",
          "evidence": "The slide describes a product that helps users 'lock in' a price, implying a before-after scenario.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.8,
          "extraction": {
            "at": "2026-07-16 22:22:06.153249+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 17,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "8a0f0089-f4af-439b-ad7b-b13ee5488674",
          "evidence": "Explains the customer pain point (anxiety) and the solution (Price Freeze) to address it.",
          "framework": null,
          "confidence": 0.9,
          "extraction": {
            "at": "2026-05-02 16:42:54.214+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 17,
          "frameworkName": "value-proposition"
        }
      ],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 18,
      "type": "resolution",
      "title": "Includes a screenshot of the mobile app interface showing the 'Refundable Ticket' and 'Flexible Dates' options.",
      "function": "present_solution",
      "rawType": "solution",
      "block": null,
      "metadata": {
        "slideType": "solution",
        "slideTypeCanon": {
          "name": "Solution",
          "slug": "solution",
          "status": "active",
          "canonId": "019de52d-0eb5-72ff-8b70-ba70a4199282",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 70,
        "componentCount": 6,
        "textChars": 608,
        "nDataPoints": 4,
        "notes": "Includes a screenshot of the mobile app interface showing the 'Refundable Ticket' and 'Flexible Dates' options.",
        "elementsJson": [
          "headline_text",
          "action_title",
          "paragraph",
          "screenshot"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:53.092+00",
          "seconds": 2.189,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/18",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-18",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "The best option on the market for increasing refundability and flexibility.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:31+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-f12cd5ef4599",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.9,
            "w": 0.4,
            "x": 0.55,
            "y": 0.05
          },
          "kind": "image",
          "text": "Mobile app interface showing Refundable Ticket and Flexible Dates options",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Screenshot",
              "slug": "screenshot",
              "status": "active",
              "canonId": "019de52c-fd87-7509-8391-3d79fb339379",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "screenshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.092+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "30ba8f4d-6877-48b4-9662-ac1237db9bfd",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "refundability: 80%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:31+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-f53111de8859",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.4,
            "x": 0.05,
            "y": 0.45
          },
          "kind": "paragraph",
          "text": "We are functionally creating of our own refundable and flexible fare classes through a proprietary risk-based offering that is dynamically priced. Users pay 5-20% of trip cost to receive 80% of money back if they need to cancel - for any reason - or to be able to change their flights - even to another carrier or entirely different dates.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.092+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "13b6630b-349c-452a-ad5e-83b53648b140",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.4,
            "x": 0.05,
            "y": 0.3
          },
          "kind": "title",
          "text": "The best option on the market for increasing refundability and flexibility.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Action title",
              "slug": "action-title",
              "status": "active",
              "canonId": "019de52c-fb31-734c-a0f5-a3935b73135d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "action-title",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.092+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "be3a3821-e804-470f-9a76-2bfb5e84eab6",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.35,
            "x": 0.05,
            "y": 0.15
          },
          "kind": "title",
          "text": "Cancel/Change for Any Reason",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.092+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "60d70a69-1c9b-4f7d-ba04-74cfb4e454ca",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Value Proposition Canvas",
            "slug": "value-proposition-canvas",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-85a9-713f-8a1c-b6e5af5cc6cd",
            "version": 1,
            "bodyDocId": null,
            "description": "Mapping customer jobs/pains/gains to your value proposition",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "90b3a2ac-31da-450d-ac4a-5ba923b7c51b",
          "evidence": "The slide presents a product with specific benefits, such as 'refundability and flexibility', which are key components of a value proposition.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.6,
          "extraction": {
            "at": "2026-07-16 22:22:06.235189+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 18,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 19,
      "type": "resolution",
      "title": "Includes a visual mockup of the mobile app interface showing the product offer.",
      "function": "present_solution",
      "rawType": "solution",
      "block": null,
      "metadata": {
        "slideType": "solution",
        "slideTypeCanon": {
          "name": "Solution",
          "slug": "solution",
          "status": "active",
          "canonId": "019de52d-0eb5-72ff-8b70-ba70a4199282",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 68,
        "componentCount": 6,
        "textChars": 616,
        "nDataPoints": 1,
        "notes": "Includes a visual mockup of the mobile app interface showing the product offer.",
        "elementsJson": [
          "headline_text",
          "action_title",
          "paragraph",
          "screenshot"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:54.135+00",
          "seconds": 3.008,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/19",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-19",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Weather, delays, missed connections - all handled in the app with a few taps.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6c-56eb44d03d54",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.9,
            "w": 0.4,
            "x": 0.55,
            "y": 0.05
          },
          "kind": "image",
          "text": "Mobile app interface showing Disruption Protection offer",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Screenshot",
              "slug": "screenshot",
              "status": "active",
              "canonId": "019de52c-fd87-7509-8391-3d79fb339379",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "screenshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.135+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "3d646723-fb7b-4ed4-9097-65ec58d0b55e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.2,
            "w": 0.4,
            "x": 0.05,
            "y": 0.45
          },
          "kind": "paragraph",
          "text": "Users who purchase this product no longer need to worry about day-of-travel disruptions. Should any happen, they are offered a free rebooking on another flight - even if it’s a different airline - and if that’s not possible then the trip cost is reimbursed.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.135+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4cafb5ae-29c7-4922-a36f-53d550d6bbce",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.4,
            "x": 0.05,
            "y": 0.75
          },
          "kind": "paragraph",
          "text": "We dynamically price the risk of the offering and incorporate predictive data to make recommendations on whether to purchase it.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.135+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d9b7a0d5-b48a-4675-8d76-4ee008ec7c76",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.4,
            "x": 0.05,
            "y": 0.32
          },
          "kind": "title",
          "text": "Weather, delays, missed connections - all handled in the app with a few taps.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Action title",
              "slug": "action-title",
              "status": "active",
              "canonId": "019de52c-fb31-734c-a0f5-a3935b73135d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "action-title",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.135+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f161c08b-b7ae-4fac-95aa-0a1554e67a1b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.35,
            "x": 0.05,
            "y": 0.14
          },
          "kind": "title",
          "text": "Disruption Protection",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.135+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8c6071b3-767a-410e-942c-d3e608a88480",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Problem-Agitate-Solve (PAS)",
            "slug": "problem-agitate-solve-pas",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-869f-7564-8d42-de54ed29ab90",
            "version": 1,
            "bodyDocId": null,
            "description": "Identify problem, agitate the pain, present the solution",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "d189c6ab-0b2a-4ddd-bb45-5c834cf9da58",
          "evidence": "The slide describes a problem (day-of-travel disruptions) and offers a solution (Disruption Protection), which is a key component of the PAS framework.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 22:22:06.313323+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 19,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 20,
      "type": "evidence",
      "title": "The slide uses the company mascot (a rabbit) to emphasize the key metric.",
      "function": "show_traction",
      "rawType": "traction",
      "block": null,
      "metadata": {
        "slideType": "traction",
        "slideTypeCanon": {
          "name": "Traction",
          "slug": "traction",
          "status": "active",
          "canonId": "019de52d-0edd-72ab-820f-3ebc71a9c542",
          "version": 1,
          "description": null
        },
        "function": "show_traction",
        "functionCanon": {
          "name": "Show traction",
          "slug": "show_traction",
          "status": "active",
          "canonId": "019de52d-16a8-756a-9b38-a7d35420561d",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 41,
        "componentCount": 5,
        "textChars": 198,
        "nDataPoints": 1,
        "notes": "The slide uses the company mascot (a rabbit) to emphasize the key metric.",
        "elementsJson": [
          "big_number",
          "paragraph",
          "photo"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:53.271+00",
          "seconds": 1.971,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/20",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-20",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "+50% Of total Hopper revenue is derived from our own fintech ancillary products.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-b97d2ce2b23a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.6,
            "w": 0.3,
            "x": 0.07,
            "y": 0.2
          },
          "kind": "image",
          "text": "Hopper mascot",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Illustration",
              "slug": "illustration",
              "status": "active",
              "canonId": "019de52c-fe76-7772-a5ac-c0b7294d7615",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "illustration",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.271+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "607d00b8-bcb7-4b41-891b-4c6ee52fd02a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.2,
            "w": 0.35,
            "x": 0.48,
            "y": 0.3
          },
          "kind": "metric",
          "text": "+50%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": null,
            "subkind": {
              "name": "Big number",
              "slug": "big-number",
              "status": "active",
              "canonId": "019de52c-fc70-70c8-b965-0584548a9204",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "big-number",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.271+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a01dae1d-c28c-47e4-8831-674a34be0a23",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Revenue contribution: +50%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6a-bfe2e756df48",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.43,
            "x": 0.44,
            "y": 0.53
          },
          "kind": "paragraph",
          "text": "Of total Hopper revenue is derived from our own fintech ancillary products.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.271+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d09da334-3c28-4570-bedd-0e7bac22d1a0",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 20,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 11,
          "name": "Solution",
          "beatId": "a470ccfe-3f9e-4cf1-9191-010926a2d38b",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Solution (Provide relief)",
            "slug": "problem-agitate-solution-solution-provide-relief",
            "status": "active",
            "canonId": "019dd9b8-0fee-73e9-9ae5-799c7f3895cd",
            "version": 1,
            "description": null
          },
          "evidence": "The deck presents Hopper's diversified travel offering and unique fintech products.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 21,
      "type": "setup",
      "title": "The slide describes a classic flywheel business model.",
      "function": "present_solution",
      "rawType": "business_model",
      "block": null,
      "metadata": {
        "slideType": "business_model",
        "slideTypeCanon": {
          "name": "Business model",
          "slug": "business_model",
          "status": "active",
          "canonId": "019de52d-0fa6-7104-86d0-e5781f8b8b45",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 65,
        "componentCount": 6,
        "textChars": 524,
        "nDataPoints": 1,
        "notes": "The slide describes a classic flywheel business model.",
        "elementsJson": [
          "headline_text",
          "action_title",
          "paragraph",
          "screenshot"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:54.505+00",
          "seconds": 2.942,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/21",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-21",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Carrot cash lowers price of travel and increases customer loyalty.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6c-b2739ae06ad7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 1,
            "w": 0.35,
            "x": 0.63,
            "y": 0
          },
          "kind": "image",
          "text": "Hopper Wallet UI showing $50.00 Carrot Cash",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Screenshot",
              "slug": "screenshot",
              "status": "active",
              "canonId": "019de52c-fd87-7509-8391-3d79fb339379",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "screenshot",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.505+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7edbd51a-ecc2-4084-9d67-6dc90e134455",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.45,
            "x": 0.05,
            "y": 0.72
          },
          "kind": "paragraph",
          "text": "Lower prices for customers lead to higher conversion rates and improved retention, which in turn lets us lower prices more and thus fuels our growth loop.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.505+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "410f4218-c491-4cda-b92a-d41f65b50f88",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.45,
            "x": 0.05,
            "y": 0.48
          },
          "kind": "paragraph",
          "text": "Our innovative and new revenue streams allow us to both lower the price of the underlying travel commodity AND improve our profitability at the same time.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.505+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f248bbde-1a04-44c9-a42a-c7e55adc61f9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.45,
            "x": 0.05,
            "y": 0.35
          },
          "kind": "title",
          "text": "Carrot cash lowers price of travel and increases customer loyalty.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Action title",
              "slug": "action-title",
              "status": "active",
              "canonId": "019de52c-fb31-734c-a0f5-a3935b73135d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "action-title",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.505+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "520d73bc-7cb7-41f5-a8b4-32b20ceddbb1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.45,
            "x": 0.05,
            "y": 0.18
          },
          "kind": "title",
          "text": "Fintech Spend Lets Us Lower Travel Prices",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.505+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ce5e5737-79d5-4725-a21c-f26f316cdb93",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Flywheel",
            "slug": "flywheel",
            "status": "active",
            "bestFor": null,
            "canonId": "019de52d-1ad8-75ab-9027-a40365590152",
            "version": 1,
            "bodyDocId": null,
            "description": null,
            "familyLabel": null,
            "categoryName": null,
            "categorySlug": null
          },
          "agent": null,
          "layer": "slide",
          "agents": null,
          "matchId": "7df4de48-f4f1-4071-8b65-dc67d8214094",
          "evidence": "The slide describes a growth loop where fintech spend leads to lower prices, higher conversion rates, and improved retention, which is a key component of a flywheel.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.8,
          "extraction": {
            "at": "2026-07-16 22:22:06.433219+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 21,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "af0afcf1-a85d-444e-986d-af2f6144387b",
          "evidence": "The text explicitly mentions 'fuels our growth loop' and describes a self-reinforcing cycle of lower prices and higher retention.",
          "framework": null,
          "confidence": 1,
          "extraction": {
            "at": "2026-05-02 16:42:54.505+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 21,
          "frameworkName": "flywheel"
        }
      ],
      "arcBeats": [
        {
          "to": 25,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 21,
          "name": "Satisfaction",
          "beatId": "a352804f-fdb9-4eb4-aec1-b0d03c94c479",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Satisfaction",
            "slug": "monroes-sequence-satisfaction",
            "status": "active",
            "canonId": "019dd9b8-16a5-73c8-a3ce-00850dc2cbd8",
            "version": 1,
            "description": null
          },
          "evidence": "The deck showcases Hopper's traction and growth.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 22,
      "type": "evidence",
      "function": "show_traction",
      "rawType": "traction",
      "block": null,
      "metadata": {
        "slideType": "traction",
        "slideTypeCanon": {
          "name": "Traction",
          "slug": "traction",
          "status": "active",
          "canonId": "019de52d-0edd-72ab-820f-3ebc71a9c542",
          "version": 1,
          "description": null
        },
        "function": "show_traction",
        "functionCanon": {
          "name": "Show traction",
          "slug": "show_traction",
          "status": "active",
          "canonId": "019de52d-16a8-756a-9b38-a7d35420561d",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 65,
        "componentCount": 6,
        "textChars": 432,
        "nDataPoints": 15,
        "notes": null,
        "elementsJson": [
          "action_title",
          "subtitle_text",
          "bar_chart_stacked"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:53.925+00",
          "seconds": 2.233,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/22",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-22",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Users who installed our app in 2020 or earlier will contribute 100% more revenue to Hopper in 2021 than they did in 2020 itself!",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:31+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6b-0e44b9573937",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.55,
            "w": 0.76,
            "x": 0.12,
            "y": 0.35
          },
          "kind": "chart",
          "text": "Cohort Contribution to Annual Revenue",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Chart",
              "slug": "chart",
              "status": "active",
              "canonId": "019de52c-f9a0-76ef-adc6-0b859109d1f8",
              "version": 1,
              "description": "Quantitative chart."
            },
            "tool": null,
            "subkind": {
              "name": "Stacked bar chart",
              "slug": "bar-stacked",
              "status": "active",
              "canonId": "019de52c-feec-74bf-9028-15b74f84f0a7",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bar-stacked",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.925+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d61fc275-fd98-43e1-a9ab-b9e832a0a1fb",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.58,
            "x": 0.21,
            "y": 0.35
          },
          "kind": "legend",
          "text": "2021 Cohort, 2020 Cohort, 2019 Cohort, 2018 Cohort, 2017 Cohort, 2016 Cohort",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Legend",
              "slug": "legend",
              "status": "active",
              "canonId": "31361933-3d22-4c70-bbad-0801e9fffc0c",
              "version": 1,
              "description": "Color/symbol decoder placed adjacent to a chart or diagram."
            },
            "tool": null,
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.925+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "eeea943f-78de-4bf7-a831-898cf37cfed9",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Revenue growth: 100%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:31+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6b-11397d904129",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.07,
            "w": 0.84,
            "x": 0.08,
            "y": 0.18
          },
          "kind": "paragraph",
          "text": "Users who installed our app in 2020 or earlier will contribute 100% more revenue to Hopper in 2021 than they did in 2020 itself!",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.925+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ef8e3708-dad8-4f89-8766-28bd0e559505",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.84,
            "x": 0.08,
            "y": 0.11
          },
          "kind": "title",
          "text": "Accelerating Already Great Cohort Retention",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.925+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a41e7c6c-3abd-43e8-b5e1-c575b6b62bd9",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 21,
          "name": "Satisfaction",
          "beatId": "a352804f-fdb9-4eb4-aec1-b0d03c94c479",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Satisfaction",
            "slug": "monroes-sequence-satisfaction",
            "status": "active",
            "canonId": "019dd9b8-16a5-73c8-a3ce-00850dc2cbd8",
            "version": 1,
            "description": null
          },
          "evidence": "The deck showcases Hopper's traction and growth.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 23,
      "type": "setup",
      "title": "The chart uses a cohort-based line graph to demonstrate retention trends, with Hopper cohorts showing growth or stability compared to the dashed line representi",
      "function": "compare_peers",
      "rawType": "peer_benchmark",
      "block": null,
      "metadata": {
        "slideType": "peer_benchmark",
        "slideTypeCanon": {
          "name": "Peer benchmark",
          "slug": "peer_benchmark",
          "status": "active",
          "canonId": "019de52d-08f0-7158-a78d-d7b5331fefaf",
          "version": 1,
          "description": null
        },
        "function": "compare_peers",
        "functionCanon": {
          "name": "Compare peers",
          "slug": "compare_peers",
          "status": "active",
          "canonId": "019de52d-1453-72ba-a367-9ba3d34c1630",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 70,
        "componentCount": 6,
        "textChars": 546,
        "nDataPoints": 15,
        "notes": "The chart uses a cohort-based line graph to demonstrate retention trends, with Hopper cohorts showing growth or stability compared to the dashed line representing Airbnb.",
        "elementsJson": [
          "headline_text",
          "action_title",
          "subtitle_text",
          "line_chart",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:59.773+00",
          "seconds": 7.944,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/23",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-23",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Net negative revenue churn is not based only on improved unit economics and category diversification, but also because of industry-leading booking retention.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6c-cba5b7eef850",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.5,
            "w": 0.82,
            "x": 0.088,
            "y": 0.35
          },
          "kind": "chart",
          "text": "Cohort retention chart",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Chart",
              "slug": "chart",
              "status": "active",
              "canonId": "019de52c-f9a0-76ef-adc6-0b859109d1f8",
              "version": 1,
              "description": "Quantitative chart."
            },
            "tool": null,
            "subkind": {
              "name": "Line chart",
              "slug": "line",
              "status": "active",
              "canonId": "019de52c-ff62-778f-8f6c-a952ceae8677",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "line",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:59.773+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f7c91875-b745-4c47-98d2-08718b04cfdf",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Booking Retention",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6c-cc79b0f0a396",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.82,
            "x": 0.088,
            "y": 0.21
          },
          "kind": "paragraph",
          "text": "Net negative revenue churn is not based only on improved unit economics and category diversification, but also because of industry-leading booking retention.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:59.773+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ffbf9640-d509-49fb-82b2-6b25cf76671f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.82,
            "x": 0.088,
            "y": 0.96
          },
          "kind": "source-note",
          "text": "Hopper 2020 adjusted for COVID (normalizing to 2019 travel volumes based on TSA reported 62.5% decline in airport traffic); Airbnb data through 2019 (from S-1)",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Source note",
              "slug": "source-note",
              "status": "active",
              "canonId": "23484952-494b-4a5e-b1ad-550d0d70e948",
              "version": 1,
              "description": "Attribution / source / caveat placed at the slide footer. Numbered footnotes use attrs.numbered."
            },
            "tool": null,
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:59.773+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "3d0a7dee-1663-4708-bd87-8c5ca1ed3543",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.45,
            "x": 0.088,
            "y": 0.135
          },
          "kind": "title",
          "text": "Booking Retention Also Leads Peers",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:59.773+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "fa4d0aea-d56d-494c-a0ea-1ca0624d6ea3",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [
        {
          "matchId": "e0a7caa2-8b97-4e45-bcf4-48d0884be464",
          "evidence": "The chart tracks specific user groups (2016-2019 cohorts) over time to measure retention.",
          "framework": null,
          "confidence": 0.95,
          "extraction": {
            "at": "2026-05-02 16:42:59.773+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 23,
          "frameworkName": "cohort-analysis"
        }
      ],
      "arcBeats": [
        {
          "to": 25,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 21,
          "name": "Satisfaction",
          "beatId": "a352804f-fdb9-4eb4-aec1-b0d03c94c479",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Satisfaction",
            "slug": "monroes-sequence-satisfaction",
            "status": "active",
            "canonId": "019dd9b8-16a5-73c8-a3ce-00850dc2cbd8",
            "version": 1,
            "description": null
          },
          "evidence": "The deck showcases Hopper's traction and growth.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 24,
      "type": "resolution",
      "title": "The slide uses a visual path with milestones to represent company history.",
      "function": "plan_implementation",
      "rawType": "timeline",
      "block": null,
      "metadata": {
        "slideType": "timeline",
        "slideTypeCanon": {
          "name": "Timeline",
          "slug": "timeline",
          "status": "active",
          "canonId": "019de52d-0851-75eb-b758-ea2965e7739a",
          "version": 1,
          "description": null
        },
        "function": "plan_implementation",
        "functionCanon": {
          "name": "Plan implementation",
          "slug": "plan_implementation",
          "status": "active",
          "canonId": "019de52d-14a2-77ea-b210-d6a95eed4823",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 58,
        "componentCount": 6,
        "textChars": 463,
        "nDataPoints": 0,
        "notes": "The slide uses a visual path with milestones to represent company history.",
        "elementsJson": [
          "headline_text",
          "timeline_visual",
          "photo"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:57.82+00",
          "seconds": 5.978,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/24",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-24",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.6,
            "w": 1,
            "x": 0,
            "y": 0.3
          },
          "kind": "diagram",
          "text": "Visual path showing progression over time",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Diagram",
              "slug": "diagram",
              "status": "active",
              "canonId": "019de52c-f9f0-734a-81de-15382ff28c65",
              "version": 1,
              "description": "Schematic or relational diagram."
            },
            "tool": null,
            "subkind": {
              "name": "Timeline",
              "slug": "timeline",
              "status": "active",
              "canonId": "019de52d-03c5-73fc-84aa-4180cbf0f5cf",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "timeline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:57.82+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d60a6a32-d8bb-47ff-aa6c-a3d70d085cb4",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.2,
            "x": 0.58,
            "y": 0.45
          },
          "kind": "list",
          "text": "2019/20 - Fintech: Created data-driven ancillary products that are high margin and add unique customer value.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Timeline item",
              "slug": "timeline-item",
              "status": "active",
              "canonId": "019de52c-fd0e-74ce-9443-440fbd8c23b4",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "timeline-item",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:57.82+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "38d2d548-ae07-4bf9-8842-44498cd2eda0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.2,
            "x": 0.185,
            "y": 0.45
          },
          "kind": "list",
          "text": "2015 - Prediction App: Used massive data set to launch app centred on price predictions.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Timeline item",
              "slug": "timeline-item",
              "status": "active",
              "canonId": "019de52c-fd0e-74ce-9443-440fbd8c23b4",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "timeline-item",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:57.82+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "66ee7d56-0dd3-4dca-a4db-0e2743f1d558",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.2,
            "x": 0.755,
            "y": 0.23
          },
          "kind": "list",
          "text": "2021 - Hopper Cloud: Syndicate infrastructure, content, fintech and machine learning to others.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Timeline item",
              "slug": "timeline-item",
              "status": "active",
              "canonId": "019de52c-fd0e-74ce-9443-440fbd8c23b4",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "timeline-item",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:57.82+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b3da31ba-63d2-4617-8576-81c1f8b709a4",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.2,
            "x": 0.39,
            "y": 0.45
          },
          "kind": "list",
          "text": "2016/18 - Marketplace: Developed world-class travel booking functionality in largest segments of consumer spend.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Timeline item",
              "slug": "timeline-item",
              "status": "active",
              "canonId": "019de52c-fd0e-74ce-9443-440fbd8c23b4",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "timeline-item",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:57.82+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c854bbaf-0af9-40de-a234-4ae9002e4d04",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.48,
            "x": 0.088,
            "y": 0.135
          },
          "kind": "title",
          "text": "The Hopper Journey",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:57.82+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d4d62d06-fdf0-442b-95cd-1dc847652200",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [
        {
          "matchId": "dd7479e8-cfdc-4fc8-af9f-097748f4ea02",
          "evidence": "Chronological progression of company milestones",
          "framework": null,
          "confidence": 1,
          "extraction": {
            "at": "2026-05-02 16:42:57.82+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 24,
          "frameworkName": "timeline"
        }
      ],
      "arcBeats": [
        {
          "to": 25,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 21,
          "name": "Satisfaction",
          "beatId": "a352804f-fdb9-4eb4-aec1-b0d03c94c479",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Satisfaction",
            "slug": "monroes-sequence-satisfaction",
            "status": "active",
            "canonId": "019dd9b8-16a5-73c8-a3ce-00850dc2cbd8",
            "version": 1,
            "description": null
          },
          "evidence": "The deck showcases Hopper's traction and growth.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 25,
      "type": "resolution",
      "function": "present_solution",
      "rawType": "solution",
      "block": null,
      "metadata": {
        "slideType": "solution",
        "slideTypeCanon": {
          "name": "Solution",
          "slug": "solution",
          "status": "active",
          "canonId": "019de52d-0eb5-72ff-8b70-ba70a4199282",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 34,
        "componentCount": 3,
        "textChars": 462,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "icon_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:53.896+00",
          "seconds": 1.987,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/25",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-25",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.25,
            "w": 0.84,
            "x": 0.08,
            "y": 0.25
          },
          "kind": "image",
          "text": null,
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Icon grid",
              "slug": "icon-grid",
              "status": "active",
              "canonId": "019de52c-fdfe-749d-9990-1db465a3eed4",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "icon-grid",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.896+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "3ad76803-aaeb-47f3-a353-81eeadc0018e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.84,
            "x": 0.08,
            "y": 0.5
          },
          "kind": "list",
          "text": "Data and Fintech Products via API: Fintech products via API for travel companies to offer on their own platforms. Modular Travel Categories: Using our travel agency to add complementary categories of travel to partners. Entire White-Label Travel Offerings: End-to-end travel portals with all of our travel content and ancillaries. Full-Stack Cloud Offering for Travel: Enabling plug and play access to our industry leading technology stack.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.896+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "532fcb39-d142-4bdb-a39a-28a26c15197c",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.5,
            "x": 0.25,
            "y": 0.12
          },
          "kind": "title",
          "text": "Hopper Cloud Offerings",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:53.896+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8cb7e501-75c3-4cd0-b803-739b755f4007",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "arc": {
            "name": "Problem-Agitate-Solution",
            "slug": "problem-agitate-solution",
            "status": "active",
            "bestFor": "Sales pitches, urgency-driven, competitive displacement",
            "canonId": "019dd956-5ec6-70f9-9fd8-fdbaaff39acf",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Problem (Identify pain) -> Agitate (Make it worse) -> Solution (Provide relief)",
            "description": null,
            "familyLabel": null
          },
          "from": 21,
          "name": "Satisfaction",
          "beatId": "a352804f-fdb9-4eb4-aec1-b0d03c94c479",
          "matchId": "fd9f9f7b-ac13-4acd-94d9-61b20652d7c7",
          "beatType": {
            "name": "Satisfaction",
            "slug": "monroes-sequence-satisfaction",
            "status": "active",
            "canonId": "019dd9b8-16a5-73c8-a3ce-00850dc2cbd8",
            "version": 1,
            "description": null
          },
          "evidence": "The deck showcases Hopper's traction and growth.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 0.8
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 26,
      "type": "resolution",
      "title": "The slide uses overlapping circles to represent market segments, though the visual representation of the $200B vs $662B vs $264B is not strictly proportional.",
      "function": "size_opportunity",
      "rawType": "market_sizing",
      "block": null,
      "metadata": {
        "slideType": "market_sizing",
        "slideTypeCanon": {
          "name": "Market sizing",
          "slug": "market_sizing",
          "status": "active",
          "canonId": "019de52d-08c8-756c-8664-733b73a7ee7b",
          "version": 1,
          "description": null
        },
        "function": "size_opportunity",
        "functionCanon": {
          "name": "Size opportunity",
          "slug": "size_opportunity",
          "status": "active",
          "canonId": "019de52d-147b-7568-8828-a74a27697618",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 58,
        "componentCount": 5,
        "textChars": 495,
        "nDataPoints": 3,
        "notes": "The slide uses overlapping circles to represent market segments, though the visual representation of the $200B vs $662B vs $264B is not strictly proportional.",
        "elementsJson": [
          "headline_text",
          "paragraph",
          "other"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:54.241+00",
          "seconds": 2.231,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/26",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-26",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "The global demand for travel fintech services is $200.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:31+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6b-5606ff0e29cf",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.9,
            "w": 0.6,
            "x": 0.4,
            "y": 0.05
          },
          "kind": "diagram",
          "text": "Venn diagram showing Travel Fintech ($200B) overlapping with Online Travel ($662B) and Mobile Travel ($264B)",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Diagram",
              "slug": "diagram",
              "status": "active",
              "canonId": "019de52c-f9f0-734a-81de-15382ff28c65",
              "version": 1,
              "description": "Schematic or relational diagram."
            },
            "tool": null,
            "subkind": {
              "name": "Venn diagram",
              "slug": "venn",
              "status": "active",
              "canonId": "019de52d-0463-710d-b529-cce18d828d2f",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "venn",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.241+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2c550088-e1f2-40a4-87cf-c4742aedd383",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "TAM: $200B",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "name": "Quantification",
              "slug": "quantification",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-47ab-72ce-a079-aab1f5299e88",
              "version": 1,
              "bodyDocId": null,
              "description": "Translating a claim into numbers, charts, or tables.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": "primary",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-27 14:31:31+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd952-9439-766e-8b6b-5933795e7a85",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.35,
            "w": 0.35,
            "x": 0.05,
            "y": 0.3
          },
          "kind": "paragraph",
          "text": "The global demand for travel fintech services is $200. If Hopper Cloud financial services powered all OTAs, price comparison sites, travel agencies, rewards programs, corporate TMCs and supplier websites, this would increase the total consumer spend related to travel by $200B annually.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.241+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d347ac82-a880-4450-91c9-f81551f81377",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.35,
            "x": 0.05,
            "y": 0.13
          },
          "kind": "title",
          "text": "Hopper Cloud Total Market Opportunity",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:54.241+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8ff18a7c-3c4f-4f0d-a4e9-2902b58a8076",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    },
    {
      "page": 27,
      "type": "resolution",
      "title": "Uses carrot icons as bullet points, consistent with the Hopper brand identity.",
      "function": "present_solution",
      "rawType": "solution",
      "block": null,
      "metadata": {
        "slideType": "solution",
        "slideTypeCanon": {
          "name": "Solution",
          "slug": "solution",
          "status": "active",
          "canonId": "019de52d-0eb5-72ff-8b70-ba70a4199282",
          "version": 1,
          "description": null
        },
        "function": "present_solution",
        "functionCanon": {
          "name": "Present solution",
          "slug": "present_solution",
          "status": "active",
          "canonId": "019de52d-15b8-71da-bd23-2b767850cbce",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 63,
        "componentCount": 6,
        "textChars": 610,
        "nDataPoints": 0,
        "notes": "Uses carrot icons as bullet points, consistent with the Hopper brand identity.",
        "elementsJson": [
          "headline_text",
          "bullet_list"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:55.501+00",
          "seconds": 3.461,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/27",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-27",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.06,
            "w": 0.1,
            "x": 0.01,
            "y": 0.02
          },
          "kind": "image",
          "text": "Hopper",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Logo",
              "slug": "logo",
              "status": "active",
              "canonId": "019de52c-fdaf-743d-94c4-d7c6a0e55302",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "logo",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:55.501+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "0705f181-e573-4cfd-8787-4b8706630567",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.78,
            "x": 0.13,
            "y": 0.46
          },
          "kind": "list",
          "text": "Straightforward economics: partner is paid an upfront commission on all ancillary sales that is predetermined by ancillary line.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:55.501+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5342cfe7-e69b-4258-a362-a95107e643cc",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.78,
            "x": 0.13,
            "y": 0.28
          },
          "kind": "list",
          "text": "Hopper takes on all risk, customer servicing and claims resolutions. Partner only has to integrate to API to receive dynamic pricing and pass purchase data.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:55.501+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "63cc8dcd-8426-4d21-97fb-7f463830ef86",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.78,
            "x": 0.13,
            "y": 0.64
          },
          "kind": "list",
          "text": "We have guides on merchandising best practices, a library of design components and benchmarks on performance, all of which are available to partners.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:55.501+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "9dd734ff-6dd2-478a-a7d7-efd7052b06a5",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.78,
            "x": 0.13,
            "y": 0.82
          },
          "kind": "list",
          "text": "Developer documentation is available to guide partner’s product team through the integration and our solutions engineers are ready to assist.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "List",
              "slug": "list",
              "status": "active",
              "canonId": "019de52c-f94b-779b-a53b-fd4904a5f4d2",
              "version": 1,
              "description": "Bullet or numbered list."
            },
            "tool": null,
            "subkind": {
              "name": "Bullet list",
              "slug": "bullet",
              "status": "active",
              "canonId": "019de52c-fc98-7169-a083-5cab805076ca",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bullet",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:55.501+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ee60f9c3-f770-45d4-bb18-24bc578eb117",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.45,
            "x": 0.087,
            "y": 0.135
          },
          "kind": "title",
          "text": "Integrating is Straightforward",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:55.501+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "49e3f41c-55c7-48ca-8c56-3d9f3b21fa6f",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    },
    {
      "page": 28,
      "type": "setup",
      "function": "state_next_steps",
      "rawType": "closing_ask",
      "block": null,
      "metadata": {
        "slideType": "closing_ask",
        "slideTypeCanon": {
          "name": "Closing ask",
          "slug": "closing_ask",
          "status": "active",
          "canonId": "019de52d-0aa4-750f-8aa1-8d622dd99f5c",
          "version": 1,
          "description": null
        },
        "function": "state_next_steps",
        "functionCanon": {
          "name": "State next steps",
          "slug": "state_next_steps",
          "status": "active",
          "canonId": "019de52d-14ca-70ac-b534-971f458cdf29",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 3,
        "componentCount": 2,
        "textChars": 21,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "other"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 16:42:56.316+00",
          "seconds": 4.125,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5eff-723e-9be9-2e5e050be174/28",
        "deck": "/decks/019dd923-5eff-723e-9be9-2e5e050be174",
        "deckAnchor": "/decks/019dd923-5eff-723e-9be9-2e5e050be174#slide-28",
        "deckJson": "/decks/019dd923-5eff-723e-9be9-2e5e050be174.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.08,
            "w": 0.16,
            "x": 0.42,
            "y": 0.46
          },
          "kind": "image",
          "text": "Hopper logo",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Image",
              "slug": "image",
              "status": "active",
              "canonId": "019de52c-f978-701f-a720-51d029d769e7",
              "version": 1,
              "description": "Photo, illustration, screenshot or icon."
            },
            "tool": null,
            "subkind": {
              "name": "Logo",
              "slug": "logo",
              "status": "active",
              "canonId": "019de52c-fdaf-743d-94c4-d7c6a0e55302",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "logo",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:56.316+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "9498d36b-5d3d-4c17-ab9d-0ebbd094709f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.08,
            "x": 0.86,
            "y": 0.9
          },
          "kind": "title",
          "text": "Thank you!",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Title",
              "slug": "title",
              "status": "active",
              "canonId": "019de52c-f7dd-76d9-b848-b1f12bd85cf4",
              "version": 1,
              "description": "Slide title or headline."
            },
            "tool": null,
            "subkind": {
              "name": "Headline",
              "slug": "headline",
              "status": "active",
              "canonId": "019de52c-fae1-7463-9a7c-d60668eced0d",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "headline",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 16:42:56.316+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7b1ddce6-472d-4be0-9589-6354eefc79cb",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Storytelling: the closing ask",
            "slug": "closing-ask",
            "status": "active",
            "bestFor": null,
            "canonId": "019df269-24e0-70ab-8dd9-983832c1c665",
            "version": 1,
            "bodyDocId": "019df269-24bc-7554-b88d-245127606b8d",
            "description": "The single most important slide in the deck — after the cover. The final",
            "familyLabel": "narrative-block",
            "categoryName": "Narrative & Transformation",
            "categorySlug": "narrative-transformation"
          },
          "agent": "storyteller",
          "layer": "slide",
          "agents": [
            "storyteller"
          ],
          "matchId": "b70aeffa-972c-4f3b-bf49-0fe3132bebce",
          "evidence": "type: closing_ask",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.9,
          "extraction": {
            "at": "2026-07-16 22:22:01.02121+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 28,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    }
  ],
  "arcBeats": [
    {
      "from": 1,
      "to": 5,
      "label": "Problem",
      "description": "The deck identifies the pain points in the current travel app landscape."
    },
    {
      "from": 6,
      "to": 10,
      "label": "Agitate",
      "description": "The deck highlights the challenges faced by current travel apps."
    },
    {
      "from": 11,
      "to": 20,
      "label": "Solution",
      "description": "The deck presents Hopper's diversified travel offering and unique fintech products."
    },
    {
      "from": 21,
      "to": 25,
      "label": "Satisfaction",
      "description": "The deck showcases Hopper's traction and growth."
    }
  ],
  "loops": [
    {
      "from": 6,
      "to": 10,
      "label": "Cost Of Inaction",
      "description": "What if we don't invest in a travel super app?"
    },
    {
      "from": 11,
      "to": 15,
      "label": "Quick Win Big Bet",
      "description": "Can we quickly win market share with a diversified travel offering?"
    }
  ]
}