Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
Wei
Advisor
Advisor

Introduction


This blog helps you understand how the system calculates prices for service contracts at the billing request line level according to various configuration settings.

A service contract is a long-term agreement with your customer. To invoice the customer based on scheduled settlement periods, you can use the periodic billing plans.

Billing plans of service contracts are integrated with the Price Management in the Sales area. Note that the price calculation is based on dates only: The price engine does not use timestamps. The following key factors control the price calculation:

  • Master data in pricing

  • Control data of billing plan

  • Settlement start and end dates


In this blog, we also provide several configuration settings to explain the system behaviors:

  1. When you use a Monthly Price and set 30 Days in Month

  2. When you use a Monthly Price and set <empty> Days in Month

  3. When you use a Yearly Price and set 360 Days in Year

  4. When you use a Yearly Price and set <empty> Days in Year


Master Data in Pricing


With the scope item 3MO (Service Contract Management), SAP delivers the condition type PSI1 for Service Contract. Your key user or configuration expert can also configure your own condition types according to your business requirements, such as a yearly price, and add it into the pricing procedure that can be used for service contracts.

The following diagram shows the details of the monthly price condition type PSI1 in the configuration activity Set Condition Types for Pricing in Sales. The calculation type M determines that the condition value is calculated monthly.


Condition Type PSI1



Control Data for Creating Dates in Billing Plan (Days in Month and Days in Year)


You use periodic billing plans to schedule individual dates for the billing of service contracts, independent of the provisioning of the service. Your key user or configuration expert can define "Days in Month" and "Days in Year" to control the pricing calculation using the configuration activity Define Billing Plan Types. "Days in month" is used for monthly price and "days in year" for yearly price. The SAP predelivered setting is 30 Days in Month and 360 Days in Year for the condition type PSI1 (monthly price). See the following diagram:


Control Data for Billing Plan


In a service contract, the system uses this configuration to calculate a daily price along with the pricing master data. We also recommend another two ways of setting up the control data:


  • Case 1: When you use a yearly price condition and expect the same price for the yearly billing of both normal years and leap years, apply empty to both settings.




  • Case 2: When you use a yearly price condition but want prices calculated according to the days contained in the year, use 365 for days in year.




In this blog, we're going to dive into the settings of the control data to see how system calculates prices for billing plans in service contracts.

When you use a Monthly Price and set 30 Days in Month


The system calculates the price and sets the billing value according to the logic described below (the slash / means division and the asterisk * means multiplication):




























Date Price on the Date How to Calculate Billing Value
31st of the month 0 With this configuration, the system only considers 30 days for every month, no matter how many days the month actually has. Therefore, the system applies 0 price to the 31st of the months that have 31 days so that the price for every month is the same regardless how many days the month has.
Feb 28th (Normal Year) (Monthly Price / 30) * 3 February in a normal year contains only 28 days, which is less than 30 days. Therefore, the billing value for Feb 28th in normal year is calculated as a 3-day price so that the billing value of this month is the same as the monthly price.
Feb 29th (Leap Year) (Monthly Price / 30) * 2 February in a leap year contains only 29 days, which is less than 30 days. Therefore, the billing value for Feb 29th in a leap year is calculated as a 2-day price so that the billing value of this month is the same as the monthly price.
Any other dates Monthly Price / 30 Daily billing value equals to Monthly Price / 30. For example: when a monthly price is 30 USD, the daily billing value is 30USD divided by 30 days, making 1 USD per day.

The following examples (with monthly price 100 USD) can demonstrate the system behavior in some special cases:

































































Settlement Start Date

DD/MM/YYYY


Settlement End Date

DD/MM/YYYY
Billing Value Calculation Logic
31/01/2023 31/01/2023 0 USD 0 USD * 1 day = 0 USD
01/01/2023 31/01/2023 100 USD Apply the monthly price
01/01/2023 30/01/2023 100 USD 100 USD / 30 day * 30 days = 100 USD
01/02/2023 28/02/2023 100 USD Apply the monthly price
01/02/2023 27/02/2023 90 USD 100 USD / 30 days * 27 days = 90 USD
01/02/2024 29/02/2024 100 USD Apply the monthly price
01/02/2024 28/02/2024 93,3 USD 100 USD / 30 days * 28 days = 93,3 USD
10/01/2023 09/02/2023 100 USD Apply the monthly price
10/02/2023 09/03/2023 100 USD Apply the monthly price

When you use a Monthly Price and set <empty> Days in Month


In this case, the system gets a daily billing value by dividing the monthly price by the actual days contained in the month. The calculation logic can be expressed as the following:

  • Daily billing value = monthly price / days contained in the month

  • Billing value of the billing request line = daily billing value * days defined by settlement start and end dates


The following examples (still monthly price 100 USD) can demonstrate the system behavior:

































































Settlement Start Date

DD/MM/YYYY


Settlement End Date

