# How gerrymandering works

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv0kpnll002zjn06ckmk53gr
> 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

- 16 steps across 2 layers
- Persona: State legislature or commission, Map drawers, Courts, Voters
- Technology / systems: The Census

## Pain points

Where this process hurts, worst first:

- **Gerrymandering: packing and cracking voters** (How gerrymandering works; critical): Debated: both parties have done it when they held the pen
- **Courts review for equal population and race-based rules** (How gerrymandering works; painful): Courts have allowed some partisan maps but not race-based ones

## 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`.

## How gerrymandering works

Lanes:
- The Census: technology / system (id `census`)
- State legislature or commission: person / role (id `legis`)
- Map drawers: person / role (id `mapper`)
- Courts: person / role (id `courts`)
- Voters: person / role (id `voters`)

Steps, in the order they run:

1. **Every ten years the census counts everyone** [start; The Census; id `g1`]
   - then House seats are divided among the states
2. **House seats are divided among the states** [task; State legislature or commission; id `g2`]
   - then Each state redraws its district lines
3. **Each state redraws its district lines** [task; State legislature or commission; id `g3`]
   - then Draw maps with equal populations
4. **Draw maps with equal populations** [task; Map drawers; id `g4`]
   - then Draw them to help one group win more seats?
5. **Draw them to help one group win more seats?** [decision; Map drawers; id `g5`]
   - if "Yes" go to Gerrymandering: packing and cracking voters; if "No" go to Draw compact, neutral districts
6. **Gerrymandering: packing and cracking voters** [subprocess; Map drawers; id `g6`] ⚠ PAIN POINT (critical): Debated: both parties have done it when they held the pen, opens the detail layer "Packing and cracking"
   - then Is there a lawsuit?
7. **Is there a lawsuit?** [decision; Courts; id `g8`]
   - if "Yes" go to Courts review for equal population and race-based rules; if "No" go to Elections are held under the new maps
8. **Courts review for equal population and race-based rules** [task; Courts; id `g9`] ⚠ PAIN POINT (painful): Courts have allowed some partisan maps but not race-based ones
   - then Elections are held under the new maps
9. **Elections are held under the new maps** [task; Voters; id `g10`]
   - then Representatives are chosen by lines drawn before they ran
10. **Representatives are chosen by lines drawn before they ran** [end; Voters; id `g11`]
11. **Draw compact, neutral districts** [task; Map drawers; id `g7`]
   - then Is there a lawsuit?

```mermaid
flowchart LR
  subgraph l_census["The Census"]
    n_g1(["Every ten years the census counts everyone"])
  end
  subgraph l_legis["State legislature or commission"]
    n_g2["House seats are divided among the states"]
    n_g3["Each state redraws its district lines"]
  end
  subgraph l_mapper["Map drawers"]
    n_g4["Draw maps with equal populations"]
    n_g5{"Draw them to help one group win more seats?"}
    n_g6[["Gerrymandering: packing and cracking voters"]]
    n_g7["Draw compact, neutral districts"]
  end
  subgraph l_courts["Courts"]
    n_g8{"Is there a lawsuit?"}
    n_g9["Courts review for equal population and race-based rules"]
  end
  subgraph l_voters["Voters"]
    n_g10["Elections are held under the new maps"]
    n_g11(["Representatives are chosen by lines drawn before they ran"])
  end
  n_g1 --> n_g2
  n_g2 --> n_g3
  n_g3 --> n_g4
  n_g4 --> n_g5
  n_g5 -->|"Yes"| n_g6
  n_g5 -->|"No"| n_g7
  n_g6 --> n_g8
  n_g7 --> n_g8
  n_g8 -->|"Yes"| n_g9
  n_g8 -->|"No"| n_g10
  n_g9 --> n_g10
  n_g10 --> n_g11
```

### Packing and cracking (detail of step "Gerrymandering: packing and cracking voters")

Lanes:
- Map drawers: person / role (id `mapper`)

Steps, in the order they run:

1. **Packing: put one side's voters in a few districts** [start; Map drawers; id `p1`]
   - then They win those by huge margins
2. **They win those by huge margins** [task; Map drawers; id `p2`]
   - then Cracking: split the other voters across many districts
3. **Cracking: split the other voters across many districts** [task; Map drawers; id `p3`]
   - then They lose by small margins everywhere
4. **They lose by small margins everywhere** [task; Map drawers; id `p4`]
   - then The wasted votes are the whole point
5. **The wasted votes are the whole point** [end; Map drawers; id `p5`]

