{
  "schemaVersion": 1,
  "chamber": "NC Senate",
  "districtCount": 50,
  "populationVintage": 2020,
  "statewidePopulation": 10439388,
  "idealPopulation": 208787.76,
  "minimumDistrictPopulation": 198349,
  "maximumDistrictPopulation": 219227,
  "populationTolerance": 0.05,
  "id": "nc-senate-2020-optimal-groupings-v1",
  "name": "Published 2020 Census NC Senate county-grouping alternatives",
  "defaultCombinationId": "A1-B1-C2-D2",
  "fixedGroupIds": [
    "nc-senate-2023-group-3",
    "nc-senate-2023-group-4",
    "nc-senate-2023-group-5",
    "nc-senate-2023-group-6",
    "nc-senate-2023-group-10",
    "nc-senate-2023-group-11",
    "nc-senate-2023-group-13",
    "nc-senate-2023-group-19",
    "nc-senate-2023-group-20",
    "nc-senate-2023-group-23",
    "nc-senate-2023-group-24",
    "nc-senate-2023-group-25",
    "nc-senate-2023-group-26",
    "nc-senate-2023-group-30",
    "nc-senate-2023-group-33",
    "nc-senate-2023-group-37",
    "nc-senate-2023-group-45"
  ],
  "regions": [
    {
      "id": "A",
      "name": "Southwest",
      "seats": 5,
      "countyIds": [
        11,
        12,
        23,
        36,
        45,
        55,
        59,
        75,
        81
      ],
      "options": [
        {
          "id": "A1",
          "label": "A1",
          "groupIds": [
            "nc-senate-2023-group-46",
            "nc-senate-2023-group-43",
            "nc-senate-2023-group-48"
          ]
        },
        {
          "id": "A2",
          "label": "A2",
          "groupIds": [
            "nc-senate-2020-a2-group-1",
            "nc-senate-2020-a2-group-2",
            "nc-senate-2020-a2-group-3"
          ]
        }
      ]
    },
    {
      "id": "B",
      "name": "Northwest",
      "seats": 3,
      "countyIds": [
        2,
        34,
        85,
        86,
        97,
        99
      ],
      "options": [
        {
          "id": "B1",
          "label": "B1",
          "groupIds": [
            "nc-senate-2023-group-31",
            "nc-senate-2023-group-36"
          ]
        },
        {
          "id": "B2",
          "label": "B2",
          "groupIds": [
            "nc-senate-2020-b2-group-1",
            "nc-senate-2020-b2-group-2"
          ]
        }
      ]
    },
    {
      "id": "C",
      "name": "Southeast",
      "seats": 4,
      "countyIds": [
        9,
        10,
        24,
        31,
        43,
        52,
        53,
        65,
        71,
        82
      ],
      "options": [
        {
          "id": "C1",
          "label": "C1",
          "groupIds": [
            "nc-senate-2020-c1-group-1",
            "nc-senate-2020-c1-group-2"
          ]
        },
        {
          "id": "C2",
          "label": "C2",
          "groupIds": [
            "nc-senate-2023-group-9",
            "nc-senate-2023-group-7"
          ]
        }
      ]
    },
    {
      "id": "D",
      "name": "Northeast",
      "seats": 2,
      "countyIds": [
        8,
        15,
        16,
        21,
        27,
        28,
        37,
        42,
        46,
        48,
        58,
        66,
        69,
        70,
        72,
        89,
        93,
        94
      ],
      "options": [
        {
          "id": "D1",
          "label": "D1",
          "groupIds": [
            "nc-senate-2020-d1-group-1",
            "nc-senate-2020-d1-group-2"
          ]
        },
        {
          "id": "D2",
          "label": "D2",
          "groupIds": [
            "nc-senate-2023-group-2",
            "nc-senate-2023-group-1"
          ]
        }
      ]
    }
  ],
  "groups": [
    {
      "id": "nc-senate-2023-group-3",
      "name": "Beaufort / Craven / Lenoir",
      "countyIds": [
        7,
        25,
        54
      ],
      "countyNames": [
        "Beaufort",
        "Craven",
        "Lenoir"
      ],
      "counties": [
        {
          "id": 7,
          "name": "Beaufort",
          "population2020": 44652
        },
        {
          "id": 25,
          "name": "Craven",
          "population2020": 100720
        },
        {
          "id": 54,
          "name": "Lenoir",
          "population2020": 55122
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        3
      ],
      "population": 200494,
      "minimumTraversals": 2,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-4",
      "name": "Greene / Wayne / Wilson",
      "countyIds": [
        40,
        96,
        98
      ],
      "countyNames": [
        "Greene",
        "Wayne",
        "Wilson"
      ],
      "counties": [
        {
          "id": 40,
          "name": "Greene",
          "population2020": 20451
        },
        {
          "id": 96,
          "name": "Wayne",
          "population2020": 117333
        },
        {
          "id": 98,
          "name": "Wilson",
          "population2020": 78784
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        4
      ],
      "population": 216568,
      "minimumTraversals": 2,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-5",
      "name": "Edgecombe / Pitt",
      "countyIds": [
        33,
        74
      ],
      "countyNames": [
        "Edgecombe",
        "Pitt"
      ],
      "counties": [
        {
          "id": 33,
          "name": "Edgecombe",
          "population2020": 48900
        },
        {
          "id": 74,
          "name": "Pitt",
          "population2020": 170243
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        5
      ],
      "population": 219143,
      "minimumTraversals": 1,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-6",
      "name": "Onslow",
      "countyIds": [
        67
      ],
      "countyNames": [
        "Onslow"
      ],
      "counties": [
        {
          "id": 67,
          "name": "Onslow",
          "population2020": 204576
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        6
      ],
      "population": 204576,
      "minimumTraversals": 0,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-10",
      "name": "Johnston",
      "countyIds": [
        51
      ],
      "countyNames": [
        "Johnston"
      ],
      "counties": [
        {
          "id": 51,
          "name": "Johnston",
          "population2020": 215999
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        10
      ],
      "population": 215999,
      "minimumTraversals": 0,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-11",
      "name": "Franklin / Nash / Vance",
      "countyIds": [
        35,
        64,
        91
      ],
      "countyNames": [
        "Franklin",
        "Nash",
        "Vance"
      ],
      "counties": [
        {
          "id": 35,
          "name": "Franklin",
          "population2020": 68573
        },
        {
          "id": 64,
          "name": "Nash",
          "population2020": 94970
        },
        {
          "id": 91,
          "name": "Vance",
          "population2020": 42578
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        11
      ],
      "population": 206121,
      "minimumTraversals": 2,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-13",
      "name": "Granville / Wake",
      "countyIds": [
        39,
        92
      ],
      "countyNames": [
        "Granville",
        "Wake"
      ],
      "counties": [
        {
          "id": 39,
          "name": "Granville",
          "population2020": 60992
        },
        {
          "id": 92,
          "name": "Wake",
          "population2020": 1129410
        }
      ],
      "seats": 6,
      "sourceDistricts": [
        13,
        14,
        15,
        16,
        17,
        18
      ],
      "population": 1190402,
      "minimumTraversals": 1,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-19",
      "name": "Cumberland / Moore",
      "countyIds": [
        26,
        63
      ],
      "countyNames": [
        "Cumberland",
        "Moore"
      ],
      "counties": [
        {
          "id": 26,
          "name": "Cumberland",
          "population2020": 334728
        },
        {
          "id": 63,
          "name": "Moore",
          "population2020": 99727
        }
      ],
      "seats": 2,
      "sourceDistricts": [
        19,
        21
      ],
      "population": 434455,
      "minimumTraversals": 1,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-20",
      "name": "Chatham / Durham",
      "countyIds": [
        19,
        32
      ],
      "countyNames": [
        "Chatham",
        "Durham"
      ],
      "counties": [
        {
          "id": 19,
          "name": "Chatham",
          "population2020": 76285
        },
        {
          "id": 32,
          "name": "Durham",
          "population2020": 324833
        }
      ],
      "seats": 2,
      "sourceDistricts": [
        20,
        22
      ],
      "population": 401118,
      "minimumTraversals": 1,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-23",
      "name": "Caswell / Orange / Person",
      "countyIds": [
        17,
        68,
        73
      ],
      "countyNames": [
        "Caswell",
        "Orange",
        "Person"
      ],
      "counties": [
        {
          "id": 17,
          "name": "Caswell",
          "population2020": 22736
        },
        {
          "id": 68,
          "name": "Orange",
          "population2020": 148696
        },
        {
          "id": 73,
          "name": "Person",
          "population2020": 39097
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        23
      ],
      "population": 210529,
      "minimumTraversals": 2,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-24",
      "name": "Hoke / Robeson / Scotland",
      "countyIds": [
        47,
        78,
        83
      ],
      "countyNames": [
        "Hoke",
        "Robeson",
        "Scotland"
      ],
      "counties": [
        {
          "id": 47,
          "name": "Hoke",
          "population2020": 52082
        },
        {
          "id": 78,
          "name": "Robeson",
          "population2020": 116530
        },
        {
          "id": 83,
          "name": "Scotland",
          "population2020": 34174
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        24
      ],
      "population": 202786,
      "minimumTraversals": 2,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-25",
      "name": "Alamance / Anson / Cabarrus / Montgomery / Randolph / Richmond / Union",
      "countyIds": [
        1,
        4,
        13,
        62,
        76,
        77,
        90
      ],
      "countyNames": [
        "Alamance",
        "Anson",
        "Cabarrus",
        "Montgomery",
        "Randolph",
        "Richmond",
        "Union"
      ],
      "counties": [
        {
          "id": 1,
          "name": "Alamance",
          "population2020": 171415
        },
        {
          "id": 4,
          "name": "Anson",
          "population2020": 22055
        },
        {
          "id": 13,
          "name": "Cabarrus",
          "population2020": 225804
        },
        {
          "id": 62,
          "name": "Montgomery",
          "population2020": 25751
        },
        {
          "id": 76,
          "name": "Randolph",
          "population2020": 144171
        },
        {
          "id": 77,
          "name": "Richmond",
          "population2020": 42946
        },
        {
          "id": 90,
          "name": "Union",
          "population2020": 238267
        }
      ],
      "seats": 4,
      "sourceDistricts": [
        25,
        29,
        34,
        35
      ],
      "population": 870409,
      "minimumTraversals": 6,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-26",
      "name": "Guilford / Rockingham",
      "countyIds": [
        41,
        79
      ],
      "countyNames": [
        "Guilford",
        "Rockingham"
      ],
      "counties": [
        {
          "id": 41,
          "name": "Guilford",
          "population2020": 541299
        },
        {
          "id": 79,
          "name": "Rockingham",
          "population2020": 91096
        }
      ],
      "seats": 3,
      "sourceDistricts": [
        26,
        27,
        28
      ],
      "population": 632395,
      "minimumTraversals": 1,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-30",
      "name": "Davidson / Davie",
      "countyIds": [
        29,
        30
      ],
      "countyNames": [
        "Davidson",
        "Davie"
      ],
      "counties": [
        {
          "id": 29,
          "name": "Davidson",
          "population2020": 168930
        },
        {
          "id": 30,
          "name": "Davie",
          "population2020": 42712
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        30
      ],
      "population": 211642,
      "minimumTraversals": 1,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-33",
      "name": "Rowan / Stanly",
      "countyIds": [
        80,
        84
      ],
      "countyNames": [
        "Rowan",
        "Stanly"
      ],
      "counties": [
        {
          "id": 80,
          "name": "Rowan",
          "population2020": 146875
        },
        {
          "id": 84,
          "name": "Stanly",
          "population2020": 62504
        }
      ],
      "seats": 1,
      "sourceDistricts": [
        33
      ],
      "population": 209379,
      "minimumTraversals": 1,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-37",
      "name": "Iredell / Mecklenburg",
      "countyIds": [
        49,
        60
      ],
      "countyNames": [
        "Iredell",
        "Mecklenburg"
      ],
      "counties": [
        {
          "id": 49,
          "name": "Iredell",
          "population2020": 186693
        },
        {
          "id": 60,
          "name": "Mecklenburg",
          "population2020": 1115482
        }
      ],
      "seats": 6,
      "sourceDistricts": [
        37,
        38,
        39,
        40,
        41,
        42
      ],
      "population": 1302175,
      "minimumTraversals": 1,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-45",
      "name": "Alleghany / Ashe / Avery / Caldwell / Catawba / Cherokee / Clay / Graham / Haywood / Jackson / Macon / Madison / Mitchell / Swain / Transylvania / Watauga / Yancey",
      "countyIds": [
        3,
        5,
        6,
        14,
        18,
        20,
        22,
        38,
        44,
        50,
        56,
        57,
        61,
        87,
        88,
        95,
        100
      ],
      "countyNames": [
        "Alleghany",
        "Ashe",
        "Avery",
        "Caldwell",
        "Catawba",
        "Cherokee",
        "Clay",
        "Graham",
        "Haywood",
        "Jackson",
        "Macon",
        "Madison",
        "Mitchell",
        "Swain",
        "Transylvania",
        "Watauga",
        "Yancey"
      ],
      "counties": [
        {
          "id": 3,
          "name": "Alleghany",
          "population2020": 10888
        },
        {
          "id": 5,
          "name": "Ashe",
          "population2020": 26577
        },
        {
          "id": 6,
          "name": "Avery",
          "population2020": 17806
        },
        {
          "id": 14,
          "name": "Caldwell",
          "population2020": 80652
        },
        {
          "id": 18,
          "name": "Catawba",
          "population2020": 160610
        },
        {
          "id": 20,
          "name": "Cherokee",
          "population2020": 28774
        },
        {
          "id": 22,
          "name": "Clay",
          "population2020": 11089
        },
        {
          "id": 38,
          "name": "Graham",
          "population2020": 8030
        },
        {
          "id": 44,
          "name": "Haywood",
          "population2020": 62089
        },
        {
          "id": 50,
          "name": "Jackson",
          "population2020": 43109
        },
        {
          "id": 56,
          "name": "Macon",
          "population2020": 37014
        },
        {
          "id": 57,
          "name": "Madison",
          "population2020": 21193
        },
        {
          "id": 61,
          "name": "Mitchell",
          "population2020": 14903
        },
        {
          "id": 87,
          "name": "Swain",
          "population2020": 14117
        },
        {
          "id": 88,
          "name": "Transylvania",
          "population2020": 32986
        },
        {
          "id": 95,
          "name": "Watauga",
          "population2020": 54086
        },
        {
          "id": 100,
          "name": "Yancey",
          "population2020": 18470
        }
      ],
      "seats": 3,
      "sourceDistricts": [
        45,
        47,
        50
      ],
      "population": 642393,
      "minimumTraversals": 16,
      "source": {
        "type": "published-fixed",
        "table": 3,
        "pdfPage": 8,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true
    },
    {
      "id": "nc-senate-2023-group-46",
      "name": "Buncombe / Burke / Mcdowell",
      "countyIds": [
        11,
        12,
        59
      ],
      "countyNames": [
        "Buncombe",
        "Burke",
        "Mcdowell"
      ],
      "counties": [
        {
          "id": 11,
          "name": "Buncombe",
          "population2020": 269452
        },
        {
          "id": 12,
          "name": "Burke",
          "population2020": 87570
        },
        {
          "id": 59,
          "name": "Mcdowell",
          "population2020": 44578
        }
      ],
      "seats": 2,
      "population": 401600,
      "minimumTraversals": 2,
      "source": {
        "type": "published-alternative",
        "region": "A",
        "option": "A1",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true,
      "sourceDistricts": [
        46,
        49
      ]
    },
    {
      "id": "nc-senate-2023-group-43",
      "name": "Cleveland / Gaston / Lincoln",
      "countyIds": [
        23,
        36,
        55
      ],
      "countyNames": [
        "Cleveland",
        "Gaston",
        "Lincoln"
      ],
      "counties": [
        {
          "id": 23,
          "name": "Cleveland",
          "population2020": 99519
        },
        {
          "id": 36,
          "name": "Gaston",
          "population2020": 227943
        },
        {
          "id": 55,
          "name": "Lincoln",
          "population2020": 86810
        }
      ],
      "seats": 2,
      "population": 414272,
      "minimumTraversals": 2,
      "source": {
        "type": "published-alternative",
        "region": "A",
        "option": "A1",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true,
      "sourceDistricts": [
        43,
        44
      ]
    },
    {
      "id": "nc-senate-2023-group-48",
      "name": "Henderson / Polk / Rutherford",
      "countyIds": [
        45,
        75,
        81
      ],
      "countyNames": [
        "Henderson",
        "Polk",
        "Rutherford"
      ],
      "counties": [
        {
          "id": 45,
          "name": "Henderson",
          "population2020": 116281
        },
        {
          "id": 75,
          "name": "Polk",
          "population2020": 19328
        },
        {
          "id": 81,
          "name": "Rutherford",
          "population2020": 64444
        }
      ],
      "seats": 1,
      "population": 200053,
      "minimumTraversals": 2,
      "source": {
        "type": "published-alternative",
        "region": "A",
        "option": "A1",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true,
      "sourceDistricts": [
        48
      ]
    },
    {
      "id": "nc-senate-2020-a2-group-1",
      "name": "Buncombe / Henderson / Polk",
      "countyIds": [
        11,
        45,
        75
      ],
      "countyNames": [
        "Buncombe",
        "Henderson",
        "Polk"
      ],
      "counties": [
        {
          "id": 11,
          "name": "Buncombe",
          "population2020": 269452
        },
        {
          "id": 45,
          "name": "Henderson",
          "population2020": 116281
        },
        {
          "id": 75,
          "name": "Polk",
          "population2020": 19328
        }
      ],
      "seats": 2,
      "population": 405061,
      "minimumTraversals": 2,
      "source": {
        "type": "published-alternative",
        "region": "A",
        "option": "A2",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": false
    },
    {
      "id": "nc-senate-2020-a2-group-2",
      "name": "Cleveland / Mcdowell / Rutherford",
      "countyIds": [
        23,
        59,
        81
      ],
      "countyNames": [
        "Cleveland",
        "Mcdowell",
        "Rutherford"
      ],
      "counties": [
        {
          "id": 23,
          "name": "Cleveland",
          "population2020": 99519
        },
        {
          "id": 59,
          "name": "Mcdowell",
          "population2020": 44578
        },
        {
          "id": 81,
          "name": "Rutherford",
          "population2020": 64444
        }
      ],
      "seats": 1,
      "population": 208541,
      "minimumTraversals": 2,
      "source": {
        "type": "published-alternative",
        "region": "A",
        "option": "A2",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": false
    },
    {
      "id": "nc-senate-2020-a2-group-3",
      "name": "Burke / Gaston / Lincoln",
      "countyIds": [
        12,
        36,
        55
      ],
      "countyNames": [
        "Burke",
        "Gaston",
        "Lincoln"
      ],
      "counties": [
        {
          "id": 12,
          "name": "Burke",
          "population2020": 87570
        },
        {
          "id": 36,
          "name": "Gaston",
          "population2020": 227943
        },
        {
          "id": 55,
          "name": "Lincoln",
          "population2020": 86810
        }
      ],
      "seats": 2,
      "population": 402323,
      "minimumTraversals": 2,
      "source": {
        "type": "published-alternative",
        "region": "A",
        "option": "A2",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": false
    },
    {
      "id": "nc-senate-2023-group-31",
      "name": "Forsyth / Stokes",
      "countyIds": [
        34,
        85
      ],
      "countyNames": [
        "Forsyth",
        "Stokes"
      ],
      "counties": [
        {
          "id": 34,
          "name": "Forsyth",
          "population2020": 382590
        },
        {
          "id": 85,
          "name": "Stokes",
          "population2020": 44520
        }
      ],
      "seats": 2,
      "population": 427110,
      "minimumTraversals": 1,
      "source": {
        "type": "published-alternative",
        "region": "B",
        "option": "B1",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true,
      "sourceDistricts": [
        31,
        32
      ]
    },
    {
      "id": "nc-senate-2023-group-36",
      "name": "Alexander / Surry / Wilkes / Yadkin",
      "countyIds": [
        2,
        86,
        97,
        99
      ],
      "countyNames": [
        "Alexander",
        "Surry",
        "Wilkes",
        "Yadkin"
      ],
      "counties": [
        {
          "id": 2,
          "name": "Alexander",
          "population2020": 36444
        },
        {
          "id": 86,
          "name": "Surry",
          "population2020": 71359
        },
        {
          "id": 97,
          "name": "Wilkes",
          "population2020": 65969
        },
        {
          "id": 99,
          "name": "Yadkin",
          "population2020": 37214
        }
      ],
      "seats": 1,
      "population": 210986,
      "minimumTraversals": 3,
      "source": {
        "type": "published-alternative",
        "region": "B",
        "option": "B1",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true,
      "sourceDistricts": [
        36
      ]
    },
    {
      "id": "nc-senate-2020-b2-group-1",
      "name": "Forsyth / Yadkin",
      "countyIds": [
        34,
        99
      ],
      "countyNames": [
        "Forsyth",
        "Yadkin"
      ],
      "counties": [
        {
          "id": 34,
          "name": "Forsyth",
          "population2020": 382590
        },
        {
          "id": 99,
          "name": "Yadkin",
          "population2020": 37214
        }
      ],
      "seats": 2,
      "population": 419804,
      "minimumTraversals": 1,
      "source": {
        "type": "published-alternative",
        "region": "B",
        "option": "B2",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": false
    },
    {
      "id": "nc-senate-2020-b2-group-2",
      "name": "Alexander / Stokes / Surry / Wilkes",
      "countyIds": [
        2,
        85,
        86,
        97
      ],
      "countyNames": [
        "Alexander",
        "Stokes",
        "Surry",
        "Wilkes"
      ],
      "counties": [
        {
          "id": 2,
          "name": "Alexander",
          "population2020": 36444
        },
        {
          "id": 85,
          "name": "Stokes",
          "population2020": 44520
        },
        {
          "id": 86,
          "name": "Surry",
          "population2020": 71359
        },
        {
          "id": 97,
          "name": "Wilkes",
          "population2020": 65969
        }
      ],
      "seats": 1,
      "population": 218292,
      "minimumTraversals": 3,
      "source": {
        "type": "published-alternative",
        "region": "B",
        "option": "B2",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": false
    },
    {
      "id": "nc-senate-2020-c1-group-1",
      "name": "Bladen / Brunswick / Columbus",
      "countyIds": [
        9,
        10,
        24
      ],
      "countyNames": [
        "Bladen",
        "Brunswick",
        "Columbus"
      ],
      "counties": [
        {
          "id": 9,
          "name": "Bladen",
          "population2020": 29606
        },
        {
          "id": 10,
          "name": "Brunswick",
          "population2020": 136693
        },
        {
          "id": 24,
          "name": "Columbus",
          "population2020": 50623
        }
      ],
      "seats": 1,
      "population": 216922,
      "minimumTraversals": 2,
      "source": {
        "type": "published-alternative",
        "region": "C",
        "option": "C1",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": false
    },
    {
      "id": "nc-senate-2020-c1-group-2",
      "name": "Duplin / Harnett / Jones / Lee / New Hanover / Pender / Sampson",
      "countyIds": [
        31,
        43,
        52,
        53,
        65,
        71,
        82
      ],
      "countyNames": [
        "Duplin",
        "Harnett",
        "Jones",
        "Lee",
        "New Hanover",
        "Pender",
        "Sampson"
      ],
      "counties": [
        {
          "id": 31,
          "name": "Duplin",
          "population2020": 48715
        },
        {
          "id": 43,
          "name": "Harnett",
          "population2020": 133568
        },
        {
          "id": 52,
          "name": "Jones",
          "population2020": 9172
        },
        {
          "id": 53,
          "name": "Lee",
          "population2020": 63285
        },
        {
          "id": 65,
          "name": "New Hanover",
          "population2020": 225702
        },
        {
          "id": 71,
          "name": "Pender",
          "population2020": 60203
        },
        {
          "id": 82,
          "name": "Sampson",
          "population2020": 59036
        }
      ],
      "seats": 3,
      "population": 599681,
      "minimumTraversals": 6,
      "source": {
        "type": "published-alternative",
        "region": "C",
        "option": "C1",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": false
    },
    {
      "id": "nc-senate-2023-group-9",
      "name": "Bladen / Duplin / Harnett / Jones / Lee / Pender / Sampson",
      "countyIds": [
        9,
        31,
        43,
        52,
        53,
        71,
        82
      ],
      "countyNames": [
        "Bladen",
        "Duplin",
        "Harnett",
        "Jones",
        "Lee",
        "Pender",
        "Sampson"
      ],
      "counties": [
        {
          "id": 9,
          "name": "Bladen",
          "population2020": 29606
        },
        {
          "id": 31,
          "name": "Duplin",
          "population2020": 48715
        },
        {
          "id": 43,
          "name": "Harnett",
          "population2020": 133568
        },
        {
          "id": 52,
          "name": "Jones",
          "population2020": 9172
        },
        {
          "id": 53,
          "name": "Lee",
          "population2020": 63285
        },
        {
          "id": 71,
          "name": "Pender",
          "population2020": 60203
        },
        {
          "id": 82,
          "name": "Sampson",
          "population2020": 59036
        }
      ],
      "seats": 2,
      "population": 403585,
      "minimumTraversals": 6,
      "source": {
        "type": "published-alternative",
        "region": "C",
        "option": "C2",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true,
      "sourceDistricts": [
        9,
        12
      ]
    },
    {
      "id": "nc-senate-2023-group-7",
      "name": "Brunswick / Columbus / New Hanover",
      "countyIds": [
        10,
        24,
        65
      ],
      "countyNames": [
        "Brunswick",
        "Columbus",
        "New Hanover"
      ],
      "counties": [
        {
          "id": 10,
          "name": "Brunswick",
          "population2020": 136693
        },
        {
          "id": 24,
          "name": "Columbus",
          "population2020": 50623
        },
        {
          "id": 65,
          "name": "New Hanover",
          "population2020": 225702
        }
      ],
      "seats": 2,
      "population": 413018,
      "minimumTraversals": 2,
      "source": {
        "type": "published-alternative",
        "region": "C",
        "option": "C2",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true,
      "sourceDistricts": [
        7,
        8
      ]
    },
    {
      "id": "nc-senate-2020-d1-group-1",
      "name": "Carteret / Chowan / Dare / Hyde / Pamlico / Pasquotank / Perquimans / Washington",
      "countyIds": [
        16,
        21,
        28,
        48,
        69,
        70,
        72,
        94
      ],
      "countyNames": [
        "Carteret",
        "Chowan",
        "Dare",
        "Hyde",
        "Pamlico",
        "Pasquotank",
        "Perquimans",
        "Washington"
      ],
      "counties": [
        {
          "id": 16,
          "name": "Carteret",
          "population2020": 67686
        },
        {
          "id": 21,
          "name": "Chowan",
          "population2020": 13708
        },
        {
          "id": 28,
          "name": "Dare",
          "population2020": 36915
        },
        {
          "id": 48,
          "name": "Hyde",
          "population2020": 4589
        },
        {
          "id": 69,
          "name": "Pamlico",
          "population2020": 12276
        },
        {
          "id": 70,
          "name": "Pasquotank",
          "population2020": 40568
        },
        {
          "id": 72,
          "name": "Perquimans",
          "population2020": 13005
        },
        {
          "id": 94,
          "name": "Washington",
          "population2020": 11003
        }
      ],
      "seats": 1,
      "population": 199750,
      "minimumTraversals": 7,
      "source": {
        "type": "published-alternative",
        "region": "D",
        "option": "D1",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": false
    },
    {
      "id": "nc-senate-2020-d1-group-2",
      "name": "Bertie / Camden / Currituck / Gates / Halifax / Hertford / Martin / Northampton / Tyrrell / Warren",
      "countyIds": [
        8,
        15,
        27,
        37,
        42,
        46,
        58,
        66,
        89,
        93
      ],
      "countyNames": [
        "Bertie",
        "Camden",
        "Currituck",
        "Gates",
        "Halifax",
        "Hertford",
        "Martin",
        "Northampton",
        "Tyrrell",
        "Warren"
      ],
      "counties": [
        {
          "id": 8,
          "name": "Bertie",
          "population2020": 17934
        },
        {
          "id": 15,
          "name": "Camden",
          "population2020": 10355
        },
        {
          "id": 27,
          "name": "Currituck",
          "population2020": 28100
        },
        {
          "id": 37,
          "name": "Gates",
          "population2020": 10478
        },
        {
          "id": 42,
          "name": "Halifax",
          "population2020": 48622
        },
        {
          "id": 46,
          "name": "Hertford",
          "population2020": 21552
        },
        {
          "id": 58,
          "name": "Martin",
          "population2020": 22031
        },
        {
          "id": 66,
          "name": "Northampton",
          "population2020": 17471
        },
        {
          "id": 89,
          "name": "Tyrrell",
          "population2020": 3245
        },
        {
          "id": 93,
          "name": "Warren",
          "population2020": 18642
        }
      ],
      "seats": 1,
      "population": 198430,
      "minimumTraversals": 9,
      "source": {
        "type": "published-alternative",
        "region": "D",
        "option": "D1",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": false
    },
    {
      "id": "nc-senate-2023-group-2",
      "name": "Carteret / Chowan / Halifax / Hyde / Martin / Pamlico / Warren / Washington",
      "countyIds": [
        16,
        21,
        42,
        48,
        58,
        69,
        93,
        94
      ],
      "countyNames": [
        "Carteret",
        "Chowan",
        "Halifax",
        "Hyde",
        "Martin",
        "Pamlico",
        "Warren",
        "Washington"
      ],
      "counties": [
        {
          "id": 16,
          "name": "Carteret",
          "population2020": 67686
        },
        {
          "id": 21,
          "name": "Chowan",
          "population2020": 13708
        },
        {
          "id": 42,
          "name": "Halifax",
          "population2020": 48622
        },
        {
          "id": 48,
          "name": "Hyde",
          "population2020": 4589
        },
        {
          "id": 58,
          "name": "Martin",
          "population2020": 22031
        },
        {
          "id": 69,
          "name": "Pamlico",
          "population2020": 12276
        },
        {
          "id": 93,
          "name": "Warren",
          "population2020": 18642
        },
        {
          "id": 94,
          "name": "Washington",
          "population2020": 11003
        }
      ],
      "seats": 1,
      "population": 198557,
      "minimumTraversals": 7,
      "source": {
        "type": "published-alternative",
        "region": "D",
        "option": "D2",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true,
      "sourceDistricts": [
        2
      ]
    },
    {
      "id": "nc-senate-2023-group-1",
      "name": "Bertie / Camden / Currituck / Dare / Gates / Hertford / Northampton / Pasquotank / Perquimans / Tyrrell",
      "countyIds": [
        8,
        15,
        27,
        28,
        37,
        46,
        66,
        70,
        72,
        89
      ],
      "countyNames": [
        "Bertie",
        "Camden",
        "Currituck",
        "Dare",
        "Gates",
        "Hertford",
        "Northampton",
        "Pasquotank",
        "Perquimans",
        "Tyrrell"
      ],
      "counties": [
        {
          "id": 8,
          "name": "Bertie",
          "population2020": 17934
        },
        {
          "id": 15,
          "name": "Camden",
          "population2020": 10355
        },
        {
          "id": 27,
          "name": "Currituck",
          "population2020": 28100
        },
        {
          "id": 28,
          "name": "Dare",
          "population2020": 36915
        },
        {
          "id": 37,
          "name": "Gates",
          "population2020": 10478
        },
        {
          "id": 46,
          "name": "Hertford",
          "population2020": 21552
        },
        {
          "id": 66,
          "name": "Northampton",
          "population2020": 17471
        },
        {
          "id": 70,
          "name": "Pasquotank",
          "population2020": 40568
        },
        {
          "id": 72,
          "name": "Perquimans",
          "population2020": 13005
        },
        {
          "id": 89,
          "name": "Tyrrell",
          "population2020": 3245
        }
      ],
      "seats": 1,
      "population": 199623,
      "minimumTraversals": 9,
      "source": {
        "type": "published-alternative",
        "region": "D",
        "option": "D2",
        "table": 1,
        "pdfPage": 6,
        "url": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf"
      },
      "isAdopted2023Group": true,
      "sourceDistricts": [
        1
      ]
    }
  ],
  "combinations": [
    {
      "id": "A1-B1-C1-D1",
      "label": "A1 \u00b7 B1 \u00b7 C1 \u00b7 D1",
      "choices": {
        "A": "A1",
        "B": "B1",
        "C": "C1",
        "D": "D1"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2023-group-46",
        "nc-senate-2023-group-43",
        "nc-senate-2023-group-48",
        "nc-senate-2023-group-31",
        "nc-senate-2023-group-36",
        "nc-senate-2020-c1-group-1",
        "nc-senate-2020-c1-group-2",
        "nc-senate-2020-d1-group-1",
        "nc-senate-2020-d1-group-2"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A1-B1-C1-D2",
      "label": "A1 \u00b7 B1 \u00b7 C1 \u00b7 D2",
      "choices": {
        "A": "A1",
        "B": "B1",
        "C": "C1",
        "D": "D2"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2023-group-46",
        "nc-senate-2023-group-43",
        "nc-senate-2023-group-48",
        "nc-senate-2023-group-31",
        "nc-senate-2023-group-36",
        "nc-senate-2020-c1-group-1",
        "nc-senate-2020-c1-group-2",
        "nc-senate-2023-group-2",
        "nc-senate-2023-group-1"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A1-B1-C2-D1",
      "label": "A1 \u00b7 B1 \u00b7 C2 \u00b7 D1",
      "choices": {
        "A": "A1",
        "B": "B1",
        "C": "C2",
        "D": "D1"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2023-group-46",
        "nc-senate-2023-group-43",
        "nc-senate-2023-group-48",
        "nc-senate-2023-group-31",
        "nc-senate-2023-group-36",
        "nc-senate-2023-group-9",
        "nc-senate-2023-group-7",
        "nc-senate-2020-d1-group-1",
        "nc-senate-2020-d1-group-2"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A1-B1-C2-D2",
      "label": "A1 \u00b7 B1 \u00b7 C2 \u00b7 D2",
      "choices": {
        "A": "A1",
        "B": "B1",
        "C": "C2",
        "D": "D2"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2023-group-46",
        "nc-senate-2023-group-43",
        "nc-senate-2023-group-48",
        "nc-senate-2023-group-31",
        "nc-senate-2023-group-36",
        "nc-senate-2023-group-9",
        "nc-senate-2023-group-7",
        "nc-senate-2023-group-2",
        "nc-senate-2023-group-1"
      ],
      "isAdopted2023": true,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A1-B2-C1-D1",
      "label": "A1 \u00b7 B2 \u00b7 C1 \u00b7 D1",
      "choices": {
        "A": "A1",
        "B": "B2",
        "C": "C1",
        "D": "D1"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2023-group-46",
        "nc-senate-2023-group-43",
        "nc-senate-2023-group-48",
        "nc-senate-2020-b2-group-1",
        "nc-senate-2020-b2-group-2",
        "nc-senate-2020-c1-group-1",
        "nc-senate-2020-c1-group-2",
        "nc-senate-2020-d1-group-1",
        "nc-senate-2020-d1-group-2"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A1-B2-C1-D2",
      "label": "A1 \u00b7 B2 \u00b7 C1 \u00b7 D2",
      "choices": {
        "A": "A1",
        "B": "B2",
        "C": "C1",
        "D": "D2"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2023-group-46",
        "nc-senate-2023-group-43",
        "nc-senate-2023-group-48",
        "nc-senate-2020-b2-group-1",
        "nc-senate-2020-b2-group-2",
        "nc-senate-2020-c1-group-1",
        "nc-senate-2020-c1-group-2",
        "nc-senate-2023-group-2",
        "nc-senate-2023-group-1"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A1-B2-C2-D1",
      "label": "A1 \u00b7 B2 \u00b7 C2 \u00b7 D1",
      "choices": {
        "A": "A1",
        "B": "B2",
        "C": "C2",
        "D": "D1"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2023-group-46",
        "nc-senate-2023-group-43",
        "nc-senate-2023-group-48",
        "nc-senate-2020-b2-group-1",
        "nc-senate-2020-b2-group-2",
        "nc-senate-2023-group-9",
        "nc-senate-2023-group-7",
        "nc-senate-2020-d1-group-1",
        "nc-senate-2020-d1-group-2"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A1-B2-C2-D2",
      "label": "A1 \u00b7 B2 \u00b7 C2 \u00b7 D2",
      "choices": {
        "A": "A1",
        "B": "B2",
        "C": "C2",
        "D": "D2"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2023-group-46",
        "nc-senate-2023-group-43",
        "nc-senate-2023-group-48",
        "nc-senate-2020-b2-group-1",
        "nc-senate-2020-b2-group-2",
        "nc-senate-2023-group-9",
        "nc-senate-2023-group-7",
        "nc-senate-2023-group-2",
        "nc-senate-2023-group-1"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A2-B1-C1-D1",
      "label": "A2 \u00b7 B1 \u00b7 C1 \u00b7 D1",
      "choices": {
        "A": "A2",
        "B": "B1",
        "C": "C1",
        "D": "D1"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2020-a2-group-1",
        "nc-senate-2020-a2-group-2",
        "nc-senate-2020-a2-group-3",
        "nc-senate-2023-group-31",
        "nc-senate-2023-group-36",
        "nc-senate-2020-c1-group-1",
        "nc-senate-2020-c1-group-2",
        "nc-senate-2020-d1-group-1",
        "nc-senate-2020-d1-group-2"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A2-B1-C1-D2",
      "label": "A2 \u00b7 B1 \u00b7 C1 \u00b7 D2",
      "choices": {
        "A": "A2",
        "B": "B1",
        "C": "C1",
        "D": "D2"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2020-a2-group-1",
        "nc-senate-2020-a2-group-2",
        "nc-senate-2020-a2-group-3",
        "nc-senate-2023-group-31",
        "nc-senate-2023-group-36",
        "nc-senate-2020-c1-group-1",
        "nc-senate-2020-c1-group-2",
        "nc-senate-2023-group-2",
        "nc-senate-2023-group-1"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A2-B1-C2-D1",
      "label": "A2 \u00b7 B1 \u00b7 C2 \u00b7 D1",
      "choices": {
        "A": "A2",
        "B": "B1",
        "C": "C2",
        "D": "D1"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2020-a2-group-1",
        "nc-senate-2020-a2-group-2",
        "nc-senate-2020-a2-group-3",
        "nc-senate-2023-group-31",
        "nc-senate-2023-group-36",
        "nc-senate-2023-group-9",
        "nc-senate-2023-group-7",
        "nc-senate-2020-d1-group-1",
        "nc-senate-2020-d1-group-2"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A2-B1-C2-D2",
      "label": "A2 \u00b7 B1 \u00b7 C2 \u00b7 D2",
      "choices": {
        "A": "A2",
        "B": "B1",
        "C": "C2",
        "D": "D2"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2020-a2-group-1",
        "nc-senate-2020-a2-group-2",
        "nc-senate-2020-a2-group-3",
        "nc-senate-2023-group-31",
        "nc-senate-2023-group-36",
        "nc-senate-2023-group-9",
        "nc-senate-2023-group-7",
        "nc-senate-2023-group-2",
        "nc-senate-2023-group-1"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A2-B2-C1-D1",
      "label": "A2 \u00b7 B2 \u00b7 C1 \u00b7 D1",
      "choices": {
        "A": "A2",
        "B": "B2",
        "C": "C1",
        "D": "D1"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2020-a2-group-1",
        "nc-senate-2020-a2-group-2",
        "nc-senate-2020-a2-group-3",
        "nc-senate-2020-b2-group-1",
        "nc-senate-2020-b2-group-2",
        "nc-senate-2020-c1-group-1",
        "nc-senate-2020-c1-group-2",
        "nc-senate-2020-d1-group-1",
        "nc-senate-2020-d1-group-2"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A2-B2-C1-D2",
      "label": "A2 \u00b7 B2 \u00b7 C1 \u00b7 D2",
      "choices": {
        "A": "A2",
        "B": "B2",
        "C": "C1",
        "D": "D2"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2020-a2-group-1",
        "nc-senate-2020-a2-group-2",
        "nc-senate-2020-a2-group-3",
        "nc-senate-2020-b2-group-1",
        "nc-senate-2020-b2-group-2",
        "nc-senate-2020-c1-group-1",
        "nc-senate-2020-c1-group-2",
        "nc-senate-2023-group-2",
        "nc-senate-2023-group-1"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A2-B2-C2-D1",
      "label": "A2 \u00b7 B2 \u00b7 C2 \u00b7 D1",
      "choices": {
        "A": "A2",
        "B": "B2",
        "C": "C2",
        "D": "D1"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2020-a2-group-1",
        "nc-senate-2020-a2-group-2",
        "nc-senate-2020-a2-group-3",
        "nc-senate-2020-b2-group-1",
        "nc-senate-2020-b2-group-2",
        "nc-senate-2023-group-9",
        "nc-senate-2023-group-7",
        "nc-senate-2020-d1-group-1",
        "nc-senate-2020-d1-group-2"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    },
    {
      "id": "A2-B2-C2-D2",
      "label": "A2 \u00b7 B2 \u00b7 C2 \u00b7 D2",
      "choices": {
        "A": "A2",
        "B": "B2",
        "C": "C2",
        "D": "D2"
      },
      "groupIds": [
        "nc-senate-2023-group-3",
        "nc-senate-2023-group-4",
        "nc-senate-2023-group-5",
        "nc-senate-2023-group-6",
        "nc-senate-2023-group-10",
        "nc-senate-2023-group-11",
        "nc-senate-2023-group-13",
        "nc-senate-2023-group-19",
        "nc-senate-2023-group-20",
        "nc-senate-2023-group-23",
        "nc-senate-2023-group-24",
        "nc-senate-2023-group-25",
        "nc-senate-2023-group-26",
        "nc-senate-2023-group-30",
        "nc-senate-2023-group-33",
        "nc-senate-2023-group-37",
        "nc-senate-2023-group-45",
        "nc-senate-2020-a2-group-1",
        "nc-senate-2020-a2-group-2",
        "nc-senate-2020-a2-group-3",
        "nc-senate-2020-b2-group-1",
        "nc-senate-2020-b2-group-2",
        "nc-senate-2023-group-9",
        "nc-senate-2023-group-7",
        "nc-senate-2023-group-2",
        "nc-senate-2023-group-1"
      ],
      "isAdopted2023": false,
      "groupCount": 26,
      "districtCount": 50,
      "countyCount": 100,
      "population": 10439388,
      "minimumTraversals": 74
    }
  ],
  "provenance": {
    "sourceTitle": "NC General Assembly County Clusterings from the 2020 Census",
    "sourceAuthors": [
      "Christopher Cooper",
      "Blake Esselstyn",
      "Gregory Herschlag",
      "Jonathan Mattingly",
      "Rebecca Tippett"
    ],
    "sourcePublished": "2021-08-17",
    "sourceUrl": "https://sites.duke.edu/quantifyinggerrymandering/files/2021/08/countyClusters2020.pdf",
    "sourcePdfSha256": "29c9baca144885e9e56990f0fbe8bddbcf9f2c63e296ad095f6fc30f95df62aa",
    "sourcePdfBytes": 3850232,
    "sourcePdfLastModified": "Tue, 17 Aug 2021 21:33:56 GMT",
    "announcementUrl": "https://sites.duke.edu/quantifyinggerrymandering/2021/08/17/north-carolinas-2020-county-clusters-for-the-general-assembly/",
    "tables": {
      "alternatives": {
        "table": 1,
        "pdfPage": 6
      },
      "fixed": {
        "table": 3,
        "pdfPage": 8
      }
    },
    "retrievedAt": "2026-11-11T05:04:25.917484+00:00",
    "adoptedReferenceFile": "official-senate-grouping.json",
    "adoptedReferenceSha256": "bcf60fc23f38eabaf377beb5e1a7359b89586f18be228f5a5223bb29a9828215",
    "adoptedSourceUrl": "https://www.ncleg.gov/EnactedLegislation/Statutes/HTML/BySection/Chapter_120/GS_120-1.html",
    "populationCrossCheck": "Every published group population matches the sum of current app county aggregates from official 2020 Census block allocations.",
    "identifiers": "countyIds are NCSBE/app IDs, not FIPS. County names are case-insensitive matches; app Mcdowell equals report McDowell.",
    "westernReconciliation": {
      "groupId": "nc-senate-2023-group-45",
      "countyCount": 17,
      "seats": 3,
      "population": 642393,
      "adoptedDistricts": [
        45,
        47,
        50
      ],
      "explanation": "One fixed group in Table3. The three adopted districts are subdivisions inside that group, linked through split Caldwell and Haywood counties. They are not three different county groups. Buncombe/Burke/McDowell and Henderson/Polk/Rutherford belong to the separate variable A region."
    }
  },
  "validation": {
    "uniqueGroups": 35,
    "fixedGroups": 17,
    "fixedSeats": 36,
    "binaryRegions": 4,
    "combinations": 16,
    "eachCombinationGroups": 26,
    "eachCombinationCounties": 100,
    "eachCombinationSeats": 50,
    "eachCombinationPopulation": 10439388,
    "eachCombinationMinimumTraversals": 74,
    "adoptedExactMatch": true,
    "allPublishedGroupPopulationsMatchAppCountyTotals": true,
    "allUniqueGroupsAtomConnected": true,
    "atomCount": 2632
  },
  "scope": "The 16 alternatives exhaust the combinations listed in the cited 2020 Census study, not independently recomputed legal or Voting Rights Act determinations. Each candidate district plan still requires hard population, fixed selected-group boundaries, atom contiguity and traversal validation. Search failure must not relax constraints."
}
