13  CPC Initiative

The Comprehensive Primary Care (CPC) Initiative - Participating Primary Care Practices dataset provides a list of practices involved in a multi-payer initiative which fosters collaboration between public and private health care payers to strengthen primary care.

Metadata

       [ROWS] 497 
     [FIELDS] 8 
   [MODIFIED] 2025-04-24 
[PERIODICITY] Annually [R/P1Y] 
   [TEMPORAL] 2017-01-01 • 2017-12-31 
 [DICTIONARY] https://data.cms.gov/resources/cpc-initiative-participating-primary-care-practices-data-dictionary 
       [SITE] https://data.cms.gov/cms-innovation-center-programs/accountable-care-models/cpc-initiative-participating-primary-care-practices 
 [REFERENCES] https://data.cms.gov/resources/cpc-initiative-participating-primary-care-practices-methodology 
  [RESOURCES] https://data.cms.gov/data-api/v1/dataset-resources/24da2642-7269-4c75-9a62-0dc3a195b205 
   [DOWNLOAD] https://data.cms.gov/sites/default/files/2020-07/CPC_Initiative__Participating_Primary_Care_Practices.csv 

Resources

[CSV] 98.8KCPC Initiative - Participating Primary Care Practices
[PDF] 72.3KCPC Initiative - Participating Primary Care Practices Methodology
[PDF] 46.6KCPC Initiative - Participating Primary Care Practices Data Dictionary

Dictionary

Name of Initiative
Name of the initiative.

Participating Practice
Participating practice's name.

Participating Practice Location
Participating practice's location, including
longitude and latitude.

State
State where the participating practice is located.

City
City where the participating practice is located.

Geographic Reach
Geographic reach of the participating practice.
This field is not currently in use.

Street Address
Street where the participating practice is
located.

Zip Code
Zip code of the participating practice. This field
is not currently in use.

Data

res <- quick("cpc_primary", limit = 5000) |>
  slt(
    practice = "Participating Practice",
    location = "Participating Practice Location",
    state    = "State",
    city     = "City",
    address  = "Street Address"
  ) |>
  mtt(
    location = stri_extract(location, regex = "(?<=\\().*(?=\\))"),
    lat = stri_extract(location, regex = ".*(?=\\,)") |> as.double(),
    lon = stri_extract(location, regex = "(?<=\\,\\s).*") |> as.double(),
    location = NULL
  ) |>
  sf::st_as_sf(
    coords = c("lon", "lat"),
    crs = sf::st_crs(4326),
    na.fail = FALSE
  ) |>
  usmap::usmap_transform() |>
  rsplit( ~ state, keep.by = TRUE)

plot_maps <- function(state) {
  plot_usmap(
    "counties",
    include   = c(state),
    color     = "white",
    fill      = "grey80",
    linewidth = 0.25
  ) +
    geom_sf(
      data  = res[[state]],
      fill  = "navy",
      color = "white",
      shape = 21,
      size  = 3
    ) +
    theme(panel.background = element_rect(color = "white", fill = "lightyellow"))
}