```mermaid
flowchart LR
  subgraph l_mapper["Map drawers"]
    n_p1(["Packing: put one side's voters in a few districts"])
    n_p2["They win those by huge margins"]
    n_p3["Cracking: split the other voters across many districts"]
    n_p4["They lose by small margins everywhere"]
    n_p5(["The wasted votes are the whole point"])
  end
  n_p1 --> n_p2
  n_p2 --> n_p3
  n_p3 --> n_p4
  n_p4 --> n_p5
```

## Full data (JSON)

```json
{
  "title": "How gerrymandering works",
  "maps": {
    "m_pack": {
      "id": "m_pack",
      "lanes": [
        {
          "id": "mapper",
          "name": "Map drawers",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "p1",
          "kind": "start",
          "lane": "mapper",
          "next": [
            {
              "to": "p2"
            }
          ],
          "uses": [],
          "label": "Packing: put one side's voters in a few districts"
        },
        {
          "id": "p2",
          "kind": "task",
          "lane": "mapper",
          "next": [
            {
              "to": "p3"
            }
          ],
          "uses": [],
          "label": "They win those by huge margins"
        },
        {
          "id": "p3",
          "kind": "task",
          "lane": "mapper",
          "next": [
            {
              "to": "p4"
            }
          ],
          "uses": [],
          "label": "Cracking: split the other voters across many districts"
        },
        {
          "id": "p4",
          "kind": "task",
          "lane": "mapper",
          "next": [
            {
              "to": "p5"
            }
          ],
          "uses": [],
          "label": "They lose by small margins everywhere"
        },
        {
          "id": "p5",
          "kind": "end",
          "lane": "mapper",
          "next": [],
          "uses": [],
          "label": "The wasted votes are the whole point"
        }
      ],
      "title": "Packing and cracking",
      "parent": {
        "map": "m_root",
        "step": "g6"
      }
    },
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "census",
          "name": "The Census",
          "type": "system"
        },
        {
          "id": "legis",
          "name": "State legislature or commission",
          "type": "person"
        },
        {
          "id": "mapper",
          "name": "Map drawers",
          "type": "person"
        },
        {
          "id": "courts",
          "name": "Courts",
          "type": "person"
        },
        {
          "id": "voters",
          "name": "Voters",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "g1",
          "kind": "start",
          "lane": "census",
          "next": [
            {
              "to": "g2"
            }
          ],
          "uses": [],
          "label": "Every ten years the census counts everyone"
        },
        {
          "id": "g2",
          "kind": "task",
          "lane": "legis",
          "next": [
            {
              "to": "g3"
            }
          ],
          "uses": [],
          "label": "House seats are divided among the states"
        },
        {
          "id": "g3",
          "kind": "task",
          "lane": "legis",
          "next": [
            {
              "to": "g4"
            }
          ],
          "uses": [],
          "label": "Each state redraws its district lines"
        },
        {
          "id": "g4",
          "kind": "task",
          "lane": "mapper",
          "next": [
            {
              "to": "g5"
            }
          ],
          "uses": [],
          "label": "Draw maps with equal populations"
        },
        {
          "id": "g5",
          "kind": "decision",
          "lane": "mapper",
          "next": [
            {
              "to": "g6",
              "label": "Yes"
            },
            {
              "to": "g7",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Draw them to help one group win more seats?"
        },
        {
          "id": "g6",
          "kind": "subprocess",
          "lane": "mapper",
          "next": [
            {
              "to": "g8"
            }
          ],
          "pain": {
            "note": "Debated: both parties have done it when they held the pen",
            "level": 3
          },
          "uses": [],
          "child": "m_pack",
          "label": "Gerrymandering: packing and cracking voters"
        },
        {
          "id": "g7",
          "kind": "task",
          "lane": "mapper",
          "next": [
            {
              "to": "g8"
            }
          ],
          "uses": [],
          "label": "Draw compact, neutral districts"
        },
        {
          "id": "g8",
          "kind": "decision",
          "lane": "courts",
          "next": [
            {
              "to": "g9",
              "label": "Yes"
            },
            {
              "to": "g10",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is there a lawsuit?"
        },
        {
          "id": "g9",
          "kind": "task",
          "lane": "courts",
          "next": [
            {
              "to": "g10"
            }
          ],
          "pain": {
            "note": "Courts have allowed some partisan maps but not race-based ones",
            "level": 2
          },
          "uses": [],
          "label": "Courts review for equal population and race-based rules"
        },
        {
          "id": "g10",
          "kind": "task",
          "lane": "voters",
          "next": [
            {
              "to": "g11"
            }
          ],
          "uses": [],
          "label": "Elections are held under the new maps"
        },
        {
          "id": "g11",
          "kind": "end",
          "lane": "voters",
          "next": [],
          "uses": [],
          "label": "Representatives are chosen by lines drawn before they ran"
        }
      ],
      "title": "How gerrymandering works",
      "parent": null
    }
  }
}
```
