Direct Milestone Custom Plan
You can create direct milestone custom plans without using any plan template. You can create a direct milestone custom plan for an Order Line Item (OLI), a Line Item, or a set of OLIs or Line Items containing One-Time or Recurring products. You can define a plan with or without any period range for the plan line items.
If a line item or an order line item already has a custom plan ID (from the previous creation), the newly created plan's ID will replace the old ID.
- Direct plans are in Active status when you create them.
- You can create or edit a custom plan until the Product configuration (Cart) is in the following stages:
- New.
- Approval required.
- Ready for Approvals.
- Ready for Finalization.
- Saved.
- In collaboration.
- You can create a custom plan until the quote is in the following stages:
- Draft.
- Approval Required.
- Approved.
- Generated.
- Presented.
Parameters for Plan Header
Enter the following parameters for the plan header of every set of OLIs or Line Items:
| Parameter | Description |
|---|---|
| Name | Name of the custom plan, for example, My_Custom_Plan_1 |
| Use Billing Plan Template | False |
| Billing Plan Template ID | ID of the plan template. For direct custom plans leave it blank. |
| Plan Type | Milestone |
| Periods Needed | Toggle the value to
|
| Number of Installments | Specify the number of payment installments, for example, 3. |
| Based On | Percentage |
| Computation Method | Custom or Even Distribution |
| Description | Describe the custom plan (optional). |
| OLI ID or Configuration ID (for Line Items) | IDs of the OLI or product configuration. |
| Billing Amount Criterion | Indicates whether to bill based on the delta revenue or the revenue indicated in the net price. It has two values -
The default value is Bill the Net Price. This setting enables you to decide whether you want to bill the net price or bill the delta amount only as part of the amendment. If you chose to bill the net price, the billing logic is invoked to calculate the net price. This net price is used to calculate the installment amounts per the new custom plan. The billing records generated during the new sale, if outside the amendment, remain untouched. The billing records falling inside the amendment period:
If you chose to bill only the delta, the billing application simply distributes the received delta amount from the CPQ/upstream application as part of this amendment, into installment amounts per the new custom. The billing records generated during the new sale remain untouched. If you chose to bill the un-invoiced and un-billed, the billing application, calculates pending invoice amounts from previous sales and new billing amounts for ongoing sales, supporting the full-term, mid-term, and mid-period scenarios in plan amendments and billing frequency changes. |
Parameters for Plan Line Items
Enter the following parameters for every line item of the plan:
| Para meters | Values when Periods Needed = False | Values when Periods Needed = True |
|---|---|---|
| Period Start Date | (Optional) Billing period start date. Auto-populates the milestone expected date if left blank. | You must enter the period start date. The value may be the contract's start date, a date before it, or any date after the contract date. The period start date of subsequent installments can't be a date before the start date of the previous installment. It can be the same date as the previous installment's start date or any later date. |
| Period End Date | Needed only if you have entered the period start date. The value must be greater than or equal to the period start date. If left blank, auto-populates to the later milestone expected date or period start date. | You must enter the period end date. The value must be greater than or equal to the period start date. |
| Milestone Expected Date | Date when the milestone is expected to be completed. You must enter a date for this field. It can be within or outside the contract date. The dates for subsequent installments need not be in a linear order. The milestone expected date of the second installment can be the same, before, or after the first installment’s date. | Date when the milestone is expected to be completed. You must enter a date for this field. It can be within or outside the contract date. The dates for subsequent installments need not be in a linear order. The milestone expected date of the second installment can be the same, before, or after the first installment’s date. |
| Payment Term | The payment term associated with the plan | The payment term associated with the plan |
| Percentage | The percentage of each installment. The sum of percentages of all the installments must be equal to 100. To increase the precision of the forecasted amounts, you must mention eight digits of decimal precision wherever applicable (e.g., 33.33333333, 7.14285714, etc.) | The percentage of each installment. The sum of percentages of all the installments must be equal to 100. To increase the precision of the forecasted amounts, you must mention eight digits of decimal precision wherever applicable (e.g., 33.33333333, 7.14285714, etc.) |
| Comments | Write your comments (optional) | Write your comments (optional) |
For example, the requirement is to bill the customer in three installments, 40.33333333%, 25.33333333%, and 34.33333334.%, enter the following parameters for the plan header:
|
Name | Use Plan Template | Plan Templ ate ID |
Plan Type |
Periods Needed |
No. of Installments |
Based On |
Computation Method |
Description |
ID |
|---|---|---|---|---|---|---|---|---|---|
|
My_Custom_Plan_1 | False | Null |
Milestone |
False |
3 |
Percentage |
Custom |
Custom Plan for ABC Company |
OLI-1 or LI-1 |
Because there are three installments, you must provide the line item details for three plan lines. If the Fee Amount Rounding Schedule setting is enabled in Billing Settings, the engine auto-computes the first or last value in the percent field. For more information, see Round-off and Auto-Computation.
Period Start Date | Period End Date |
Milestone Expected Date |
Percent |
Payment Term |
Comments |
|---|---|---|---|---|---|
01- January-2024 | 20- January-2024 |
20-January-2024 |
40.33333333 |
Net 30 |
Comment 1 |
21- January-2024 | 15-March-2024 |
15-March-2024 |
25.33333333 |
Net 60 |
Comment 2 |
16-March-2024 | 25-July-2024 |
25-July-2024 |
34.33333334 |
Net 90 |
Comment 3 |
When you initiate billing, the billing header will have three Billing Schedule Records (BSRs) containing 40.33333333%, 25.33333333%, and 34.33333334% of the Total Contract Value (TCV (sales)) respectively.
Activate the Order and Initiate the Billing
When you activate the OLI on which the above custom plan is created, and initiate the billing process, the BSRs, and BSDs guided per the custom plan are created. These milestone BSRs and BSDs are slightly different from the recurring products.
On the BSRs:
- The Actual Fee Amount field is Null.
- The Ready for Invoice Date field is Null.
- The Status is Pending Milestone.
- The Payment Term field has the same value indicated in the plan line item.
On the BSDs:
- The Record Type field is Milestone.
- The Milestone Expected Date field has the same value indicated in the plan line item.
- The Milestone Percent field has the same value as the plan line item.
- The Milestone Status is Expected
- The Derived Invoice Status field is Pending.
Consider the example:
A new sale is initiated for a service with a TCV (Sales) of USD 1,200.00. The above direct milestone custom plan is created on the OLI before its activation. The start date is 01-January-2024 and the end date is 31-December-2024.
You have activated the order (OLI-1) and initiated the billing to create three BSRs and BSDs per the custom plan.
BSRs have the following data:
|
BSR ID |
BH ID |
Actual Fee Amount |
Ready for Invoice Date |
Payment Term |
Invoice Status |
|---|---|---|---|---|---|
|
BSR-1 |
BH-1 |
Null |
Null |
Term 1 |
Pending Milestone |
|
BSR-2 |
BH-1 |
Null |
Null |
Term 2 |
Pending Milestone |
|
BSR-3 |
BH-1 |
Null |
Null |
Term 3 |
Pending Milestone |
BSDs have the following data:
|
BSD ID |
BSR ID |
Record Type |
Category |
Actual Fee Amount |
Milestone Percent |
Milestone Expected Date |
Milestone Status |
Derived Invoice Status |
|---|---|---|---|---|---|---|---|---|
|
BSD-1 |
BSR-1 |
Milestone |
Fee |
Null |
40.33333333 |
20-January-2024 |
Expected |
Pending |
|
BSD-2 |
BSR-2 |
Milestone |
Fee |
Null |
25.33333333 |
15-March-2024 |
Expected |
Pending |
|
BSD-3 |
BSR-3 |
Milestone |
Fee |
Null |
34.33333334 |
25-July-2024 |
Expected |
Pending |
You must complete the milestone-type BSDs to compute the actual fee amount. The process to complete the milestone-type BSDs is given in Completing the Milestone.
Before you complete the milestone, you must query the milestone-type BSDs using an API.
Query BSDs of Milestone Type
You can query the milestone BSDs based on Order Line Item ID, Billing Header ID, or Billing Schedule Records ID. To query for milestone-type BSDs, pass the values for the following parameters:
Object: Pass the Order Line Item ID, Billing Header ID, or Billing Schedule Records ID.
Milestone Expected From Date: Pass a date or keep it as Null.
Milestone Expected To Date: Pass a date or keep it as Null.
Show Data For: Select from All or Pending.
The Milestone Expected From Date and Milestone Expected To Date fields are optional. You can choose to enter either or skip both.
When you initiate the API to query milestone-type BSDs based on the input criteria in the above fields, it filters the relevant results.
If in the above example, you entered OLI-1 in the Object field and selected All in the Show Data For field, you can see the following data for the filtered BSDs:
|
OLI ID |
BH ID |
BSR ID |
BSD ID |
Record Type |
Milestone Expected Date |
Percent |
Milestone Completion Date |
Milestone Status |
|---|---|---|---|---|---|---|---|---|
|
OLI-1 |
BH-1 |
BSR-1 |
BSD-1 |
Milestone |
20-January-2024 |
40.33333333 |
NA |
Expected |
|
OLI-1 |
BH-1 |
BSR-2 |
BSD-2 |
Milestone |
15-March-2024 |
25.33333333 |
NA |
Expected |
|
OLI-1 |
BH-1 |
BSR-3 |
BSD-3 |
Milestone |
25-July-2024 |
34.33333334 |
NA |
Expected |
Complete the Milestone
The actual fee amount is not computed instantly when the milestone-type BSDs are created. You must complete the milestone to invoke the logic to compute the actual fee amount of the BSD. The logic computes the actual fee amount based on the value in the Milestone Percent field of the BSD.
To complete the milestone of a BSD you must enter the following values:
- Billing Schedule Detail Record ID
- Milestone Completion Date
- Milestone Completed By - Default for logged-in users
When you call the API to complete the milestone with the above set of data, the following fields are updated:
On the BSD:
- The Actual Fee Amount field on the BSD is updated to a value equal to the product of Milestone Percent and the Current Unbilled Amount.
- The Milestone Status is updated to Complete, the Derived Invoice Status is updated to Pending, and the Milestone Completion Date is updated to the date you entered.
On the BSR:
- The values for the Actual Fee Amount and Ready for Invoice Date fields are fetched from the Actual Fee Amount and Milestone Completion Date fields of the BSD.
- The Invoice Status is updated to Pending Billing.
On the BH, the Pending Invoice Amount field is updated based on the rolled-up amount from the BSR.
In the above example, to complete the BSD-1 milestone, you entered "BSD-1" for the BSD ID and "05-March-2024" for the Milestone Completion Date. On execution, the BSD shows:
|
BSD ID |
BSR ID |
Actual Fee Amount |
Milestone Expected Date |
Milestone Completion Date |
Milestone Status |
Derived Invoice Status |
|---|---|---|---|---|---|---|
|
BSD-1 |
BSR-1 |
USD 483.99 |
20-January-2024 |
05-March-2024 |
Completed |
Pending |
The BSR is populated with the following data:
|
BSR ID |
BH ID |
Actual Fee Amount |
Ready for Invoice Date |
Invoice Status |
|---|---|---|---|---|
|
BSR-1 |
BH-1 |
USD 483.99 |
05-March-2024 |
Pending Billing |
The actual fee amount is calculated and updated on the BSD after it is completed, then this amount is rolled up to the BSR. From the BSR the value is fetched and updated on the BH. So the Pending Invoice Amount field on the BH is updated to USD 483.99 which is equal to 40.33333333% of USD 1,200.00.
Round-off and Auto-Computation
For any of the computation methods (Even Distribution or Custom), the engine auto-computes either the first or last installment value. It ensures that the sum of the percentage of all the installments is always equal to 100. Depending on whether the Fee Amount Rounding Schedule setting is set to First or Last, the engine also rounds off the value to eight decimal places. This is described in the following table:
|
Computation Method |
Installment |
Fee Amount Rounding Schedule = Last |
Fee Amount Rounding Schedule = First |
|---|---|---|---|
|
Custom |
Installment-1 |
40.33333333 |
40.33333334 (System ignores the user-entered valueand auto computes this value-based on the two other values) |
|
Installment-2 |
25.33333333 |
25.33333333 | |
|
Installment-3 |
34.33333334 (System ignores the user-entered valueand auto computes this value-based on the two previous values) |
34.33333333 | |
|
Even Distribution |
Installment-1 |
33.33333333 |
33.33333334 |
|
Installment-2 |
33.33333333 |
33.33333333 | |
|
Installment-3 |
33.33333334 |
33.33333333 |
Considering the above example and assuming that you have enabled the Fee Amount Rounding Schedule setting to either First or Last at the Billing Setting level, the milestone BSDs show the following milestone percentage for a Custom computation method:
|
BSD ID |
BSR ID |
Record Type |
Category |
Actual Fee Amount |
Milestone Percent |
Milestone Expected Date |
Milestone Status |
Derived Invoice Status | |
|---|---|---|---|---|---|---|---|---|---|
|
Fee Amount Rounding Schedule = Last |
Fee Amount Rounding Schedule = First | ||||||||
|
BSD-1 |
BSR-1 |
Milestone |
Fee |
Null |
40.33333333 |
40.33333334 |
20-January-2024 |
Expected |
Pending |
|
BSD-2 |
BSR-2 |
Milestone |
Fee |
Null |
25.33333333 |
25.33333333 |
15-March-2024 |
Expected |
Pending |
|
BSD-3 |
BSR-3 |
Milestone |
Fee |
Null |
34.33333334 |
34.33333333 |
25-July-2024 |
Expected |
Pending |
Creating a Direct Custom Plan
- For an Order Line Item (OLI):
- The order and all selected OLIs must be in a non-activated status.
- All selected OLIs must belong to the same order.
- For a cart Line Item:
- All selected line items must refer to the same configuration ID.
- The proposal must not be in accepted status.
