# How a bill becomes a law (US)

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

- 34 steps across 4 layers
- Persona: A member of Congress, The House, The Senate, The President, A committee, The public

## Pain points

Where this process hurts, worst first:

- **Are there 60 votes to end debate (cloture)?** (The Senate floor; painful): Debated: critics say the 60-vote rule lets a minority block a majority; supporters say it forces compromise

## 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 a bill becomes a law (US)

Lanes:
- A member of Congress: person / role (id `member`)
- The House: person / role (id `house`)
- The Senate: person / role (id `senate`)
- The President: person / role (id `pres`)
- A committee: person / role (id `cmte`)
- The public: person / role (id `public`)

Steps, in the order they run:

1. **An idea becomes a bill with a sponsor** [start; A member of Congress; id `b1`]
   - then The bill is introduced and sent to a committee
2. **The bill is introduced and sent to a committee** [task; The House; id `b2`]
   - then Hearings, expert testimony and a markup
3. **Hearings, expert testimony and a markup** [subprocess; A committee; id `b3`], opens the detail layer "Inside the committee"
   - then Does the committee advance it?
4. **Does the committee advance it?** [decision; A committee; id `b4`]
   - if "Yes" go to Floor debate and a vote: a simple majority passes it; if "No" go to It dies in committee, which is where most bills end
5. **Floor debate and a vote: a simple majority passes it** [task; The House; id `b5`]
   - then Does it pass?
6. **Does it pass?** [decision; The House; id `b6`]
   - if "Yes" go to The Senate takes it up: committee, then the floor; if "No" go to The bill fails
7. **The Senate takes it up: committee, then the floor** [subprocess; The Senate; id `b7`], opens the detail layer "The Senate floor"
   - then Does it pass in exactly the same form?
8. **Does it pass in exactly the same form?** [decision; The Senate; id `b8`]
   - if "Yes" go to The President signs or vetoes; if "No — different versions" go to The two chambers negotiate one version
9. **The President signs or vetoes** [task; The President; id `b9`]
   - then Signed?
10. **Signed?** [decision; The President; id `b10`]
   - if "Signed" go to It becomes law; if "Vetoed" go to Do two-thirds of both chambers override the veto?
11. **It becomes law** [task; The public; id `b11`]
   - then Courts may review it later
12. **Courts may review it later** [subprocess; The public; id `b13`], opens the detail layer "Constitutional challenge"
   - (no next step recorded)
13. **Do two-thirds of both chambers override the veto?** [decision; The House; id `b12`]
   - if "Yes" go to It becomes law; if "No" go to The veto stands
14. **The veto stands** [end; The President; id `b12a`]
15. **The two chambers negotiate one version** [task; The Senate; id `b8a`]
   - then Both chambers vote on the final text
16. **Both chambers vote on the final text** [task; The House; id `b8b`]
   - then The President signs or vetoes
17. **The bill fails** [end; The House; id `b6a`]
18. **It dies in committee, which is where most bills end** [end; A committee; id `b4a`]

```mermaid
flowchart LR
  subgraph l_member["A member of Congress"]
    n_b1(["An idea becomes a bill with a sponsor"])
  end
  subgraph l_house["The House"]
    n_b2["The bill is introduced and sent to a committee"]
    n_b5["Floor debate and a vote: a simple majority passes it"]
    n_b6{"Does it pass?"}
    n_b6a(["The bill fails"])
    n_b8b["Both chambers vote on the final text"]
    n_b12{"Do two-thirds of both chambers override the veto?"}
  end
  subgraph l_senate["The Senate"]
    n_b7[["The Senate takes it up: committee, then the floor"]]
    n_b8{"Does it pass in exactly the same form?"}
    n_b8a["The two chambers negotiate one version"]
  end
  subgraph l_pres["The President"]
    n_b9["The President signs or vetoes"]
    n_b10{"Signed?"}
    n_b12a(["The veto stands"])
  end
  subgraph l_cmte["A committee"]
    n_b3[["Hearings, expert testimony and a markup"]]
    n_b4{"Does the committee advance it?"}
    n_b4a(["It dies in committee, which is where most bills end"])
  end
  subgraph l_public["The public"]
    n_b11["It becomes law"]
    n_b13[["Courts may review it later"]]
  end
  n_b1 --> n_b2
  n_b2 --> n_b3
  n_b3 --> n_b4
  n_b4 -->|"Yes"| n_b5
  n_b4 -->|"No"| n_b4a
  n_b5 --> n_b6
  n_b6 -->|"Yes"| n_b7
  n_b6 -->|"No"| n_b6a
  n_b7 --> n_b8
  n_b8 -->|"Yes"| n_b9
  n_b8 -->|"No — different versions"| n_b8a
  n_b8a --> n_b8b
  n_b8b --> n_b9
  n_b9 --> n_b10
  n_b10 -->|"Signed"| n_b11
  n_b10 -->|"Vetoed"| n_b12
  n_b11 --> n_b13
  n_b12 -->|"Yes"| n_b11
  n_b12 -->|"No"| n_b12a
```

