APPENDIX - PROCESSING DETAILS

P3 Autocost Rules

P3 uses a function known as the Automatic Cost/Resource Calculation Rules (Autocost Rules) that controls the Autocost specification for each project. Since the interface is transferring hours and cost from Costpoint to P3, you need to modify the Autocost specification settings so that P3 resource's actual hours do not drive the total cost based on the resource's cost per use.

Note: You must modify the Autocost settings in P3 before moving data from Costpoint to P3. 

A view of the recommended settings is below. You should become familiar with these settings and modify them as needed for each P3 project. You can access and modify the Autocost Rules in P3 under Tools, Options, Autocost Rules.

Where do Actual Costs/Hours come from?

This section illustrates:

  1. How actual costs are computed from the work file created by the Gather/Prepare phase of the interface processing.

  2. How the values in the worktables are generated for the View Gathered tab of the interface after the Gather/Prepare phase is done.

 

Types of "Actual Cost" Calculation

Actual

Non-Labor Cost

DIR_AMT_CUR_PD + BURD_ACT_CUR_AMT + COM_ACT_CUR_PD

+ FEE_ACT_CUR_PD

Labor Cost

DIR_AMT_CUR_PD

P3 Actual Cost

Non-labor cost + labor cost

 

Target

Non-Labor Cost

DIR_AMT_CUR_PD + BURD_TGT_CUR_AMT + COM_TGT_CUR_PD

+ FEE_TGT_CUR_PD

Labor Cost

DIR_AMT_CUR_PD

P3 Actual Cost

Non-labor cost + labor cost

 

No burden

Non-Labor Cost

DIR_AMT_CUR_PD

Labor Cost

DIR_AMT_CUR_PD

P3 Actual Cost

Non-labor cost + labor cost

 

T&M

Non-Labor Cost

TM_REV_CUR_PD

Labor Cost

TM_REV_CUR_PD

P3 Actual Cost

Non-labor cost + labor cost

 

Gathering the Data

The following describes how the Gather/Prepare process gathers data from Costpoint and puts it in the Z_CP_GATHER table (a worktable in Costpoint) in preparation for moving the results to P3. You can see the gathered information in the View Gathered tab.

Note: The fiscal year entered in the Gather/Prepare tab, rather than the Costpoint current fiscal year, becomes the current fiscal year in this program. If you enter a prior year in the Gather/Prepare tab, you may not get the desired results because, for non-labor data, the program looks for the current fiscal year data in the PROJ_SUM table and prior years in the PSR_PY_SUM table. You may not get the current year data because PROJ_SUM typically has been cleared of older period data. You can get any fiscal year data for the direct labor data because it comes from only one table, LAB_HS.

Three different types of rows are created from the LAB_HS (Labor History), PROJ_SUM (Project Summary), and PSR_PY_SUM (Project Summary Report Prior Year Summary) tables. These are: Labor with no burden, Non-labor with labor burden, and non-labor with non-labor burden. For each type, the application selects data for:

Labor with no burden

The row type "Labor with no burden" is selected from all rows in the LAB_HS table and coded as ACCT_FUNC_CD =  "2." It is summarized by:

PROJ_ID/ORG_ID/ACCT_ID/BILL_LAB_CAT_CD/GENL_LAB_CAT_CD

Also, the dollar values in T&M projects are zeroed out (keeping hours intact).

Non-labor with labor burden

The row type "Non-labor with labor burden" is selected from ACCT_FUNC_CD = (2 or 11) in PROJ_SUM and PSR_PY_SUM and coded as ACCT_FUNC_CD = "3." It is summarized by:

PROJ_ID/ORG_ID/ACCT_ID/L1_ACCT_SEG_ID

Non-labor with non-labor burden

The row type "Non-labor with non-labor burden" is selected from ACCT_FUNC_CD = (3 or 12) in PROJ_SUM and PSR_PY_SUM and is coded as ACCT_FUNC_CD = "3."  It is summarized by:

