Some strange code in WHEN - why do you put *WHEN HCP_ACCOUNT second time?
Try the following, it will work correctly:
*WHEN HCP_VERSION
*IS PLAN
*WHEN HCP_ACCOUNT
*IS PA_SALARY
*REC(EXPRESSION = %VALUE% * 0.25 ,HCP_ACCOUNT = PA_BONUS)
*REC(EXPRESSION = %VALUE% * 0.10 ,HCP_ACCOUNT = PA_SOCINS)
*REC(EXPRESSION = %VALUE% * 0.10 ,HCP_ACCOUNT = PA_UNEMPLOYTAX)
*ENDWHEN
*ENDWHEN
*DESTINATION_APP = HCP_GUIDELINES
*SKIP_DIM = HCP_EMPLOYEE, HCP_PAY_GRADE, HCP_POSITION
*WHEN HCP_VERSION
*IS PLAN
*WHEN HCP_ACCOUNT
*IS PA_HEADCOUNT
*REC(EXPRESSION = %VALUE%)
*IS PA_SALARY
*REC(EXPRESSION = %VALUE%)
*REC(EXPRESSION = [HCP_ACCOUNT].[PA_BONUS],HCP_ACCOUNT = PA_BONUS)
*REC(EXPRESSION = [HCP_ACCOUNT].[PA_SOCINS],HCP_ACCOUNT = PA_SOCINS)
*REC(EXPRESSION = [HCP_ACCOUNT].[PA_UNEMPLOYTAX],HCP_ACCOUNT = PA_UNEMPLOYTAX)
*ENDWHEN
*ENDWHEN
Vadim