### Inside the committee (detail of step "Hearings, expert testimony and a markup")

Lanes:
- A committee: person / role (id `cmte`)
- The public: person / role (id `public`)

Steps, in the order they run:

1. **The chair schedules a hearing** [start; A committee; id `c1`]
   - then Witnesses and experts testify
2. **Witnesses and experts testify** [task; The public; id `c2`]
   - then Members propose amendments
3. **Members propose amendments** [task; A committee; id `c3`]
   - then Markup: vote on each amendment
4. **Markup: vote on each amendment** [task; A committee; id `c4`]
   - then Report the bill to the full chamber
5. **Report the bill to the full chamber** [end; A committee; id `c5`]

```mermaid
flowchart LR
  subgraph l_cmte["A committee"]
    n_c1(["The chair schedules a hearing"])
    n_c3["Members propose amendments"]
    n_c4["Markup: vote on each amendment"]
    n_c5(["Report the bill to the full chamber"])
  end
  subgraph l_public["The public"]
    n_c2["Witnesses and experts testify"]
  end
  n_c1 --> n_c2
  n_c2 --> n_c3
  n_c3 --> n_c4
  n_c4 --> n_c5
```

### Constitutional challenge (detail of step "Courts may review it later")

Lanes:
- The public: person / role (id `public`)

Steps, in the order they run:

1. **Someone sues, claiming the law violates the Constitution** [start; The public; id `k1`]
   - then Courts review it
2. **Courts review it** [task; The public; id `k2`]
   - then Is it upheld?
3. **Is it upheld?** [decision; The public; id `k3`]
   - if "Yes" go to It stays in force; if "No" go to Struck down in whole or in part
4. **It stays in force** [end; The public; id `k4`]
5. **Struck down in whole or in part** [end; The public; id `k5`]

```mermaid
flowchart LR
  subgraph l_public["The public"]
    n_k1(["Someone sues, claiming the law violates the Constitution"])
    n_k2["Courts review it"]
    n_k3{"Is it upheld?"}
    n_k5(["Struck down in whole or in part"])
    n_k4(["It stays in force"])
  end
  n_k1 --> n_k2
  n_k2 --> n_k3
  n_k3 -->|"Yes"| n_k4
  n_k3 -->|"No"| n_k5
```

### The Senate floor (detail of step "The Senate takes it up: committee, then the floor")

Lanes:
- The Senate: person / role (id `senate`)

Steps, in the order they run:

1. **The leader schedules floor time** [start; The Senate; id `s1`]
   - then Debate can continue with no time limit
2. **Debate can continue with no time limit** [task; The Senate; id `s2`]
   - then Are there 60 votes to end debate (cloture)?
3. **Are there 60 votes to end debate (cloture)?** [decision; The Senate; id `s3`] ⚠ PAIN POINT (painful): Debated: critics say the 60-vote rule lets a minority block a majority; supporters say it forces compromise
   - if "Yes" go to Final vote: a simple majority passes it; if "No" go to A filibuster blocks it, or it is negotiated and changed
4. **Final vote: a simple majority passes it** [end; The Senate; id `s4`]
5. **A filibuster blocks it, or it is negotiated and changed** [task; The Senate; id `s3a`]
   - then Try again for 60 votes
6. **Try again for 60 votes** [task; The Senate; id `s3b`]
   - then Are there 60 votes to end debate (cloture)?

```mermaid
flowchart LR
  subgraph l_senate["The Senate"]
    n_s1(["The leader schedules floor time"])
    n_s2["Debate can continue with no time limit"]
    n_s3{"Are there 60 votes to end debate (cloture)?"}
    n_s3a["A filibuster blocks it, or it is negotiated and changed"]
    n_s3b["Try again for 60 votes"]
    n_s4(["Final vote: a simple majority passes it"])
  end
  n_s1 --> n_s2
  n_s2 --> n_s3
  n_s3 -->|"Yes"| n_s4
  n_s3 -->|"No"| n_s3a
  n_s3a --> n_s3b
  n_s3b --> n_s3
```

