# The GameStop short squeeze (January 2021)

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv0kphv8001gjn06igb11klu
> It describes who does what, in what order, and with which technology. Read the plain-language sections first; the JSON at the end is the exact, complete data.

## Summary

- 20 steps across 2 layers
- Persona: Short sellers, Retail traders, Regulators and Congress
- Technology / systems: Brokerage apps, The stock market

## Pain points

Where this process hurts, worst first:

- **Hold and hope it falls** (The GameStop short squeeze (January 2021); painful): Losses on a short position are theoretically unlimited
- **Outrage: "they stopped us buying"** (The GameStop short squeeze (January 2021); painful): Many felt the system was rigged against small investors

## How to read this file

- A process is made of **layers**. The main layer is the top level; any step of kind `subprocess` opens a detail layer with its own lanes and steps.
- **Lanes** are either persona (people/roles) or technology (systems). Each step belongs to one lane; `using` lists tools a person uses for that step.
- Step kinds: `start`, `task`, `decision` (its arrows carry the answer as a label), `subprocess`, `end`.

## The GameStop short squeeze (January 2021)

Lanes:
- Short sellers: person / role (id `hedge`)
- Retail traders: person / role (id `retail`)
- Brokerage apps: technology / system (id `broker`)
- The stock market: technology / system (id `market`)
- Regulators and Congress: person / role (id `reg`)

Steps, in the order they run:

1. **Bet that a company will fail: borrow shares and sell them** [start; Short sellers; id `g1`]
   - then Plan to buy them back cheaper and keep the difference
2. **Plan to buy them back cheaper and keep the difference** [task; Short sellers; id `g2`]
   - then People online argue the stock is undervalued and heavily shorted
3. **People online argue the stock is undervalued and heavily shorted** [task; Retail traders; id `g3`]
   - then Buy shares and call options in huge numbers
4. **Buy shares and call options in huge numbers** [task; Retail traders; id `g4`]
   - then The price starts rising
5. **The price starts rising** [task; The stock market; id `g5`]
   - then Losses grow. Can they afford to wait?
6. **Losses grow. Can they afford to wait?** [decision; Short sellers; id `g6`]
   - if "Yes" go to Hold and hope it falls; if "No" go to Forced to buy shares back to close the position
7. **Hold and hope it falls** [task; Short sellers; id `g7`] ⚠ PAIN POINT (painful): Losses on a short position are theoretically unlimited
   - then The price starts rising
8. **Forced to buy shares back to close the position** [task; Short sellers; id `g8`]
   - then Their buying pushes the price even higher: the squeeze
9. **Their buying pushes the price even higher: the squeeze** [task; The stock market; id `g9`]
   - then Brokers hit collateral limits and restrict buying
10. **Brokers hit collateral limits and restrict buying** [subprocess; Brokerage apps; id `g10`], opens the detail layer "Why brokers restricted buying"
   - then Outrage: "they stopped us buying"
11. **Outrage: "they stopped us buying"** [task; Retail traders; id `g11`] ⚠ PAIN POINT (painful): Many felt the system was rigged against small investors
   - then The price drops sharply
12. **The price drops sharply** [task; The stock market; id `g12`]
   - then Hearings and reviews of how markets and brokers work
13. **Hearings and reviews of how markets and brokers work** [task; Regulators and Congress; id `g13`]
   - then Questions remain: short selling, settlement times, payment for order flow
14. **Questions remain: short selling, settlement times, payment for order flow** [end; Regulators and Congress; id `g14`]

