SAP S/4HANA Cloud, Public Edition for Professional Services. The dynamic EAC in cost based POC fixed-price project.
In the professional services industry, fixed-price contracts are one of the most used project types.
A fixed-price contract has a project structure where the client is billed a fixed amount of money, independently of the effort invested to deliver the project work. Because of that, a fixed-price project can either be an opportunity or a risk to the organization, based on how well the costs are planned and the work is scoped and executed.
While there are different formulas to calculate the revenue to be recognized for fixed-price projects, the cost-based percentage of completion is among the most common ones, being one of the most standard formulas:
POC = Actual costs to date / Total planned costs
Cost-based POC fixed price settings
In S/4Hana Cloud, Public Edition, SSCUI 102530 – Maintain Settings for Event-Based Revenue Recognition shows you the configuration behind the professional services revenue recognition. While this configuration is pre-delivered, is very important to understand the settings for cost-based POC and how they determine the revenue recognition for fixed-price projects. Recognition key SPFC is the one used for Fix Price Cost based POC. This key only applies for Customer Project.
In the Derivation of Recognition Key for Projects, SSCUI 102517 we can see that Recognition key SPFC is assigned to contract type PS01-Fixed Price. You can also define different recognition keys at material level.
Understanding how POC is calculated for SPFC
Because cost-based POC requires plan data, is in the SSCUI 102530 – Maintain Settings for Event-Based Revenue Recognition where those settings are defined (Company code and accounting principle settings). The field source for plan value is the one that indicates which plan values are used for POC calculation. This is the default value for SPFC – COSTPOC:
306 Strategy: real time = 305, closing = 301
As we can see strategy 306 is a combined strategy which uses two different ones:
- During real time postings (like activity or travel expenses postings) uses the strategy 305 which is described as Confirmed EAC cost (Estimated at completion) CPM project, revenue SD billing schedule.
- During closing (when running app Run Revenue Recognition – projects) uses the strategy 301 which is described as Actual Estimated at completion (EAC) from CPM planning tools, revenues from actual SD billing schedule. This one is also known as Dynamic EAC.
So what this means is that two different POC formulas are calculated:
- Real time postings: Actual costs / Confirmed EAC
- Closing: Actual costs / Dynamic EAC
What is the definition of the different Estimated at completion (EAC) terms:
- Estimated at Completion (EAC) is the total planned costs to complete the project.
- Estimated at Completion (EAC) = Actual cost (AC) + Estimated to Completion (ETC)
- Estimated to Completion (ETC) stands for the remaining planned costs to complete the project.
- Confirmed EAC: forecasted costs to complete the project confirmed by Project Manager in App “Review Customer Project”. Project Manager can click “Save” to confirm the posted hours and ETC hours. When the planned costs are changed in the app “Plan Customer Projects”, the confirmed EAC will also be overwritten.
- Confirmed EAC= plan cost rate * (posted hours + ETC hours)
- Dynamic EAC: forecasted costs to complete the project. Any real-time cost and effort posting triggers a new EAC calculation -> value is constantly changing and always displayed in App “Review Customer Project”
- Dynamic EAC= actual cost rate *posted hours + plan cost rate * ETC hours
In a fixed-price project is very common that actual costs do not match the planned costs, for example when you post to a WBS additional unplanned resources with different roles and different costs to complete a task. In these circumstances, your initial project plan costs are wrong, so your revenue recognition may be wrong, unless you use app Review Customer Projects to confirm a new EAC. If you do, then this confirmed EAC is the one used in the real time posting strategy 305. If you don’t confirm the EAC, then the planned cost of the project is used.
But whether you confirm or not the EAC, at month-end closing, the POC will be recalculated considering all the unplanned actual costs plus the remaining estimated to complete, so applying the so-called dynamic EAC logic.
So in this 306 Strategy, it’s critical to always execute Review Customer Project to see what our EAC is (the app always shows the dynamic one) and adjust the ETC hours if we want to consume part of our actual hours against the planned ones. If we don’t do this review, our revenue recognition may be incorrect.
A dynamic EAC example
Our fixed price project data is the following:
Revenues from billing schedule: $20,000
Planned costs: Senior consultant, 100 HR * $120 = $12,000
Unplanned actual costs: Junior Consultant, 10 HR * 80 = $800
- POC and revenue recognition at actual cost posting: $800 / $12,000 = 6.57% * $20,000 = $1,333.33. Strategy 305 Confirmed EAC is applied. EAC not confirmed.
- POC and revenue recognition at month-end closing: $800 / ($12,000+$800) = 6.25% * $20,000 = $1,250.00 ($83.33 a revenue adjustment is posted). Strategy 301 dynamic EAC is applied.
So basically, what strategy 301 dynamic EAC does is considered the unplanned cost into the POC calculation to prevent over recognizing revenues when our initial planned costs are not reviewed.
Alternatives to the dynamic EAC
As previously indicated, strategy 306 Strategy: real time = 305 (Confirmed EAC), closing = 301 (Dynamic EAC) is the pre-delivered one in S/4Hana Cloud, Public Edition, and it’s not open for customer configuration. But You can see in the source for plan values field that other strategies are available. For example, if you don’t want the month-end closing revenue recognition to use the dynamic EAC, it’s possible to require via expert configuration to have all postings with strategy 305: Confirmed EAC cost CPM project, revenue SD billing schedule. In that case in our example, the month-end closing posting will not happen, or will be different depending on the confirmed EAC in the Review Customer Project app.
Where to find out more details