Support #158

Derived income variables in the BHPS

Added by Sara Watson over 7 years ago. Updated almost 6 years ago.

Redmine Admin
Start date:
% Done:




We've noticed some discrepancies in the construction of derived income variables. Any thoughts would be most appreciated.

1. According to the User's Manual, household income fihhyr sums income from fiyr. However, we find a sizable difference between the two measures.

gen newinc=fiyr if fiyr>=0 // Exclude missings, proxies, etc
bysort hid: egen check_fihhyr = sum(newinc) // Summing household income from fiyr
gen diff_fihhyr=check_fihhyr-fihhyr if fihhyr>=0

*This is most easily seen when we focus on single-member households:
bysort hid : egen count_hid=count(hid)
gen diff_fihhyr_singletons=newinc-fihhyr if count_hid==1 & fihhyr>=0

The difference between the two measures is most often zero, but for 10 percent of obs is negative. These differences can be quite large, so that the mean is over 3000 pounds.

Do you have any advice? Is there anything we are missing--for instance, is there an additional income source that fihhyr includes? Does it use imputation from across waves?

2. According to the User's Manual, fiyrb sums income from ficodes 1,5,6,16-22,31-41 (dividing joint income by two when appropriate).

a) It seems that other benefits outside this list of ficodes have been included in fiyrb.  The ones we have noticed are the job seeker's allowance and the child tax credit.  Is this correct, and are there other benefits summed in fiyrb?
b) There are several obs, most of which arise in wave 6, for which fiyrb does not count certain benefits.  For instance, to implement the following code we have previously used ficode to total each type of benefit income (dividing joint income by 2 when flagged).

local fiyrblist pensioner widowpension widowmom severe_disab invalid_pens ind_injury attendance mobility_allow invalidcare wardisability /*
*/ ub_is incomesupport ub ni_sickness childben loneparentben_a wf_taxcredit maternity housingben counciltax_ben other_stateben
gen tag2=.
foreach var of local firyblist {
replace tag2=1 if fiyrb<`var'-1 & !missing(`var') & fiyrb>=0

This is a stark test, as it only counts cases when the total fiyrb is less than any given component, but even here we flag 169 obs. Is there anything we are missing here---for instance, is there an additional rule that determines whether fiyrb will include a certain income source?

3. Are we correct in our perception that fiyr sums fiyrl and fiyrnl where both are non-missing?

Here we can reproduce fiyr almost exactly with the following:
gen check_fiyr=fiyrl+fiyrnl if fiyrl>=0 & fiyrnl>=0
gen tag=1 if (fiyr-1>check_fiyr | fiyr+1<check_fiyr) & !missing(fiyr) & !missing(check_fiyr) // Allows for rounding error

The sole exception (tag==1) is an individual in wave 3 whose nonlabor income is for some reason not
included in fiyr.

Thanks so much for your help with these questions!

All the best,
Sara Watson
Dr. Sara Watson
Assistant Professor
Department of Political Science, The Ohio State University
2140 Derby Hall, 154 North Oval Mall
Columbus, OH 43210-1373



Updated by Redmine Admin over 7 years ago

  • Category set to Income
  • Assignee set to Redmine Admin
  • Target version set to BHPS

pending response


Updated by Redmine Admin almost 6 years ago

  • Status changed from New to Closed

We are planning a BHPS revision later this year and will redress the issue then. On behalf of the team, Jakob

Also available in: Atom PDF