{
  "alt": "Scatter plot of the actual adult income rank of children from low-income families against the rank predicted by a five-measure model, one dot per sampled tract. The dots form a cloud around a rising diagonal line of perfect prediction, and ten markers for tenths of tracts ranked by prediction lie close to the diagonal from the lowest to the highest prediction.",
  "caption": "Dots spread on both sides of the diagonal, which marks a perfect prediction, and the markers for tenths of tracts ranked by prediction sit close to it. Dots are a random sample of {fact:n_sample} of the {fact:model_n} tracts in the model, and {fact:n_outside_scatter} tracts fall outside the plotted range; markers are population-weighted mean actual ranks in tenths of all tracts, with 95% intervals from a bootstrap over counties. The vertical distance from the diagonal is the residual.",
  "data": [],
  "id": "predicted_vs_actual",
  "notes": [
    "The dots are a random sample of the tracts inside the plotted range, drawn with a fixed seed (stated in the methods note); the R-squared, the residuals and the markers use every tract in the model.",
    "Predictors are the poverty rate, the share of adults with a bachelor's degree or more, the single-parent household share, the natural log of median household income and the Black share of residents (Black alone, of any ethnicity), all from the ACS for 2019 to 2023. Tracts with {fact:min_pop_tract} residents or fewer are left out, and each tract is weighted by its ACS population.",
    "The outcome describes children raised in the 1980s and 1990s and the predictors describe 2019 to 2023, so the residual includes whatever changed in between. Ranks are percentiles of the national distribution of household income for children born in 1978 to 1983, measured in 2014 to 2015. The Opportunity Atlas adds noise to its estimates to protect privacy and the staged values are never clipped. The file on 2020 tracts is interpolated from 2010 tracts by land area."
  ],
  "source": "Opportunity Atlas tract outcomes, 1978-1983 birth cohorts (2020 tracts), and ACS 2019-2023 predictors; population-weighted (ACS tract population), modeled estimates",
  "spec": {
    "identity": true,
    "identityLabel": "Perfect prediction",
    "overlays": [
      {
        "hi": "hi",
        "kind": "line",
        "label": "Tenths of tracts by prediction, with 95% intervals",
        "lo": "lo",
        "rows": [
          {
            "hi": 34.43,
            "lo": 33.65,
            "n_units": 8279,
            "x": 33.33,
            "y": 34.03
          },
          {
            "hi": 38.57,
            "lo": 38.01,
            "n_units": 8279,
            "x": 38.72,
            "y": 38.28
          },
          {
            "hi": 40.43,
            "lo": 39.88,
            "n_units": 8279,
            "x": 40.76,
            "y": 40.15
          },
          {
            "hi": 41.71,
            "lo": 41.29,
            "n_units": 8279,
            "x": 41.99,
            "y": 41.5
          },
          {
            "hi": 43.06,
            "lo": 42.58,
            "n_units": 8279,
            "x": 42.95,
            "y": 42.81
          },
          {
            "hi": 44.2,
            "lo": 43.7,
            "n_units": 8279,
            "x": 43.84,
            "y": 43.94
          },
          {
            "hi": 45.17,
            "lo": 44.61,
            "n_units": 8279,
            "x": 44.78,
            "y": 44.89
          },
          {
            "hi": 46.3,
            "lo": 45.7,
            "n_units": 8279,
            "x": 45.91,
            "y": 46.01
          },
          {
            "hi": 48.09,
            "lo": 47.39,
            "n_units": 8279,
            "x": 47.36,
            "y": 47.74
          },
          {
            "hi": 50.76,
            "lo": 49.66,
            "n_units": 8280,
            "x": 49.94,
            "y": 50.21
          }
        ],
        "x": "x",
        "y": "y"
      }
    ],
    "payload": "predicted_vs_actual.json",
    "x": "pred",
    "xDomain": [
      25,
      55
    ],
    "xFormat": {
      "digits": 0
    },
    "xLabel": "Predicted adult income rank (percentile)",
    "y": "kfr",
    "yDomain": [
      15,
      75
    ],
    "yFormat": {
      "digits": 0
    },
    "yLabel": "Actual adult income rank (percentile)"
  },
  "subtitle": "Adult household income rank (percentile) of children raised in low-income families against the rank predicted from poverty, college, single-parent share, income and Black share, one dot per tract (random sample)",
  "title": "Five census measures account for {fact:r2} of the variation in tract upward mobility, and the population-weighted standard deviation of the gap between actual and predicted rank is {fact:resid_sd} percentile points",
  "type": "scatter"
}
