Service Pricing Example in S/4HANA Cloud Professional Services
This post goes through various combinations of service price options that can be set up in S/4HANA Cloud Professional Services. This is one potential approach to defining large combinations of charge-out rates for services provided to a customer, even with the restriction of using only the 20 pre-delivered Activity Types.
For ease of explanation, I will use the example of a company that sells consultancy services. This company has various types of consultants. For some of these consultants, they are graded at different levels: 1, 2, 3 or 4 which affects the charge-out rate.
When quoting to any customer, and for general planning, suppose that my company offers the following standard rates.
|Material||Activity Type||Hourly Rate – USA|
|T001||Junior Consultant (L1)||130|
|T002||Senior Consultant (L1)||150|
|T003||Platinum Consultant (L1)||170|
|T006||Junior Consultant (L2)||180|
|T007||Senior Consultant (L2)||200|
|T008||Platinum Consultant (L2)||220|
|T009||Junior Consultant (L3)||230|
|T010||Senior Consultant (L3)||250|
|T011||Platinum Consultant (L3)||270|
|T012||Junior Consultant (L4)||280|
|T013||Senior Consultant (L4)||300|
|T014||Platinum Consultant (L4)||320|
Figure 1: Basic Prices
I can set this up with App: Set Service Prices – Condition Type: PSP0 – Key Combination: ‘ Material with Release Status’ under the various material codes. I can only set up 20 prices at this broad category level.
Set Service Prices – PSP0 – Material with Release Status
Figure 2: Set Service Prices – PSP0 – Material with Release Status
Note: To align the descriptions in S/4HANA Cloud with my job levels, I must update the descriptions of the Activity Types with app ‘Manage Activity Types’, and on the material with app ’Change Material’.
Now, let us now say that my company delivers projects to customers in service organizations: DE (Sales Org – 1010), USA ( Sale Org – 1710) and UK (Sales Org – 1110) and I want my charge-out rates to be different for each of these areas.
These are the rates I plan for projects delivered to customers in the various service organizations:
|Material||Activity Type||Hourly Rate – DE||Hourly Rate – USA||Hourly Rate – UK|
|T001||Junior Consultant (L1)||100||130||150|
|T002||Senior Consultant (L1)||120||150||170|
|T003||Platinum Consultant (L1)||140||170||190|
|T006||Junior Consultant (L2)||150||180||200|
|T007||Senior Consultant (L2)||170||200||220|
|T008||Platinum Consultant (L2)||190||220||240|
|T009||Junior Consultant (L3)||200||230||250|
|T010||Senior Consultant (L3)||220||250||270|
|T011||Platinum Consultant (L3)||240||270||290|
|T012||Junior Consultant (L4)||250||280||300|
|T013||Senior Consultant (L4)||270||300||320|
|T014||Platinum Consultant (L4)||290||320||340|
Figure 3: Project-Area Specific Pricing Table
Then with App: Set Service Prices – Condition Type: PSP0 – Key Combination: Sales Org/DistrChn/Customer/Material/SrvOrg/Pers
, I set the following.
Figure 4: Sales Org – Activity Type – Service org Price Entry
The ‘Sales Organization’ 1010 is the based on the service organization assigned to the project, and the sales area of the customer.
The 1010 in the rows of the condition table is the delivery organization of the consultant.
So all the rows in figure 4 are rates provided to a customer in the DE sales area.
And similarly, for the UK rates, I set sales organization to 1110 and enter the below:
Figure 5: Sales Org – Activity Type – Service org Price Entry
For 20 activity types delivered to 3 service organizations = 60 effective combinations. This can extend for however many service organizations you create.
Note 1: For every company code in S/4HANA Cloud, one service organization is pre-delivered with the system. Additional service organizations can be created via ‘Maintain Service Organization’.
Note 2: The service organization must include the cost centers of any employees you might staff on a project delivered by that service organization. So when I set up my DE Service Organization, if we want to be able to staff a consultant Bob Jones whose cost center is 10101101 to a project delivered by DE, then cost center 10101101 must be assigned as an Additional Cost Center.
Focusing now on my USA consultancy activity, I want to make further specifications for different types of work done. The prices quoted so far are for remote consulting. If the customer requires the consultant to be on-site there are different charges. There are further different charges if the consultant is requested below the standard amount of notice time (Rush), or if they are required to work on holidays. I have the following different hourly rates depending on the scenario requested by the customer:
|Material||Activity Type||Hourly Rate – USA||On-Site: Standard Days||On-Site: Rush||On-Site: Holiday||On-Site: Overtime||Remote: Standard||Remote: Rush||Remote: Holiday||Remote: Overtime|
|T001||Junior Consultant (L1)||130||260||312||468||338||130||156||234||169|
|T002||Senior Consultant (L1)||150||300||360||540||390||150||180||270||195|
|T003||Platinum Consultant (L1)||170||340||408||612||442||170||204||306||221|
|T006||Junior Consultant (L2)||180||360||432||648||468||180||216||324||234|
|T007||Senior Consultant (L2)||200||400||480||720||520||200||240||360||260|
|T008||Platinum Consultant (L2)||220||440||528||792||572||220||264||396||286|
|T009||Junior Consultant (L3)||230||460||552||828||598||230||276||414||299|
|T010||Senior Consultant (L3)||250||500||600||900||650||250||300||450||325|
|T011||Platinum Consultant (L3)||270||540||648||972||702||270||324||486||351|
|T012||Junior Consultant (L4)||280||560||672||1008||728||280||336||504||364|
|T013||Senior Consultant (L4)||300||600||720||1080||780||300||360||540||390|
|T014||Platinum Consultant (L4)||320||640||768||1152||832||320||384||576||416|
Figure 6: Scenario Specific Pricing Table
With this table, there are 126 combinations that I need to define using only 14 activity types for one country. When repeated for DE and UK, that is 378 combinations – but there is no effective limit to the number of work items that can be defined, so this scenario can be extended to service price combinations into the thousands.
To set up these service sales prices, I need to complete two steps:
- Define new Work items for these various activities like On-Site Consulting
- Enter the new prices for on PSP0 – Material # + Service Organization + Work Item ID level
Activity 1: Define new work items:
Manage Your Solution -> Configure Your Solution -> Search for ‘Work Items’:
Figure 7: Customizing Work Items
I define one work item for each of the different rate levels I’ll be setting.
2) Activity 2: Set up prices – I do this with App: Set Service Prices – Condition Type: PSP0 – Key Combination: Sales Org/DistrChn/Customer/Material/SrvOrg/Pers
There are specific combinations allowed for this Key Combination level of set service prices. Not being aware of the allowed combinations here is what may often limit the sales pricing combinations one thinks of as available, since often when we see condition tables like this all of the fields are set as mandatory. However, in this app and key combination – not all of the fields/columns must be populated for the entry to be accepted.
The following are the entry combinations that are allowed in this key combination, from most specific to broadest:
Customer Number + Personell Number + Work Item ID
Customer Number + Material Number + Service Org + Work Item ID
Customer Number +Material Number + Work Item ID
Customer Number + Material Number + Service Org
Material Number + Service Org + Work Item ID
Material Number + Work Item ID
Material Number +Service Org
Note: The Customer + Material can be maintained by selecting App: Set Service Prices – Condition Type: PSP0 – Key Combination: Customer/Material with release status, but cannot be maintained in the same table above.
To re-write the list above in a way that aligns with the example-business, I will consider these equivalent:
Personell Number = Specific Employee Rate
Work Item ID = Work Scenario (e.g. Remote Work Standard, Remote Work on Holidays etc.)
Service Organization = Source country of consultant
Consultant Type = Consultant Rank-Level (Junior Consultant Level 1, Senior Consultant Level 3 etc.)
So for my business, I can set different charge-out prices for any of these combinations:
Customer Number + Employee ID + Scenario: Carrion Wholesale hires John Adams at Overtime Rush Rate
Customer Number + Consultant Type + Service Org + Work Item ID: Carrion Wholesale hires a Junior Consultant Level 1 from Germany in holiday Period
Customer Number + Consultant Type + Work Item ID: Carrion Wholesale hires a Senior Consultant Level 3 for Remote Work
Customer Number + Consultant Type + Service Org: Carrion Wholesale hires a Platinum Consultant Level 2 from USA
Only the final scenario above is really effectively limited to 20 standard options.
Consultant Rank-Level + Consultant Country + Work Scenario
Consultant Rank-Level + Work Scenario
Specific Employee Rate
Consultant Rank-Level + Consultant Home Country
Again, only the broadest scenario here of Consultant Rank-Level + Home Country is effectively limited to 20 combinations per country.
Figure 8: Scenario Specific Price Entry
Please take special care to note the sales organization you select as distinct from the service organization of the role. In the screenshot above, the rates entered are for a customer in sales area 1710 (USA), being charged for work executed by a resource from the service organization 1710 (USA). It is possible to set up a separate set of prices for a customer in sales area 1710 (USA) being charged for work executed by a resource from service organization 1010 (DE). Supposing I charge 255/HR for the DE consultant. To do this, I enter sales prices as follows:
Figure 9: Scenario Specific Price Entry – Consultant from different Delivery Organization
The impact of this on project pricing for a project delivered to a customer in the USA area is:
Figure 10: Plan Customer Projects Pricing Evaluation
So in figure 8, I can enter all the combinations required for Work Activities (S001, S002 etc.) delivered to a US sales-area customer by a consultant from the US staffed consultant. Repeat as many times as required for different customer sales areas, and delivery organization.
Note that if I didn’t have separate rates for consultants from different delivery organizations, I could just enter the prices as below and the system accepts this combination:
Figure 11: Non-Delivery Organization Specific, Scenario Specific, Pricing Entry
So far, I have entered rates for the following scenarios:
- A standard Junior Consultant (Level 1) Rate: 100 EUR/Hour
- A Junior Consultant (L1) from USA doing remote work at 130 USD/HR
- A Junior Consultant (L1) from USA, doing on-site consultancy (S001) for a US customer at a rate of 260USD/HR
- A Junior Consultant (L1) from USA doingOn-Site Overtime at 338USD/HR
- A Junior Consultant (L1) from DE, doing on-site consultancy (S001) for a US customer at 255 USD/HR
- A Junior Consultant (L1) from DE, US or UK doing remote consultancy for a US customer at 100/HR
I have chosen not to make even more specific hourly rates for at a customer level although this is possible by entering the customer number in the eligible combinations outlined earlier.
As a final business service pricing requirement, I do have one special employee – Andrew Saunders, with a specific charge out rate (because he needed one for this scenario).
His hourly rate for remote work is 250USD/HR. His on-site standard rate is 500 USD/HR and these rates apply regardless of service org.
To stipulate this, I can find the employee personnel ID by searching by employee name in the set service price entry area:
Figure 12: Finding Personnel Number
Note: This personnel ID can also be found in app – Maintain Business Partner – Role: Employee – Tab; Identification, or in the Employee Factsheet which is accessed by searching for the employee name in category ‘Employees’ in your S/4HANA Cloud home page search bar.
So I can enter Andrew Saunders’ charge-out specific rate as follows:
Figure 13: Employee specific pricing entry
These rates will ignore the service organization selected on the project, and the customer selected. The Work-ID + Employee specific rate is effectively the most granular level that I can set up at a non-project specific level.
Please note that this error:
will pop up when entering prices if you enter the employee rate for a validity period that exceeds the range of the employee record in S/4HANA Cloud. I.e. if you created the employee record on 2018-06-01, then you cannot have this pricing validity beginning in 2018-01-01.
As you can see from the above, the standard available pricing combinations possible are quite vast if leveraging the flexibility of custom Work Items.
This can be made much more granular by using pricing condition PCP0 which is projectID specific, instead of PSP0.
With PCP0, I can stipulate a whole new set of rates similar to the above for each project.
The mechanics of project-specific pricing with PCP0 are very similar to PSP0.
To conclude, let us look at some of the pricing determined in a project with the entries as above.
For a project with a US customer and US Service Org:
Figure 14: Project Header
If I select various activities to be carried out by a Junior consultant:
Figure 15: Plan Customer Projects Pricing Review
This is a small subset of all the pricing combinations that we have set up, but hopefully it demonstrates the range or pricing combinations already achievable by utilizing some of the existing functionality.
This Blog is great!!!
for consulting work, pricing variety is a big challenge! your explanation makes it be very clear for how guiding customer make their best pricing model.
Thank you for the great blog!
Is there a way to import those service prices from an external system?
Yes these should be saved in the system as Sales Pricing Conditions and so available from the Condition Record for Pricing in Sales API: