{
  "docId": "019dd923-622c-750b-8b97-11abf671ba12",
  "docSlug": "e116ed19ca52",
  "documentTitle": "GSX Techedu (GSX)",
  "authorId": "51_Muddy_Waters",
  "authorName": "Carson Block",
  "documentKindSlug": "research-note",
  "documentKindLabel": "Research note",
  "sourceTypeSlug": "short_seller",
  "sourceTypeLabel": "Short seller",
  "presentationDate": "2020-05-18 00:00:00",
  "orientation": "portrait",
  "aspectRatio": 0.77272725,
  "pageNumber": 20,
  "pageCount": 25,
  "prevPage": 19,
  "nextPage": 21,
  "slideType": "other",
  "function": "analyze_data",
  "density": "dense",
  "nDataPoints": 0,
  "notes": "This slide describes a technical investigation process involving data scraping and analysis of JSON files.",
  "elementsJson": [
    "paragraph"
  ],
  "metadataConfidence": 0.9,
  "imagePath": null,
  "slideHref": "/slides/019dd923-622c-750b-8b97-11abf671ba12/20",
  "deckHref": "/decks/019dd923-622c-750b-8b97-11abf671ba12",
  "deckJsonHref": "/decks/019dd923-622c-750b-8b97-11abf671ba12.json",
  "deckAnchorHref": "/decks/019dd923-622c-750b-8b97-11abf671ba12#slide-20",
  "components": [
    {
      "bbox": null,
      "kind": "callout",
      "text": "By having IP addresses, timestamps, and user identifiers, we were able to perform data analysis and bot detection across a number of classes on both Genshuixue and Gaotu100.",
      "attrs": null,
      "subkind": null,
      "toolName": "Visual emphasis",
      "toolSlug": "visual-emphasis",
      "confidence": null,
      "componentId": "019dd953-5371-75ed-83d3-a6b1700d9a57",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.018,
        "w": 0.764,
        "x": 0.118,
        "y": 0.306
      },
      "kind": "paragraph",
      "text": "The all.json file is also retrieved by your browser when you view a recorded session.",
      "attrs": null,
      "subkind": "paragraph",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "02542e15-3f97-41c4-9905-28da143ec7b4",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.035,
        "w": 0.764,
        "x": 0.118,
        "y": 0.094
      },
      "kind": "paragraph",
      "text": "and the GSX servers so we can see what data is being passed back and forth. This analysis yielded the path to the class archives that were the same as Genshuixue.",
      "attrs": null,
      "subkind": "paragraph",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "33ca8b1b-8a3f-4b0c-8742-6c419d17ceb0",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.035,
        "w": 0.764,
        "x": 0.118,
        "y": 0.341
      },
      "kind": "paragraph",
      "text": "By having IP addresses, timestamps, and user identifiers, we were able to perform data analysis and bot detection across a number of classes on both Genshuixue and Gaotu100.",
      "attrs": null,
      "subkind": "paragraph",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "3e439013-fc61-4c89-8b96-51d3dd31589d",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.071,
        "w": 0.764,
        "x": 0.118,
        "y": 0.146
      },
      "kind": "paragraph",
      "text": "After discovering the class archives, we then downloaded the archive for each of our purchased classes, opened the file and examined the contents. We were surprised to see that not only were there class materials, but there were files that contained information about the students, when they joined, and other details.",
      "attrs": null,
      "subkind": "paragraph",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "93743bda-a186-467b-9ffa-8b0b92c16bbc",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.071,
        "w": 0.764,
        "x": 0.118,
        "y": 0.235
      },
      "kind": "paragraph",
      "text": "Opening and inspecting the all.json file, gives us information about every student that joins, their user number, their IP address and a timestamp. There is also other information about when that student exits a class, as well as other information related to actions the instructor is taking.",
      "attrs": null,
      "subkind": "paragraph",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "9cd791c8-7c2b-4097-b3cc-e72f649e6369",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.018,
        "w": 0.09,
        "x": 0.792,
        "y": 0.956
      },
      "kind": "source-note",
      "text": "Page 20 of 25",
      "attrs": null,
      "subkind": null,
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "31a48958-211d-41a2-ac67-480f76a9cb83",
      "frameworkName": null,
      "frameworkSlug": null
    }
  ],
  "metrics": [],
  "tools": [],
  "frameworks": [],
  "arcBeats": [
    {
      "to": 25,
      "from": 11,
      "beatId": "22b51ee0-c483-4634-ab46-435735227a51",
      "arcName": "Problem-Agitate-Solution",
      "arcSlug": "problem-agitate-solution",
      "beatName": "Solution (Provide relief)",
      "beatSlug": "problem-agitate-solution-solution-provide-relief",
      "evidence": "The document proposes a methodology for analyzing and addressing bot activity",
      "position": 2,
      "confidence": 0.8,
      "parentBeatName": "Resolution",
      "parentBeatSlug": "resolution"
    }
  ],
  "loops": [
    {
      "to": 25,
      "from": 2,
      "name": "Logic Chain",
      "slug": "01-logic-chain",
      "bestFor": "Skeptical audiences, controversial recommendations, rigorous analysis",
      "matchId": "d873e137-3595-43d1-825d-9d9b226b165e",
      "evidence": "The document presents a series of logical steps to analyze and address bot activity",
      "position": 0,
      "objective": "To present a logical chain of evidence and analysis to support the conclusion",
      "structure": "Premise 1 (Accepted truth) -> Premise 2 (Observed fact) -> Therefore... (Inevitable conclusion)",
      "confidence": 0.7,
      "description": "Build an airtight chain of logic where each premise leads inevitably to the conclusion"
    }
  ],
  "imagePathAlt": null,
  "thumbSrc": null,
  "thumbSrcAlt": null,
  "locked": true
}