Current Population Survey, 2023

The Current Population Survey (CPS) is the primary source of labor force statistics for the population of the United States. Modified 2023-03-02T18:24:15

Resources | Packages | Documentation| Contacts| References| Data Dictionary




Data Dictionary

cps202301 | variable_descriptions | variable_values


Column NameData TypeDescription
hrhhid2integerHousehold Identifier (Part 2).
hufinalintegerFinal Outcome Code Outcome codes between 001 and 020 are for CATI. All other outcome codes are for CAPI.
occurnumintegerUnique person identifier. Valid only within any specific month.
huinttypintegerType of interview
hurespliintegerLine Number of the Current Respondent
huprscntintegerNumber of actual and attempted personal contacts.
hutypeaintegerType A noninterview reason
hutypbintegerType B non-interview reason
hutypcintegerType C non-interview reason
hubusintegerDoes anyone in this household have a business or a farm?
hubusl1integerEnter line number for HUBUS = 1.
hubusl2integerSee BUSL1.
hubusl3integerSee BUSL1.
hubusl4integerSee BUSL1.
hrmonthintegerMonth of Interview
hryear4integerYear of Interview
qstnumintegerUnique household identifier. Valid only within any specific month.
gestfipsintegerFederal Information Processing Standards (FIPS) State Code.
hehousutintegerType of housing unit
hxhousutintegerAllocation flag.
hephoneointegerIs a telephone interview acceptable?
hxphoneointegerAllocation flag.
hetelavlintegerIs there a telephone elsewhere on which people in this household can be contacted?
hxtelavlintegerAllocation flag.
hetelhhdintegerIs there a telephone in this house/apartment?
hxtelhhdintegerAllocation flag.
hrhtypeintegerHousehold type
hrintstaintegerInterview status
hrnumhouintegerTotal number of persons living in the household (household members)
hefamincintegerFamily income (combined income of all family members during the last 12 months. Includes money from jobs, net income from business, farm or rent, pensions, dividends, interest, social security payments and any other money income received by family members who are 15 years of age or older.) Note: Caution should be used when using this variable since it has an allocation rate of approximately 20 percent.
hxfamincintegerAllocation flag
hwhhwgtintegerHousehold weight (4 implied decimal places) used for tallying household characteristics
hwhhwtlnintegerLine number (PULINENO) of the person whose PWSSWGT was donated as HWHHWGT for the household.
pulinenointegerPerson’s line number.
puchinhhintegerChange in household composition.
puwkintegerLast week, did you do any work for (either) pay (or profit)?
pubus1integerLast week, did you do any unpaid work in the family business or farm?
pudisintegerDisability status (last month you were reported to have a disability.) Does your disability continue to prevent you from doing any kind of work for the next 6 months?
pulayintegerLast week, were you on layoff from a job?
puhroff1integerLast week, did you lose or take off any hours from your job, for any reason such as illness, slack work, vacation, or holiday?
puhroff2integerHow many hours did you take off?
puhrot1integerLast week, did you work any overtime or extra hours (at your main job) that you do not usually work?
puhrot2integerHow many additional hours did you work?
puabsotintegerLast week did you have a job either full or part-time?
pubusck1integerCheck Item 1 filter for questions on unpaid work
pubusck2integerCheck Item 2 skips owners of family businesses who did not work last week
pubusck3integerCheck Item 3
pubusck4integerCheck Item 4
puretotintegerRetirement status (last month you were reported to be retired, are you still retired this month?)
puhrck1integerCheck item 1 (HRACTT)
puhrck2integerCheck Item 2 skips persons responding yes to HRFTPT out of PT series.
puhrck3integerCheck Item 3.
puhrck4integerCheck Item 4.
puhrck5integerCheck Item 5.
puhrck6integerCheck Item 6.
puhrck7integerCheck Item 7.
puhrck12integerCheck Item 12.
pulaydtintegerHas your employer given you a date to return to work?
pulay6mintegerHave you been given any indication that you will be recalled to work within the next 6 months?
pulayavrintegerWhy is that?
pulkintegerHave you been doing anything to find work during the last 4 weeks?
pulkavrintegerWhy is that?
pulayck1integerCheck Item 1.
pulayck2integerCheck Item 2 screen for dependent layoff.
pulayck3integerCheck Item 3 filter for dependent I & O.
pudwck2integerScreen for disabled
pudwck3integerFilter for retired
pudwck4integerFilter for passive job seekers
pudwck5integerFilter for passive job seekers
pujhck1integerFilter for outgoing rotations
pujhck2integerFilter for persons going through the I and O series
pujhdp1ointegerDid you do any of this work in the last 4 weeks?
pujhck3integerJob history check item.
pujhck4integerScreen for dependent NILF.
pujhck5integerScreen for dependent NILF.
pulkm2integerAnything else? (Second method).
pulkm3integerSame as PULKM2 (Third Method).
pulkm4integerSame as PULKM2 (Fourth Method).
pulkm5integerSame as PULKM2 (Fifth Method).
pulkm6integerSame as PULKM2 (Sixth Method).
pulkdk1integerYou said you have been trying to find work. How did you go about looking? (First Method).
pulkdk3integerSame as PULKDK2 (Third Method).
pulkdk4integerSame as PULKDK2 (Fourth Method).
pulkdk5integerSame as PULKDK2 (Fifth Method).
pulkdk6integerSame as PULKDK2 (Sixth Method).
pulkps1integerCan you tell me more about what you did to search for work? (First Method).
pulkps2integerAnything else? (Second Method).
pulkps3integerSame as PULKPS2 (Third Method).
pulkps4integerSame as PULKPS2 (Fourth Method).
pulkps5integerSame as PULKPS2 (Fifth Method).
pulkps6integerSame as PULKPS2 (Sixth Method).
puiock1integerI & O Check Item 1 screen for dependent I and O
puiock2integerI & O Check Item 2 screen for previous months I and O cases
puiock3integerI & O Check Item 3
puiodp1integerLast month, it was reported that you worked for (Employer’s name). Do you still work for (Employer’s name) (at your main job)?
puiodp2integerHave the usual activities and duties of your job changed since last month?
puiodp3integerLast month you were reported as (a/an) (Occupation) and your usual activities were (description). Is this an accurate description of your current job?
puio1mfgintegerIs this business or organization mainly manufacturing, retail trade, wholesale trade, or something else?
puio2mfgintegerIs this business or organization mainly manufacturing, retail trade, wholesale trade, or something else?
punlfck1integerNot in labor force check item – 1.
punlfck2integerNot in labor force check item – 2.
puslfprxintegerLabor force information collected by self or proxy response
pudis1integerDoes your disability prevent you from accepting any kind of work during the next six months?
pudis2integerDo you have a disability that prevents you from accepting any kind of work during the next six months?
pubus2otintegerDo you receive any payments or profits from the business?
perrpintegerRelationship to Reference Person.
pxrrpintegerAllocation flag.
pxageintegerAllocation flag.
peafnowintegerAre you now in the Armed Forces?
pxafnowintegerAllocation flag
pxsexintegerAllocation flag.
pemaritlintegerMarital status.
pxmaritlintegerAllocation flag.
pxrace1integerAllocation flag
pehspnonintegerHispanic or non-Hispanic.
pxhspnonintegerAllocation flag
peeducaintegerHighest level of school completed or degree received.
pxeducaintegerAllocation flag
peafeverintegerDid you ever serve on active duty in the U.S. Armed Forces?
pxafeverintegerAllocation flag.
peafwhn1integerWhen did you serve?
pxafwhn1integerAllocation flag.
peafwhn2integerWhen did you serve?
peafwhn3integerWhen did you serve?
peafwhn4integerWhen did you serve?
pespouseintegerLine number of spouse.
pxspouseintegerAllocation flag.
penatvtyintegerCountry of birth.
pxnatvtyintegerAllocation flag
pemntvtyintegerMother’s country of birth.
pxmntvtyintegerAllocation flag
pefntvtyintegerFather’s country of birth.
pxfntvtyintegerAllocation flag
pxinusyrintegerAllocation flag.
pedipgedintegerHow did (they/he/she) get (their/his/her) high school diploma?
pehgcompintegerWhat was the highest grade of regular school (they/he/she) completed before receiving (their/his/her) GED?
pxhgcompintegerAllocation Flag.
pecycintegerHow many years of college credit has (they/he/she) completed?
pxcycintegerAllocation Flag Filler 6 840 to 845.
pepar1integerLine number of second parent (always the mother, if present. Will be a male if the parents are same sex).
pxpar1integerAllocation flag.
pepar2integerLine number of first parent (always the father, if present. Will be a female if the parents are same sex).
pxpar2integerAllocation flag.
pepar1typintegerType of PEPAR1 edited universe: All – 1 No PEPAR2 present.
pxpar1typintegerAllocation flag.
pepar2typintegerType of PEPAR2 edited universe: All – 1 No PEPAR1 present.
pxpar2typintegerAllocation flag.
prdasianintegerDetailed Asian race recode
prmarstaintegerMarital status based on Armed Forces participation.
prdthspintegerDetailed Hispanic origin group, revised January 2014.
prpertypintegerType of person record recode.
prfamnumintegerFamily number recode.
prfamtypintegerFamily type recode.
prfamrelintegerFamily relationship recode.
prnmchldintegerNumber of own children < 18 years of age.
prchldintegerPresence of own children < 18 years of age by selected age group.
prcitflgintegerCitizenship allocation flag
prcitshpintegerCitizenship status
prtageintegerPerson’s age. Note: This variable was labeled as PEAGE in prior versions of this documentation even though it contained the public use version of age that was top-coded and underwent further masking steps to protect the confidentiality of individuals in the sample.
prtfageintegerTop code flag for age.
pecohabintegerLine number of cohabiting partner.
pxcohabintegerAllocation flag
peabspdointegerAre you being paid by your employer for any of the time off last week?
peabsrsnintegerWhat is the main reason you were absent from work last week?
pedwavlintegerLast week, could you have started a job if one had been offered?
pedwavrintegerWhy is that?
pedwlkointegerDid you look for work at any time in the last 12 months?
pedwlkwkintegerSince you left that job or business have you looked for work?
pedwrsnintegerWhat is the main reason you were not looking for work during the last 4 weeks?
pedwwkintegerDid you actually work at a job or business during the last 12 months?
pedwwntointegerDo you currently want a job, either full or part time?
pedw4wkintegerDid you do any of this work during the last 4 weeks?
pehracttintegerSum of PEHRACT1 and PEHRACT2.
pehract1integerLast week, how many hours did you actually work at your job?
pehract2integerLast week, how many hours did you actually work at your other job(s)?
pehravlintegerLast week, could you have worked full-time if the hours had been available?
pehrftptintegerDo you usually work 35 hours or more per week?
pehrrsn1integerWhat is your main reason for working part-time?
pehrrsn2integerWhat is the main reason you do not want to work full-time?
pehrrsn3integerWhat is the main reason you worked less than 35 hours last week?
pehrusltintegerSum of HRUSL1 and HRUSL2.
pehrusl1integerHow many hours per week do you usually work at your main job?
pehrusl2integerHow many hours per week do you usually work at your other job(s)?
pehrwantintegerDo you want to work a full-time work week of 35 hours or more per week?
pejhrsnintegerWhat is the main reason you left your last job?
pejhwantintegerDo you intend to look for work during the next 12 months?
pejhwkointegerHave you worked at a job or business at any time during the past 12 months?
pelayavlintegerCould you have returned to work last week if you had been recalled?
pelaydurintegerDuration of layoff.
pelayftointegerFT/PT status of job from which sample person was on layoff from.
pelaylkintegerEven though you are to be called back to work, have you been looking for work during the last 4 weeks?
pelkavlintegerLast week, could you have started a job if one had been offered?
pelkdurintegerDuration of job seeking
pelkftointegerFT/PT status of jobseeker
pelkll1ointegerBefore you started looking for work, what were you doing: working, going to school, or something else?
pelkll2ointegerDid you lose or quit that job, or was it a temporary job that ended?
pelklwointegerWhen last worked?
pelkm1integerWhat are all of the things you have done to find work during the last 4 weeks? (First method).
pemjnumintegerAltogether, how many jobs do you have?
pemjotintegerDo you have more than one job?
pemlrintegerMonthly labor force recode
penlfactintegerWhat best describes your situation at this time? For example, are you disabled, ill, in school, taking care of house or family, or something else?
penlfjhintegerWhen did you last work at a job or business?
peret1integerDo you currently want a job, either full or part-time?
pxabspdointegerAllocation flag
pxabsrsnintegerAllocation flag
pxdwavlintegerAllocation Flag
pxdwavrintegerAllocation Flag
pxdwlkointegerAllocation flag.
pxdwlkwkintegerAllocation Flag
pxdwrsnintegerAllocation flag.
pxdwwkintegerAllocation Flag
pxdwwntointegerAllocation flag.
pxdw4wkintegerAllocation Flag
pxhracttintegerAllocation flag.
pxhract1integerAllocation flag.
pxhract2integerAllocation flag.
pxhravlintegerAllocation flag.
pxhrftptintegerAllocation flag
pxhrrsn1integerAllocation flag
pxhrrsn2integerAllocation flag.
pxhrrsn3integerAllocation flag.
pxhrusltintegerAllocation flag
pxhrusl1integerAllocation flag
pxhrusl2integerAllocation flag
pxhrwantintegerAllocation flag
pxjhrsnintegerAllocation Flag
pxjhwantintegerAllocation Flag
pxjhwkointegerAllocation Flag
pxlayavlintegerAllocation flag.
pxlaydurintegerAllocation flag.
pxlayftointegerAllocation flag.
pxlaylkintegerAllocation flag.
pxlkavlintegerAllocation flag.
pxlkdurintegerAllocation flag.
pxlkftointegerAllocation flag.
pxlkll1ointegerAllocation flag.
pxlkll2ointegerAllocation flag.
pxlklwointegerAllocation flag.
pxlkm1integerAllocation flag.
pxmjnumintegerAllocation flag
pxmjotintegerAllocation flag
pxmlrintegerAllocation flag
pxnlfactintegerAllocation Flag.
pxnlfjhintegerAllocation Flag.
pxnlfretintegerAllocation Flag.
pxret1integerAllocation flag
prabsreaintegerReason not at work and pay status.
prcivlfintegerCivilian labor force.
prdiscintegerDiscouraged worker recode.
premphrsintegerReason not at work or hours at work.
prempnotintegerMLR – Employed, unemployed, or NILF.
prexplfintegerExperienced labor force employment.
prftlfintegerFull time labor force.
prhruslintegerUsual hours worked weekly.
prjobseaintegerJob search recode.
prpthrsintegerAt work 1 – 34 by hours at work.
prptreaintegerDetailed reason for part-time.
prunedurintegerDuration of unemployment for layoff and looking records.
pruntypeintegerReason for unemployment.
prwkschintegerLabor force by time worked or lost.
prwkstatintegerFull/part-time work status.
prwntjobintegerNILF recode – Want a job or other NILF.
peio1icdintegerIndustry code for primary job.
peio2icdintegerIndustry code for second job.
peio1cowintegerIndividual class of worker code on first job. Note: A PEIO1COW code can be assigned even if an individual is not currently employed.
peio2cowintegerIndividual class of worker on second job. Note: For those self-employed unincorporated on their first job, this should have a response every month. For all others, this should only have a value in out-going rotations.
pepdemp1integerDoes this person usually have any paid employees? See location 637 – 638 for the allocation flag.
pepdemp2integerDoes this person usually have any paid employees? See location 787 – 788 for the allocation flag.
pxio1icdintegerAllocation Flag
pxio2icdintegerAllocation Flag
pxio1ocdintegerAllocation Flag
pxio2ocdintegerAllocation Flag
pxio1cowintegerAllocation Flag
pxio2cowintegerAllocation Flag
pxpdemp1integerAllocation flag.
pxpdemp2integerAllocation Flag
pxnmemp1integerAllocation flag
pxnmemp2integerAllocation Flag PXERNWKP 2 Allocation Flag 791 to 792.
prioelgintegerIndustry and Occupation Eligibility Flag
prempintegerEmployed persons (non-farm and non-private household) recode
prcow1integerClass of Worker Recode – Job 1
prcow2integerClass of Worker Recode – Job 2
prnagwsintegerNon-Agriculture Wage and Salary Workers Recode
prnagpwsintegerNon-Agriculture, Private Wage and Salary Workers Recode
prdtcow1integerDetailed Class of Worker Recode – Job 1
prdtcow2integerDetailed Class of Worker Recode – Job 2
prmjind1integerMajor Industry Recode – Job 1
prmjind2integerMajor Industry Recode – Job 2
primind1integerIntermediate industry recode (Job 1).
primind2integerIntermediate industry recode (Job 2).
prmjocc1integerMajor Occupation Recode – Job 1
prmjocc2integerMajor Occupation Recode – Job 2
prdtind1integerDetailed Industry Recode – Job 1
prdtind2integerDetailed Industry Recode – Job 2
prdtocc1integerDetailed Occupation Recode – Job 1
prdtocc2integerDetailed Occupation Recode
pragnaintegerAgriculture / Non-Agriculture Industry
prcowpgintegerCOW – Private or Government
prmjocgrintegerMajor Occupation Categories
peernhryintegerHourly/Nonhourly Status
peernuotintegerDo you usually receive overtime pay, tips, or commissions at your job?
peernwkpintegerHow many weeks a year do you get paid for?
peernrtintegerEven though you told me it is easier to report your earnings (periodicity); are you paid at an hourly rate on your (main/this) job?
peernhrointegerUsual hours.
peernlabintegerOn this job, are you a member of a labor union or of an employee association similar to a union?
peerncovintegerOn this job, are you covered by a union or employee association contract?
pxernperintegerAllocation Flag
pxernhryintegerAllocation Flag.
pxernuotintegerAllocation Flag
pxernrtintegerAllocation Flag.
pxernh2integerAllocation Flag.
pxernh1ointegerAllocation Flag
pxernhrointegerAllocation Flag
pxernintegerAllocation Flag
pxernlabintegerAllocation Flag.
pxerncovintegerAllocation Flag.
prerelgintegerEarnings Eligibility Flag
prwernalintegerAllocation flag weekly earnings recode (PTERNWA) allocation flag.
prhernalintegerAllocation flag hourly earnings recode (PTERNHLY) allocation flag.
peschlvlintegerWould that be high school, college, or university?
peschenrintegerLast week, were you enrolled in a high school, college, or university?
peschftintegerAre you enrolled in school as a full-time or part-time student?
pxschlvlintegerAllocation Flag.
pxschenrintegerAllocation Flag.
pxschftintegerAllocation Flag.
prnlfschintegerNLF activity – in school or not in school.
pedisearintegerIs this person deaf or does he/she have serious difficulty hearing?
pediseyeintegerIs this person blind or does he/she have serious difficulty seeing even when wearing glasses?
pedisremintegerBecause of a physical, mental, or emotional condition, does he/she have serious difficulty concentrating, remembering, or making decisions?
pedisphyintegerDoes he/she have serious difficulty walking or climbing stairs?
pedisdrsintegerDoes he/she have difficulty dressing or bathing?
pedisoutintegerBecause of a physical, mental, or emotional condition, does he/she have difficulty doing errands alone such as visiting a doctor’s office or shopping?
pxdisearintegerAllocation flag
pxdiseyeintegerAllocation flag
pxdisremintegerAllocation flag
pxdisphyintegerAllocation flag
pxdisdrsintegerAllocation flag
pxdisoutintegerAllocation flag
prdisflgintegerDoes this person have any of these disability conditions?
pwsswgtintegerFinal weight (4 implied decimal places) used for most tabulations, controlled to independent estimates for 1) states; 2) origin, sex, and age; and 3) age, race, and sex.
pwlgwgtintegerLongitudinal weight (4 implied decimals) only found on adult records matched from month to month (used for gross flows analysis).
pwvetwgtintegerVeterans weight (4 implied decimals) used for tallying veteran’s data only, controlled to estimates of veterans supplied by VA.
pworwgtintegerOutgoing rotation weight (4 implied decimals) used for tallying information collected only in outgoing rotations (i.e., earnings, 2nd job I & O, detailed NILF).
pwfmwgtintegerFamily weight (4 implied decimals) only used for tallying family characteristics.
pwcmpwgtintegerComposited Final Weight. Used to create BLS’s published labor force statistics (4 implied decimal places).
pternhlyintegerRecode for hourly rate
pternh1ointegerOut variable for hourly rate of pay (2 implied decimals)
pternh2integer(Excluding overtime pay, tips and commissions) What is your hourly rate of pay on your (main/this) job? Dollar amount – 2 implied decimals
pternh1cintegerWhat is your hourly rate of pay on this job, excluding overtime pay, tips or commission? Dollar amount – 2 implied decimals
pternwaintegerWeekly earnings recode.
pternintegerCalculated weekly overtime amount.
ptern2integerCalculated weekly overtime amount.
ptio1ocdintegerOccupation code for primary job.
ptio2ocdintegerOccupation code for second job.
pthrintegerHourly Pay – Top Code
ptwkintegerWeekly earnings – top code.
ptotintegerWeekly overtime amount – top code.
ptnmemp1integerExcluding all owners, how many paid employees does this person usually have? See location 681 – 682 for the allocation flag.
ptnmemp2integerExcluding all owners, how many paid employees does this person usually have? See location 789 – 790 for the allocation flag.
hrhhidintegerHousehold Identifier (Part 1)
gtcbsaintegerSpecific Metropolitan CBSA Code (see Geographic Attachment).
gtcointegerFIPS County Code.
gtcbsastintegerPrincipal City/Balance Status.
gtcbsaszintegerMetropolitan Area (CBSA) Size.
gtcsaintegerConsolidated Statistical Area (CSA) FIPS Code (see Geographic Attachment).
gtmetstaintegerMetropolitan Status.
gtindvpcintegerIndividual Principal City.


Column NameData TypeDescription


Column NameData TypeDescription


Urls used in the creation of this data package.


Accessing Data in Vanilla Pandas

import pandas as pd

variable_descriptions_df =  pd.read_csv('')
variable_values_df =  pd.read_csv('')
cps202301_df =  pd.read_csv('')

Accessing Package in Metapack

import metapack as mp
pkg = mp.open_package('')

# Create Dataframes
variable_descriptions_df = pkg.resource('variable_descriptions').dataframe()
variable_values_df = pkg.resource('variable_values').dataframe()
cps202301_df = pkg.resource('cps202301').dataframe()