{
  "schemaVersion": "deck-intelligence.v1",
  "id": "019dd923-5ca1-7489-b63a-590cdb2b1634",
  "slug": "afa6aced2ef5a214",
  "title": "Internet Advertising Revenue Report",
  "subtitle": "PwC",
  "author": "PwC",
  "pageCount": 26,
  "kind": "consulting-deck",
  "orientation": "landscape",
  "aspectRatio": 1.778,
  "document": {
    "id": "019dd923-5ca1-7489-b63a-590cdb2b1634",
    "slug": "afa6aced2ef5a214",
    "title": "Internet Advertising Revenue Report",
    "rawTitle": "Internet Advertising Revenue Report",
    "authorId": "PwC",
    "authorName": "PwC",
    "authorDisplay": "PwC",
    "kind": {
      "slug": "consulting-deck",
      "label": "Consulting deck"
    },
    "sourceType": {
      "slug": "strategy_consulting",
      "label": "Strategy consulting"
    },
    "fileName": "2021-Internet-Advertising-Revenue-Report.pdf",
    "sourceUrl": "https://www.iab.com/wp-content/uploads/2021/04/IAB_2020-Internet-Advertising-Revenue-Report-Webinar_4.7.21-PwC-1.pdf",
    "sourceDate": "2021-04-07 00:00:00",
    "presentationDate": null,
    "ingestedAt": "2026-04-23 20:51:43+00",
    "status": "ready",
    "pageCount": 26,
    "orientation": "landscape",
    "aspectRatio": 1.778,
    "targetCompany": null,
    "targetTicker": null,
    "metadata": {
      "local_root": "/tmp/legacy-images/afa6aced2ef5a214",
      "origin_corpus": "consulting"
    }
  },
  "coverage": {
    "pageCount": 26,
    "pagesIndexed": 26,
    "pagesWithImages": 26,
    "pagesWithMetadata": 26,
    "imageCoveragePct": 100,
    "metadataCoveragePct": 100,
    "componentCount": 119,
    "chartCount": 16,
    "metricSlides": 0,
    "toolMatches": 65,
    "documentToolMatches": 0,
    "frameworkMatches": 10,
    "arcMatches": 2,
    "beatMatches": 8,
    "loopMatches": 5,
    "patternMatches": 0,
    "storymakersMatch": true,
    "scoreAvailable": true,
    "reviewAvailable": true,
    "activistThesisAvailable": false,
    "pitchdeckMetadataAvailable": false,
    "pitchdeckProfileAvailable": false
  },
  "blocks": [],
  "matches": {
    "arcs": [
      {
        "arc": {
          "name": "The Consultant's Gambit",
          "slug": "consultants-gambit",
          "status": "active",
          "bestFor": "Business cases, project proposals, strategic recommendations",
          "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
        "evidence": "Setup-methodology p1-3, COVID complication framed p5-8, evidence p9-23, PwC/IAB outro p24-26.",
        "isPrimary": true,
        "confidence": 55,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "arc": {
          "name": "The Triple Take",
          "slug": "triple-take",
          "status": "active",
          "bestFor": "Data-driven presentations, research findings",
          "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
          "description": null,
          "familyLabel": null,
          "categoryName": "Analysis & Information",
          "categorySlug": "analysis-information"
        },
        "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
        "evidence": "Mostly Facts (data charts) with implicit So-What callouts and weak Now-What at end.",
        "isPrimary": false,
        "confidence": 45,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      }
    ],
    "beats": [
      {
        "to": 3,
        "arc": {
          "name": "The Consultant's Gambit",
          "slug": "consultants-gambit",
          "status": "active",
          "bestFor": "Business cases, project proposals, strategic recommendations",
          "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "from": 1,
        "name": "Situation & Context",
        "beatId": "019de99e-5d6e-757d-a049-d8b52fd9a377",
        "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
        "beatType": null,
        "evidence": "cover, agenda, survey methodology establish scope",
        "position": 1,
        "isPrimaryArc": true,
        "parentBeatType": null,
        "alignedBlockIds": null,
        "matchConfidence": 55
      },
      {
        "to": 8,
        "arc": {
          "name": "The Consultant's Gambit",
          "slug": "consultants-gambit",
          "status": "active",
          "bestFor": "Business cases, project proposals, strategic recommendations",
          "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "from": 4,
        "name": "Problem & Complication",
        "beatId": "019de99e-5d9f-70de-b15f-7586e85330fb",
        "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
        "beatType": null,
        "evidence": "COVID-19 named as headwind, Q2 dip, recovery story",
        "position": 2,
        "isPrimaryArc": true,
        "parentBeatType": null,
        "alignedBlockIds": null,
        "matchConfidence": 55
      },
      {
        "to": 11,
        "arc": {
          "name": "The Consultant's Gambit",
          "slug": "consultants-gambit",
          "status": "active",
          "bestFor": "Business cases, project proposals, strategic recommendations",
          "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "from": 9,
        "name": "Solution & Approach",
        "beatId": "019de99e-5dca-725d-a693-142a432cb0ff",
        "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
        "beatType": null,
        "evidence": "structural lens: top-10 concentration, mobile-vs-desktop split",
        "position": 3,
        "isPrimaryArc": true,
        "parentBeatType": null,
        "alignedBlockIds": null,
        "matchConfidence": 55
      },
      {
        "to": 23,
        "arc": {
          "name": "The Consultant's Gambit",
          "slug": "consultants-gambit",
          "status": "active",
          "bestFor": "Business cases, project proposals, strategic recommendations",
          "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "from": 12,
        "name": "Evidence & Proof",
        "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
        "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
        "beatType": null,
        "evidence": "format, social, audio, programmatic, cross-media benchmark",
        "position": 4,
        "isPrimaryArc": true,
        "parentBeatType": null,
        "alignedBlockIds": null,
        "matchConfidence": 55
      },
      {
        "to": 26,
        "arc": {
          "name": "The Consultant's Gambit",
          "slug": "consultants-gambit",
          "status": "active",
          "bestFor": "Business cases, project proposals, strategic recommendations",
          "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
          "description": null,
          "familyLabel": null,
          "categoryName": "Strategy & Business",
          "categorySlug": "strategy-business"
        },
        "from": 24,
        "name": "Impact & Next Steps",
        "beatId": "019de99e-5e20-776f-bb7e-ef241b46e408",
        "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
        "beatType": null,
        "evidence": "PwC TMT practice, About IAB, contact slide",
        "position": 5,
        "isPrimaryArc": true,
        "parentBeatType": null,
        "alignedBlockIds": null,
        "matchConfidence": 55
      },
      {
        "to": 21,
        "arc": {
          "name": "The Triple Take",
          "slug": "triple-take",
          "status": "active",
          "bestFor": "Data-driven presentations, research findings",
          "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
          "description": null,
          "familyLabel": null,
          "categoryName": "Analysis & Information",
          "categorySlug": "analysis-information"
        },
        "from": 5,
        "name": "The Facts (What)",
        "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
        "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
        "beatType": null,
        "evidence": "twelve data slides quantifying revenue, growth, mix",
        "position": 1,
        "isPrimaryArc": false,
        "parentBeatType": null,
        "alignedBlockIds": null,
        "matchConfidence": 45
      },
      {
        "to": 23,
        "arc": {
          "name": "The Triple Take",
          "slug": "triple-take",
          "status": "active",
          "bestFor": "Data-driven presentations, research findings",
          "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
          "description": null,
          "familyLabel": null,
          "categoryName": "Analysis & Information",
          "categorySlug": "analysis-information"
        },
        "from": 22,
        "name": "The Implications (So What)",
        "beatId": "019de99e-5e9d-730c-bec2-d72e805659cb",
        "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
        "beatType": null,
        "evidence": "cross-media comparison frames internet as winner",
        "position": 2,
        "isPrimaryArc": false,
        "parentBeatType": null,
        "alignedBlockIds": null,
        "matchConfidence": 45
      },
      {
        "to": 26,
        "arc": {
          "name": "The Triple Take",
          "slug": "triple-take",
          "status": "active",
          "bestFor": "Data-driven presentations, research findings",
          "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
          "version": 1,
          "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
          "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
          "description": null,
          "familyLabel": null,
          "categoryName": "Analysis & Information",
          "categorySlug": "analysis-information"
        },
        "from": 24,
        "name": "The Action (Now What)",
        "beatId": "019de99e-5ec7-758d-9eb3-8ba1d68fcb4a",
        "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
        "beatType": null,
        "evidence": "PwC services credential and contact CTA",
        "position": 3,
        "isPrimaryArc": false,
        "parentBeatType": null,
        "alignedBlockIds": null,
        "matchConfidence": 45
      }
    ],
    "loops": [
      {
        "to": 8,
        "from": 5,
        "loop": {
          "name": "02_pattern_hunter",
          "slug": "02-pattern-hunter",
          "status": "active",
          "bestFor": "Time-pressed audiences, building consensus, when data is strong",
          "canonId": "019dd956-6695-771a-be2e-f1748ef041a4",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "Evidence A -> Evidence B -> Evidence C -> Pattern/Conclusion",
          "description": "Group multiple pieces of evidence that together point to a pattern or conclusion",
          "familyLabel": null,
          "categoryName": "Logical Reasoning",
          "categorySlug": "logical-reasoning"
        },
        "matchId": "019de99e-5ef6-71ad-ae5b-dd58154388ff",
        "evidence": "Four chart slides stacking evidence (annual, quarterly, H1/H2, long-run) all pointing at resilience.",
        "position": 1,
        "objective": "Establish that ad-revenue growth survived COVID",
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "to": 11,
        "from": 9,
        "loop": {
          "name": "34_segmentation_split",
          "slug": "34-segmentation-split",
          "status": "active",
          "bestFor": "Customer analysis, market research, resource allocation",
          "canonId": "019dd956-7398-77a8-9a5f-2e4d39589f42",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "The Aggregate View -> Segment A Behavior -> Segment B Behavior -> The Insight in the Difference",
          "description": "Divide a whole into meaningful segments to reveal hidden patterns",
          "familyLabel": null,
          "categoryName": "Consulting Framework",
          "categorySlug": "consulting-framework"
        },
        "matchId": "019de99e-5f24-7430-b2bc-6e4a5a4a1961",
        "evidence": "Top10/11-25/Rest split, then desktop vs mobile splits drive the segmentation insight.",
        "position": 2,
        "objective": "Reveal who is winning the market and on which device",
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "to": 15,
        "from": 13,
        "loop": {
          "name": "06_zoom_in",
          "slug": "06-zoom-in",
          "status": "active",
          "bestFor": "Technical deep-dives, case studies, detailed analysis",
          "canonId": "019dd956-6846-74db-82be-dff5b058b072",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "The Big Picture -> Key Area of Focus -> Specific Detail -> Implication",
          "description": "Start broad, then progressively focus on specific details that prove your point",
          "familyLabel": null,
          "categoryName": "Analysis",
          "categorySlug": "analysis"
        },
        "matchId": "019de99e-5f4f-750a-963f-f60679f53374",
        "evidence": "Donut of all formats then mobile/desktop format split then digital-video share.",
        "position": 3,
        "objective": "Drill from total revenue mix into Digital Video as standout format",
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "to": 21,
        "from": 16,
        "loop": {
          "name": "40_mece_breakdown",
          "slug": "40-mece-breakdown",
          "status": "active",
          "bestFor": "Problem structuring, ensuring completeness, strategic analysis",
          "canonId": "019dd956-763c-765e-8b68-6ee3ae1ef184",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "The Whole -> Category A (distinct) -> Category B (distinct) -> Category C (distinct) -> Complete Coverage",
          "description": "Divide a complex topic into mutually exclusive, collectively exhaustive categories",
          "familyLabel": null,
          "categoryName": "Consulting Framework",
          "categorySlug": "consulting-framework"
        },
        "matchId": "019de99e-5f7a-72e4-876c-593bbc301ec3",
        "evidence": "Three section-divider + analysis pairs cover distinct, non-overlapping channels.",
        "position": 4,
        "objective": "Walk channel-by-channel through Social, Audio, Programmatic",
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "to": 23,
        "from": 22,
        "loop": {
          "name": "39_benchmark_gap",
          "slug": "39-benchmark-gap",
          "status": "active",
          "bestFor": "Performance improvement, competitive analysis, target setting",
          "canonId": "019dd956-75a4-7522-8d1a-af94da4703e9",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "Our Performance -> Industry Average -> Best-in-Class -> The Gap = The Opportunity",
          "description": "Compare performance against best-in-class to quantify the opportunity",
          "familyLabel": null,
          "categoryName": "Comparison",
          "categorySlug": "comparison"
        },
        "matchId": "019de99e-5fa5-7735-b1a3-830deb53e612",
        "evidence": "Bar chart ranks 10 media types by YoY growth; only internet, video games, esports positive.",
        "position": 5,
        "objective": "Benchmark internet ads against all media to show outperformance",
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      }
    ],
    "tools": [
      {
        "tool": {
          "name": "MECE Principle",
          "slug": "mece-principle",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-7c60-71a8-8758-c79d914489c9",
          "version": 1,
          "bodyDocId": null,
          "description": "Mutually Exclusive, Collectively Exhaustive - ensuring complete, non-overlapping structure",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Architect",
        "layer": "block",
        "agents": [
          "Architect"
        ],
        "matchId": "019de99e-652e-72da-9d7c-b9dbd63bc0c4",
        "evidence": "Search/Display/Digital-Video/Other carve total 100%",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 13,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "MECE Principle",
          "slug": "mece-principle",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-7c60-71a8-8758-c79d914489c9",
          "version": 1,
          "bodyDocId": null,
          "description": "Mutually Exclusive, Collectively Exhaustive - ensuring complete, non-overlapping structure",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Architect",
        "layer": "block",
        "agents": [
          "Architect"
        ],
        "matchId": "019de99e-6684-753f-9009-147f9f0a90bb",
        "evidence": "Social/Audio/Programmatic structured as distinct channels",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 16,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Chunking",
          "slug": "chunking",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-abab-72ce-b64c-2924cc83cf39",
          "version": 1,
          "bodyDocId": null,
          "description": "Information grouped into chunks is remembered better - structure content in digestible units",
          "familyLabel": null,
          "categoryName": "Loop",
          "categorySlug": "loop"
        },
        "agent": "Architect",
        "layer": "loop",
        "agents": [
          "Architect"
        ],
        "matchId": "019de99e-6023-769d-b9a5-29e6154e37ed",
        "evidence": "deck pre-chunked into three roadmap sections",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 2,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Inductive Reasoning",
          "slug": "inductive-reasoning",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-99c6-705e-94cc-76a504c3da37",
          "version": 1,
          "bodyDocId": null,
          "description": "Grouping similar evidence to form a conclusion (Evidence → Pattern → Conclusion)",
          "familyLabel": null,
          "categoryName": "Loop",
          "categorySlug": "loop"
        },
        "agent": "Architect",
        "layer": "loop",
        "agents": [
          "Architect"
        ],
        "matchId": "019de99e-60cf-7127-b562-19c29e36ce6f",
        "evidence": "loop 1 stacks four data points to a single COVID-resilience pattern",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 4,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Contrast Pairs",
          "slug": "contrast-pairs",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-9b77-70d3-88b1-f34e26f60860",
          "version": 1,
          "bodyDocId": null,
          "description": "Creating tension through opposites: Before↔After, Problem↔Solution, Pain↔Relief",
          "familyLabel": null,
          "categoryName": "Loop",
          "categorySlug": "loop"
        },
        "agent": "Storyteller",
        "layer": "loop",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019de99e-63ab-7409-b268-1e04694ca850",
        "evidence": "loop sets up Top10 vs rest and mobile vs desktop pairs",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 9,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Typography Hierarchy",
          "slug": "typography-hierarchy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
          "version": 1,
          "bodyDocId": null,
          "description": "Using font size, weight, and style to create reading order",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-5fce-715d-80bd-7660296f2e72",
        "evidence": "title dominates, IAB sidebar logo, PwC small footer",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 1,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Visual Hierarchy",
          "slug": "visual-hierarchy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b2ca-706b-937f-e52441086fd7",
          "version": 1,
          "bodyDocId": null,
          "description": "Order of perception through Size > Color > Position > Weight > Space",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-5ffa-72d3-8e51-54211139aaa2",
        "evidence": "agenda list with three numbered sections",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 2,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Credibility Transfer",
          "slug": "credibility-transfer",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-bd34-759a-8e3b-2f14b571a2a1",
          "version": 1,
          "bodyDocId": null,
          "description": "Borrowing authority from trusted sources or vivid details",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019de99e-6078-75a2-8275-b8098f33aa09",
        "evidence": "methodology disclosure transfers PwC/IAB authority",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 3,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "White Space (Negative Space)",
          "slug": "white-space-negative-space",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b6e3-72de-bd7e-8cc963390837",
          "version": 1,
          "bodyDocId": null,
          "description": "Using empty space to reduce cognitive load and create focus",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-604e-7052-bd35-405381453a89",
        "evidence": "two-column methodology with generous spacing",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 60,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 3,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Typography Hierarchy",
          "slug": "typography-hierarchy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
          "version": 1,
          "bodyDocId": null,
          "description": "Using font size, weight, and style to create reading order",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-60a6-713e-ae2f-59e5ddb98c4d",
        "evidence": "section divider with bold title on red field",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "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": "019de99e-60fa-7678-8878-1560d248dbd0",
        "evidence": "title states the insight: 'growth remains relatively strong despite COVID-19'",
        "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": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "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": "Annotation",
          "slug": "annotation",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b5b9-7668-bf0e-3af99823ec5c",
          "version": 1,
          "bodyDocId": null,
          "description": "Adding explanatory labels to highlight key data points",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-617e-769d-a227-247a4f3ebc35",
        "evidence": "YoY% callouts (15.9%, 12.2%) annotated above bars",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6125-713d-b5ec-1d4a5fdfb7e7",
        "evidence": "vertical bar chart for 3-year trend comparison",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Color Strategy",
          "slug": "color-strategy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b202-77cf-8a6e-f445b08c0fd3",
          "version": 1,
          "bodyDocId": null,
          "description": "Using color for emphasis, categories, sentiment, and hierarchy",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6153-708a-8e31-2106abc25035",
        "evidence": "grey/red/black bars escalate visual weight to 2020",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "So What? Test",
          "slug": "so-what-test",
          "status": "active",
          "bestFor": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
          "canonId": "019dd956-acd2-76f8-b59a-9bf15a89f10a",
          "version": 1,
          "bodyDocId": "fec04b06-b2f1-432b-a97b-916dc7563f64",
          "description": "The recursive editorial discipline of asking so-what of every slide, chart, and statement until the answer is an implication for the audience — that final answer becomes the slide's title; the chain becomes its body.",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Architect",
        "layer": "slide",
        "agents": [
          "Architect"
        ],
        "matchId": "019de99e-61a7-7480-8e24-8f91eec84cf5",
        "evidence": "right-rail callout interprets the data ('not surprising given COVID')",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
        "confidence": 80,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": "Solves the two failure modes of analytical communication at once: stopping at description (analyst-confidence problem) and leaving insight stranded in the analyst's head (translation problem). The recursion is what guarantees the implication makes it into ink.",
        "antipattern": "Stopping at the first tighter description (still a fact, not an implication), regressing past the audience's decision space into philosophy, smuggling the so-what into speaker notes, or re-using an implication aimed at a previous audience.",
        "cardinality": null,
        "narrativePurpose": "Forces every analytical artefact to close the gap between fact and decision, so the reader holds the recommendation by reading titles alone rather than reconstructing the analyst's mental model from raw evidence."
      },
      {
        "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": "019de99e-61d3-729f-bd24-7653f86e7745",
        "evidence": "title quotes Q2 dip and H2 recovery insight",
        "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": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 6,
        "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": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-61fd-7693-a725-6d90cb6e5861",
        "evidence": "grouped bars to compare 2019 vs 2020 by quarter",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 6,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Contrast Principle",
          "slug": "contrast-principle",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-bf0f-73ae-b9df-e60508cdaa65",
          "version": 1,
          "bodyDocId": null,
          "description": "Higher visual weight draws attention - use contrast strategically for emphasis",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6227-702d-886b-dcafb13848fa",
        "evidence": "red-2019 vs black-2020 contrast highlights deltas",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 6,
        "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": "019de99e-6255-77cf-b145-facade72b3c9",
        "evidence": "title pinpoints 'busy H2 led to growth'",
        "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": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 7,
        "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": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6280-77f9-bd7d-e342a96fa21b",
        "evidence": "stacked bars to split each year into H1/H2",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 7,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Color Strategy",
          "slug": "color-strategy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b202-77cf-8a6e-f445b08c0fd3",
          "version": 1,
          "bodyDocId": null,
          "description": "Using color for emphasis, categories, sentiment, and hierarchy",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-62ab-730b-a6bc-97d0a23e6101",
        "evidence": "black H1 / red H2 reused consistently",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 7,
        "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": "019de99e-62d6-75c8-8f6b-8ce57c090902",
        "evidence": "title: 'Q4 recovery means revenue growth continues'",
        "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": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 8,
        "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": "Annotation",
          "slug": "annotation",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b5b9-7668-bf0e-3af99823ec5c",
          "version": 1,
          "bodyDocId": null,
          "description": "Adding explanatory labels to highlight key data points",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-632b-741b-a2d3-18738b9928d0",
        "evidence": "Q4 record value annotated on the curve",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 8,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6301-75d7-8158-aa202519e39b",
        "evidence": "area chart for 24-year longitudinal trend",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 8,
        "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": "019de99e-6355-70b9-aede-fbe835512d2c",
        "evidence": "title: 'Top 10 have increased their revenue share'",
        "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": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 9,
        "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": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6380-7057-8a9d-7a5a60964d52",
        "evidence": "stacked bar to display concentration across 3 cohorts",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 9,
        "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": "019de99e-63d5-728d-8ad5-1aaabf764ec8",
        "evidence": "title: 'Mobile revenues continue to grow and Desktop exceed $40B'",
        "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": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 10,
        "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": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-63ff-729a-b94b-994f6377b301",
        "evidence": "stacked bar showing desktop vs mobile composition over 11 years",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 10,
        "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": "019de99e-642d-7019-853c-e97df0a6865c",
        "evidence": "title states the plateau insight",
        "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": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 11,
        "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": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6459-7017-9922-89b943e61018",
        "evidence": "grouped bars compare share split year by year",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 11,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Concrete Language",
          "slug": "concrete-language",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-bcd4-7398-9723-6aa72346170b",
          "version": 1,
          "bodyDocId": null,
          "description": "Using specific sensory details instead of abstract terms",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019de99e-6483-765b-80ec-e490799a802a",
        "evidence": "callout: '$7 out of every $10 in advertising are mobile'",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 11,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Typography Hierarchy",
          "slug": "typography-hierarchy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
          "version": 1,
          "bodyDocId": null,
          "description": "Using font size, weight, and style to create reading order",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-64af-7788-8a71-73b4be4c8bb0",
        "evidence": "minimal section divider with bold title",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 12,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Chartjunk Elimination",
          "slug": "chartjunk-elimination",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b49e-7453-ab01-b60f338eeda1",
          "version": 1,
          "bodyDocId": null,
          "description": "Remove decorative elements that don't convey data: 3D effects, shadows, unnecessary gridlines",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "4d7ee7f9-fac1-4902-aca9-50fc7a8016da",
        "evidence": "The use of a stacked bar chart and a donut chart to effectively display the data",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:20:19.631106+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 13,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-64d9-733a-9fc7-395a9c574f67",
        "evidence": "donut for share + stacked bars for $ comparison",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 13,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Data-Ink Ratio",
          "slug": "data-ink-ratio",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-afc8-70da-b378-92834d36fde6",
          "version": 1,
          "bodyDocId": null,
          "description": "Maximize data, minimize non-data ink - remove chartjunk and decoration",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "a26b95dd-a812-4821-a2f5-b3436a3d02b8",
        "evidence": "The charts are designed to maximize the data-ink ratio, making it easy to understand the data",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:20:19.66827+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 13,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "So What? Test",
          "slug": "so-what-test",
          "status": "active",
          "bestFor": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
          "canonId": "019dd956-acd2-76f8-b59a-9bf15a89f10a",
          "version": 1,
          "bodyDocId": "fec04b06-b2f1-432b-a97b-916dc7563f64",
          "description": "The recursive editorial discipline of asking so-what of every slide, chart, and statement until the answer is an implication for the audience — that final answer becomes the slide's title; the chain becomes its body.",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Architect",
        "layer": "slide",
        "agents": [
          "Architect"
        ],
        "matchId": "019de99e-6504-723e-900f-d36cfb2ba53c",
        "evidence": "callout names Digital Video as standout (+20.6%)",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 13,
        "whyItWorks": "Solves the two failure modes of analytical communication at once: stopping at description (analyst-confidence problem) and leaving insight stranded in the analyst's head (translation problem). The recursion is what guarantees the implication makes it into ink.",
        "antipattern": "Stopping at the first tighter description (still a fact, not an implication), regressing past the audience's decision space into philosophy, smuggling the so-what into speaker notes, or re-using an implication aimed at a previous audience.",
        "cardinality": null,
        "narrativePurpose": "Forces every analytical artefact to close the gap between fact and decision, so the reader holds the recommendation by reading titles alone rather than reconstructing the analyst's mental model from raw evidence."
      },
      {
        "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": "019de99e-655a-76a8-b41d-e29f17c63211",
        "evidence": "title: 'Video revenue on mobile experience the strongest growth'",
        "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": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 14,
        "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": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "13b12ce4-5987-4cd3-8bf6-8697319e9c14",
        "evidence": "The use of a donut chart to effectively display market share",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:20:19.743984+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 14,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Contrast Pairs",
          "slug": "contrast-pairs",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-9b77-70d3-88b1-f34e26f60860",
          "version": 1,
          "bodyDocId": null,
          "description": "Creating tension through opposites: Before↔After, Problem↔Solution, Pain↔Relief",
          "familyLabel": null,
          "categoryName": "Loop",
          "categorySlug": "loop"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019de99e-65af-7798-8bfe-50f73b24dba0",
        "evidence": "explicit desktop vs mobile pair",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 14,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Small Multiples",
          "slug": "small-multiples",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b32d-7586-b368-baa1dd388ed4",
          "version": 1,
          "bodyDocId": null,
          "description": "Repeating similar charts for comparison across categories or time",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6585-73e7-a13a-15e31c204836",
        "evidence": "twin donut charts for desktop vs mobile mix",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 14,
        "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": "019de99e-65d9-76d9-b805-974888e481f8",
        "evidence": "title: 'Digital video share of total revenues climbs on mobile'",
        "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": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 15,
        "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": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6603-766e-9a62-b1ef21bc9fe4",
        "evidence": "stacked bar isolates desktop vs mobile within video",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 15,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Color Strategy",
          "slug": "color-strategy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b202-77cf-8a6e-f445b08c0fd3",
          "version": 1,
          "bodyDocId": null,
          "description": "Using color for emphasis, categories, sentiment, and hierarchy",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-662e-76ea-9812-0dfefb173147",
        "evidence": "consistent black-desktop / red-mobile palette",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 15,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Waterfall chart",
          "slug": "waterfall-chart",
          "status": "active",
          "bestFor": null,
          "canonId": "e2799da3-725f-44a9-a093-570f1f388e64",
          "version": 1,
          "bodyDocId": null,
          "description": null,
          "familyLabel": null,
          "categoryName": null,
          "categorySlug": null
        },
        "agent": null,
        "layer": "slide",
        "agents": null,
        "matchId": "eab759db-5ed0-446e-9a44-b0ce3bf13512",
        "evidence": "The use of a stacked bar chart to show the growth of digital video revenues",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.8,
        "extraction": {
          "at": "2026-07-16 21:20:19.818375+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 15,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Typography Hierarchy",
          "slug": "typography-hierarchy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
          "version": 1,
          "bodyDocId": null,
          "description": "Using font size, weight, and style to create reading order",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6659-7328-ae46-fc904b8ef59a",
        "evidence": "minimal section divider",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 16,
        "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": "019de99e-66ae-749d-88a9-8a557486e3a8",
        "evidence": "title: 'Social media revenues continued its climb to take up 30%'",
        "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": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 17,
        "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": "Annotation",
          "slug": "annotation",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b5b9-7668-bf0e-3af99823ec5c",
          "version": 1,
          "bodyDocId": null,
          "description": "Adding explanatory labels to highlight key data points",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6702-724a-9140-4b2afcd1f47f",
        "evidence": "$41.5B 2020 endpoint annotated",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 17,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-66d8-7708-8092-86b08e0829ef",
        "evidence": "line chart over 9 years split H1/H2",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 17,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Typography Hierarchy",
          "slug": "typography-hierarchy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
          "version": 1,
          "bodyDocId": null,
          "description": "Using font size, weight, and style to create reading order",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-672e-76aa-8e74-fc796244746d",
        "evidence": "minimal section divider",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 18,
        "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": "019de99e-675b-75d0-bdd2-4120ea67ec68",
        "evidence": "title: 'Mobile is the dominant ad-revenue generating device for audio'",
        "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": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 19,
        "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": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6786-701d-b1da-5680941fb414",
        "evidence": "grouped bar by device for 2019 vs 2020",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 19,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Contrast Principle",
          "slug": "contrast-principle",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-bf0f-73ae-b9df-e60508cdaa65",
          "version": 1,
          "bodyDocId": null,
          "description": "Higher visual weight draws attention - use contrast strategically for emphasis",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-67b1-73ee-af5b-21635faac9e5",
        "evidence": "red 2019 vs black 2020 emphasizes mobile delta",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 19,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Typography Hierarchy",
          "slug": "typography-hierarchy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
          "version": 1,
          "bodyDocId": null,
          "description": "Using font size, weight, and style to create reading order",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-67dc-72c8-9193-bbf81ae24e90",
        "evidence": "minimal section divider",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 20,
        "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": "019de99e-6807-77d5-898d-eca66b271e9d",
        "evidence": "title: 'Programmatic ad revenues increased by 24.9% YoY'",
        "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": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 21,
        "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": "019de99e-685d-7670-b19d-09cb7e5852e4",
        "evidence": "2019 vs 2020 framed as before/after share shift",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 21,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6832-7518-bd3f-c0b2fa220a93",
        "evidence": "stacked bar splits programmatic vs non-programmatic",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 21,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Typography Hierarchy",
          "slug": "typography-hierarchy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
          "version": 1,
          "bodyDocId": null,
          "description": "Using font size, weight, and style to create reading order",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6887-719c-96a5-a43cd3faad05",
        "evidence": "section divider, bold title on red",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 22,
        "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": "019de99e-68b2-759b-9955-c347ac068c26",
        "evidence": "two-line action title names esports leader and internet winner",
        "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": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 23,
        "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": "Chart Selection Guide",
          "slug": "chart-selection-guide",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
          "version": 1,
          "bodyDocId": null,
          "description": "Choosing the right chart type for your data and message",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-68dd-763c-89bd-df9126b2ba4a",
        "evidence": "grouped bars + growth-% column for 10 media types",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 23,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "So What? Test",
          "slug": "so-what-test",
          "status": "active",
          "bestFor": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
          "canonId": "019dd956-acd2-76f8-b59a-9bf15a89f10a",
          "version": 1,
          "bodyDocId": "fec04b06-b2f1-432b-a97b-916dc7563f64",
          "description": "The recursive editorial discipline of asking so-what of every slide, chart, and statement until the answer is an implication for the audience — that final answer becomes the slide's title; the chain becomes its body.",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Architect",
        "layer": "slide",
        "agents": [
          "Architect"
        ],
        "matchId": "019de99e-6937-775e-a78b-38a40e97e0a9",
        "evidence": "callout draws the implication ('only positive growers')",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
        "confidence": 80,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 23,
        "whyItWorks": "Solves the two failure modes of analytical communication at once: stopping at description (analyst-confidence problem) and leaving insight stranded in the analyst's head (translation problem). The recursion is what guarantees the implication makes it into ink.",
        "antipattern": "Stopping at the first tighter description (still a fact, not an implication), regressing past the audience's decision space into philosophy, smuggling the so-what into speaker notes, or re-using an implication aimed at a previous audience.",
        "cardinality": null,
        "narrativePurpose": "Forces every analytical artefact to close the gap between fact and decision, so the reader holds the recommendation by reading titles alone rather than reconstructing the analyst's mental model from raw evidence."
      },
      {
        "tool": {
          "name": "Von Restorff Effect",
          "slug": "von-restorff-effect",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-beab-73d8-9f62-30d0332e926e",
          "version": 1,
          "bodyDocId": null,
          "description": "Items that stand out are noticed and remembered - make key points visually distinct",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Designer",
        "layer": "slide",
        "agents": [
          "Designer"
        ],
        "matchId": "019de99e-6908-77d9-ab6d-503f624ef553",
        "evidence": "internet, video games, esports highlighted in red as positive-growth outliers",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 23,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Credibility Transfer",
          "slug": "credibility-transfer",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-bd34-759a-8e3b-2f14b571a2a1",
          "version": 1,
          "bodyDocId": null,
          "description": "Borrowing authority from trusted sources or vivid details",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019de99e-6960-756a-93c0-f19b83ca56d3",
        "evidence": "PwC TMT practice profile borrows firm credentials",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 24,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Credibility Transfer",
          "slug": "credibility-transfer",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-bd34-759a-8e3b-2f14b571a2a1",
          "version": 1,
          "bodyDocId": null,
          "description": "Borrowing authority from trusted sources or vivid details",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019de99e-698a-746f-954c-793d7b8234d8",
        "evidence": "About IAB establishes industry-association authority",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 25,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Closing Techniques",
          "slug": "closing-techniques",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-af13-774b-a4fd-7db0a3a88d51",
          "version": 1,
          "bodyDocId": null,
          "description": "Strong endings: Callback, challenge, vision, clear CTA, memorable line",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019de99e-69b4-747d-bb1f-34048fdf213f",
        "evidence": "explicit CTA: 'reach out with any questions' + contact list",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 26,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Slide recipe: Closing ask",
          "slug": "closing-ask-slide",
          "status": "active",
          "bestFor": null,
          "canonId": "019df269-295e-70bc-9ee8-baa90a49922d",
          "version": 1,
          "bodyDocId": "019df269-293a-7523-9bb5-2692a9047168",
          "description": "The last slide the reader sees. Treat it as a single design moment —",
          "familyLabel": "slide-recipe",
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "designer",
        "layer": "slide",
        "agents": [
          "designer"
        ],
        "matchId": "4a055d0d-05a2-438f-90b1-615df9cd0140",
        "evidence": "This slide has a call to action with contact information.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.8,
        "extraction": {
          "at": "2026-07-17 03:16:33.749273+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 26,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      }
    ],
    "frameworks": [
      {
        "matchId": "019de99e-69de-7129-88e9-c0e0ed936ca9",
        "evidence": "vertical bars 2018-2020 with YoY annotations",
        "framework": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "frameworkName": "Bar chart"
      },
      {
        "matchId": "019de99e-6a0a-75bf-82fb-f8b90bd3b086",
        "evidence": "2019 vs 2020 by quarter",
        "framework": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 6,
        "frameworkName": "Grouped bar chart"
      },
      {
        "matchId": "019de99e-6a34-708c-b2de-96b2ce281426",
        "evidence": "H1/H2 stacked across 11 years",
        "framework": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 7,
        "frameworkName": "Stacked bar chart"
      },
      {
        "matchId": "019de99e-6a60-73fa-920d-782d5d694ffc",
        "evidence": "1996-2020 area fill",
        "framework": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 8,
        "frameworkName": "Area chart"
      },
      {
        "matchId": "019de99e-6a89-73cd-bfc5-4f3104db1653",
        "evidence": "Top10 / 11-25 / Rest stacked per year",
        "framework": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 9,
        "frameworkName": "Stacked bar chart"
      },
      {
        "matchId": "019de99e-6ab3-708e-823a-143648e29a1c",
        "evidence": "FY2020 share donut centered",
        "framework": null,
        "confidence": 95,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 13,
        "frameworkName": "Donut chart"
      },
      {
        "matchId": "019de99e-6add-70a4-b436-690b18e46f69",
        "evidence": "2019 vs 2020 horizontal stacks",
        "framework": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 13,
        "frameworkName": "Stacked bar chart"
      },
      {
        "matchId": "019de99e-6b09-7129-8955-e62e3651a702",
        "evidence": "twin donuts for desktop vs mobile mix",
        "framework": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 14,
        "frameworkName": "Donut chart"
      },
      {
        "matchId": "019de99e-6b35-707c-8be8-481a3c6a072f",
        "evidence": "social-ad-revenue line 2012-2020",
        "framework": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 17,
        "frameworkName": "Line chart"
      },
      {
        "matchId": "019de99e-6b5f-718b-a7ff-bcffb08177af",
        "evidence": "10 media types 2019 vs 2020 with growth-% column",
        "framework": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-05-02 16:56:02.875531+00",
          "model": "claude-cli",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 23,
        "frameworkName": "Grouped bar chart"
      }
    ],
    "patterns": []
  },
  "storymakers": {
    "model": "claude-cli",
    "backend": "claude",
    "rawJson": {
      "arc": {
        "id": 1,
        "slug": "consultants-gambit",
        "beats": [
          {
            "name": "Situation & Context",
            "end_page": 3,
            "evidence": "cover, agenda, survey methodology establish scope",
            "position": 1,
            "start_page": 1
          },
          {
            "name": "Problem & Complication",
            "end_page": 8,
            "evidence": "COVID-19 named as headwind, Q2 dip, recovery story",
            "position": 2,
            "start_page": 4
          },
          {
            "name": "Solution & Approach",
            "end_page": 11,
            "evidence": "structural lens: top-10 concentration, mobile-vs-desktop split",
            "position": 3,
            "start_page": 9
          },
          {
            "name": "Evidence & Proof",
            "end_page": 23,
            "evidence": "format, social, audio, programmatic, cross-media benchmark",
            "position": 4,
            "start_page": 12
          },
          {
            "name": "Impact & Next Steps",
            "end_page": 26,
            "evidence": "PwC TMT practice, About IAB, contact slide",
            "position": 5,
            "start_page": 24
          }
        ],
        "evidence": "Setup-methodology p1-3, COVID complication framed p5-8, evidence p9-23, PwC/IAB outro p24-26.",
        "confidence": 55
      },
      "loops": [
        {
          "id": 2,
          "slug": "02-pattern-hunter",
          "end_page": 8,
          "evidence": "Four chart slides stacking evidence (annual, quarterly, H1/H2, long-run) all pointing at resilience.",
          "position": 1,
          "objective": "Establish that ad-revenue growth survived COVID",
          "confidence": 75,
          "start_page": 5
        },
        {
          "id": 34,
          "slug": "34-segmentation-split",
          "end_page": 11,
          "evidence": "Top10/11-25/Rest split, then desktop vs mobile splits drive the segmentation insight.",
          "position": 2,
          "objective": "Reveal who is winning the market and on which device",
          "confidence": 70,
          "start_page": 9
        },
        {
          "id": 6,
          "slug": "06-zoom-in",
          "end_page": 15,
          "evidence": "Donut of all formats then mobile/desktop format split then digital-video share.",
          "position": 3,
          "objective": "Drill from total revenue mix into Digital Video as standout format",
          "confidence": 70,
          "start_page": 13
        },
        {
          "id": 40,
          "slug": "40-mece-breakdown",
          "end_page": 21,
          "evidence": "Three section-divider + analysis pairs cover distinct, non-overlapping channels.",
          "position": 4,
          "objective": "Walk channel-by-channel through Social, Audio, Programmatic",
          "confidence": 75,
          "start_page": 16
        },
        {
          "id": 39,
          "slug": "39-benchmark-gap",
          "end_page": 23,
          "evidence": "Bar chart ranks 10 media types by YoY growth; only internet, video games, esports positive.",
          "position": 5,
          "objective": "Benchmark internet ads against all media to show outperformance",
          "confidence": 75,
          "start_page": 22
        }
      ],
      "slide_tools": [
        {
          "tools": [
            {
              "id": 149,
              "slug": "typography-hierarchy",
              "layer": "Slide",
              "evidence": "title dominates, IAB sidebar logo, PwC small footer",
              "confidence": 70
            }
          ],
          "page_number": 1
        },
        {
          "tools": [
            {
              "id": 132,
              "slug": "visual-hierarchy",
              "layer": "Slide",
              "evidence": "agenda list with three numbered sections",
              "confidence": 70
            },
            {
              "id": 116,
              "slug": "chunking",
              "layer": "Loop",
              "evidence": "deck pre-chunked into three roadmap sections",
              "confidence": 65
            }
          ],
          "page_number": 2
        },
        {
          "tools": [
            {
              "id": 141,
              "slug": "white-space-negative-space",
              "layer": "Slide",
              "evidence": "two-column methodology with generous spacing",
              "confidence": 60
            },
            {
              "id": 155,
              "slug": "credibility-transfer",
              "layer": "Slide",
              "evidence": "methodology disclosure transfers PwC/IAB authority",
              "confidence": 75
            }
          ],
          "page_number": 3
        },
        {
          "tools": [
            {
              "id": 149,
              "slug": "typography-hierarchy",
              "layer": "Slide",
              "evidence": "section divider with bold title on red field",
              "confidence": 70
            },
            {
              "id": 74,
              "slug": "inductive-reasoning",
              "layer": "Loop",
              "evidence": "loop 1 stacks four data points to a single COVID-resilience pattern",
              "confidence": 70
            }
          ],
          "page_number": 4
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title states the insight: 'growth remains relatively strong despite COVID-19'",
              "confidence": 90
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "vertical bar chart for 3-year trend comparison",
              "confidence": 85
            },
            {
              "id": 130,
              "slug": "color-strategy",
              "layer": "Slide",
              "evidence": "grey/red/black bars escalate visual weight to 2020",
              "confidence": 80
            },
            {
              "id": 138,
              "slug": "annotation",
              "layer": "Slide",
              "evidence": "YoY% callouts (15.9%, 12.2%) annotated above bars",
              "confidence": 75
            },
            {
              "id": 119,
              "slug": "so-what-test",
              "layer": "Slide",
              "evidence": "right-rail callout interprets the data ('not surprising given COVID')",
              "confidence": 80
            }
          ],
          "page_number": 5
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title quotes Q2 dip and H2 recovery insight",
              "confidence": 90
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "grouped bars to compare 2019 vs 2020 by quarter",
              "confidence": 85
            },
            {
              "id": 159,
              "slug": "contrast-principle",
              "layer": "Slide",
              "evidence": "red-2019 vs black-2020 contrast highlights deltas",
              "confidence": 80
            }
          ],
          "page_number": 6
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title pinpoints 'busy H2 led to growth'",
              "confidence": 90
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "stacked bars to split each year into H1/H2",
              "confidence": 85
            },
            {
              "id": 130,
              "slug": "color-strategy",
              "layer": "Slide",
              "evidence": "black H1 / red H2 reused consistently",
              "confidence": 80
            }
          ],
          "page_number": 7
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title: 'Q4 recovery means revenue growth continues'",
              "confidence": 90
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "area chart for 24-year longitudinal trend",
              "confidence": 85
            },
            {
              "id": 138,
              "slug": "annotation",
              "layer": "Slide",
              "evidence": "Q4 record value annotated on the curve",
              "confidence": 70
            }
          ],
          "page_number": 8
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title: 'Top 10 have increased their revenue share'",
              "confidence": 90
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "stacked bar to display concentration across 3 cohorts",
              "confidence": 85
            },
            {
              "id": 78,
              "slug": "contrast-pairs",
              "layer": "Loop",
              "evidence": "loop sets up Top10 vs rest and mobile vs desktop pairs",
              "confidence": 65
            }
          ],
          "page_number": 9
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title: 'Mobile revenues continue to grow and Desktop exceed $40B'",
              "confidence": 85
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "stacked bar showing desktop vs mobile composition over 11 years",
              "confidence": 85
            }
          ],
          "page_number": 10
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title states the plateau insight",
              "confidence": 85
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "grouped bars compare share split year by year",
              "confidence": 80
            },
            {
              "id": 154,
              "slug": "concrete-language",
              "layer": "Slide",
              "evidence": "callout: '$7 out of every $10 in advertising are mobile'",
              "confidence": 70
            }
          ],
          "page_number": 11
        },
        {
          "tools": [
            {
              "id": 149,
              "slug": "typography-hierarchy",
              "layer": "Slide",
              "evidence": "minimal section divider with bold title",
              "confidence": 70
            }
          ],
          "page_number": 12
        },
        {
          "tools": [
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "donut for share + stacked bars for $ comparison",
              "confidence": 90
            },
            {
              "id": 119,
              "slug": "so-what-test",
              "layer": "Slide",
              "evidence": "callout names Digital Video as standout (+20.6%)",
              "confidence": 75
            },
            {
              "id": 2,
              "slug": "mece-principle",
              "layer": "Block",
              "evidence": "Search/Display/Digital-Video/Other carve total 100%",
              "confidence": 70
            }
          ],
          "page_number": 13
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title: 'Video revenue on mobile experience the strongest growth'",
              "confidence": 85
            },
            {
              "id": 133,
              "slug": "small-multiples",
              "layer": "Slide",
              "evidence": "twin donut charts for desktop vs mobile mix",
              "confidence": 75
            },
            {
              "id": 78,
              "slug": "contrast-pairs",
              "layer": "Slide",
              "evidence": "explicit desktop vs mobile pair",
              "confidence": 70
            }
          ],
          "page_number": 14
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title: 'Digital video share of total revenues climbs on mobile'",
              "confidence": 85
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "stacked bar isolates desktop vs mobile within video",
              "confidence": 85
            },
            {
              "id": 130,
              "slug": "color-strategy",
              "layer": "Slide",
              "evidence": "consistent black-desktop / red-mobile palette",
              "confidence": 75
            }
          ],
          "page_number": 15
        },
        {
          "tools": [
            {
              "id": 149,
              "slug": "typography-hierarchy",
              "layer": "Slide",
              "evidence": "minimal section divider",
              "confidence": 70
            },
            {
              "id": 2,
              "slug": "mece-principle",
              "layer": "Block",
              "evidence": "Social/Audio/Programmatic structured as distinct channels",
              "confidence": 70
            }
          ],
          "page_number": 16
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title: 'Social media revenues continued its climb to take up 30%'",
              "confidence": 85
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "line chart over 9 years split H1/H2",
              "confidence": 80
            },
            {
              "id": 138,
              "slug": "annotation",
              "layer": "Slide",
              "evidence": "$41.5B 2020 endpoint annotated",
              "confidence": 65
            }
          ],
          "page_number": 17
        },
        {
          "tools": [
            {
              "id": 149,
              "slug": "typography-hierarchy",
              "layer": "Slide",
              "evidence": "minimal section divider",
              "confidence": 65
            }
          ],
          "page_number": 18
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title: 'Mobile is the dominant ad-revenue generating device for audio'",
              "confidence": 85
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "grouped bar by device for 2019 vs 2020",
              "confidence": 85
            },
            {
              "id": 159,
              "slug": "contrast-principle",
              "layer": "Slide",
              "evidence": "red 2019 vs black 2020 emphasizes mobile delta",
              "confidence": 75
            }
          ],
          "page_number": 19
        },
        {
          "tools": [
            {
              "id": 149,
              "slug": "typography-hierarchy",
              "layer": "Slide",
              "evidence": "minimal section divider",
              "confidence": 65
            }
          ],
          "page_number": 20
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "title: 'Programmatic ad revenues increased by 24.9% YoY'",
              "confidence": 90
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "stacked bar splits programmatic vs non-programmatic",
              "confidence": 85
            },
            {
              "id": 26,
              "slug": "before-after-bridge",
              "layer": "Slide",
              "evidence": "2019 vs 2020 framed as before/after share shift",
              "confidence": 65
            }
          ],
          "page_number": 21
        },
        {
          "tools": [
            {
              "id": 149,
              "slug": "typography-hierarchy",
              "layer": "Slide",
              "evidence": "section divider, bold title on red",
              "confidence": 65
            }
          ],
          "page_number": 22
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "two-line action title names esports leader and internet winner",
              "confidence": 90
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "grouped bars + growth-% column for 10 media types",
              "confidence": 85
            },
            {
              "id": 158,
              "slug": "von-restorff-effect",
              "layer": "Slide",
              "evidence": "internet, video games, esports highlighted in red as positive-growth outliers",
              "confidence": 70
            },
            {
              "id": 119,
              "slug": "so-what-test",
              "layer": "Slide",
              "evidence": "callout draws the implication ('only positive growers')",
              "confidence": 80
            }
          ],
          "page_number": 23
        },
        {
          "tools": [
            {
              "id": 155,
              "slug": "credibility-transfer",
              "layer": "Slide",
              "evidence": "PwC TMT practice profile borrows firm credentials",
              "confidence": 80
            }
          ],
          "page_number": 24
        },
        {
          "tools": [
            {
              "id": 155,
              "slug": "credibility-transfer",
              "layer": "Slide",
              "evidence": "About IAB establishes industry-association authority",
              "confidence": 75
            }
          ],
          "page_number": 25
        },
        {
          "tools": [
            {
              "id": 124,
              "slug": "closing-techniques",
              "layer": "Slide",
              "evidence": "explicit CTA: 'reach out with any questions' + contact list",
              "confidence": 75
            }
          ],
          "page_number": 26
        }
      ],
      "slides_seen": 26,
      "deck_summary": "Disciplined data report with strong action titles, consistent color palette, and clean MECE channel breakdown - but no real arc beyond 'present the facts'; complication, recommendation, and call-to-action are vestigial.",
      "secondary_arcs": [
        {
          "id": 11,
          "slug": "triple-take",
          "beats": [
            {
              "name": "The Facts (What)",
              "end_page": 21,
              "evidence": "twelve data slides quantifying revenue, growth, mix",
              "position": 1,
              "start_page": 5
            },
            {
              "name": "The Implications (So What)",
              "end_page": 23,
              "evidence": "cross-media comparison frames internet as winner",
              "position": 2,
              "start_page": 22
            },
            {
              "name": "The Action (Now What)",
              "end_page": 26,
              "evidence": "PwC services credential and contact CTA",
              "position": 3,
              "start_page": 24
            }
          ],
          "evidence": "Mostly Facts (data charts) with implicit So-What callouts and weak Now-What at end.",
          "confidence": 45
        }
      ],
      "images_inspected": 3,
      "slide_frameworks": [
        {
          "frameworks": [
            {
              "name": "Bar chart",
              "slug": "bar-chart",
              "evidence": "vertical bars 2018-2020 with YoY annotations",
              "confidence": 90
            }
          ],
          "page_number": 5
        },
        {
          "frameworks": [
            {
              "name": "Grouped bar chart",
              "slug": "grouped-bar-chart",
              "evidence": "2019 vs 2020 by quarter",
              "confidence": 90
            }
          ],
          "page_number": 6
        },
        {
          "frameworks": [
            {
              "name": "Stacked bar chart",
              "slug": "stacked-bar-chart",
              "evidence": "H1/H2 stacked across 11 years",
              "confidence": 90
            }
          ],
          "page_number": 7
        },
        {
          "frameworks": [
            {
              "name": "Area chart",
              "slug": "area-chart",
              "evidence": "1996-2020 area fill",
              "confidence": 90
            }
          ],
          "page_number": 8
        },
        {
          "frameworks": [
            {
              "name": "Stacked bar chart",
              "slug": "stacked-bar-chart",
              "evidence": "Top10 / 11-25 / Rest stacked per year",
              "confidence": 85
            }
          ],
          "page_number": 9
        },
        {
          "frameworks": [
            {
              "name": "Donut chart",
              "slug": "donut-chart",
              "evidence": "FY2020 share donut centered",
              "confidence": 95
            },
            {
              "name": "Stacked bar chart",
              "slug": "stacked-bar-chart",
              "evidence": "2019 vs 2020 horizontal stacks",
              "confidence": 85
            }
          ],
          "page_number": 13
        },
        {
          "frameworks": [
            {
              "name": "Donut chart",
              "slug": "donut-chart",
              "evidence": "twin donuts for desktop vs mobile mix",
              "confidence": 90
            }
          ],
          "page_number": 14
        },
        {
          "frameworks": [
            {
              "name": "Line chart",
              "slug": "line-chart",
              "evidence": "social-ad-revenue line 2012-2020",
              "confidence": 90
            }
          ],
          "page_number": 17
        },
        {
          "frameworks": [
            {
              "name": "Grouped bar chart",
              "slug": "grouped-bar-chart",
              "evidence": "10 media types 2019 vs 2020 with growth-% column",
              "confidence": 90
            }
          ],
          "page_number": 23
        }
      ]
    },
    "matchedAt": "2026-05-02 16:56:03.093+00",
    "slidesSeen": 26,
    "deckSummary": "Disciplined data report with strong action titles, consistent color palette, and clean MECE channel breakdown - but no real arc beyond 'present the facts'; complication, recommendation, and call-to-action are vestigial.",
    "imagesInspected": 3,
    "extractionSeconds": 261.948
  },
  "score": {
    "backend": "codex",
    "scoredAt": "2026-05-02 12:27:38.145+00",
    "subScores": {
      "scqa_arc": 58,
      "action_titles": 74,
      "mece_structure": 62,
      "closing_strength": 35,
      "evidence_quality": 82,
      "clarity_of_thesis": 70,
      "production_quality": 68,
      "visual_storytelling": 74
    },
    "totalScore": 65,
    "coveragePct": 100,
    "explanations": {
      "scqa_arc": "The deck has a loose Situation and Complication around 2020 COVID disruption on slides 3-6, but the Question is implicit and the Answer dissolves into a sequence of analytical findings.",
      "action_titles": "Most analytical slides use insight-bearing titles, for example slide 6, \"COVID's impact is evident in Q2 but recovery is impressive in the second half,\" though agenda, divider, methodology, and appendix slides remain topic labels.",
      "mece_structure": "The main chapters are understandable but not fully MECE because device, format, social, audio, programmatic, and market-size cuts overlap while leaving limited synthesis of how the pieces add up.",
      "closing_strength": "The close on slide 26 provides contact information and an invitation for questions, but it does not land a recommendation, decision, implication, or concrete next-step agenda.",
      "evidence_quality": "The evidence base is strong because most claims are backed by revenue charts, growth rates, market-share splits, callouts, methodology disclosure on slide 3, and footnotes on selected data-heavy slides.",
      "clarity_of_thesis": "The central thesis that internet advertising stayed resilient despite COVID-19 becomes identifiable by slide 5, but slides 1-4 are cover, agenda, methodology, and divider rather than a declarative upfront answer.",
      "production_quality": "The deck is professionally branded and mostly consistent, but production quality is held back by mixed action-title discipline, repeated divider slides, crowded charts, and some awkward title phrasing.",
      "visual_storytelling": "Slides generally pair claims with appropriate bars, stacked bars, area charts, donuts, and callouts, but several dense or overcrowded slides such as slides 8, 10, 17, 19, and 23 reduce message clarity."
    },
    "slidesAnalyzed": 26
  },
  "review": {
    "backend": null,
    "verdict": "A competently-titled industry data report whose individual slide titles are above-average Storymakers craft, but the deck as a whole is a category-by-category data tour with no SCQA arc and no recommendation -- use slides 5-11 as a teaching example of action titles, not the deck structure.",
    "reviewedAt": "2026-04-25 07:23:34+00",
    "slidesSeen": 26,
    "suggestions": [
      "Add a single-page 'answer-first' slide between p.3 and p.4 stating the deck's headline thesis (e.g. 'Despite COVID, internet advertising grew 12.2% -- driven by mobile, video, and a Q4 rebound') so the opening leads with the conclusion, not the methodology",
      "Replace topic dividers (Formats, Social, Audio, Programmatic) with insight pillars that ladder up to the thesis (e.g. 'Mobile carried the recovery,' 'Video formats outgrew the market,' 'Programmatic now dominates buying')",
      "Add a closing 'So what for advertisers / publishers / platforms in 2021' implications slide before the firm bio, so the deck resolves with action rather than fading into appendix"
    ],
    "closingScore": 25,
    "openingScore": 60,
    "topStrengths": [
      "Action titles on data slides are mostly insight-led, not noun-labels (e.g. p.6 recovery point, p.9 'The Top 10 have increased their revenue share', p.11 desktop/mobile plateau)",
      "Callouts consistently quantify the takeaway with a memorable stat ('$7 out of every $10 in advertising are mobile' on p.11/p.14), which is good Storymakers discipline",
      "p.5 lands the COVID thesis early and frames the rest of the deck around resilience-despite-shock"
    ],
    "topWeaknesses": [
      "No SCQA arc: there is a Situation (growth) and Complication (COVID) but no Question or Resolution -- the deck never tells the audience what to do with the findings",
      "Six section dividers (p.4, 12, 16, 18, 20, 22) are channel/format buckets, not MECE pillars of an argument; the structure is a category tour, not a story",
      "Closing is a flat 'reach out with any questions' (p.26) preceded by firm-marketing slides (p.24-25) -- no synthesis, no implications, no recommendation",
      "p.13 'FY 2020 format results' is a topic label inside an otherwise insight-titled deck",
      "Repetition of the same '$7 out of $10' stat on p.11 and p.14 wastes a slide and signals weak narrative pruning"
    ],
    "narrativeScore": 55,
    "pillarCritique": "Section dividers (p.4 Full year, p.12 Formats, p.16 Social media, p.18 Digital audio, p.20 Programmatic, p.22 Market size) are topic dumps organized by ad category rather than MECE pillars of an argument; they answer 'what categories exist' instead of 'what should the audience conclude.'",
    "closingCritique": "The deck ends in a firm bio (p.24 'PwC's technology, media and telecommunications practice'), an 'About IAB' (p.25) and a generic contact-us slide (p.26 'Please reach out with any questions') -- no synthesizing 'so what,' no implications, no call to action.",
    "openingCritique": "The cover, agenda, and methodology consume the first 3 slides; the thesis only lands on p.5 with a strong action title ('Pace of growth remains relatively strong despite impacts of COVID-19'). It establishes the COVID stakes clearly but takes a slide too long to get there.",
    "extractionSeconds": 69.68536,
    "narrativeCritique": "This is a research-data report rather than a story-arc deck: the structure is Setup (methodology) -> Topic Dump (full year, formats, social, audio, programmatic, market size) with no Complication or Resolution. There is no underlying tension or thesis pulling the analysis toward a recommendation.",
    "titleQualityScore": 72,
    "titleQualityCritique": "Most titles are genuinely declarative and insight-bearing -- e.g. p.6 'COVID's impact is evident in Q2 but recovery is impressive in the second half' and p.11 '2020 marked the first time Desktop vs. Mobile revenue share split plateau.' Weak ones slip in: p.13 'FY 2020 format results' is a topic label and p.3/p.25 are pure section names."
  },
  "activistThesis": null,
  "pitchdeck": {
    "metadata": null,
    "profile": null
  },
  "slides": [
    {
      "page": 1,
      "type": "setup",
      "function": "front_matter",
      "imagePath": "https://imgproxy.kitesheet.com/L7mS1J22muindi6KptzgTcJnscURuXm6hxH4Dcfi74I/rs:fit:1200:1200:0/q:82/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy9hZmE2YWNlZDJlZjVhMjE0L3AwMDEuanBn",
      "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": 23,
        "componentCount": 5,
        "textChars": 215,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "headline_text",
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:22.85+00",
          "seconds": 6.852,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/1",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-1",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.1,
            "w": 0.2,
            "x": 0.75,
            "y": 0.25
          },
          "kind": "image",
          "text": "iab.",
          "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 19:08:22.85+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2d28ec2b-3390-4dac-b057-29053496a430",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.1,
            "x": 0.05,
            "y": 0.8
          },
          "kind": "image",
          "text": "pwc",
          "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 19:08:22.85+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "abe551f2-228f-45c6-b1ae-9d45f7a701e2",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.4,
            "x": 0.05,
            "y": 0.6
          },
          "kind": "paragraph",
          "text": "Topline presentation for 4/7/21 IAB webinar. Please refer to full report for details: https://www.iab.com/insights/internet-advertising-revenue-report/",
          "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 19:08:22.85+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2cf52dbd-df1e-461a-85ee-1a93e90695c7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.5,
            "x": 0.05,
            "y": 0.25
          },
          "kind": "title",
          "text": "Internet Advertising Revenue Report",
          "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 19:08:22.85+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d5bf51bb-cc37-49a7-b3c4-8f84782c9aa8",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.3,
            "x": 0.05,
            "y": 0.4
          },
          "kind": "title",
          "text": "2020 full year results",
          "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": "Subtitle",
              "slug": "subtitle",
              "status": "active",
              "canonId": "019de52c-fb09-739d-900c-815b0d9ac526",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "subtitle",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:22.85+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cfe9b280-1f10-4d1c-a1a9-b05f2b24dad8",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Typography Hierarchy",
            "slug": "typography-hierarchy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
            "version": 1,
            "bodyDocId": null,
            "description": "Using font size, weight, and style to create reading order",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-5fce-715d-80bd-7660296f2e72",
          "evidence": "title dominates, IAB sidebar logo, PwC small footer",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 1,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 3,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 1,
          "name": "Situation & Context",
          "beatId": "019de99e-5d6e-757d-a049-d8b52fd9a377",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "cover, agenda, survey methodology establish scope",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        }
      ],
      "loops": [],
      "thumbSrc": "https://imgproxy.kitesheet.com/gbe49nX2yTUrU2MBKxIjLnUZFEBO6Mh8dqCqi6nchJU/rs:fit:480:480:0/q:78/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy9hZmE2YWNlZDJlZjVhMjE0L3AwMDEuanBn",
      "imagePathAlt": "https://imgproxy.kitesheet.com/JRKoLLSisFKbHJVP9n75OJaO9D-8Nvei64x_GCzQ8wg/rs:fit:1200:1200:0/q:82/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy9hZmE2YWNlZDJlZjVhMjE0L3AwMDEucG5n",
      "thumbSrcAlt": "https://imgproxy.kitesheet.com/axgCL1crnfuKrO0ja_m5OQ-UrRXnGiaLo3sANT8cA2U/rs:fit:480:480:0/q:78/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy9hZmE2YWNlZDJlZjVhMjE0L3AwMDEucG5n"
    },
    {
      "page": 2,
      "type": "setup",
      "function": "front_matter",
      "rawType": "agenda",
      "block": null,
      "metadata": {
        "slideType": "agenda",
        "slideTypeCanon": {
          "name": "Agenda",
          "slug": "agenda",
          "status": "active",
          "canonId": "019de52d-061b-7470-b138-3ffa5e612cce",
          "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": 4,
        "componentCount": 2,
        "textChars": 83,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "headline_text",
          "bullet_list"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:17.655+00",
          "seconds": 1.611,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/2",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-2",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.25,
            "w": 0.45,
            "x": 0.05,
            "y": 0.23
          },
          "kind": "list",
          "text": "Survey methodology\nFull year results and quarterly trends\nAdvertising formats",
          "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 19:08:17.655+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cda8f086-dadd-40ed-902a-c7d180a88a2d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.15,
            "x": 0.05,
            "y": 0.03
          },
          "kind": "title",
          "text": "Agenda",
          "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 19:08:17.655+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c6a038ad-de9d-49fb-bc07-26a3db402cce",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Chunking",
            "slug": "chunking",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-abab-72ce-b64c-2924cc83cf39",
            "version": 1,
            "bodyDocId": null,
            "description": "Information grouped into chunks is remembered better - structure content in digestible units",
            "familyLabel": null,
            "categoryName": "Loop",
            "categorySlug": "loop"
          },
          "agent": "Architect",
          "layer": "loop",
          "agents": [
            "Architect"
          ],
          "matchId": "019de99e-6023-769d-b9a5-29e6154e37ed",
          "evidence": "deck pre-chunked into three roadmap sections",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 2,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Visual Hierarchy",
            "slug": "visual-hierarchy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b2ca-706b-937f-e52441086fd7",
            "version": 1,
            "bodyDocId": null,
            "description": "Order of perception through Size > Color > Position > Weight > Space",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-5ffa-72d3-8e51-54211139aaa2",
          "evidence": "agenda list with three numbered sections",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 2,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 3,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 1,
          "name": "Situation & Context",
          "beatId": "019de99e-5d6e-757d-a049-d8b52fd9a377",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "cover, agenda, survey methodology establish scope",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 3,
      "type": "setup",
      "function": "summarize",
      "rawType": "appendix_methodology",
      "block": null,
      "metadata": {
        "slideType": "appendix_methodology",
        "slideTypeCanon": {
          "name": "Appendix methodology",
          "slug": "appendix_methodology",
          "status": "active",
          "canonId": "019de52d-07d9-726c-8599-167f2d2ffaa7",
          "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": 50,
        "componentCount": 5,
        "textChars": 1147,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "headline_text",
          "bullet_list",
          "paragraph"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:19.751+00",
          "seconds": 3.219,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/3",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-3",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.45,
            "w": 0.38,
            "x": 0.08,
            "y": 0.28
          },
          "kind": "list",
          "text": "The IAB Internet Advertising Revenue Report is part of an ongoing IAB mission to provide an accurate barometer of internet advertising growth. To achieve differentiation from existing estimates and accomplish industry-wide acceptance, key aspects of the survey include: Obtaining historical data directly from companies generating internet (desktop and mobile) advertising revenues; Making the survey as inclusive as possible, encompassing all forms of internet advertising, including websites, consumer online services, ad networks and exchanges, mobile devices; Ensuring and maintaining a confidential process, only releasing aggregate 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 19:08:19.751+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1729efe3-6c0d-40c6-9d0c-4891fec8f6e0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.65,
            "w": 0.38,
            "x": 0.55,
            "y": 0.28
          },
          "kind": "list",
          "text": "Throughout the reporting process, PwC: Compiles a database of industry participants selling internet advertising revenues; Conducts a quantitative web-based survey with leading industry players; Requests and compiles several specific data items; Acquires supplemental data through the use of publicly disclosed information; Identifies non-participating companies and applies a conservative revenue estimate; Analyzes the findings, identifies and reports key trends",
          "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 19:08:19.751+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "651147ff-ea81-4299-9359-1765814301ca",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.15,
            "x": 0.55,
            "y": 0.22
          },
          "kind": "title",
          "text": "Methodology",
          "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 19:08:19.751+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "3abe7f6f-b9ed-47b0-994f-63c793fe54fe",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.25,
            "x": 0.05,
            "y": 0.03
          },
          "kind": "title",
          "text": "Survey Methodology",
          "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 19:08:19.751+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "63c062a1-7624-4897-8e24-49a39ab98b84",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.15,
            "x": 0.08,
            "y": 0.22
          },
          "kind": "title",
          "text": "Survey Scope",
          "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 19:08:19.751+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "74e87d46-76fa-48ee-a7dc-73621d26db12",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Credibility Transfer",
            "slug": "credibility-transfer",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-bd34-759a-8e3b-2f14b571a2a1",
            "version": 1,
            "bodyDocId": null,
            "description": "Borrowing authority from trusted sources or vivid details",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019de99e-6078-75a2-8275-b8098f33aa09",
          "evidence": "methodology disclosure transfers PwC/IAB authority",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 3,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "White Space (Negative Space)",
            "slug": "white-space-negative-space",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b6e3-72de-bd7e-8cc963390837",
            "version": 1,
            "bodyDocId": null,
            "description": "Using empty space to reduce cognitive load and create focus",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-604e-7052-bd35-405381453a89",
          "evidence": "two-column methodology with generous spacing",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 60,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 3,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 3,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 1,
          "name": "Situation & Context",
          "beatId": "019de99e-5d6e-757d-a049-d8b52fd9a377",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "cover, agenda, survey methodology establish scope",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 4,
      "type": "setup",
      "function": "transition",
      "rawType": "section_divider",
      "block": null,
      "metadata": {
        "slideType": "section_divider",
        "slideTypeCanon": {
          "name": "Section divider",
          "slug": "section_divider",
          "status": "active",
          "canonId": "019de52d-066a-7402-9554-6ae504999041",
          "version": 1,
          "description": null
        },
        "function": "transition",
        "functionCanon": {
          "name": "Transition",
          "slug": "transition",
          "status": "active",
          "canonId": "019de52d-1365-7149-92aa-66df859e75fd",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 3,
        "componentCount": 2,
        "textChars": 40,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:19.005+00",
          "seconds": 2.151,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/4",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-4",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.15,
            "w": 0.15,
            "x": 0.05,
            "y": 0.1
          },
          "kind": "image",
          "text": "iab.",
          "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 19:08:19.005+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "27a81cbf-c9de-4a6b-9e8f-f88c5da8312a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.6,
            "x": 0.05,
            "y": 0.4
          },
          "kind": "title",
          "text": "Full year results & quarterly trends",
          "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 19:08:19.005+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cae14bb8-1da5-48ae-8f43-181d487479e0",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Inductive Reasoning",
            "slug": "inductive-reasoning",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-99c6-705e-94cc-76a504c3da37",
            "version": 1,
            "bodyDocId": null,
            "description": "Grouping similar evidence to form a conclusion (Evidence → Pattern → Conclusion)",
            "familyLabel": null,
            "categoryName": "Loop",
            "categorySlug": "loop"
          },
          "agent": "Architect",
          "layer": "loop",
          "agents": [
            "Architect"
          ],
          "matchId": "019de99e-60cf-7127-b562-19c29e36ce6f",
          "evidence": "loop 1 stacks four data points to a single COVID-resilience pattern",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 4,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Typography Hierarchy",
            "slug": "typography-hierarchy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
            "version": 1,
            "bodyDocId": null,
            "description": "Using font size, weight, and style to create reading order",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-60a6-713e-ae2f-59e5ddb98c4d",
          "evidence": "section divider with bold title on red field",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 4,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 8,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 4,
          "name": "Problem & Complication",
          "beatId": "019de99e-5d9f-70de-b15f-7586e85330fb",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "COVID-19 named as headwind, Q2 dip, recovery story",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 5,
      "type": "analysis",
      "function": "summarize",
      "rawType": "industry_trends",
      "block": null,
      "metadata": {
        "slideType": "industry_trends",
        "slideTypeCanon": {
          "name": "Industry trends",
          "slug": "industry_trends",
          "status": "active",
          "canonId": "019de52d-0b1d-7705-a0e0-c663199cd1fa",
          "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": 54,
        "componentCount": 6,
        "textChars": 626,
        "nDataPoints": 5,
        "notes": null,
        "elementsJson": [
          "bar_chart_vertical",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:23.117+00",
          "seconds": 5.536,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/5",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-5",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "While there continues to be strong, double-digit growth in overall internet advertising revenues between 2019 and 2020, a slower pace of growth at 12.2% YoY is not surprising given the impact of COVID-19.",
          "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-24 13:48:17+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8551-eb7139382535",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.7,
            "w": 0.35,
            "x": 0.06,
            "y": 0.18
          },
          "kind": "chart",
          "text": "Three Year (FY2018 – FY2020) Internet Advertising Revenue Trend",
          "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 19:08:23.117+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "33091b4d-7f0d-4660-b5be-d6e8f746e409",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Internet Advertising Revenue: $139.8",
          "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-24 13:48:17+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8551-ed2fff80c03b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.3,
            "w": 0.35,
            "x": 0.62,
            "y": 0.38
          },
          "kind": "paragraph",
          "text": "While there continues to be strong, double-digit growth in overall internet advertising revenues between 2019 and 2020, a slower pace of growth at 12.2% YoY is not surprising given the impact of COVID-19.",
          "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 19:08:23.117+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "fe9f3a72-8c2e-47d0-8d89-42e3eaa39c74",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.2,
            "x": 0.13,
            "y": 0.95
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020",
          "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 19:08:23.117+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b62b508a-066d-48eb-93a2-1ca28b64bace",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.02,
            "y": 0.02
          },
          "kind": "title",
          "text": "Pace of growth remains relatively strong despite impacts of COVID-19",
          "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 19:08:23.117+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "46dbffe6-33a9-4c9a-b375-41620ac7312d",
          "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": "019de99e-60fa-7678-8878-1560d248dbd0",
          "evidence": "title states the insight: 'growth remains relatively strong despite COVID-19'",
          "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": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "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": "Annotation",
            "slug": "annotation",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b5b9-7668-bf0e-3af99823ec5c",
            "version": 1,
            "bodyDocId": null,
            "description": "Adding explanatory labels to highlight key data points",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-617e-769d-a227-247a4f3ebc35",
          "evidence": "YoY% callouts (15.9%, 12.2%) annotated above bars",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6125-713d-b5ec-1d4a5fdfb7e7",
          "evidence": "vertical bar chart for 3-year trend comparison",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Color Strategy",
            "slug": "color-strategy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b202-77cf-8a6e-f445b08c0fd3",
            "version": 1,
            "bodyDocId": null,
            "description": "Using color for emphasis, categories, sentiment, and hierarchy",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6153-708a-8e31-2106abc25035",
          "evidence": "grey/red/black bars escalate visual weight to 2020",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "So What? Test",
            "slug": "so-what-test",
            "status": "active",
            "bestFor": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
            "canonId": "019dd956-acd2-76f8-b59a-9bf15a89f10a",
            "version": 1,
            "bodyDocId": "fec04b06-b2f1-432b-a97b-916dc7563f64",
            "description": "The recursive editorial discipline of asking so-what of every slide, chart, and statement until the answer is an implication for the audience — that final answer becomes the slide's title; the chain becomes its body.",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Architect",
          "layer": "slide",
          "agents": [
            "Architect"
          ],
          "matchId": "019de99e-61a7-7480-8e24-8f91eec84cf5",
          "evidence": "right-rail callout interprets the data ('not surprising given COVID')",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
          "confidence": 80,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": "Solves the two failure modes of analytical communication at once: stopping at description (analyst-confidence problem) and leaving insight stranded in the analyst's head (translation problem). The recursion is what guarantees the implication makes it into ink.",
          "antipattern": "Stopping at the first tighter description (still a fact, not an implication), regressing past the audience's decision space into philosophy, smuggling the so-what into speaker notes, or re-using an implication aimed at a previous audience.",
          "cardinality": null,
          "narrativePurpose": "Forces every analytical artefact to close the gap between fact and decision, so the reader holds the recommendation by reading titles alone rather than reconstructing the analyst's mental model from raw evidence."
        }
      ],
      "frameworks": [
        {
          "matchId": "019de99e-69de-7129-88e9-c0e0ed936ca9",
          "evidence": "vertical bars 2018-2020 with YoY annotations",
          "framework": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "frameworkName": "Bar chart"
        }
      ],
      "arcBeats": [
        {
          "to": 8,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 4,
          "name": "Problem & Complication",
          "beatId": "019de99e-5d9f-70de-b15f-7586e85330fb",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "COVID-19 named as headwind, Q2 dip, recovery story",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 8,
          "from": 5,
          "loop": {
            "name": "02_pattern_hunter",
            "slug": "02-pattern-hunter",
            "status": "active",
            "bestFor": "Time-pressed audiences, building consensus, when data is strong",
            "canonId": "019dd956-6695-771a-be2e-f1748ef041a4",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Evidence A -> Evidence B -> Evidence C -> Pattern/Conclusion",
            "description": "Group multiple pieces of evidence that together point to a pattern or conclusion",
            "familyLabel": null
          },
          "matchId": "019de99e-5ef6-71ad-ae5b-dd58154388ff",
          "evidence": "Four chart slides stacking evidence (annual, quarterly, H1/H2, long-run) all pointing at resilience.",
          "position": 1,
          "objective": "Establish that ad-revenue growth survived COVID",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 6,
      "type": "analysis",
      "function": "analyze_data",
      "rawType": "industry_trends",
      "block": null,
      "metadata": {
        "slideType": "industry_trends",
        "slideTypeCanon": {
          "name": "Industry trends",
          "slug": "industry_trends",
          "status": "active",
          "canonId": "019de52d-0b1d-7705-a0e0-c663199cd1fa",
          "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": 6,
        "textChars": 623,
        "nDataPoints": 8,
        "notes": null,
        "elementsJson": [
          "headline_text",
          "paragraph",
          "bar_chart_grouped",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 21:24:02.411+00",
          "seconds": 2.93,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/6",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-6",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.25,
            "w": 0.35,
            "x": 0.6,
            "y": 0.45
          },
          "kind": "callout",
          "text": "Though there were significant fluctuations in quarterly growth throughout the year, revenues rebounded solidly in the second half to a healthy $80.5 billion.",
          "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 21:24:02.411+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4916d02a-6d41-456a-b502-ce295c8b4f27",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.6,
            "w": 0.45,
            "x": 0.08,
            "y": 0.25
          },
          "kind": "chart",
          "text": "FY 2019 vs FY 2020 quarterly internet advertising revenues ($ billions)",
          "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": "Grouped bar chart",
              "slug": "bar-grouped",
              "status": "active",
              "canonId": "019de52c-ff3b-751e-a8ff-f21ff11097b1",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bar-grouped",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 21:24:02.411+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2c9c7737-fc5c-4285-829a-1b1ec0376f59",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Internet advertising revenue: $80.5 billion",
          "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-24 13:48:17+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8551-d2de122f1cf5",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.07,
            "w": 0.94,
            "x": 0.03,
            "y": 0.13
          },
          "kind": "paragraph",
          "text": "With many U.S. states issuing stay-at-home orders at the end of Q1 2020 and U.S. GDP falling sharply, it's not surprising that Q2 saw the biggest hit in revenue due to COVID-19, which recorded a negative growth rate of 5.2%.",
          "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 21:24:02.411+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "62671ce8-6989-4c63-896a-b68c1df6f7c5",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.3,
            "x": 0.08,
            "y": 0.91
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020",
          "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 21:24:02.411+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a1dd927f-50d4-44f5-a97a-51648aad8618",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.07,
            "w": 0.94,
            "x": 0.03,
            "y": 0.03
          },
          "kind": "title",
          "text": "COVID's impact is evident in Q2 but recovery is impressive in the second half",
          "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 21:24:02.411+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7f040f32-75fe-4415-aa5e-a68f04fa55db",
          "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": "019de99e-61d3-729f-bd24-7653f86e7745",
          "evidence": "title quotes Q2 dip and H2 recovery insight",
          "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": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 6,
          "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": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-61fd-7693-a725-6d90cb6e5861",
          "evidence": "grouped bars to compare 2019 vs 2020 by quarter",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 6,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Contrast Principle",
            "slug": "contrast-principle",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-bf0f-73ae-b9df-e60508cdaa65",
            "version": 1,
            "bodyDocId": null,
            "description": "Higher visual weight draws attention - use contrast strategically for emphasis",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6227-702d-886b-dcafb13848fa",
          "evidence": "red-2019 vs black-2020 contrast highlights deltas",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 6,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019de99e-6a0a-75bf-82fb-f8b90bd3b086",
          "evidence": "2019 vs 2020 by quarter",
          "framework": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 6,
          "frameworkName": "Grouped bar chart"
        }
      ],
      "arcBeats": [
        {
          "to": 8,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 4,
          "name": "Problem & Complication",
          "beatId": "019de99e-5d9f-70de-b15f-7586e85330fb",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "COVID-19 named as headwind, Q2 dip, recovery story",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 8,
          "from": 5,
          "loop": {
            "name": "02_pattern_hunter",
            "slug": "02-pattern-hunter",
            "status": "active",
            "bestFor": "Time-pressed audiences, building consensus, when data is strong",
            "canonId": "019dd956-6695-771a-be2e-f1748ef041a4",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Evidence A -> Evidence B -> Evidence C -> Pattern/Conclusion",
            "description": "Group multiple pieces of evidence that together point to a pattern or conclusion",
            "familyLabel": null
          },
          "matchId": "019de99e-5ef6-71ad-ae5b-dd58154388ff",
          "evidence": "Four chart slides stacking evidence (annual, quarterly, H1/H2, long-run) all pointing at resilience.",
          "position": 1,
          "objective": "Establish that ad-revenue growth survived COVID",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 7,
      "type": "analysis",
      "title": "The chart uses a stacked bar format to compare H1 (black) and H2 (red) revenue performance over an 11-year period.",
      "function": "quantify_impact",
      "rawType": "financial_analysis",
      "block": null,
      "metadata": {
        "slideType": "financial_analysis",
        "slideTypeCanon": {
          "name": "Financial analysis",
          "slug": "financial_analysis",
          "status": "active",
          "canonId": "019de52d-0b45-709c-bfcc-0cf83dd00f13",
          "version": 1,
          "description": null
        },
        "function": "quantify_impact",
        "functionCanon": {
          "name": "Quantify impact",
          "slug": "quantify_impact",
          "status": "active",
          "canonId": "019de52d-1630-720d-b57d-fa7f76bebd8d",
          "version": 1,
          "description": null
        },
        "density": "dense",
        "densityScore": 63,
        "componentCount": 7,
        "textChars": 548,
        "nDataPoints": 33,
        "notes": "The chart uses a stacked bar format to compare H1 (black) and H2 (red) revenue performance over an 11-year period.",
        "elementsJson": [
          "headline_text",
          "paragraph",
          "bar_chart_stacked",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:21.038+00",
          "seconds": 3.176,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/7",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-7",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.15,
            "w": 0.33,
            "x": 0.62,
            "y": 0.44
          },
          "kind": "callout",
          "text": "Advertising revenues during the second half of 2020 accounted for 58% of the year's total revenue.",
          "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 19:08:21.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "581b7f9c-7c1c-4c99-9022-b6615046d284",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.65,
            "w": 0.5,
            "x": 0.05,
            "y": 0.22
          },
          "kind": "chart",
          "text": "Historical revenue mix, first half vs second half (2010 - 2020) ($ billions)",
          "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 19:08:21.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b1c4ea74-35e6-4f3c-9989-3853f1cc4648",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.25,
            "x": 0.18,
            "y": 0.9
          },
          "kind": "legend",
          "text": "First 6 months; Last 6 months",
          "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 19:08:21.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "22aec26f-d297-4e15-8185-8b04561b549a",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Internet Advertising Revenue: $139.8bn",
          "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-24 13:48:18+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8552-a590a6166aaf",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.7,
            "x": 0.05,
            "y": 0.14
          },
          "kind": "paragraph",
          "text": "Performance across the last six months is almost entirely the reason for 2020's overall revenue growth.",
          "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 19:08:21.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5f5f2ee3-01a0-49b8-a60b-d1c68e5f7828",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.04,
            "w": 0.4,
            "x": 0.05,
            "y": 0.95
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020. Please note, first and second halves may not add up to total due to rounding.",
          "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 19:08:21.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f23d8dc3-2549-4597-bbb7-4ec977d4e73c",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.9,
            "x": 0.05,
            "y": 0.03
          },
          "kind": "title",
          "text": "Overall, H1 revenues were similar to last year but a busy H2 led to growth",
          "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 19:08:21.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "35f896a8-78d8-4d81-98c6-f519d51c54f6",
          "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": "019de99e-6255-77cf-b145-facade72b3c9",
          "evidence": "title pinpoints 'busy H2 led to growth'",
          "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": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 7,
          "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": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6280-77f9-bd7d-e342a96fa21b",
          "evidence": "stacked bars to split each year into H1/H2",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 7,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Color Strategy",
            "slug": "color-strategy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b202-77cf-8a6e-f445b08c0fd3",
            "version": 1,
            "bodyDocId": null,
            "description": "Using color for emphasis, categories, sentiment, and hierarchy",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-62ab-730b-a6bc-97d0a23e6101",
          "evidence": "black H1 / red H2 reused consistently",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 7,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019de99e-6a34-708c-b2de-96b2ce281426",
          "evidence": "H1/H2 stacked across 11 years",
          "framework": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 7,
          "frameworkName": "Stacked bar chart"
        }
      ],
      "arcBeats": [
        {
          "to": 8,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 4,
          "name": "Problem & Complication",
          "beatId": "019de99e-5d9f-70de-b15f-7586e85330fb",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "COVID-19 named as headwind, Q2 dip, recovery story",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 8,
          "from": 5,
          "loop": {
            "name": "02_pattern_hunter",
            "slug": "02-pattern-hunter",
            "status": "active",
            "bestFor": "Time-pressed audiences, building consensus, when data is strong",
            "canonId": "019dd956-6695-771a-be2e-f1748ef041a4",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Evidence A -> Evidence B -> Evidence C -> Pattern/Conclusion",
            "description": "Group multiple pieces of evidence that together point to a pattern or conclusion",
            "familyLabel": null
          },
          "matchId": "019de99e-5ef6-71ad-ae5b-dd58154388ff",
          "evidence": "Four chart slides stacking evidence (annual, quarterly, H1/H2, long-run) all pointing at resilience.",
          "position": 1,
          "objective": "Establish that ad-revenue growth survived COVID",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 8,
      "type": "resolution",
      "function": "summarize",
      "rawType": "key_takeaways",
      "block": null,
      "metadata": {
        "slideType": "key_takeaways",
        "slideTypeCanon": {
          "name": "Key takeaways",
          "slug": "key_takeaways",
          "status": "active",
          "canonId": "019de52d-06e7-7674-a891-9f7de3b11b6d",
          "version": 1,
          "description": null
        },
        "function": "summarize",
        "functionCanon": {
          "name": "Summarize",
          "slug": "summarize",
          "status": "active",
          "canonId": "019de52d-1541-704f-b86f-bf7b75056373",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 48,
        "componentCount": 6,
        "textChars": 481,
        "nDataPoints": 2,
        "notes": null,
        "elementsJson": [
          "headline_text",
          "paragraph",
          "area_chart",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:20.992+00",
          "seconds": 3,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/8",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-8",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.15,
            "w": 0.35,
            "x": 0.6,
            "y": 0.45
          },
          "kind": "callout",
          "text": "Ad revenues in Q4 were the highest to date, reaching $45.6 billion",
          "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 19:08:20.992+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "dff0a931-ffd3-4298-bb35-9a4047a77aaa",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.65,
            "w": 0.55,
            "x": 0.02,
            "y": 0.25
          },
          "kind": "chart",
          "text": "Quarterly internet advertising revenue growth trends (1996-2020)",
          "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": "Area chart",
              "slug": "area",
              "status": "active",
              "canonId": "019de52c-ff89-71e0-911e-5cab78b90f53",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "area",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:20.992+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "942f1e9a-a797-4546-b58d-390e4e37e0b6",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Internet advertising revenue: $45.6b",
          "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-24 13:48:18+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8552-450840824ffb",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.95,
            "x": 0.02,
            "y": 0.14
          },
          "kind": "paragraph",
          "text": "Political and holiday advertising spend combined to deliver the highest Q4 revenue figures to date and helped reduce the impact of COVID-19 on internet advertising revenue earlier in the year.",
          "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 19:08:20.992+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "afdbbc2a-ae28-416e-b247-81e3b39d63bd",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.3,
            "x": 0.02,
            "y": 0.92
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020",
          "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 19:08:20.992+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "0ab3e633-2963-44ee-87bd-a6f21c2d32b5",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.9,
            "x": 0.02,
            "y": 0.03
          },
          "kind": "title",
          "text": "Q4 recovery means revenue growth continues to follow a strong trajectory",
          "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 19:08:20.992+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4dc27c5a-21e1-4643-904d-bd1a63de4f9a",
          "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": "019de99e-62d6-75c8-8f6b-8ce57c090902",
          "evidence": "title: 'Q4 recovery means revenue growth continues'",
          "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": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 8,
          "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": "Annotation",
            "slug": "annotation",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b5b9-7668-bf0e-3af99823ec5c",
            "version": 1,
            "bodyDocId": null,
            "description": "Adding explanatory labels to highlight key data points",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-632b-741b-a2d3-18738b9928d0",
          "evidence": "Q4 record value annotated on the curve",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 8,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6301-75d7-8158-aa202519e39b",
          "evidence": "area chart for 24-year longitudinal trend",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 8,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019de99e-6a60-73fa-920d-782d5d694ffc",
          "evidence": "1996-2020 area fill",
          "framework": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 8,
          "frameworkName": "Area chart"
        }
      ],
      "arcBeats": [
        {
          "to": 8,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 4,
          "name": "Problem & Complication",
          "beatId": "019de99e-5d9f-70de-b15f-7586e85330fb",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "COVID-19 named as headwind, Q2 dip, recovery story",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 8,
          "from": 5,
          "loop": {
            "name": "02_pattern_hunter",
            "slug": "02-pattern-hunter",
            "status": "active",
            "bestFor": "Time-pressed audiences, building consensus, when data is strong",
            "canonId": "019dd956-6695-771a-be2e-f1748ef041a4",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Evidence A -> Evidence B -> Evidence C -> Pattern/Conclusion",
            "description": "Group multiple pieces of evidence that together point to a pattern or conclusion",
            "familyLabel": null
          },
          "matchId": "019de99e-5ef6-71ad-ae5b-dd58154388ff",
          "evidence": "Four chart slides stacking evidence (annual, quarterly, H1/H2, long-run) all pointing at resilience.",
          "position": 1,
          "objective": "Establish that ad-revenue growth survived COVID",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 9,
      "type": "analysis",
      "title": "The chart illustrates market concentration trends in the internet advertising industry.",
      "function": "quantify_impact",
      "rawType": "market_landscape",
      "block": null,
      "metadata": {
        "slideType": "market_landscape",
        "slideTypeCanon": {
          "name": "Market landscape",
          "slug": "market_landscape",
          "status": "active",
          "canonId": "019de52d-0b6d-75db-a946-9ac362e3afc2",
          "version": 1,
          "description": null
        },
        "function": "quantify_impact",
        "functionCanon": {
          "name": "Quantify impact",
          "slug": "quantify_impact",
          "status": "active",
          "canonId": "019de52d-1630-720d-b57d-fa7f76bebd8d",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 48,
        "componentCount": 6,
        "textChars": 410,
        "nDataPoints": 12,
        "notes": "The chart illustrates market concentration trends in the internet advertising industry.",
        "elementsJson": [
          "headline_text",
          "paragraph",
          "bar_chart_stacked",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:25.741+00",
          "seconds": 7.194,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/9",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-9",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.2,
            "w": 0.3,
            "x": 0.6,
            "y": 0.4
          },
          "kind": "callout",
          "text": "Overall advertising revenues for the top 10 companies exceed $100 billion.",
          "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 19:08:25.741+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "e98d24a6-99ae-4b90-8ecd-26113d945385",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.65,
            "w": 0.35,
            "x": 0.15,
            "y": 0.2
          },
          "kind": "chart",
          "text": "FY 2018 vs FY 2019 vs FY 2020 internet advertising revenue concentration",
          "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 19:08:25.741+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c02077d3-9fdb-42cc-9b2e-6c177cd324ae",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Market share: 78.1%",
          "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-24 13:48:18+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8552-2ad6060cd022",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.6,
            "x": 0.02,
            "y": 0.14
          },
          "kind": "paragraph",
          "text": "Companies outside of the top 10 made up 21.9% market share in 2020, down from 24.1% in 2018.",
          "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 19:08:25.741+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "42890f9c-07ec-4c8e-8e3f-fe5c29113cbd",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.4,
            "x": 0.02,
            "y": 0.93
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020. Please note, totals may not equal 100% due to rounding.",
          "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 19:08:25.741+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2df765eb-decc-4621-85c6-0e83d67924f5",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.5,
            "x": 0.02,
            "y": 0.03
          },
          "kind": "title",
          "text": "The Top 10 have increased their revenue 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 19:08:25.741+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "e7dbd3ad-e3c2-4d3e-8fae-f7d8b1461fd7",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Contrast Pairs",
            "slug": "contrast-pairs",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-9b77-70d3-88b1-f34e26f60860",
            "version": 1,
            "bodyDocId": null,
            "description": "Creating tension through opposites: Before↔After, Problem↔Solution, Pain↔Relief",
            "familyLabel": null,
            "categoryName": "Loop",
            "categorySlug": "loop"
          },
          "agent": "Storyteller",
          "layer": "loop",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019de99e-63ab-7409-b268-1e04694ca850",
          "evidence": "loop sets up Top10 vs rest and mobile vs desktop pairs",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 9,
          "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": "019de99e-6355-70b9-aede-fbe835512d2c",
          "evidence": "title: 'Top 10 have increased their revenue share'",
          "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": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 9,
          "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": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6380-7057-8a9d-7a5a60964d52",
          "evidence": "stacked bar to display concentration across 3 cohorts",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 9,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019de99e-6a89-73cd-bfc5-4f3104db1653",
          "evidence": "Top10 / 11-25 / Rest stacked per year",
          "framework": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 9,
          "frameworkName": "Stacked bar chart"
        }
      ],
      "arcBeats": [
        {
          "to": 11,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 9,
          "name": "Solution & Approach",
          "beatId": "019de99e-5dca-725d-a693-142a432cb0ff",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "structural lens: top-10 concentration, mobile-vs-desktop split",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 11,
          "from": 9,
          "loop": {
            "name": "34_segmentation_split",
            "slug": "34-segmentation-split",
            "status": "active",
            "bestFor": "Customer analysis, market research, resource allocation",
            "canonId": "019dd956-7398-77a8-9a5f-2e4d39589f42",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Aggregate View -> Segment A Behavior -> Segment B Behavior -> The Insight in the Difference",
            "description": "Divide a whole into meaningful segments to reveal hidden patterns",
            "familyLabel": null
          },
          "matchId": "019de99e-5f24-7430-b2bc-6e4a5a4a1961",
          "evidence": "Top10/11-25/Rest split, then desktop vs mobile splits drive the segmentation insight.",
          "position": 2,
          "objective": "Reveal who is winning the market and on which device",
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 10,
      "type": "analysis",
      "title": "The chart uses a stacked bar format to show the composition of total internet ad revenue over time.",
      "function": "analyze_data",
      "rawType": "industry_trends",
      "block": null,
      "metadata": {
        "slideType": "industry_trends",
        "slideTypeCanon": {
          "name": "Industry trends",
          "slug": "industry_trends",
          "status": "active",
          "canonId": "019de52d-0b1d-7705-a0e0-c663199cd1fa",
          "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": 70,
        "componentCount": 7,
        "textChars": 816,
        "nDataPoints": 33,
        "notes": "The chart uses a stacked bar format to show the composition of total internet ad revenue over time.",
        "elementsJson": [
          "headline_text",
          "bar_chart_stacked",
          "paragraph"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:25.777+00",
          "seconds": 6.592,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/10",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-10",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Total internet advertising revenues have seen a compound annual growth rate (CAGR) since 2010 of 18% (a slight drop from 19% when measured between 2010-2019). Mobile CAGR over the same period is 66.5% (a drop from 73.8% between 2010-2019), while desktop growth remains modest at 4.6% CAGR.",
          "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-24 13:48:18+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8552-db942de01057",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.6,
            "w": 0.5,
            "x": 0.05,
            "y": 0.2
          },
          "kind": "chart",
          "text": "Desktop vs. mobile full-year internet ad revenues (2010-2020)",
          "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 19:08:25.777+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "865dd174-20c1-4d80-af4e-f2ef4814671b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.2,
            "x": 0.25,
            "y": 0.85
          },
          "kind": "legend",
          "text": "Desktop Mobile",
          "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 19:08:25.777+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1e86bc95-ffc9-4465-b13b-9353f1bb91cf",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Internet advertising revenue: $139.8B",
          "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-24 13:48:18+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8552-dcd2cea8291c",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.4,
            "w": 0.35,
            "x": 0.6,
            "y": 0.3
          },
          "kind": "paragraph",
          "text": "Total internet advertising revenues have seen a compound annual growth rate (CAGR) since 2010 of 18% (a slight drop from 19% when measured between 2010-2019). Mobile CAGR over the same period is 66.5% (a drop from 73.8% between 2010-2019), while desktop growth remains modest at 4.6% CAGR.",
          "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 19:08:25.777+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f12aa5c1-0be6-456f-b11c-5d7d424c15ad",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.3,
            "x": 0.05,
            "y": 0.95
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020",
          "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 19:08:25.777+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5a6abd4d-1099-4f72-ab0d-26204909960a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.9,
            "x": 0.05,
            "y": 0.05
          },
          "kind": "title",
          "text": "Mobile revenues continue to grow and Desktop exceed $40B for the first time",
          "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 19:08:25.777+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "58f54bb7-4bfa-4ee4-b9ef-f70a25b2affc",
          "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": "019de99e-63d5-728d-8ad5-1aaabf764ec8",
          "evidence": "title: 'Mobile revenues continue to grow and Desktop exceed $40B'",
          "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": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 10,
          "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": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-63ff-729a-b94b-994f6377b301",
          "evidence": "stacked bar showing desktop vs mobile composition over 11 years",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 10,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 11,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 9,
          "name": "Solution & Approach",
          "beatId": "019de99e-5dca-725d-a693-142a432cb0ff",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "structural lens: top-10 concentration, mobile-vs-desktop split",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 11,
          "from": 9,
          "loop": {
            "name": "34_segmentation_split",
            "slug": "34-segmentation-split",
            "status": "active",
            "bestFor": "Customer analysis, market research, resource allocation",
            "canonId": "019dd956-7398-77a8-9a5f-2e4d39589f42",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Aggregate View -> Segment A Behavior -> Segment B Behavior -> The Insight in the Difference",
            "description": "Divide a whole into meaningful segments to reveal hidden patterns",
            "familyLabel": null
          },
          "matchId": "019de99e-5f24-7430-b2bc-6e4a5a4a1961",
          "evidence": "Top10/11-25/Rest split, then desktop vs mobile splits drive the segmentation insight.",
          "position": 2,
          "objective": "Reveal who is winning the market and on which device",
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 11,
      "type": "analysis",
      "title": "The chart shows a clear trend of mobile overtaking desktop revenue share, with the split stabilizing at 30/70 in 2019 and 2020.",
      "function": "analyze_data",
      "rawType": "industry_trends",
      "block": null,
      "metadata": {
        "slideType": "industry_trends",
        "slideTypeCanon": {
          "name": "Industry trends",
          "slug": "industry_trends",
          "status": "active",
          "canonId": "019de52d-0b1d-7705-a0e0-c663199cd1fa",
          "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": "balanced",
        "densityScore": 49,
        "componentCount": 6,
        "textChars": 429,
        "nDataPoints": 18,
        "notes": "The chart shows a clear trend of mobile overtaking desktop revenue share, with the split stabilizing at 30/70 in 2019 and 2020.",
        "elementsJson": [
          "headline_text",
          "paragraph",
          "bar_chart_grouped",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:39.848+00",
          "seconds": 20.643,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/11",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-11",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.15,
            "w": 0.2,
            "x": 0.75,
            "y": 0.35
          },
          "kind": "callout",
          "text": "$7 out of every $10 in advertising are mobile.",
          "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 19:08:39.848+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "e04c2c84-efc1-409b-8051-743ffb72191a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.55,
            "w": 0.65,
            "x": 0.05,
            "y": 0.25
          },
          "kind": "chart",
          "text": "Historical desktop vs. mobile trends, full-year results (2012-2020)",
          "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 19:08:39.848+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b6fea23c-6494-45da-aa91-350d6eea6063",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Revenue share: 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-24 13:48:18+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8552-7d4b6a033b41",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.9,
            "x": 0.05,
            "y": 0.12
          },
          "kind": "paragraph",
          "text": "It remains to be seen whether this leveling off occurs for one year only, as a result of the pandemic, or whether it's the start of more stability in revenues across devices.",
          "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 19:08:39.848+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8de0935a-0cfa-410b-a2ef-164685566769",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.3,
            "x": 0.05,
            "y": 0.85
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020",
          "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 19:08:39.848+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1f095a4c-8aab-443c-8c97-b389c7da9063",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.9,
            "x": 0.05,
            "y": 0.03
          },
          "kind": "title",
          "text": "2020 marked the first time Desktop vs. Mobile revenue share split plateau",
          "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 19:08:39.848+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8e32dc95-61d8-4e3b-9317-fa3268f3abe9",
          "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": "019de99e-642d-7019-853c-e97df0a6865c",
          "evidence": "title states the plateau insight",
          "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": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 11,
          "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": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6459-7017-9922-89b943e61018",
          "evidence": "grouped bars compare share split year by year",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 11,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Concrete Language",
            "slug": "concrete-language",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-bcd4-7398-9723-6aa72346170b",
            "version": 1,
            "bodyDocId": null,
            "description": "Using specific sensory details instead of abstract terms",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019de99e-6483-765b-80ec-e490799a802a",
          "evidence": "callout: '$7 out of every $10 in advertising are mobile'",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 11,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 11,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 9,
          "name": "Solution & Approach",
          "beatId": "019de99e-5dca-725d-a693-142a432cb0ff",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "structural lens: top-10 concentration, mobile-vs-desktop split",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 11,
          "from": 9,
          "loop": {
            "name": "34_segmentation_split",
            "slug": "34-segmentation-split",
            "status": "active",
            "bestFor": "Customer analysis, market research, resource allocation",
            "canonId": "019dd956-7398-77a8-9a5f-2e4d39589f42",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Aggregate View -> Segment A Behavior -> Segment B Behavior -> The Insight in the Difference",
            "description": "Divide a whole into meaningful segments to reveal hidden patterns",
            "familyLabel": null
          },
          "matchId": "019de99e-5f24-7430-b2bc-6e4a5a4a1961",
          "evidence": "Top10/11-25/Rest split, then desktop vs mobile splits drive the segmentation insight.",
          "position": 2,
          "objective": "Reveal who is winning the market and on which device",
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 12,
      "type": "setup",
      "function": "transition",
      "rawType": "section_divider",
      "block": null,
      "metadata": {
        "slideType": "section_divider",
        "slideTypeCanon": {
          "name": "Section divider",
          "slug": "section_divider",
          "status": "active",
          "canonId": "019de52d-066a-7402-9554-6ae504999041",
          "version": 1,
          "description": null
        },
        "function": "transition",
        "functionCanon": {
          "name": "Transition",
          "slug": "transition",
          "status": "active",
          "canonId": "019de52d-1365-7149-92aa-66df859e75fd",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 2,
        "componentCount": 2,
        "textChars": 23,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:21.999+00",
          "seconds": 2.292,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/12",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-12",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.233,
            "w": 0.178,
            "x": 0.037,
            "y": 0.108
          },
          "kind": "image",
          "text": "iab.",
          "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 19:08:21.999+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "de2429ba-37af-41b9-8a64-cad7d82e8bab",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.097,
            "w": 0.498,
            "x": 0.037,
            "y": 0.425
          },
          "kind": "title",
          "text": "Advertising formats",
          "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 19:08:21.999+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b763d638-777c-4e33-9b1f-a6f3fdb019c8",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Typography Hierarchy",
            "slug": "typography-hierarchy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
            "version": 1,
            "bodyDocId": null,
            "description": "Using font size, weight, and style to create reading order",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-64af-7788-8a71-73b4be4c8bb0",
          "evidence": "minimal section divider with bold title",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 12,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 13,
      "type": "analysis",
      "title": "The slide compares 2019 and 2020 revenue across four categories: Search, Display, Digital Video, and Other.",
      "function": "analyze_data",
      "rawType": "kpi_dashboard",
      "block": null,
      "metadata": {
        "slideType": "kpi_dashboard",
        "slideTypeCanon": {
          "name": "KPI dashboard",
          "slug": "kpi_dashboard",
          "status": "active",
          "canonId": "019de52d-0be5-7295-af4d-b850fe7b7e65",
          "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": 62,
        "componentCount": 7,
        "textChars": 565,
        "nDataPoints": 13,
        "notes": "The slide compares 2019 and 2020 revenue across four categories: Search, Display, Digital Video, and Other.",
        "elementsJson": [
          "headline_text",
          "donut_chart",
          "bar_chart_stacked",
          "callout_box",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:23.354+00",
          "seconds": 3.379,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/13",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-13",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "While all formats saw an increase in revenue, Digital Video experienced the most growth during the year, with a 20.6% increase in revenue and a 1.3% increase in share.",
          "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-24 13:48:18+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8552-b934a5ab418e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.45,
            "x": 0.04,
            "y": 0.6
          },
          "kind": "chart",
          "text": "2019 vs 2020 advertising format by 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 19:08:23.354+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "23bd22fc-fd86-4acd-9691-51ccb2db47eb",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.35,
            "w": 0.35,
            "x": 0.04,
            "y": 0.15
          },
          "kind": "chart",
          "text": "2020 advertising format by share",
          "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": "Donut chart",
              "slug": "donut",
              "status": "active",
              "canonId": "019de52d-0006-752c-9528-0fef476b8004",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "donut",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:23.354+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "3edbeef2-531d-450f-af1e-be6bc31d5173",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Revenue: $139.8b",
          "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-24 13:48:18+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8552-bcc2054b194a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.2,
            "w": 0.35,
            "x": 0.62,
            "y": 0.4
          },
          "kind": "paragraph",
          "text": "While all formats saw an increase in revenue, Digital Video experienced the most growth during the year, with a 20.6% increase in revenue and a 1.3% increase in share.",
          "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 19:08:23.354+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "9b9f862b-da32-4a1c-99e6-8b89e0be3a44",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.4,
            "x": 0.04,
            "y": 0.94
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020. Note: Other is comprised of Classifieds, Lead Generation and Audio",
          "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 19:08:23.354+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1a7427c4-7181-45a9-85d4-a7e99cd878b8",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.29,
            "x": 0.04,
            "y": 0.03
          },
          "kind": "title",
          "text": "FY 2020 format results",
          "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 19:08:23.354+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4cf6e00b-4c3c-4612-934d-436e0677ea36",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "MECE Principle",
            "slug": "mece-principle",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-7c60-71a8-8758-c79d914489c9",
            "version": 1,
            "bodyDocId": null,
            "description": "Mutually Exclusive, Collectively Exhaustive - ensuring complete, non-overlapping structure",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Architect",
          "layer": "block",
          "agents": [
            "Architect"
          ],
          "matchId": "019de99e-652e-72da-9d7c-b9dbd63bc0c4",
          "evidence": "Search/Display/Digital-Video/Other carve total 100%",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 13,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Chartjunk Elimination",
            "slug": "chartjunk-elimination",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b49e-7453-ab01-b60f338eeda1",
            "version": 1,
            "bodyDocId": null,
            "description": "Remove decorative elements that don't convey data: 3D effects, shadows, unnecessary gridlines",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "4d7ee7f9-fac1-4902-aca9-50fc7a8016da",
          "evidence": "The use of a stacked bar chart and a donut chart to effectively display the data",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:20:19.631106+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 13,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-64d9-733a-9fc7-395a9c574f67",
          "evidence": "donut for share + stacked bars for $ comparison",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 13,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Data-Ink Ratio",
            "slug": "data-ink-ratio",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-afc8-70da-b378-92834d36fde6",
            "version": 1,
            "bodyDocId": null,
            "description": "Maximize data, minimize non-data ink - remove chartjunk and decoration",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "a26b95dd-a812-4821-a2f5-b3436a3d02b8",
          "evidence": "The charts are designed to maximize the data-ink ratio, making it easy to understand the data",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:20:19.66827+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 13,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "So What? Test",
            "slug": "so-what-test",
            "status": "active",
            "bestFor": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
            "canonId": "019dd956-acd2-76f8-b59a-9bf15a89f10a",
            "version": 1,
            "bodyDocId": "fec04b06-b2f1-432b-a97b-916dc7563f64",
            "description": "The recursive editorial discipline of asking so-what of every slide, chart, and statement until the answer is an implication for the audience — that final answer becomes the slide's title; the chain becomes its body.",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Architect",
          "layer": "slide",
          "agents": [
            "Architect"
          ],
          "matchId": "019de99e-6504-723e-900f-d36cfb2ba53c",
          "evidence": "callout names Digital Video as standout (+20.6%)",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 13,
          "whyItWorks": "Solves the two failure modes of analytical communication at once: stopping at description (analyst-confidence problem) and leaving insight stranded in the analyst's head (translation problem). The recursion is what guarantees the implication makes it into ink.",
          "antipattern": "Stopping at the first tighter description (still a fact, not an implication), regressing past the audience's decision space into philosophy, smuggling the so-what into speaker notes, or re-using an implication aimed at a previous audience.",
          "cardinality": null,
          "narrativePurpose": "Forces every analytical artefact to close the gap between fact and decision, so the reader holds the recommendation by reading titles alone rather than reconstructing the analyst's mental model from raw evidence."
        }
      ],
      "frameworks": [
        {
          "matchId": "019de99e-6ab3-708e-823a-143648e29a1c",
          "evidence": "FY2020 share donut centered",
          "framework": null,
          "confidence": 95,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 13,
          "frameworkName": "Donut chart"
        },
        {
          "matchId": "019de99e-6add-70a4-b436-690b18e46f69",
          "evidence": "2019 vs 2020 horizontal stacks",
          "framework": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 13,
          "frameworkName": "Stacked bar chart"
        }
      ],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 13,
          "loop": {
            "name": "06_zoom_in",
            "slug": "06-zoom-in",
            "status": "active",
            "bestFor": "Technical deep-dives, case studies, detailed analysis",
            "canonId": "019dd956-6846-74db-82be-dff5b058b072",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Big Picture -> Key Area of Focus -> Specific Detail -> Implication",
            "description": "Start broad, then progressively focus on specific details that prove your point",
            "familyLabel": null
          },
          "matchId": "019de99e-5f4f-750a-963f-f60679f53374",
          "evidence": "Donut of all formats then mobile/desktop format split then digital-video share.",
          "position": 3,
          "objective": "Drill from total revenue mix into Digital Video as standout format",
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 14,
      "type": "analysis",
      "title": "The slide uses donut charts for total share and a series of icons with percentages for format breakdown.",
      "function": "analyze_data",
      "rawType": "industry_trends",
      "block": null,
      "metadata": {
        "slideType": "industry_trends",
        "slideTypeCanon": {
          "name": "Industry trends",
          "slug": "industry_trends",
          "status": "active",
          "canonId": "019de52d-0b1d-7705-a0e0-c663199cd1fa",
          "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": 63,
        "componentCount": 8,
        "textChars": 414,
        "nDataPoints": 12,
        "notes": "The slide uses donut charts for total share and a series of icons with percentages for format breakdown.",
        "elementsJson": [
          "headline_text",
          "donut_chart",
          "icon_grid",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:23.184+00",
          "seconds": 3.156,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/14",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-14",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.1,
            "w": 0.3,
            "x": 0.62,
            "y": 0.67
          },
          "kind": "callout",
          "text": "$7 out of every $10 continues to be derived from a mobile device (smartphone or tablet)",
          "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 19:08:23.184+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "63fef4fb-e19d-4175-b338-6f4c5174ea51",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.2,
            "x": 0.08,
            "y": 0.62
          },
          "kind": "chart",
          "text": "Mobile Market Share 70%",
          "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": "Donut chart",
              "slug": "donut",
              "status": "active",
              "canonId": "019de52d-0006-752c-9528-0fef476b8004",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "donut",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:23.184+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "819af317-503b-4ddd-bb46-b4fd81014923",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.2,
            "x": 0.08,
            "y": 0.275
          },
          "kind": "chart",
          "text": "Desktop Market Share 30%",
          "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": "Donut chart",
              "slug": "donut",
              "status": "active",
              "canonId": "019de52d-0006-752c-9528-0fef476b8004",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "donut",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:23.184+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b1707091-e330-4263-aaa4-8b26c1b23267",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Market Share: 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-24 13:48:18+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8552-60e6b5fa6bb9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.3,
            "x": 0.62,
            "y": 0.44
          },
          "kind": "paragraph",
          "text": "Despite desktop's highest recorded internet advertising revenue in over 10 years",
          "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 19:08:23.184+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7e03fe2d-dba5-49eb-b06b-f2c449ee4bd1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.3,
            "x": 0.08,
            "y": 0.92
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020",
          "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 19:08:23.184+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d5df4064-11bc-4a7a-94ef-2b8fc2a6e7df",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.8,
            "x": 0.03,
            "y": 0.03
          },
          "kind": "title",
          "text": "Video revenue on mobile experience the strongest growth across formats",
          "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 19:08:23.184+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a7f0d8a1-f3e8-4ee5-bdc9-078db2e9b0eb",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.3,
            "x": 0.08,
            "y": 0.18
          },
          "kind": "title",
          "text": "Full year format share, mobile vs. desktop (2020) ($ billions)",
          "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": "Subtitle",
              "slug": "subtitle",
              "status": "active",
              "canonId": "019de52c-fb09-739d-900c-815b0d9ac526",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "subtitle",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:23.184+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "89950b43-5a18-4137-993f-5451c92632e4",
          "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": "019de99e-655a-76a8-b41d-e29f17c63211",
          "evidence": "title: 'Video revenue on mobile experience the strongest growth'",
          "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": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 14,
          "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": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "13b12ce4-5987-4cd3-8bf6-8697319e9c14",
          "evidence": "The use of a donut chart to effectively display market share",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:20:19.743984+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 14,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Contrast Pairs",
            "slug": "contrast-pairs",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-9b77-70d3-88b1-f34e26f60860",
            "version": 1,
            "bodyDocId": null,
            "description": "Creating tension through opposites: Before↔After, Problem↔Solution, Pain↔Relief",
            "familyLabel": null,
            "categoryName": "Loop",
            "categorySlug": "loop"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019de99e-65af-7798-8bfe-50f73b24dba0",
          "evidence": "explicit desktop vs mobile pair",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 14,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Small Multiples",
            "slug": "small-multiples",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b32d-7586-b368-baa1dd388ed4",
            "version": 1,
            "bodyDocId": null,
            "description": "Repeating similar charts for comparison across categories or time",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6585-73e7-a13a-15e31c204836",
          "evidence": "twin donut charts for desktop vs mobile mix",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 14,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019de99e-6b09-7129-8955-e62e3651a702",
          "evidence": "twin donuts for desktop vs mobile mix",
          "framework": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 14,
          "frameworkName": "Donut chart"
        }
      ],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 13,
          "loop": {
            "name": "06_zoom_in",
            "slug": "06-zoom-in",
            "status": "active",
            "bestFor": "Technical deep-dives, case studies, detailed analysis",
            "canonId": "019dd956-6846-74db-82be-dff5b058b072",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Big Picture -> Key Area of Focus -> Specific Detail -> Implication",
            "description": "Start broad, then progressively focus on specific details that prove your point",
            "familyLabel": null
          },
          "matchId": "019de99e-5f4f-750a-963f-f60679f53374",
          "evidence": "Donut of all formats then mobile/desktop format split then digital-video share.",
          "position": 3,
          "objective": "Drill from total revenue mix into Digital Video as standout format",
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 15,
      "type": "analysis",
      "title": "The chart shows a clear shift in revenue composition towards mobile devices over the three-year period.",
      "function": "analyze_data",
      "rawType": "data_table",
      "block": null,
      "metadata": {
        "slideType": "data_table",
        "slideTypeCanon": {
          "name": "Data table",
          "slug": "data_table",
          "status": "active",
          "canonId": "019de52d-0bbd-71b9-9918-417f904abbf8",
          "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": "balanced",
        "densityScore": 34,
        "componentCount": 5,
        "textChars": 317,
        "nDataPoints": 6,
        "notes": "The chart shows a clear shift in revenue composition towards mobile devices over the three-year period.",
        "elementsJson": [
          "headline_text",
          "bar_chart_stacked",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:22.826+00",
          "seconds": 2.218,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/15",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-15",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.2,
            "w": 0.35,
            "x": 0.6,
            "y": 0.4
          },
          "kind": "callout",
          "text": "Total digital video advertising revenue increased 20.6% with mobile accounting for the majority of that growth",
          "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 19:08:22.826+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "52a91c05-8bf6-40a2-886a-0ad9b2814bb0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.65,
            "w": 0.35,
            "x": 0.1,
            "y": 0.2
          },
          "kind": "chart",
          "text": "Digital video revenues, full year results (2018-2020) ($ billions)",
          "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 19:08:22.826+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d7f320a2-a92a-4a63-b538-3fbc7da07c4d",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Digital video revenue: 20.6%",
          "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-24 13:48:19+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8553-04088e280a87",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.25,
            "x": 0.1,
            "y": 0.95
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020",
          "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 19:08:22.826+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d7f72dc7-998f-4a49-b241-b50de9d762f5",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.7,
            "x": 0.02,
            "y": 0.03
          },
          "kind": "title",
          "text": "Digital video share of total revenues climbs on mobile devices",
          "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 19:08:22.826+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7b7b0286-c1a7-46c9-822a-88c79f4ec25f",
          "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": "019de99e-65d9-76d9-b805-974888e481f8",
          "evidence": "title: 'Digital video share of total revenues climbs on mobile'",
          "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": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 15,
          "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": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6603-766e-9a62-b1ef21bc9fe4",
          "evidence": "stacked bar isolates desktop vs mobile within video",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 15,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Color Strategy",
            "slug": "color-strategy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b202-77cf-8a6e-f445b08c0fd3",
            "version": 1,
            "bodyDocId": null,
            "description": "Using color for emphasis, categories, sentiment, and hierarchy",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-662e-76ea-9812-0dfefb173147",
          "evidence": "consistent black-desktop / red-mobile palette",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 15,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Waterfall chart",
            "slug": "waterfall-chart",
            "status": "active",
            "bestFor": null,
            "canonId": "e2799da3-725f-44a9-a093-570f1f388e64",
            "version": 1,
            "bodyDocId": null,
            "description": null,
            "familyLabel": null,
            "categoryName": null,
            "categorySlug": null
          },
          "agent": null,
          "layer": "slide",
          "agents": null,
          "matchId": "eab759db-5ed0-446e-9a44-b0ce3bf13512",
          "evidence": "The use of a stacked bar chart to show the growth of digital video revenues",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.8,
          "extraction": {
            "at": "2026-07-16 21:20:19.818375+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 15,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 13,
          "loop": {
            "name": "06_zoom_in",
            "slug": "06-zoom-in",
            "status": "active",
            "bestFor": "Technical deep-dives, case studies, detailed analysis",
            "canonId": "019dd956-6846-74db-82be-dff5b058b072",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Big Picture -> Key Area of Focus -> Specific Detail -> Implication",
            "description": "Start broad, then progressively focus on specific details that prove your point",
            "familyLabel": null
          },
          "matchId": "019de99e-5f4f-750a-963f-f60679f53374",
          "evidence": "Donut of all formats then mobile/desktop format split then digital-video share.",
          "position": 3,
          "objective": "Drill from total revenue mix into Digital Video as standout format",
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 16,
      "type": "setup",
      "function": "transition",
      "rawType": "section_divider",
      "block": null,
      "metadata": {
        "slideType": "section_divider",
        "slideTypeCanon": {
          "name": "Section divider",
          "slug": "section_divider",
          "status": "active",
          "canonId": "019de52d-066a-7402-9554-6ae504999041",
          "version": 1,
          "description": null
        },
        "function": "transition",
        "functionCanon": {
          "name": "Transition",
          "slug": "transition",
          "status": "active",
          "canonId": "019de52d-1365-7149-92aa-66df859e75fd",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 2,
        "componentCount": 2,
        "textChars": 16,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:23.498+00",
          "seconds": 2.194,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/16",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-16",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.162,
            "w": 0.138,
            "x": 0.037,
            "y": 0.107
          },
          "kind": "image",
          "text": "iab.",
          "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 19:08:23.498+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2d3405c1-0e58-417b-ba38-cdd50956e2d5",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.085,
            "w": 0.295,
            "x": 0.037,
            "y": 0.425
          },
          "kind": "title",
          "text": "Social media",
          "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 19:08:23.498+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a3d00042-7269-4978-a67d-9a0ea03700c7",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "MECE Principle",
            "slug": "mece-principle",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-7c60-71a8-8758-c79d914489c9",
            "version": 1,
            "bodyDocId": null,
            "description": "Mutually Exclusive, Collectively Exhaustive - ensuring complete, non-overlapping structure",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Architect",
          "layer": "block",
          "agents": [
            "Architect"
          ],
          "matchId": "019de99e-6684-753f-9009-147f9f0a90bb",
          "evidence": "Social/Audio/Programmatic structured as distinct channels",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 16,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Typography Hierarchy",
            "slug": "typography-hierarchy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
            "version": 1,
            "bodyDocId": null,
            "description": "Using font size, weight, and style to create reading order",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6659-7328-ae46-fc904b8ef59a",
          "evidence": "minimal section divider",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 16,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "40_mece_breakdown",
            "slug": "40-mece-breakdown",
            "status": "active",
            "bestFor": "Problem structuring, ensuring completeness, strategic analysis",
            "canonId": "019dd956-763c-765e-8b68-6ee3ae1ef184",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Whole -> Category A (distinct) -> Category B (distinct) -> Category C (distinct) -> Complete Coverage",
            "description": "Divide a complex topic into mutually exclusive, collectively exhaustive categories",
            "familyLabel": null
          },
          "matchId": "019de99e-5f7a-72e4-876c-593bbc301ec3",
          "evidence": "Three section-divider + analysis pairs cover distinct, non-overlapping channels.",
          "position": 4,
          "objective": "Walk channel-by-channel through Social, Audio, Programmatic",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 17,
      "type": "analysis",
      "function": "analyze_data",
      "rawType": "data_table",
      "block": null,
      "metadata": {
        "slideType": "data_table",
        "slideTypeCanon": {
          "name": "Data table",
          "slug": "data_table",
          "status": "active",
          "canonId": "019de52d-0bbd-71b9-9918-417f904abbf8",
          "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": "balanced",
        "densityScore": 35,
        "componentCount": 5,
        "textChars": 354,
        "nDataPoints": 4,
        "notes": null,
        "elementsJson": [
          "headline_text",
          "line_chart",
          "callout_box",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:23.563+00",
          "seconds": 2.113,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/17",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-17",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.25,
            "w": 0.28,
            "x": 0.65,
            "y": 0.37
          },
          "kind": "callout",
          "text": "Social media advertising revenues totaled $41.5 billion in 2020, with a notable increase in second-half revenues.",
          "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 19:08:23.563+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "245e7e7c-b30b-4e2e-ad39-94eb91d6e0c9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.65,
            "w": 0.53,
            "x": 0.06,
            "y": 0.23
          },
          "kind": "chart",
          "text": "Social media advertising revenues, full year results (2012 - 2020)",
          "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 19:08:23.563+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7b04fe31-1ce8-4f9a-a990-e0f315fe1a82",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Social media advertising revenue: $41.5 billion",
          "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-24 13:48:21+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8554-81845f9c1976",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.25,
            "x": 0.11,
            "y": 0.95
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020",
          "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 19:08:23.563+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cc24f7ae-ecc3-40e2-89e6-218ab50f4de1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.94,
            "x": 0.03,
            "y": 0.03
          },
          "kind": "title",
          "text": "Social media revenues continued its climb to take up 30% of total ad revenues",
          "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 19:08:23.563+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "86174733-7196-41c6-9fad-4e4270ff2e61",
          "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": "019de99e-66ae-749d-88a9-8a557486e3a8",
          "evidence": "title: 'Social media revenues continued its climb to take up 30%'",
          "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": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 17,
          "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": "Annotation",
            "slug": "annotation",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b5b9-7668-bf0e-3af99823ec5c",
            "version": 1,
            "bodyDocId": null,
            "description": "Adding explanatory labels to highlight key data points",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6702-724a-9140-4b2afcd1f47f",
          "evidence": "$41.5B 2020 endpoint annotated",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 17,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-66d8-7708-8092-86b08e0829ef",
          "evidence": "line chart over 9 years split H1/H2",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 17,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019de99e-6b35-707c-8be8-481a3c6a072f",
          "evidence": "social-ad-revenue line 2012-2020",
          "framework": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 17,
          "frameworkName": "Line chart"
        }
      ],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "40_mece_breakdown",
            "slug": "40-mece-breakdown",
            "status": "active",
            "bestFor": "Problem structuring, ensuring completeness, strategic analysis",
            "canonId": "019dd956-763c-765e-8b68-6ee3ae1ef184",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Whole -> Category A (distinct) -> Category B (distinct) -> Category C (distinct) -> Complete Coverage",
            "description": "Divide a complex topic into mutually exclusive, collectively exhaustive categories",
            "familyLabel": null
          },
          "matchId": "019de99e-5f7a-72e4-876c-593bbc301ec3",
          "evidence": "Three section-divider + analysis pairs cover distinct, non-overlapping channels.",
          "position": 4,
          "objective": "Walk channel-by-channel through Social, Audio, Programmatic",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 18,
      "type": "setup",
      "function": "transition",
      "rawType": "section_divider",
      "block": null,
      "metadata": {
        "slideType": "section_divider",
        "slideTypeCanon": {
          "name": "Section divider",
          "slug": "section_divider",
          "status": "active",
          "canonId": "019de52d-066a-7402-9554-6ae504999041",
          "version": 1,
          "description": null
        },
        "function": "transition",
        "functionCanon": {
          "name": "Transition",
          "slug": "transition",
          "status": "active",
          "canonId": "019de52d-1365-7149-92aa-66df859e75fd",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 2,
        "componentCount": 2,
        "textChars": 17,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "other"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:23.558+00",
          "seconds": 1.884,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/18",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-18",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.235,
            "w": 0.138,
            "x": 0.038,
            "y": 0.105
          },
          "kind": "image",
          "text": "iab.",
          "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 19:08:23.558+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5cf508a3-dd2d-4f3f-8a08-80bc2bb04d6b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.095,
            "w": 0.333,
            "x": 0.038,
            "y": 0.415
          },
          "kind": "title",
          "text": "Digital audio",
          "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 19:08:23.558+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "71db2dbc-4c0a-4422-b318-77d5597b14f7",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Typography Hierarchy",
            "slug": "typography-hierarchy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
            "version": 1,
            "bodyDocId": null,
            "description": "Using font size, weight, and style to create reading order",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-672e-76aa-8e74-fc796244746d",
          "evidence": "minimal section divider",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 18,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "40_mece_breakdown",
            "slug": "40-mece-breakdown",
            "status": "active",
            "bestFor": "Problem structuring, ensuring completeness, strategic analysis",
            "canonId": "019dd956-763c-765e-8b68-6ee3ae1ef184",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Whole -> Category A (distinct) -> Category B (distinct) -> Category C (distinct) -> Complete Coverage",
            "description": "Divide a complex topic into mutually exclusive, collectively exhaustive categories",
            "familyLabel": null
          },
          "matchId": "019de99e-5f7a-72e4-876c-593bbc301ec3",
          "evidence": "Three section-divider + analysis pairs cover distinct, non-overlapping channels.",
          "position": 4,
          "objective": "Walk channel-by-channel through Social, Audio, Programmatic",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 19,
      "type": "analysis",
      "function": "quantify_impact",
      "rawType": "data_table",
      "block": null,
      "metadata": {
        "slideType": "data_table",
        "slideTypeCanon": {
          "name": "Data table",
          "slug": "data_table",
          "status": "active",
          "canonId": "019de52d-0bbd-71b9-9918-417f904abbf8",
          "version": 1,
          "description": null
        },
        "function": "quantify_impact",
        "functionCanon": {
          "name": "Quantify impact",
          "slug": "quantify_impact",
          "status": "active",
          "canonId": "019de52d-1630-720d-b57d-fa7f76bebd8d",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 40,
        "componentCount": 5,
        "textChars": 445,
        "nDataPoints": 6,
        "notes": null,
        "elementsJson": [
          "bar_chart_grouped",
          "callout_box",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:24.881+00",
          "seconds": 2.707,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/19",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-19",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.25,
            "w": 0.35,
            "x": 0.6,
            "y": 0.44
          },
          "kind": "callout",
          "text": "Audio advertising revenue increased by over $350 million in 2020. This equates to a 13% YoY growth, driven predominantly by increased mobile audio revenues.",
          "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 19:08:24.881+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "40be6cf7-0758-471d-a2e1-db168cc3ffd6",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.6,
            "w": 0.45,
            "x": 0.05,
            "y": 0.23
          },
          "kind": "chart",
          "text": "Digital audio advertising revenue, full year results (2019 - 2020) ($ millions)",
          "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": "Grouped bar chart",
              "slug": "bar-grouped",
              "status": "active",
              "canonId": "019de52c-ff3b-751e-a8ff-f21ff11097b1",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bar-grouped",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:24.881+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f41dec6b-9be4-4984-829b-64336fffb56d",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Digital audio advertising revenue: $3,085",
          "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-24 13:48:19+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8553-36c4348e9e79",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.3,
            "x": 0.02,
            "y": 0.93
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020. Please note, totals may not equal 100% due to rounding.",
          "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 19:08:24.881+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2aba8012-7ad7-401d-a56b-fba14d1cb45e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.78,
            "x": 0.02,
            "y": 0.03
          },
          "kind": "title",
          "text": "Mobile is the dominant ad-revenue generating device for audio",
          "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 19:08:24.881+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f5b6f355-88a1-4e38-9b2c-9fc2907a9e0d",
          "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": "019de99e-675b-75d0-bdd2-4120ea67ec68",
          "evidence": "title: 'Mobile is the dominant ad-revenue generating device for audio'",
          "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": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 19,
          "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": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6786-701d-b1da-5680941fb414",
          "evidence": "grouped bar by device for 2019 vs 2020",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 19,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Contrast Principle",
            "slug": "contrast-principle",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-bf0f-73ae-b9df-e60508cdaa65",
            "version": 1,
            "bodyDocId": null,
            "description": "Higher visual weight draws attention - use contrast strategically for emphasis",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-67b1-73ee-af5b-21635faac9e5",
          "evidence": "red 2019 vs black 2020 emphasizes mobile delta",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 19,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "40_mece_breakdown",
            "slug": "40-mece-breakdown",
            "status": "active",
            "bestFor": "Problem structuring, ensuring completeness, strategic analysis",
            "canonId": "019dd956-763c-765e-8b68-6ee3ae1ef184",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Whole -> Category A (distinct) -> Category B (distinct) -> Category C (distinct) -> Complete Coverage",
            "description": "Divide a complex topic into mutually exclusive, collectively exhaustive categories",
            "familyLabel": null
          },
          "matchId": "019de99e-5f7a-72e4-876c-593bbc301ec3",
          "evidence": "Three section-divider + analysis pairs cover distinct, non-overlapping channels.",
          "position": 4,
          "objective": "Walk channel-by-channel through Social, Audio, Programmatic",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 20,
      "type": "setup",
      "function": "transition",
      "rawType": "section_divider",
      "block": null,
      "metadata": {
        "slideType": "section_divider",
        "slideTypeCanon": {
          "name": "Section divider",
          "slug": "section_divider",
          "status": "active",
          "canonId": "019de52d-066a-7402-9554-6ae504999041",
          "version": 1,
          "description": null
        },
        "function": "transition",
        "functionCanon": {
          "name": "Transition",
          "slug": "transition",
          "status": "active",
          "canonId": "019de52d-1365-7149-92aa-66df859e75fd",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 2,
        "componentCount": 2,
        "textChars": 16,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:25.32+00",
          "seconds": 2.211,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/20",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-20",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.235,
            "w": 0.138,
            "x": 0.038,
            "y": 0.105
          },
          "kind": "image",
          "text": "iab.",
          "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 19:08:25.32+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c57fa897-0b9c-4e18-8697-42f9489878dc",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.095,
            "w": 0.368,
            "x": 0.038,
            "y": 0.425
          },
          "kind": "title",
          "text": "Programmatic",
          "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 19:08:25.32+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8d8cab41-8eb2-4eca-b920-e171a40b65f3",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Typography Hierarchy",
            "slug": "typography-hierarchy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
            "version": 1,
            "bodyDocId": null,
            "description": "Using font size, weight, and style to create reading order",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-67dc-72c8-9193-bbf81ae24e90",
          "evidence": "minimal section divider",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 20,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "40_mece_breakdown",
            "slug": "40-mece-breakdown",
            "status": "active",
            "bestFor": "Problem structuring, ensuring completeness, strategic analysis",
            "canonId": "019dd956-763c-765e-8b68-6ee3ae1ef184",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Whole -> Category A (distinct) -> Category B (distinct) -> Category C (distinct) -> Complete Coverage",
            "description": "Divide a complex topic into mutually exclusive, collectively exhaustive categories",
            "familyLabel": null
          },
          "matchId": "019de99e-5f7a-72e4-876c-593bbc301ec3",
          "evidence": "Three section-divider + analysis pairs cover distinct, non-overlapping channels.",
          "position": 4,
          "objective": "Walk channel-by-channel through Social, Audio, Programmatic",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 21,
      "type": "analysis",
      "title": "The chart shows a shift in share from non-programmatic to programmatic between 2019 and 2020.",
      "function": "quantify_impact",
      "rawType": "data_table",
      "block": null,
      "metadata": {
        "slideType": "data_table",
        "slideTypeCanon": {
          "name": "Data table",
          "slug": "data_table",
          "status": "active",
          "canonId": "019de52d-0bbd-71b9-9918-417f904abbf8",
          "version": 1,
          "description": null
        },
        "function": "quantify_impact",
        "functionCanon": {
          "name": "Quantify impact",
          "slug": "quantify_impact",
          "status": "active",
          "canonId": "019de52d-1630-720d-b57d-fa7f76bebd8d",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 46,
        "componentCount": 6,
        "textChars": 401,
        "nDataPoints": 6,
        "notes": "The chart shows a shift in share from non-programmatic to programmatic between 2019 and 2020.",
        "elementsJson": [
          "headline_text",
          "bar_chart_stacked",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:25.931+00",
          "seconds": 2.75,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/21",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-21",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "The programmatic growth trend continues, with ad revenues increasing by $14.2 billion within the last 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-24 13:48:19+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8553-59da3bad6fb2",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.5,
            "w": 0.45,
            "x": 0.08,
            "y": 0.23
          },
          "kind": "chart",
          "text": "Programmatic (excluding Search) full year results (2019-2020)",
          "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 (100%)",
              "slug": "bar-stacked-100pct",
              "status": "active",
              "canonId": "019de52c-ff14-71b8-8d88-860f8d7da84b",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bar-stacked-100pct",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:25.931+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "82b7eea1-c63c-472a-948f-d8bbb08a0a24",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Programmatic ad revenue: 24.9%",
          "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-24 13:48:19+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8553-5dab41718bb9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.2,
            "w": 0.3,
            "x": 0.65,
            "y": 0.45
          },
          "kind": "paragraph",
          "text": "The programmatic growth trend continues, with ad revenues increasing by $14.2 billion within the last year",
          "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 19:08:25.931+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "26c46484-e9a4-4dd9-ad21-55a4b72cc1bb",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.2,
            "x": 0.12,
            "y": 0.92
          },
          "kind": "source-note",
          "text": "Source: IAB/PwC Internet Ad Revenue Report, FY 2020",
          "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 19:08:25.931+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a7e3cf64-aa27-4548-829c-b40f768c5c94",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.6,
            "x": 0.03,
            "y": 0.03
          },
          "kind": "title",
          "text": "Programmatic ad revenues increased by 24.9% YoY",
          "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 19:08:25.931+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "625ef3d5-bda6-4168-a45a-252ee19b830a",
          "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": "019de99e-6807-77d5-898d-eca66b271e9d",
          "evidence": "title: 'Programmatic ad revenues increased by 24.9% YoY'",
          "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": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 21,
          "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": "019de99e-685d-7670-b19d-09cb7e5852e4",
          "evidence": "2019 vs 2020 framed as before/after share shift",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 21,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6832-7518-bd3f-c0b2fa220a93",
          "evidence": "stacked bar splits programmatic vs non-programmatic",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 21,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 21,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 5,
          "name": "The Facts (What)",
          "beatId": "019de99e-5e74-7399-92c8-8c1432dcf7f8",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "twelve data slides quantifying revenue, growth, mix",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "40_mece_breakdown",
            "slug": "40-mece-breakdown",
            "status": "active",
            "bestFor": "Problem structuring, ensuring completeness, strategic analysis",
            "canonId": "019dd956-763c-765e-8b68-6ee3ae1ef184",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Whole -> Category A (distinct) -> Category B (distinct) -> Category C (distinct) -> Complete Coverage",
            "description": "Divide a complex topic into mutually exclusive, collectively exhaustive categories",
            "familyLabel": null
          },
          "matchId": "019de99e-5f7a-72e4-876c-593bbc301ec3",
          "evidence": "Three section-divider + analysis pairs cover distinct, non-overlapping channels.",
          "position": 4,
          "objective": "Walk channel-by-channel through Social, Audio, Programmatic",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 22,
      "type": "setup",
      "function": "transition",
      "rawType": "section_divider",
      "block": null,
      "metadata": {
        "slideType": "section_divider",
        "slideTypeCanon": {
          "name": "Section divider",
          "slug": "section_divider",
          "status": "active",
          "canonId": "019de52d-066a-7402-9554-6ae504999041",
          "version": 1,
          "description": null
        },
        "function": "transition",
        "functionCanon": {
          "name": "Transition",
          "slug": "transition",
          "status": "active",
          "canonId": "019de52d-1365-7149-92aa-66df859e75fd",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 2,
        "componentCount": 2,
        "textChars": 15,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:25.41+00",
          "seconds": 2.012,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/22",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-22",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.138,
            "w": 0.138,
            "x": 0.038,
            "y": 0.108
          },
          "kind": "image",
          "text": "iab.",
          "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 19:08:25.41+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "954fa4eb-e107-472f-9179-b783468fd016",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.055,
            "w": 0.215,
            "x": 0.038,
            "y": 0.425
          },
          "kind": "title",
          "text": "Market Size",
          "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 19:08:25.41+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f4a455d4-ef47-4e9a-ba6a-ac43550dba2f",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Typography Hierarchy",
            "slug": "typography-hierarchy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-ba98-77ab-9513-ff2344da8bc7",
            "version": 1,
            "bodyDocId": null,
            "description": "Using font size, weight, and style to create reading order",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6887-719c-96a5-a43cd3faad05",
          "evidence": "section divider, bold title on red",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 22,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 23,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 22,
          "name": "The Implications (So What)",
          "beatId": "019de99e-5e9d-730c-bec2-d72e805659cb",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "cross-media comparison frames internet as winner",
          "position": 2,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 23,
          "from": 22,
          "loop": {
            "name": "39_benchmark_gap",
            "slug": "39-benchmark-gap",
            "status": "active",
            "bestFor": "Performance improvement, competitive analysis, target setting",
            "canonId": "019dd956-75a4-7522-8d1a-af94da4703e9",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Our Performance -> Industry Average -> Best-in-Class -> The Gap = The Opportunity",
            "description": "Compare performance against best-in-class to quantify the opportunity",
            "familyLabel": null
          },
          "matchId": "019de99e-5fa5-7735-b1a3-830deb53e612",
          "evidence": "Bar chart ranks 10 media types by YoY growth; only internet, video games, esports positive.",
          "position": 5,
          "objective": "Benchmark internet ads against all media to show outperformance",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 23,
      "type": "analysis",
      "title": "The chart uses a grouped bar format to show year-over-year revenue changes.",
      "function": "analyze_data",
      "rawType": "industry_trends",
      "block": null,
      "metadata": {
        "slideType": "industry_trends",
        "slideTypeCanon": {
          "name": "Industry trends",
          "slug": "industry_trends",
          "status": "active",
          "canonId": "019de52d-0b1d-7705-a0e0-c663199cd1fa",
          "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": 51,
        "componentCount": 5,
        "textChars": 702,
        "nDataPoints": 20,
        "notes": "The chart uses a grouped bar format to show year-over-year revenue changes.",
        "elementsJson": [
          "headline_text",
          "bar_chart_grouped",
          "callout_box",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:26.673+00",
          "seconds": 3.038,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/23",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-23",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.2,
            "w": 0.25,
            "x": 0.68,
            "y": 0.38
          },
          "kind": "callout",
          "text": "Internet advertising, video games and esports are the only media types with positive revenue growth between 2019 and 2020",
          "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 19:08:26.673+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7db8511e-cf1d-4230-a01d-60a317aeb468",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.7,
            "w": 0.5,
            "x": 0.03,
            "y": 0.15
          },
          "kind": "chart",
          "text": "Advertising revenues and growth, by media (2019 vs. 2020 growth)",
          "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": "Grouped bar chart",
              "slug": "bar-grouped",
              "status": "active",
              "canonId": "019de52c-ff3b-751e-a8ff-f21ff11097b1",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "bar-grouped",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:26.673+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "06b28a33-a6c5-4119-b889-062e2e68e890",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.5,
            "x": 0.03,
            "y": 0.85
          },
          "kind": "disclaimer",
          "text": "Because eSports had a lower ad revenue compared to other media types, its impressive growth rate of 17.9%, which eclipsed all the other types from 2019 to 2020, may not be as noticeable in this graph. Source: Internet advertising data from IAB / PwC Internet Ad Revenue Report, FY 2020. Source: All other data points from PwC Entertainment & Media Outlook",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Disclaimer",
              "slug": "disclaimer",
              "status": "active",
              "canonId": "91173477-d91f-4024-bbaf-d4f93e3f82dc",
              "version": 1,
              "description": "Legal/cautionary text that occupies most of the body of its slide."
            },
            "tool": null,
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:08:26.673+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "764fce18-be51-495c-93f9-5ffda6b0f7eb",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Revenue growth: +17.9%",
          "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-24 13:48:20+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-dfa3-77ce-8553-d8d9a4818006",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.95,
            "x": 0.02,
            "y": 0.05
          },
          "kind": "title",
          "text": "Esports continued to surge as the highest revenue growth by media type, however internet advertising gained the most total revenue last year",
          "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 19:08:26.673+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6830a41d-faf4-4407-b0eb-0414157f97fc",
          "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": "019de99e-68b2-759b-9955-c347ac068c26",
          "evidence": "two-line action title names esports leader and internet winner",
          "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": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 23,
          "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": "Chart Selection Guide",
            "slug": "chart-selection-guide",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-b1a0-700b-ba17-0e16c4d5bcae",
            "version": 1,
            "bodyDocId": null,
            "description": "Choosing the right chart type for your data and message",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-68dd-763c-89bd-df9126b2ba4a",
          "evidence": "grouped bars + growth-% column for 10 media types",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 23,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "So What? Test",
            "slug": "so-what-test",
            "status": "active",
            "bestFor": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
            "canonId": "019dd956-acd2-76f8-b59a-9bf15a89f10a",
            "version": 1,
            "bodyDocId": "fec04b06-b2f1-432b-a97b-916dc7563f64",
            "description": "The recursive editorial discipline of asking so-what of every slide, chart, and statement until the answer is an implication for the audience — that final answer becomes the slide's title; the chain becomes its body.",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Architect",
          "layer": "slide",
          "agents": [
            "Architect"
          ],
          "matchId": "019de99e-6937-775e-a78b-38a40e97e0a9",
          "evidence": "callout draws the implication ('only positive growers')",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": "On every slide carrying a chart, number, list, or finding intended to inform a decision; whenever a draft title is descriptive rather than directive; whenever the deck will circulate without its author.",
          "confidence": 80,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 23,
          "whyItWorks": "Solves the two failure modes of analytical communication at once: stopping at description (analyst-confidence problem) and leaving insight stranded in the analyst's head (translation problem). The recursion is what guarantees the implication makes it into ink.",
          "antipattern": "Stopping at the first tighter description (still a fact, not an implication), regressing past the audience's decision space into philosophy, smuggling the so-what into speaker notes, or re-using an implication aimed at a previous audience.",
          "cardinality": null,
          "narrativePurpose": "Forces every analytical artefact to close the gap between fact and decision, so the reader holds the recommendation by reading titles alone rather than reconstructing the analyst's mental model from raw evidence."
        },
        {
          "tool": {
            "name": "Von Restorff Effect",
            "slug": "von-restorff-effect",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-beab-73d8-9f62-30d0332e926e",
            "version": 1,
            "bodyDocId": null,
            "description": "Items that stand out are noticed and remembered - make key points visually distinct",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Designer",
          "layer": "slide",
          "agents": [
            "Designer"
          ],
          "matchId": "019de99e-6908-77d9-ab6d-503f624ef553",
          "evidence": "internet, video games, esports highlighted in red as positive-growth outliers",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 23,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019de99e-6b5f-718b-a7ff-bcffb08177af",
          "evidence": "10 media types 2019 vs 2020 with growth-% column",
          "framework": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 23,
          "frameworkName": "Grouped bar chart"
        }
      ],
      "arcBeats": [
        {
          "to": 23,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 12,
          "name": "Evidence & Proof",
          "beatId": "019de99e-5df6-736a-95a9-db2e82270ca8",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "format, social, audio, programmatic, cross-media benchmark",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 23,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 22,
          "name": "The Implications (So What)",
          "beatId": "019de99e-5e9d-730c-bec2-d72e805659cb",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "cross-media comparison frames internet as winner",
          "position": 2,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [
        {
          "to": 23,
          "from": 22,
          "loop": {
            "name": "39_benchmark_gap",
            "slug": "39-benchmark-gap",
            "status": "active",
            "bestFor": "Performance improvement, competitive analysis, target setting",
            "canonId": "019dd956-75a4-7522-8d1a-af94da4703e9",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Our Performance -> Industry Average -> Best-in-Class -> The Gap = The Opportunity",
            "description": "Compare performance against best-in-class to quantify the opportunity",
            "familyLabel": null
          },
          "matchId": "019de99e-5fa5-7735-b1a3-830deb53e612",
          "evidence": "Bar chart ranks 10 media types by YoY growth; only internet, video games, esports positive.",
          "position": 5,
          "objective": "Benchmark internet ads against all media to show outperformance",
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 24,
      "type": "appendix",
      "function": "other",
      "rawType": "other",
      "block": null,
      "metadata": {
        "slideType": "other",
        "slideTypeCanon": {
          "name": "Other (fallback)",
          "slug": "other",
          "status": "active",
          "canonId": "019de52d-0af5-71ed-83de-d51ae245fc43",
          "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": "balanced",
        "densityScore": 45,
        "componentCount": 3,
        "textChars": 1410,
        "nDataPoints": 1,
        "notes": null,
        "elementsJson": [
          "paragraph",
          "bullet_list"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview",
          "runId": null,
          "at": "2026-07-17 03:23:29.257+00",
          "seconds": 2.452,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/24",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-24",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.35,
            "w": 0.52,
            "x": 0.04,
            "y": 0.46
          },
          "kind": "list",
          "text": "Our services include:\nBusiness assurance services\nWeb audience measurement and advertising delivery auditing and advisory\nIAB Measurement Certification Compliance auditing\nPrivacy policy structuring, attestation, and compliance advisory\nMergers & acquisitions assistance\nTax planning and compliance\nCapital sourcing and IPO assistance\nMarketing & Media operations enablement",
          "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-07-17 03:23:29.257+00",
            "model": "google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "11a81e4e-c94e-4478-9948-09179a2e858d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.28,
            "w": 0.92,
            "x": 0.04,
            "y": 0.18
          },
          "kind": "paragraph",
          "text": "As business, accounting, and tax advisors to many of the world's leading technology, media, and telecommunications (TMT) companies, PwC (www.pwc.com/us/tmt) has an insider's view of trends and developments driving the industry. With approximately 1,200 practitioners serving TMT clients in the United States, PwC is deeply committed to providing clients with industry experience and resources. In recent years, our work in TMT has included developing strategies to leverage digital technology, identifying new sources of financing, and marketplace positioning in industries characterized by consolidation and transformation. Our experience reaches across all geographies and segments, including broadband, wireless, film, television, music, publishing, advertising, gaming, sports, theme parks, computers and networking, software and technology services. With thousands of practitioners around the world, we're always close at hand to provide deep industry knowledge and resources.",
          "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": null,
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-07-17 03:23:29.257+00",
            "model": "google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "94865487-509b-4183-a74d-d22dab713f7a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.73,
            "x": 0.04,
            "y": 0.03
          },
          "kind": "title",
          "text": "PwC's technology, media and telecommunications practice",
          "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-07-17 03:23:29.257+00",
            "model": "google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5cb7f7a5-aaff-42e8-94cb-0b829bfe3726",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Credibility Transfer",
            "slug": "credibility-transfer",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-bd34-759a-8e3b-2f14b571a2a1",
            "version": 1,
            "bodyDocId": null,
            "description": "Borrowing authority from trusted sources or vivid details",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019de99e-6960-756a-93c0-f19b83ca56d3",
          "evidence": "PwC TMT practice profile borrows firm credentials",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 24,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 26,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 24,
          "name": "Impact & Next Steps",
          "beatId": "019de99e-5e20-776f-bb7e-ef241b46e408",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "PwC TMT practice, About IAB, contact slide",
          "position": 5,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 26,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 24,
          "name": "The Action (Now What)",
          "beatId": "019de99e-5ec7-758d-9eb3-8ba1d68fcb4a",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "PwC services credential and contact CTA",
          "position": 3,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 25,
      "type": "appendix",
      "title": "This is a standard corporate 'About Us' slide.",
      "function": "establish_context",
      "rawType": "other",
      "block": null,
      "metadata": {
        "slideType": "other",
        "slideTypeCanon": {
          "name": "Other (fallback)",
          "slug": "other",
          "status": "active",
          "canonId": "019de52d-0af5-71ed-83de-d51ae245fc43",
          "version": 1,
          "description": null
        },
        "function": "establish_context",
        "functionCanon": {
          "name": "Establish context",
          "slug": "establish_context",
          "status": "active",
          "canonId": "019de52d-1314-74e6-9074-d213dc0bdcdf",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 42,
        "componentCount": 3,
        "textChars": 980,
        "nDataPoints": 2,
        "notes": "This is a standard corporate 'About Us' slide.",
        "elementsJson": [
          "paragraph"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:29.069+00",
          "seconds": 5.392,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/25",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-25",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.06,
            "w": 0.08,
            "x": 0.02,
            "y": 0.92
          },
          "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": "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 19:08:29.069+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7cd401e3-9bf0-4737-a16c-17539580037f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.45,
            "w": 0.85,
            "x": 0.04,
            "y": 0.19
          },
          "kind": "paragraph",
          "text": "The Interactive Advertising Bureau empowers the media and marketing industries to thrive in the digital economy. Its membership comprises more than 650 leading media companies, brands, and the technology firms responsible for selling, delivering, and optimizing digital ad marketing campaigns. The trade group fields critical research on interactive advertising, while also educating brands, agencies, and the wider business community on the importance of digital marketing. In affiliation with the IAB Tech Lab, IAB develops technical standards and solutions. IAB is committed to professional development and elevating the knowledge, skills, expertise, and diversity of the workforce across the industry. Through the work of its public policy office in Washington, D.C., the trade association advocates for its members and promotes the value of the interactive advertising industry to legislators and policymakers. Founded in 1996, IAB is headquartered in New York City.",
          "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 19:08:29.069+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6d0bfac7-b15e-4c3f-9dea-906f51a7606f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.15,
            "x": 0.04,
            "y": 0.03
          },
          "kind": "title",
          "text": "About IAB",
          "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 19:08:29.069+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "08964c14-2c76-4f51-87c0-5211d52bd003",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Credibility Transfer",
            "slug": "credibility-transfer",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-bd34-759a-8e3b-2f14b571a2a1",
            "version": 1,
            "bodyDocId": null,
            "description": "Borrowing authority from trusted sources or vivid details",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019de99e-698a-746f-954c-793d7b8234d8",
          "evidence": "About IAB establishes industry-association authority",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 25,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 26,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 24,
          "name": "Impact & Next Steps",
          "beatId": "019de99e-5e20-776f-bb7e-ef241b46e408",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "PwC TMT practice, About IAB, contact slide",
          "position": 5,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 26,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 24,
          "name": "The Action (Now What)",
          "beatId": "019de99e-5ec7-758d-9eb3-8ba1d68fcb4a",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "PwC services credential and contact CTA",
          "position": 3,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 26,
      "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": 17,
        "componentCount": 4,
        "textChars": 209,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "headline_text",
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:08:26.128+00",
          "seconds": 2.212,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b63a-590cdb2b1634/26",
        "deck": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634#slide-26",
        "deckJson": "/decks/019dd923-5ca1-7489-b63a-590cdb2b1634.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.05,
            "w": 0.1,
            "x": 0.09,
            "y": 0.45
          },
          "kind": "image",
          "text": "PwC 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 19:08:26.128+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "095aceba-182c-45c0-af15-30be6d341e4a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.1,
            "x": 0.09,
            "y": 0.15
          },
          "kind": "image",
          "text": "IAB 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 19:08:26.128+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "667e475e-e5be-41a7-afaa-31f72e618616",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.6,
            "w": 0.8,
            "x": 0.09,
            "y": 0.2
          },
          "kind": "list",
          "text": "Contact details for Susan Hogan, Chris Bruderle, CJ Bangah, and Stephen Krasnow including titles and email addresses.",
          "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 19:08:26.128+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "43dc4043-76e9-4613-9329-56a630fb6522",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.9,
            "x": 0.05,
            "y": 0.03
          },
          "kind": "title",
          "text": "Please reach out with any questions on the Annual Internet Ad Revenue Report",
          "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 19:08:26.128+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "9023f09e-abac-4d7e-8f92-e3ffaf1cb9e3",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Closing Techniques",
            "slug": "closing-techniques",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-af13-774b-a4fd-7db0a3a88d51",
            "version": 1,
            "bodyDocId": null,
            "description": "Strong endings: Callback, challenge, vision, clear CTA, memorable line",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019de99e-69b4-747d-bb1f-34048fdf213f",
          "evidence": "explicit CTA: 'reach out with any questions' + contact list",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-05-02 16:56:02.875531+00",
            "model": "claude-cli",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 26,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Slide recipe: Closing ask",
            "slug": "closing-ask-slide",
            "status": "active",
            "bestFor": null,
            "canonId": "019df269-295e-70bc-9ee8-baa90a49922d",
            "version": 1,
            "bodyDocId": "019df269-293a-7523-9bb5-2692a9047168",
            "description": "The last slide the reader sees. Treat it as a single design moment —",
            "familyLabel": "slide-recipe",
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "designer",
          "layer": "slide",
          "agents": [
            "designer"
          ],
          "matchId": "4a055d0d-05a2-438f-90b1-615df9cd0140",
          "evidence": "This slide has a call to action with contact information.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.8,
          "extraction": {
            "at": "2026-07-17 03:16:33.749273+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 26,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 26,
          "arc": {
            "name": "The Consultant's Gambit",
            "slug": "consultants-gambit",
            "status": "active",
            "bestFor": "Business cases, project proposals, strategic recommendations",
            "canonId": "019dd956-5e0a-73c8-b305-81c38c959e9c",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "Situation & Context -> Problem & Complication -> Solution & Approach -> Evidence & Proof -> Impact & Next Steps",
            "description": null,
            "familyLabel": null
          },
          "from": 24,
          "name": "Impact & Next Steps",
          "beatId": "019de99e-5e20-776f-bb7e-ef241b46e408",
          "matchId": "019de99e-5d42-738e-b168-b6557aa18090",
          "beatType": null,
          "evidence": "PwC TMT practice, About IAB, contact slide",
          "position": 5,
          "isPrimaryArc": true,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 55
        },
        {
          "to": 26,
          "arc": {
            "name": "The Triple Take",
            "slug": "triple-take",
            "status": "active",
            "bestFor": "Data-driven presentations, research findings",
            "canonId": "019dd956-6221-73ad-bc12-378f8eb1f018",
            "version": 1,
            "bodyDocId": "019df22a-2356-73eb-8061-d8c81dc0aa49",
            "structure": "The Facts (What) -> The Implications (So What) -> The Action (Now What)",
            "description": null,
            "familyLabel": null
          },
          "from": 24,
          "name": "The Action (Now What)",
          "beatId": "019de99e-5ec7-758d-9eb3-8ba1d68fcb4a",
          "matchId": "019de99e-5e4b-7653-b770-af21b292f774",
          "beatType": null,
          "evidence": "PwC services credential and contact CTA",
          "position": 3,
          "isPrimaryArc": false,
          "parentBeatType": null,
          "alignedBlockIds": null,
          "matchConfidence": 45
        }
      ],
      "loops": [],
      "locked": true
    }
  ],
  "arcBeats": [
    {
      "from": 1,
      "to": 3,
      "label": "Situation & Context",
      "description": "cover, agenda, survey methodology establish scope"
    },
    {
      "from": 4,
      "to": 8,
      "label": "Problem & Complication",
      "description": "COVID-19 named as headwind, Q2 dip, recovery story"
    },
    {
      "from": 9,
      "to": 11,
      "label": "Solution & Approach",
      "description": "structural lens: top-10 concentration, mobile-vs-desktop split"
    },
    {
      "from": 12,
      "to": 23,
      "label": "Evidence & Proof",
      "description": "format, social, audio, programmatic, cross-media benchmark"
    },
    {
      "from": 24,
      "to": 26,
      "label": "Impact & Next Steps",
      "description": "PwC TMT practice, About IAB, contact slide"
    }
  ],
  "loops": [
    {
      "from": 5,
      "to": 8,
      "label": "Pattern Hunter",
      "description": "Establish that ad-revenue growth survived COVID"
    },
    {
      "from": 9,
      "to": 11,
      "label": "Segmentation Split",
      "description": "Reveal who is winning the market and on which device"
    },
    {
      "from": 13,
      "to": 15,
      "label": "Zoom In",
      "description": "Drill from total revenue mix into Digital Video as standout format"
    },
    {
      "from": 16,
      "to": 21,
      "label": "Mece Breakdown",
      "description": "Walk channel-by-channel through Social, Audio, Programmatic"
    },
    {
      "from": 22,
      "to": 23,
      "label": "Benchmark Gap",
      "description": "Benchmark internet ads against all media to show outperformance"
    }
  ]
}