```mermaid
flowchart LR
  subgraph l_hedge["Short sellers"]
    n_g1(["Bet that a company will fail: borrow shares and sell them"])
    n_g2["Plan to buy them back cheaper and keep the difference"]
    n_g6{"Losses grow. Can they afford to wait?"}
    n_g7["Hold and hope it falls"]
    n_g8["Forced to buy shares back to close the position"]
  end
  subgraph l_retail["Retail traders"]
    n_g3["People online argue the stock is undervalued and heavily shorted"]
    n_g4["Buy shares and call options in huge numbers"]
    n_g11["Outrage: 'they stopped us buying'"]
  end
  subgraph l_broker["Brokerage apps"]
    n_g10[["Brokers hit collateral limits and restrict buying"]]
  end
  subgraph l_market["The stock market"]
    n_g5["The price starts rising"]
    n_g9["Their buying pushes the price even higher: the squeeze"]
    n_g12["The price drops sharply"]
  end
  subgraph l_reg["Regulators and Congress"]
    n_g13["Hearings and reviews of how markets and brokers work"]
    n_g14(["Questions remain: short selling, settlement times, payment for order flow"])
  end
  n_g1 --> n_g2
  n_g2 --> n_g3
  n_g3 --> n_g4
  n_g4 --> n_g5
  n_g5 --> n_g6
  n_g6 -->|"Yes"| n_g7
  n_g6 -->|"No"| n_g8
  n_g7 --> n_g5
  n_g8 --> n_g9
  n_g9 --> n_g10
  n_g10 --> n_g11
  n_g11 --> n_g12
  n_g12 --> n_g13
  n_g13 --> n_g14
```

### Why brokers restricted buying (detail of step "Brokers hit collateral limits and restrict buying")

Lanes:
- Brokerage apps: technology / system (id `broker`)

Steps, in the order they run:

1. **A trade settles days after it happens** [start; Brokerage apps; id `c1`]
   - then The clearinghouse demands collateral to cover the risk
2. **The clearinghouse demands collateral to cover the risk** [task; Brokerage apps; id `c2`]
   - then Does the broker have enough?
3. **Does the broker have enough?** [decision; Brokerage apps; id `c3`]
   - if "Yes" go to Keep trading normally; if "No" go to Restrict purchases to lower the requirement
4. **Keep trading normally** [end; Brokerage apps; id `c4`]
5. **Restrict purchases to lower the requirement** [task; Brokerage apps; id `c5`]
   - then Customers see "buy" disabled
6. **Customers see "buy" disabled** [end; Brokerage apps; id `c6`]

```mermaid
flowchart LR
  subgraph l_broker["Brokerage apps"]
    n_c1(["A trade settles days after it happens"])
    n_c2["The clearinghouse demands collateral to cover the risk"]
    n_c3{"Does the broker have enough?"}
    n_c5["Restrict purchases to lower the requirement"]
    n_c4(["Keep trading normally"])
    n_c6(["Customers see 'buy' disabled"])
  end
  n_c1 --> n_c2
  n_c2 --> n_c3
  n_c3 -->|"Yes"| n_c4
  n_c3 -->|"No"| n_c5
  n_c5 --> n_c6
```

## Full data (JSON)

