These are all of the Business Rules and Feeders associated with this model.
Code: Select all
#Region System
FEEDSTRINGS;
SKIPCHECK;
#EndRegion
#DB('Payroll Model', !Measure, !Version, !time_mqy, !regioncc, !cc_emp, !Accounts)
#Region Calendar and Version Processing
['prior forecast'] = STET;
######This rule is used to limit processing in out years####
[] = If( DB('Calendar Process', !time_mqy, 'Process YN') @='N', STET, continue);
['Forecast', 'Amount'] = N:
IF( DB('Calendar Process', !time_mqy, 'Calendar Verison') @= 'Actual' ,
['Actual'], CONTINUE
) ;
['Input'] = N: STET;
#['Actual'] = N: STET;
['Forecast', { 'Start Date', 'Term Date', 'Status','comment','Vehicle need'}] = STET;
[ 'Forecast' , 'Time_MQY':'comment', 'Annual Salary'] = N:
IF( SUBST(!cc_emp, 1, 3) @='New' , STET, CONTINUE );
[ 'Forecast' , 'Time_MQY':'comment', {'Position Title','Full or Part Time',
'Start Date','Comment','Bonus Type','Exempt/Non Exempt'}] = S:
IF( SUBST(!cc_emp, 1, 3) @='New' , STET, CONTINUE );
[ 'Forecast' , 'Time_MQY':'comment', 'Tax State' ] = S:
IF( SUBST(!cc_emp, 1, 3) @='New' , STET,
DB( 'Payroll Model', !Measure, 'Actual', 'comment', !regioncc, !cc_emp, 'Tax State' ) );
[ 'Forecast' , 'Time_MQY':'comment' ] = N:
DB( 'Payroll Model', !Measure, 'Actual', 'comment', !regioncc, !cc_emp, !Accounts ) ;
[ 'Forecast' , 'Time_MQY':'comment'] = S:
DB( 'Payroll Model', !Measure, 'Actual', 'comment', !regioncc, !cc_emp, !Accounts ) ;
#EndRegion
#Region- Calculate Headcount
['Forecast', 'Count'] = N:
IF( DB( 'Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp, 'Annual Salary') = 0 , STET ,
CONTINUE);
#Region- New Headcount
['Forecast', 'Count'] = N:
IF( (SUBST( !cc_emp, 1, 3 ) @= 'New' &
DB('Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,
'Start Date' ) @= '' ), STET ,
IF((SUBST( !cc_emp, 1, 3 ) @= 'New' &
DAYNO( SUBST( !Time_MQY, 7, 4 )
| '-' | SUBST( !Time_MQY, 1, 2 )
| '-' | SUBST( !Time_MQY, 4, 2 ) ) >=
(ATTRN( 'Time_MQY',DB('Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,
'Start Date' ), 'SerialDate' ) )
),
DB('Payroll Model', 'Amount', 'Forecast', !time_mqy, !regioncc, !cc_emp, 'CurOpenNew_Load') ,
CONTINUE)
);
#EndRegion
#Region- Existing Headcount
#### clm
['Forecast', 'Count'] = N:
IF (ATTRN('Time_MQY', !Time_MQY , 'SerialDate')> 0 & SUBST( !cc_emp, 1, 3 ) @<> 'New' ,
IF( DB( 'Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp, 'Term Date') @= '',
DB('Payroll Model', 'Amount', 'Forecast', !time_mqy, !regioncc, !cc_emp, 'CurOpenNew_Load') ,
IF(( ATTRN( 'Time_MQY', DB( 'Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,
'Term Date'), 'SerialDate' )
>= DAYNO( SUBST( !Time_MQY, 7, 4 ) | '-' | SUBST( !Time_MQY, 1, 2 ) | '-' |
SUBST( !Time_MQY, 4, 2 )
)
) %
( DB( 'Payroll Model', !Measure, !Version, 'comment', !regioncc,
!cc_emp, 'Term Date') @= ''),
DB('Payroll Model', 'Amount', 'Forecast', !time_mqy, !regioncc, !cc_emp, 'CurOpenNew_Load'),
STET )
),
STET)
;
[{'Full Time Headcount' , 'Part Time Headcount'}]= N: IF(
DB('Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,'Position Title')@='Intern',
STET,
CONTINUE);
['Full Time Headcount'] = N: IF(
DB('Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,'Full or Part Time')@='F',
['count'],
0);
['Part Time Headcount'] = N: IF(
DB('Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,'Full or Part Time')@='P',
['count']*.5,
0);
#EndRegion
#EndRegion
#Region Base, Daily, Salary Calc
##Use this to calculate the current salary including the hourly from the prior salary
['Forecast','Base Salary'] = N:
IF( ['Count']= 1 , CONTINUE, STET );
###############################################################
### Actual version of base salary, Current Daily Rate, and Adjusted Daily rate
### calculated upon TI process from Nilda's file
###############################################################
['Overtime %'] = N: IF(
DB('Payroll Model', 'Amount', 'Forecast','comment', !regioncc, !cc_emp,'Exempt/Non Exempt')@='N',
.015,
0);
[{'60810400', '60810200','H_Base Salary Days in Payroll',
'Current Payroll Daily Rate','Adjusted Payroll Daily Rate','H_New Salary Days in Payroll'}, 'Forecast', 'Amount'] = N:
IF(['Count'] = 0 , STET, CONTINUE) ;
['Forecast','Base Salary'] = N:IF( SUBST( !cc_emp, 1, 3 ) @= 'New' &
DAYNO( SUBST( !Time_MQY, 7, 4 )
| '-' | SUBST( !Time_MQY, 1, 2 )
| '-' | SUBST( !Time_MQY, 4, 2 ) ) =
ATTRN( 'Time_MQY',DB('Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,
'Start Date' ), 'SerialDate' ),
(DB('Payroll Model', 'Amount', 'Forecast','comment', !regioncc, !cc_emp, 'Annual Salary')\
ATTRN('Time_MQY', 'Total FY - '|attrs('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY') , 'workdays')) *
ATTRN('Time_MQY', !Time_MQY , 'workdays'),
IF( ['Actual'] <> 0 , ['Actual'], CONTINUE )
);
['Forecast','Current Daily Rate'] = N:
IF (ATTRN('Time_MQY', !Time_MQY , 'SerialDate')> 0 ,
DB('Payroll Model', 'Amount', !Version, !Time_MQY, !regioncc, !cc_emp,'Base Salary')\
ATTRN('Time_MQY', !Time_MQY , 'workdays'),
0);
['Forecast','Adjusted Daily Rate' ] = N:IF (ATTRN('Time_MQY', !Time_MQY , 'SerialDate')> 0 ,
['Current Daily Rate'] + (['Current Daily Rate']*['Merit %']),
0);
['Forecast','Base Salary'] = N:
DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_Prior' ), !regioncc, !cc_emp,
'Adjusted Daily Rate' ) *
ATTRN('Time_MQY', !Time_MQY, 'workdays') ;
['Merit $'] = N: ['Base Salary'] * ['Merit %'];
['OT $'] = N: ['Base Salary'] * ['Overtime %'];
['Forecast','Adjusted Wage Calc'] = N:
(['Adjusted Daily Rate'] + (['Adjusted Daily Rate']*['Overtime %']))
* ATTRN('Time_MQY' , !Time_MQY , 'workdays');
['Forecast','H_Base Salary Days in Payroll'] = N:IF( SUBST( !cc_emp, 1, 3 ) @= 'New' &
DAYNO( SUBST( !Time_MQY, 7, 4 )
| '-' | SUBST( !Time_MQY, 1, 2 )
| '-' | SUBST( !Time_MQY, 4, 2 ) ) =
ATTRN( 'Time_MQY',DB('Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,
'Start Date' ), 'SerialDate' ),
(DB('Payroll Model', 'Amount', 'Forecast','comment', !regioncc, !cc_emp, 'Annual Salary')\
ATTRN('Time_MQY', 'Total FY - '|attrs('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY') , 'payrolldays')) *
ATTRN('Time_MQY', !Time_MQY , 'payrolldays'),
IF( ['Actual'] <> 0 , ['Actual'], CONTINUE )
);
### Check this. It may have been taken care of aleady. If not, this needs to shut off if the individual has a term date.
['Forecast','Current Payroll Daily Rate'] = N:
IF (ATTRN('Time_MQY', !Time_MQY , 'SerialDate')> 0 ,
DB('Payroll Model', 'Amount', !Version, !Time_MQY, !regioncc, !cc_emp,'H_Base Salary Days in Payroll')\
ATTRN('Time_MQY', !Time_MQY , 'payrolldays'),
0);
['Forecast','Adjusted Payroll Daily Rate' ] = N:IF (ATTRN('Time_MQY', !Time_MQY , 'SerialDate')> 0 ,
['Current Payroll Daily Rate'] + (['Current Payroll Daily Rate']*['Merit %']),
0);
['Forecast','H_Base Salary Days in Payroll'] = N:
DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_Prior' ), !regioncc, !cc_emp,
'Adjusted Payroll Daily Rate' ) *
ATTRN('Time_MQY', !Time_MQY, 'payrolldays') ;
['Forecast','H_New Salary Days in Payroll'] = N:
(['Adjusted Payroll Daily Rate'] + (['Adjusted Payroll Daily Rate']*['Overtime %']))
* ATTRN('Time_MQY' , !Time_MQY , 'payrolldays');
#EndRegion end of salary rules
#Region Bonus Calc
['Forecast','Bonus %'] = N: IF( (SUBST( !cc_emp, 1, 3 ) @= 'New' &
DB('Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,
'Start Date' ) @= '' ), STET ,
IF((SUBST( !cc_emp, 1, 3 ) @= 'New' &
DAYNO( SUBST( !Time_MQY, 7, 4 )
| '-' | SUBST( !Time_MQY, 1, 2 )
| '-' | SUBST( !Time_MQY, 4, 2 ) ) >=
(ATTRN( 'Time_MQY',DB('Payroll Model', !Measure, !Version, 'comment', !regioncc, !cc_emp,
'Start Date' ), 'SerialDate' ) )
),
ATTRN('Bonus Type',
DB('Payroll Model', 'Amount', !Version, 'comment', !regioncc, !cc_emp, 'Bonus Type'),'BonusPctg'),
['count']* ATTRN('Bonus Type',
DB('Payroll Model', 'Amount', !Version, 'comment', !regioncc, !cc_emp, 'Bonus Type'),'BonusPctg')
));
['Forecast', '60810400'] = N:
IF( ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm') @= 'Marketing Underwriter'%
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm') @= 'Director Underwriting' %
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm') @= 'Commercial Lines Underwriter',
( ['Bonus %']*['Adjusted Wage Calc']) , 0);
#['H_Bonus Key']= S: IF(
#DB('Payroll Model', 'Amount', !Version, 'comment', !regioncc, !cc_emp, 'Bonus Type')@='MU','1',
# IF(DB('Payroll Model', 'Amount', !Version, 'comment', !regioncc, !cc_emp, 'Bonus Type')@='11', '11',
# IF(DB('Payroll Model', 'Amount', !Version, 'comment', !regioncc, !cc_emp, 'Bonus Type')@='12', '12', '')
# )
#);
#['H_Bonus Key']= S: IF(
#DB('Payroll Model', 'Amount', !Version, 'comment', !regioncc, !cc_emp, 'Bonus Type')@='1','1', STET);
### If bonus type is not null and position is not an MU the populate with 2%
['Key Contributor %','Forecast'] = N: IF (
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type') @<> '' &
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm')@<> 'Marketing Underwriter',
.02 ,0 ) ;
['Key Contributor Amount','Forecast'] = N: IF(
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm') @='Administrative' %
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm')@='Director' %
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm')@='Managing Director' %
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm')@='Manager' %
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm')@='Professional' %
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm')@='PTP 7%' %
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm')@='PTP 9%' %
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm')@='Supervisor' ,
(['Adjusted Wage Calc']*['Key Contributor %'])+['Key Contributor Additional Items'], 0 )
;
['60810200','Forecast'] = N: IF(
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm') @= 'Marketing Underwriter'%
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm') @= 'Director Underwriting' %
ATTRS('Bonus Type',
DB('Payroll Model', 'Amount', !Version,'comment', !regioncc, !cc_emp, 'Bonus Type')
, 'BonusTypeNm') @= 'Commercial Lines Underwriter',
STET,
['H_New Salary Days in Payroll']*['Bonus %'] );
#Endregion
['Cum Comp'] = N:
IF( ATTRN('Time_MQY' , !Time_MQY , 'MonthNo' ) = 1 ,
['Total Compensation'],
DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_Prior' ),
!regioncc, !cc_emp, 'Cum Comp') + ['Total Compensation']
);
#Region FICA Calc
['FICA Rate', 'Forecast'] = N: DB('Tax Model', !Version,
DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FICA Rate')
;
['FICA Amount', 'Forecast'] = N:
IF((['Cum Comp'] >=
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY') , 'FICA Ceiling') ) &
(ATTRN('Time_MQY' , !Time_MQY , 'MonthNo' ) = 1) ,
DB('Tax Model', !Version,
DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FICA Ceiling')
* ['FICA Rate'] ,
IF(ATTRN('Time_MQY' , !Time_MQY , 'MonthNo' ) = 1 ,
['Cum Comp'] * ['FICA Rate'],
IF( DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_Prior' ),
!regioncc, !cc_emp, 'Cum Comp') >=
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FICA Ceiling') ,
STET,
IF( ['Cum Comp'] >=
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FICA Ceiling'),
(DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FICA Ceiling') -
DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_Prior' ),
!regioncc, !cc_emp, 'Cum Comp') ) *
['FICA Rate'] ,
['Total Compensation'] * ['FICA Rate']
)
)
)
);
#EndRegion
#Region FMHI
['FMHI Rate', 'Forecast'] = N: DB('Tax Model', !Version,
DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FMHI Rate')
;
['Forecast', 'FMHI Amount'] = N: (['Total Compensation']*['FMHI Rate']);
#EndRegion
#Region FUTA
['FUTA Rate', 'Forecast'] = N: DB('Tax Model', !Version,
DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FUTA Rate')
;
['60820500', 'Forecast'] = N:
IF((['Cum Comp'] >=
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY') , 'FUTA Ceiling') ) &
(ATTRN('Time_MQY' , !Time_MQY , 'MonthNo' ) = 1) ,
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FUTA Ceiling')
* ['FUTA Rate'] ,
IF(ATTRN('Time_MQY' , !Time_MQY , 'MonthNo' ) = 1 ,
['Cum Comp'] * ['FUTA Rate'],
IF( DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_Prior' ),
!regioncc, !cc_emp, 'Cum Comp') >=
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FUTA Ceiling') ,
STET,
IF( ['Cum Comp'] >=
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FUTA Ceiling'),
(DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'FUTA Ceiling') -
DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_Prior' ),
!regioncc, !cc_emp, 'Cum Comp') ) *
['FUTA Rate'] ,
['Total Compensation'] * ['FUTA Rate']
)
)
)
);
#EndRegion
#Region SUTA
['SUTA Rate', 'Forecast'] = N: DB('Tax Model', !Version,
DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'SUTA Rate')
;
['60820700', 'Forecast'] = N:
IF((['Cum Comp'] >=
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY') , 'SUTA Ceiling') ) &
(ATTRN('Time_MQY' , !Time_MQY , 'MonthNo' ) = 1) ,
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'SUTA Ceiling')
* ['SUTA Rate'] ,
IF(ATTRN('Time_MQY' , !Time_MQY , 'MonthNo' ) = 1 ,
['Cum Comp'] * ['SUTA Rate'],
IF( DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_Prior' ),
!regioncc, !cc_emp, 'Cum Comp') >=
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'SUTA Ceiling') ,
STET,
IF( ['Cum Comp'] >=
DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'SUTA Ceiling'),
(DB('Tax Model', !Version, DB('Payroll Model', 'Amount' , 'Forecast', 'comment', !Regioncc, !cc_emp , 'Tax State'),
ATTRS('Time_MQY',!Time_MQY,'Fiscal_Year_YYYY'), 'SUTA Ceiling') -
DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_Prior' ),
!regioncc, !cc_emp, 'Cum Comp') ) *
['SUTA Rate'] ,
['Total Compensation'] * ['SUTA Rate']
)
)
)
);
#EndRegion
#Region Benefits
['Forecast',{'60940100','60940200','60940300','60940400','60940500','60920600','60960100'}] = N:
IF(['Adjusted Wage Calc'] = 0,STET,CONTINUE);
['60920600'] = N: DB('Benefits', 'Forecast', !time_mqy, 'Total Rewards Calc')*['Count'];
['60940100'] = N: DB('Benefits', 'Forecast', !time_mqy, 'Health Ins Amount')*['Count'];
['60940200'] = N: DB('Benefits', 'Forecast', !time_mqy, 'Dental Ins Amount')*['Count'];
['60940300'] = N:
IF ((['Adjusted Wage Calc']*12*2)>700000 , (700000/1000)*
DB('Benefits', 'Forecast', !time_mqy, 'Group Term Life Insurance Rate') ,
(['Adjusted Wage Calc']*12*2/1000)*
DB('Benefits', 'Forecast', !time_mqy, 'Group Term Life Insurance Rate')
);
['60940400'] = N: ['Count'] * DB('Benefits', 'Forecast', !time_mqy, 'Short Term Dis Amount') +
IF (['Adjusted Wage Calc']>23333, (23333/1000)* DB('Benefits', 'Forecast', !time_mqy, 'Long Term Disability Rate'),
(['Adjusted Wage Calc']/1000)*DB('Benefits', 'Forecast', !time_mqy, 'Long Term Disability Rate')
);
['60940500'] = N: ['Total Compensation'] * DB('Benefits', 'Forecast', !time_mqy, 'Workers Comp %');
['60960100'] = N: (['Adjusted Wage Calc']+['Total Bonuses']+['Lump Sum Amount'])*
DB('Benefits', 'Forecast', !time_mqy, 'Pension %');
#EndRegion
#60940100-Health Insurance
#60940200-Dental Insurance
#60940300-Life Insurance
#60940400-Disability Insurance
#60940500-Workers Compensation Ins
#60960100-Profit Sharing
#60920600-Total Rewards Recognition
#Region C-Calculation rules: Dimension:Accounts
#Autogenerated CALC CONSOLIDATED 4163636F756E7473
#Region Dimension:Accounts, Member:Total - Headcount
#Autogenerated MEMBERCALC CONSOLIDATED 5B4163636F756E74735D2E5B546F74616C202D2048656164636F756E745D
#@AutoGenerated
['Accounts':{'Total - Headcount'}]=C:IF(DTYPE('time_mqy', !time_mqy)@='C',
IF(DIMIX('time_mqy', ATTRS('time_mqy', !time_mqy, 'lastperiod'))>0,
DB('Payroll Model', !Measure, !Version, ATTRS('time_mqy', !time_mqy, 'lastperiod'), !regioncc, !cc_emp, 'Total - Headcount'),
DB('Payroll Model', !Measure, !Version, ELCOMP('time_mqy', !time_mqy, ELCOMPN('time_mqy', !time_mqy)), !regioncc, !cc_emp, 'Total - Headcount')),
CONTINUE);
#EndRegion
#Region Dimension:Accounts, Member:Full Time Headcount
#Autogenerated MEMBERCALC CONSOLIDATED 5B4163636F756E74735D2E5B46756C6C2054696D652048656164636F756E745D
#@AutoGenerated
['Accounts':{'Full Time Headcount'}]=C:IF(DTYPE('time_mqy', !time_mqy)@='C',
IF(DIMIX('time_mqy', ATTRS('time_mqy', !time_mqy, 'lastperiod'))>0,
DB('Payroll Model', !Measure, !Version, ATTRS('time_mqy', !time_mqy, 'lastperiod'), !regioncc, !cc_emp, 'Full Time Headcount'),
DB('Payroll Model', !Measure, !Version, ELCOMP('time_mqy', !time_mqy, ELCOMPN('time_mqy', !time_mqy)), !regioncc, !cc_emp, 'Full Time Headcount')),
CONTINUE);
#EndRegion
#Region Dimension:Accounts, Member:Part Time Headcount
#Autogenerated MEMBERCALC CONSOLIDATED 5B4163636F756E74735D2E5B506172742054696D652048656164636F756E745D
#@AutoGenerated
['Accounts':{'Part Time Headcount'}]=C:IF(DTYPE('time_mqy', !time_mqy)@='C',
IF(DIMIX('time_mqy', ATTRS('time_mqy', !time_mqy, 'lastperiod'))>0,
DB('Payroll Model', !Measure, !Version, ATTRS('time_mqy', !time_mqy, 'lastperiod'), !regioncc, !cc_emp, 'Part Time Headcount'),
DB('Payroll Model', !Measure, !Version, ELCOMP('time_mqy', !time_mqy, ELCOMPN('time_mqy', !time_mqy)), !regioncc, !cc_emp, 'Part Time Headcount')),
CONTINUE);
#EndRegion
#Region Dimension:Accounts, Member:LOA Headcount
#Autogenerated MEMBERCALC CONSOLIDATED 5B4163636F756E74735D2E5B4C4F412048656164636F756E745D
#@AutoGenerated
['Accounts':{'LOA Headcount'}]=C:IF(DTYPE('time_mqy', !time_mqy)@='C',
IF(DIMIX('time_mqy', ATTRS('time_mqy', !time_mqy, 'lastperiod'))>0,
DB('Payroll Model', !Measure, !Version, ATTRS('time_mqy', !time_mqy, 'lastperiod'), !regioncc, !cc_emp, 'LOA Headcount'),
DB('Payroll Model', !Measure, !Version, ELCOMP('time_mqy', !time_mqy, ELCOMPN('time_mqy', !time_mqy)), !regioncc, !cc_emp, 'LOA Headcount')),
CONTINUE);
#EndRegion
#Region Dimension:Accounts, Member:Temp Full Time Headcount
#Autogenerated MEMBERCALC CONSOLIDATED 5B4163636F756E74735D2E5B54656D702046756C6C2054696D652048656164636F756E745D
#@AutoGenerated
['Accounts':{'Temp Full Time Headcount'}]=C:IF(DTYPE('time_mqy', !time_mqy)@='C',
IF(DIMIX('time_mqy', ATTRS('time_mqy', !time_mqy, 'lastperiod'))>0,
DB('Payroll Model', !Measure, !Version, ATTRS('time_mqy', !time_mqy, 'lastperiod'), !regioncc, !cc_emp, 'Temp Full Time Headcount'),
DB('Payroll Model', !Measure, !Version, ELCOMP('time_mqy', !time_mqy, ELCOMPN('time_mqy', !time_mqy)), !regioncc, !cc_emp, 'Temp Full Time Headcount')),
CONTINUE);
#EndRegion
#Region Dimension:Accounts, Member:Temp Part Time Headcount
#Autogenerated MEMBERCALC CONSOLIDATED 5B4163636F756E74735D2E5B54656D7020506172742054696D652048656164636F756E745D
#@AutoGenerated
['Accounts':{'Temp Part Time Headcount'}]=C:IF(DTYPE('time_mqy', !time_mqy)@='C',
IF(DIMIX('time_mqy', ATTRS('time_mqy', !time_mqy, 'lastperiod'))>0,
DB('Payroll Model', !Measure, !Version, ATTRS('time_mqy', !time_mqy, 'lastperiod'), !regioncc, !cc_emp, 'Temp Part Time Headcount'),
DB('Payroll Model', !Measure, !Version, ELCOMP('time_mqy', !time_mqy, ELCOMPN('time_mqy', !time_mqy)), !regioncc, !cc_emp, 'Temp Part Time Headcount')),
CONTINUE);
#EndRegion
#EndRegion
FEEDERS;
[{'Annual Salary','Base Salary','Current Daily Rate','Adjusted Daily Rate','Dept','Position Title','count', 'Cum Comp'}, 'Actual' ] => ['Forecast'];
['Amount', 'Forecast','time_mqy':'comment', 'Annual Salary' ] =>
DB('Payroll Model', 'Amount', !Version, 'Total of Time_MQY', !regioncc, !cc_emp,'Base Salary'),
DB('Payroll Model', 'Amount', !Version, 'Total of Time_MQY', !regioncc, !cc_emp,'H_Base Salary Days in Payroll') ;
['Forecast', 'Base Salary' ] => ['Current Daily Rate'],['Merit $'],['OT $'];
['Forecast', 'Current Daily Rate' ] => ['Adjusted Daily Rate'] ;
['Forecast', 'H_Base Salary Days in Payroll' ] => ['Current Payroll Daily Rate'],['60810200'];
['Forecast', 'Current Payroll Daily Rate' ] => ['Adjusted Payroll Daily Rate'] ;
['Forecast','Adjusted Daily Rate'] => DB('Payroll Model', 'Amount', !Version, !Time_MQY,
!regioncc, !cc_emp, 'Adjusted Wage Calc'),
DB('Payroll Model', 'Amount', !Version, ATTRS('Time_MQY ' , !Time_MQY , 'Month_After' ),
!regioncc, !cc_emp, 'Base Salary' ) ;
['Forecast','Adjusted Payroll Daily Rate'] => DB('Payroll Model', 'Amount', !Version, !Time_MQY,
!regioncc, !cc_emp, 'H_New Salary Days in Payroll');
['Forecast','Adjusted Wage Calc']=>['60810400'],['Key Contributor Amount'],['60940300'],['60960100'];
['Forecast','Total Compensation']=>['Cum Comp'],['FICA Amount'],['FMHI Amount'],['60820500'],['60820700'], ['60940500'];
['Amount','Forecast','CurOpenNew_Load'] =>
DB('Payroll Model', 'Amount', 'Forecast', 'Total of Time_MQY', !regioncc, !cc_emp, 'Count');
['Count'] => ['60920600'], ['60940100'], ['60940200'] , ['60940400'],['Full Time Headcount'],
['Part Time Headcount'];