REMINDER
Check in on the COLLABORATE mobile app
Managing Cash Flow in Primavera P6
Prepared by:
Luka Novosel, PMP
Primavera Implementation Consultant
Primakon Ltd.
How to Track Project Revenues and Expenditures in One P6 Project
Session ID#: 15465
About me…
■ Masters degree in Electrical Engineering
■ Primavera functional & technical consultant since 2006
■ PMI PMP certified since 2010
■ Oracle Primavera P6 & P6 R8 Implementation Specialist
■ Oracle Primavera EPPM trainer
■ PMP preparation trainer
■ Primavera EPPM API application designer & developer
■ Primavera EPPM SDK application designer & developer
About us…
■ Primakon is privately owned consulting company
■ 15+ years of experience in Primavera implementations
■ Offers customer tailored education in the area of PM methodologies and Primavera products
■ References in wide area of industries (from finance sector to construction)
■ Present on markets in EU & SE Europe
Presentation overview
■ The business need (NUMIP case)
■ Solution analysis
■ Model description
▪ Model overview
▪ Data entry
▪ Background jobs
▪ Primavera reports
■ BI publisher data model
■ BI reports
■ Conclusion and what’s next
The business need (NUMIP case)
This is a subtitle or bulleted list
The business needs …
■ About company
▪ NUMIP, privately owned engineering company,
▪ Working in different process industries such as:
— Nuclear Industry
— Pharmaceutical Industry
— Paper Industry
▪ Present in USA & Europe
▪ Project oriented company
■ Business needs:
▪ Long-running recession
▪ Huge pressure on profit margin
▪ Optimization of internal processes
Requirements …
■ Primavera P6 as management tool
■ Detailed project plans in Primavera
▪ All activities with roles in planning phase for cost projections
▪ Resource and material assignments with planned and actual values for cost tracking
■ All project expenditures in one place
■ Cash flow projections in Primavera P6
■ Executive reports on future cash flow projections
■ Email alerts for invoices
Key problems …
■ Primary role of P6 is to help project managers in managing projects
■ Additional requirements mustn’t interfere with primary role
■ Invoice due dates depend on contract definitions
■ The moment when the job is done (and money earned) is different from the moment when the invoice is paid
■ Management request is to have both informations in P6 and in correlation to project schedule
Solution analysis: Why cost User Defined Fields (UDF)?
Cost UDF Model and what’s behind it
■ WBS node called Cash Flow
■ Milestones with predecessor links to project plan
▪ Lag on relationship defines invoice due date period (i.e 30 days)
▪ Activity Cost UDF’s :
— Revenue
— Expenditure
▪ Milestone calendar: 7-day workweek
■ Milestone date gives UDF time dimension
■ Project Cost UDF’s summarizes activity level UDF’s (background job) one field for every month / type
Automatic Project Cost UDF creation
■ Background job creates project UDF’s
■ Two prefixes (data type and value type)
■ Data Type
▪ PLI – planned value
▪ BLI – baseline value
■ Value type
▪ EXP – expenditure
▪ INC – revenue
▪ CF – cash flow
Key benefits of this ModelWhy Cost UDF’s?
■ Financial fields do not interfere with managing project costs
■ No specific filtering is needed
■ Data is dynamically related to project schedule
■ Background job is updating project fields on predefined intervals
■ Simple project reports in P6 Web
■ Simple Project Portfolio analysis
■ Default Primavera Project Cost analysis (i.e total costs) is not affected
■ Designed as an add-on to regular project plans
■ Easy copy / paste export to Excel
Model description
Data input process
■ In project planning phase : Project Manager and Commercialdepartment official define planned project cash flow.
■ Revenue and expenditure milestones are linked to project management schedule
■ In P6, financial department officers have special Project and Global Security setup
▪ Read / Write access to WBS nodes with cash flow and invoice milestones
▪ Read + add relationships on project level
■ This way they have authority to define new milestones if necessary during projects execution
Data input process cont.
■ In P6 web special user interface view + layout are defined for financial department
Data input process cont. 2
■ Assigning relationships and monetary value to milestones
Project Cost UDF creationBackground job description
■ Every UDF expenditure / revenue activity is paired with the assigned milestone date
■ With that, every expenditure / revenue is getting time distribution variable
■ Background job based on Java and P6 API summarizes all UDF’s from activity level to project level
■ In that process time variable is used to make time distribution of cost UDF’s on project level
Project Cost UDF creationAccessing Baseline UDF values
■ Using P6 API, it is possible to read „baseline” activity UDF values. That data are not visible in P6 application.
■ With this, background job creates baseline time distributed values as project code UDF-s
Activity
rescheduled
Baseline Project value
Project Cost UDF Naming Conventions
■ Automatically created UDF’s follow predefined naming conventions
▪ VALUE TYPE + space + DATA TYPE + space + month.year
■ In this implementation VALUE TYPES are:
▪ EXP -> for expenditures
▪ INC -> for revenues
▪ CF -> for cash flow (revenue – expenditure)
■ DATA TYPES are:
▪ BLI -> baseline values
▪ PLI -> planned values
▪ ACI -> actual values (to be implemented)
■ These properties can be altered to suite specific implementation needs
Primavera out-of-the-box reports
Primavera Web reports
■ Porftolio with active projects
■ Portfolio views based od project cost UDF’s
■ P6 Web summarizes project UDF’s
■ Different scorecards can be created
■ Quite limited report options directly from the web
■ Limit of 28 fields per scorecard
■ Export to Excel option
Primavera Client reports
■ Generally P6 Client is not used for reporting
■ Export to Excel option is used from the P6 Client
■ No limitation in number of fields per layout
■ Easy copy / paste of fields to MS Excel for further analysis
■ Special layout is designed for that purpose
BI Publisher Cash Flow Report
BI Publisher reportsNew reporting in P6
■ BI Publisher is selected as main reporting source for reports in this model
■ Data model is developed to support requested reports
■ P6 desired look and feel is implemented
■ Reports are accessible via P6 web
BI Publisher Data Model
■ List of Values(LOV) is created for Projects
■ Parameter p_project_id is defined to use this LOV
■ Data sets are defined
BI Publisher - Data Model - Data Set
■ Data set is defined to support reporting needs
■ In this example SQL query will create number of fields from our Project Cost UDF names
■ Main fields are:
▪ DATA_TYPE
— sql: trim(SUBSTR(P6UDFTYPE.TITLE,4,4))
▪ VALUE_TYPE
— sql: trim(SUBSTR(P6UDFTYPE.TITLE,1,3))
▪ VALUE_DATE
— sql: trim(SUBSTR(P6UDFTYPE.TITLE,-7))
▪ SORT_DATE
— sql: trim(SUBSTR(P6UDFTYPE.TITLE,-4)) ||'.'||
trim(SUBSTR(P6UDFTYPE.TITLE,-7,2))
BI Publisher - Data Model - Data Set cont.
■ The query result will hold one record for every sort_date-data_type-value_type pair with appropriate value and sum value to date
Value
Date
Sort
Date
Value Value Type Data
Type
Cum
Value
12.014 2014.01 90000 CF Baseline 90000
42.014 2014.04 -21312 CF Baseline 68688
72.014 2014.07 0 CF Baseline 68688
12.015 2015.01 0 CF Baseline 68688
12.014 2014.01 -31200 EXP Baseline -31200
42.014 2014.04 -21312 EXP Baseline -52512
72.014 2014.07 0 EXP Baseline -52512
12.015 2015.01 0 EXP Baseline -52512
12.014 2014.01 121200 INC Baseline 121200
42.014 2014.04 0 INC Baseline 121200
BI Publisher - Data Model - Data SetRunning totals
Data sort for running
totals
Data sort for running
totals
Grouped by value typeRunning total per group
BI Publisher - Data Model - Data SetSQL query String month.year and
year.month fields for
grouping
Case when for
data_type – this is done
to make chart legend
more readable
BI Publisher - Data Model - Data SetSQL query cont.
Running totals are created
to enable cashflow S-curve.
Partition is done by:
1. data_type
2. value_type
All sorted by sort_date
Three tables are used in
SQL join:
• P6UDFTYPE
• P6PROJECT
• P6PROJECT_UDFVALUE
BI Publisher - Data Model - Data SetSQL query cont. 2
In WHERE statement,
project UDF fields are
filtered by value_type
values (EXP, INC, CF)
UDF field with TOTAL
instead of sort_date is
excluded from this data set
Parameter value is used in
WHERE part of the
statement
That can be one or list of
project ID’s
BI Publisher - Data Model - Data SetSQL query cont. 3
Grouping in SQL statement Grouping in SQL statement
is done according to SQL
standard requirements
BI Publisher - Data Model - Data SetSample XML data and Report editor
■ After data set definition, XML sample data set is created
■ Report is designed in Web Report editor
■ Word .rtf templates are not used in this case
■ The goal was to create report in Web Editor only and to test it’s limitations
■ 4 layouts are defined
▪ Cumulative Graphical
▪ CashFlow Report
▪ Revenue Report
▪ Expenditure report
P6 Web Report AccessTemplate selection
■ 4 report layouts defined in BI Publisher are available as templates in P6
■ Same names as Layouts in BI
P6 Web Report AccessProject selection
■ In this data model project data is summarized
■ Possible uses of reports:
▪ One project
▪ Cumulative reports on portfolios
Report examplesCumulative graphical report
Report exampleCashFlow report
■ Table and chart filter
▪ Value_type=„CF”
■ Project List
Report exampleRevenue report
■ Table and chart filter
▪ Value_type=„INC”
■ Project List
Report exampleExpenditure report
■ Table and chart filter
▪ Value_type=„EXP”
■ Project List
Future model development
Plans for future …
■ Data integration with financial system on several key points
▪ i.e. invoice number assigned to milestones
■ New Actual fields
▪ When milestone has actual date, value in UDF (expenditure / revenue) is declared as actual value
■ New reports for key stakeholders
■ Additional forecast analysis
▪ i.e. Preset and Net Present Values
Questions ?
Contact Information:
Luka Novosel, M.Eng , PMP
Primakon ltd
www.primakon.com
Please complete the session evaluationWe appreciate your feedback and insight
You may complete the session evaluation either
on paper or online via the mobile app