Register Login

CRM Billing Plans Interview Question and Answer

Updated Apr 18, 2019

CRM Billing Plans FAQ

When do We use a periodic billing plan?

Periodic billing plans are used for service products such as rentals or maintenance. Apart from specific scenarios in financing and IPM, periodic billing plans are used in service contracts. You have a service product with a time-dependent price (i.e. calculation type M, N, O or P) and bill regularly, e.g. monthly, quarterly, etc. The net value of the item will increase when you prolong the contract duration.

When do We use a milestone billing plan?

Milestone billing is used for sales products in big projects when the product is payed in installments. Milestone billing plans are used in sales quotations and sales orders, or on sales items in service orders. You have a sales product with a known net value. You distribute the net value over several milestones.

Read Here What is SAP and What does SAP stand for?

What is a header billing plan?

A header billing plan can be used with periodic billing plans and is useful to change many item billing plans in one step instead of changing each item billing plan one by one. If you change e.g. the periodicity from monthly to quarterly on header billing plan level, all item billing plans that are linked to the header billing plan will be changed too.

What is grouping?

Grouping is a feature for periodic billing plans. With long-running contracts, the generated items in the billing plan grow, too. Usually all periods have the same length, except the first and the last, which might be prorated. Instead of pricing each billing plan item only items that are different are priced which reduces the calls to IPC dramatically. All other items having the same period length refer to the one item that was priced, thus having the same value.

Periodic billing plan: All billing periods cover the same time frame (e.g. 1 1/2 months). Why are the billing values slightly different for each period and do not represent the expected value?

As different months have a different number of days, the price is distributed unevenly among the months. If you want the same billing value for each month, regardless if it has 28, 29, 30 or 31 days, change the customizing for the billing plan type as follows:

In the IMG activity "Define Billing Plan Types" change your billing plan type and and set the "Days in month" to 30, and make sure that your condition types use calculation rule "M" (Quantity - monthly price).

Periodic billing plan: I use year prices (calculation rule "N"). Why does the billing value represent less than a year's value although the billing period covers one year?

This usually happens if you use the setting "Days in year" and your billing period is in a leap year, because pricing calculates the billing periods differently.

Example: A billing plan from March 1st, 2008 to February 28th, 2009 from a user perspective covers exactly one year.

However, setting e.g. "Days in year" to 360 means that the last 5 days (or 6 in a leap year) of the year are ignored.

In addition, for the calculation the billing period is split internally into two segments

March 1st, 2008 - December 31st, 2008
January 1st, 2009 - February 28th, 2009

From January 1st to March 1st, 2008, there are 60 days, so the actual billing period covers 360 - 60 days, resulting in 300 days.

January 1st, 2009 - February 28th, 2009 are 59 days.

Therefore the whole billing period covers only 359 of 360 days, which is less than one full year.

In a non-leap year the calculation is as expected:

March 1st, 2009 - December 31st, 2009 are 360 - 59 -> 301 days
January 1st, 2009 - February 28th, 2009 are 59 days
Overall, the period covers 360 days -> one year.

To avoid the differences in calculation, remove the setting "Days in year".

Periodic billing plan: I use year prices (calculation rule "N"). Why do all periods have the same net value although some billing periods are shorter than others?

This can happen when grouping is active and all periods are grouped under the first period despite their different lengths.

To avoid this behaviour, deactivate the example implementation CRM_GROUPING_SERV_02 for BAdI CRM_BRI_GROUP_BADI and create a new implemenation. In this BAdI implementation, implement method GROUPE_BRI and clear all fields except CS_GROUPING_CRITERIA-NUMBER_OF_YEARS.

The example implementation is used for monthly prices (calculation rule "M").

Periodic billing plan: I use year prices (calculation rule "N") and bill monthly/bi-monthly/quarterly. Why does the sum of all billing periods covering a complete year not equal my yearly price?

For each billing period, the value is calculated individually based on the yearly price, so the value of the billing period may be rounded. However, the amount that is missing is not added to or distributed over any billing plan periods, so the actual value for the billing periods differs from the yearly price.

Periodic billing plan: Regardless of the period length, the billing value stays the same. Why?

Check the calculation type of the conditions that you use. You need time dependent conditions, i.e. calculation type M, N, O or P.

Periodic billing plan: Why does the last period have a value that is one day less than expected?

Check the time stamp of the date type that is used for the billing plan start and end date (usually a rule is applied using the contract end date). If the start time and end time are the same this means that the day of the billing plan end date does actually not belong to the billing plan.

Example: You want a billing plan that is valid from Jan 1st 2007 for one year. Billing plan start and end are derived from contract start and end date.

Your contract start date reads Jan 1st 2007, 00:00:00
The contract end date should read either Jan 1st 2008, 00:00:00 or Dec 31st 2007, 23:59:59.
If you chose e.g. Dec 31st 2007, 00:00:00 it means that Dec 31st is not part of the billing plan.

