cori.data.fcc
Access FCC National Broadband Map (NBM) and Form 477 data at the county and census block level. Includes CORI-processed S3-backed datasets and tools for analyzing broadband infrastructure availability across rural and nonrural geographies.
John Hall 2026-08-31
Overview
The cori.data.fcc package provides access to two FCC broadband datasets: the National Broadband Map (NBM), launched in November 2022, and the legacy Form 477 data covering December 2014 through December 2021. Together they offer a continuous picture of broadband infrastructure availability across the United States — from the census-block-level reporting of Form 477 to the location-level precision of the NBM.
The NBM is the primary dataset for current analysis. It captures what internet services are available at individual broadband serviceable locations (BSLs) — residential and business addresses — as reported by ISPs twice yearly. CORI makes the NBM available at two analytical levels: raw location-level data by county (get_nbm_county_raw()), and a census-block summary (get_nbm_bl()) that aggregates service counts by technology type and speed threshold. The block-level summary is the standard entrypoint for county- and community-level broadband analysis.
Form 477 provides historical context — particularly for tracking how rural broadband coverage has changed over the decade prior to the NBM. CORI’s ingestion focuses on fixed broadband (excluding satellite) and applies consistent versioning decisions to produce a comparable longitudinal dataset.
Installation & quick start
remotes::install_github("ruralinnovation/cori.data.fcc")
library(cori.data.fcc)
# Census block-level NBM summary for a county
nbm_bl <- get_nbm_bl(geoid_co = "33009")
# County-level NBM summary
nbm_co <- get_nbm_county("33009")
# Raw location-level NBM data
nbm_raw <- get_nbm_county_raw(geoid_co = "33009")
# Form 477 — state data across all available years
f477_nh <- get_f477("NH")
# Data dictionary
get_fcc_dictionary("nbm_block")
What this data tells us about rural America
Broadband infrastructure is a foundational asset for rural participation in the modern economy — enabling remote work, business formation, telehealth, and education in communities that geography once isolated from these opportunities. The FCC National Broadband Map provides the current county-level picture of where infrastructure exists and at what speeds, making it possible to track the closing of the rural broadband gap over time.
Research shows that high-speed internet improves economic outcomes in rural communities through increased business activity and broader economic development measures including productivity, jobs, and income. The NBM data makes it possible to track where rural broadband investment is occurring, where gaps persist, and how coverage has evolved over time.
National Broadband Map (NBM)
Adapted from the NBM vignette on GitHub.
What is the NBM?
The FCC’s National Broadband Map captures broadband availability at the level of individual broadband serviceable locations (BSLs) — every residential and business address where fixed internet service is or can be installed. For each location, the NBM records which providers serve it, what technologies they use, and their maximum advertised download and upload speeds.
The NBM publishes two major releases per year (June and December), with interim updates every two weeks to incorporate challenge data. CORI ingests each release into S3 and maintains the full history so analyses can be compared across time.
What is a Broadband Serviceable Location (BSL)?
A BSL is defined as “a business or residential location in the United States at which fixed broadband internet access service is, or can be, installed.” The exact coordinates of each location are part of the underlying Fabric dataset maintained by CostQuest Associates — within the Broadband Availability data, locations are linked to a 2020 Census block.
Accessing NBM data
The package provides three levels of access:
1. County-level summary — aggregated counts per county per release:
nbm_co <- get_nbm_county("33009")
dplyr::glimpse(nbm_co)
2. Census block-level — CORI-opinionated aggregation with technology type and speed threshold counts (21 columns), one row per block:
nbm_bl <- get_nbm_bl(geoid_co = "33009")
dplyr::glimpse(nbm_bl)
3. Raw location-level — the full NBM records for all locations in a county as reported by ISPs:
nbm_raw <- get_nbm_county_raw(geoid_co = "33009")
dplyr::glimpse(nbm_raw)
The block-level summary (get_nbm_bl()) is the recommended starting point for county and community analysis — it aggregates to technology type and speed thresholds most relevant for rural broadband gap work (25/3, 100/20, 100/100 Mbps).
Checking available releases
# List all available NBM release dates
get_nbm_release()
# See what files are available
get_nbm_available()
Looking up providers by FRN
The FCC Registration Number (FRN) uniquely identifies each ISP. To find all census blocks served by a specific provider:
# Blocks served by a specific provider
get_frn_nbm_bl("0027136753")
# Validate an FRN format
check_frn("0027136753")
A reference table of provider names, FRNs, and provider IDs is bundled as fcc_provider (4,456 records).
Data dictionary
get_fcc_dictionary("nbm_block") # block-level variables
get_fcc_dictionary("nbm_raw") # raw NBM variables
NOTE Attribution: Broadband availability data from the FCC Broadband Data Collection is offered free and not subject to copyright restriction. When using this data, please attribute as: Source data: FCC Broadband Data Collection. The underlying Fabric location data is owned by CostQuest Associates, Inc. See the NBM about page for full licensing terms.
Form 477
Adapted from the Form 477 vignette on GitHub.
Form 477 is the FCC’s legacy broadband reporting program, covering December 2014 through December 2021. Providers were required to file twice yearly on where they offered internet access service at speeds exceeding 200 kbps, at the census block level (2010 vintage). Unlike the NBM, Form 477 reported at the block level rather than the location level — a provider needed only to indicate they served at least one location in a block, not what share of the block was covered.
CORI’s ingestion keeps only the final version of each filing period (assumed to be the most consistent release) and focuses on fixed broadband only, excluding satellite. The data is provided as-is — values are not filtered or corrected, leaving those judgments to the analyst.
# Form 477 for New Hampshire — all available years
f477_nh <- get_f477("NH")
dplyr::glimpse(f477_nh)
# Data dictionary
get_fcc_dictionary("f477")
Form 477 is most useful for historical analysis — understanding broadband coverage before the NBM era, or examining pre/post-NBM coverage trends in rural counties over a decade of change.
NOTE Attribution: Broadband data from FCC Form 477 is offered free and not subject to copyright restriction. Please attribute as: Source data: FCC Form 477.
Related
- Dataset: FCC Broadband — source dataset documentation
- Package: cori.data — meta-package that includes
cori.data.fcc - Project: Rural Economic Outlook — broadband coverage is a core input to CORI’s multi-dataset economic analysis
- Post: Democratizing analytics on FCC’s (big) data — more on how CORI uses this data