Example: Calculate Personnel and Headcount
Without Transfer
- Create the following global assumption account (full-time equivalent, hours per week).Assumption NameAssumption CodeAccount TypeDisplay AsFTE Hr/WeekFTE_HrPerWeekAssumption-periodicNumber
- Make sure this account has the followingAccount Settings:
- Time Rollup = Average of Roll-up Values
- Actuals Overlay = No Actuals for account (Show plan data)
- Columns needed include:Account NameAccount CodeElement TypeDisplay AsHire DateHireDateDateN/AEnd DateEndDateDateN/AHr/WeekHrPerWeekNumberNumber
- Modeled accounts needed include:Account NameAccount CodeAccount TypeBeginning HeadcountHeadcountModeled - cumulativeNew HireNewHireModeled - periodicTerminationTerminationModeled - periodicEnding HeadcountEndingHeadcountModeled - periodicPartial HeadcountPartialHeadcountModeled - cumulativeFTEFTEModeled - cumulative
- Create the following formulas:
- Beginning Headcount:IF (VersionMonth(this) > VersionMonth(ROW.HireDate) AND (IsBlank(ROW.EndDate) OR VersionMonth(this) <= VersionMonth(ROW.EndDate)), 1,0)
- New Hire:IF (VersionMonth(this) = VersionMonth(ROW.HireDate), 1, 0)
- Termination:IF (VersionMonth(this) = VersionMonth(ROW.EndDate), 1, 0)
- Ending Headcount:ROW.Headcount+ROW.NewHire-ROW.Termination
- Partial Headcount:MonthFraction(ROW.HireDate,ROW.EndDate, this)
- FTE:DIVF (ROW.HrPerWeek, ASSUM.FTE_HrPerWeek)*ROW.PartialHeadcount
With Transfers
- Create the following global assumption account (full-time employee, hours per week).Assumption NameAssumption CodeAccount TypeDisplay AsFTE Hr/WeekFTE_HrPerWeekAssumption-periodicNumber
- Make sure this account has the followingAccount Settings:
- Time Rollup = Average of Roll-up Values
- Actuals Overlay = No Actuals for account (Show plan data)
- Columns needed include:Account NameAccount CodeElement TypeDisplay AsHire DateHireDateDateN/AEnd DateEndDateDateN/ATransfer In DateTransferInDateN/ATransfer Out DateTransferOutDateN/AHr/WeekHrPerWeekNumberNumber
- Accounts needed include:Account NameAccount CodeAccount TypeBeginning HeadcountHeadcountModeled - cumulativeNew HireNewHireModeled - periodicTerminationTerminationModeled - periodicEnding HeadcountEndingHeadcountModeled - periodicPartial HeadcountPartialHeadcountModeled - cumulativeUnallocated Partial HeadcountUnallocated_PartialHeadcountModeled - cumulativeFTEFTEModeled - cumulative
- Create the following formulas:
- Beginning Headcount:IFF ((VersionMonth(this)=0 AND (VersionMonth(this) > VersionMonth(ROW.HireDate) AND IsBlank (ROW.TransferIn) OR VersionMonth(this)>=VersionMonth(ROW.TransferIn))) OR VersionMonth(this)=VersionMonth(ROW.TransferIn) AND (IsBlank(ROW.EndDate) AND IsBlank(ROW.TransferOut) OR ((VersionMonth(this) <= VersionMonth(ROW.EndDate) AND IsBlank (ROW.TransferOut)) OR VersionMonth(this)<=VersionMonth(ROW.TransferOut))), 1, 0)
- New Hire:IF (VersionMonth(this) = VersionMonth(ROW.HireDate) AND IsBlank(ROW.TransferIn), 1, 0)
- Termination:IF (VersionMonth(this) = VersionMonth(ROW.EndDate) and isBlank(ROW.TransferIn), 1, 0)
- Ending Headcount:IFF (IsBlank(ROW.EndDate) AND IsBlank(ROW.TransferOut) OR (VersionMonth(this)<VersionMonth(ROW.EndDate) AND IsBlank(ROW.TransferOut)) OR VersionMonth(this)<VersionMonth(ROW.TransferOut), ROW.Allocated_BeginningHeadcount +ROW.NewHire-ROW.Termination, 0)
- Partial Headcount:MonthFraction(IF(IsBlank(ROW.TransferIn),ROW.HireDate,ROW.TransferIn),IF(IsBlank(ROW.TransferOut),ROW.EndDate,ROW.TransferOut),this)
- FTE:DIVF (ROW.HrPerWeek, ASSUM.FTE_HrPerWeek)*ROW.PartialHeadcount