Periodic billing plan: After invoicing, the billing plan validity is extended. Why is a period for one day created after the last invoiced period?

This usually happens when the system detects a gap between the end of the last invoiced period and the start of the next period.

Check if the end day is really part of the billing plan (see previous topic). If you do not use time-dependent conditions the billing value of the invoiced period will not indicate that the period is actually too short. If you use time-dependent conditions as recommended, the last invoiced period has a value one day short of the expected value (also see previous topic).

If the end day is part of the billing plan, check if the full day is included in the billing plan or just several hours of that day. Always make sure that billing plan periods cover full days and not just parts of it (e.g. it is not recommended to have a start time of 00:00:00 and an end time of 23:59:00. Choose either an end time of 23:59:59 or the next day, 00:00:00).

As CRM transactions use time stamps but IPC can only calculate based on days basis the extra billing period that is generated for the missing hours is priced like a full day.

Periodic billing plan: What is the difference between "Start date" and "From" or "End date" and "To" and how do I use these fields?

The start date is the reference date that is used for generating billing periods, i.e. if your start date is the 23rd of a month and you bill monthly, all billing periods will start on the 23rd.

If your item billing plan is not linked to the header, you can simply work with "Start Date" and "End Date" and ignore "From" and "To".
If you use date rules on "Start Date" or "End Date", the respective date (e.g. "Start Date" has date rule "Contract Start" assigned) is taken from item level.
If you use a header billing plan, the idea is that all item billing plans that are linked to the header have similar billing periods, so "Start Date" and "End Date" are inherited from the header billing plan.

However, each item might have a different validity which is probably less than the overall validity of the contract. In this case you use "From" and "To" for the actual item validity. If you assign date rules, the dates will be taken from the respective item, therefore taking into account the actual item validity. The first and the last period might be prorated in this case.


Contract validity: January 10th, 2008 - January 10th, 2018.
Item 10 has a contract validity from January 12th, 2008 - January 12th, 2009.
Item 20 has a contract validity from January 25th, 2008 - January 25th, 2009.
Both items are linked to the header billing plan.

Billing plan for item 10:

Start Date: January 10th, 2008 From: January 12th, 2008
End Date: January 10th, 2018 To: January 12th, 2009

Billing periods:

Jan 12th - Feb 9th
Feb 10th - Mar 9th
Mar 10th - Apr 9th
Dec 10th - Jan 9th
Jan 10th - Jan 12th

Billing plan for item 20:

Start Date: January 10th, 2008 From: January 25th, 2008
End Date: January 10th, 2018 To: January 25th, 2009

Billing periods:

Jan 25th - Feb 9th
Feb 10th - Mar 9th
Mar 10th - Apr 9th
Dec 10th - Jan 9th
Jan 10th - Jan 25th

Periodic billing plan: I use a horizon date rule. Why are no new billing plan items generated?

Billing plan items are not generated after each invoice. When all but two billing plan items are invoiced, the horizon date is calculated and new billing plan items are generated.
The date rule for the horizon should always use today's date as a basis, e.g. "Today's date + 6 months". If a fixed date that usually does not change is used, e.g. "Contract start date + 6 months", the horizon date will not change either, therefore no additional billing plan items are generated.

Periodic billing plan: Why are billing blocks removed on the billing plan periods after a change?

The reason for deleting the billing block on all periods is that periods might shift or be deleted due to the change, so it is not possible in general to determine which periods should keep a billing block and which periods should not keep it.

A warning message is issued when periods with billing blocks are overwritten. If a warning is not enough, you can increase the level of severity for this message in customizing under Customer Relationship Management -> Transactions -> Basic Settings -> Define Attributes for System Messages.
Choose application area CRM_BILLPLAN and create a new entry for message 420.

If in your scenario you want to keep billing blocks you can implement BAdI CRM_BILLPLAN_SI_BADI, method PREPARE_SUBITEMS and delete first the message, then build a logic for keeping billing blocks according to your requirements.

Periodic billing plan: Why is an extra period generated when my billing plan starts on the 29th or later and the period for February has a different value than the other periods?

When a billing plan starts on the 29th or later the period for February cannot start on the 29th (except in a leap year) or later and will be compensated by an additional period at the end.

You can find more detailed information in 880116.

Daylight saving time: Why are periods or calculated dates for or around the date of the switch wrong?

This issue can occur if date types and used date rules use different reference objects. All dates in the billing plan use the time zone that is derived from the reference object which is assigned to the start date in he used date profile.

SAP delivered profiles usually use reference object SYSTEM, so do the date rules that are used in the billing plan. The date that is calculated for a date rule (e.g. to determine the period date) uses the reference object. Calculations for this date will be executed in the time zone associated with that date, so all calculations are done in that time zone.

Please make sure that all date types in your date profiles and date rules use the same reference object. If necessary, copy SAP delivered date rules and use the reference object that you need, then use only the new date rules in the date profile.

Get More Questions and Answers with Explanation related to CRM Billing Plans at SAP CRM Forum.