Cannot replicate unweighted counts for CPS-FSS data


I am new to using the CPS Food Security Supplement (FSS). In reading through the documentation for the December CPS-21 and prior years, the variables FSMLSWHLS and FSCOMCTR show the accurate unweighted frequencies that data users should obtain. For example, the December CPS-21 FSMLSWHLS variable is listed as accurately having 315 unweighted “Yes” counts and 4,910 “No” unweighted counts. However, no matter how I attempt to calculate the unweighted frequencies with these two variables, I get a totally different “Yes” and “No” counts compared to the IPUMS technical documentation.

Hence, could you please provide SAS and/or Stata syntax to show how to obtain accurate unweighted counts for the FSMLSWHLS and FSCOMCTR variables for the population aged 60 and over (which is what I believe is already being examined based on the documented, accurate unweighted counts)? Also, could you please inform me what is the best weight variable to use to calculate weighted counts with these two variables as well as any primary food security/insecurity variables?

Thank you very much in advance for your time and attention to this message. Also, please let me know if, in addition to the two previously posed questions, if there is a generalized set of syntax in SAS/Stata for accurately obtaining household-level unweighted and weighted frequencies for variables included in the CPS-FSS.

Kind regards,


FSMLSWHLS, FSCOMCTR, and other CPS FSS variables are determined on the household level. Unweighted frequencies for these variables are therefore reported as household counts (e.g, the number of households that received delivered meals). I suspect that you are analyzing person-level data and obtaining person-level counts that do not match the household figures. You can add the filter PERNUM = 1 to person-level data in order to count only a single observation per household. Below is my tabulation for FSMLSWHLS, which matches the counts on the codes tab. The same can be used to obtain the household counts for FSCOMCTR.


Weighted household frequencies can be obtained for FSMLSWHLS and FSCOMCTR by using the FSS household weight FSSUPPWTH (for some FSS variables/samples, FSHWTSCALE should be used for household-level analysis). Users can also obtain weighted person-level frequencies by applying the FSS person weight FSSUPPWT. To obtain weighted frequencies, we recommend that Stata users set their data with the svyset command: svyset [pw = fssuppwth] or svyset [pw = fssuppwt]. You can then run tabulations with the svy prefix, including the subpop option (if pernum ==1) for household-level analyses. The screenshot below shows this type of analysis, with the total (132,246,781) being an estimate of the total number of households in the US.

The universe statement for HESC1 (the original CPS source variable for FSMLSWHLS) in the December 2021 CPS codebook provides additional context for this variable. It notes that only hosueholds (HRPOOR = 1 OR HESS1 = 2, 3, 4, or -2 OR HES9 = 1 or -2) AND PRTAGE >= 60 for any HH member will have an in-universe response for FSMLSWHLS. HRPOOR is harmonized by IPUMS as FSPOOR (Household poverty status), HESS1 as FSFOODS (Enough and kinds of food eaten in the household), and HES9 as FSSHORT (Ever run short of money for food in past year). PRTAGE is the AGE of a household member. This universe statement is also described in the description and universe tabs for FSMLSWHLS; FSSCREEN additionally identifies FSFOODS and FSSHORT as the two preliminary screening questions about food stress. Therefore, the universe in the codebook translates to: (FSPOOR = 1 OR FSFOODS = 2, 3, 4, or 97 [“Don’t Know”] OR FSSHORT = 2 or 97) AND AGE >= 60 for any HH member. The household age parameter can be generated by summing an indicator for age 60+ across household SERIAL numbers (if using a single month of data) or across YEAR, MONTH, and SERIAL (if including multiple months/years of data).