PROJ_ID/ORG_ID/ACCT_ID/L1_ACCT_SEG_ID.

Summary of Sources of Values in the Gather Process

#1 = labor with no burden.

#2 = non-labor with labor burden.

#3 = non-labor with non-labor burden.

Account Function codes of gathered data are assigned as follows:

"2" = Direct Labor costs from #1 above

"3"= ODC and Burden from #2 and #3      

 

Type/period

Consolidated

Source Table for Values ($ and hrs)

LAB_HS (#1)

PROJ_SUM (#2, #3)

PSR_PY_SUM (#2, #3) PY

Smallest group unit (summarized)

Vend_empl_id (#1)

Acct_ID (#2, #3)

 1 PROJ_ID           

PROJ_ID

 2 ORG_ID            

ORG_ID

 3 ACCT_ID          

ACCT_ID

 4 L1_ACCT_SEG_ID

L1_ACCT_SEG_ID   (from ACCT table).

 5 FY_CD              

FY_CD

 6 PD_NO             

PD_NO

 7 SUB_PD_NO        

SUB_PD_NO

 8 ACCT_FUNC_NO    

2 (#1) or 3 (#2), (#3)

 9 BILL_LAB_CAT_CD

BILL_LAB_CAT_CD from #1, NULL from #2, #3

10 BURD_ACT_CUR_AMT

SUM (SUB_ACT_BURD_AMT) #2

11 BURD_ACT_ITD_AMT

SUM (SUB_ACT_BURD_AMT) #2

+ SUM (BURD_AMT) #3

12 BURD_TGT_CUR_AMT

SUM (SUB_TGT_BURD_AMT) #2

13 BURD_TGT_ITD_AMT

SUM (SUB_TGT_BURD_AMT) #2

+ SUM (BURD_AMT) #3

14 COM_ACT_CUR_PD

SUM (SUB_COM_ACT_AMT)  #2

15 COM_ACT_ITD

SUM (SUB_COM_ACT_AMT)  #2

+ SUM (COM_AMT)

16 COM_TGT_CUR_PD

SUM (SUB_COM_TGT_AMT)  #2

17 COM_TGT_ITD

SUM (SUB_COM_TGT_AMT)  #2

+ SUM (COM_AMT) #3

18 DIR_AMT_CUR_PD

Direct Labor (acct Func=2)

SUM (ACT_AMT)#1

ODC (acct func=3)

SUM (SUB_DIR_AMT)#2

19 DIR_AMT_ITD     

Direct Labor (acct func=2)

SUM (ACT_AMT)#1 (period up to)

ODC (acct func=3)

SUM (SUB_DIR_AMT) #2 +

SUM (DIR_AMT) #3

20 EMPL_ID         

EMPL_ID from #1, NULL #2, #3

21 FEE_ACT_CUR_PD

0

22 FEE_ACT_ITD  

0

23 FEE_TGT_CUR_PD  

0

24 FEE_TGT_ITD     

0

25 GENL_LAB_CAT_CD

GENL_LAB_CAT_CD from #1, NULL from #2, #3

26 HRS_CUR_PD      

SUM (ACT_HRS) from #1, 0 from #2, #3

27 HRS_ITD         

SUM (ACT_HRS) from #1, 0 from #2, #3

28 TM_REV_CUR_PD   

SUM (ACT_HRS* REV_RT_AMT) from #1, 0 from #2, #3

29 TM_REV_ITD       

SUM (ACT_HRS* REV_RT_AMT)

#1, 0 from #2, #3

30 VEND_EMPL_ID

VEND_EMPL_ID from #1, NULL from #2, #3

31 VEND_ID

VEND_ID from #1, NULL #2, #3

32 PROJ_NAME         

From PROJ_EDIT.PROJ_NAME

33 AS_OF_DT                  

SUB_PD.SUB_PD_END_DT

34 PD_START_DT

Last ACCTING_PD.PD_END_DT

Plus 1 (day)

35 PD_DAYS_NO      

Diff Between last PD_END_DT

and curr PD_END_DT