Written and maintained by CASRAI Editorial Board
Last updated
The Behavioral Risk Factor Surveillance System (BRFSS) is a state-based telephone survey run by the Centers for Disease Control and Prevention (CDC) with health departments in the states and participating US territories. For researchers in public health and epidemiology, the annual BRFSS questionnaire and public-use dataset provide data on health outcomes, health-related risk behaviors, use of preventive services and chronic conditions among noninstitutionalized adults. This guide shows how to find the questionnaire, codebook and data files, and how to apply the survey design variables.
What It Is Used for in Research
Investigators use BRFSS data to study state-level patterns in health risk behaviors, preventive service use and chronic conditions, and to compare jurisdictions that ask the same core questions. Because every participating health department must ask the core component without modification, core variables are comparable across states.
The questionnaire has three parts:
- Core component: The fixed core is asked by all states and covers demographics and current health behaviors such as tobacco use and seatbelt use. The rotating core consists of two topic sets, each asked by all states in alternating years; in the years a set is not part of the core, it is available as an optional module. The emerging core is up to five questions, usually on late-breaking issues, that stay in the core for one year and are then evaluated for future use.
- Optional modules: Question sets on specific topics (past topics include smokeless tobacco, oral health, cardiovascular disease and firearms). States choose whether to use them, and CDC requires that modules used are not modified.
- State-added questions: Questions that individual states add to their own surveys.
Install or Access (Official Source Only)
Public-use BRFSS files are published by CDC on its Annual Survey Data and Documentation page, which lists each survey year from 1991 to 2025. Each year has its own page with the data files, codebook and documentation. If your project combines BRFSS with other data under an institutional agreement, check whether a data use agreement applies and see the data use agreement template guide.
For the 2024 survey year, the CDC page offers:
- SAS Transport format: “2024 BRFSS Data (SAS Transport Format)”, a ZIP file named
LLCP2024XPT.zipcontaining 345 variables. - ASCII data: “2024 BRFSS Data (ASCII)”, a ZIP file named
LLCP2024ASC.zipwith a fixed record length of 2111 positions. - Codebook: “2024 BRFSS Codebook”, a ZIP file.
- Documentation: “Calculated Variables in Data Files”, the 2024 Overview, the 2024 Weighting Formula, “Complex Sampling Weights and Preparing Module Data for Analysis”, “Comparability of Data” and the Summary Data Quality Report with response rates.
The same kinds of files are published for 2025.
Step-by-Step Task: Locating, Extracting, and Weighting BRFSS Data
Follow these six steps to set up a BRFSS analysis.
Step 1: Download the Annual Data and Documentation
Open the CDC Annual Survey Data page, select your survey year (for example 2024), and save the SAS Transport ZIP file (LLCP2024XPT.zip) together with the codebook and the documentation PDFs listed on that year’s page.
Step 2: Consult the BRFSS Codebook
Unzip the codebook to see the variable layout, question wording and allowed values for the year. Numeric codes such as 7 or 77 and 9 or 99 are used for “Don’t know” and “Refused” responses (CDC’s own SAS example recodes 7 and 9, and 77 and 99, to missing); check each variable in the codebook, because some use other codes (for example, 88 for “none” on PHYSHLTH).
Step 3: Identify Calculated Variables
CDC documents the variables it derives from survey answers in “Calculated Variables in Data Files”. Variables used to categorize respondents mostly begin with an underscore. Examples:
_BMI5: body mass index, calculated from the reported height and weight._RFHLTH: adults with good or better health versus fair or poor health, derived fromGENHLTH._SMOKER3: four-level smoker status (everyday smoker, someday smoker, former smoker, non-smoker), derived fromSMOKE100andSMOKDAY2._AGEG5YR: fourteen-level age category, derived fromAGE.
Step 4: Import the .XPT File
Extract the ZIP file and read the transport file in your statistical software. In R, haven::read_xpt() reads SAS transport files; in Python, pandas.read_sas() can read XPORT files; in SAS, a LIBNAME statement with the XPORT engine reads them.
Step 5: Specify Complex Survey Design Variables
CDC advises that analyses use complex sampling procedures that stratify and weight the data. For core-only variables in the combined landline and cell phone dataset, CDC names three design variables:
- Final weight:
_LLCPWT - Stratification:
_STSTR - Primary sampling unit (cluster):
_PSU
In SAS, specify the design using survey procedures:
proc surveymeans data=brfss2024;
strata _STSTR;
cluster _PSU;
weight _LLCPWT;
var _BMI5;
run;
proc surveyfreq data=brfss2024;
strata _STSTR;
cluster _PSU;
weight _LLCPWT;
tables _RFHLTH * _SMOKER3 / row chisq;
run;
In R, configure the design with the survey package (the backticks are needed because the names begin with an underscore):
library(survey)
# Define complex survey design
brfss_design <- svydesign(
id = ~`_PSU`,
strata = ~`_STSTR`,
weights = ~`_LLCPWT`,
data = brfss2024,
nest = TRUE
)
# Estimate weighted proportions
svymean(~factor(`_RFHLTH`), design = brfss_design, na.rm = TRUE)
Step 6: Execute Domain Analysis for Subpopulations
For subgroups such as adults aged 65 and older, use the domain or subpopulation facilities of your survey software (the DOMAIN statement in SAS survey procedures, or subset() applied to the design object in R) so that the full design information is kept.
Output and How to Read It
Survey procedures report both unweighted counts and weighted estimates:
- Unweighted frequencies: The number of completed interviews in each cell. They describe sample size and are not population prevalence.
- Weighted percentages: Estimates obtained by applying
_LLCPWT, representing the noninstitutionalized adult population. - Standard errors and 95% confidence intervals: Computed using the strata and cluster variables you declared. Consistent with observational reporting frameworks such as the STROBE checklist, report both unweighted denominators and weighted estimates with standard errors or confidence intervals.
Troubleshooting
- Strata with a single sampling unit: When a subset leaves a stratum with only one PSU, standard errors cannot be computed by default. In R, CDC’s own example sets
options(survey.lonely.psu = "adjust"). - Wrong weight for optional modules:
_LLCPWTapplies to core-only analyses of the combined dataset. Where states used several questionnaire versions, CDC publishes separate datasets and weights (for 2025,_LCPWTV1,_LCPWTV2and_LCPWTV3). Read “Complex Sampling Weights and Preparing Module Data for Analysis” before analyzing module data. - Numeric missing codes: Recode “Don’t know” and “Refused” codes (such as 7, 9, 77 and 99) to missing before calculating, as in CDC’s SAS and R examples (
NAin R,.in SAS).
Free Alternatives
SAS is commercial software. CDC’s documentation also gives an R example, and R packages are free:
| Tool | Role in a BRFSS workflow | Cost |
|---|---|---|
R (survey and haven packages) |
Reads the transport file and fits the stratified, clustered, weighted design with svydesign(); used in CDC’s own example |
Free, open source |
Python (pandas) |
Reads XPORT files with read_sas() for data preparation |
Free, open source |
Frequently Asked Questions
Where can I download the official BRFSS questionnaire and codebook?
The questionnaires are on CDC’s BRFSS questionnaires page, and the data files, codebook and documentation for each year are on the Annual Survey Data and Documentation page; both are linked in the Sources section below.
What is the difference between core questions and optional modules in the BRFSS dataset?
All health departments must ask the core component without modification, so core data are comparable across states. Optional modules are topic question sets that states choose whether to use; if used, CDC requires they be used without modification.
Which weight variable should I use?
For core-only analyses of the combined landline and cell phone dataset, CDC directs users to _LLCPWT for weighting, _STSTR for stratification and _PSU for clustering. For module data, follow the module weight guidance for that year.
How are BRFSS calculated variables identified in the codebook?
Variables CDC uses to categorize respondents mostly begin with an underscore (for example _BMI5), with a few exceptions such as _STATE. The annual “Calculated Variables in Data Files” PDF documents how each is derived.
Sources
All sources checked 2026-11-07.
- Centers for Disease Control and Prevention. BRFSS Annual Survey Data and Documentation. https://www.cdc.gov/brfss/annual_data/annual_data.htm
- Centers for Disease Control and Prevention. 2024 BRFSS Survey Data and Documentation. https://www.cdc.gov/brfss/annual_data/annual_2024.html
- Centers for Disease Control and Prevention. BRFSS Questionnaires. https://www.cdc.gov/brfss/questionnaires/index.htm
- Centers for Disease Control and Prevention. Complex Sampling Weights and Preparing 2025 BRFSS Module Data for Analysis. https://www.cdc.gov/brfss/annual_data/2025/pdf/Complex-Sampling-Weights-and-Preparing-Module-Data-for-Analysis-2025-508.pdf
- Centers for Disease Control and Prevention. Calculated Variables in the 2025 BRFSS Data File. https://www.cdc.gov/brfss/annual_data/2025/pdf/2025-calculated-variables-version4-508.pdf