DD/MM/YYYY
Billing Value Calculation Logic
31/01/2023 31/01/2023 3,23 USD 100 USD / 31 days * 1 day = 3,23 USD
01/01/2023 31/01/2023 100 USD Apply the monthly price
01/01/2023 30/01/2023 96,77 USD 100 USD / 31 days * 30 days = 96,77 USD
01/02/2023 28/02/2023 100 USD Apply the monthly price
01/02/2023 27/02/2023 96,43 USD 100 USD / 28 days * 27 days = 96,43 USD
01/02/2024 29/02/2024 100 USD Apply the monthly price
01/02/2024 28/02/2024 96,55 USD 100 USD / 30 days * 28 days = 96,55 USD
10/01/2023 09/02/2023 100 USD Apply the monthly price
10/02/2023 09/03/2023 100 USD Apply the monthly price

When you use a Yearly Price and set 360 Days in Year


Similarly like the case when you set 30 days in month, when you set 360 days in year, the system calculates the price and sets the billing value according to the logic described below (the slash / means division and the asterisk * means multiplication):























Date Price on the Date How to Calculate Billing Value
Last 5 days in December of a  normal year 0 In a normal year, there're 365 days in total. With the configuration 360 days in year, the system regards the extra dates not involved in the price calculation. Therefore, the system applies 0 price to these dates (total 5): Dec. 27th, 28th, 29th, 30th and 31st.
Last 6 days in December of a leap year 0 Similarly in a leap year, since there're 6 days more than the configure 360 days in year, the system applies 0 price to these days (total 6): Dec. 26th, 27th, 28th, 29th, 30th and 31st.
Any other dates Yearly Price / 360 days

Daily billing value = Yearly price / 360 days.

For example: if a yearly price is 360 USD, the daily billing value is 360 USD / 360 days, that is 1 USD.

The following examples (yearly price 1200 USD) can demonstrate the system behavior in this case:









































Settlement Start Date

DD/MM/YYYY


Settlement End Date

DD/MM/YYYY
Billing Value Calculation Logic
01/01/2023 26/12/2023 1200 USD 1200 USD / 360 days * 360 days = 1200 USD
01/01/2023 31/12/2023 1200 USD Apply the yearly price for the normal year
01/01/2024 31/12/2024 1200 USD Apply the yearly price for the leap year
01/04/2023 31/03/2024 1203,33 USD This settlement period spans more than one year and it contains a Feb 29th. Therefore, the billing value of this period is calculated as the sum of two parts:

  1. From 01/04/2023 to 31/12/2023: 1200 USD/ 360 days * 270 days + 0 * 5 days

  2. From 01/01/2024 to 31/03/2024: 1200 USD / 360 days * 91 days


The billing value is the total sum 1203,33 USD.
01/04/2024 31/03/2025 1197,67 USD This settlement period spans more than one year and it contains a Feb 29th. Therefore, the billing value of this period is calculated as the sum of two parts:

  1. From 01/04/2024 to 31/12/2024: 1200 USD/ 360 days * 269 days + 0 * 6 days

  2. From 01/01/2025 to 31/03/2025: 1200 USD / 360 days * 90 days


The billing value is the total sum 1197,67 USD.

When you use a Yearly Price and set <empty> Days in Year


In this case, the system automatically takes 365 days for normal years and 366 days for leap years. Therefore, daily the billing value equals the yearly price divided by 365 days for normal years and by 366 days for leap years.

The following examples (yearly price 1200 USD) can demonstrate the system behavior in this case:















































Settlement Start Date

DD/MM/YYYY


Settlement End Date

DD/MM/YYYY
Billing Value Calculation Logic
01/01/2023 27/12/2023 1186,85 USD 1200 USD / 365 days * 361 days = 1186,85 USD
01/01/2023 31/12/2023 1200 USD Apply the yearly price 1200 USD for the normal year
01/01/2024 27/12/2024 1186.89 USD 1200 USD / 366 days * 362 days = 1186,89 USD
01/01/2024 31/12/2024 1200 USD Apply the yearly price 1200 USD for the leap year
01/04/2023 31/03/2024 1200 USD Apply the yearly price 1200 USD for the leap year
01/04/2024 31/03/2025 1200 USD Apply the yearly price 1200 USD for the normal year

Settlement Start and End Dates


According to the explanation above, you might have already understood how the system uses the settlement start and end dates during the price calculation of billing plans. Here is a summary:

  • For monthly price, the system firstly calculates whether the billing request line is a whole month based on the settlement start and end dates.

    • If it is a full month, the billing value equals to the monthly price.

    • If it is less than a month, the billing value is the sum based on the daily price.





  • For yearly price, the system firstly calculates whether the billing request line is a full year based on the settlement start and end dates.

    • If it is a full year, the billing value equals to the yearly price.

    • If it is less than a year, the billing value is the sum based on the daily price.




Conclusion


In this blog, you have learnt the key factors that influence the price calculation of billing plans in service contracts. We explained the configuration settings that your system can use. With the examples that we provided, you can understand how the system gets the billing value in each billing request line, based on the configuration settings and the settlement start and end dates.

If you have any question, please comment under this blog. We will get back to you soon with our answers. If you have any other questions about service contracts, you can find Q&A and post your questions in the community.

Additional Information


How Periodic Billing Plan is Generated for Service Contract Items

Price Management

 
5 Comments