{
  "docId": "019dd923-622c-750b-8b99-5eb652949ff2",
  "docSlug": "85d244dae869",
  "documentTitle": "DoubleVerify Holdings, Inc. (DV)",
  "authorId": "54_Spruce_Point_Capital",
  "authorName": "Spruce Point Capital Management",
  "documentKindSlug": "activist-deck",
  "documentKindLabel": "Activist deck",
  "sourceTypeSlug": "short_seller",
  "sourceTypeLabel": "Short seller",
  "presentationDate": "2023-05-02 00:00:00",
  "orientation": "landscape",
  "aspectRatio": 1.3333334,
  "pageNumber": 9,
  "pageCount": 92,
  "prevPage": 8,
  "nextPage": 10,
  "slideType": "key_messages",
  "function": "diagnose_problem",
  "density": "dense",
  "nDataPoints": 8,
  "notes": "The slide uses a two-column layout with a sidebar for key themes and a main body for detailed evidence.",
  "elementsJson": [
    "headline_text",
    "bullet_list",
    "callout_box"
  ],
  "metadataConfidence": 1,
  "imagePath": null,
  "slideHref": "/slides/019dd923-622c-750b-8b99-5eb652949ff2/9",
  "deckHref": "/decks/019dd923-622c-750b-8b99-5eb652949ff2",
  "deckJsonHref": "/decks/019dd923-622c-750b-8b99-5eb652949ff2.json",
  "deckAnchorHref": "/decks/019dd923-622c-750b-8b99-5eb652949ff2#slide-9",
  "components": [
    {
      "bbox": null,
      "kind": "callout",
      "text": "DV is dependent on large customers to increase spending while pricing races to the bottom. Customer spending growth is slowing, and its ability to grow among smaller accounts is challenged.",
      "attrs": null,
      "subkind": null,
      "toolName": "Visual emphasis",
      "toolSlug": "visual-emphasis",
      "confidence": null,
      "componentId": "019dd953-14dc-7419-88c0-7baed0ac32cf",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.04,
        "w": 0.85,
        "x": 0.13,
        "y": 0.67
      },
      "kind": "list",
      "text": "DV's customer description is shady, and it is obscuring more information about the nature of its customers.",
      "attrs": null,
      "subkind": "bullet",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "835ced35-da26-4388-be51-7f076f8666f5",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.4,
        "w": 0.85,
        "x": 0.13,
        "y": 0.26
      },
      "kind": "list",
      "text": "DV's early success came from signing-up larger enterprise clients... average revenue from the top 100 customers has slowed markedly from 64% (2020) to 18% (2022).",
      "attrs": null,
      "subkind": "bullet",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "9fc1edb6-16ee-4977-bb07-4aef17c187dd",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.08,
        "w": 0.85,
        "x": 0.13,
        "y": 0.17
      },
      "kind": "list",
      "text": "DV is dependent on large customers to increase spending while pricing races to the bottom. Customer spending growth is slowing, and its ability to grow among smaller accounts is challenged.",
      "attrs": null,
      "subkind": "bullet",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "a0108496-5ef5-4c68-a2d2-bf19092fe47e",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.25,
        "w": 0.85,
        "x": 0.13,
        "y": 0.72
      },
      "kind": "list",
      "text": "DV is not transparent with customer reporting... failed to update a key slide... ceased a key disclosure about revenue facilitated through programmatic partnerships.",
      "attrs": null,
      "subkind": "bullet",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "c73c43a8-b17c-4596-a218-7176576acc80",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": null,
      "kind": "metric",
      "text": "share price downside: 35% - 45%",
      "attrs": null,
      "subkind": "primary",
      "toolName": "Quantification",
      "toolSlug": "quantification",
      "confidence": null,
      "componentId": "019dd953-14dc-7419-88c0-80b13b6ab1e5",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": null,
      "kind": "quote",
      "text": "“a pricing war” — Former employee; “absolute dog fight” — Former employee",
      "attrs": null,
      "subkind": null,
      "toolName": "Authority citation",
      "toolSlug": "authority-citation",
      "confidence": null,
      "componentId": "019dd953-14dc-7419-88c0-7ed9f7ccc2b2",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.12,
        "w": 0.7,
        "x": 0.28,
        "y": 0.02
      },
      "kind": "title",
      "text": "Spruce Point Estimates 35% - 45% ($15.90-$18.80/sh) Downside Risk To DoubleVerify (DV) Share Price",
      "attrs": null,
      "subkind": "headline",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "c4bd67ad-3b6b-4668-9f9b-9ad74b0be190",
      "frameworkName": null,
      "frameworkSlug": null
    }
  ],
  "metrics": [],
  "tools": [],
  "frameworks": [
    {
      "name": "fraud-exposure",
      "slug": null,
      "matchId": "bd17bc0e-686b-4b05-821e-f58d269dad15",
      "evidence": "The slide explicitly frames operational and reporting issues as evidence of 'shady' behavior and 'obfuscating' information.",
      "confidence": 0.9
    }
  ],
  "arcBeats": [
    {
      "to": 10,
      "from": 1,
      "beatId": "86b4c1ed-5f5a-4857-a728-91abeea2c56a",
      "arcName": "Overcoming the Monster",
      "arcSlug": "overcoming-monster",
      "beatName": "Setup & Stakes",
      "beatSlug": null,
      "evidence": "The document sets up the context and stakes, introducing the critical analysis of DoubleVerify's financial and business claims.",
      "position": 0,
      "confidence": 0.8,
      "parentBeatName": null,
      "parentBeatSlug": null
    }
  ],
  "loops": [],
  "imagePathAlt": null,
  "thumbSrc": null,
  "thumbSrcAlt": null,
  "locked": true
}