With price and discount indexing you can handle advanced price and discount management scenarios which are specific to the subscription industry such as price grand-fathering and free trials directly embedded within Microsoft Dynamics 365 Finance and Supply Chain ERP.
Each subscription plan header has a default “Use price indexing” flag. If this flag is turned on then price indexing will be, by default, turned on for all the lines within the plan. The user can manually toggle the “Use price indexing” flag on and off per subscription plan line.
The HARP BusinessPro process considers the “Use price indexing” flag on the subscription plan line level only. If the “Use price indexing” flag is turned off on the subscription plan line level, price and discounting indexing setup will be ignored.
It is possible to control the default behaviour of the “Use price indexing” flag on thesubscription plan header. This can be done from the “Use price indexing” flag that can be found in Enterprise Subscription Automation > Setup > Subscription management parameters > Subscription Management > Set up general parameters > General > Pricing.
After inheriting the flag from the parameters form, the flag can still be manually switched off for a specific subscription plan or subscription plan line.
Please note that Price indexing and Discount indexing in LISA augments (but does NOT replace) standard price and discount mechanisms of Microsoft Dynamics 365 Finance and Operations Applications (Finance, Supply Chain and Commerce). Thus, before using Price indexing and/or Discount indexing you must either configure base sales prices on released products and/or trade agreements and/or retail discounts, price adjustments etc. The latter are only applicable to subscription plans which are linked to a retail channel such as an Online store (e-commerce), a call-centre or a brick-and-mortar store.
Another thing to consider is that in the current version of LISA, Price indexing and Discount indexing only work on the customer/sales side of subscriptions and not for supplier-related actions.
Price indexing and Discounting indexing can work together or independent of each other. One does not require the other. In fact, they are configured from two separate forms both found in Enterprise subscription automation > Setup > Price indexing.
The following table shows an explanation of the fields in the Price indexing setup form:
Field Name | Description |
Priority | Assigned automatically on record created and can be changed by using the “Move up” and “Move down” buttons in the form. Non-editable. Records with a lower number in the priority field are considered first by the LISA price indexing process for example a Priority 1 record is considered before a Priority 2 record. The logic only considers the first record found based on priority and does not compound multiple records. |
Price / discount | This field is automatically assigned depending on whether the record is being created from the Price indexing setup form or the Discount indexing setup form. Non-editable. |
Level | The level to which this price indexing record is to be tied. The options are: 1. Item – this price indexing record is considered in all subscription plan lines having a specific item. 2. Subscription plan – this price indexing record is considered for all subscription plan lines of a specific subscription plan. 3. Program type – this price indexing record is considered for all subscription plan lines of subscription plans having this program type 4. Customer – this price indexing record is considered for all subscription plan lines of subscription plans of a specific customer 5. Customer group – this price indexing record is considered for all subscription plan lines of subscription plans of customers within a specific customer group. 6. All – this price indexing record is considered for all subscription plan lines. Note that this field does NOT influence the priority of the records considered. It is only the “Priority” field which influences the priority. |
Value | This is the value linked to the level selected. The lookup changes depending on the level field. For example, if the Level is set to customer the lookup of this field will show a list of customers. |
Block until type | This field defines until when the current subscription plan price applies. The selectable values are: 1. Date based – Pricing is blocked until a specific date. For example, a free trial expires on 31-12 and standard pricing kicks in from 01-01 onwards. 2. Billing cycle based – Pricing is blocked until a specific number of billing cycles. For example, 3 months (i.e., 3 cycles) free trial. |
Block until date | Used in conjunction with “Block until type” = “Date based”. Specify the date until the price should remain un-changed. Otherwise, noneditable |
Block until cycles | Used in conjunction with “Block until type” = “Billing cycle based”. Otherwise, non-editable. Specify the number of billing cycles until when the price should remain un-changed. |
Price refresh type | This field defines how the price changes once the date or billing cycles expire. The selectable values are: 1. Standard – New pricing is inherited as per standard Dynamics 365 logic i.e., from Trade agreements, base sales price, and retail pricing for retail subscription plans. 2. Index based – Standard pricing logic is ignored, and a fixed percentage is added or decreased to the current subscription plan line price. |
Index % | Used in conjunction with “Price refresh type” = “Index based”. Otherwise, non-editable. Specify the percentage by which to change the price. Can be both positive or negative to apply a price increase or decrease respectively. |
Index target | This defines the target the index is applied to. The options are: 1. Sales price per month – the index is applied to the sales price per month of the subscription product. 2. Billing period sales amount excluding sales tax after discount – the index is applied to the subscription period for the billing period after discount is applied. |
The following table shows an explanation of the fields in the Discount indexing setup form:
Field Name | Description |
Priority | Assigned automatically on record created and can be changed by using the “Move up” and “Move down” buttons in the form. Noneditable. Records with a lower number in the priority field are considered first by the LISA discount indexing process for example a Priority 1 record is considered before a Priority 2 record. The logic only considers the first record found based on priority and does not compound multiple records. |
Price / discount | This field is automatically assigned depending on whether the record is being created from the Price indexing setup form or the Discount indexing setup form. Non-editable. |
Level | The level to which this discount indexing record is to be tied. The options are: 1. Item – this discount indexing record is considered in all subscription plan lines having a specific item. 2. Subscription plan – this discount indexing record is considered for all subscription plan lines of a specific subscription plan. 3. Program type – this discount indexing record is considered for all subscription plan lines of subscription plans having this program type 4. Customer – this discount indexing record is considered for all subscription plan lines of subscription plans of a specific customers 5. Customer group – this discount indexing record is considered for all subscription plan lines of subscription plans of customers within a specific customer group. 6. Price indexing group – Custom groups specifically created for price indexing purposes. 7. All – this discount indexing record is considered for all subscription plan lines Note that this field does NOT influence the priority of the records considered. It is only the “Priority” field which influences the priority. |
Value | This is the value linked to the level selected. The lookup changes depending on the level field. For example, if the Level is set to customer the lookup of this field will show a list of customers. |
Block until type | This field defines until when the current subscription plan discount applies. The selectable values are: 1. Date based – Discounts are blocked until a specific date. For example, a 50% off expires on 31-12. 2. Billing cycle based – Pricing is blocked until a specific number of billing cycles. For example, a 50% off expires after 3 months (i.e. 3 billing cycles). |
Block until date | Used in conjunction with “Block until type” = “Date based”. Specify the date until the discount should remain applicable. Otherwise, noneditable |
Block until cycles | Used in conjunction with “Block until type” = “Billing cycle based”. Otherwise, non-editable. Specify the number of billing cycles until when the discount should remain applicable. |
To see how the above configuration is used in LISA check out a later lesson called “Price indexing in action”.
Price Indexing Groups
Price indexing groups are one of the levels upon which price indexing can be applied. Price indexing groups can be used to create custom price indexing groups without having to utilise other standard D365 groups such as item groups or customer groups for the purpose of price indexing. A subscription plan can be linked to a price indexing group by selecting the price indexing group on the plan header. For example, Jim selects price indexing group “Yearly Consumer Index” because he wants to ensure that the subscription plan he is creating is indexed yearly according to the consumer price index which as was previously configured by Elsa, the subscription pricing controller.
The following table shows an explanation of the fields in the Price indexing groups
form:
Field Name | Description |
Price index group id | Unique id for the price index group. A number sequence can be configured. |
Description | Free text description of the price indexing group |
Price Indexing Schedules
Price indexing schedules are an advanced price indexing feature which can be used as part of LISA BusinessPro. Price indexing logic, as described earlier in this document, can be used without configuring price indexing schedules but price indexing without price indexing schedules will only be triggered by a run of the HARP BusinessPro process. If you would like to index a subscription in between cycles then you must use Price indexing schedules and also configure the Refresh prices batch job to run at least once a day. This ensures subscriptions are indexed on the Index date specified on the Price index schedule line and not only when the line is picked up for processing by HARP BusinessPro. The Price index schedule line also includes other fields in order to provide as much flexibility as possible.
The following table shows an explanation of the fields in the Price index schedule form:
Field Name | Description |
Index schedule | Unique id for the index schedule. A number sequence can be configured. |
Level | The level to which this discount indexing record is to be tied. The options are: 1. Item – this discount indexing record is considered in all subscription plan lines having a specific item. 2. Subscription plan – this discount indexing record is considered for all subscription plan lines of a specific subscription plan. 3. Program type – this discount indexing record is considered for all subscription plan lines of subscription plans having this program type 4. Customer – this discount indexing record is considered for all subscription plan lines of subscription plans of a specific customers 5. Customer group – this discount indexing record is considered for all subscription plan lines of subscription plans of customers within a specific customer group. 6. Price indexing group – Custom groups specifically created for price indexing purposes. 7. All – this discount indexing record is considered for all subscription plan lines Note that this field does NOT influence the priority of the records considered. It is only the “Priority” field which influences the priority. |
Value | This is the value linked to the level selected. The lookup changes depending on the level field. For example, if the Level is set to customer the lookup of this field will show a list of customers. |
Enabled | Shows whether the index schedule is enabled or not. The record becomes read only once enabled and all enabled lines will be picked up by the Refresh prices batch job. |
The following table shows an explanation of the fields on the Price index schedule lines in the Price index schedule form:
Field Name | Description |
Line Number | Auto populated with a unique line number for the index schedule line |
Index date | The date upon which the Refresh prices batch job should trigger the indexation. |
Inherit configuration from | Once indexation is triggered, this field guides the Refresh prices batch job from where to pick up configuration. The options are: 1. This record – If this option is selected, the options on the Refresh prices batch dialog are ignored and the values on this line record are used. 2. Price refresh dialog – If this option is selected, the options on the Refresh prices batch dialog are applied. |
Price refresh type | This field defines how the price changes once the date or billing cycles expire. The selectable values are: 1. Standard – New pricing is inherited as per standard Dynamics 365 logic i.e. from Trade agreements, base sales price and retail pricing for retail subscription plans. 2. Index based – Standard pricing logic is ignored and a fixed percentage is added or decreased to the current subscription plan line price. |
Index % | Used in conjunction with “Price refresh type” = “Index based”. Otherwise, non-editable. Specify the percentage by which to change the price. Can be both positive or negative to apply a price increase or decrease respectively. |
Index target | This defines the target the index is applied to. The options are: 1. Sales price per month – the index is applied to the sales price per month of the subscription product. 2. Billing period sales amount excluding sales tax after discount – the index is applied to the subscription period for the billing period after discount is applied. |
Enabled | Shows whether the index schedule line is enabled or not. The record becomes read only once enabled and will be picked up by the Refresh prices batch job if the header is also enabled. |
Price indexing on subscription plan and lines
When price indexing is enabled on the subscription plan line, there is an extra field group containing fields related to price indexing in the details form of the subscription plan line.
The following table shows an explanation of the fields in the Price indexing field group on the subscription plan line:
Field Name | Description |
Next sales price date | The date on which the sales price will change based on the configured price indexing. |
Next sales price | The next calculated sales price based on the configured price indexing. |
Next billing period sales amount | The next calculated billing period sales amount based on the configured price indexing. |
Next discount date | The date on which a discount will be applied based on the configured discount indexing. |
Next sales discount percent | The next calculated sales discount percent based on the configured discount indexing. |
Next sales discount amount | The next calculated sales discount amount based on the configured discount indexing. |
Next billing period sales amount | The next calculated billing period sales amount based on the configured discount indexing |
For a detailed description of the other fields that exist on the subscription plan line kindly refer to another lesson within this course called “A closer look at subscription plan lines”.