## Full data (JSON)

```json
{
  "title": "How a bill becomes a law (US)",
  "maps": {
    "m_cmte": {
      "id": "m_cmte",
      "lanes": [
        {
          "id": "cmte",
          "name": "A committee",
          "type": "person"
        },
        {
          "id": "public",
          "name": "The public",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "c1",
          "kind": "start",
          "lane": "cmte",
          "next": [
            {
              "to": "c2"
            }
          ],
          "uses": [],
          "label": "The chair schedules a hearing"
        },
        {
          "id": "c2",
          "kind": "task",
          "lane": "public",
          "next": [
            {
              "to": "c3"
            }
          ],
          "uses": [],
          "label": "Witnesses and experts testify"
        },
        {
          "id": "c3",
          "kind": "task",
          "lane": "cmte",
          "next": [
            {
              "to": "c4"
            }
          ],
          "uses": [],
          "label": "Members propose amendments"
        },
        {
          "id": "c4",
          "kind": "task",
          "lane": "cmte",
          "next": [
            {
              "to": "c5"
            }
          ],
          "uses": [],
          "label": "Markup: vote on each amendment"
        },
        {
          "id": "c5",
          "kind": "end",
          "lane": "cmte",
          "next": [],
          "uses": [],
          "label": "Report the bill to the full chamber"
        }
      ],
      "title": "Inside the committee",
      "parent": {
        "map": "m_root",
        "step": "b3"
      }
    },
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "member",
          "name": "A member of Congress",
          "type": "person"
        },
        {
          "id": "house",
          "name": "The House",
          "type": "person"
        },
        {
          "id": "senate",
          "name": "The Senate",
          "type": "person"
        },
        {
          "id": "pres",
          "name": "The President",
          "type": "person"
        },
        {
          "id": "cmte",
          "name": "A committee",
          "type": "person"
        },
        {
          "id": "public",
          "name": "The public",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "b1",
          "kind": "start",
          "lane": "member",
          "next": [
            {
              "to": "b2"
            }
          ],
          "uses": [],
          "label": "An idea becomes a bill with a sponsor"
        },
        {
          "id": "b2",
          "kind": "task",
          "lane": "house",
          "next": [
            {
              "to": "b3"
            }
          ],
          "uses": [],
          "label": "The bill is introduced and sent to a committee"
        },
        {
          "id": "b3",
          "kind": "subprocess",
          "lane": "cmte",
          "next": [
            {
              "to": "b4"
            }
          ],
          "uses": [],
          "child": "m_cmte",
          "label": "Hearings, expert testimony and a markup"
        },
        {
          "id": "b4",
          "kind": "decision",
          "lane": "cmte",
          "next": [
            {
              "to": "b5",
              "label": "Yes"
            },
            {
              "to": "b4a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Does the committee advance it?"
        },
        {
          "id": "b4a",
          "kind": "end",
          "lane": "cmte",
          "next": [],
          "uses": [],
          "label": "It dies in committee, which is where most bills end"
        },
        {
          "id": "b5",
          "kind": "task",
          "lane": "house",
          "next": [
            {
              "to": "b6"
            }
          ],
          "uses": [],
          "label": "Floor debate and a vote: a simple majority passes it"
        },
        {
          "id": "b6",
          "kind": "decision",
          "lane": "house",
          "next": [
            {
              "to": "b7",
              "label": "Yes"
            },
            {
              "to": "b6a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Does it pass?"
        },
        {
          "id": "b6a",
          "kind": "end",
          "lane": "house",
          "next": [],
          "uses": [],
          "label": "The bill fails"
        },
        {
          "id": "b7",
          "kind": "subprocess",
          "lane": "senate",
          "next": [
            {
              "to": "b8"
            }
          ],
          "uses": [],
          "child": "m_senate",
          "label": "The Senate takes it up: committee, then the floor"
        },
        {
          "id": "b8",
          "kind": "decision",
          "lane": "senate",
          "next": [
            {
              "to": "b9",
              "label": "Yes"
            },
            {
              "to": "b8a",
              "label": "No — different versions"
            }
          ],
          "uses": [],
          "label": "Does it pass in exactly the same form?"
        },
        {
          "id": "b8a",
          "kind": "task",
          "lane": "senate",
          "next": [
            {
              "to": "b8b"
            }
          ],
          "uses": [],
          "label": "The two chambers negotiate one version"
        },
        {
          "id": "b8b",
          "kind": "task",
          "lane": "house",
          "next": [
            {
              "to": "b9"
            }
          ],
          "uses": [],
          "label": "Both chambers vote on the final text"
        },
        {
          "id": "b9",
          "kind": "task",
          "lane": "pres",
          "next": [
            {
              "to": "b10"
            }
          ],
          "uses": [],
          "label": "The President signs or vetoes"
        },
        {
          "id": "b10",
          "kind": "decision",
          "lane": "pres",
          "next": [
            {
              "to": "b11",
              "label": "Signed"
            },
            {
              "to": "b12",
              "label": "Vetoed"
            }
          ],
          "uses": [],
          "label": "Signed?"
        },
        {
          "id": "b11",
          "kind": "task",
          "lane": "public",
          "next": [
            {
              "to": "b13"
            }
          ],
          "uses": [],
          "label": "It becomes law"
        },
        {
          "id": "b12",
          "kind": "decision",
          "lane": "house",
          "next": [
            {
              "to": "b11",
              "label": "Yes"
            },
            {
              "to": "b12a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Do two-thirds of both chambers override the veto?"
        },
        {
          "id": "b12a",
          "kind": "end",
          "lane": "pres",
          "next": [],
          "uses": [],
          "label": "The veto stands"
        },
        {
          "id": "b13",
          "kind": "subprocess",
          "lane": "public",
          "next": [],
          "uses": [],
          "child": "m_courts",
          "label": "Courts may review it later"
        }
      ],
      "title": "How a bill becomes a law (US)",
      "parent": null
    },
    "m_courts": {
      "id": "m_courts",
      "lanes": [
        {
          "id": "public",
          "name": "The public",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "k1",
          "kind": "start",
          "lane": "public",
          "next": [
            {
              "to": "k2"
            }
          ],
          "uses": [],
          "label": "Someone sues, claiming the law violates the Constitution"
        },
        {
          "id": "k2",
          "kind": "task",
          "lane": "public",
          "next": [
            {
              "to": "k3"
            }
          ],
          "uses": [],
          "label": "Courts review it"
        },
        {
          "id": "k3",
          "kind": "decision",
          "lane": "public",
          "next": [
            {
              "to": "k4",
              "label": "Yes"
            },
            {
              "to": "k5",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Is it upheld?"
        },
        {
          "id": "k5",
          "kind": "end",
          "lane": "public",
          "next": [],
          "uses": [],
          "label": "Struck down in whole or in part"
        },
        {
          "id": "k4",
          "kind": "end",
          "lane": "public",
          "next": [],
          "uses": [],
          "label": "It stays in force"
        }
      ],
      "title": "Constitutional challenge",
      "parent": {
        "map": "m_root",
        "step": "b13"
      }
    },
    "m_senate": {
      "id": "m_senate",
      "lanes": [
        {
          "id": "senate",
          "name": "The Senate",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "s1",
          "kind": "start",
          "lane": "senate",
          "next": [
            {
              "to": "s2"
            }
          ],
          "uses": [],
          "label": "The leader schedules floor time"
        },
        {
          "id": "s2",
          "kind": "task",
          "lane": "senate",
          "next": [
            {
              "to": "s3"
            }
          ],
          "uses": [],
          "label": "Debate can continue with no time limit"
        },
        {
          "id": "s3",
          "kind": "decision",
          "lane": "senate",
          "next": [
            {
              "to": "s4",
              "label": "Yes"
            },
            {
              "to": "s3a",
              "label": "No"
            }
          ],
          "pain": {
            "note": "Debated: critics say the 60-vote rule lets a minority block a majority; supporters say it forces compromise",
            "level": 2
          },
          "uses": [],
          "label": "Are there 60 votes to end debate (cloture)?"
        },
        {
          "id": "s3a",
          "kind": "task",
          "lane": "senate",
          "next": [
            {
              "to": "s3b"
            }
          ],
          "uses": [],
          "label": "A filibuster blocks it, or it is negotiated and changed"
        },
        {
          "id": "s3b",
          "kind": "task",
          "lane": "senate",
          "next": [
            {
              "to": "s3"
            }
          ],
          "uses": [],
          "label": "Try again for 60 votes"
        },
        {
          "id": "s4",
          "kind": "end",
          "lane": "senate",
          "next": [],
          "uses": [],
          "label": "Final vote: a simple majority passes it"
        }
      ],
      "title": "The Senate floor",
      "parent": {
        "map": "m_root",
        "step": "b7"
      }
    }
  }
}
```
