{
  "alt": "Line chart with two lines over ten deciles of ZIP codes. The capital-gains line runs from a swing of {fact:rep_swing_cap_d1} points toward the Republicans in the lowest decile to {fact:dem_swing_cap_d10} points toward the Democrats in the highest, and is above zero in most deciles. The EITC line runs from {fact:dem_swing_eitc_d1} points toward the Democrats in the lowest decile to {fact:rep_swing_eitc_d10} points toward the Republicans in the highest, and is above zero in most deciles. The two lines cross between the fifth and sixth deciles.",
  "caption": "The two lines cross between the fifth and sixth deciles. Capital-gains ZIP codes went from a Republican swing at the bottom ({fact:rep_swing_cap_d1} points) to a Democratic one at the top ({fact:dem_swing_cap_d10}); EITC ZIP codes did the opposite ({fact:dem_swing_eitc_d1} Democratic to {fact:rep_swing_eitc_d10} Republican). Most deciles of both shares swung toward the Democrats, as the mean of all ZIP codes did ({fact:natl_swing} points).",
  "data": [
    {
      "conf_high": -5.6322,
      "conf_high_state": -4.54948,
      "conf_low": -8.80629,
      "conf_low_state": -9.88902,
      "decile": 1,
      "estimate": -7.21925,
      "measure": "Capital-gains share",
      "n": 2715,
      "share_high": 5.55,
      "share_low": 0
    },
    {
      "conf_high": -0.362853,
      "conf_high_state": 0.345132,
      "conf_low": -3.48077,
      "conf_low_state": -4.18875,
      "decile": 2,
      "estimate": -1.92181,
      "measure": "Capital-gains share",
      "n": 2714,
      "share_high": 8.93,
      "share_low": 5.55
    },
    {
      "conf_high": 1.84572,
      "conf_high_state": 2.5648,
      "conf_low": -0.112552,
      "conf_low_state": -0.83163,
      "decile": 3,
      "estimate": 0.866584,
      "measure": "Capital-gains share",
      "n": 2714,
      "share_high": 11.29,
      "share_low": 8.93
    },
    {
      "conf_high": 2.69218,
      "conf_high_state": 3.10893,
      "conf_low": 1.15207,
      "conf_low_state": 0.735319,
      "decile": 4,
      "estimate": 1.92212,
      "measure": "Capital-gains share",
      "n": 2715,
      "share_high": 13.46,
      "share_low": 11.29
    },
    {
      "conf_high": 3.99055,
      "conf_high_state": 4.67102,
      "conf_low": 2.47501,
      "conf_low_state": 1.79454,
      "decile": 5,
      "estimate": 3.23278,
      "measure": "Capital-gains share",
      "n": 2714,
      "share_high": 15.65,
      "share_low": 13.46
    },
    {
      "conf_high": 4.61159,
      "conf_high_state": 5.30233,
      "conf_low": 3.10502,
      "conf_low_state": 2.41428,
      "decile": 6,
      "estimate": 3.85831,
      "measure": "Capital-gains share",
      "n": 2714,
      "share_high": 18.1,
      "share_low": 15.65
    },
    {
      "conf_high": 5.22826,
      "conf_high_state": 5.63644,
      "conf_low": 3.85578,
      "conf_low_state": 3.4476,
      "decile": 7,
      "estimate": 4.54202,
      "measure": "Capital-gains share",
      "n": 2715,
      "share_high": 20.93,
      "share_low": 18.11
    },
    {
      "conf_high": 6.04035,
      "conf_high_state": 6.5428,
      "conf_low": 4.75748,
      "conf_low_state": 4.25504,
      "decile": 8,
      "estimate": 5.39892,
      "measure": "Capital-gains share",
      "n": 2714,
      "share_high": 24.69,
      "share_low": 20.93
    },
    {
      "conf_high": 6.75014,
      "conf_high_state": 7.56371,
      "conf_low": 5.41217,
      "conf_low_state": 4.5986,
      "decile": 9,
      "estimate": 6.08116,
      "measure": "Capital-gains share",
      "n": 2714,
      "share_high": 31.01,
      "share_low": 24.69
    },
    {
      "conf_high": 6.3764,
      "conf_high_state": 7.35807,
      "conf_low": 4.43048,
      "conf_low_state": 3.44882,
      "decile": 10,
      "estimate": 5.40344,
      "measure": "Capital-gains share",
      "n": 2715,
      "share_high": 77.14,
      "share_low": 31.01
    },
    {
      "conf_high": 7.21052,
      "conf_high_state": 7.95041,
      "conf_low": 5.46331,
      "conf_low_state": 4.72342,
      "decile": 1,
      "estimate": 6.33691,
      "measure": "EITC share",
      "n": 2715,
      "share_high": 5.12,
      "share_low": 0
    },
    {
      "conf_high": 6.83197,
      "conf_high_state": 7.77566,
      "conf_low": 5.54043,
      "conf_low_state": 4.59674,
      "decile": 2,
      "estimate": 6.1862,
      "measure": "EITC share",
      "n": 2714,
      "share_high": 7.69,
      "share_low": 5.12
    },
    {
      "conf_high": 6.44153,
      "conf_high_state": 7.20189,
      "conf_low": 5.00232,
      "conf_low_state": 4.24196,
      "decile": 3,
      "estimate": 5.72193,
      "measure": "EITC share",
      "n": 2714,
      "share_high": 9.68,
      "share_low": 7.69
    },
    {
      "conf_high": 5.50361,
      "conf_high_state": 6.14974,
      "conf_low": 4.21351,
      "conf_low_state": 3.56739,
      "decile": 4,
      "estimate": 4.85856,
      "measure": "EITC share",
      "n": 2715,
      "share_high": 11.51,
      "share_low": 9.68
    },
    {
      "conf_high": 4.8886,
      "conf_high_state": 5.54335,
      "conf_low": 3.61264,
      "conf_low_state": 2.95789,
      "decile": 5,
      "estimate": 4.25062,
      "measure": "EITC share",
      "n": 2714,
      "share_high": 13.4,
      "share_low": 11.51
    },
    {
      "conf_high": 4.07534,
      "conf_high_state": 4.83483,
      "conf_low": 2.46147,
      "conf_low_state": 1.70197,
      "decile": 6,
      "estimate": 3.2684,
      "measure": "EITC share",
      "n": 2714,
      "share_high": 15.45,
      "share_low": 13.41
    },
    {
      "conf_high": 3.23668,
      "conf_high_state": 4.15256,
      "conf_low": 0.683325,
      "conf_low_state": -0.232558,
      "decile": 7,
      "estimate": 1.96,
      "measure": "EITC share",
      "n": 2715,
      "share_high": 18.03,
      "share_low": 15.45
    },
    {
      "conf_high": 1.95604,
      "conf_high_state": 2.75341,
      "conf_low": -0.356238,
      "conf_low_state": -1.15361,
      "decile": 8,
      "estimate": 0.7999,
      "measure": "EITC share",
      "n": 2714,
      "share_high": 21.32,
      "share_low": 18.03
    },
    {
      "conf_high": 0.117948,
      "conf_high_state": 0.989368,
      "conf_low": -3.17405,
      "conf_low_state": -4.04547,
      "decile": 9,
      "estimate": -1.52805,
      "measure": "EITC share",
      "n": 2714,
      "share_high": 26.33,
      "share_low": 21.33
    },
    {
      "conf_high": -3.48846,
      "conf_high_state": -2.29617,
      "conf_low": -6.92353,
      "conf_low_state": -8.11583,
      "decile": 10,
      "estimate": -5.206,
      "measure": "EITC share",
      "n": 2715,
      "share_high": 72.73,
      "share_low": 26.34
    }
  ],
  "id": "share_deciles",
  "notes": [
    "ZIP code tabulation areas are ranked by the share of their returns that report a net capital gain or claim the earned income tax credit and split into ten groups of equal size. Each point is the mean swing weighted by 2020 votes, and the band is a 95% interval clustered on county. The data table also gives intervals clustered on state, which are wider; the intervals of the four end deciles still exclude zero. ZIP codes with 100 or fewer votes in 2020 are excluded."
  ],
  "source": "Precinct votes allocated to ZIP code tabulation areas (Fekrazad 2025), 2016 and 2020; IRS Statistics of Income ZIP-code data, tax year 2022; ACS 5-year estimates; weighted by 2020 votes",
  "spec": {
    "annotations": [
      {
        "label": "No change",
        "type": "y-rule",
        "y": 0
      }
    ],
    "colors": {
      "Capital-gains share": "cat1",
      "EITC share": "cat2"
    },
    "endLabels": true,
    "n": "n",
    "series": "measure",
    "x": "decile",
    "xDomain": [
      1,
      10
    ],
    "xFormat": {
      "digits": 0
    },
    "xLabel": "Decile of ZIP codes by share of returns (1 = lowest share, 10 = highest)",
    "y": "estimate",
    "yDomain": [
      -10,
      10
    ],
    "yFormat": {
      "digits": 0,
      "signed": true
    },
    "yLabel": "Change in Democratic minus Republican margin (points)"
  },
  "subtitle": "Vote-weighted mean change in the two-party margin, 2016 to 2020, by decile of ZIP codes ranked by share of returns; 95% intervals clustered on county; positive is toward the Democrats",
  "table": {
    "columns": [
      {
        "key": "measure",
        "label": "Share ranked"
      },
      {
        "key": "decile",
        "label": "Decile"
      },
      {
        "format": {
          "digits": 1
        },
        "key": "share_low",
        "label": "Lowest share in decile (%)"
      },
      {
        "format": {
          "digits": 1
        },
        "key": "share_high",
        "label": "Highest share in decile (%)"
      },
      {
        "format": {
          "digits": 1,
          "signed": true
        },
        "key": "estimate",
        "label": "Mean swing (points)"
      },
      {
        "format": {
          "digits": 1,
          "signed": true
        },
        "key": "conf_low",
        "label": "Lower bound, county clusters"
      },
      {
        "format": {
          "digits": 1,
          "signed": true
        },
        "key": "conf_high",
        "label": "Upper bound, county clusters"
      },
      {
        "format": {
          "digits": 1,
          "signed": true
        },
        "key": "conf_low_state",
        "label": "Lower bound, state clusters"
      },
      {
        "format": {
          "digits": 1,
          "signed": true
        },
        "key": "conf_high_state",
        "label": "Upper bound, state clusters"
      },
      {
        "format": {
          "digits": 0,
          "thousands": true
        },
        "key": "n",
        "label": "ZIP codes"
      }
    ]
  },
  "title": "The swing rose with the capital-gains share and fell with the EITC share",
  "type": "line",
  "width": "wide"
}
