VPVI-57 · VPVI-57: Project-Level Revenue Recognition for Complex Projects Keith Williamson,...
Transcript of VPVI-57 · VPVI-57: Project-Level Revenue Recognition for Complex Projects Keith Williamson,...
VPVI-57:Project-Level Revenue Recognition for Complex Projects
Keith Williamson, CallisonRTKL Inc.
Considerations for our Discussion
What Makes a Complex Project
Design Number of meetings? Client?
Technical Multi-Currency/Entity
That Depends on You
• How do you manage and report on project results?
• How many WBS’s do you utilize?
• How many functional currencies do you have?
• Do you markup your direct costs and/or consultants?
• How many tasks are your average project? How are they broken down?
• Are margins evenly applied to all tasks?
• Do you utilize the planning module?
• Is percent complete your revenue method? How is it applied?
CallisonRTKL Inc. Solution
Project
Task 1 - Office A / Sector A
Task 2 - Office B / Sector A
Task 3 - Office A / Sector B
Task 4 - Office B / Sector B
Office A Office B
Sector A $x,xxx.00 $x,xxx.00
Sector B $x,xxx.00 $x,xxx.00
Totals $x,xxx.00 $x,xxx.00
Financials
IFRS-15 and ASC 606
• Performance Obligation
• Allocate Price over Performance Obligation(s)
• Contract
• Identify Price
• Revenue Recognized Over Performance Obligation
Performance Obligation
• Importance of Performance Obligation on Revenue Recognition?
• CRTKL Inc. chose to identify the CONTRACT as the Performance Obligation• Assumes all services inter-related and integral• Requires all significant change orders be evaluated as to similar Scope
or unrelated to original contract (What is Client expecting?)• Potentially significant restatement of JTD Revenue for change orders.
• Consider alternatives• Each service as Performance Obligation
Legacy Vision Revenue Calculation
• Vision calculates revenue at the task level
• There is an option to calculate at overall project level; but requires a manual input for Percent Complete
• CRTKL utilizes the Planning Module to determine planned costs for each task
• CRTKL had historically developed a “Revenue Grid” to capture (by task):• Historical Actual JTD Costs• Planned Estimated-At-Completion (EAC) Costs • Contract Fee
Project Revenue Grid
Project Revenue Grid
Project Revenue Grid
JTD Reimb Billed: Reimbursable costs passed on to the client as pass-thru revenue (gets added to Fee)
Pct Comp Revenue: Task-Level revenue calculated on task-level percent complete x task Fee
Pct Comp Rev Adj: Project-Level revenue difference allocation to the task
How to Create a Project Revenue Grid
How to Create a Project Revenue Grid
• Data is summarized by Project / Task (WBS1, WBS2)
• JTD data is retrieved from the PRSummarySub table for Labor, Direct Expenses, Direct Consultants Vouched, Reimbursables Billed, and Total Billed
• ETC Labor data is retrieved from the RPPlannedLabor table using a standard Vision function – DLTK$ProrateRatio – to determine the ETC amount
• Consultant budget is retrieved from a CRTKL custom grid, which contains detail budgets by Consultant
• All the task data in the revenue grid is summarized to the Project level and added to the Revenue Grid, using custom SQL script.
Revenue Calculation (Task- Level)
• Revenue method in Vision is really quite simple. When the revenue grid is updated, the following fields are calculated:
• Labor Fee: Contract Fee Less Planned Direct Costs
• Labor Percent Complete: JTD Labor / EAC (estimate at completion) Labor Cost
• Labor Revenue: Labor Fee x Labor Percent Complete
• Task-Level Total Revenue: Labor Revenue + JTD Direct Costs + Reimb’s Billed
• The Vision Revenue Grid formula is simply: Revenue = Task-Level Total Revenue (hidden field on the Projects Info Center tasks)
Revenue Calculation (Project- Level)
• Similar in concept to the Task-Level Calculation. When the revenue grid is updated, the same fields are calculated with Project-Level Data:
• Labor Fee: Contract Fee Less Planned Direct Costs (Project-Level)
• Labor Percent Complete: JTD Labor / EAC (estimate at completion) Labor Cost (Project-Level)
• Labor Revenue: Labor Fee x Labor Percent Complete (Project-Level)
• Project-Level Total Revenue: Labor Revenue + JTD Direct Costs + Reimb’s Billed
• The problem now is that there is most likely a difference between this calculation, and the sum of the Task-Level Revenue.What to do with this difference?
Revenue Calculation (Project- Level)
• Let’s discuss difference between IFRS-15 and ASC 606, for the basis of this revenue calculation.
• ASC 606 requires the percent complete calculation be based on TOTAL Costs (merging profit margins of all tasks/costs)
• IFRS-15 does not address the components of the percent complete calculation. Therefore, CRTKL Inc. (who’s books are IFRS-compliant), is able to do the calculation on labor. For us, Direct Costs are simply a pass-thru cost (not marked up) to the client.
Revenue Calculation (Project- Level)
There are options for how to account for this difference:
• Create a new task to hold this temporary difference in revenue calc.
• Allocate this difference back to the original tasks
• Other?
• Calculate each task at the same overall project-level percent complete.
• Remember: this is only a temporary difference. Ultimately, the overall earned Fee (plus reimbursables) amount is what is recorded. This just affects the timing of that recognition.
Revenue Calculation (Project- Level)
CallisonRTKL Inc. opted to allocated the calculation difference to the original tasks:
• In our opinion, this results in more closely recognizing the tasks at a pro-rated revenue level; consistent with the task contribution to the overall project
• This does not result in possibly recognizing revenue on an “excess” task’s WBS; that will only be adjusted/removed later.
Revenue Diff Allocation (Project- Level)
• Once the difference from the two (project vs. task) methods is determined, we do two other calculations:• If a revenue pickup, determine the Fee backlog of all the active
tasks, and pro-rate the difference among these tasks.• If a revenue reduction, determine the revenue earned on the
active tasks, and pro-rate the reduction among these tasks.
Revenue Difference Allocation (Project- Level)Case Study
Revenue Difference Allocation (Project- Level)Case Study
Custom Revenue Methods
• CallisonRTKL utilizes a few different revenue methods depending on contract type, or revenue need. Hourly projects – If the contract is for hourly rates, CRTKL uses an
“As-Billed” revenue type; Revenue = Billed. Cost Plus projects – For < $50,000 cost-plus projects, we use a
custom Revenue method; Revenue = the lesser of Fee or Total Costs. This way, any profits are deferred until the end of the project.
SNB (Selected, Not Booked) project – revenue method is the same as Cost Plus.
Consultant – revenue method is the lesser of Fee or Direct Costs. PctCompLbr – Project-Level Percent Complete (as described
previously)
Creating Custom Revenue MethodsSelect the menu option “User Defined Revenue” under Configuration / Accounting
Creating Custom Revenue Methods• Enter a code• Enter a description• Click on a field & add• Select formula
operators
Creating Custom Revenue Methods• Example Method
Creating Custom Revenue Methods• Using “Lessor Of” or
“Greater Of” – these require that you pick 2 different methods, so you must define those methods before using them.
Creating Custom Revenue Methods• Project-level percent
complete calculation method “PctCompLbr”
Revenue Difference Allocation (Project- Level)Real Project
Revenue Difference Allocation (Project- Level)Real Project