{
  "schemaVersion": "deck-intelligence.v1",
  "id": "019dd923-5ca1-7489-b635-f88e1d285443",
  "slug": "a5a9cbfc3acd8b7a",
  "title": "China Shopper 2018 Vol 1",
  "subtitle": "Bain",
  "author": "Bain",
  "pageCount": 32,
  "kind": "consulting-deck",
  "orientation": "portrait",
  "aspectRatio": 0.707,
  "document": {
    "id": "019dd923-5ca1-7489-b635-f88e1d285443",
    "slug": "a5a9cbfc3acd8b7a",
    "title": "China Shopper 2018 Vol 1",
    "rawTitle": "China Shopper 2018 Vol 1",
    "authorId": "Bain",
    "authorName": "Bain",
    "authorDisplay": "Bain",
    "kind": {
      "slug": "consulting-deck",
      "label": "Consulting deck"
    },
    "sourceType": {
      "slug": "strategy_consulting",
      "label": "Strategy consulting"
    },
    "fileName": "2018-China-Shopper-2018-Vol-1.pdf",
    "sourceUrl": "https://media.bain.com/Images/BAIN_REPORT_As_Shoppers_Upgrade_Growth_Returns_China%20Shopper_2018_Vol1.pdf",
    "sourceDate": "2018-01-01 00:00:00",
    "presentationDate": null,
    "ingestedAt": "2026-04-23 20:51:32+00",
    "status": "ready",
    "pageCount": 32,
    "orientation": "portrait",
    "aspectRatio": 0.707,
    "targetCompany": null,
    "targetTicker": null,
    "metadata": {
      "local_root": "/tmp/legacy-images/a5a9cbfc3acd8b7a",
      "origin_corpus": "consulting"
    }
  },
  "coverage": {
    "pageCount": 32,
    "pagesIndexed": 32,
    "pagesWithImages": 32,
    "pagesWithMetadata": 32,
    "imageCoveragePct": 100,
    "metadataCoveragePct": 100,
    "componentCount": 209,
    "chartCount": 25,
    "metricSlides": 18,
    "toolMatches": 80,
    "documentToolMatches": 0,
    "frameworkMatches": 6,
    "arcMatches": 2,
    "beatMatches": 8,
    "loopMatches": 6,
    "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": "019dd95a-0543-7581-99b0-76ada0d1895b",
        "evidence": "Classic Bain long-form: exec-summary thesis (p5), trend context, premiumization analysis, evidence-heavy charts (p10-25), then recommendations (p26-27).",
        "isPrimary": true,
        "confidence": 85,
        "extraction": {
          "at": "2026-04-29 13:07:28.977035+00",
          "model": "claude-legacy",
          "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": "019dd95a-0543-7581-99b0-7975489828f4",
        "evidence": "Each chart slide presents Facts (data) → So-what (callout) → Now-what (recommendation block at end).",
        "isPrimary": false,
        "confidence": 60,
        "extraction": {
          "at": "2026-04-29 13:07:28.977035+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      }
    ],
    "beats": [
      {
        "to": 6,
        "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": 5,
        "name": "Situation & Context",
        "beatId": "019dd95a-0702-74a3-87e6-5b00d6e384b7",
        "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
        "beatType": {
          "name": "Situation & Context",
          "slug": "consultants-gambit-situation-context",
          "status": "active",
          "canonId": "019dd9b8-05ae-741b-992d-65ee83c639b3",
          "version": 1,
          "description": null
        },
        "evidence": "Executive summary frames China FMCG market and 7-year tracking series.",
        "position": 1,
        "isPrimaryArc": true,
        "parentBeatType": {
          "name": "Setup",
          "slug": "setup",
          "status": "active",
          "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
          "version": 1,
          "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
        },
        "alignedBlockIds": null,
        "matchConfidence": 85
      },
      {
        "to": 9,
        "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": 7,
        "name": "Problem & Complication",
        "beatId": "019dd95a-0702-74a3-87e6-5fb46af1ac33",
        "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
        "beatType": {
          "name": "Problem & Complication",
          "slug": "consultants-gambit-problem-complication",
          "status": "active",
          "canonId": "019dd9b8-064a-777f-a374-e9a8c43dedd4",
          "version": 1,
          "description": null
        },
        "evidence": "Channels shifting, local brands captured 98% of growth — sets the 'how to win' question.",
        "position": 2,
        "isPrimaryArc": true,
        "parentBeatType": {
          "name": "Complication",
          "slug": "complication",
          "status": "active",
          "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
          "version": 1,
          "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
        },
        "alignedBlockIds": null,
        "matchConfidence": 85
      },
      {
        "to": 15,
        "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": 10,
        "name": "Solution & Approach",
        "beatId": "019dd95a-0702-74a3-87e6-60a90fe6abec",
        "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
        "beatType": {
          "name": "Solution & Approach",
          "slug": "consultants-gambit-solution-approach",
          "status": "active",
          "canonId": "019dd9b8-071c-7161-9184-580fdac7a4f9",
          "version": 1,
          "description": null
        },
        "evidence": "Premiumization analysis (4% price rise) plus 2x2 of price vs volume strategies.",
        "position": 3,
        "isPrimaryArc": true,
        "parentBeatType": {
          "name": "Turn",
          "slug": "turn",
          "status": "active",
          "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
          "version": 1,
          "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
        },
        "alignedBlockIds": null,
        "matchConfidence": 85
      },
      {
        "to": 25,
        "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": 16,
        "name": "Evidence & Proof",
        "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
        "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
        "beatType": {
          "name": "Evidence & Proof",
          "slug": "consultants-gambit-evidence-proof",
          "status": "active",
          "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
          "version": 1,
          "description": null
        },
        "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
        "position": 4,
        "isPrimaryArc": true,
        "parentBeatType": {
          "name": "Evidence",
          "slug": "evidence",
          "status": "active",
          "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
          "version": 1,
          "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
        },
        "alignedBlockIds": null,
        "matchConfidence": 85
      },
      {
        "to": 27,
        "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": 26,
        "name": "Impact & Next Steps",
        "beatId": "019dd95a-0702-74a3-87e6-6bf2a8b35e80",
        "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
        "beatType": {
          "name": "Impact & Next Steps",
          "slug": "consultants-gambit-impact-next-steps",
          "status": "active",
          "canonId": "019dd9b8-0849-7728-9ee9-fd1609c4c655",
          "version": 1,
          "description": null
        },
        "evidence": "Three local-edge plays plus 'How brands/retailers can win' with 'Prepare for New Retail.'",
        "position": 5,
        "isPrimaryArc": true,
        "parentBeatType": {
          "name": "Resolution",
          "slug": "resolution",
          "status": "active",
          "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
          "version": 1,
          "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
        },
        "alignedBlockIds": null,
        "matchConfidence": 85
      },
      {
        "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": 10,
        "name": "The Facts (What)",
        "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
        "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
        "beatType": {
          "name": "The Facts (What)",
          "slug": "triple-take-the-facts-what",
          "status": "active",
          "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
          "version": 1,
          "description": null
        },
        "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
        "position": 1,
        "isPrimaryArc": false,
        "parentBeatType": {
          "name": "Setup",
          "slug": "setup",
          "status": "active",
          "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
          "version": 1,
          "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
        },
        "alignedBlockIds": null,
        "matchConfidence": 60
      },
      {
        "to": 25,
        "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": "019dd95a-0702-74a3-87e6-731a3363aeb0",
        "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
        "beatType": {
          "name": "The Implications (So What)",
          "slug": "triple-take-the-implications-so-what",
          "status": "active",
          "canonId": "019dd9b8-09c7-75cd-8c7b-ae0e23cca2b8",
          "version": 1,
          "description": null
        },
        "evidence": "Out-of-home opportunity and local-player share gain explain implications.",
        "position": 2,
        "isPrimaryArc": false,
        "parentBeatType": {
          "name": "Reflection",
          "slug": "reflection",
          "status": "active",
          "canonId": "019dd9b8-0510-73fd-8d00-1c7e45f7bc98",
          "version": 1,
          "description": "The \"so what\" beat. Used by analytical arcs (Triple-take, Onion) and learning arcs (Voyage-return, Tragedy)."
        },
        "alignedBlockIds": null,
        "matchConfidence": 60
      },
      {
        "to": 27,
        "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": 26,
        "name": "The Action (Now What)",
        "beatId": "019dd95a-0702-74a3-87e6-7419c289455b",
        "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
        "beatType": {
          "name": "The Action (Now What)",
          "slug": "triple-take-the-action-now-what",
          "status": "active",
          "canonId": "019dd9b8-0a5e-735a-bf53-3a1ba629b7aa",
          "version": 1,
          "description": null
        },
        "evidence": "Three local-edge plays plus 'Prepare for New Retail' CTA.",
        "position": 3,
        "isPrimaryArc": false,
        "parentBeatType": {
          "name": "Resolution",
          "slug": "resolution",
          "status": "active",
          "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
          "version": 1,
          "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
        },
        "alignedBlockIds": null,
        "matchConfidence": 60
      }
    ],
    "loops": [
      {
        "to": 9,
        "from": 5,
        "loop": {
          "name": "41_so_what_cascade",
          "slug": "41-so-what-cascade",
          "status": "active",
          "bestFor": "Data presentations, executive summaries, driving to recommendations",
          "canonId": "019dd956-769f-7208-afbc-f28985c6f4fb",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "The Data -> So What? (Insight 1) -> So What? (Insight 2) -> So What? (The Action)",
          "description": "Chain insights together, each answering 'so what?' until you reach the actionable conclusion",
          "familyLabel": null,
          "categoryName": "Consulting Framework",
          "categorySlug": "consulting-framework"
        },
        "matchId": "019dd95a-088c-724c-b311-b6ebb600cb68",
        "evidence": "Exec summary states 4.3% rebound, then 'how retailers can win' wraps with 'Prepare for New Retail.'",
        "position": 1,
        "objective": "Front-load the thesis: data → premiumization insight → how to win",
        "confidence": 80,
        "extraction": {
          "at": "2026-04-29 13:07:29.689431+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "to": 13,
        "from": 10,
        "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": "019dd95a-088c-724c-b311-b8ec761c98d8",
        "evidence": "Aggregate growth → packaged food vs beverage vs personal care vs home care, each with own dynamics.",
        "position": 2,
        "objective": "Decompose aggregate FMCG growth across the four product sectors",
        "confidence": 82,
        "extraction": {
          "at": "2026-04-29 13:07:29.689431+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "to": 15,
        "from": 14,
        "loop": {
          "name": "30_2x2_matrix",
          "slug": "30-2x2-matrix",
          "status": "active",
          "bestFor": "Portfolio analysis, prioritization, strategic positioning",
          "canonId": "019dd956-7225-756a-9cc7-1e6d3f039818",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "Dimension 1 (X-axis) -> Dimension 2 (Y-axis) -> The Four Quadrants -> The Sweet Spot",
          "description": "Plot options on two critical dimensions to reveal the optimal quadrant",
          "familyLabel": null,
          "categoryName": "Consulting Framework",
          "categorySlug": "consulting-framework"
        },
        "matchId": "019dd95a-088c-724c-b311-be7d48f787d5",
        "evidence": "Geographic heatmap then explicit 2x2 with 'Raise price' vs 'Increase volume' quadrants for 26 categories.",
        "position": 3,
        "objective": "Map premiumization strategies on price vs volume axes",
        "confidence": 88,
        "extraction": {
          "at": "2026-04-29 13:07:29.689431+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "to": 21,
        "from": 16,
        "loop": {
          "name": "04_tale_two_worlds",
          "slug": "04-tale-two-worlds",
          "status": "active",
          "bestFor": "Competitive analysis, benchmarking, case for change",
          "canonId": "019dd956-674f-750b-b15d-f082e2717f4e",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "Current State -> Desired State / Benchmark -> The Gap & Implication",
          "description": "Show the gap between two states to drive urgency or highlight opportunity",
          "familyLabel": null,
          "categoryName": "Comparison",
          "categorySlug": "comparison"
        },
        "matchId": "019dd95a-088c-724c-b311-c0505a3eb1cf",
        "evidence": "Imports = 39% of online FMCG, online +28% while big-box slows or declines.",
        "position": 4,
        "objective": "Contrast online (booming, import-heavy) vs offline (slowing) channels",
        "confidence": 75,
        "extraction": {
          "at": "2026-04-29 13:07:29.689431+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "to": 24,
        "from": 22,
        "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": "019dd95a-088c-724c-b311-c66a2f0f3e66",
        "evidence": "Out-of-home framed as opportunity, then hypermarket declines, then convenience/grocery upside.",
        "position": 5,
        "objective": "Drill into out-of-home consumption opportunity (hyper decline → convenience upside)",
        "confidence": 72,
        "extraction": {
          "at": "2026-04-29 13:07:29.689431+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      },
      {
        "to": 26,
        "from": 25,
        "loop": {
          "name": "16_david_goliath",
          "slug": "16-david-goliath",
          "status": "active",
          "bestFor": "Startups, disruptive innovation, competitive displacement",
          "canonId": "019dd956-6c5d-704a-9c33-1aa083ca432e",
          "version": 1,
          "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
          "structure": "The Giant's Weakness -> Our Slingshot (Unique Edge) -> The Topple",
          "description": "Frame your initiative as the nimble underdog taking on a slow, bloated incumbent",
          "familyLabel": null,
          "categoryName": "Competitive",
          "categorySlug": "competitive"
        },
        "matchId": "019dd95a-088c-724c-b311-ca353a682102",
        "evidence": "Stacked bars show local share rising; 'Examples of how local companies gain an edge' lists three plays.",
        "position": 6,
        "objective": "Show how nimble local brands captured 98% of category growth from foreign giants",
        "confidence": 80,
        "extraction": {
          "at": "2026-04-29 13:07:29.689431+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        }
      }
    ],
    "tools": [
      {
        "tool": {
          "name": "Pyramid Principle",
          "slug": "pyramid-principle",
          "status": "active",
          "bestFor": "When the document has a single governing decision or recommendation the reader is asked to accept, and the case can be decomposed into a small number of clean groups. Strategy decks, board memos, investment committee papers.",
          "canonId": "019dd956-7cbd-7219-a477-c871e2bc1aff",
          "version": 1,
          "bodyDocId": "88b6ac56-b880-46f9-8621-ef3491ab6235",
          "description": "Lead with the answer; group three to five MECE supports beneath it; recurse one level down. Top-down hierarchical structure for any document with a single recommendation.",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Architect",
        "layer": "block",
        "agents": [
          "Architect"
        ],
        "matchId": "019dd95a-16c4-7148-811e-927e5fdc4011",
        "evidence": "Answer-first exec summary then supporting evidence anchors the report.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": "When the document has a single governing decision or recommendation the reader is asked to accept, and the case can be decomposed into a small number of clean groups. Strategy decks, board memos, investment committee papers.",
        "confidence": 85,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": "Solves the two failure modes of expert communication at once: (1) the long climb where readers wait pages for the answer, and (2) logical mush from non-MECE groupings. Progressive disclosure lets a reader stop at any depth and get the right information.",
        "antipattern": "Chronological structure (\"what we did, what we found, what we conclude\") instead of logical hierarchy. Top-of-pyramid that is a topic (\"strategic options\") instead of an answer (\"pursue Option B because...\"). Non-MECE supports that overlap or fail to cover the universe.",
        "cardinality": null,
        "narrativePurpose": "Transfer conviction with minimum reader effort by mirroring how decision-makers consume information: answer first, scaffolding behind."
      },
      {
        "tool": {
          "name": "SCQA Framework",
          "slug": "scqa-framework",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-7bcb-763f-bdf6-1dfedf3bd36c",
          "version": 1,
          "bodyDocId": "019df22a-a0b0-719e-937e-2ac31e53d32c",
          "description": "Situation, Complication, Question, Answer - structured problem framing",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Architect",
        "layer": "block",
        "agents": [
          "Architect"
        ],
        "matchId": "019dd95a-16c4-7148-811e-94a250a95a90",
        "evidence": "Situation (7-year tracking), complication (two-speed growth), question (will rebound continue?), answer (yes, premiumization).",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Three Pillars",
          "slug": "three-pillars",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-81ef-7455-a365-b234d95a6bbb",
          "version": 1,
          "bodyDocId": null,
          "description": "Three major supporting arguments that are MECE and address key concerns",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Architect",
        "layer": "block",
        "agents": [
          "Architect"
        ],
        "matchId": "019dd95a-16c4-7148-811e-9ae2cc4fb596",
        "evidence": "Explicit 'three lenses': product category, channel, local vs foreign brand.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 78,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "The Rule of Three",
          "slug": "the-rule-of-three",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-8962-75cf-b4f8-9394501a6f33",
          "version": 1,
          "bodyDocId": null,
          "description": "Ideas presented in threes are more memorable and satisfying",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "block",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019dd95a-16c4-7148-811e-c28d25c9057d",
        "evidence": "Brand plays presented as three bolded patterns (high-value, data-driven, channel).",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 9,
        "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": "019dd95a-16c4-7148-811e-d6a5d65d083f",
        "evidence": "Four sectors (food, beverage, personal care, home care) cover 80% of FMCG.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 72,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 10,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "The Rule of Three",
          "slug": "the-rule-of-three",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-8962-75cf-b4f8-9394501a6f33",
          "version": 1,
          "bodyDocId": null,
          "description": "Ideas presented in threes are more memorable and satisfying",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "block",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019dd95a-16c4-7148-811f-5dd8bd175357",
        "evidence": "Three failure modes named: traffic, volume per household, penetration.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 23,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "The Rule of Three",
          "slug": "the-rule-of-three",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-8962-75cf-b4f8-9394501a6f33",
          "version": 1,
          "bodyDocId": null,
          "description": "Ideas presented in threes are more memorable and satisfying",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "block",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019dd95a-16c4-7148-811f-8b4694838d2c",
        "evidence": "Three bolded patterns: niche/local-fit, white-space innovation, omnichannel engagement.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 85,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 26,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Data Story Arc",
          "slug": "data-story-arc",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-9c30-728e-b974-d3fb123dcf5a",
          "version": 1,
          "bodyDocId": null,
          "description": "Context → Conflict → Insight → Implication structure for data narratives",
          "familyLabel": null,
          "categoryName": "Loop",
          "categorySlug": "loop"
        },
        "agent": "Storyteller",
        "layer": "loop",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019dd95a-16c4-7148-811e-9d7f1fe8463f",
        "evidence": "Context → conflict (two-speed) → insight (premiumization) → implication (how to win).",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Horizontal Logic",
          "slug": "horizontal-logic",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-9a85-7199-aaa6-4314cd50dcfa",
          "version": 1,
          "bodyDocId": null,
          "description": "Logical grouping at the same level - items must relate coherently",
          "familyLabel": null,
          "categoryName": "Loop",
          "categorySlug": "loop"
        },
        "agent": "Architect",
        "layer": "loop",
        "agents": [
          "Architect"
        ],
        "matchId": "019dd95a-16c4-7148-811e-d16f2987d39c",
        "evidence": "Categories sit at the same level of abstraction within FMCG aggregate.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 10,
        "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": "019dd95a-16c4-7148-811e-f35baae0ddc1",
        "evidence": "Food rebound vs beverage stagnation framed in title.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 12,
        "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": "019dd95a-16c4-7148-811e-f9a03d49cb97",
        "evidence": "Personal care rising prices vs flat home care volumes.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 72,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 13,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Horizontal Logic",
          "slug": "horizontal-logic",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-9a85-7199-aaa6-4314cd50dcfa",
          "version": 1,
          "bodyDocId": null,
          "description": "Logical grouping at the same level - items must relate coherently",
          "familyLabel": null,
          "categoryName": "Loop",
          "categorySlug": "loop"
        },
        "agent": "Architect",
        "layer": "loop",
        "agents": [
          "Architect"
        ],
        "matchId": "019dd95a-16c4-7148-811f-070d573222fe",
        "evidence": "Geographic split sits at same level alongside category and channel cuts.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "loop",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019dd95a-16c4-7148-811f-189967a777c9",
        "evidence": "Major vs niche brand growth contrasted on the slide.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 16,
        "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": "019dd95a-16c4-7148-811f-42298862381d",
        "evidence": "Online momentum vs big-box decline explicit in the title.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 20,
        "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": "019dd95a-16c4-7148-811f-66ded9c9f7ba",
        "evidence": "Frames hypermarket decline (p23) vs convenience upside as opposites.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 24,
        "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": "019dd95a-16c4-7148-811f-78dec886760b",
        "evidence": "Foreign vs Chinese brand value-share contrast across five years.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 25,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Tricolon",
          "slug": "tricolon",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-a13d-7356-9038-da27abe565f8",
          "version": 1,
          "bodyDocId": null,
          "description": "Three parallel phrases of increasing length or intensity",
          "familyLabel": null,
          "categoryName": "Loop",
          "categorySlug": "loop"
        },
        "agent": "Storyteller",
        "layer": "loop",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019dd95a-16c4-7148-811f-8ebb835eaead",
        "evidence": "Three parallel-structured 'They [verb]…' sentence stems.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 26,
        "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": "019dd95a-16c4-7148-811e-80be3e956993",
        "evidence": "Bain wordmark + report title hierarchy on cover.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "019dd95a-16c4-7148-811e-7f080e253cf6",
        "evidence": "Title 'AS SHOPPERS UPGRADE, GROWTH RETURNS' dominates cover.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 1,
        "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": "019dd95a-16c4-7148-811e-87f039dce4b0",
        "evidence": "'Executive summary' header introduces clear thesis paragraphs.",
        "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": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "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": "019dd95a-16c4-7148-811e-8c3dbb8322ec",
        "evidence": "Specific stats: 7 years, 106 categories, 1.6%→4.3%.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Executive summary",
          "slug": "executive-summary",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd9e1-4b63-72d5-9734-da757d91ca61",
          "version": 1,
          "bodyDocId": null,
          "description": "A condensed view of the entire argument on a single slide / block.",
          "familyLabel": null,
          "categoryName": null,
          "categorySlug": null
        },
        "agent": null,
        "layer": "slide",
        "agents": null,
        "matchId": "dbdae4db-58c3-4d77-aa99-1369626318b4",
        "evidence": "This is the executive summary section of the report.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.9,
        "extraction": {
          "at": "2026-07-16 21:08:58.23188+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": "common",
        "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": "019dd95a-16c4-7148-811e-895aa03f9ebb",
        "evidence": "Callout: 'value growth of FMCG has rebounded as China's expanding middle class…'",
        "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-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "019dd95a-16c4-7148-811e-a06c727c9784",
        "evidence": "Title 'As Shoppers Upgrade, Growth Returns' restates thesis.",
        "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": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "Audience Definition",
          "slug": "audience-definition",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-7f2a-775d-aeee-ff099bcb7756",
          "version": 1,
          "bodyDocId": null,
          "description": "Six key questions: Who are they? What do they know? What do they believe? What do they care about? What do they fear? What decisions can they make?",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "184c236a-521a-48d8-bea1-0853d4715998",
        "evidence": "The report is focused on China's expanding middle class and their shopping behaviors.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:08:58.306546+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 6,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Big Idea Formula",
          "slug": "big-idea-formula",
          "status": "active",
          "bestFor": "Any narrative-driven persuasive deck whose job is to move the audience: keynotes, fundraising pitches, capital-allocation board asks, all-hands behaviour-change talks, conference talks meant to shift mental models. Use it before structuring; pair with Pyramid when the deck must also withstand line-by-line scrutiny.",
          "canonId": "019dd956-7dd1-74d7-9866-ffdef19ecfbf",
          "version": 1,
          "bodyDocId": "c30d7484-69e0-4e21-82cf-20fa0966869e",
          "description": "Nancy Duarte's articulation of how to frame a presentation's central message: the speaker's unique point of view plus what's at stake for the audience, expressed as one complete declarative sentence. The narrative-driven counterpart to Minto's analytical governing thought.",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "ffcd0cb5-f27f-438d-872a-08036853cb60",
        "evidence": "The report highlights the rebound of FMCG value growth and premiumization trend.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": "Any narrative-driven persuasive deck whose job is to move the audience: keynotes, fundraising pitches, capital-allocation board asks, all-hands behaviour-change talks, conference talks meant to shift mental models. Use it before structuring; pair with Pyramid when the deck must also withstand line-by-line scrutiny.",
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:08:58.343585+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 6,
        "whyItWorks": "Solves the topic-not-thesis trap and the stake-less recommendation trap simultaneously. A single declarative sentence with a verb forces the speaker's stance into the room; routing the consequence through the word 'you' translates internal urgency into the audience's currency. The result is short enough to be repeated after the meeting — and that repetition is the persuasion mechanism.",
        "antipattern": "A topic dressed as a thesis ('Sustainability Roadmap 2026'), a stake attached to the speaker rather than the audience, two ideas spliced with 'and', abstract verbs (leverage / unlock / empower) that survive deletion, or writing the Big Idea after the deck is already built so the slides don't actually defend it.",
        "cardinality": null,
        "narrativePurpose": "Forces the deck to commit to a single declarative thesis before slide one — a sentence that names the speaker's stance and routes a consequence through the audience's currency. Acts as the filter every slide, anecdote, and chart must ladder up to."
      },
      {
        "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": "019dd95a-16c4-7148-811e-a7f092012d7a",
        "evidence": "Callout: 'facial tissue category, premium SKUs' value rose 17% compared with 2%.'",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 78,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "019dd95a-16c4-7148-811e-aac4e1336832",
        "evidence": "'Changing channels' frames the section.",
        "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": 68,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "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": "019dd95a-16c4-7148-811e-ac71cc9a1a84",
        "evidence": "O2O grew ~30% in 2017 with food/delivery the standout.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 72,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "019dd95a-16c4-7148-811e-b228ab77fcb1",
        "evidence": "Callout: 'Local brands grew 7.7%, capturing 98% share of market 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": 72,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "Audience frame",
          "slug": "audience-frame",
          "status": "active",
          "bestFor": null,
          "canonId": "2a1eefbd-5be8-4600-898b-49dbfcf73ec8",
          "version": 1,
          "bodyDocId": null,
          "description": "Tools for modelling and segmenting the audience (persona, JTBD, segmentation).",
          "familyLabel": null,
          "categoryName": null,
          "categorySlug": null
        },
        "agent": null,
        "layer": "slide",
        "agents": null,
        "matchId": "2899c36c-42a5-42d7-b449-27806d950b90",
        "evidence": "The report provides insights on local and foreign brands and their growth trends.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:08:58.453909+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 8,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": "optional",
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Data Story Arc",
          "slug": "data-story-arc",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-9c30-728e-b974-d3fb123dcf5a",
          "version": 1,
          "bodyDocId": null,
          "description": "Context → Conflict → Insight → Implication structure for data narratives",
          "familyLabel": null,
          "categoryName": "Loop",
          "categorySlug": "loop"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "62e10375-b55f-410d-9e4b-3e81448b2110",
        "evidence": "The report presents data on online sales growth and its impact on the FMCG market.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:08:58.49073+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 8,
        "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": "019dd95a-16c4-7148-811e-b56ebd8723db",
        "evidence": "Stat directly answers 'why this matters' for foreign brands.",
        "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-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 8,
        "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": "019dd95a-16c4-7148-811e-bb6d967e3e78",
        "evidence": "Section header 'How retailers can win' + bolded plays ('Prepare for New Retail').",
        "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": 78,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "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": "019dd95a-16c4-7148-811e-bf1cbe9495da",
        "evidence": "Recommendation block functions as a CTA close to the front-loaded summary.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "019dd95a-16c4-7148-811e-c4080746cabb",
        "evidence": "'Growth rebounds across FMCG product categories' states the 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": 82,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "019dd95a-16c4-7148-811e-ca5fd63e5b47",
        "evidence": "Bar chart with category-level CAGRs.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 10,
        "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": "019dd95a-16c4-7148-811e-cf61a197decb",
        "evidence": "Bain charts strip gridlines and 3D effects.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "019dd95a-16c4-7148-811e-da788335cb57",
        "evidence": "'Rising average selling prices boosted overall FMCG market growth' is the 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-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "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": "019dd95a-16c4-7148-811e-e5a117eed0e2",
        "evidence": "Red arrow annotates the 3.6→4.3 rebound on Value chart.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 78,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 11,
        "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": "019dd95a-16c4-7148-811e-e1e62d872d3e",
        "evidence": "Greyscale bars with red trend arrow draws eye to 4.3% rebound and 4.0 ASP.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 11,
        "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": "019dd95a-16c4-7148-811e-ddaaab62b0e8",
        "evidence": "Three side-by-side bar panels: Value / Volume / Average selling price, repeated for two figures.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 11,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "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": "019dd95a-16c4-7148-811e-eabe99720787",
        "evidence": "Single red arrow in otherwise-grey palette stands out.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 11,
        "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": "019dd95a-16c4-7148-811e-ee23ba79200c",
        "evidence": "'Packaged food started to rebound, while beverage growth was stagnant.'",
        "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": 80,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 12,
        "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": "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": "019dd95a-16c4-7148-811e-f42476af6685",
        "evidence": "Title contrasts personal care growth vs home care slowdown.",
        "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": 80,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 13,
        "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": "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": "019dd95a-16c4-7148-811e-fecf16ae614b",
        "evidence": "'Southwest and central provinces continued to serve as China's growth engine in 2017.'",
        "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": 82,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "Audience Definition",
          "slug": "audience-definition",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-7f2a-775d-aeee-ff099bcb7756",
          "version": 1,
          "bodyDocId": null,
          "description": "Six key questions: Who are they? What do they know? What do they believe? What do they care about? What do they fear? What decisions can they make?",
          "familyLabel": null,
          "categoryName": "Block",
          "categorySlug": "block"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "3d2e4ff1-1fa5-422a-be13-97ab699b5b42",
        "evidence": "A deeper look at premiumization by category",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:09:02.969936+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": "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": "019dd95a-16c4-7148-811f-018581d96b68",
        "evidence": "Choropleth heatmap of China provinces by FMCG CAGR bucket.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 14,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "2x2 matrix",
          "slug": "matrix-2x2",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd9e1-50ab-72d1-8afb-3ab0a38e32a8",
          "version": 1,
          "bodyDocId": null,
          "description": "BCG matrix, importance/urgency, any axes-and-quadrants frame.",
          "familyLabel": null,
          "categoryName": null,
          "categorySlug": null
        },
        "agent": null,
        "layer": "slide",
        "agents": null,
        "matchId": "818a8e76-8726-4a76-89d9-d04416018847",
        "evidence": "2x2 matrix showing strategies: Raise price vs Increase volume",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.9,
        "extraction": {
          "at": "2026-07-16 21:09:03.055662+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 15,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": "common",
        "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": "019dd95a-16c4-7148-811f-0b93ab4bc255",
        "evidence": "Title states the insight: raise prices OR raise volume — but rarely both.",
        "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": 88,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "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": "019dd95a-16c4-7148-811f-0e924d084e48",
        "evidence": "Quadrant labels 'Raise price', 'Increase both volume and value' annotate the matrix.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 80,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 15,
        "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": "019dd95a-16c4-7148-811f-11a22ad3030d",
        "evidence": "Axes and quadrant boundaries dominate; category dots are secondary.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 15,
        "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": "019dd95a-16c4-7148-811f-1677838e87db",
        "evidence": "Callout: 'High-velocity growth for major and niche brands alike in personal care.'",
        "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": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 16,
        "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": "Executive summary",
          "slug": "executive-summary",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd9e1-4b63-72d5-9734-da757d91ca61",
          "version": 1,
          "bodyDocId": null,
          "description": "A condensed view of the entire argument on a single slide / block.",
          "familyLabel": null,
          "categoryName": null,
          "categorySlug": null
        },
        "agent": null,
        "layer": "slide",
        "agents": null,
        "matchId": "936a9fa6-d26a-4d6c-a054-7564cdcf7e44",
        "evidence": "Detailed analysis of 2017 market trends in China",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.9,
        "extraction": {
          "at": "2026-07-16 21:09:03.14573+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 16,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": "common",
        "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": "019dd95a-16c4-7148-811f-1e6688f4b933",
        "evidence": "Callout pulls out the 39% imports stat as the headline.",
        "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": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "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": "019dd95a-16c4-7148-811f-204918656a9a",
        "evidence": "Specific 39% online FMCG imports stat anchors the message.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 17,
        "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": "019dd95a-16c4-7148-811f-26cf2c3c2447",
        "evidence": "'Imports continue to boost online FMCG sales' states the 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": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 18,
        "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": "019dd95a-16c4-7148-811f-28b7ce3fa28e",
        "evidence": "Stacked bar showing import share evolution.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "019dd95a-16c4-7148-811f-2e0acf117d9b",
        "evidence": "'The macroeconomic explanation of two-speed growth' frames the figure.",
        "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": 82,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "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": "019dd95a-16c4-7148-811f-33ecd90b79c2",
        "evidence": "Numbered red bubbles 1/2/3 walk reader through income-curve shift.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 90,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 19,
        "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": "019dd95a-16c4-7148-811f-3949e08de37c",
        "evidence": "Specific income thresholds: 2.3%→15.9% above $15K; 50%→15.9% below $10K.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 19,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "Metaphor & Analogy",
          "slug": "metaphor-analogy",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd956-adea-7729-bca1-70810d6238a9",
          "version": 1,
          "bodyDocId": null,
          "description": "Making abstract concepts concrete through familiar comparisons",
          "familyLabel": null,
          "categoryName": "Slide",
          "categorySlug": "slide"
        },
        "agent": "Storyteller",
        "layer": "slide",
        "agents": [
          "Storyteller"
        ],
        "matchId": "019dd95a-16c4-7148-811f-359af631f919",
        "evidence": "Two overlaid bell curves serve as visual metaphor for income shift.",
        "pageRefs": null,
        "priority": "Core",
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 19,
        "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": "019dd95a-16c4-7148-811f-3dfb0863e180",
        "evidence": "Title: 'Online sales maintained their momentum in 2017, while big-box retailers slowed or even declined.'",
        "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": 80,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 20,
        "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": "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": "019dd95a-16c4-7148-811f-47135d9e5c52",
        "evidence": "Title: 'Baby and beauty categories continued to achieve high online penetration…'",
        "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": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "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": "019dd95a-16c4-7148-811f-4b70d6e72dbc",
        "evidence": "Callout flags 'Online categories with very high online penetration and strong upward trend.'",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 21,
        "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": "019dd95a-16c4-7148-811f-4fac64d3b84f",
        "evidence": "Callout: 'out-of-home market clearly continues to be an opportunity.'",
        "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": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 22,
        "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": "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": "019dd95a-16c4-7148-811f-53fa5170f10f",
        "evidence": "Stats: O2O grew 30%, channels grew 4.8%, etc.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "019dd95a-16c4-7148-811f-56cb6e23ad93",
        "evidence": "Title: 'Hypermarkets suffer from declines in traffic, volume per household and penetration.'",
        "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": 80,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "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": "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": "019dd95a-16c4-7148-811f-595e8837cf9e",
        "evidence": "Red triangles flag negative deltas on hypermarket bars.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 65,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 23,
        "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": "019dd95a-16c4-7148-811f-63d2b2897288",
        "evidence": "Title: 'Convenience and grocery stores have huge potential for out-of-home consumption sales.'",
        "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": 78,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 24,
        "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": "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": "019dd95a-16c4-7148-811f-6a8afaeedf46",
        "evidence": "Title: 'In 2017, local players continued to gain share against foreign rivals.'",
        "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-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 25,
        "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": "019dd95a-16c4-7148-811f-72f281a406bd",
        "evidence": "Per-year market-growth-captured row (98% to local in 2017) annotates stacked bars.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 78,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 25,
        "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": "019dd95a-16c4-7148-811f-7572ad889b60",
        "evidence": "Red = Chinese share, dark grey = foreign — instant readability.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 25,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "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": "019dd95a-16c4-7148-811f-6fc9c93421bb",
        "evidence": "Two red-circled CAGRs (0.4% foreign, 7.7% Chinese) anchor the headline.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 88,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 25,
        "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": "019dd95a-16c4-7148-811f-7c21d0f58f8e",
        "evidence": "Header: 'Examples of how local companies gain an edge' lists three plays.",
        "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": 80,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 26,
        "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": "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": "019dd95a-16c4-7148-811f-84a248a75d4a",
        "evidence": "Closes with 'Take advantage of channel dynamics and anticipate future retail consolidation.'",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 26,
        "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": "019dd95a-16c4-7148-811f-81e264741659",
        "evidence": "Saky 5%, YNBY 15%, Kaiwei 1.8% brand-share examples by name.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 78,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 26,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      },
      {
        "tool": {
          "name": "List presentation",
          "slug": "list-presentation",
          "status": "active",
          "bestFor": null,
          "canonId": "019dd9e1-4ef7-777d-ba68-9074c2b3bcf1",
          "version": 1,
          "bodyDocId": null,
          "description": "Bulleted, numbered, or checklist enumerations.",
          "familyLabel": null,
          "categoryName": null,
          "categorySlug": null
        },
        "agent": null,
        "layer": "slide",
        "agents": null,
        "matchId": "7910773b-59c0-4df2-9a35-1b9abdc32645",
        "evidence": "The slide presents several bullet points listing ways local companies gain an edge.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-07-16 21:08:46.844092+00",
          "model": "or:meta-llama/llama-4-scout",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 26,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": "common",
        "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": "019dd95a-16c4-7148-811f-91c901d82f9a",
        "evidence": "Callout: 'Make the store experience attractive again.'",
        "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": 75,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 27,
        "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": "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": "019dd95a-16c4-7148-811f-969448243fd9",
        "evidence": "Final recommendation acts as memorable CTA closing.",
        "pageRefs": null,
        "priority": null,
        "whenToUse": null,
        "confidence": 78,
        "extraction": {
          "at": "2026-04-29 13:07:33.319977+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 27,
        "whyItWorks": null,
        "antipattern": null,
        "cardinality": null,
        "narrativePurpose": null
      }
    ],
    "frameworks": [
      {
        "matchId": "80a123c9-a809-4039-8049-8076f08d136c",
        "evidence": "The slide is titled 'Executive summary' and provides a high-level overview of the report findings.",
        "framework": null,
        "confidence": 1,
        "extraction": {
          "at": "2026-05-02 19:36:10.29+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 5,
        "frameworkName": "executive-summary"
      },
      {
        "matchId": "019dd95a-1d21-7467-a462-617328cb5906",
        "evidence": "Three panels labelled 'Value', 'Volume', 'Average selling price' decompose growth.",
        "framework": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:34.940444+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 11,
        "frameworkName": "Value-Volume-Price Decomposition"
      },
      {
        "matchId": "019dd95a-1d21-7467-a462-5d2a3179e6fb",
        "evidence": "Axes 'Volume share increase of premium SKUs' x 'Price growth of premium SKUs', four labelled quadrants.",
        "framework": null,
        "confidence": 95,
        "extraction": {
          "at": "2026-04-29 13:07:34.940444+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 15,
        "frameworkName": "2x2 Matrix"
      },
      {
        "matchId": "58fdcdb7-13d5-47bd-8c26-37ed9cae2edc",
        "evidence": "The chart uses a 2x2 grid to segment product categories based on price growth vs volume share increase.",
        "framework": null,
        "confidence": 1,
        "extraction": {
          "at": "2026-05-02 19:36:11.504+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 15,
        "frameworkName": "matrix-2x2"
      },
      {
        "matchId": "019dd95a-1d21-7467-a462-65464d1f553c",
        "evidence": "Two overlapping normal distributions across average income (USD).",
        "framework": null,
        "confidence": 70,
        "extraction": {
          "at": "2026-04-29 13:07:34.940444+00",
          "model": "claude-legacy",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 19,
        "frameworkName": "Income Distribution Curve"
      },
      {
        "matchId": "0193e951-2426-48b1-94ea-fbbbb0a24f1f",
        "evidence": "Categorization of products into clusters based on penetration and growth dynamics.",
        "framework": null,
        "confidence": 0.7,
        "extraction": {
          "at": "2026-05-02 19:36:10.964+00",
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "seconds": null,
          "promptVersion": null
        },
        "pageNumber": 21,
        "frameworkName": "market-segmentation-pyramid"
      }
    ],
    "patterns": []
  },
  "storymakers": {
    "model": "claude-cli-sonnet-4.6",
    "backend": null,
    "rawJson": {
      "arc": {
        "id": 1,
        "slug": "consultants-gambit",
        "beats": [
          {
            "name": "Situation & Context",
            "end_page": 6,
            "evidence": "Executive summary frames China FMCG market and 7-year tracking series.",
            "position": 1,
            "start_page": 5
          },
          {
            "name": "Problem & Complication",
            "end_page": 9,
            "evidence": "Channels shifting, local brands captured 98% of growth — sets the 'how to win' question.",
            "position": 2,
            "start_page": 7
          },
          {
            "name": "Solution & Approach",
            "end_page": 15,
            "evidence": "Premiumization analysis (4% price rise) plus 2x2 of price vs volume strategies.",
            "position": 3,
            "start_page": 10
          },
          {
            "name": "Evidence & Proof",
            "end_page": 25,
            "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
            "position": 4,
            "start_page": 16
          },
          {
            "name": "Impact & Next Steps",
            "end_page": 27,
            "evidence": "Three local-edge plays plus 'How brands/retailers can win' with 'Prepare for New Retail.'",
            "position": 5,
            "start_page": 26
          }
        ],
        "evidence": "Classic Bain long-form: exec-summary thesis (p5), trend context, premiumization analysis, evidence-heavy charts (p10-25), then recommendations (p26-27).",
        "confidence": 85
      },
      "loops": [
        {
          "id": 41,
          "slug": "41-so-what-cascade",
          "end_page": 9,
          "evidence": "Exec summary states 4.3% rebound, then 'how retailers can win' wraps with 'Prepare for New Retail.'",
          "position": 1,
          "objective": "Front-load the thesis: data → premiumization insight → how to win",
          "confidence": 80,
          "start_page": 5
        },
        {
          "id": 34,
          "slug": "34-segmentation-split",
          "end_page": 13,
          "evidence": "Aggregate growth → packaged food vs beverage vs personal care vs home care, each with own dynamics.",
          "position": 2,
          "objective": "Decompose aggregate FMCG growth across the four product sectors",
          "confidence": 82,
          "start_page": 10
        },
        {
          "id": 30,
          "slug": "30-2x2-matrix",
          "end_page": 15,
          "evidence": "Geographic heatmap then explicit 2x2 with 'Raise price' vs 'Increase volume' quadrants for 26 categories.",
          "position": 3,
          "objective": "Map premiumization strategies on price vs volume axes",
          "confidence": 88,
          "start_page": 14
        },
        {
          "id": 4,
          "slug": "04-tale-two-worlds",
          "end_page": 21,
          "evidence": "Imports = 39% of online FMCG, online +28% while big-box slows or declines.",
          "position": 4,
          "objective": "Contrast online (booming, import-heavy) vs offline (slowing) channels",
          "confidence": 75,
          "start_page": 16
        },
        {
          "id": 6,
          "slug": "06-zoom-in",
          "end_page": 24,
          "evidence": "Out-of-home framed as opportunity, then hypermarket declines, then convenience/grocery upside.",
          "position": 5,
          "objective": "Drill into out-of-home consumption opportunity (hyper decline → convenience upside)",
          "confidence": 72,
          "start_page": 22
        },
        {
          "id": 16,
          "slug": "16-david-goliath",
          "end_page": 26,
          "evidence": "Stacked bars show local share rising; 'Examples of how local companies gain an edge' lists three plays.",
          "position": 6,
          "objective": "Show how nimble local brands captured 98% of category growth from foreign giants",
          "confidence": 80,
          "start_page": 25
        }
      ],
      "slide_tools": [
        {
          "tools": [
            {
              "id": 132,
              "slug": "visual-hierarchy",
              "layer": "Slide",
              "evidence": "Title 'AS SHOPPERS UPGRADE, GROWTH RETURNS' dominates cover.",
              "confidence": 70
            },
            {
              "id": 149,
              "slug": "typography-hierarchy",
              "layer": "Slide",
              "evidence": "Bain wordmark + report title hierarchy on cover.",
              "confidence": 65
            }
          ],
          "page_number": 1
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "'Executive summary' header introduces clear thesis paragraphs.",
              "confidence": 75
            },
            {
              "id": 119,
              "slug": "so-what-test",
              "layer": "Slide",
              "evidence": "Callout: 'value growth of FMCG has rebounded as China's expanding middle class…'",
              "confidence": 80
            },
            {
              "id": 154,
              "slug": "concrete-language",
              "layer": "Slide",
              "evidence": "Specific stats: 7 years, 106 categories, 1.6%→4.3%.",
              "confidence": 80
            },
            {
              "id": 3,
              "slug": "pyramid-principle",
              "layer": "Block",
              "evidence": "Answer-first exec summary then supporting evidence anchors the report.",
              "confidence": 85
            },
            {
              "id": 1,
              "slug": "scqa-framework",
              "layer": "Block",
              "evidence": "Situation (7-year tracking), complication (two-speed growth), question (will rebound continue?), answer (yes, premiumization).",
              "confidence": 75
            },
            {
              "id": 16,
              "slug": "three-pillars",
              "layer": "Block",
              "evidence": "Explicit 'three lenses': product category, channel, local vs foreign brand.",
              "confidence": 78
            },
            {
              "id": 80,
              "slug": "data-story-arc",
              "layer": "Loop",
              "evidence": "Context → conflict (two-speed) → insight (premiumization) → implication (how to win).",
              "confidence": 70
            }
          ],
          "page_number": 5
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Title 'As Shoppers Upgrade, Growth Returns' restates thesis.",
              "confidence": 70
            },
            {
              "id": 154,
              "slug": "concrete-language",
              "layer": "Slide",
              "evidence": "Callout: 'facial tissue category, premium SKUs' value rose 17% compared with 2%.'",
              "confidence": 78
            }
          ],
          "page_number": 6
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "'Changing channels' frames the section.",
              "confidence": 68
            },
            {
              "id": 154,
              "slug": "concrete-language",
              "layer": "Slide",
              "evidence": "O2O grew ~30% in 2017 with food/delivery the standout.",
              "confidence": 72
            }
          ],
          "page_number": 7
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Callout: 'Local brands grew 7.7%, capturing 98% share of market growth.'",
              "confidence": 72
            },
            {
              "id": 119,
              "slug": "so-what-test",
              "layer": "Slide",
              "evidence": "Stat directly answers 'why this matters' for foreign brands.",
              "confidence": 75
            }
          ],
          "page_number": 8
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Section header 'How retailers can win' + bolded plays ('Prepare for New Retail').",
              "confidence": 78
            },
            {
              "id": 124,
              "slug": "closing-techniques",
              "layer": "Slide",
              "evidence": "Recommendation block functions as a CTA close to the front-loaded summary.",
              "confidence": 65
            },
            {
              "id": 34,
              "slug": "the-rule-of-three",
              "layer": "Block",
              "evidence": "Brand plays presented as three bolded patterns (high-value, data-driven, channel).",
              "confidence": 70
            }
          ],
          "page_number": 9
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "'Growth rebounds across FMCG product categories' states the insight.",
              "confidence": 82
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "Bar chart with category-level CAGRs.",
              "confidence": 70
            },
            {
              "id": 125,
              "slug": "data-ink-ratio",
              "layer": "Slide",
              "evidence": "Bain charts strip gridlines and 3D effects.",
              "confidence": 70
            },
            {
              "id": 76,
              "slug": "horizontal-logic",
              "layer": "Loop",
              "evidence": "Categories sit at the same level of abstraction within FMCG aggregate.",
              "confidence": 70
            },
            {
              "id": 2,
              "slug": "mece-principle",
              "layer": "Block",
              "evidence": "Four sectors (food, beverage, personal care, home care) cover 80% of FMCG.",
              "confidence": 72
            }
          ],
          "page_number": 10
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "'Rising average selling prices boosted overall FMCG market growth' is the insight.",
              "confidence": 85
            },
            {
              "id": 133,
              "slug": "small-multiples",
              "layer": "Slide",
              "evidence": "Three side-by-side bar panels: Value / Volume / Average selling price, repeated for two figures.",
              "confidence": 90
            },
            {
              "id": 130,
              "slug": "color-strategy",
              "layer": "Slide",
              "evidence": "Greyscale bars with red trend arrow draws eye to 4.3% rebound and 4.0 ASP.",
              "confidence": 75
            },
            {
              "id": 138,
              "slug": "annotation",
              "layer": "Slide",
              "evidence": "Red arrow annotates the 3.6→4.3 rebound on Value chart.",
              "confidence": 78
            },
            {
              "id": 158,
              "slug": "von-restorff-effect",
              "layer": "Slide",
              "evidence": "Single red arrow in otherwise-grey palette stands out.",
              "confidence": 75
            }
          ],
          "page_number": 11
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "'Packaged food started to rebound, while beverage growth was stagnant.'",
              "confidence": 80
            },
            {
              "id": 78,
              "slug": "contrast-pairs",
              "layer": "Loop",
              "evidence": "Food rebound vs beverage stagnation framed in title.",
              "confidence": 70
            }
          ],
          "page_number": 12
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Title contrasts personal care growth vs home care slowdown.",
              "confidence": 80
            },
            {
              "id": 78,
              "slug": "contrast-pairs",
              "layer": "Loop",
              "evidence": "Personal care rising prices vs flat home care volumes.",
              "confidence": 72
            }
          ],
          "page_number": 13
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "'Southwest and central provinces continued to serve as China's growth engine in 2017.'",
              "confidence": 82
            },
            {
              "id": 130,
              "slug": "color-strategy",
              "layer": "Slide",
              "evidence": "Choropleth heatmap of China provinces by FMCG CAGR bucket.",
              "confidence": 80
            },
            {
              "id": 76,
              "slug": "horizontal-logic",
              "layer": "Loop",
              "evidence": "Geographic split sits at same level alongside category and channel cuts.",
              "confidence": 65
            }
          ],
          "page_number": 14
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Title states the insight: raise prices OR raise volume — but rarely both.",
              "confidence": 88
            },
            {
              "id": 138,
              "slug": "annotation",
              "layer": "Slide",
              "evidence": "Quadrant labels 'Raise price', 'Increase both volume and value' annotate the matrix.",
              "confidence": 80
            },
            {
              "id": 132,
              "slug": "visual-hierarchy",
              "layer": "Slide",
              "evidence": "Axes and quadrant boundaries dominate; category dots are secondary.",
              "confidence": 70
            }
          ],
          "page_number": 15
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Callout: 'High-velocity growth for major and niche brands alike in personal care.'",
              "confidence": 70
            },
            {
              "id": 78,
              "slug": "contrast-pairs",
              "layer": "Loop",
              "evidence": "Major vs niche brand growth contrasted on the slide.",
              "confidence": 65
            }
          ],
          "page_number": 16
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Callout pulls out the 39% imports stat as the headline.",
              "confidence": 70
            },
            {
              "id": 154,
              "slug": "concrete-language",
              "layer": "Slide",
              "evidence": "Specific 39% online FMCG imports stat anchors the message.",
              "confidence": 75
            }
          ],
          "page_number": 17
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "'Imports continue to boost online FMCG sales' states the insight.",
              "confidence": 75
            },
            {
              "id": 129,
              "slug": "chart-selection-guide",
              "layer": "Slide",
              "evidence": "Stacked bar showing import share evolution.",
              "confidence": 65
            }
          ],
          "page_number": 18
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "'The macroeconomic explanation of two-speed growth' frames the figure.",
              "confidence": 82
            },
            {
              "id": 138,
              "slug": "annotation",
              "layer": "Slide",
              "evidence": "Numbered red bubbles 1/2/3 walk reader through income-curve shift.",
              "confidence": 90
            },
            {
              "id": 121,
              "slug": "metaphor-analogy",
              "layer": "Slide",
              "evidence": "Two overlaid bell curves serve as visual metaphor for income shift.",
              "confidence": 65
            },
            {
              "id": 154,
              "slug": "concrete-language",
              "layer": "Slide",
              "evidence": "Specific income thresholds: 2.3%→15.9% above $15K; 50%→15.9% below $10K.",
              "confidence": 75
            }
          ],
          "page_number": 19
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Title: 'Online sales maintained their momentum in 2017, while big-box retailers slowed or even declined.'",
              "confidence": 80
            },
            {
              "id": 78,
              "slug": "contrast-pairs",
              "layer": "Loop",
              "evidence": "Online momentum vs big-box decline explicit in the title.",
              "confidence": 75
            }
          ],
          "page_number": 20
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Title: 'Baby and beauty categories continued to achieve high online penetration…'",
              "confidence": 75
            },
            {
              "id": 158,
              "slug": "von-restorff-effect",
              "layer": "Slide",
              "evidence": "Callout flags 'Online categories with very high online penetration and strong upward trend.'",
              "confidence": 65
            }
          ],
          "page_number": 21
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Callout: 'out-of-home market clearly continues to be an opportunity.'",
              "confidence": 65
            },
            {
              "id": 154,
              "slug": "concrete-language",
              "layer": "Slide",
              "evidence": "Stats: O2O grew 30%, channels grew 4.8%, etc.",
              "confidence": 70
            }
          ],
          "page_number": 22
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Title: 'Hypermarkets suffer from declines in traffic, volume per household and penetration.'",
              "confidence": 80
            },
            {
              "id": 158,
              "slug": "von-restorff-effect",
              "layer": "Slide",
              "evidence": "Red triangles flag negative deltas on hypermarket bars.",
              "confidence": 65
            },
            {
              "id": 34,
              "slug": "the-rule-of-three",
              "layer": "Block",
              "evidence": "Three failure modes named: traffic, volume per household, penetration.",
              "confidence": 65
            }
          ],
          "page_number": 23
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Title: 'Convenience and grocery stores have huge potential for out-of-home consumption sales.'",
              "confidence": 78
            },
            {
              "id": 78,
              "slug": "contrast-pairs",
              "layer": "Loop",
              "evidence": "Frames hypermarket decline (p23) vs convenience upside as opposites.",
              "confidence": 65
            }
          ],
          "page_number": 24
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Title: 'In 2017, local players continued to gain share against foreign rivals.'",
              "confidence": 85
            },
            {
              "id": 158,
              "slug": "von-restorff-effect",
              "layer": "Slide",
              "evidence": "Two red-circled CAGRs (0.4% foreign, 7.7% Chinese) anchor the headline.",
              "confidence": 88
            },
            {
              "id": 138,
              "slug": "annotation",
              "layer": "Slide",
              "evidence": "Per-year market-growth-captured row (98% to local in 2017) annotates stacked bars.",
              "confidence": 78
            },
            {
              "id": 130,
              "slug": "color-strategy",
              "layer": "Slide",
              "evidence": "Red = Chinese share, dark grey = foreign — instant readability.",
              "confidence": 75
            },
            {
              "id": 78,
              "slug": "contrast-pairs",
              "layer": "Loop",
              "evidence": "Foreign vs Chinese brand value-share contrast across five years.",
              "confidence": 80
            }
          ],
          "page_number": 25
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Header: 'Examples of how local companies gain an edge' lists three plays.",
              "confidence": 80
            },
            {
              "id": 154,
              "slug": "concrete-language",
              "layer": "Slide",
              "evidence": "Saky 5%, YNBY 15%, Kaiwei 1.8% brand-share examples by name.",
              "confidence": 78
            },
            {
              "id": 124,
              "slug": "closing-techniques",
              "layer": "Slide",
              "evidence": "Closes with 'Take advantage of channel dynamics and anticipate future retail consolidation.'",
              "confidence": 70
            },
            {
              "id": 34,
              "slug": "the-rule-of-three",
              "layer": "Block",
              "evidence": "Three bolded patterns: niche/local-fit, white-space innovation, omnichannel engagement.",
              "confidence": 85
            },
            {
              "id": 92,
              "slug": "tricolon",
              "layer": "Loop",
              "evidence": "Three parallel-structured 'They [verb]…' sentence stems.",
              "confidence": 75
            }
          ],
          "page_number": 26
        },
        {
          "tools": [
            {
              "id": 118,
              "slug": "action-titles",
              "layer": "Slide",
              "evidence": "Callout: 'Make the store experience attractive again.'",
              "confidence": 75
            },
            {
              "id": 124,
              "slug": "closing-techniques",
              "layer": "Slide",
              "evidence": "Final recommendation acts as memorable CTA closing.",
              "confidence": 78
            }
          ],
          "page_number": 27
        }
      ],
      "slides_seen": 32,
      "deck_summary": "A long-form Bain consulting report that aligns strongly with Storymakers via Pyramid Principle (answer-first exec summary) and a Consultant's Gambit arc, with disciplined action titles, small multiples, a 2x2, and a three-play recommendation block — though most narrative tension is loaded into chart titles and callouts rather than story moments.",
      "secondary_arcs": [
        {
          "id": 11,
          "slug": "triple-take",
          "beats": [
            {
              "name": "The Facts (What)",
              "end_page": 21,
              "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
              "position": 1,
              "start_page": 10
            },
            {
              "name": "The Implications (So What)",
              "end_page": 25,
              "evidence": "Out-of-home opportunity and local-player share gain explain implications.",
              "position": 2,
              "start_page": 22
            },
            {
              "name": "The Action (Now What)",
              "end_page": 27,
              "evidence": "Three local-edge plays plus 'Prepare for New Retail' CTA.",
              "position": 3,
              "start_page": 26
            }
          ],
          "evidence": "Each chart slide presents Facts (data) → So-what (callout) → Now-what (recommendation block at end).",
          "confidence": 60
        }
      ],
      "images_inspected": 7,
      "slide_frameworks": [
        {
          "frameworks": [
            {
              "name": "2x2 Matrix",
              "slug": "2x2-matrix",
              "evidence": "Axes 'Volume share increase of premium SKUs' x 'Price growth of premium SKUs', four labelled quadrants.",
              "confidence": 95
            }
          ],
          "page_number": 15
        },
        {
          "frameworks": [
            {
              "name": "Value-Volume-Price Decomposition",
              "slug": "value-volume-price-decomposition",
              "evidence": "Three panels labelled 'Value', 'Volume', 'Average selling price' decompose growth.",
              "confidence": 70
            }
          ],
          "page_number": 11
        },
        {
          "frameworks": [
            {
              "name": "Income Distribution Curve",
              "slug": "income-distribution-curve",
              "evidence": "Two overlapping normal distributions across average income (USD).",
              "confidence": 70
            }
          ],
          "page_number": 19
        }
      ]
    },
    "matchedAt": "2026-04-26 21:36:53+00",
    "slidesSeen": 32,
    "deckSummary": "A long-form Bain consulting report that aligns strongly with Storymakers via Pyramid Principle (answer-first exec summary) and a Consultant's Gambit arc, with disciplined action titles, small multiples, a 2x2, and a three-play recommendation block — though most narrative tension is loaded into chart titles and callouts rather than story moments.",
    "imagesInspected": 7,
    "extractionSeconds": 358.3735
  },
  "score": {
    "backend": "codex",
    "scoredAt": "2026-05-02 11:40:17.319+00",
    "subScores": {
      "scqa_arc": 60,
      "action_titles": 72,
      "mece_structure": 66,
      "closing_strength": 58,
      "evidence_quality": 84,
      "clarity_of_thesis": 82,
      "production_quality": 72,
      "visual_storytelling": 74
    },
    "totalScore": 71,
    "coveragePct": 100,
    "explanations": {
      "scqa_arc": "It starts with the situation of rebounding growth, introduces complications around two-speed categories and channel disruption, and offers answers on slides 9 and 26-27, but the recommendation appears early and the middle reads more like an analytical report than a staged SCQA arc.",
      "action_titles": "Many analytical pages use insight-bearing titles, especially slide 11: 'Rising average selling prices boosted overall FMCG market growth,' but slides 7, 9, 26, and several repeated 'As Shoppers Upgrade, Growth Returns' pages are more generic.",
      "mece_structure": "The deck broadly separates product/category growth, channel shifts, local-versus-foreign competition, and recommendations, but premiumization, online, imports, and retailer implications recur across slides 6-27 with some overlap.",
      "closing_strength": "Slides 26-27 provide practical recommendations for brands and retailers, but the deck then ends with acknowledgments, filler, corporate boilerplate, and contact pages on slides 28-32 rather than a sharp final call to action.",
      "evidence_quality": "Claims are well supported by Bain/Kantar metrics, figures, charts, and category/channel data across slides 10-25, with weaker support mainly in the qualitative recommendation pages 9, 26, and 27.",
      "clarity_of_thesis": "The thesis is visible by slides 1 and 5 as 'as shoppers upgrade, growth returns,' with slide 5 adding the 4.3% FMCG rebound, premiumization, and two-speed-market logic.",
      "production_quality": "Branding, chart discipline, and footnotes are professionally consistent, but overcrowded data pages, repeated generic action titles, heavy narrative blocks, and back-matter dilution keep it below exemplary.",
      "visual_storytelling": "The deck generally chooses appropriate tools, including charts on slides 10-13 and 18-25, a map on slide 14, a 2x2 on slide 15, and a bell-curve explanation on slide 19, though several dense text pages reduce visual force."
    },
    "slidesAnalyzed": 32
  },
  "review": {
    "backend": null,
    "verdict": "A solid Bain research report with strong analytical pages and quantified callouts but a buried, fragmented recommendation - useful as a teaching example for action-title craft on the best slides (p.15, p.23) and as a counter-example for closing structure and section signposting.",
    "reviewedAt": "2026-04-24 14:25:40+00",
    "slidesSeen": 32,
    "suggestions": [
      "Replace every reuse of the cover slogan as a slide title (p.6, 8, 16, 17, 22, 27) with the specific declarative insight from each slide's callout",
      "Insert 2-3 pillar dividers (e.g., \"Where growth came from,\" \"Why two speeds,\" \"How to win\") to make the implicit MECE structure visible",
      "Consolidate p.9, p.26 and p.27 into a single 3-action recommendation slide near the end with owner/time-frame, then close with a memorable \"so what\" before the appendix"
    ],
    "closingScore": 45,
    "openingScore": 70,
    "topStrengths": [
      "Several genuinely insight-bearing action titles (p.15 on the price/volume tradeoff, p.23 on hypermarket decline, p.20 on online vs. big-box divergence)",
      "Clear quantified callouts throughout (4.3% rebound, 17% premium tissue growth, 98% local share of growth) give the reader a takeaway per page",
      "p.19 macroeconomic diagnosis (\"two-speed growth\") provides a strong analytical pivot between the trend section and the channel/competition sections"
    ],
    "topWeaknesses": [
      "Repeated use of the cover line \"As Shoppers Upgrade, Growth Returns\" as a slide title on p.6, 8, 16, 17, 22, 27 - wastes the action-title slot and breaks narrative cadence",
      "No section dividers or pillar slides; reader must self-assemble the MECE structure from 20+ analysis pages",
      "Recommendations are fragmented (p.9 \"How retailers can win,\" p.26 examples, p.27 single-line close) rather than a consolidated resolution act",
      "Closing pages 28-32 are pure front-matter / Bain marketing with two filler repeats - the deck literally ends on a URL"
    ],
    "narrativeScore": 62,
    "pillarCritique": "There are no explicit section dividers - the structure is implicit (categories -> geography -> premiumization -> channels -> competition -> recommendations) and the reader has to reconstruct pillars from repeated \"As Shoppers Upgrade, Growth Returns\" placeholder titles, which signals a topic dump rather than MECE pillars.",
    "closingCritique": "The deck trails off into authors/about-Bain pages (p.28-32) with two filler slides (p.29-30) repeating the cover line; the actual recommendation moment (p.27 \"Make the store experience attractive again\") is a single line with no synthesis, next steps, or memorable close.",
    "openingCritique": "The cover thesis (\"As Shoppers Upgrade, Growth Returns\") plus the executive summary on p.5 and the rebound headline on p.6 do lead with the answer, but pages 2-4 (disclaimer, TOC, filler) waste early real estate before the hook lands.",
    "extractionSeconds": 70.68782,
    "narrativeCritique": "The deck has a recognizable Situation -> Complication -> Analysis arc (rebound thesis on p.5-6, two-speed diagnosis on p.19, channel/competitive analysis through p.25), but the Resolution act is thin and scattered (p.9, p.26-27) rather than a culminating recommendation block. Reads more like a research report with prescriptive sprinkles than a tight SCQA story.",
    "titleQualityScore": 65,
    "titleQualityCritique": "Best-in-class action titles do exist - p.15 \"Brands can boost premiumization by raising prices or increasing premium SKU sales volume-but rarely both\" and p.23 \"Hypermarkets suffer from declines in traffic, volume per household and penetration\" - but at least five slides (p.6, 8, 16, 17, 22, 27) reuse the cover slogan as their title, abdicating the action-title job entirely."
  },
  "activistThesis": null,
  "pitchdeck": {
    "metadata": null,
    "profile": null
  },
  "slides": [
    {
      "page": 1,
      "type": "setup",
      "function": "front_matter",
      "imagePath": "https://imgproxy.kitesheet.com/AXsUdlMrb1wgr9uP5D7ZmUR9N21yDzTjnenW0uhcyAM/rs:fit:1200:1200:0/q:82/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy9hNWE5Y2JmYzNhY2Q4YjdhL3AwMDEuanBn",
      "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": 19,
        "componentCount": 5,
        "textChars": 99,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "photo",
          "headline_text"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:09.361+00",
          "seconds": 3.029,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/1",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-1",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.03,
            "w": 0.49,
            "x": 0.06,
            "y": 0.935
          },
          "kind": "image",
          "text": "KANTAR WORLDPANEL",
          "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:36:09.361+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8e9b9f47-e1a2-4785-9fd7-12ae5a7efe00",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.36,
            "x": 0.575,
            "y": 0.935
          },
          "kind": "image",
          "text": "BAIN & COMPANY",
          "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:36:09.361+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "dd1e4097-3e8e-4445-b862-b2f9357cec56",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.68,
            "w": 0.88,
            "x": 0.06,
            "y": 0.04
          },
          "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": "Photo",
              "slug": "photo",
              "status": "active",
              "canonId": "019de52c-fd37-757f-b4a8-ca26d4888875",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "photo",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:09.361+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4d3e6dae-ec29-4f05-b8e3-6169455551e0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.48,
            "x": 0.26,
            "y": 0.72
          },
          "kind": "title",
          "text": "AS SHOPPERS UPGRADE, GROWTH RETURNS",
          "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:36:09.361+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "fa11d310-81c7-49f5-a1ee-586738357f1b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.32,
            "x": 0.62,
            "y": 0.76
          },
          "kind": "title",
          "text": "China Shopper Report 2018, Vol. 1",
          "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:36:09.361+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "932dd481-bb0d-4e84-97b6-10730798e362",
          "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": "019dd95a-16c4-7148-811e-80be3e956993",
          "evidence": "Bain wordmark + report title hierarchy on cover.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "019dd95a-16c4-7148-811e-7f080e253cf6",
          "evidence": "Title 'AS SHOPPERS UPGRADE, GROWTH RETURNS' dominates cover.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 1,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "thumbSrc": "https://imgproxy.kitesheet.com/KbuLoSrPoFoWRo9ArlsF97Iw0z29-lO-deQKSET3zwY/rs:fit:480:480:0/q:78/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy9hNWE5Y2JmYzNhY2Q4YjdhL3AwMDEuanBn",
      "imagePathAlt": "https://imgproxy.kitesheet.com/qRRzQ8v8pBNkwlxzbL3GCrkLNJpfRYFIoJRnbwj8ufI/rs:fit:1200:1200:0/q:82/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy9hNWE5Y2JmYzNhY2Q4YjdhL3AwMDEucG5n",
      "thumbSrcAlt": "https://imgproxy.kitesheet.com/RrlKrDJ6i4ymJWpAkDo3gD2lJWQlCUYmSfbGMOY5HhY/rs:fit:480:480:0/q:78/f:webp/czM6Ly9raXRlc2hlZXQvY29ycHVzL3NsaWRlcy9hNWE5Y2JmYzNhY2Q4YjdhL3AwMDEucG5n"
    },
    {
      "page": 2,
      "type": "setup",
      "title": "This is a standard legal disclaimer slide typically placed at the beginning or end of a consulting presentation deck.",
      "function": "front_matter",
      "rawType": "disclaimer",
      "block": null,
      "metadata": {
        "slideType": "disclaimer",
        "slideTypeCanon": {
          "name": "Disclaimer",
          "slug": "disclaimer",
          "status": "active",
          "canonId": "019de52d-0801-727b-b98a-5ed095aeee78",
          "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": 14,
        "componentCount": 2,
        "textChars": 327,
        "nDataPoints": 0,
        "notes": "This is a standard legal disclaimer slide typically placed at the beginning or end of a consulting presentation deck.",
        "elementsJson": [
          "paragraph"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.5-flash",
          "runId": null,
          "at": "2026-07-17 03:46:44.399+00",
          "seconds": 2.844,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/2",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-2",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.015,
            "w": 0.44,
            "x": 0.105,
            "y": 0.92
          },
          "kind": "disclaimer",
          "text": "Copyright © 2018 Bain & Company, Inc. and Kantar Worldpanel. All rights reserved.",
          "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": "disclaimer",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-07-17 03:46:44.399+00",
            "model": "google/gemini-3.5-flash",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4c5d60ff-5d93-4243-b28c-bd54ef416598",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.115,
            "w": 0.79,
            "x": 0.105,
            "y": 0.725
          },
          "kind": "disclaimer",
          "text": "This work is based on secondary market research, analysis of financial information available or provided to Bain & Company and a range of interviews with industry participants. Bain & Company has not independently verified any such information...",
          "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": "disclaimer",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-07-17 03:46:44.399+00",
            "model": "google/gemini-3.5-flash",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "edd97530-3eab-4456-a55f-41c5d6e91655",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    },
    {
      "page": 3,
      "type": "setup",
      "function": "front_matter",
      "rawType": "table_of_contents",
      "block": null,
      "metadata": {
        "slideType": "table_of_contents",
        "slideTypeCanon": {
          "name": "Table of contents",
          "slug": "table_of_contents",
          "status": "active",
          "canonId": "019de52d-0643-721b-9b85-69676bb85cf8",
          "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": 22,
        "componentCount": 2,
        "textChars": 488,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "numbered_list"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:08.902+00",
          "seconds": 2.273,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/3",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-3",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.355,
            "w": 0.794,
            "x": 0.106,
            "y": 0.196
          },
          "kind": "list",
          "text": "1. Executive summary ... pg. 3\n2. Full report ... pg. 8\n   a. Growth rebounds across FMCG product categories ... pg. 8\n   b. A deeper look at premiumization by category ... pg. 12\n   c. Shifting channels at home and out of home ... pg. 17\n   d. A look at growth by geography ... pg. 22\n   e. Continuing battle between local and foreign brands ... pg. 22\n   f. How brands can win ... pg. 24\n   g. How retailers can win ... pg. 24\n3. About the authors and acknowledgments ... pg. 26",
          "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": "Numbered list",
              "slug": "numbered",
              "status": "active",
              "canonId": "019de52c-fcc0-7718-a284-a4250c805df2",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "numbered",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:08.902+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "dfece44e-fe79-4f82-b680-81fc2e6b4959",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.025,
            "w": 0.115,
            "x": 0.106,
            "y": 0.124
          },
          "kind": "title",
          "text": "Contents",
          "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:36:08.902+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f01698f2-f5a3-4115-90bc-43a146edcf64",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    },
    {
      "page": 4,
      "type": "setup",
      "function": "filler",
      "rawType": "filler",
      "block": null,
      "metadata": {
        "slideType": "filler",
        "slideTypeCanon": {
          "name": "Filler",
          "slug": "filler",
          "status": "active",
          "canonId": "019de52d-0829-76f9-9abe-4c11ee7bf4ab",
          "version": 1,
          "description": null
        },
        "function": "filler",
        "functionCanon": {
          "name": "Filler",
          "slug": "filler",
          "status": "active",
          "canonId": "019de52d-1568-702b-ad12-428490978783",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 0,
        "componentCount": 1,
        "textChars": 0,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "photo"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:09.07+00",
          "seconds": 2.393,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/4",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-4",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.9,
            "w": 0.9,
            "x": 0.05,
            "y": 0.05
          },
          "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": "Photo",
              "slug": "photo",
              "status": "active",
              "canonId": "019de52c-fd37-757f-b4a8-ca26d4888875",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "photo",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:09.07+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "9a169581-7921-4887-8aa4-ac5bc146cf96",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    },
    {
      "page": 5,
      "type": "setup",
      "title": "The slide summarizes key trends in Chinese consumer behavior, specifically the shift toward premium goods and the 'two-speed' market phenomenon.",
      "function": "summarize",
      "rawType": "executive_summary",
      "block": null,
      "metadata": {
        "slideType": "executive_summary",
        "slideTypeCanon": {
          "name": "Executive summary",
          "slug": "executive_summary",
          "status": "active",
          "canonId": "019de52d-06be-73ff-81b3-f99fe7f0025e",
          "version": 1,
          "description": null
        },
        "function": "summarize",
        "functionCanon": {
          "name": "Summarize",
          "slug": "summarize",
          "status": "active",
          "canonId": "019de52d-1541-704f-b86f-bf7b75056373",
          "version": 1,
          "description": null
        },
        "density": "overcrowded",
        "densityScore": 81,
        "componentCount": 8,
        "textChars": 1229,
        "nDataPoints": 12,
        "notes": "The slide summarizes key trends in Chinese consumer behavior, specifically the shift toward premium goods and the 'two-speed' market phenomenon.",
        "elementsJson": [
          "paragraph",
          "bullet_list"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:10.29+00",
          "seconds": 3.61,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/5",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-5",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "The big news is that value growth of FMCG has rebounded as China's expanding middle class continues to seek out upgraded consumer goods that serve to improve health and elevate their lifestyle.",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba63-8eb1cf99abfa",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.25,
            "x": 0.107,
            "y": 0.603
          },
          "kind": "list",
          "text": "The product category lens\nThe channel lens\nThe local vs. foreign brand lens",
          "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:36:10.29+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f5e68da4-d642-4603-9fb8-e3c2c31b8f3e",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "FMCG value growth: 4.3%",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba63-92c9012b6228",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.055,
            "w": 0.786,
            "x": 0.107,
            "y": 0.181
          },
          "kind": "paragraph",
          "text": "This is the seventh consecutive year that we've tracked the shopping behaviors of Chinese consumers. Our continuing research has given us a valuable long-term view across 106 fast-moving consumer goods (FMCG) categories purchased for home consumption in China.",
          "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:36:10.29+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8ccd06af-ffc8-4d63-b98d-917e3a48cb78",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.083,
            "w": 0.786,
            "x": 0.107,
            "y": 0.345
          },
          "kind": "paragraph",
          "text": "The big news is that value growth of FMCG has rebounded as China's expanding middle class continues to seek out upgraded consumer goods that serve to improve health and elevate their lifestyle. For the first time since we started tracking China's shopping behaviors, six years ago, the rate of total value growth increased over the previous year, from 3.6% in 2016 to 4.3% in 2017.",
          "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:36:10.29+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "afed59bd-217e-4403-ab41-d11847773a88",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.042,
            "w": 0.786,
            "x": 0.107,
            "y": 0.731
          },
          "kind": "paragraph",
          "text": "As we saw in previous years, the food and beverage sectors and home care and personal care sectors tend to grow at different speeds. Both saw growth accelerate in 2017, even the typically underperforming food and beverages. The overarching force: premiumization.",
          "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:36:10.29+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "fae63ea5-565d-495f-a0d6-b825edcf030c",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.023,
            "w": 0.243,
            "x": 0.107,
            "y": 0.125
          },
          "kind": "title",
          "text": "Executive summary",
          "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:36:10.29+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "0e5a2776-206e-42b1-bd8d-57e188ebf681",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.165,
            "x": 0.107,
            "y": 0.698
          },
          "kind": "title",
          "text": "Product categories",
          "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:36:10.29+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "49ca373b-2554-4914-8aca-b78f28bc0e8d",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "FMCG value growth",
          "numberRaw": "4.3%",
          "numberKind": "percent",
          "actionTitle": null,
          "calloutText": "The big news is that value growth of FMCG has rebounded as China's expanding middle class continues to seek out upgraded consumer goods that serve to improve health and elevate their lifestyle.",
          "numberScale": null,
          "numberValue": 4.3,
          "metricFamily": "growth_rate",
          "numberCurrency": null
        }
      ],
      "tools": [
        {
          "tool": {
            "name": "Pyramid Principle",
            "slug": "pyramid-principle",
            "status": "active",
            "bestFor": "When the document has a single governing decision or recommendation the reader is asked to accept, and the case can be decomposed into a small number of clean groups. Strategy decks, board memos, investment committee papers.",
            "canonId": "019dd956-7cbd-7219-a477-c871e2bc1aff",
            "version": 1,
            "bodyDocId": "88b6ac56-b880-46f9-8621-ef3491ab6235",
            "description": "Lead with the answer; group three to five MECE supports beneath it; recurse one level down. Top-down hierarchical structure for any document with a single recommendation.",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Architect",
          "layer": "block",
          "agents": [
            "Architect"
          ],
          "matchId": "019dd95a-16c4-7148-811e-927e5fdc4011",
          "evidence": "Answer-first exec summary then supporting evidence anchors the report.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": "When the document has a single governing decision or recommendation the reader is asked to accept, and the case can be decomposed into a small number of clean groups. Strategy decks, board memos, investment committee papers.",
          "confidence": 85,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": "Solves the two failure modes of expert communication at once: (1) the long climb where readers wait pages for the answer, and (2) logical mush from non-MECE groupings. Progressive disclosure lets a reader stop at any depth and get the right information.",
          "antipattern": "Chronological structure (\"what we did, what we found, what we conclude\") instead of logical hierarchy. Top-of-pyramid that is a topic (\"strategic options\") instead of an answer (\"pursue Option B because...\"). Non-MECE supports that overlap or fail to cover the universe.",
          "cardinality": null,
          "narrativePurpose": "Transfer conviction with minimum reader effort by mirroring how decision-makers consume information: answer first, scaffolding behind."
        },
        {
          "tool": {
            "name": "SCQA Framework",
            "slug": "scqa-framework",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-7bcb-763f-bdf6-1dfedf3bd36c",
            "version": 1,
            "bodyDocId": "019df22a-a0b0-719e-937e-2ac31e53d32c",
            "description": "Situation, Complication, Question, Answer - structured problem framing",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Architect",
          "layer": "block",
          "agents": [
            "Architect"
          ],
          "matchId": "019dd95a-16c4-7148-811e-94a250a95a90",
          "evidence": "Situation (7-year tracking), complication (two-speed growth), question (will rebound continue?), answer (yes, premiumization).",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Three Pillars",
            "slug": "three-pillars",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-81ef-7455-a365-b234d95a6bbb",
            "version": 1,
            "bodyDocId": null,
            "description": "Three major supporting arguments that are MECE and address key concerns",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Architect",
          "layer": "block",
          "agents": [
            "Architect"
          ],
          "matchId": "019dd95a-16c4-7148-811e-9ae2cc4fb596",
          "evidence": "Explicit 'three lenses': product category, channel, local vs foreign brand.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 78,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Data Story Arc",
            "slug": "data-story-arc",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-9c30-728e-b974-d3fb123dcf5a",
            "version": 1,
            "bodyDocId": null,
            "description": "Context → Conflict → Insight → Implication structure for data narratives",
            "familyLabel": null,
            "categoryName": "Loop",
            "categorySlug": "loop"
          },
          "agent": "Storyteller",
          "layer": "loop",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019dd95a-16c4-7148-811e-9d7f1fe8463f",
          "evidence": "Context → conflict (two-speed) → insight (premiumization) → implication (how to win).",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "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": "019dd95a-16c4-7148-811e-87f039dce4b0",
          "evidence": "'Executive summary' header introduces clear thesis paragraphs.",
          "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": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "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": "019dd95a-16c4-7148-811e-8c3dbb8322ec",
          "evidence": "Specific stats: 7 years, 106 categories, 1.6%→4.3%.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Executive summary",
            "slug": "executive-summary",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd9e1-4b63-72d5-9734-da757d91ca61",
            "version": 1,
            "bodyDocId": null,
            "description": "A condensed view of the entire argument on a single slide / block.",
            "familyLabel": null,
            "categoryName": null,
            "categorySlug": null
          },
          "agent": null,
          "layer": "slide",
          "agents": null,
          "matchId": "dbdae4db-58c3-4d77-aa99-1369626318b4",
          "evidence": "This is the executive summary section of the report.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.9,
          "extraction": {
            "at": "2026-07-16 21:08:58.23188+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": "common",
          "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": "019dd95a-16c4-7148-811e-895aa03f9ebb",
          "evidence": "Callout: 'value growth of FMCG has rebounded as China's expanding middle class…'",
          "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-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "80a123c9-a809-4039-8049-8076f08d136c",
          "evidence": "The slide is titled 'Executive summary' and provides a high-level overview of the report findings.",
          "framework": null,
          "confidence": 1,
          "extraction": {
            "at": "2026-05-02 19:36:10.29+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 5,
          "frameworkName": "executive-summary"
        }
      ],
      "arcBeats": [
        {
          "to": 6,
          "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": 5,
          "name": "Situation & Context",
          "beatId": "019dd95a-0702-74a3-87e6-5b00d6e384b7",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Situation & Context",
            "slug": "consultants-gambit-situation-context",
            "status": "active",
            "canonId": "019dd9b8-05ae-741b-992d-65ee83c639b3",
            "version": 1,
            "description": null
          },
          "evidence": "Executive summary frames China FMCG market and 7-year tracking series.",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        }
      ],
      "loops": [
        {
          "to": 9,
          "from": 5,
          "loop": {
            "name": "41_so_what_cascade",
            "slug": "41-so-what-cascade",
            "status": "active",
            "bestFor": "Data presentations, executive summaries, driving to recommendations",
            "canonId": "019dd956-769f-7208-afbc-f28985c6f4fb",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Data -> So What? (Insight 1) -> So What? (Insight 2) -> So What? (The Action)",
            "description": "Chain insights together, each answering 'so what?' until you reach the actionable conclusion",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-b6ebb600cb68",
          "evidence": "Exec summary states 4.3% rebound, then 'how retailers can win' wraps with 'Prepare for New Retail.'",
          "position": 1,
          "objective": "Front-load the thesis: data → premiumization insight → how to win",
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 6,
      "type": "analysis",
      "title": "The slide discusses premiumization strategies (price increases vs. new premium SKUs) and provides specific category examples.",
      "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": "overcrowded",
        "densityScore": 86,
        "componentCount": 9,
        "textChars": 2012,
        "nDataPoints": 2,
        "notes": "The slide discusses premiumization strategies (price increases vs. new premium SKUs) and provides specific category examples.",
        "elementsJson": [
          "paragraph",
          "photo"
        ],
        "confidence": 0.9,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:10.791+00",
          "seconds": 4.076,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/6",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-6",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "The biggest increases were in the facial tissue category, in which premium SKUs' value rose 17% compared with 2% growth among non-premium products.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Callout",
              "slug": "callout",
              "status": "active",
              "canonId": "019de52c-f8d3-761a-8953-7d37080de5e2",
              "version": 1,
              "description": "Highlighted callout box."
            },
            "tool": {
              "name": "Visual emphasis",
              "slug": "visual-emphasis",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-474b-736b-a8eb-a794dd88241c",
              "version": 1,
              "bodyDocId": null,
              "description": "Drawing the eye to one element above the rest of the slide.",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-24 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-69fbdc9a925a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.28,
            "w": 0.8,
            "x": 0.1,
            "y": 0.62
          },
          "kind": "image",
          "text": "Shoppers in a supermarket aisle",
          "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": "Photo",
              "slug": "photo",
              "status": "active",
              "canonId": "019de52c-fd37-757f-b4a8-ca26d4888875",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "photo",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:10.791+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a72e1955-882b-47d8-822c-d00320132b62",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "value growth: 17%",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-6edbbe4d1f8b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.07,
            "w": 0.8,
            "x": 0.1,
            "y": 0.53
          },
          "kind": "paragraph",
          "text": "Premium SKUs made gains in facial tissue, toothpaste, packaged water, toothbrushes, fabric softener, infant formula, skin care, instant noodles, personal wash, kitchen cleanser, beer and toilet tissue. The biggest increases were in the facial tissue category, in which premium SKUs’ value rose 17% compared with 2% growth among non-premium products.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:10.791+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "0c881c5c-dae0-4ee6-bf44-9dbb0783f56d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.1,
            "y": 0.28
          },
          "kind": "paragraph",
          "text": "This premiumization trend was observed in the beverage sector, too. Nongfu Shanquan achieved strong sales growth through an effective marketing campaign linking water to specific occasions, such as cooking rice. The company also personalized its products by printing consumers’ comments on bottles.",
          "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:36:10.791+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2335fc7e-686e-4a89-b25e-cedd7b7f2535",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.07,
            "w": 0.8,
            "x": 0.1,
            "y": 0.45
          },
          "kind": "paragraph",
          "text": "Primarily, brands boost premiumization in one of two ways. They raise prices on SKUs—this was the case in 2017 with products such as toothbrushes and hair conditioner. The other approach is to introduce more premium SKUs and increase the sales volume of existing premium SKUs.",
          "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:36:10.791+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "38d7b6f0-670d-4b64-a566-6f30053e48a0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.8,
            "x": 0.1,
            "y": 0.12
          },
          "kind": "paragraph",
          "text": "Another contributor to food premiumization: pleasure. Categories that provide better taste or more pleasure have demonstrated strong growth momentum. Instant noodle players Master Kong and Uni-President continued to introduce new premium products, such as Soup Master, to attract middle-class consumers. Jelly candy offered by UHA Cororo has created a new taste sensation thanks to juice injected inside the candy. Meanwhile, Peppa Pig branded biscuits use the popular cartoon character to create a strong emotional bond with customers, which in turn boosted sales 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:36:10.791+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "603232f3-17bb-4744-b652-cdbf33846232",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.07,
            "w": 0.8,
            "x": 0.1,
            "y": 0.37
          },
          "kind": "paragraph",
          "text": "Much of the growth comes from the southwest and central provinces as industries shift inland from the coast. As more consumers become premium buyers, these provinces continue to outperform the coastal provinces in terms of FMCG spending 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:36:10.791+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ab4a3c7f-2d2b-4b1b-9dd3-5e3242aa4de7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.8,
            "x": 0.1,
            "y": 0.06
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:10.791+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "83c8f51c-ae5c-4899-9a83-a120566b6119",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "value growth",
          "numberRaw": "17%",
          "numberKind": "percent",
          "actionTitle": "As Shoppers Upgrade, Growth Returns",
          "calloutText": "The biggest increases were in the facial tissue category, in which premium SKUs' value rose 17% compared with 2% growth among non-premium products.",
          "numberScale": null,
          "numberValue": 17,
          "metricFamily": "growth_rate",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811e-a06c727c9784",
          "evidence": "Title 'As Shoppers Upgrade, Growth Returns' restates thesis.",
          "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": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "Audience Definition",
            "slug": "audience-definition",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-7f2a-775d-aeee-ff099bcb7756",
            "version": 1,
            "bodyDocId": null,
            "description": "Six key questions: Who are they? What do they know? What do they believe? What do they care about? What do they fear? What decisions can they make?",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "184c236a-521a-48d8-bea1-0853d4715998",
          "evidence": "The report is focused on China's expanding middle class and their shopping behaviors.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:08:58.306546+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 6,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Big Idea Formula",
            "slug": "big-idea-formula",
            "status": "active",
            "bestFor": "Any narrative-driven persuasive deck whose job is to move the audience: keynotes, fundraising pitches, capital-allocation board asks, all-hands behaviour-change talks, conference talks meant to shift mental models. Use it before structuring; pair with Pyramid when the deck must also withstand line-by-line scrutiny.",
            "canonId": "019dd956-7dd1-74d7-9866-ffdef19ecfbf",
            "version": 1,
            "bodyDocId": "c30d7484-69e0-4e21-82cf-20fa0966869e",
            "description": "Nancy Duarte's articulation of how to frame a presentation's central message: the speaker's unique point of view plus what's at stake for the audience, expressed as one complete declarative sentence. The narrative-driven counterpart to Minto's analytical governing thought.",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "ffcd0cb5-f27f-438d-872a-08036853cb60",
          "evidence": "The report highlights the rebound of FMCG value growth and premiumization trend.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": "Any narrative-driven persuasive deck whose job is to move the audience: keynotes, fundraising pitches, capital-allocation board asks, all-hands behaviour-change talks, conference talks meant to shift mental models. Use it before structuring; pair with Pyramid when the deck must also withstand line-by-line scrutiny.",
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:08:58.343585+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 6,
          "whyItWorks": "Solves the topic-not-thesis trap and the stake-less recommendation trap simultaneously. A single declarative sentence with a verb forces the speaker's stance into the room; routing the consequence through the word 'you' translates internal urgency into the audience's currency. The result is short enough to be repeated after the meeting — and that repetition is the persuasion mechanism.",
          "antipattern": "A topic dressed as a thesis ('Sustainability Roadmap 2026'), a stake attached to the speaker rather than the audience, two ideas spliced with 'and', abstract verbs (leverage / unlock / empower) that survive deletion, or writing the Big Idea after the deck is already built so the slides don't actually defend it.",
          "cardinality": null,
          "narrativePurpose": "Forces the deck to commit to a single declarative thesis before slide one — a sentence that names the speaker's stance and routes a consequence through the audience's currency. Acts as the filter every slide, anecdote, and chart must ladder up to."
        },
        {
          "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": "019dd95a-16c4-7148-811e-a7f092012d7a",
          "evidence": "Callout: 'facial tissue category, premium SKUs' value rose 17% compared with 2%.'",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 78,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 6,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 6,
          "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": 5,
          "name": "Situation & Context",
          "beatId": "019dd95a-0702-74a3-87e6-5b00d6e384b7",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Situation & Context",
            "slug": "consultants-gambit-situation-context",
            "status": "active",
            "canonId": "019dd9b8-05ae-741b-992d-65ee83c639b3",
            "version": 1,
            "description": null
          },
          "evidence": "Executive summary frames China FMCG market and 7-year tracking series.",
          "position": 1,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        }
      ],
      "loops": [
        {
          "to": 9,
          "from": 5,
          "loop": {
            "name": "41_so_what_cascade",
            "slug": "41-so-what-cascade",
            "status": "active",
            "bestFor": "Data presentations, executive summaries, driving to recommendations",
            "canonId": "019dd956-769f-7208-afbc-f28985c6f4fb",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Data -> So What? (Insight 1) -> So What? (Insight 2) -> So What? (The Action)",
            "description": "Chain insights together, each answering 'so what?' until you reach the actionable conclusion",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-b6ebb600cb68",
          "evidence": "Exec summary states 4.3% rebound, then 'how retailers can win' wraps with 'Prepare for New Retail.'",
          "position": 1,
          "objective": "Front-load the thesis: data → premiumization insight → how to win",
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 7,
      "type": "analysis",
      "title": "The slide discusses the 'two-speed phenomenon' in consumer spending linked to income growth and channel shifts.",
      "function": "establish_context",
      "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": "establish_context",
        "functionCanon": {
          "name": "Establish context",
          "slug": "establish_context",
          "status": "active",
          "canonId": "019de52d-1314-74e6-9074-d213dc0bdcdf",
          "version": 1,
          "description": null
        },
        "density": "overcrowded",
        "densityScore": 83,
        "componentCount": 8,
        "textChars": 1940,
        "nDataPoints": 6,
        "notes": "The slide discusses the 'two-speed phenomenon' in consumer spending linked to income growth and channel shifts.",
        "elementsJson": [
          "photo",
          "paragraph"
        ],
        "confidence": 0.9,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:14.949+00",
          "seconds": 8.044,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/7",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-7",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "After rapid expansion since 2013, China's O2O market continued to grow by around 30% in 2017, with much of that expansion due to O2O services to homes, such as food and delivery, which grew at an astonishing 76% rate.",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-4daeb56a11ca",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.348,
            "w": 0.59,
            "x": 0.105,
            "y": 0.122
          },
          "kind": "image",
          "text": "Person using a mobile phone for shopping",
          "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": "Photo",
              "slug": "photo",
              "status": "active",
              "canonId": "019de52c-fd37-757f-b4a8-ca26d4888875",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "photo",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:14.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cc97a7ae-b288-49af-a7c2-03ee14ff7cb0",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "sales growth: 76%",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-50bb2f7b94e1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.165,
            "w": 0.59,
            "x": 0.105,
            "y": 0.621
          },
          "kind": "paragraph",
          "text": "For at-home consumption, hypermarkets continued to lose in popularity, with sales dropping by 2.5% as more consumers abandon their trips to big-box stores in favor of more convenient shopping options. Super- and minimarkets saw their sales grow by 4.8%, partly due to their role in the booming online-to-offline (O2O) delivery services. Traditional groceries continued to lose ground—sales declined by 5.4%. And, in a surprising finding, convenience stores, which posted high growth for the past five years, grew by only about 2%, the victims of expansion economics and competition from O2O delivery. Despite this growth slowdown for at-home consumption, convenience stores have vast opportunities to serve the expanding market for food and beverages sold for out-of-home consumption, which grew by 6.2% in 2017, based on the 10 food and beverage categories we tracked for China’s Tier-1 and Tier-2 cities.",
          "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:36:14.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "50a99e55-6168-4afa-81be-1c24d4ffd90a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.057,
            "w": 0.59,
            "x": 0.105,
            "y": 0.503
          },
          "kind": "paragraph",
          "text": "This two-speed phenomenon across categories can easily be understood by looking at average income growth per capita and assuming a normal distribution of income.",
          "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:36:14.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "64b5c404-a2e5-4a64-a96e-167b38c03ab6",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.085,
            "w": 0.59,
            "x": 0.105,
            "y": 0.783
          },
          "kind": "paragraph",
          "text": "After rapid expansion since 2013, China’s O2O market continued to grow by around 30% in 2017, with much of that expansion due to O2O services to homes, such as food and delivery, which grew at an astonishing 76% rate, according to iResearch. Competition has increasingly intensified, fueled by mergers, partnerships with e-commerce giants and the entry of DiDi, the car-hailing service platform. The company recently announced its plan to enter the O2O delivery market, launching a pilot program in Wuxi.",
          "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:36:14.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f42b143f-cbfb-43d9-be19-24f8212be9af",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.018,
            "w": 0.155,
            "x": 0.105,
            "y": 0.588
          },
          "kind": "title",
          "text": "Changing channels",
          "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:36:14.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cfe2964a-719d-4f33-90a4-b5874f08cdb2",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.012,
            "w": 0.382,
            "x": 0.209,
            "y": 0.062
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:14.949+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "712b6844-137a-46e4-8fe4-84582bbf5753",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "sales growth",
          "numberRaw": "76%",
          "numberKind": "percent",
          "actionTitle": null,
          "calloutText": "After rapid expansion since 2013, China's O2O market continued to grow by around 30% in 2017, with much of that expansion due to O2O services to homes, such as food and delivery, which grew at an astonishing 76% rate.",
          "numberScale": null,
          "numberValue": 76,
          "metricFamily": "growth_rate",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811e-aac4e1336832",
          "evidence": "'Changing channels' frames the section.",
          "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": 68,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "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": "019dd95a-16c4-7148-811e-ac71cc9a1a84",
          "evidence": "O2O grew ~30% in 2017 with food/delivery the standout.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 72,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 7,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 9,
          "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": 7,
          "name": "Problem & Complication",
          "beatId": "019dd95a-0702-74a3-87e6-5fb46af1ac33",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Problem & Complication",
            "slug": "consultants-gambit-problem-complication",
            "status": "active",
            "canonId": "019dd9b8-064a-777f-a374-e9a8c43dedd4",
            "version": 1,
            "description": null
          },
          "evidence": "Channels shifting, local brands captured 98% of growth — sets the 'how to win' question.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Complication",
            "slug": "complication",
            "status": "active",
            "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
            "version": 1,
            "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        }
      ],
      "loops": [
        {
          "to": 9,
          "from": 5,
          "loop": {
            "name": "41_so_what_cascade",
            "slug": "41-so-what-cascade",
            "status": "active",
            "bestFor": "Data presentations, executive summaries, driving to recommendations",
            "canonId": "019dd956-769f-7208-afbc-f28985c6f4fb",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Data -> So What? (Insight 1) -> So What? (Insight 2) -> So What? (The Action)",
            "description": "Chain insights together, each answering 'so what?' until you reach the actionable conclusion",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-b6ebb600cb68",
          "evidence": "Exec summary states 4.3% rebound, then 'how retailers can win' wraps with 'Prepare for New Retail.'",
          "position": 1,
          "objective": "Front-load the thesis: data → premiumization insight → how to win",
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 8,
      "type": "setup",
      "title": "This is a text-heavy summary slide from a Bain & Company report.",
      "function": "summarize",
      "rawType": "executive_summary",
      "block": null,
      "metadata": {
        "slideType": "executive_summary",
        "slideTypeCanon": {
          "name": "Executive summary",
          "slug": "executive_summary",
          "status": "active",
          "canonId": "019de52d-06be-73ff-81b3-f99fe7f0025e",
          "version": 1,
          "description": null
        },
        "function": "summarize",
        "functionCanon": {
          "name": "Summarize",
          "slug": "summarize",
          "status": "active",
          "canonId": "019de52d-1541-704f-b86f-bf7b75056373",
          "version": 1,
          "description": null
        },
        "density": "overcrowded",
        "densityScore": 92,
        "componentCount": 11,
        "textChars": 1799,
        "nDataPoints": 8,
        "notes": "This is a text-heavy summary slide from a Bain & Company report.",
        "elementsJson": [
          "paragraph",
          "bullet_list"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:10.413+00",
          "seconds": 3.477,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/8",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-8",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Local brands grew by 7.7% in 2017, capturing a 98% share of market growth, while foreign brands increased by 0.4%.",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-175fbff743ab",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.12,
            "w": 0.8,
            "x": 0.1,
            "y": 0.37
          },
          "kind": "list",
          "text": "Skin care, makeup, facial tissue, toilet tissue, shampoo, diapers, infant formula and biscuits have high online penetration and a strong upward trend. Beer, carbonated soft drinks and chewing gum have a low online penetration. A middle cluster of categories is being aggressively promoted.",
          "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:36:10.413+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "84dff3b9-b097-4443-a3ee-a7ce07ec6963",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "online sales growth: 28%",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-19bfda2138c8",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.8,
            "x": 0.1,
            "y": 0.12
          },
          "kind": "paragraph",
          "text": "The out-of-home market clearly continues to be an opportunity for FMCG companies selling in China. Forward-thinking retailers such as Hema and Yonghui are inventing new ways to capture the out-of-home market through such moves as creating massive in-store dining areas.",
          "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:36:10.413+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "2ebab5a7-36a7-4e39-96b7-18685f75fa73",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.1,
            "y": 0.54
          },
          "kind": "paragraph",
          "text": "Local brands grew by 7.7% in 2017, capturing a 98% share of market growth, while foreign brands increased by 0.4%. Local brands won share over foreign brands in 21 categories, while foreign brands gained share in only 4 categories.",
          "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:36:10.413+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "3058e83b-971f-4938-adcb-af957fcc9e64",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.8,
            "x": 0.1,
            "y": 0.8
          },
          "kind": "paragraph",
          "text": "Take advantage of channel dynamics and anticipate future retail consolidation. Brands can invest to capture the steady growth of online sales, follow consumers into alternative channels, and make the most of the dramatic changes in offline channels.",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "5f2affc0-941d-4d07-959d-4bfc1930cea4",
              "version": 1,
              "description": "Single prose block in the body of a slide."
            },
            "tool": null,
            "subkind": {
              "name": "Paragraph",
              "slug": "paragraph",
              "status": "active",
              "canonId": "019de52c-fb80-75af-aa5c-a7a4bfac2433",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "paragraph",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:10.413+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4a3690e4-68be-4ba2-a216-9236c537a49a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.1,
            "y": 0.28
          },
          "kind": "paragraph",
          "text": "Our research shows that online penetration growth is shifting from higher-tier to lower-tier cities. At 73%, Tier-1 cities still have the highest online penetration. Yet lower-tier cities are catching up: Online penetration in Tier-3 and Tier-4 cities is growing at 18% and 17% annually, respectively.",
          "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:36:10.413+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b6885fa9-35a5-4c2c-9878-c75515133fd9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.8,
            "x": 0.1,
            "y": 0.21
          },
          "kind": "paragraph",
          "text": "As expected, online sales sustained strong momentum in 2017, growing by more than 28%. Online channels now represent about 10% of the market—twice as much as two years ago.",
          "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:36:10.413+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "fb976a26-8696-4d49-bd8f-6f97f4989d24",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.8,
            "x": 0.1,
            "y": 0.05
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:10.413+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "546f56bb-da41-4016-b96f-8e810915fb53",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.8,
            "x": 0.1,
            "y": 0.76
          },
          "kind": "title",
          "text": "How brands can win",
          "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:36:10.413+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8177b2fc-e994-4667-ae4f-c99b940faf30",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.8,
            "x": 0.1,
            "y": 0.5
          },
          "kind": "title",
          "text": "The continuing battle between local and foreign brands",
          "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:36:10.413+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a7d7623b-3483-4758-b5cf-2f340164486c",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "online sales growth",
          "numberRaw": "28%",
          "numberKind": "percent",
          "actionTitle": "As Shoppers Upgrade, Growth Returns",
          "calloutText": "Local brands grew by 7.7% in 2017, capturing a 98% share of market growth, while foreign brands increased by 0.4%.",
          "numberScale": null,
          "numberValue": 28,
          "metricFamily": "growth_rate",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811e-b228ab77fcb1",
          "evidence": "Callout: 'Local brands grew 7.7%, capturing 98% share of market 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": 72,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "Audience frame",
            "slug": "audience-frame",
            "status": "active",
            "bestFor": null,
            "canonId": "2a1eefbd-5be8-4600-898b-49dbfcf73ec8",
            "version": 1,
            "bodyDocId": null,
            "description": "Tools for modelling and segmenting the audience (persona, JTBD, segmentation).",
            "familyLabel": null,
            "categoryName": null,
            "categorySlug": null
          },
          "agent": null,
          "layer": "slide",
          "agents": null,
          "matchId": "2899c36c-42a5-42d7-b449-27806d950b90",
          "evidence": "The report provides insights on local and foreign brands and their growth trends.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:08:58.453909+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 8,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": "optional",
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Data Story Arc",
            "slug": "data-story-arc",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-9c30-728e-b974-d3fb123dcf5a",
            "version": 1,
            "bodyDocId": null,
            "description": "Context → Conflict → Insight → Implication structure for data narratives",
            "familyLabel": null,
            "categoryName": "Loop",
            "categorySlug": "loop"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "62e10375-b55f-410d-9e4b-3e81448b2110",
          "evidence": "The report presents data on online sales growth and its impact on the FMCG market.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:08:58.49073+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 8,
          "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": "019dd95a-16c4-7148-811e-b56ebd8723db",
          "evidence": "Stat directly answers 'why this matters' for foreign brands.",
          "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-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 8,
          "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": [],
      "arcBeats": [
        {
          "to": 9,
          "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": 7,
          "name": "Problem & Complication",
          "beatId": "019dd95a-0702-74a3-87e6-5fb46af1ac33",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Problem & Complication",
            "slug": "consultants-gambit-problem-complication",
            "status": "active",
            "canonId": "019dd9b8-064a-777f-a374-e9a8c43dedd4",
            "version": 1,
            "description": null
          },
          "evidence": "Channels shifting, local brands captured 98% of growth — sets the 'how to win' question.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Complication",
            "slug": "complication",
            "status": "active",
            "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
            "version": 1,
            "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        }
      ],
      "loops": [
        {
          "to": 9,
          "from": 5,
          "loop": {
            "name": "41_so_what_cascade",
            "slug": "41-so-what-cascade",
            "status": "active",
            "bestFor": "Data presentations, executive summaries, driving to recommendations",
            "canonId": "019dd956-769f-7208-afbc-f28985c6f4fb",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Data -> So What? (Insight 1) -> So What? (Insight 2) -> So What? (The Action)",
            "description": "Chain insights together, each answering 'so what?' until you reach the actionable conclusion",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-b6ebb600cb68",
          "evidence": "Exec summary states 4.3% rebound, then 'how retailers can win' wraps with 'Prepare for New Retail.'",
          "position": 1,
          "objective": "Front-load the thesis: data → premiumization insight → how to win",
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 9,
      "type": "resolution",
      "function": "recommend",
      "rawType": "recommendation",
      "block": null,
      "metadata": {
        "slideType": "recommendation",
        "slideTypeCanon": {
          "name": "Recommendation",
          "slug": "recommendation",
          "status": "active",
          "canonId": "019de52d-0c35-718b-8bbb-772a56a31ecd",
          "version": 1,
          "description": null
        },
        "function": "recommend",
        "functionCanon": {
          "name": "Recommend",
          "slug": "recommend",
          "status": "active",
          "canonId": "019de52d-1609-764f-9882-9ef3ede71d8b",
          "version": 1,
          "description": null
        },
        "density": "overcrowded",
        "densityScore": 77,
        "componentCount": 8,
        "textChars": 1835,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "paragraph"
        ],
        "confidence": 0.9,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:16.324+00",
          "seconds": 9.355,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/9",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-9",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Prepare for New Retail.",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-3da55fe896f1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.79,
            "x": 0.105,
            "y": 0.385
          },
          "kind": "list",
          "text": "Another important step involves integrating inventory and supply chain management with e-commerce retailers or solution platforms. Retailers could improve the cost and efficiency of capabilities such as warehouse management, inventory planning and last-mile delivery.",
          "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:36:16.324+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "41895568-42e7-4950-94e8-7d97ca090628",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.79,
            "x": 0.105,
            "y": 0.445
          },
          "kind": "list",
          "text": "Redesign store portfolio and formats to better capture customers' needs. Retailers could optimize their shelf space and create more occasion- or experience-based space (e.g., in-store dining) to improve customer stickiness and make the most of the growing popularity of out-of-home consumption.",
          "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:36:16.324+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8b4bc816-ca03-4137-95e1-b6f0ed82c5e7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.085,
            "w": 0.79,
            "x": 0.105,
            "y": 0.29
          },
          "kind": "list",
          "text": "Prepare for New Retail. As illustrated by the recent alliance between Sun Art and Alibaba, traditional retailers should prepare themselves for New Retail. For example, they can use data analytics to link shopper profiles with shopper behaviors as a way of increasing store traffic, improving churn management and offering more targeted promotions to boost margins.",
          "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:36:16.324+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "cacbf38f-6326-4438-91a9-152c135fe46f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.79,
            "x": 0.105,
            "y": 0.505
          },
          "kind": "list",
          "text": "Make the store experience attractive again. Finally, stores should invest in digitalization, with such innovations as augmented reality, digital price tags, \"magic mirrors\" and sampling machines, to create better in-store experiences and a higher level of interaction and engagement with shoppers.",
          "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:36:16.324+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d9d6dd7b-3f2b-4fc2-8846-5d563e943a99",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.065,
            "w": 0.79,
            "x": 0.105,
            "y": 0.125
          },
          "kind": "paragraph",
          "text": "Develop high-value and personalized products to make the most of the premiumization trend. As China's consumers become more sophisticated, they place more value on premium products that better meet consumer needs. And multinationals should continue to push imports from their other markets.",
          "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:36:16.324+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7ff67521-7b49-46c1-865b-2a0d61c4a27d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.79,
            "x": 0.105,
            "y": 0.195
          },
          "kind": "paragraph",
          "text": "Become data-driven, consumer-centric companies. For example, they can generate proprietary consumer data to enable product innovation, pricing and promotion strategies. They can build the new capabilities and culture required to deliver this new consumer-centric operating model.",
          "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:36:16.324+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ed09bc34-0a36-4592-ba18-3f50f39cf5fc",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.022,
            "w": 0.297,
            "x": 0.105,
            "y": 0.255
          },
          "kind": "title",
          "text": "How retailers can win",
          "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:36:16.324+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4aab7896-9592-4df6-8b6d-9b642b8a0dec",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "The Rule of Three",
            "slug": "the-rule-of-three",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-8962-75cf-b4f8-9394501a6f33",
            "version": 1,
            "bodyDocId": null,
            "description": "Ideas presented in threes are more memorable and satisfying",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "block",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019dd95a-16c4-7148-811e-c28d25c9057d",
          "evidence": "Brand plays presented as three bolded patterns (high-value, data-driven, channel).",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "019dd95a-16c4-7148-811e-bb6d967e3e78",
          "evidence": "Section header 'How retailers can win' + bolded plays ('Prepare for New Retail').",
          "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": 78,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "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": "019dd95a-16c4-7148-811e-bf1cbe9495da",
          "evidence": "Recommendation block functions as a CTA close to the front-loaded summary.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 9,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 9,
          "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": 7,
          "name": "Problem & Complication",
          "beatId": "019dd95a-0702-74a3-87e6-5fb46af1ac33",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Problem & Complication",
            "slug": "consultants-gambit-problem-complication",
            "status": "active",
            "canonId": "019dd9b8-064a-777f-a374-e9a8c43dedd4",
            "version": 1,
            "description": null
          },
          "evidence": "Channels shifting, local brands captured 98% of growth — sets the 'how to win' question.",
          "position": 2,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Complication",
            "slug": "complication",
            "status": "active",
            "canonId": "019dd9b8-0275-7709-b2d6-4f77c3fc7579",
            "version": 1,
            "description": "The point in the narrative where the audience should feel discomfort. Required for argumentative arcs."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        }
      ],
      "loops": [
        {
          "to": 9,
          "from": 5,
          "loop": {
            "name": "41_so_what_cascade",
            "slug": "41-so-what-cascade",
            "status": "active",
            "bestFor": "Data presentations, executive summaries, driving to recommendations",
            "canonId": "019dd956-769f-7208-afbc-f28985c6f4fb",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Data -> So What? (Insight 1) -> So What? (Insight 2) -> So What? (The Action)",
            "description": "Chain insights together, each answering 'so what?' until you reach the actionable conclusion",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-b6ebb600cb68",
          "evidence": "Exec summary states 4.3% rebound, then 'how retailers can win' wraps with 'Prepare for New Retail.'",
          "position": 1,
          "objective": "Front-load the thesis: data → premiumization insight → how to win",
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 10,
      "type": "analysis",
      "title": "The slide includes a specific chart (Figure 1) showing growth trends for Total FMCG, Food and beverage, and Personal and home care from 2011 to 2017.",
      "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": 67,
        "componentCount": 7,
        "textChars": 732,
        "nDataPoints": 12,
        "notes": "The slide includes a specific chart (Figure 1) showing growth trends for Total FMCG, Food and beverage, and Personal and home care from 2011 to 2017.",
        "elementsJson": [
          "paragraph",
          "line_chart",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:13.352+00",
          "seconds": 6.299,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/10",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-10",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "The major reason for the rebound: Average selling prices rose by 4% in 2017, offsetting stagnant volume growth.",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba63-f7237285ea53",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.79,
            "x": 0.105,
            "y": 0.6
          },
          "kind": "chart",
          "text": "Annual growth of urban shoppers' spending on fast-moving consumer goods",
          "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:36:13.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "801b3943-4897-4145-99c6-4a4ff7c3ebb2",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "FMCG value growth: 4.3%",
          "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 12:57:30+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba63-fb1821da5303",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.79,
            "x": 0.105,
            "y": 0.218
          },
          "kind": "paragraph",
          "text": "China's market for fast-moving consumer goods (FMCG) rebounded in 2017, with total value growing by 4.3% compared with 3.6% in 2016. This represents the first time since we began tracking China's shopper behaviors in which sales grew faster than the previous 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:36:13.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6fe7248b-4f36-428b-a2e8-95314df373d2",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.79,
            "x": 0.105,
            "y": 0.87
          },
          "kind": "source-note",
          "text": "Note: Kantar excluded cigarettes from total FMCG and slightly updated all category data in 2017, leading to minor changes when refreshed with previous years' data. Sources: Kantar Worldpanel; Bain & Company",
          "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:36:13.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "e2d59b96-66e6-40f4-82c4-0660f6b19d1f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.45,
            "x": 0.105,
            "y": 0.183
          },
          "kind": "title",
          "text": "Growth rebounds across FMCG product categories",
          "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:36:13.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "271c7f9e-bea2-47ec-924f-404567d8143a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.12,
            "x": 0.105,
            "y": 0.125
          },
          "kind": "title",
          "text": "Full 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:36:13.352+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4d492d01-e2ea-4ea4-bd55-850ffc2e85f1",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "FMCG value growth",
          "numberRaw": "4.3%",
          "numberKind": "percent",
          "actionTitle": "Growth rebounds across FMCG product categories",
          "calloutText": "The major reason for the rebound: Average selling prices rose by 4% in 2017, offsetting stagnant volume growth.",
          "numberScale": null,
          "numberValue": 4.3,
          "metricFamily": "growth_rate",
          "numberCurrency": 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": "019dd95a-16c4-7148-811e-d6a5d65d083f",
          "evidence": "Four sectors (food, beverage, personal care, home care) cover 80% of FMCG.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 72,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 10,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Horizontal Logic",
            "slug": "horizontal-logic",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-9a85-7199-aaa6-4314cd50dcfa",
            "version": 1,
            "bodyDocId": null,
            "description": "Logical grouping at the same level - items must relate coherently",
            "familyLabel": null,
            "categoryName": "Loop",
            "categorySlug": "loop"
          },
          "agent": "Architect",
          "layer": "loop",
          "agents": [
            "Architect"
          ],
          "matchId": "019dd95a-16c4-7148-811e-d16f2987d39c",
          "evidence": "Categories sit at the same level of abstraction within FMCG aggregate.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "019dd95a-16c4-7148-811e-c4080746cabb",
          "evidence": "'Growth rebounds across FMCG product categories' states the 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": 82,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "019dd95a-16c4-7148-811e-ca5fd63e5b47",
          "evidence": "Bar chart with category-level CAGRs.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 10,
          "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": "019dd95a-16c4-7148-811e-cf61a197decb",
          "evidence": "Bain charts strip gridlines and 3D effects.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 10,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 15,
          "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": 10,
          "name": "Solution & Approach",
          "beatId": "019dd95a-0702-74a3-87e6-60a90fe6abec",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Solution & Approach",
            "slug": "consultants-gambit-solution-approach",
            "status": "active",
            "canonId": "019dd9b8-071c-7161-9184-580fdac7a4f9",
            "version": 1,
            "description": null
          },
          "evidence": "Premiumization analysis (4% price rise) plus 2x2 of price vs volume strategies.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 13,
          "from": 10,
          "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": "019dd95a-088c-724c-b311-b8ec761c98d8",
          "evidence": "Aggregate growth → packaged food vs beverage vs personal care vs home care, each with own dynamics.",
          "position": 2,
          "objective": "Decompose aggregate FMCG growth across the four product sectors",
          "confidence": 82,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 11,
      "type": "analysis",
      "title": "The slide contains two figures (Figure 2 and Figure 3) each with three sub-charts. Figure 3 adds a 'growth without e-commerce' indicator.",
      "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": "dense",
        "densityScore": 61,
        "componentCount": 7,
        "textChars": 505,
        "nDataPoints": 30,
        "notes": "The slide contains two figures (Figure 2 and Figure 3) each with three sub-charts. Figure 3 adds a 'growth without e-commerce' indicator.",
        "elementsJson": [
          "bar_chart_vertical",
          "bar_chart_vertical",
          "bar_chart_vertical",
          "bar_chart_vertical",
          "bar_chart_vertical",
          "bar_chart_vertical",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:10.736+00",
          "seconds": 3.584,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/11",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-11",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Without e-commerce, total FMCG growth would have been much lower",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-a10e1e9d5736",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.8,
            "x": 0.1,
            "y": 0.595
          },
          "kind": "chart",
          "text": "Figure 3: Annual growth of urban FMCG market value, volume, and average selling price (2012-17) with e-commerce impact",
          "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:36:10.736+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "23dcbc25-bc51-4ea7-b661-a419e78e0f20",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.8,
            "x": 0.1,
            "y": 0.19
          },
          "kind": "chart",
          "text": "Figure 2: Annual growth of urban FMCG market value, volume, and average selling price (2012-17)",
          "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:36:10.736+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b0eaa93c-085c-4248-87d3-c539b93190bc",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Annual growth: 4.3",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-a777bc7a27cf",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.5,
            "x": 0.1,
            "y": 0.87
          },
          "kind": "source-note",
          "text": "Sources: Kantar Worldpanel; Bain & Company; National Bureau of Statistics of China",
          "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:36:10.736+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "e9b91fab-2c88-493e-8efa-f383f476a8d9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.7,
            "x": 0.13,
            "y": 0.145
          },
          "kind": "title",
          "text": "Rising average selling prices boosted overall FMCG market 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": "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:36:10.736+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a05bb381-a8b8-4548-8237-394da97d93d3",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.7,
            "x": 0.13,
            "y": 0.55
          },
          "kind": "title",
          "text": "Without e-commerce, total FMCG growth would have been much lower",
          "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:36:10.736+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c19b1424-1906-4e2f-81b9-37e3aab01866",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "Annual growth",
          "numberRaw": "4.3",
          "numberKind": "plain",
          "actionTitle": "Rising average selling prices boosted overall FMCG market growth",
          "calloutText": "Without e-commerce, total FMCG growth would have been much lower",
          "numberScale": null,
          "numberValue": 4.3,
          "metricFamily": "growth_rate",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811e-da788335cb57",
          "evidence": "'Rising average selling prices boosted overall FMCG market growth' is the 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-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "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": "019dd95a-16c4-7148-811e-e5a117eed0e2",
          "evidence": "Red arrow annotates the 3.6→4.3 rebound on Value chart.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 78,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 11,
          "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": "019dd95a-16c4-7148-811e-e1e62d872d3e",
          "evidence": "Greyscale bars with red trend arrow draws eye to 4.3% rebound and 4.0 ASP.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 11,
          "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": "019dd95a-16c4-7148-811e-ddaaab62b0e8",
          "evidence": "Three side-by-side bar panels: Value / Volume / Average selling price, repeated for two figures.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 11,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "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": "019dd95a-16c4-7148-811e-eabe99720787",
          "evidence": "Single red arrow in otherwise-grey palette stands out.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 11,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019dd95a-1d21-7467-a462-617328cb5906",
          "evidence": "Three panels labelled 'Value', 'Volume', 'Average selling price' decompose growth.",
          "framework": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:34.940444+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 11,
          "frameworkName": "Value-Volume-Price Decomposition"
        }
      ],
      "arcBeats": [
        {
          "to": 15,
          "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": 10,
          "name": "Solution & Approach",
          "beatId": "019dd95a-0702-74a3-87e6-60a90fe6abec",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Solution & Approach",
            "slug": "consultants-gambit-solution-approach",
            "status": "active",
            "canonId": "019dd9b8-071c-7161-9184-580fdac7a4f9",
            "version": 1,
            "description": null
          },
          "evidence": "Premiumization analysis (4% price rise) plus 2x2 of price vs volume strategies.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 13,
          "from": 10,
          "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": "019dd95a-088c-724c-b311-b8ec761c98d8",
          "evidence": "Aggregate growth → packaged food vs beverage vs personal care vs home care, each with own dynamics.",
          "position": 2,
          "objective": "Decompose aggregate FMCG growth across the four product sectors",
          "confidence": 82,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 12,
      "type": "analysis",
      "title": "Includes a note about methodology regarding cigarette exclusion and data updates.",
      "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": "overcrowded",
        "densityScore": 96,
        "componentCount": 11,
        "textChars": 2510,
        "nDataPoints": 30,
        "notes": "Includes a note about methodology regarding cigarette exclusion and data updates.",
        "elementsJson": [
          "paragraph",
          "bar_chart_grouped",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:11.723+00",
          "seconds": 4.488,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/12",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-12",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "In the food and beverage sectors, the value growth of the packaged food categories outpaced that of beverages; packaged food's annual growth rose from 1.3% in 2016 to 3% in 2017.",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-76dab6c0fbbb",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.25,
            "x": 0.643,
            "y": 0.6
          },
          "kind": "chart",
          "text": "Annual growth of urban FMCG average selling price (2012-17)",
          "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:36:11.723+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "27305033-7691-4c27-a99d-f8c044af7297",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.25,
            "x": 0.375,
            "y": 0.6
          },
          "kind": "chart",
          "text": "Annual growth of urban FMCG market volume (kg/L growth, 2012-17)",
          "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:36:11.723+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5eb7e135-fbdb-46c5-9f8b-9781dbc4a527",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.25,
            "x": 0.107,
            "y": 0.6
          },
          "kind": "chart",
          "text": "Annual growth of urban FMCG market value (2012-17)",
          "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:36:11.723+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ca23d20f-a11f-490a-86df-75291b2235a5",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Annual growth rate: 3%",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-792e4dbdca70",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.085,
            "w": 0.786,
            "x": 0.107,
            "y": 0.273
          },
          "kind": "paragraph",
          "text": "As China's two-speed growth trajectories continued in 2017, the distinctions between the two were becoming increasingly apparent. For example, mouthwash grew at an impressive 48.6% rate, and pet food by 17.5%—signs of Chinese consumers' desire to improve their health and lifestyle (see Figure 6). At the other end of the spectrum, MSG (monosodium glutamate) value dropped by 10.2%—further evidence of expanding health awareness.",
          "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:36:11.723+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "0b9702cb-3ca2-420b-9fa8-c03732bb7d1b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.135,
            "w": 0.786,
            "x": 0.107,
            "y": 0.363
          },
          "kind": "paragraph",
          "text": "In fact, the biggest theme emerging from the 2017 China Shopper survey may be the extent to which consumers are advancing in their efforts to live healthier and more enjoyable lives. From silicone-free shampoo to not-from-concentrate (NFC) juice that's more natural and nutritious, Chinese consumers are spending more on premium goods that deliver health benefits or elevate their lifestyle. Increasingly, they can afford it: Disposable household income per capita has grown at a compound annual rate of 8.2% over the past six years. Much of the growth comes from the southwest and central provinces as industries shift inland from the coast. These provinces continue to outperform the coastal provinces in terms of FMCG spending growth, as more consumers become premium buyers (see Figure 7).",
          "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:36:11.723+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b7cdf97a-c95e-4ca2-9cc7-e20cea6f81bc",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.055,
            "w": 0.786,
            "x": 0.107,
            "y": 0.123
          },
          "kind": "paragraph",
          "text": "In the food and beverage sectors, the value growth of the packaged food categories outpaced that of beverages; packaged food's annual growth rose from 1.3% in 2016 to 3% in 2017. By contrast, the beverage categories' rate of growth rose from 2.3% to just 2.6% (see Figure 4).",
          "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:36:11.723+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "e0736e67-67a5-4ed3-a65c-39fc72c87d4a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.075,
            "w": 0.786,
            "x": 0.107,
            "y": 0.193
          },
          "kind": "paragraph",
          "text": "A similar divergence took place in personal care and home care. Personal care categories registered a strong growth rate of 9.5% in 2017, largely due to average selling prices that gained 7.9%. But in home care, flat volume and low price growth combined to deliver shrinking value growth, which rose by 2.1% compared with 3.5% a year earlier (see Figure 5).",
          "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:36:11.723+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f2bdfc9f-09d7-4a17-97c1-6dd0482924b4",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.786,
            "x": 0.107,
            "y": 0.87
          },
          "kind": "source-note",
          "text": "Note: Kantar excluded cigarettes from total FMCG and slightly updated all category data in 2017, leading to minor changes when refreshed with previous years' data. Sources: Kantar Worldpanel; Bain & Company",
          "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:36:11.723+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "aaad761c-ffd2-4884-8e45-56d254b0d22f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.035,
            "w": 0.786,
            "x": 0.107,
            "y": 0.553
          },
          "kind": "title",
          "text": "In 2017, packaged food started to rebound, while beverage growth was stagnant",
          "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:36:11.723+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1489a457-23f0-4737-9ac2-f79745914dad",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "Annual growth rate",
          "numberRaw": "3%",
          "numberKind": "percent",
          "actionTitle": "In 2017, packaged food started to rebound, while beverage growth was stagnant",
          "calloutText": "In the food and beverage sectors, the value growth of the packaged food categories outpaced that of beverages; packaged food's annual growth rose from 1.3% in 2016 to 3% in 2017.",
          "numberScale": null,
          "numberValue": 3,
          "metricFamily": "growth_rate",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811e-f35baae0ddc1",
          "evidence": "Food rebound vs beverage stagnation framed in title.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 12,
          "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": "019dd95a-16c4-7148-811e-ee23ba79200c",
          "evidence": "'Packaged food started to rebound, while beverage growth was stagnant.'",
          "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": 80,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 12,
          "whyItWorks": "Solves two failure modes at once. (1) The buried claim: action titles place the conclusion on the page before any analysis is read, so a busy reader doesn't reverse-engineer it from the chart. (2) The spineless deck: because each title is a claim, slides have to ladder up to the governing thought; logical gaps become visible as topic-shaped titles in a sequence that no longer reads as a story.",
          "antipattern": "Topic labels disguised as titles — Volume by quarter, Key findings, Pricing strategy, Margins have been impacted. No verb, or a passive verb with no agent, or a fact (Revenue grew 12%) without the so-what. Also: titles that overreach the chart's evidence, multi-claim X-grew-but-Y-fell welded titles, and mechanical repetition of the same X-drove-Y template across the deck.",
          "cardinality": null,
          "narrativePurpose": "Forces the deck to carry its argument in the title bar so a senior reader can extract the recommendation without opening a single slide; converts a binder of topics into a navigable pyramid where every slide is a node defending the apex."
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 15,
          "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": 10,
          "name": "Solution & Approach",
          "beatId": "019dd95a-0702-74a3-87e6-60a90fe6abec",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Solution & Approach",
            "slug": "consultants-gambit-solution-approach",
            "status": "active",
            "canonId": "019dd9b8-071c-7161-9184-580fdac7a4f9",
            "version": 1,
            "description": null
          },
          "evidence": "Premiumization analysis (4% price rise) plus 2x2 of price vs volume strategies.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 13,
          "from": 10,
          "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": "019dd95a-088c-724c-b311-b8ec761c98d8",
          "evidence": "Aggregate growth → packaged food vs beverage vs personal care vs home care, each with own dynamics.",
          "position": 2,
          "objective": "Decompose aggregate FMCG growth across the four product sectors",
          "confidence": 82,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 13,
      "type": "analysis",
      "title": "Contains two distinct figures (Figure 5 and Figure 6) on one page.",
      "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": "overcrowded",
        "densityScore": 76,
        "componentCount": 9,
        "textChars": 577,
        "nDataPoints": 60,
        "notes": "Contains two distinct figures (Figure 5 and Figure 6) on one page.",
        "elementsJson": [
          "headline_text",
          "bar_chart_grouped",
          "bar_chart_vertical",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:13.943+00",
          "seconds": 6.706,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/13",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-13",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.025,
            "w": 0.48,
            "x": 0.26,
            "y": 0.845
          },
          "kind": "callout",
          "text": "Factors for high speed are lifestyle, health and wellness, enabled by higher income",
          "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:36:13.943+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "48d9a84c-fa81-44da-929b-b391bfd10c44",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.788,
            "x": 0.106,
            "y": 0.195
          },
          "kind": "chart",
          "text": "Figure 5 charts (Value, Volume, Average selling price)",
          "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:36:13.943+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "02164933-6990-4c3c-a422-bf617cdebca5",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.18,
            "w": 0.788,
            "x": 0.106,
            "y": 0.625
          },
          "kind": "chart",
          "text": "Figure 6: Value growth rate (2015-17)",
          "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:36:13.943+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d9f45127-2bf1-4aa9-8547-5a05b5646ad2",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Annual growth rate: 48.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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-e35a7d3e59e9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.015,
            "w": 0.3,
            "x": 0.106,
            "y": 0.475
          },
          "kind": "source-note",
          "text": "Sources: Kantar Worldpanel; Bain & Company",
          "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:36:13.943+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7aed254e-3c8f-4ae8-8d58-19850e84d95f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.015,
            "w": 0.3,
            "x": 0.106,
            "y": 0.88
          },
          "kind": "source-note",
          "text": "Sources: Kantar Worldpanel; Bain & Company",
          "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:36:13.943+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "db7363f9-6c89-489c-b9a5-bd254f059f3a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.035,
            "w": 0.788,
            "x": 0.106,
            "y": 0.525
          },
          "kind": "title",
          "text": "Figure 6: China's two-speed growth trajectories continued, with distinctly different performances",
          "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:36:13.943+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "33308bfd-e11e-4ab0-9248-f8357fdd57da",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.015,
            "w": 0.584,
            "x": 0.208,
            "y": 0.062
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:13.943+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "61099d0b-73dc-4464-8c06-8bcbd92a14b7",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.035,
            "w": 0.788,
            "x": 0.106,
            "y": 0.135
          },
          "kind": "title",
          "text": "Figure 5: Rising average selling prices led to strong growth in personal care, while flat sales volume slowed home care",
          "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:36:13.943+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f99140a2-cf68-467c-8884-84d63391f676",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "Annual growth rate",
          "numberRaw": "48.6%",
          "numberKind": "percent",
          "actionTitle": "Rising average selling prices led to strong growth in personal care, while flat sales volume slowed home care",
          "calloutText": "Factors for high speed are lifestyle, health and wellness, enabled by higher income",
          "numberScale": null,
          "numberValue": 48.6,
          "metricFamily": "growth_rate",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811e-f9a03d49cb97",
          "evidence": "Personal care rising prices vs flat home care volumes.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 72,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 13,
          "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": "019dd95a-16c4-7148-811e-f42476af6685",
          "evidence": "Title contrasts personal care growth vs home care slowdown.",
          "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": 80,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 13,
          "whyItWorks": "Solves two failure modes at once. (1) The buried claim: action titles place the conclusion on the page before any analysis is read, so a busy reader doesn't reverse-engineer it from the chart. (2) The spineless deck: because each title is a claim, slides have to ladder up to the governing thought; logical gaps become visible as topic-shaped titles in a sequence that no longer reads as a story.",
          "antipattern": "Topic labels disguised as titles — Volume by quarter, Key findings, Pricing strategy, Margins have been impacted. No verb, or a passive verb with no agent, or a fact (Revenue grew 12%) without the so-what. Also: titles that overreach the chart's evidence, multi-claim X-grew-but-Y-fell welded titles, and mechanical repetition of the same X-drove-Y template across the deck.",
          "cardinality": null,
          "narrativePurpose": "Forces the deck to carry its argument in the title bar so a senior reader can extract the recommendation without opening a single slide; converts a binder of topics into a navigable pyramid where every slide is a node defending the apex."
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 15,
          "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": 10,
          "name": "Solution & Approach",
          "beatId": "019dd95a-0702-74a3-87e6-60a90fe6abec",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Solution & Approach",
            "slug": "consultants-gambit-solution-approach",
            "status": "active",
            "canonId": "019dd9b8-071c-7161-9184-580fdac7a4f9",
            "version": 1,
            "description": null
          },
          "evidence": "Premiumization analysis (4% price rise) plus 2x2 of price vs volume strategies.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 13,
          "from": 10,
          "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": "019dd95a-088c-724c-b311-b8ec761c98d8",
          "evidence": "Aggregate growth → packaged food vs beverage vs personal care vs home care, each with own dynamics.",
          "position": 2,
          "objective": "Decompose aggregate FMCG growth across the four product sectors",
          "confidence": 82,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 14,
      "type": "setup",
      "title": "The slide includes a legend for growth rates and a note about data limitations for specific provinces.",
      "function": "establish_context",
      "rawType": "geographic_map",
      "block": null,
      "metadata": {
        "slideType": "geographic_map",
        "slideTypeCanon": {
          "name": "Geographic map",
          "slug": "geographic_map",
          "status": "active",
          "canonId": "019de52d-09de-7153-8845-584c1a9d0c83",
          "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": "overcrowded",
        "densityScore": 79,
        "componentCount": 9,
        "textChars": 843,
        "nDataPoints": 4,
        "notes": "The slide includes a legend for growth rates and a note about data limitations for specific provinces.",
        "elementsJson": [
          "headline_text",
          "map",
          "paragraph"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:14.273+00",
          "seconds": 7.019,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/14",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-14",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Southwest and central provinces continued to serve as China's growth engine in 2017.",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-c801406798a9",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.35,
            "w": 0.75,
            "x": 0.12,
            "y": 0.19
          },
          "kind": "chart",
          "text": "FMCG growth by region map",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Chart",
              "slug": "chart",
              "status": "active",
              "canonId": "019de52c-f9a0-76ef-adc6-0b859109d1f8",
              "version": 1,
              "description": "Quantitative chart."
            },
            "tool": null,
            "subkind": null,
            "framework": null
          },
          "subkind": "map",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:14.273+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "159e1bb8-3032-46d3-af9c-28009d70464b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.15,
            "x": 0.12,
            "y": 0.195
          },
          "kind": "legend",
          "text": "Total FMCG growth by region (CAGR 2015-17): >7%, 3.5%-7%, 0%-3.5%, <0%, No data available",
          "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:36:14.273+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "fba0f698-e48b-4965-920e-6d3197c35fff",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "FMCG growth",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-ccb0c93d92aa",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.12,
            "y": 0.62
          },
          "kind": "paragraph",
          "text": "Because premiumization is fueling China's FMCG rebound, we decided to look at the specifics across the four major product sectors: food, beverages, personal care and home care...",
          "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:36:14.273+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "168d2253-925e-4c35-8131-782dfa50686a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.75,
            "x": 0.12,
            "y": 0.54
          },
          "kind": "paragraph",
          "text": "As China's expanding middle class seeks upgraded consumer goods that serve to improve health and elevate their lifestyle, brands are poised to grow.",
          "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:36:14.273+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c79b9a44-28a1-42bd-bb00-6f0f4e6f7811",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.75,
            "x": 0.12,
            "y": 0.47
          },
          "kind": "source-note",
          "text": "Note: Because of limited sample size, data calculations for Jilin, Shanxi, Jiangxi and Guizhou provinces are based on regional performance. Sources: Kantar Worldpanel; Bain & Company",
          "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:36:14.273+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5dadc31b-ad97-4c15-a46f-f85c0f93dd3f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.75,
            "x": 0.12,
            "y": 0.14
          },
          "kind": "title",
          "text": "Southwest and central provinces continued to serve as China's growth engine in 2017",
          "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:36:14.273+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "de8a17ec-f9c1-414e-a9f3-d39b555d11d1",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.4,
            "x": 0.12,
            "y": 0.59
          },
          "kind": "title",
          "text": "A deeper look at premiumization by category",
          "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:36:14.273+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "40f6f262-5906-48f1-8e76-ee165dc78616",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "Horizontal Logic",
            "slug": "horizontal-logic",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-9a85-7199-aaa6-4314cd50dcfa",
            "version": 1,
            "bodyDocId": null,
            "description": "Logical grouping at the same level - items must relate coherently",
            "familyLabel": null,
            "categoryName": "Loop",
            "categorySlug": "loop"
          },
          "agent": "Architect",
          "layer": "loop",
          "agents": [
            "Architect"
          ],
          "matchId": "019dd95a-16c4-7148-811f-070d573222fe",
          "evidence": "Geographic split sits at same level alongside category and channel cuts.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "019dd95a-16c4-7148-811e-fecf16ae614b",
          "evidence": "'Southwest and central provinces continued to serve as China's growth engine in 2017.'",
          "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": 82,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "Audience Definition",
            "slug": "audience-definition",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-7f2a-775d-aeee-ff099bcb7756",
            "version": 1,
            "bodyDocId": null,
            "description": "Six key questions: Who are they? What do they know? What do they believe? What do they care about? What do they fear? What decisions can they make?",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "3d2e4ff1-1fa5-422a-be13-97ab699b5b42",
          "evidence": "A deeper look at premiumization by category",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:09:02.969936+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": "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": "019dd95a-16c4-7148-811f-018581d96b68",
          "evidence": "Choropleth heatmap of China provinces by FMCG CAGR bucket.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 14,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 15,
          "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": 10,
          "name": "Solution & Approach",
          "beatId": "019dd95a-0702-74a3-87e6-60a90fe6abec",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Solution & Approach",
            "slug": "consultants-gambit-solution-approach",
            "status": "active",
            "canonId": "019dd9b8-071c-7161-9184-580fdac7a4f9",
            "version": 1,
            "description": null
          },
          "evidence": "Premiumization analysis (4% price rise) plus 2x2 of price vs volume strategies.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 14,
          "loop": {
            "name": "30_2x2_matrix",
            "slug": "30-2x2-matrix",
            "status": "active",
            "bestFor": "Portfolio analysis, prioritization, strategic positioning",
            "canonId": "019dd956-7225-756a-9cc7-1e6d3f039818",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Dimension 1 (X-axis) -> Dimension 2 (Y-axis) -> The Four Quadrants -> The Sweet Spot",
            "description": "Plot options on two critical dimensions to reveal the optimal quadrant",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-be7d48f787d5",
          "evidence": "Geographic heatmap then explicit 2x2 with 'Raise price' vs 'Increase volume' quadrants for 26 categories.",
          "position": 3,
          "objective": "Map premiumization strategies on price vs volume axes",
          "confidence": 88,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 15,
      "type": "analysis",
      "title": "The chart uses a 2x2 matrix structure to categorize premiumization strategies.",
      "function": "analyze_data",
      "rawType": "competitive_analysis",
      "block": null,
      "metadata": {
        "slideType": "competitive_analysis",
        "slideTypeCanon": {
          "name": "Competitive analysis",
          "slug": "competitive_analysis",
          "status": "active",
          "canonId": "019de52d-093e-776b-94c6-c1573f5f1a31",
          "version": 1,
          "description": null
        },
        "function": "analyze_data",
        "functionCanon": {
          "name": "Analyze data",
          "slug": "analyze_data",
          "status": "active",
          "canonId": "019de52d-1590-7413-8c82-cc218cff40b4",
          "version": 1,
          "description": null
        },
        "density": "overcrowded",
        "densityScore": 96,
        "componentCount": 12,
        "textChars": 2249,
        "nDataPoints": 26,
        "notes": "The chart uses a 2x2 matrix structure to categorize premiumization strategies.",
        "elementsJson": [
          "headline_text",
          "quadrant_chart",
          "paragraph",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:11.504+00",
          "seconds": 4.025,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/15",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-15",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Brands can boost premiumization by raising prices or increasing premium SKU sales volume—but rarely both.",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-3851d80d0e00",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.12,
            "y": 0.2
          },
          "kind": "chart",
          "text": "Price growth of premium SKUs (2015-17 CAGR) vs Volume share increase of premium SKUs by category (2015-17)",
          "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": "Scatter plot",
              "slug": "scatter",
              "status": "active",
              "canonId": "019de52d-007d-72ec-8689-c79fb78e21a2",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "scatter",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d48ac302-eea1-42f2-b77e-c032358b19a3",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.12,
            "y": 0.2
          },
          "kind": "framework",
          "text": "2x2 matrix showing strategies: Raise price vs Increase volume",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Framework",
              "slug": "framework",
              "status": "active",
              "canonId": "019de52c-fa18-77c6-b10a-ccb8277ac0fa",
              "version": 1,
              "description": "Named conceptual framework instance."
            },
            "tool": null,
            "subkind": {
              "name": "Framework instance",
              "slug": "instance",
              "status": "active",
              "canonId": "019de52d-05a2-72af-be0b-7edc60708a03",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "instance",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5489b806-bb49-4c7b-8343-85b22bb3caac",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "framework",
          "text": "2x2 Matrix",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Framework",
              "slug": "framework",
              "status": "active",
              "canonId": "019de52c-fa18-77c6-b10a-ccb8277ac0fa",
              "version": 1,
              "description": "Named conceptual framework instance."
            },
            "tool": {
              "name": "Structuring frame",
              "slug": "structuring-frame",
              "status": "active",
              "bestFor": null,
              "canonId": "019dd9e1-48ff-708d-8103-a8464743e560",
              "version": 1,
              "bodyDocId": null,
              "description": "A named scaffold for organising content (SCQA, situation-action-result, etc.).",
              "familyLabel": null
            },
            "subkind": null,
            "framework": null
          },
          "subkind": null,
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-04-24 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-40235889e15c",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Price growth of premium SKUs",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-3db7351f36f2",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.06,
            "w": 0.75,
            "x": 0.12,
            "y": 0.62
          },
          "kind": "paragraph",
          "text": "Also, the category owes some of its recovery to marketing innovations intended to engage younger consumers, such as the use of the cartoon character Peppa Pig to sell biscuits. Another reason for premiumization in biscuits: the rise in online sales of imported products such as Nabati.",
          "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:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1acd1e6f-10be-48a3-bfb1-30ff72e1e194",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.75,
            "x": 0.12,
            "y": 0.75
          },
          "kind": "paragraph",
          "text": "Food categories addressing specific occasions were able to grow with premiumization. For example, gifting is an occasion for purchasing premium goods. Lindt and other top chocolate brands enjoyed double-digit growth as premium chocolate is considered one of the best options for gifting.",
          "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:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "33a94d5d-d7bd-4bac-b828-25f86e987228",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.75,
            "x": 0.12,
            "y": 0.69
          },
          "kind": "paragraph",
          "text": "Companies are hoping to translate this success to sluggish categories such as candy, where UHA Cororo, a Japanese brand, has introduced an innovative jelly candy that is injected with juice and has enjoyed rapid growth in the last two 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:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6031bfa2-76ed-4996-a87c-f1a2adfcea3a",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.09,
            "w": 0.75,
            "x": 0.12,
            "y": 0.81
          },
          "kind": "paragraph",
          "text": "Unexpected competition in ready-to-drink (RTD) beverages. Beverages continued to grow at a lower rate than food categories. Value growth rose only slightly, from 2.3% in 2016 to 2.6% in 2017. Yet within this sector, healthy categories such as yogurt and packaged water maintained their ability to outpace categories considered less healthy. There is a downside. Yogurt's popularity has attracted many new local producers into the market, intensifying competition and dragging down average selling price growth. A clear sign: The promotion rate con-",
          "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:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "806ed2a1-228a-4a48-b4bd-8dec14675643",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.75,
            "x": 0.12,
            "y": 0.54
          },
          "kind": "paragraph",
          "text": "category product called Milka-Oreo Chocolate. It also invented the Oreo music box, which uses Oreo biscuits to actually play songs. Consumers can personalize the packaging of their music box by choosing the pattern and color, as well as the text they want to print on the package.",
          "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:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ead063eb-e637-4cb1-b588-7a38b26c4c7f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.75,
            "x": 0.12,
            "y": 0.46
          },
          "kind": "source-note",
          "text": "Notes: Premium SKUs are defined as those selling at 1.2 times the category average price; RTD tea is ready-to-drink tea; CSD is carbonated soft drinks. Sources: Kantar Worldpanel; Bain & Company",
          "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:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "17a0683e-a9ac-416c-980b-b5b494ceba07",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.04,
            "w": 0.75,
            "x": 0.12,
            "y": 0.14
          },
          "kind": "title",
          "text": "Brands can boost premiumization by raising prices or increasing premium SKU sales volume—but rarely both",
          "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:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "29159ebf-8618-45c3-a348-8dc57ac6618d",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "2x2 matrix",
            "slug": "matrix-2x2",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd9e1-50ab-72d1-8afb-3ab0a38e32a8",
            "version": 1,
            "bodyDocId": null,
            "description": "BCG matrix, importance/urgency, any axes-and-quadrants frame.",
            "familyLabel": null,
            "categoryName": null,
            "categorySlug": null
          },
          "agent": null,
          "layer": "slide",
          "agents": null,
          "matchId": "818a8e76-8726-4a76-89d9-d04416018847",
          "evidence": "2x2 matrix showing strategies: Raise price vs Increase volume",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.9,
          "extraction": {
            "at": "2026-07-16 21:09:03.055662+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 15,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": "common",
          "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": "019dd95a-16c4-7148-811f-0b93ab4bc255",
          "evidence": "Title states the insight: raise prices OR raise volume — but rarely both.",
          "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": 88,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "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": "019dd95a-16c4-7148-811f-0e924d084e48",
          "evidence": "Quadrant labels 'Raise price', 'Increase both volume and value' annotate the matrix.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 15,
          "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": "019dd95a-16c4-7148-811f-11a22ad3030d",
          "evidence": "Axes and quadrant boundaries dominate; category dots are secondary.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 15,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019dd95a-1d21-7467-a462-5d2a3179e6fb",
          "evidence": "Axes 'Volume share increase of premium SKUs' x 'Price growth of premium SKUs', four labelled quadrants.",
          "framework": null,
          "confidence": 95,
          "extraction": {
            "at": "2026-04-29 13:07:34.940444+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 15,
          "frameworkName": "2x2 Matrix"
        },
        {
          "matchId": "58fdcdb7-13d5-47bd-8c26-37ed9cae2edc",
          "evidence": "The chart uses a 2x2 grid to segment product categories based on price growth vs volume share increase.",
          "framework": null,
          "confidence": 1,
          "extraction": {
            "at": "2026-05-02 19:36:11.504+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 15,
          "frameworkName": "matrix-2x2"
        }
      ],
      "arcBeats": [
        {
          "to": 15,
          "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": 10,
          "name": "Solution & Approach",
          "beatId": "019dd95a-0702-74a3-87e6-60a90fe6abec",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Solution & Approach",
            "slug": "consultants-gambit-solution-approach",
            "status": "active",
            "canonId": "019dd9b8-071c-7161-9184-580fdac7a4f9",
            "version": 1,
            "description": null
          },
          "evidence": "Premiumization analysis (4% price rise) plus 2x2 of price vs volume strategies.",
          "position": 3,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Turn",
            "slug": "turn",
            "status": "active",
            "canonId": "019dd9b8-0396-702b-ac2f-9901f8dd8b54",
            "version": 1,
            "description": "The pivot — solution proposed, catalyst introduced, decision made. Common (15/20 arcs) but not universal: Triple-take, AIDA, PAS, Voyage-return and Pixar substitute it with a strong reflection or development beat."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 15,
          "from": 14,
          "loop": {
            "name": "30_2x2_matrix",
            "slug": "30-2x2-matrix",
            "status": "active",
            "bestFor": "Portfolio analysis, prioritization, strategic positioning",
            "canonId": "019dd956-7225-756a-9cc7-1e6d3f039818",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Dimension 1 (X-axis) -> Dimension 2 (Y-axis) -> The Four Quadrants -> The Sweet Spot",
            "description": "Plot options on two critical dimensions to reveal the optimal quadrant",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-be7d48f787d5",
          "evidence": "Geographic heatmap then explicit 2x2 with 'Raise price' vs 'Increase volume' quadrants for 26 categories.",
          "position": 3,
          "objective": "Map premiumization strategies on price vs volume axes",
          "confidence": 88,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 16,
      "type": "setup",
      "title": "This is a text-heavy slide summarizing market performance in 2017 for beverages, personal care, and baby products.",
      "function": "summarize",
      "rawType": "executive_summary",
      "block": null,
      "metadata": {
        "slideType": "executive_summary",
        "slideTypeCanon": {
          "name": "Executive summary",
          "slug": "executive_summary",
          "status": "active",
          "canonId": "019de52d-06be-73ff-81b3-f99fe7f0025e",
          "version": 1,
          "description": null
        },
        "function": "summarize",
        "functionCanon": {
          "name": "Summarize",
          "slug": "summarize",
          "status": "active",
          "canonId": "019de52d-1541-704f-b86f-bf7b75056373",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 33,
        "componentCount": 4,
        "textChars": 396,
        "nDataPoints": 12,
        "notes": "This is a text-heavy slide summarizing market performance in 2017 for beverages, personal care, and baby products.",
        "elementsJson": [
          "paragraph"
        ],
        "confidence": 0.9,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:10.26+00",
          "seconds": 2.701,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/16",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-16",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "High-velocity growth for major and niche brands alike in personal care.",
          "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 12:57:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-6a282fc9f441",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "value growth: 6.3%",
          "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 12:57:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-6dca4f914370",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.8,
            "w": 0.8,
            "x": 0.1,
            "y": 0.12
          },
          "kind": "paragraph",
          "text": "Detailed analysis of 2017 market trends in China, covering beverages (water, soft drinks, juice, tea), personal care (beauty, hair care, oral hygiene), and diapers, emphasizing premiumization and brand-specific growth strategies.",
          "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:36:10.26+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "78ef79d7-5fd8-409d-b739-e36777bfd0d0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.8,
            "x": 0.1,
            "y": 0.05
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:10.26+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c35d71d2-1a23-4557-bda9-4df9a5533a73",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "value growth",
          "numberRaw": "6.3%",
          "numberKind": "percent",
          "actionTitle": "As Shoppers Upgrade, Growth Returns",
          "calloutText": "High-velocity growth for major and niche brands alike in personal care.",
          "numberScale": null,
          "numberValue": 6.3,
          "metricFamily": "growth_rate",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811f-189967a777c9",
          "evidence": "Major vs niche brand growth contrasted on the slide.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "019dd95a-16c4-7148-811f-1677838e87db",
          "evidence": "Callout: 'High-velocity growth for major and niche brands alike in personal care.'",
          "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": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 16,
          "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": "Executive summary",
            "slug": "executive-summary",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd9e1-4b63-72d5-9734-da757d91ca61",
            "version": 1,
            "bodyDocId": null,
            "description": "A condensed view of the entire argument on a single slide / block.",
            "familyLabel": null,
            "categoryName": null,
            "categorySlug": null
          },
          "agent": null,
          "layer": "slide",
          "agents": null,
          "matchId": "936a9fa6-d26a-4d6c-a054-7564cdcf7e44",
          "evidence": "Detailed analysis of 2017 market trends in China",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.9,
          "extraction": {
            "at": "2026-07-16 21:09:03.14573+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 16,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": "common",
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "04_tale_two_worlds",
            "slug": "04-tale-two-worlds",
            "status": "active",
            "bestFor": "Competitive analysis, benchmarking, case for change",
            "canonId": "019dd956-674f-750b-b15d-f082e2717f4e",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Current State -> Desired State / Benchmark -> The Gap & Implication",
            "description": "Show the gap between two states to drive urgency or highlight opportunity",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-c0505a3eb1cf",
          "evidence": "Imports = 39% of online FMCG, online +28% while big-box slows or declines.",
          "position": 4,
          "objective": "Contrast online (booming, import-heavy) vs offline (slowing) channels",
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 17,
      "type": "setup",
      "title": "This appears to be a text-heavy page from a consulting report, likely following a series of charts referenced in the text (Figure 9, 10, 11).",
      "function": "summarize",
      "rawType": "key_messages",
      "block": null,
      "metadata": {
        "slideType": "key_messages",
        "slideTypeCanon": {
          "name": "Key messages",
          "slug": "key_messages",
          "status": "active",
          "canonId": "019de52d-0712-703f-89f5-bda6688faf3f",
          "version": 1,
          "description": null
        },
        "function": "summarize",
        "functionCanon": {
          "name": "Summarize",
          "slug": "summarize",
          "status": "active",
          "canonId": "019de52d-1541-704f-b86f-bf7b75056373",
          "version": 1,
          "description": null
        },
        "density": "overcrowded",
        "densityScore": 92,
        "componentCount": 10,
        "textChars": 3016,
        "nDataPoints": 8,
        "notes": "This appears to be a text-heavy page from a consulting report, likely following a series of charts referenced in the text (Figure 9, 10, 11).",
        "elementsJson": [
          "paragraph",
          "bullet_list"
        ],
        "confidence": 0.9,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:17.177+00",
          "seconds": 9.594,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/17",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-17",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Imports—much of which are in baby and beauty categories—make up 39% of all online FMCG sales as Chinese online shoppers continue to evolve in their view of e-commerce.",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-af8f767dad58",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.15,
            "w": 0.8,
            "x": 0.1,
            "y": 0.25
          },
          "kind": "list",
          "text": "Facial tissue value rose by 9.2%, as Chinese consumers increasingly substituted it for less-expensive toilet paper in such common household uses as wiping tables.\nFabric softener grew by 5.3% as brands promoted more specific needs, such as removing static electricity and infusing clothes with long-lasting fragrance.\nToilet tissue continued to decline in volume, dropping by 8.9%. However, average prices rose by 10.3% as consumers traded up from two-ply to three- and four-ply tissue. Rising costs of raw materials also contributed to the price increases.",
          "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:36:17.177+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4d220b70-1318-42f3-a3e3-4327bec4afa1",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "online FMCG sales: 39%",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-b030da95103e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.1,
            "y": 0.5
          },
          "kind": "paragraph",
          "text": "Imports—much of which are in baby and beauty categories—make up 39% of all online FMCG sales as Chinese online shoppers continue to evolve in their view of e-commerce (see Figure 9). Initially, they saw online as a place to find bargains. Gradually, they have been relying on the channel to buy premium products and niche brands. They have advanced from value hunters to quality seekers.",
          "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:36:17.177+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "52a32241-3a12-4948-abe0-0ace4cb860f6",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.8,
            "x": 0.1,
            "y": 0.59
          },
          "kind": "paragraph",
          "text": "For FMCG companies, a nagging reality of e-commerce is its high rate of promotions. For example, on average, 39% of FMCG purchased online were bought on promotion—almost twice the percentage of offline products bought on promotion (see Figure 10). However, this phenomenon is stabilizing as more Chinese consumers go online for quality—as opposed to bargains—and as e-commerce platforms reposition their huge digital festivals from primarily bargain events to brand-building and product introduction campaigns.",
          "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:36:17.177+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5d88cda9-165a-44dc-b43b-d84598d30dae",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.12,
            "w": 0.8,
            "x": 0.1,
            "y": 0.7
          },
          "kind": "paragraph",
          "text": "The macroeconomic underpinning of the two-speed phenomenon is easily understood in a chart developed by Gavekal Dragonomics (see Figure 11). Assuming a normal distribution of income, as average income per capita increases by 25% (which happened in the last three years), then the share of the population with income greater than $15,000 increases from 2.3% to 15.9%. That’s nearly a sevenfold increase, which fuels the fast growth of premium categories and segments that are expanding at high speed.",
          "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:36:17.177+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "66c2cf92-2470-4ca7-bdd6-4cbbed50f064",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.8,
            "x": 0.1,
            "y": 0.12
          },
          "kind": "paragraph",
          "text": "few domestic companies gaining presence. Local brands such as Lelch grew by more than 120% in 2017, and Care Daily emerged as one of the top-selling brands within a year of its launch.",
          "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:36:17.177+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d2f60e51-9186-4e54-894a-8e7cf469ef45",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.1,
            "y": 0.41
          },
          "kind": "paragraph",
          "text": "Despite gains made by local companies in the premiumization game, China’s consumers still view imported goods as being safer, of higher quality, better tasting or more innovatively designed than domestic goods. That is why most premiumizing categories have a higher rate of import growth than other categories.",
          "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:36:17.177+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d3e6eae6-e0c0-463f-a1fb-d7dc0cb00ead",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.1,
            "y": 0.17
          },
          "kind": "paragraph",
          "text": "Non-necessities win in home care. Value growth declined in home care, from 3.5% to 2.1%, the result of 2.1% average selling price growth and stagnant volume growth. Yet, categories that serve specific needs beyond daily necessities, such as facial tissue and fabric softener, outpaced other categories.",
          "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:36:17.177+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ee944fae-e5d3-442e-b752-efb6a6556c34",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.8,
            "x": 0.1,
            "y": 0.06
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:17.177+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "29b4f1d9-cb82-4152-9df7-6c94cea49975",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "online FMCG sales",
          "numberRaw": "39%",
          "numberKind": "percent",
          "actionTitle": "As Shoppers Upgrade, Growth Returns",
          "calloutText": "Imports—much of which are in baby and beauty categories—make up 39% of all online FMCG sales as Chinese online shoppers continue to evolve in their view of e-commerce.",
          "numberScale": null,
          "numberValue": 39,
          "metricFamily": "revenue",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811f-1e6688f4b933",
          "evidence": "Callout pulls out the 39% imports stat as the headline.",
          "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": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "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": "019dd95a-16c4-7148-811f-204918656a9a",
          "evidence": "Specific 39% online FMCG imports stat anchors the message.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 17,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "04_tale_two_worlds",
            "slug": "04-tale-two-worlds",
            "status": "active",
            "bestFor": "Competitive analysis, benchmarking, case for change",
            "canonId": "019dd956-674f-750b-b15d-f082e2717f4e",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Current State -> Desired State / Benchmark -> The Gap & Implication",
            "description": "Show the gap between two states to drive urgency or highlight opportunity",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-c0505a3eb1cf",
          "evidence": "Imports = 39% of online FMCG, online +28% while big-box slows or declines.",
          "position": 4,
          "objective": "Contrast online (booming, import-heavy) vs offline (slowing) channels",
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 18,
      "type": "analysis",
      "title": "Contains two distinct figures (Figure 9 and Figure 10) with associated data charts.",
      "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": "dense",
        "densityScore": 70,
        "componentCount": 8,
        "textChars": 563,
        "nDataPoints": 24,
        "notes": "Contains two distinct figures (Figure 9 and Figure 10) with associated data charts.",
        "elementsJson": [
          "bar_chart_grouped",
          "bar_chart_100pct",
          "bar_chart_grouped"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:14.083+00",
          "seconds": 6.235,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/18",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-18",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.105,
            "y": 0.62
          },
          "kind": "chart",
          "text": "Value share of FMCG on promotion, online vs. offline (2015-17)",
          "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:36:14.083+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "77986c92-fcf8-42ef-a7e4-2a0c46b1fbfe",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.22,
            "w": 0.35,
            "x": 0.105,
            "y": 0.19
          },
          "kind": "chart",
          "text": "Value share of imported FMCG, online vs. offline (2015-17)",
          "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:36:14.083+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d6b59d63-7908-414e-a57b-23194dcc06c0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.22,
            "w": 0.35,
            "x": 0.52,
            "y": 0.19
          },
          "kind": "chart",
          "text": "Online vs. offline sales breakdown (2017)",
          "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:36:14.083+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "81d2109f-586d-4344-befb-e0fa67d36f6d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.79,
            "x": 0.105,
            "y": 0.465
          },
          "kind": "disclaimer",
          "text": "Note: Kantar excluded cigarettes from total FMCG and slightly updated all category data in 2017, leading to minor changes when refreshed with previous years' data. Sources: Kantar Worldpanel; Bain & Company",
          "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:36:14.083+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "733d2e2f-65af-40bd-aa0a-32efc188b0a3",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Value share of imported FMCG: 39%",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-85164bc55675",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.015,
            "w": 0.584,
            "x": 0.208,
            "y": 0.062
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns",
          "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:36:14.083+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1f80f9b5-6f63-4656-bee9-4b95d0ba6c9b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.015,
            "w": 0.405,
            "x": 0.105,
            "y": 0.135
          },
          "kind": "title",
          "text": "Figure 9: Imports continue to boost online FMCG sales",
          "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:36:14.083+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "93ea91be-6e24-4723-b383-17c05dc54690",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.015,
            "w": 0.605,
            "x": 0.105,
            "y": 0.565
          },
          "kind": "title",
          "text": "Figure 10: Online promotions continue to outpace offline promotions in FMCG",
          "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:36:14.083+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "987cfa4e-431f-4ac4-acb9-01dd3db97099",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "Value share of imported FMCG",
          "numberRaw": "39%",
          "numberKind": "percent",
          "actionTitle": "Imports continue to boost online FMCG sales",
          "calloutText": null,
          "numberScale": null,
          "numberValue": 39,
          "metricFamily": "share_penetration",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811f-26cf2c3c2447",
          "evidence": "'Imports continue to boost online FMCG sales' states the 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": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 18,
          "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": "019dd95a-16c4-7148-811f-28b7ce3fa28e",
          "evidence": "Stacked bar showing import share evolution.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 18,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "04_tale_two_worlds",
            "slug": "04-tale-two-worlds",
            "status": "active",
            "bestFor": "Competitive analysis, benchmarking, case for change",
            "canonId": "019dd956-674f-750b-b15d-f082e2717f4e",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Current State -> Desired State / Benchmark -> The Gap & Implication",
            "description": "Show the gap between two states to drive urgency or highlight opportunity",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-c0505a3eb1cf",
          "evidence": "Imports = 39% of online FMCG, online +28% while big-box slows or declines.",
          "position": 4,
          "objective": "Contrast online (booming, import-heavy) vs offline (slowing) channels",
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 19,
      "type": "analysis",
      "title": "The slide combines a conceptual chart (normal distribution) with a detailed narrative analysis of Chinese consumer behavior.",
      "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": 69,
        "componentCount": 7,
        "textChars": 816,
        "nDataPoints": 12,
        "notes": "The slide combines a conceptual chart (normal distribution) with a detailed narrative analysis of Chinese consumer behavior.",
        "elementsJson": [
          "headline_text",
          "paragraph",
          "other"
        ],
        "confidence": 0.95,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:11.566+00",
          "seconds": 3.637,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/19",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-19",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "As average income grows by 25%, the share of population with income above $15,000 increases from 2.3% to 15.9%, while the share of population with income less than $10,000 shrinks from 50% to 15.9%.",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba64-fec620caf8ea",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.13,
            "y": 0.22
          },
          "kind": "chart",
          "text": "Normal distribution curve showing income shift",
          "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:36:11.566+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8163ce86-f225-4e0d-8a69-77489ccaa5d3",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.2,
            "w": 0.2,
            "x": 0.72,
            "y": 0.2
          },
          "kind": "list",
          "text": "As average income grows by 25%... the share of population with income above $15,000 increases from 2.3% to 15.9%... while the share of population with income less than $10,000 shrinks from 50% to 15.9%",
          "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:36:11.566+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6c7ccd8b-fbf6-4e06-b253-130dbb90d19e",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "income distribution: 15.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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-026dc596c368",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.35,
            "w": 0.75,
            "x": 0.13,
            "y": 0.58
          },
          "kind": "paragraph",
          "text": "Shifting channels at home and out of home. In 2017, China's shoppers continued showing their preference for shopping online over making trips to the hypermarket...",
          "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:36:11.566+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "edb1f3c2-1f40-4bbf-8b61-77d1c415c2e4",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.4,
            "x": 0.13,
            "y": 0.46
          },
          "kind": "source-note",
          "text": "Note: This example assumes normal distribution of incomes (standard deviation is 2,500). Sources: Gavekal Dragonomics; Bain & Company",
          "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:36:11.566+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c8aec68d-5d6c-4196-a99c-1e7188005665",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.5,
            "x": 0.13,
            "y": 0.145
          },
          "kind": "title",
          "text": "The macroeconomic explanation of two-speed 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": "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:36:11.566+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "97de57d4-211c-4c7e-ac6a-25a4d4e73308",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "income distribution",
          "numberRaw": "15.9%",
          "numberKind": "percent",
          "actionTitle": "The macroeconomic explanation of two-speed growth",
          "calloutText": "As average income grows by 25%, the share of population with income above $15,000 increases from 2.3% to 15.9%, while the share of population with income less than $10,000 shrinks from 50% to 15.9%.",
          "numberScale": null,
          "numberValue": 15.9,
          "metricFamily": "other",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811f-2e0acf117d9b",
          "evidence": "'The macroeconomic explanation of two-speed growth' frames the figure.",
          "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": 82,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "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": "019dd95a-16c4-7148-811f-33ecd90b79c2",
          "evidence": "Numbered red bubbles 1/2/3 walk reader through income-curve shift.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 90,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 19,
          "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": "019dd95a-16c4-7148-811f-3949e08de37c",
          "evidence": "Specific income thresholds: 2.3%→15.9% above $15K; 50%→15.9% below $10K.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 19,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Metaphor & Analogy",
            "slug": "metaphor-analogy",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-adea-7729-bca1-70810d6238a9",
            "version": 1,
            "bodyDocId": null,
            "description": "Making abstract concepts concrete through familiar comparisons",
            "familyLabel": null,
            "categoryName": "Slide",
            "categorySlug": "slide"
          },
          "agent": "Storyteller",
          "layer": "slide",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019dd95a-16c4-7148-811f-359af631f919",
          "evidence": "Two overlaid bell curves serve as visual metaphor for income shift.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 19,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "019dd95a-1d21-7467-a462-65464d1f553c",
          "evidence": "Two overlapping normal distributions across average income (USD).",
          "framework": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:34.940444+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 19,
          "frameworkName": "Income Distribution Curve"
        }
      ],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "04_tale_two_worlds",
            "slug": "04-tale-two-worlds",
            "status": "active",
            "bestFor": "Competitive analysis, benchmarking, case for change",
            "canonId": "019dd956-674f-750b-b15d-f082e2717f4e",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Current State -> Desired State / Benchmark -> The Gap & Implication",
            "description": "Show the gap between two states to drive urgency or highlight opportunity",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-c0505a3eb1cf",
          "evidence": "Imports = 39% of online FMCG, online +28% while big-box slows or declines.",
          "position": 4,
          "objective": "Contrast online (booming, import-heavy) vs offline (slowing) channels",
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 20,
      "type": "analysis",
      "title": "Contains two distinct charts (Figure 12 and Figure 13) analyzing retail trends.",
      "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": 65,
        "componentCount": 7,
        "textChars": 597,
        "nDataPoints": 60,
        "notes": "Contains two distinct charts (Figure 12 and Figure 13) analyzing retail trends.",
        "elementsJson": [
          "bar_chart_stacked",
          "bar_chart_grouped",
          "data_table"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:13.827+00",
          "seconds": 5.791,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/20",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-20",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Online sales maintained their momentum in 2017, while big-box retailers slowed down or even declined.",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-192b91132957",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.12,
            "y": 0.6
          },
          "kind": "chart",
          "text": "Online penetration by city tier (2012-17)",
          "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:36:13.827+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a00a0a1e-146b-4952-87b8-fec03b020452",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.12,
            "y": 0.19
          },
          "kind": "chart",
          "text": "Value share in urban FMCG retail market by channel",
          "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:36:13.827+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4fdac2db-29d6-4147-bc1a-7d4f186af8b6",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.75,
            "x": 0.12,
            "y": 0.43
          },
          "kind": "disclaimer",
          "text": "Notes: Hypermarket refers to stores with more than 6,000 square meters... Sources: Kantar Worldpanel; Bain & Company",
          "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:36:13.827+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c2635c98-ba15-42c2-9e18-3c6fd87cdf2e",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Value share in urban FMCG retail market: 38.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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-1c5116159f06",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.7,
            "x": 0.12,
            "y": 0.55
          },
          "kind": "title",
          "text": "Online penetration growth is shifting from higher-tier to lower-tier cities; Tier-1 cities maintain highest penetration, but reaching a 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:36:13.827+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6dcfec1b-9514-4ad8-ad58-31e632a1d05f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.7,
            "x": 0.12,
            "y": 0.145
          },
          "kind": "title",
          "text": "Online sales maintained their momentum in 2017, while big-box retailers slowed down or even declined",
          "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:36:13.827+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "71ed49bc-49a8-49ab-b1a1-cd08ae978ff9",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "Value share in urban FMCG retail market",
          "numberRaw": "38.9%",
          "numberKind": "percent",
          "actionTitle": "Online sales maintained their momentum in 2017, while big-box retailers slowed down or even declined",
          "calloutText": "Online sales maintained their momentum in 2017, while big-box retailers slowed down or even declined.",
          "numberScale": null,
          "numberValue": 38.9,
          "metricFamily": "share_penetration",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811f-42298862381d",
          "evidence": "Online momentum vs big-box decline explicit in the title.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "019dd95a-16c4-7148-811f-3dfb0863e180",
          "evidence": "Title: 'Online sales maintained their momentum in 2017, while big-box retailers slowed or even declined.'",
          "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": 80,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 20,
          "whyItWorks": "Solves two failure modes at once. (1) The buried claim: action titles place the conclusion on the page before any analysis is read, so a busy reader doesn't reverse-engineer it from the chart. (2) The spineless deck: because each title is a claim, slides have to ladder up to the governing thought; logical gaps become visible as topic-shaped titles in a sequence that no longer reads as a story.",
          "antipattern": "Topic labels disguised as titles — Volume by quarter, Key findings, Pricing strategy, Margins have been impacted. No verb, or a passive verb with no agent, or a fact (Revenue grew 12%) without the so-what. Also: titles that overreach the chart's evidence, multi-claim X-grew-but-Y-fell welded titles, and mechanical repetition of the same X-drove-Y template across the deck.",
          "cardinality": null,
          "narrativePurpose": "Forces the deck to carry its argument in the title bar so a senior reader can extract the recommendation without opening a single slide; converts a binder of topics into a navigable pyramid where every slide is a node defending the apex."
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "04_tale_two_worlds",
            "slug": "04-tale-two-worlds",
            "status": "active",
            "bestFor": "Competitive analysis, benchmarking, case for change",
            "canonId": "019dd956-674f-750b-b15d-f082e2717f4e",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Current State -> Desired State / Benchmark -> The Gap & Implication",
            "description": "Show the gap between two states to drive urgency or highlight opportunity",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-c0505a3eb1cf",
          "evidence": "Imports = 39% of online FMCG, online +28% while big-box slows or declines.",
          "position": 4,
          "objective": "Contrast online (booming, import-heavy) vs offline (slowing) channels",
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 21,
      "type": "analysis",
      "title": "Contains two figures: Figure 14 (bar charts for penetration/value) and Figure 15 (scatter plot for penetration change vs rate).",
      "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": 8,
        "textChars": 545,
        "nDataPoints": 40,
        "notes": "Contains two figures: Figure 14 (bar charts for penetration/value) and Figure 15 (scatter plot for penetration change vs rate).",
        "elementsJson": [
          "bar_chart_grouped",
          "scatter_plot",
          "callout_box"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:10.964+00",
          "seconds": 2.627,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/21",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-21",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Online categories with very high online penetration and strong upward trend",
          "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 12:57:34+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-bad6498e2373",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.38,
            "x": 0.105,
            "y": 0.22
          },
          "kind": "chart",
          "text": "Relative online penetration (2015-17)",
          "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:36:10.964+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a37af3c2-4883-4203-8026-bf8007380969",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.38,
            "x": 0.52,
            "y": 0.22
          },
          "kind": "chart",
          "text": "Online sales as percentage of total sales value (2015-17)",
          "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:36:10.964+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "fc2b62b8-df88-4723-8a19-328efd0506d0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.105,
            "y": 0.62
          },
          "kind": "chart",
          "text": "Relative online penetration change (percentage, 2015-17) vs Relative online penetration rate (2017)",
          "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": "Scatter plot",
              "slug": "scatter",
              "status": "active",
              "canonId": "019de52d-007d-72ec-8689-c79fb78e21a2",
              "version": 1,
              "description": null
            },
            "framework": null
          },
          "subkind": "scatter",
          "groupRole": null,
          "confidence": null,
          "extraction": {
            "at": "2026-05-02 19:36:10.964+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "66ffcaed-9f9b-4a4d-8ecf-3cf25f5663e9",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Relative online penetration: 64",
          "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 12:57:34+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-bd5ee2b480d2",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.3,
            "x": 0.105,
            "y": 0.47
          },
          "kind": "source-note",
          "text": "Sources: Kantar Worldpanel; Bain & Company",
          "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:36:10.964+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c881b26d-f278-4b12-9ad5-eb6d0521536b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.8,
            "x": 0.105,
            "y": 0.55
          },
          "kind": "title",
          "text": "As in prior years, three clusters of categories reflect different rates of online penetration and dynamics",
          "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:36:10.964+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "0ae672b7-62a0-43a9-89bf-d87d1be8b822",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.8,
            "x": 0.105,
            "y": 0.145
          },
          "kind": "title",
          "text": "Baby and beauty categories continued to achieve high online penetration and share of value in 2017",
          "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:36:10.964+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4d8c7eb0-b12f-43c4-a45d-8dc857c100a8",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "Relative online penetration",
          "numberRaw": "64",
          "numberKind": "plain",
          "actionTitle": "Baby and beauty categories continued to achieve high online penetration and share of value in 2017",
          "calloutText": "Online categories with very high online penetration and strong upward trend",
          "numberScale": null,
          "numberValue": 64,
          "metricFamily": "share_penetration",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811f-47135d9e5c52",
          "evidence": "Title: 'Baby and beauty categories continued to achieve high online penetration…'",
          "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": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "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": "019dd95a-16c4-7148-811f-4b70d6e72dbc",
          "evidence": "Callout flags 'Online categories with very high online penetration and strong upward trend.'",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 21,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [
        {
          "matchId": "0193e951-2426-48b1-94ea-fbbbb0a24f1f",
          "evidence": "Categorization of products into clusters based on penetration and growth dynamics.",
          "framework": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-05-02 19:36:10.964+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 21,
          "frameworkName": "market-segmentation-pyramid"
        }
      ],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "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": 10,
          "name": "The Facts (What)",
          "beatId": "019dd95a-0702-74a3-87e6-6f0f96582676",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Facts (What)",
            "slug": "triple-take-the-facts-what",
            "status": "active",
            "canonId": "019dd9b8-092b-754c-8eaa-ede3ffdcb060",
            "version": 1,
            "description": null
          },
          "evidence": "Twelve+ charts presenting market value, volume, ASP, channel share.",
          "position": 1,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Setup",
            "slug": "setup",
            "status": "active",
            "canonId": "019dd9b8-020e-7505-af9b-d9b9a4679bcc",
            "version": 1,
            "description": "Where the deck grounds the reader before doing anything else. Almost every arc opens here."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 21,
          "from": 16,
          "loop": {
            "name": "04_tale_two_worlds",
            "slug": "04-tale-two-worlds",
            "status": "active",
            "bestFor": "Competitive analysis, benchmarking, case for change",
            "canonId": "019dd956-674f-750b-b15d-f082e2717f4e",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "Current State -> Desired State / Benchmark -> The Gap & Implication",
            "description": "Show the gap between two states to drive urgency or highlight opportunity",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-c0505a3eb1cf",
          "evidence": "Imports = 39% of online FMCG, online +28% while big-box slows or declines.",
          "position": 4,
          "objective": "Contrast online (booming, import-heavy) vs offline (slowing) channels",
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 22,
      "type": "setup",
      "title": "This slide is a text-heavy summary page from a Bain & Company report.",
      "function": "summarize",
      "rawType": "key_messages",
      "block": null,
      "metadata": {
        "slideType": "key_messages",
        "slideTypeCanon": {
          "name": "Key messages",
          "slug": "key_messages",
          "status": "active",
          "canonId": "019de52d-0712-703f-89f5-bda6688faf3f",
          "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": 38,
        "componentCount": 5,
        "textChars": 398,
        "nDataPoints": 6,
        "notes": "This slide is a text-heavy summary page from a Bain & Company report.",
        "elementsJson": [
          "paragraph"
        ],
        "confidence": 0.9,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:13.122+00",
          "seconds": 4.636,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/22",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-22",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "The out-of-home market clearly continues to be an opportunity for FMCG companies selling in China.",
          "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-5fcfc3ec2040",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "O2O market growth: 30%",
          "attrs": null,
          "canon": {
            "kind": {
              "name": "Metric",
              "slug": "metric",
              "status": "active",
              "canonId": "019de52c-f923-73bf-8081-d0b1a8c5264d",
              "version": 1,
              "description": "Big-number or KPI value."
            },
            "tool": {
              "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 12:57:32+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-634c0aa97652",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.8,
            "w": 0.8,
            "x": 0.1,
            "y": 0.12
          },
          "kind": "paragraph",
          "text": "The text details the impact of O2O delivery on traditional retail, the growth of out-of-home consumption, and specific market dynamics involving major players like Alibaba, JD.com, and Meituan.",
          "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:36:13.122+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "0ff31936-afd2-4bd6-a918-07d11cdb8308",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.1,
            "x": 0.45,
            "y": 0.94
          },
          "kind": "paragraph",
          "text": "Page 20",
          "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:36:13.122+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5693afb5-1acd-4a53-91d1-7f9b83dc2791",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.6,
            "x": 0.2,
            "y": 0.05
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:13.122+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f24bddd1-cb6c-46aa-8bbb-bedf6898e677",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "O2O market growth",
          "numberRaw": "30%",
          "numberKind": "percent",
          "actionTitle": "As Shoppers Upgrade, Growth Returns",
          "calloutText": "The out-of-home market clearly continues to be an opportunity for FMCG companies selling in China.",
          "numberScale": null,
          "numberValue": 30,
          "metricFamily": "growth_rate",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811f-4fac64d3b84f",
          "evidence": "Callout: 'out-of-home market clearly continues to be an opportunity.'",
          "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": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 22,
          "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": "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": "019dd95a-16c4-7148-811f-53fa5170f10f",
          "evidence": "Stats: O2O grew 30%, channels grew 4.8%, etc.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 22,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "to": 25,
          "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": "019dd95a-0702-74a3-87e6-731a3363aeb0",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Implications (So What)",
            "slug": "triple-take-the-implications-so-what",
            "status": "active",
            "canonId": "019dd9b8-09c7-75cd-8c7b-ae0e23cca2b8",
            "version": 1,
            "description": null
          },
          "evidence": "Out-of-home opportunity and local-player share gain explain implications.",
          "position": 2,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Reflection",
            "slug": "reflection",
            "status": "active",
            "canonId": "019dd9b8-0510-73fd-8d00-1c7e45f7bc98",
            "version": 1,
            "description": "The \"so what\" beat. Used by analytical arcs (Triple-take, Onion) and learning arcs (Voyage-return, Tragedy)."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 24,
          "from": 22,
          "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": "019dd95a-088c-724c-b311-c66a2f0f3e66",
          "evidence": "Out-of-home framed as opportunity, then hypermarket declines, then convenience/grocery upside.",
          "position": 5,
          "objective": "Drill into out-of-home consumption opportunity (hyper decline → convenience upside)",
          "confidence": 72,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 23,
      "type": "analysis",
      "title": "Contains two distinct figures (16 and 17) with multiple sub-charts each.",
      "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": "dense",
        "densityScore": 58,
        "componentCount": 7,
        "textChars": 424,
        "nDataPoints": 40,
        "notes": "Contains two distinct figures (16 and 17) with multiple sub-charts each.",
        "elementsJson": [
          "bar_chart_vertical",
          "bar_chart_vertical",
          "bar_chart_vertical",
          "bar_chart_vertical",
          "bar_chart_vertical",
          "bar_chart_vertical",
          "bar_chart_vertical",
          "footnote"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:14.038+00",
          "seconds": 5.405,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/23",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-23",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Hypermarkets suffer from declines in traffic, volume per household and penetration.",
          "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 12:57:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-364740039c50",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.12,
            "y": 0.19
          },
          "kind": "chart",
          "text": "Figure 16: Hypermarket metrics 2012-2017",
          "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:36:14.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "08daa611-9b00-4ef9-837e-8e69553d704e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.12,
            "y": 0.6
          },
          "kind": "chart",
          "text": "Figure 17: Out-of-home consumption metrics 2016-2017",
          "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:36:14.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "43667d0a-6639-46fa-95e1-a1164e1ba786",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.3,
            "x": 0.12,
            "y": 0.46
          },
          "kind": "disclaimer",
          "text": "Sources: Kantar Worldpanel; Bain & Company",
          "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:36:14.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "14a552d3-bf6e-4839-a0b3-badd68319a51",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Hypermarket frequency: 21.3",
          "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 12:57:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-38160007d6da",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.75,
            "x": 0.12,
            "y": 0.55
          },
          "kind": "title",
          "text": "Total out-of-home consumption grew by 6.2% in 2017, mainly because of increased shopping frequency",
          "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:36:14.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8cfef892-5894-43fe-b033-22d456bcfc10",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.75,
            "x": 0.12,
            "y": 0.145
          },
          "kind": "title",
          "text": "Hypermarkets suffer from declines in traffic, volume per household and penetration",
          "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:36:14.038+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "96b7bcd7-81ea-4f13-aeb7-ebc60bd80c19",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "Hypermarket frequency",
          "numberRaw": "21.3",
          "numberKind": "plain",
          "actionTitle": "Hypermarkets suffer from declines in traffic, volume per household and penetration",
          "calloutText": "Hypermarkets suffer from declines in traffic, volume per household and penetration.",
          "numberScale": null,
          "numberValue": 21.3,
          "metricFamily": "other",
          "numberCurrency": null
        }
      ],
      "tools": [
        {
          "tool": {
            "name": "The Rule of Three",
            "slug": "the-rule-of-three",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-8962-75cf-b4f8-9394501a6f33",
            "version": 1,
            "bodyDocId": null,
            "description": "Ideas presented in threes are more memorable and satisfying",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "block",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019dd95a-16c4-7148-811f-5dd8bd175357",
          "evidence": "Three failure modes named: traffic, volume per household, penetration.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 23,
          "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": "019dd95a-16c4-7148-811f-56cb6e23ad93",
          "evidence": "Title: 'Hypermarkets suffer from declines in traffic, volume per household and penetration.'",
          "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": 80,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "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": "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": "019dd95a-16c4-7148-811f-595e8837cf9e",
          "evidence": "Red triangles flag negative deltas on hypermarket bars.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 23,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "to": 25,
          "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": "019dd95a-0702-74a3-87e6-731a3363aeb0",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Implications (So What)",
            "slug": "triple-take-the-implications-so-what",
            "status": "active",
            "canonId": "019dd9b8-09c7-75cd-8c7b-ae0e23cca2b8",
            "version": 1,
            "description": null
          },
          "evidence": "Out-of-home opportunity and local-player share gain explain implications.",
          "position": 2,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Reflection",
            "slug": "reflection",
            "status": "active",
            "canonId": "019dd9b8-0510-73fd-8d00-1c7e45f7bc98",
            "version": 1,
            "description": "The \"so what\" beat. Used by analytical arcs (Triple-take, Onion) and learning arcs (Voyage-return, Tragedy)."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 24,
          "from": 22,
          "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": "019dd95a-088c-724c-b311-c66a2f0f3e66",
          "evidence": "Out-of-home framed as opportunity, then hypermarket declines, then convenience/grocery upside.",
          "position": 5,
          "objective": "Drill into out-of-home consumption opportunity (hyper decline → convenience upside)",
          "confidence": 72,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 24,
      "type": "analysis",
      "title": "Includes data on FMCG growth by city tier and local brand market share gains.",
      "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": "overcrowded",
        "densityScore": 90,
        "componentCount": 9,
        "textChars": 2292,
        "nDataPoints": 14,
        "notes": "Includes data on FMCG growth by city tier and local brand market share gains.",
        "elementsJson": [
          "headline_text",
          "bar_chart_stacked",
          "paragraph",
          "footnote"
        ],
        "confidence": 0.95,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:12.988+00",
          "seconds": 4.329,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/24",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-24",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.25,
            "w": 0.38,
            "x": 0.515,
            "y": 0.215
          },
          "kind": "chart",
          "text": "Food and beverage spending by channel (B RMB, 2017)",
          "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:36:12.988+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "0cc2fefa-2558-4986-84b1-bbde7a7ae4ba",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.38,
            "x": 0.105,
            "y": 0.215
          },
          "kind": "chart",
          "text": "Food and beverage spending by channel (B RMB, 2017)",
          "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:36:12.988+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d0920859-2ee5-420a-b0e4-28d1e3b445c6",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.105,
            "y": 0.43
          },
          "kind": "disclaimer",
          "text": "Notes: Based on food and beverage spending in Tier-1 and Tier-2 cities in China for 10 categories; 10 categories include beer, packaged water, RTD tea, juice, CSD, biscuits, chewing gum, chocolate, candy and yogurt; RTD tea is ready-to-drink tea; CSD is carbonated soft drinks; other channels in out-of-home spending include on-premises consumption in KTV/cinema/bar/club and coffee/bakery/ice cream stores; grocery refers to stores that are focused on FMCG products and are smaller than 100 square meters; convenience refers to small stores that are open for more than 16 hours per day and have a counter by the exit. Sources: Kantar Worldpanel; Bain & Company",
          "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:36:12.988+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "68ddeddc-36e8-42b6-a9fd-15ed911134b8",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Food and beverage spending: 26%",
          "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 12:57:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-0202f71dcc90",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.2,
            "w": 0.8,
            "x": 0.105,
            "y": 0.685
          },
          "kind": "paragraph",
          "text": "As we have consistently seen in each year's research, local players gained share over foreign competitors. Local brands grew by 7.7% in 2017, capturing 98% of market growth, while foreign brands increased by 0.4% (see Figure 19). Local brands won share over foreign brands in 21 categories while foreign brands gained share in only 4 categories. RTD tea was the only category in which there was no change (see Figure 20). While local brands remain strong, some multinationals are taking steps to improve their performance. Among their approaches: focusing more on faster innovations and serving younger consumers shopping online. There are many reasons for the success of local brands. They have a better understanding of local demand and are faster at making and executing decisions. This allows them to adapt quickly to new trends. Also, they benefit from a higher historical penetration in the lower-tier cities, where premiumization has started to take off.",
          "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:36:12.988+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4b30a6d6-09f9-41ba-b05e-cdaab8907afc",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.105,
            "y": 0.57
          },
          "kind": "paragraph",
          "text": "Similar to the results of our 2016 survey, FMCG value growth in China does not vary much by city tiers. Across all tiers, the growth rate is converging toward 4%–5%. Instead, variations take place at the province level. The southwest and central provinces continue to outperform the coastal provinces as industries shift inland, spurring a mass migration.",
          "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:36:12.988+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b3113a2a-263b-46f4-bd64-8896e0c7693e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.3,
            "x": 0.105,
            "y": 0.535
          },
          "kind": "title",
          "text": "A look at growth by geography",
          "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:36:12.988+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "05277af6-124a-412d-b314-d3efd6c7bb7b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.45,
            "x": 0.105,
            "y": 0.65
          },
          "kind": "title",
          "text": "Continuing battle between local and foreign brands",
          "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:36:12.988+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ce781e8f-890c-4a2b-831f-59501344d8f0",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.05,
            "w": 0.8,
            "x": 0.105,
            "y": 0.145
          },
          "kind": "title",
          "text": "Convenience and grocery stores have huge potential for out-of-home consumption sales in many categories",
          "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:36:12.988+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "eba1a256-5afe-4412-93a2-256ea0e4485e",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "Food and beverage spending",
          "numberRaw": "26%",
          "numberKind": "percent",
          "actionTitle": "Convenience and grocery stores have huge potential for out-of-home consumption sales in many categories",
          "calloutText": null,
          "numberScale": null,
          "numberValue": 26,
          "metricFamily": "cost_savings",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811f-66ded9c9f7ba",
          "evidence": "Frames hypermarket decline (p23) vs convenience upside as opposites.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 65,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 24,
          "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": "019dd95a-16c4-7148-811f-63d2b2897288",
          "evidence": "Title: 'Convenience and grocery stores have huge potential for out-of-home consumption sales.'",
          "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": 78,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 24,
          "whyItWorks": "Solves two failure modes at once. (1) The buried claim: action titles place the conclusion on the page before any analysis is read, so a busy reader doesn't reverse-engineer it from the chart. (2) The spineless deck: because each title is a claim, slides have to ladder up to the governing thought; logical gaps become visible as topic-shaped titles in a sequence that no longer reads as a story.",
          "antipattern": "Topic labels disguised as titles — Volume by quarter, Key findings, Pricing strategy, Margins have been impacted. No verb, or a passive verb with no agent, or a fact (Revenue grew 12%) without the so-what. Also: titles that overreach the chart's evidence, multi-claim X-grew-but-Y-fell welded titles, and mechanical repetition of the same X-drove-Y template across the deck.",
          "cardinality": null,
          "narrativePurpose": "Forces the deck to carry its argument in the title bar so a senior reader can extract the recommendation without opening a single slide; converts a binder of topics into a navigable pyramid where every slide is a node defending the apex."
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "to": 25,
          "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": "019dd95a-0702-74a3-87e6-731a3363aeb0",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Implications (So What)",
            "slug": "triple-take-the-implications-so-what",
            "status": "active",
            "canonId": "019dd9b8-09c7-75cd-8c7b-ae0e23cca2b8",
            "version": 1,
            "description": null
          },
          "evidence": "Out-of-home opportunity and local-player share gain explain implications.",
          "position": 2,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Reflection",
            "slug": "reflection",
            "status": "active",
            "canonId": "019dd9b8-0510-73fd-8d00-1c7e45f7bc98",
            "version": 1,
            "description": "The \"so what\" beat. Used by analytical arcs (Triple-take, Onion) and learning arcs (Voyage-return, Tragedy)."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 24,
          "from": 22,
          "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": "019dd95a-088c-724c-b311-c66a2f0f3e66",
          "evidence": "Out-of-home framed as opportunity, then hypermarket declines, then convenience/grocery upside.",
          "position": 5,
          "objective": "Drill into out-of-home consumption opportunity (hyper decline → convenience upside)",
          "confidence": 72,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 25,
      "type": "analysis",
      "title": "Figure 19 is a stacked bar chart showing market value (B RMB) from 2013-2017. Figure 20 is a waterfall/bar chart showing share change by category.",
      "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": "dense",
        "densityScore": 58,
        "componentCount": 7,
        "textChars": 418,
        "nDataPoints": 60,
        "notes": "Figure 19 is a stacked bar chart showing market value (B RMB) from 2013-2017. Figure 20 is a waterfall/bar chart showing share change by category.",
        "elementsJson": [
          "bar_chart_stacked",
          "waterfall_chart"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:11.98+00",
          "seconds": 3.122,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/25",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-25",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "In 2017, local players continued to gain share against foreign rivals.",
          "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 12:57:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-e7ee2a846207",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.13,
            "y": 0.19
          },
          "kind": "chart",
          "text": "Market value of 26 categories by foreign vs. Chinese brands (B RMB)",
          "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:36:11.98+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "7aebbbfb-08d0-43be-8e93-ecd0efca705d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.75,
            "x": 0.13,
            "y": 0.61
          },
          "kind": "chart",
          "text": "Change in foreign brands' value share by category (2015-17)",
          "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:36:11.98+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "d872c7ec-cf4b-4efd-b25d-01d767db1829",
          "parentComponentId": null
        },
        {
          "bbox": null,
          "kind": "metric",
          "text": "Market share: 98%",
          "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 12:57:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba65-e8ac3a5e1c09",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.01,
            "w": 0.3,
            "x": 0.13,
            "y": 0.475
          },
          "kind": "source-note",
          "text": "Sources: Kantar Worldpanel; Bain & Company",
          "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:36:11.98+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c31b9f81-4b13-4035-a922-ceab3c385f23",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.8,
            "x": 0.13,
            "y": 0.55
          },
          "kind": "title",
          "text": "Foreign brands lost share to domestic brands in 21 categories and gained share in 4 categories",
          "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:36:11.98+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8fae7ba9-546b-4879-bcc4-033b96c80f84",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.02,
            "w": 0.6,
            "x": 0.13,
            "y": 0.125
          },
          "kind": "title",
          "text": "In 2017, local players continued to gain share against foreign rivals",
          "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:36:11.98+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a17ff6f2-b6fe-4a7d-ab4d-27119261b8dd",
          "parentComponentId": null
        }
      ],
      "metrics": [
        {
          "metricRaw": "Market share",
          "numberRaw": "98%",
          "numberKind": "percent",
          "actionTitle": "In 2017, local players continued to gain share against foreign rivals",
          "calloutText": "In 2017, local players continued to gain share against foreign rivals.",
          "numberScale": null,
          "numberValue": 98,
          "metricFamily": "share_penetration",
          "numberCurrency": null
        }
      ],
      "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": "019dd95a-16c4-7148-811f-78dec886760b",
          "evidence": "Foreign vs Chinese brand value-share contrast across five years.",
          "pageRefs": null,
          "priority": "Core",
          "whenToUse": null,
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 25,
          "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": "019dd95a-16c4-7148-811f-6a8afaeedf46",
          "evidence": "Title: 'In 2017, local players continued to gain share against foreign rivals.'",
          "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-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 25,
          "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": "019dd95a-16c4-7148-811f-72f281a406bd",
          "evidence": "Per-year market-growth-captured row (98% to local in 2017) annotates stacked bars.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 78,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 25,
          "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": "019dd95a-16c4-7148-811f-7572ad889b60",
          "evidence": "Red = Chinese share, dark grey = foreign — instant readability.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 25,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "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": "019dd95a-16c4-7148-811f-6fc9c93421bb",
          "evidence": "Two red-circled CAGRs (0.4% foreign, 7.7% Chinese) anchor the headline.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 88,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 25,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 25,
          "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": 16,
          "name": "Evidence & Proof",
          "beatId": "019dd95a-0702-74a3-87e6-665c885e3610",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Evidence & Proof",
            "slug": "consultants-gambit-evidence-proof",
            "status": "active",
            "canonId": "019dd9b8-07b1-7688-8e1e-7637fec3802a",
            "version": 1,
            "description": null
          },
          "evidence": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data.",
          "position": 4,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Evidence",
            "slug": "evidence",
            "status": "active",
            "canonId": "019dd9b8-03f9-772a-b84a-4f07b415b77a",
            "version": 1,
            "description": "A dedicated proof beat exists in only ~4 arcs (Gambit, Sequoia, AIDA, Monroes). Other arcs embed evidence inline within development."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "to": 25,
          "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": "019dd95a-0702-74a3-87e6-731a3363aeb0",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Implications (So What)",
            "slug": "triple-take-the-implications-so-what",
            "status": "active",
            "canonId": "019dd9b8-09c7-75cd-8c7b-ae0e23cca2b8",
            "version": 1,
            "description": null
          },
          "evidence": "Out-of-home opportunity and local-player share gain explain implications.",
          "position": 2,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Reflection",
            "slug": "reflection",
            "status": "active",
            "canonId": "019dd9b8-0510-73fd-8d00-1c7e45f7bc98",
            "version": 1,
            "description": "The \"so what\" beat. Used by analytical arcs (Triple-take, Onion) and learning arcs (Voyage-return, Tragedy)."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 26,
          "from": 25,
          "loop": {
            "name": "16_david_goliath",
            "slug": "16-david-goliath",
            "status": "active",
            "bestFor": "Startups, disruptive innovation, competitive displacement",
            "canonId": "019dd956-6c5d-704a-9c33-1aa083ca432e",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Giant's Weakness -> Our Slingshot (Unique Edge) -> The Topple",
            "description": "Frame your initiative as the nimble underdog taking on a slow, bloated incumbent",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-ca353a682102",
          "evidence": "Stacked bars show local share rising; 'Examples of how local companies gain an edge' lists three plays.",
          "position": 6,
          "objective": "Show how nimble local brands captured 98% of category growth from foreign giants",
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 26,
      "type": "resolution",
      "title": "Page 24 of a Bain & Company / Kantar Worldpanel report.",
      "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": "dense",
        "densityScore": 67,
        "componentCount": 7,
        "textChars": 782,
        "nDataPoints": 8,
        "notes": "Page 24 of a Bain & Company / Kantar Worldpanel report.",
        "elementsJson": [
          "paragraph"
        ],
        "confidence": 0.9,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:15.293+00",
          "seconds": 6.404,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/26",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-26",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Take advantage of channel dynamics and anticipate future retail consolidation.",
          "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 12:57:35+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-dd2057a01643",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.085,
            "w": 0.786,
            "x": 0.107,
            "y": 0.816
          },
          "kind": "paragraph",
          "text": "Prepare for “New Retail.” As illustrated by the recent alliance between Sun Art and Alibaba, traditional retailers should prepare themselves for New Retail.",
          "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:36:15.293+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "048179e8-ab37-4c43-8b17-fb159d568524",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.205,
            "w": 0.786,
            "x": 0.107,
            "y": 0.543
          },
          "kind": "paragraph",
          "text": "Take advantage of channel dynamics and anticipate future retail consolidation... Develop high-value and personalized products to make the most of the premiumization trend... Become data-driven, consumer-centric companies.",
          "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:36:15.293+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "614c36c8-df2f-4e72-8d68-4dc9f8f19d57",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.355,
            "w": 0.786,
            "x": 0.107,
            "y": 0.128
          },
          "kind": "paragraph",
          "text": "Examples of how local companies gain an edge: They appeal to the right niche and cater to local consumers' specific needs... They develop innovative products and concepts to create “white space.”... They use omnichannel to enhance consumer engagement...",
          "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:36:15.293+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c47a9d18-7365-458c-8cac-2cf071412758",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.022,
            "w": 0.288,
            "x": 0.107,
            "y": 0.505
          },
          "kind": "title",
          "text": "How brands can win",
          "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:36:15.293+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "33186457-292f-4016-94a8-c3d3a0545013",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.022,
            "w": 0.335,
            "x": 0.107,
            "y": 0.778
          },
          "kind": "title",
          "text": "How retailers can win",
          "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:36:15.293+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "8e761835-20f1-4ce8-b658-59fff578ba0c",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.018,
            "w": 0.584,
            "x": 0.208,
            "y": 0.064
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns",
          "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:36:15.293+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "b4e2c30f-4b3f-4ac4-8269-609107dcd755",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [
        {
          "tool": {
            "name": "The Rule of Three",
            "slug": "the-rule-of-three",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-8962-75cf-b4f8-9394501a6f33",
            "version": 1,
            "bodyDocId": null,
            "description": "Ideas presented in threes are more memorable and satisfying",
            "familyLabel": null,
            "categoryName": "Block",
            "categorySlug": "block"
          },
          "agent": "Storyteller",
          "layer": "block",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019dd95a-16c4-7148-811f-8b4694838d2c",
          "evidence": "Three bolded patterns: niche/local-fit, white-space innovation, omnichannel engagement.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 85,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 26,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "Tricolon",
            "slug": "tricolon",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd956-a13d-7356-9038-da27abe565f8",
            "version": 1,
            "bodyDocId": null,
            "description": "Three parallel phrases of increasing length or intensity",
            "familyLabel": null,
            "categoryName": "Loop",
            "categorySlug": "loop"
          },
          "agent": "Storyteller",
          "layer": "loop",
          "agents": [
            "Storyteller"
          ],
          "matchId": "019dd95a-16c4-7148-811f-8ebb835eaead",
          "evidence": "Three parallel-structured 'They [verb]…' sentence stems.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 26,
          "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": "019dd95a-16c4-7148-811f-7c21d0f58f8e",
          "evidence": "Header: 'Examples of how local companies gain an edge' lists three plays.",
          "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": 80,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 26,
          "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": "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": "019dd95a-16c4-7148-811f-84a248a75d4a",
          "evidence": "Closes with 'Take advantage of channel dynamics and anticipate future retail consolidation.'",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 70,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 26,
          "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": "019dd95a-16c4-7148-811f-81e264741659",
          "evidence": "Saky 5%, YNBY 15%, Kaiwei 1.8% brand-share examples by name.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 78,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 26,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        },
        {
          "tool": {
            "name": "List presentation",
            "slug": "list-presentation",
            "status": "active",
            "bestFor": null,
            "canonId": "019dd9e1-4ef7-777d-ba68-9074c2b3bcf1",
            "version": 1,
            "bodyDocId": null,
            "description": "Bulleted, numbered, or checklist enumerations.",
            "familyLabel": null,
            "categoryName": null,
            "categorySlug": null
          },
          "agent": null,
          "layer": "slide",
          "agents": null,
          "matchId": "7910773b-59c0-4df2-9a35-1b9abdc32645",
          "evidence": "The slide presents several bullet points listing ways local companies gain an edge.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 0.7,
          "extraction": {
            "at": "2026-07-16 21:08:46.844092+00",
            "model": "or:meta-llama/llama-4-scout",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 26,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": "common",
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 27,
          "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": 26,
          "name": "Impact & Next Steps",
          "beatId": "019dd95a-0702-74a3-87e6-6bf2a8b35e80",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Impact & Next Steps",
            "slug": "consultants-gambit-impact-next-steps",
            "status": "active",
            "canonId": "019dd9b8-0849-7728-9ee9-fd1609c4c655",
            "version": 1,
            "description": null
          },
          "evidence": "Three local-edge plays plus 'How brands/retailers can win' with 'Prepare for New Retail.'",
          "position": 5,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "to": 27,
          "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": 26,
          "name": "The Action (Now What)",
          "beatId": "019dd95a-0702-74a3-87e6-7419c289455b",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Action (Now What)",
            "slug": "triple-take-the-action-now-what",
            "status": "active",
            "canonId": "019dd9b8-0a5e-735a-bf53-3a1ba629b7aa",
            "version": 1,
            "description": null
          },
          "evidence": "Three local-edge plays plus 'Prepare for New Retail' CTA.",
          "position": 3,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [
        {
          "to": 26,
          "from": 25,
          "loop": {
            "name": "16_david_goliath",
            "slug": "16-david-goliath",
            "status": "active",
            "bestFor": "Startups, disruptive innovation, competitive displacement",
            "canonId": "019dd956-6c5d-704a-9c33-1aa083ca432e",
            "version": 1,
            "bodyDocId": "019df22a-2420-77be-bc41-ded96d08cb21",
            "structure": "The Giant's Weakness -> Our Slingshot (Unique Edge) -> The Topple",
            "description": "Frame your initiative as the nimble underdog taking on a slow, bloated incumbent",
            "familyLabel": null
          },
          "matchId": "019dd95a-088c-724c-b311-ca353a682102",
          "evidence": "Stacked bars show local share rising; 'Examples of how local companies gain an edge' lists three plays.",
          "position": 6,
          "objective": "Show how nimble local brands captured 98% of category growth from foreign giants",
          "confidence": 80,
          "extraction": {
            "at": "2026-04-29 13:07:29.689431+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          }
        }
      ],
      "locked": true
    },
    {
      "page": 27,
      "type": "resolution",
      "title": "The slide contains a list of recommendations followed by a detailed set of footnotes defining categories and metrics used in the broader report.",
      "function": "recommend",
      "rawType": "initiative_list",
      "block": null,
      "metadata": {
        "slideType": "initiative_list",
        "slideTypeCanon": {
          "name": "Initiative list",
          "slug": "initiative_list",
          "status": "active",
          "canonId": "019de52d-0caf-770e-9b91-b99239121f50",
          "version": 1,
          "description": null
        },
        "function": "recommend",
        "functionCanon": {
          "name": "Recommend",
          "slug": "recommend",
          "status": "active",
          "canonId": "019de52d-1609-764f-9882-9ef3ede71d8b",
          "version": 1,
          "description": null
        },
        "density": "balanced",
        "densityScore": 48,
        "componentCount": 4,
        "textChars": 2548,
        "nDataPoints": 0,
        "notes": "The slide contains a list of recommendations followed by a detailed set of footnotes defining categories and metrics used in the broader report.",
        "elementsJson": [
          "paragraph",
          "footnote"
        ],
        "confidence": 0.95,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:12.516+00",
          "seconds": 3.454,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/27",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-27",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Make the store experience attractive again.",
          "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 12:57:33+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-1c38412fe4f5",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.2,
            "w": 0.8,
            "x": 0.1,
            "y": 0.75
          },
          "kind": "disclaimer",
          "text": "1 These 26 categories are a) packaged food: biscuits, chocolate, instant noodles, candy, chewing gum and infant formula; b) beverages: milk, yogurt, juice, beer, ready-to-drink (RTD) tea, carbonated soft drinks (CSD) and packaged water; c) personal care: skin care, shampoo, personal wash, toothpaste, makeup, hair conditioner, diapers and toothbrushes; and d) home care: toilet tissue, fabric detergent, facial tissue, kitchen cleanser and fabric softener.\n2 These 24 categories are pet food, oyster sauce, cereals, MSG (monosodium glutamate), Asian traditional drinks, functional drinks, kitchen rolls, wet tissue, napkins, leather care products, batteries, fragrance, hair removal, hair styling, ice cream, nutrient solid drinks, frozen food, flavor powder, foreign spirits, soybean milk, mouthwash, Chinese spirits, cooking oil and nutrient supplements.\n3 These 10 categories are beer, packaged water, RTD tea, juice, CSD, biscuits, chewing gum, chocolate, candy and yogurt.\n4 Kantar Worldpanel has excluded cigarettes from total FMCG data and has updated all category data in 2017 accordingly, leading to some inconsistencies with previous years' data.\n5 Online penetration is defined as the number of people who bought online at least once per year divided by the number of people who bought the category at least once.\n6 Penetration is defined as the percentage of households in a market buying a particular brand in a given year.\n7 Relative online penetration is defined as the total number of online purchasers divided by the number of purchasers of the category.",
          "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:36:12.516+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "a6606b57-ede3-4b64-8a7f-a10805c3890e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.25,
            "w": 0.8,
            "x": 0.1,
            "y": 0.12
          },
          "kind": "list",
          "text": "Another important step involves integrating inventory and supply chain management with e-commerce retailers or solution platforms. Retailers could improve the cost and efficiency of capabilities such as warehouse management, inventory planning and last-mile delivery.\n\nRedesign store portfolio and formats to better capture customers’ needs. Retailers could optimize their shelf space and create more occasion- or experience-based space (e.g., in-store dining) to improve customer stickiness and make the most of the growing popularity of out-of-home sales.\n\nMake the store experience attractive again. Finally, stores should invest in digitalization, with such innovations as augmented reality, digital price tags, “magic mirrors” and sampling machines to create better in-store experiences and a higher level of interaction and engagement with shoppers.",
          "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:36:12.516+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "5cf1eeb2-da3c-438e-865b-22542da839a8",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.6,
            "x": 0.2,
            "y": 0.06
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:12.516+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "aff56d34-4ab6-4c6b-a6f9-2d4b5362a8d3",
          "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": "019dd95a-16c4-7148-811f-91c901d82f9a",
          "evidence": "Callout: 'Make the store experience attractive again.'",
          "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": 75,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 27,
          "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": "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": "019dd95a-16c4-7148-811f-969448243fd9",
          "evidence": "Final recommendation acts as memorable CTA closing.",
          "pageRefs": null,
          "priority": null,
          "whenToUse": null,
          "confidence": 78,
          "extraction": {
            "at": "2026-04-29 13:07:33.319977+00",
            "model": "claude-legacy",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "pageNumber": 27,
          "whyItWorks": null,
          "antipattern": null,
          "cardinality": null,
          "narrativePurpose": null
        }
      ],
      "frameworks": [],
      "arcBeats": [
        {
          "to": 27,
          "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": 26,
          "name": "Impact & Next Steps",
          "beatId": "019dd95a-0702-74a3-87e6-6bf2a8b35e80",
          "matchId": "019dd95a-0543-7581-99b0-76ada0d1895b",
          "beatType": {
            "name": "Impact & Next Steps",
            "slug": "consultants-gambit-impact-next-steps",
            "status": "active",
            "canonId": "019dd9b8-0849-7728-9ee9-fd1609c4c655",
            "version": 1,
            "description": null
          },
          "evidence": "Three local-edge plays plus 'How brands/retailers can win' with 'Prepare for New Retail.'",
          "position": 5,
          "isPrimaryArc": true,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 85
        },
        {
          "to": 27,
          "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": 26,
          "name": "The Action (Now What)",
          "beatId": "019dd95a-0702-74a3-87e6-7419c289455b",
          "matchId": "019dd95a-0543-7581-99b0-7975489828f4",
          "beatType": {
            "name": "The Action (Now What)",
            "slug": "triple-take-the-action-now-what",
            "status": "active",
            "canonId": "019dd9b8-0a5e-735a-bf53-3a1ba629b7aa",
            "version": 1,
            "description": null
          },
          "evidence": "Three local-edge plays plus 'Prepare for New Retail' CTA.",
          "position": 3,
          "isPrimaryArc": false,
          "parentBeatType": {
            "name": "Resolution",
            "slug": "resolution",
            "status": "active",
            "canonId": "019dd9b8-045d-703b-8dd7-e92aba3ba91b",
            "version": 1,
            "description": "How the deck ends. Required in 19/20 arcs. The exception (Sparkline) ends with new bliss which is functionally a resolution."
          },
          "alignedBlockIds": null,
          "matchConfidence": 60
        }
      ],
      "loops": [],
      "locked": true
    },
    {
      "page": 28,
      "type": "appendix",
      "function": "other",
      "rawType": "appendix",
      "block": null,
      "metadata": {
        "slideType": "appendix",
        "slideTypeCanon": {
          "name": "Appendix",
          "slug": "appendix",
          "status": "active",
          "canonId": "019de52d-0762-71f8-b564-89ab863301cc",
          "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": 40,
        "componentCount": 4,
        "textChars": 855,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [
          "paragraph"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:11.509+00",
          "seconds": 2.34,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/28",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-28",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.155,
            "w": 0.794,
            "x": 0.106,
            "y": 0.183
          },
          "kind": "paragraph",
          "text": "Bruno Lannes is a partner with Bain's Shanghai office. You may contact him by email at bruno.lannes@bain.com. Jason Ding is a partner with Bain's Beijing office. You may contact him by email at jason.ding@bain.com. Marcy Kou is CEO at Kantar Worldpanel Asia. You may contact her by email at marcy.kou@kantarworldpanel.com. Jason Yu is Managing Director at Kantar Worldpanel Great China. You may contact him by email at jason.yu@ctrchina.cn. Please direct questions and comments about this report via email to the authors.",
          "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:36:11.509+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "55f27ec6-4b76-4066-a8d3-d25836c0a34b",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.065,
            "w": 0.794,
            "x": 0.106,
            "y": 0.387
          },
          "kind": "paragraph",
          "text": "This report is a joint effort between Bain & Company and Kantar Worldpanel. The authors extend gratitude to all who contributed to this report, in particular Iris Wang, Hardy Huang and Wenhuan Chang from Bain; and Rachel Lee, Tina Qin, Robin Qiao and Josh Xu from Kantar Worldpanel.",
          "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:36:11.509+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6cb41e84-8d83-4038-9d49-2fd293366148",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.022,
            "w": 0.165,
            "x": 0.106,
            "y": 0.353
          },
          "kind": "title",
          "text": "Acknowledgments",
          "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:36:11.509+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "571dccde-5f97-4706-93ce-22f9d6a57829",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.022,
            "w": 0.415,
            "x": 0.106,
            "y": 0.125
          },
          "kind": "title",
          "text": "About the authors and acknowledgments",
          "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:36:11.509+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "975918fa-970b-47bd-a258-003394914915",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    },
    {
      "page": 29,
      "type": "setup",
      "title": "The slide contains only the header and footer branding.",
      "function": "filler",
      "rawType": "filler",
      "block": null,
      "metadata": {
        "slideType": "filler",
        "slideTypeCanon": {
          "name": "Filler",
          "slug": "filler",
          "status": "active",
          "canonId": "019de52d-0829-76f9-9abe-4c11ee7bf4ab",
          "version": 1,
          "description": null
        },
        "function": "filler",
        "functionCanon": {
          "name": "Filler",
          "slug": "filler",
          "status": "active",
          "canonId": "019de52d-1568-702b-ad12-428490978783",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 4,
        "componentCount": 2,
        "textChars": 85,
        "nDataPoints": 0,
        "notes": "The slide contains only the header and footer branding.",
        "elementsJson": [],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:11.512+00",
          "seconds": 2.234,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/29",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-29",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.015,
            "w": 0.056,
            "x": 0.472,
            "y": 0.94
          },
          "kind": "paragraph",
          "text": "Page 27",
          "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:36:11.512+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "46b91a41-910e-4f7a-a1aa-5553c88dbfc6",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.015,
            "w": 0.584,
            "x": 0.208,
            "y": 0.062
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:11.512+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f8c6ecbe-1977-4cca-9e71-f23ce3f47c16",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    },
    {
      "page": 30,
      "type": "setup",
      "function": "filler",
      "rawType": "filler",
      "block": null,
      "metadata": {
        "slideType": "filler",
        "slideTypeCanon": {
          "name": "Filler",
          "slug": "filler",
          "status": "active",
          "canonId": "019de52d-0829-76f9-9abe-4c11ee7bf4ab",
          "version": 1,
          "description": null
        },
        "function": "filler",
        "functionCanon": {
          "name": "Filler",
          "slug": "filler",
          "status": "active",
          "canonId": "019de52d-1568-702b-ad12-428490978783",
          "version": 1,
          "description": null
        },
        "density": "sparse",
        "densityScore": 4,
        "componentCount": 2,
        "textChars": 85,
        "nDataPoints": 0,
        "notes": null,
        "elementsJson": [],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:11.458+00",
          "seconds": 2.062,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/30",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-30",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.015,
            "w": 0.056,
            "x": 0.472,
            "y": 0.941
          },
          "kind": "paragraph",
          "text": "Page 28",
          "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:36:11.458+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "f1dc2fee-822c-4fe1-8287-1c885d549a2d",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.015,
            "w": 0.584,
            "x": 0.208,
            "y": 0.061
          },
          "kind": "title",
          "text": "As Shoppers Upgrade, Growth Returns | Bain & Company, Inc. | Kantar Worldpanel",
          "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:36:11.458+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "4053935e-9005-4094-bd02-dfeae3c04081",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    },
    {
      "page": 31,
      "type": "setup",
      "title": "This slide serves as a corporate boilerplate or disclosure page for the two organizations involved in the deck.",
      "function": "front_matter",
      "rawType": "appendix_disclosure",
      "block": null,
      "metadata": {
        "slideType": "appendix_disclosure",
        "slideTypeCanon": {
          "name": "Appendix disclosure",
          "slug": "appendix_disclosure",
          "status": "active",
          "canonId": "019de52d-07b2-7549-8e8b-932a19f6e616",
          "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": "dense",
        "densityScore": 60,
        "componentCount": 6,
        "textChars": 867,
        "nDataPoints": 6,
        "notes": "This slide serves as a corporate boilerplate or disclosure page for the two organizations involved in the deck.",
        "elementsJson": [
          "paragraph"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:15.788+00",
          "seconds": 6.221,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/31",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-31",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": null,
          "kind": "callout",
          "text": "Bain & Company is the management consulting firm that the world's business leaders come to when they want results.",
          "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 12:57:34+00",
            "model": "or:google/gemini-3.1-flash-lite-preview",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "019dd951-b48d-72e7-ba66-a44925886ac8",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.8,
            "x": 0.1,
            "y": 0.17
          },
          "kind": "paragraph",
          "text": "Bain & Company is the management consulting firm that the world's business leaders come to when they want results. Bain advises clients on strategy, operations, technology, organization, private equity and mergers and acquisitions.",
          "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:36:15.788+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "16bf194a-f739-4acf-b616-db4b648ef994",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.08,
            "w": 0.8,
            "x": 0.1,
            "y": 0.31
          },
          "kind": "paragraph",
          "text": "What sets us apart: We believe a consulting firm should be more than an adviser. So we put ourselves in our clients' shoes, selling outcomes, not projects.",
          "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:36:15.788+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6be608e0-64ee-4654-a4ef-67d606b2479e",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.1,
            "w": 0.8,
            "x": 0.1,
            "y": 0.59
          },
          "kind": "paragraph",
          "text": "Kantar Worldpanel is the global expert in shoppers' behavior. Through continuous monitoring, advanced analytics and tailored solutions, Kantar Worldpanel inspires successful decisions by brand owners, retailers, market analysts and government organizations globally.",
          "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:36:15.788+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "6e57eca5-dced-4da6-943c-7550a77200c6",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.6,
            "x": 0.1,
            "y": 0.54
          },
          "kind": "title",
          "text": "Kantar Worldpanel—Inspiring Successful Decisions, a CTR service in China",
          "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:36:15.788+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "0214155c-8bf0-44a0-afa2-9d081c701c5f",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.03,
            "w": 0.3,
            "x": 0.1,
            "y": 0.12
          },
          "kind": "title",
          "text": "Shared Ambition, True 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:36:15.788+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "91b494f1-9859-40df-93fa-fe85e4f5150d",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    },
    {
      "page": 32,
      "type": "setup",
      "title": "This is a standard Bain & Company closing slide.",
      "function": "front_matter",
      "rawType": "disclaimer",
      "block": null,
      "metadata": {
        "slideType": "disclaimer",
        "slideTypeCanon": {
          "name": "Disclaimer",
          "slug": "disclaimer",
          "status": "active",
          "canonId": "019de52d-0801-727b-b98a-5ed095aeee78",
          "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": "balanced",
        "densityScore": 31,
        "componentCount": 3,
        "textChars": 655,
        "nDataPoints": 0,
        "notes": "This is a standard Bain & Company closing slide.",
        "elementsJson": [
          "logo_grid"
        ],
        "confidence": 1,
        "extraction": {
          "model": "google/gemini-3.1-flash-lite-preview-20260303",
          "runId": null,
          "at": "2026-05-02 19:36:24.806+00",
          "seconds": 15.142,
          "promptVersion": "v2-canon-conditioned"
        }
      },
      "links": {
        "slide": "/slides/019dd923-5ca1-7489-b635-f88e1d285443/32",
        "deck": "/decks/019dd923-5ca1-7489-b635-f88e1d285443",
        "deckAnchor": "/decks/019dd923-5ca1-7489-b635-f88e1d285443#slide-32",
        "deckJson": "/decks/019dd923-5ca1-7489-b635-f88e1d285443.json"
      },
      "components": [
        {
          "bbox": {
            "h": 0.138,
            "w": 0.135,
            "x": 0.058,
            "y": 0.083
          },
          "kind": "image",
          "text": "Bain & Company 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:36:24.806+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "1f162904-b2d0-491c-a288-456efd29fd76",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.015,
            "w": 0.36,
            "x": 0.058,
            "y": 0.803
          },
          "kind": "paragraph",
          "text": "For more information, visit www.bain.com",
          "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:36:24.806+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "ae514496-d0d0-4830-bdc1-802c6668c4dc",
          "parentComponentId": null
        },
        {
          "bbox": {
            "h": 0.058,
            "w": 0.884,
            "x": 0.058,
            "y": 0.901
          },
          "kind": "paragraph",
          "text": "AMSTERDAM • ATLANTA • BANGKOK • BEIJING • BENGALURU • BERLIN • BOSTON • BRUSSELS • BUENOS AIRES • CHICAGO • COPENHAGEN • DALLAS • DOHA • DUBAI • DÜSSELDORF • FRANKFURT • HELSINKI • HONG KONG • HOUSTON • ISTANBUL • JAKARTA • JOHANNESBURG • KUALA LUMPUR • KYIV • LAGOS • LONDON • LOS ANGELES • MADRID • MELBOURNE • MEXICO CITY • MILAN • MOSCOW • MUMBAI • MUNICH • NEW DELHI • NEW YORK • OSLO • PALO ALTO • PARIS • PERTH • RIO DE JANEIRO • RIYADH • ROME • SAN FRANCISCO • SANTIAGO • SÃO PAULO • SEOUL • SHANGHAI • SINGAPORE • STOCKHOLM • SYDNEY • TOKYO • TORONTO • WARSAW • WASHINGTON, D.C. • ZURICH",
          "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:36:24.806+00",
            "model": "google/gemini-3.1-flash-lite-preview-20260303",
            "runId": null,
            "seconds": null,
            "promptVersion": null
          },
          "componentId": "c2bd20ff-2ffb-4f67-8050-65fb187376c5",
          "parentComponentId": null
        }
      ],
      "metrics": [],
      "tools": [],
      "frameworks": [],
      "arcBeats": [],
      "loops": [],
      "locked": true
    }
  ],
  "arcBeats": [
    {
      "from": 5,
      "to": 6,
      "label": "Situation & Context",
      "description": "Executive summary frames China FMCG market and 7-year tracking series."
    },
    {
      "from": 7,
      "to": 9,
      "label": "Problem & Complication",
      "description": "Channels shifting, local brands captured 98% of growth — sets the 'how to win' question."
    },
    {
      "from": 10,
      "to": 15,
      "label": "Solution & Approach",
      "description": "Premiumization analysis (4% price rise) plus 2x2 of price vs volume strategies."
    },
    {
      "from": 16,
      "to": 25,
      "label": "Evidence & Proof",
      "description": "Imports, macro income curves, online momentum, hypermarket decline, local-vs-foreign share data."
    },
    {
      "from": 26,
      "to": 27,
      "label": "Impact & Next Steps",
      "description": "Three local-edge plays plus 'How brands/retailers can win' with 'Prepare for New Retail.'"
    }
  ],
  "loops": [
    {
      "from": 5,
      "to": 9,
      "label": "So What Cascade",
      "description": "Front-load the thesis: data → premiumization insight → how to win"
    },
    {
      "from": 10,
      "to": 13,
      "label": "Segmentation Split",
      "description": "Decompose aggregate FMCG growth across the four product sectors"
    },
    {
      "from": 14,
      "to": 15,
      "label": "2x2 Matrix",
      "description": "Map premiumization strategies on price vs volume axes"
    },
    {
      "from": 16,
      "to": 21,
      "label": "Tale Two Worlds",
      "description": "Contrast online (booming, import-heavy) vs offline (slowing) channels"
    },
    {
      "from": 22,
      "to": 24,
      "label": "Zoom In",
      "description": "Drill into out-of-home consumption opportunity (hyper decline → convenience upside)"
    },
    {
      "from": 25,
      "to": 26,
      "label": "David Goliath",
      "description": "Show how nimble local brands captured 98% of category growth from foreign giants"
    }
  ]
}