```json
{
  "title": "The GameStop short squeeze (January 2021)",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "hedge",
          "name": "Short sellers",
          "type": "person"
        },
        {
          "id": "retail",
          "name": "Retail traders",
          "type": "person"
        },
        {
          "id": "broker",
          "name": "Brokerage apps",
          "type": "system"
        },
        {
          "id": "market",
          "name": "The stock market",
          "type": "system"
        },
        {
          "id": "reg",
          "name": "Regulators and Congress",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "g1",
          "kind": "start",
          "lane": "hedge",
          "next": [
            {
              "to": "g2"
            }
          ],
          "uses": [],
          "label": "Bet that a company will fail: borrow shares and sell them"
        },
        {
          "id": "g2",
          "kind": "task",
          "lane": "hedge",
          "next": [
            {
              "to": "g3"
            }
          ],
          "uses": [],
          "label": "Plan to buy them back cheaper and keep the difference"
        },
        {
          "id": "g3",
          "kind": "task",
          "lane": "retail",
          "next": [
            {
              "to": "g4"
            }
          ],
          "uses": [],
          "label": "People online argue the stock is undervalued and heavily shorted"
        },
        {
          "id": "g4",
          "kind": "task",
          "lane": "retail",
          "next": [
            {
              "to": "g5"
            }
          ],
          "uses": [],
          "label": "Buy shares and call options in huge numbers"
        },
        {
          "id": "g5",
          "kind": "task",
          "lane": "market",
          "next": [
            {
              "to": "g6"
            }
          ],
          "uses": [],
          "label": "The price starts rising"
        },
        {
          "id": "g6",
          "kind": "decision",
          "lane": "hedge",
          "next": [
            {
              "to": "g7",
              "label": "Yes"
            },
            {
              "to": "g8",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Losses grow. Can they afford to wait?"
        },
        {
          "id": "g7",
          "kind": "task",
          "lane": "hedge",
          "next": [
            {
              "to": "g5"
            }
          ],
          "pain": {
            "note": "Losses on a short position are theoretically unlimited",
            "level": 2
          },
          "uses": [],
          "label": "Hold and hope it falls"
        },
        {
          "id": "g8",
          "kind": "task",
          "lane": "hedge",
          "next": [
            {
              "to": "g9"
            }
          ],
          "uses": [],
          "label": "Forced to buy shares back to close the position"
        },
        {
          "id": "g9",
          "kind": "task",
          "lane": "market",
          "next": [
            {
              "to": "g10"
            }
          ],
          "uses": [],
          "label": "Their buying pushes the price even higher: the squeeze"
        },
        {
          "id": "g10",
          "kind": "subprocess",
          "lane": "broker",
          "next": [
            {
              "to": "g11"
            }
          ],
          "uses": [],
          "child": "m_clearing",
          "label": "Brokers hit collateral limits and restrict buying"
        },
        {
          "id": "g11",
          "kind": "task",
          "lane": "retail",
          "next": [
            {
              "to": "g12"
            }
          ],
          "pain": {
            "note": "Many felt the system was rigged against small investors",
            "level": 2
          },
          "uses": [],
          "label": "Outrage: \"they stopped us buying\""
        },
        {
          "id": "g12",
          "kind": "task",
          "lane": "market",
          "next": [
            {
              "to": "g13"
            }
          ],
          "uses": [],
          "label": "The price drops sharply"
        },
        {
          "id": "g13",
          "kind": "task",
          "lane": "reg",
          "next": [
            {
              "to": "g14"
            }
          ],
          "uses": [],
          "label": "Hearings and reviews of how markets and brokers work"
        },
        {
          "id": "g14",
          "kind": "end",
          "lane": "reg",
          "next": [],
          "uses": [],
          "label": "Questions remain: short selling, settlement times, payment for order flow"
        }
      ],
      "title": "The GameStop short squeeze (January 2021)",
      "parent": null
    },
    "m_clearing": {
      "id": "m_clearing",
      "lanes": [
        {
          "id": "broker",
          "name": "Brokerage apps",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "c1",
          "kind": "start",
          "lane": "broker",
          "next": [
            {
              "to": "c2"
            }
          ],
          "uses": [],
          "label": "A trade settles days after it happens"
        },
        {
          "id": "c2",
          "kind": "task",
          "lane": "broker",
          "next": [
            {
              "to": "c3"
            }
          ],
          "uses": [],
          "label": "The clearinghouse demands collateral to cover the risk"
        },
        {
          "id": "c3",
          "kind": "decision",
          "lane": "broker",
          "next": [
            {
              "to": "c4",
              "label": "Yes"
            },
            {
              "to": "c5",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Does the broker have enough?"
        },
        {
          "id": "c5",
          "kind": "task",
          "lane": "broker",
          "next": [
            {
              "to": "c6"
            }
          ],
          "uses": [],
          "label": "Restrict purchases to lower the requirement"
        },
        {
          "id": "c4",
          "kind": "end",
          "lane": "broker",
          "next": [],
          "uses": [],
          "label": "Keep trading normally"
        },
        {
          "id": "c6",
          "kind": "end",
          "lane": "broker",
          "next": [],
          "uses": [],
          "label": "Customers see \"buy\" disabled"
        }
      ],
      "title": "Why brokers restricted buying",
      "parent": {
        "map": "m_root",
        "step": "g10"
      }
    }
  }
}
```
