PANLWT for labor market gross flow caclulation by age?

Hi there,

As it has been recommended in this thread,

Weights for linking CPS basic monthly data - CPS - IPUMS Forum

I tried to calculate gross flow rates between different labor market statuses specified by EMPSTAT using the PANLWT weight.

However, the sums of PANLWT and WTFINL for the age groups are off:

. total wtfinl if month == 12 & year == 2023 & inrange(age, 55,59) & popstat == 1, cformat
> (%9.0f)

            |   Total
     wtfinl |   20180100  

. total panlwt if month == 12 & year == 2023 & inrange(age, 55,59), cformat(%9.0f)

            |   Total
     panlwt |   20050949

Shimer (2012) uses the average of two adjacent months to calculate gross flows; others rely on PANLWT, with only a few adjusting those flows to add up to the stock figures.
I used PANLWT to calculate gross flows for single years of age (so I can redefine age groups later on easily), but the stocks I obtained adding up the flows are higher than those calculated by the cross-section weight.
Several questions arise:

  1. Is it possible to calculate gross flows for single years of age and both sexes using PANLWT?
  2. What alternative approach shall I follow to obtain such gross flows?
  3. Would raking be a solution to this problem?

I am thankful for every piece of information or any advice you could give me.



I found the answer scrolling through the forum:

Weights for disaggregated gross flows - CPS - IPUMS Forum

PANLWT is intended to account for the attrition of the whole population. Using it for smaller subpopulations renders estimates inaccurate.

My solution to this is to recalculate PANLWT for every subgroup, using the final weights and the code provided by IPUMS here:


I am sorry for not looking for the right answer to my question properly before posting it here.

I think you will find the CPS Technical Paper 77 very useful in answering your questions.

PANLWT is a composite weight, and is created by raking, not with single ages, but with age groups. Sample person weights are raked to force their sums to equal the control totals. The control totals are groups defined by age, sex, race, and ethnicity. You can see the exact groups used on page 74-75 of the linked document. When it comes to comparing estimates obtained using PANLWT and WTFINL, I want to note that PANLWT is created to add up to decennial census estimates of the employed, unemployed, and NILF population estimates, while WTFINL is created to add up to total population estimates. Another important difference between the two is that, according to CPS Technical Paper 66, β€œcomposite-age detail [used to create PANLWT] is coarser than the second-stage age detail [used to create WTFINL]. For example, the composite procedure controls for White alone, male, ages 60βˆ’64; the second stage has more age detail (60βˆ’62 and 63βˆ’64). Summations of final (composite) weights for all White alone males by age will not match the corresponding second-stage population control for either the 60βˆ’62 or the 63βˆ’64 age group. However, the summed final weights for White alone, males, ages 60βˆ’64 will match the sum of the two second-stage population controls.” So, it is possible to estimate gross flows using single age groups, but you will see discrepancies between estimates that use PANLWT and those that use WTFINL because of the differences in how the two weights are constructed. Also, because neither weight is constructed using single ages, your estimates will not have the level of accuracy that they would if you were able to use a weight constructed using single ages.

To estimate gross flows, it is recommended that you use PANLWT rather than WTFINL, since only PANLWT accounts for linking across panels.

It seems possible to try to recreate PANLWT yourself using a raking method that uses single age groups as your control population groups. I would recommend consulting the literature in your field to determine if others have done something similar as a starting point, or revisiting this discussion you had with Matt a couple years ago.

1 Like

Thanks a lot for this utmost detailed answer!
I will try and adjust the boundaries of my age groups to correspond to the age groups used for creating the weights rather than reweighting the sample for single years of age.

Thanks again.