Subscription Plans
A subscription plan is a record which encapsulates a subscription or contract flow with a customer. A subscription plan is not just a collection of subscription plan lines but contains important definitions for the subscription or the contract. The way a subscription plan is created defines the following features of the subscription or the plan:
- The “Classification” of the subscription plan. Where the subscription plan is standard, project, retail or asset.
- The “Master Contract” of the subscription plan you are creating. This is non editable field and is used to show the master contract / plan parenting this subscription plan. Plans can be linked to a Master contract using the Add to contract button.
- The “Program type” the subscription plan is linked to.
- The “Subscription type” of the subscription plan. The subscription type defines if the billing type is “Upfront” or “In arrears” and how the action amounts are calculated.
- Whether “back-to-back” Purchase Orders actions should be generated for this subscription plan. When this option is ticked sales lines and purchase lines generated from firmed actions of the same billing cycle are automatically marked with each other. On the subscription plan this is a default and can be overridden on the plan line level.
- The “Billing posting profile” to be used for this plan. This defines how revenue and costs are accrued or recognised. On the subscription plan this is a default and can be overridden on the plan line level.
- The Sales and Purchasing billing periods and period types. In contrast with billing posting profiles, this defines how often sales and purchase invoice actions are generated in order to invoice customers or record supplier invoices.
- If any pre-invoicing is applicable for this plan which would constitute in Subscription actions to be created before the actual start date of the respective lines.
- If “Price indexing” is to be applied for this plan and subscription plan lines are updated with newer prices based on the price indexing setup.
- If “Price rounding” is applicable. On the subscription plan this is a default value and can be overridden on the plan line level.
- The “Reason code” for the creation of the plan. This is used for reporting purposes and defines if the subscription plan is a new subscription on contract or if it is a renewal, an addition to an existing subscription plan etc. This reason code is automatically defaulted on the subscription plan lines and can be setup to be more granular on that level (if applicable).
- The “Enable Stripe payments” and the “Enable for GoCardless direct debit” flags can be switched on depending on which configuration is currently enabled on your Enterprise Automation setup.
Vendor Contracts
Vendor contracts are similar to subscription plans but work only on the purchase side. They are primarily linked to a vendor not to a customer and can be used to manage recurring contracts with vendors such as rental contracts.
Subscription Plan Fields
The following table shows an explanation of the fields on subscription plan records:
Field Name | Description |
General > Master contract flag | Defines the current subscription plan as a Master Contract. A master contract is just a collection of subscription plans which are grouped together for easier management. For example: Publishing a master contract will automatically publish all subscription plans within it. A master contract cannot have subscription plan lines or actions linked directly to it. It will show the subscription plan lines and actions of its child subscription plans. |
General > Master contract | If the current subscription plan is group within a Master contract the “Subscription plan id” of the master contract is shown in this field. |
General > Subscription plan | The “Subscription plan id” of the current subscription plan. If the current subscription plan is group within a Master contract the “Subscription plan id” of the master contract is shown in this field appended with a ‘-‘ and the next number in the sequence. |
General > Sales Manager | The sales manager commercially responsible for this subscription. |
General > Subscription classification | The classification of the subscription plan. Please refer to lesson about Subscription classifications in the introductory module for explanation about subscription classifications. |
General > Project ID | Link this subscription plan to a project. Note: Linking a subscription plan to a project does not change its classification to Project. Subscription plans classified as projects can only be created from the Dynamics 365 Project Management and Accounting module and not directly from the Subscription Management cockpit. |
General > Currency | The currency code applied to the contract, however these can differ across the plan lines for both sales and purchase side of the transaction. |
General > Program type | Program type linked to this subscription plan. Please refer to lesson about Program types earlier in this module for an explanation about program types. |
General > Subscription type | The subscription type for this plan. Please refer to lesson about Subscription types in the introductory module for explanation about subscription types. |
General > Subscription commercial template | The subscription commercial template for this plan. Optionally pre-populate some fields on the subscription plan header only from a Subscription Commercial Template. |
General > Billing type | The billing type based on the subscription type selected. |
General > Subscription deposit type | The type of subscription deposit action to be created for this subscription plan. The options are: Not applicable – No subscription deposit subscription actions will be created for this subscription plan. Deposit – Request for deposit subscription actions will be created for this subscription plan. When “Generate sales order” actions are subsequently invoiced these are eventually set off against the deposit if the Parameter “Automatic settlement with deposit” is set to true. Security – Request for deposit security subscription actions will be created for this subscription plan. This balance is not set off against subsequent invoices. It simply remains on account until the end of the subscription or contract and refunded to the customer in full at that point if there were no breaches of contract which required the security deposit to be consumed. Note: A deposit or security deposit is a request for payment on account and not an invoice. |
General > Subscription deposit current value | The current balance of the subscription deposit for this subscription plan. This is updated after an action of type “Request for deposit payment” is created or cancelled. |
General > Create purchase order | This flag controls whether “back-to-back” Purchase Orders actions should be generated for this subscription plan. When this option is ticked sales lines and purchase lines generated from firmed actions of the same billing cycle are automatically marked with each other. On the subscription plan this is a default and can be overridden on the plan line level. This field is also existent on the subscription plan line and auto-inherits from the header to the line. The master process considers the flag on the line level not the header. |
General > Status | The current status of the subscription plan. The possible values could be: Draft – Not yet published and will not be picked up by the master process Published – Published and active. The master process will generate subscription actions based on the configured cadences for sales billing, purchase billing, revenue recognitions, deposits, security deposits, renewals etc Cancelled – Subscription is cancelled and cannot be published. Cancelled with reversal – Subscription was cancelled and any future date revenue or cost transaction postings reversed. |
General > Action weekday of month | The day of the month on which the actions should be generated. This is optional and should be used only in monthly per unit subscriptions. |
General > Tenant id | A header level description shown on the Subscription Sales Invoice modern report which ships out of the box. This field can be used for informational purposes only for example to store the tenant of a subscription. |
General > Use price indexing / Use maintenance price indexing | This field is automatically inherited from the equally named flag in the Subscription management parameters form but can be changed on the subscription plan header level. If this flag is turned on, price indexing will be applicable for this subscription according to the price and discount indexing rules configured. For more information about price indexing please refer to the relevant lesson later in this course. |
General > Price index group Id | The price index group linked to this subscription plan would enforce the price index setup associated with that group on the price indexing setup form. |
General > Entitlement auto-cancellation time fence | This field is used by the entitlement auto-cancellation batch job to automatically cancel entitlement actions that are older than the end-date plus the time-fence specified in this field, in days. A default can for this field can be set in the Parameters form and overridden at this level. |
General > Invoice account | The customer account may not be the actual final invoicing recipient, and for such cases the invoice account can be overridden at Subscription plan level (inherited from Customer record if applicable) and used in the invoice posting process. |
General > Reason | This is the “Reason code” for creation of the plan. This is used for reporting purposes and defines if the subscription plan is a net new subscription or contract or if it is a renewal, an addition to an existing subscription plan etc. This reason code is automatically defaulted on the subscription plan lines and can be setup to be more granular on that level (if applicable). This field is mandatory. |
General > Rolling end date calculation type | This can only be changed on Subscription plan creation and once saved, this cannot be changed. The options are LISA Standard, LISA advanced and Standard subscription billing intervals. |
Enhancement plan > Enhancement plan length (in years) | Only visible if the subscription type is “Perpetual + enhancement plan”. This defines the contractual length in years of the enhancement plan. |
Enhancement plan > Enhancement plan percent | Only visible if the subscription type is “Perpetual + enhancement plan”. This defines the value of the enhancement plan as a percentage of the perpetual value of the license. |
Posting > Billing posting profile id | The “Billing posting profile” to be used for this plan. This defines how revenue and costs are accrued or recognised. This can be a difference cadence or period length from the sales or purchase billing cycles. On the subscription plan this is a default and can be overridden on the plan line level. |
Sales/Purchase Billing > Billing period | The billing period type for the subscription plan. The possible values could be: Monthly – A billing action is generated every month. Quarterly – A billing action is generated every 3 months. Half-Yearly – A billing action is generated every 6 months. Yearly – A billing action is generated every 12 months. Other – A billing action is generated according to the number of months specified in the field Billing period months. |
Sales/Purchase Billing > Billing period months | Updated according to the selection in the Billing period field. Editable only if Billing period is set to value “Other”. |
Sales/Purchase Billing > Period type | The period type for the subscription plan. This field only affects the first and last cycle of a subscription plan line’s life-cycle. The possible values could be: Calendar – A billing cycle length is cut off at the end of the current calendar month or calendar year. Rolling – the billing cycle length is always as long as the billing period specified in the Billing period months fields and never cut-off. For example: For monthly “Calendar” period type starting on 15-01-2019: The first billing cycle will be from “15-04-2019” to “31-04-2019” and the billing amount calculated pro-rata. The second billing cycle will be from “01-05-2019” to “31-05-2019” For monthly “Rolling” period type starting on 15-01-2019: The first billing cycle will be from “15-04-2019” to “14-05-2019” The second billing cycle will be from “15-05-2019” to “14-06-2019” |
Sales/Purchase Billing > Pre-invoicing (in days) | If a number is entered here actions of type “Generate sales/purchase order” for this subscription plan are created X number of days before the start of the billing cycle. |
Sales/Purchase Billing > Post-invoicing (in days) | If a number is entered here actions of type “Generate sales/purchase order” for this subscription plan are created X number of days after the start of the billing cycle. |
Sales Billing > Price notification in days | The amount of days prior to the actual price indexing date by when a subscription notification is created to record that a price change is expected. This value is inherited from the Program types or Program type legal entity override where applicable. |
Sales Billing > Price notification date | This date shows the date of when the Subscription notification of when the price change should be affected, will be created on. |
Price rounding > Price rounding | This field defines whether “Price rounding” is applicable. If switched on, this rounds monthly prices to rounded year figures when invoicing is for yearly or longer billing periods in a contract. On the subscription plan this is a default and can be overridden on the plan line level. |
Price rounding > Price rounding type | This field defines the type of price rounding. The possible values could be: Up – Values are always rounded up. Down – Values are always rounded down. Nearest – Values are rounded to the nearest. On the subscription plan this is a default and can be overridden on the plan line level. |
Purchase > Purchase price rounding | If turned on, purchase prices will not follow the same rounding rules as sales prices but separate purchasing-specific price rounding rules. On the subscription plan this is a default and can be overridden on the plan line level. |
Purchase > Purchase price rounding type | This field defines the type of price rounding for purchasing if the field Purchase price rounding is set to true. The possible values could be: Up – Values are always rounded up. Down – Values are always rounded down. Nearest – Values are rounded to the nearest. On the subscription plan this is a default and can be overridden on the plan line level. |
Other > Legacy value | Free text field to enter a legacy subscription value identifier. Does not influence any logic. |
Other > Legacy system | Free text field to enter a legacy subscription system. Does not influence any logic. |
Administration > Customer requisition | The Customer requisition field allows for a free text value to be inputted referencing the customers’ purchase request number if applicable |
Administration > Customer reference | The Customers’ reference number or text which should be applied to this customers’ subscription plan. |
Indirect Sales > Indirect Customer | This subscription plan could be a plan purchased on behalf of another customer and is usually applicable when partners or resellers are involved within the process of contracting. |
Indirect Sales > Partner Margin percent | The percentage applied as a margin over and above the sales price for partner included in this indirect sales contract process. |
Indirect Sales > Enhancement partner margin percent | This is only shown in case the subscription plan is of type Perpetual + Enhancement plan |
Payment Automation > Enable Stripe payments | Enabling this flag would enable the Stripe payment gateway features to be applied to invoices from this subscription plan. For this to work the necessary Stripe configurations in Enterprise Automation parameters must be setup initially. |
Payment Automation > Enable for GoCardless direct debit | Enabling this flag would enable the direct debit mechanism from GoCardless to be applied to invoices from this subscription plan. For this to work the necessary GoCardless configurations in Enterprise Automation parameters must be setup initially. |
Annual Recurring Revenue > Current ARR | The calculated Annual recurring revenue for the total number of lines of this subscription plan for the current cycle. |
Annual Recurring Revenue > Next ARR | The calculated Annual recurring revenue for the total number of lines of this subscription plan for the next cycle. |
Subscription Plan Renewal Options
From the Renewal options button on the subscription plan header one configures how renewals are handled for the subscription plan.
After clicking the button, the dialog in the screenshot below is shown.
Entering values for fields “Global start date” and “Fixed cycles before renewal”, converts the subscription plan into a bounded contract with a fixed term. The renewal possibilities include:
- No renewal – the subscription plan is automatically cancelled by the master process without any user intervention required.
- Self-renewal – The master process automatically renews the subscription plan to itself after the contract expires.
- Renew to next – The master process automatically cancels the current contract and publishes the next contract in the chain after the contract expires.
Note: the term “Contract” used here is not to be confused with “Master contracts” or “Vendor contracts”.
- Master contracts are a group of subscription plans tied together via the master contract record
- Vendor contracts are subscription plans which are not linked to a customer but are linked to a vendor
Contracts can be configured to be auto-prolongated pending confirmation from the customer. In this case, when the system dates falls within this renewal notice timestamp an action of type “Renewal approval” is generated. This action must be firmed before the anniversary of the subscription plan line in order for the subscription plan line to be auto-prolongated. If the “Renewal approval” action is either cancelled or left in a “Not firmed” state then the subscription plan line will be automatically de-activated / cancelled. All the above can be enabled on a contract level by using the flag “Contract renewal notice”. If this is enabled, a renewal notice action will be generated each active line in this subscription plan. This happens within the renewal time fence i.e. The contract’s Global end date minus the number of days specified in the Renewal notice (days) field. All renewal notice actions for all subscription plan lines must be firmed in order for the renewal to be processed. Automatic renewal also requires the renew to self flag to be enabled or next subscription plan to be filled in.
When a subscription is not bound by contractual global start and end dates, there could still be legal requirements in different jurisdictions governing auto-prolongation of subscriptions. Since this is not a contract, to cover this scenario, the Auto-cancellation per line flag should be used. The master process will apply the renewal notice to each active subscription plan line. When the system dates falls within this renewal notice timestamp an action of type “Renewal approval” is generated. This action must be firmed before the anniversary of the subscription plan line in order for the subscription plan line to be auto-prolongated. If the “Renewal approval” action is either cancelled or left in a “Not firmed” state then the subscription plan line will be automatically de-activated / cancelled. A subscription manager must manually re-activate this line in order for billing to resume.
The following table shows an explanation of the fields in the Renewal options dialog:
Field Name | Description |
Billing period months | Read-only in this screen. This is the Sales > Billing period months configured when creating the subscription plan or from the “Details” screen. |
Period | Read-only in this screen. This is the Sales > Period type configured when creating the subscription plan or from the “Details” screen. |
Term renewal > Global start date | Filling a date in this field effectively bounds the subscription with contractual start and end dates. Enter the Global subscription start date of the contract. |
Term renewal > Fixed cycles before renewal | The number of billing cycles after which the contract expires. |
Term renewal > Global end date | Read-only field which is calculated as the date when multiplying the Billing period months field by the Fixed cycles before renewal field. |
Term renewal > Renew to self | If this flag is turned on then the master process will automatically renew the subscription plan to itself after the contract expires. The rules governing the term length after renewal can be configured in Subscription management > Setup > Auto renewal configuration. If no rules are configured the contract will renew using its existing configuration. |
Term renewal > Next subscription plan | If the Renew to self flag is turned off then it is possible to select the next subscription plan to be automatically published once the current contract term expires. The grid below shows the whole chain that is configured. This is especially useful if you build complicated chains running into the future. |
Term renewal > Contract renewal notice | If this is enabled, a renewal notice action will be generated each active line in this subscription plan. All renewal notice actions for all subscription plan lines must be firmed in order for the renewal to be processed. These are generated when the master process executes within the renewal time fence i.e. The contract’s Global end date minus the number of days specified in the Renewal notice (days) field. Automatic renewal also requires the renew to self flag to be enabled or next subscription plan to be filled in. |
Term renewal > Auto cancellation per line | Enable line level auto-cancellation. |
Term renewal > Renewal notice (in days) | Enter the renewal notice period in days. When the master process runs the first day within the time fence it will generate an action of type “Renewal approval”. This action must be firmed before the anniversary of the subscription plan line in order for the subscription plan line to be auto-prolongated. If the “Renewal approval” action is either cancelled or left in a “Not firmed” state then the subscription plan line will be automatically de-activated / cancelled. A subscription manager must manually re-activate this line in order for billing to resume. |
Auto Renewal Configuration
The rules governing the term length after renewal can be configured in Subscription management > Setup > Auto renewal configuration
This functionality covers two major scenarios:
- When a contract needs to be renewed to a different term other than the term of the first contract e.g. 3 years contracts auto-renews to 1 year
- When a contract is split into different invoice schedules e.g. a 3 year contract is split as follows:
- First year requires two invoices each covering 6 months
- Second and third year each require one invoice covering 12 months
The following table shows an explanation of the fields on subscription plan records:
Field Name | Description |
Priority | A lower number gives a higher priority to a record. Records with a higher priority are considered first. Priority can be changed using the “Move up” and “Move down” buttons. For example: Priority 1 is considered before Priority 2. |
Auto renewal level type | The level at which to apply the renewal logic. The possible values could be: Subscription plan – Renewal logic is applied to a specific subscription plan. Program type – renewal logic is applied to subscription plans linked with a program type. Customer – renewal logic is applied to subscription plans linked to a customer. Customer group – renewal logic is applied to subscription plans linked to customers in a customer group. Billing period months – renewal logic is applied to subscription plans based on their current billing period in months. All – renewal logic is applied to all subscription plans. |
Value | Enabled if the field Auto renewal level type is not set to value “All”. The value lookup depends on the selection in the Auto renewal level type field. |
Billing period months | The new value for the field Sales > Billing period months on the subscription plan being renewed. |
Purchase billing period months | The new value for the field Purchase > Billing period months on the subscription plan being renewed. |
Fixed cycles before renewal | The new value for the field Fixed cycles before renewal on the subscription plan being renewed. |
Refresh prices | If ticked, subscription plan line prices will be refreshed from base prices and trade agreements. |
For example in the screenshot below all subscription plans bound by a contractual term will automatically renew to 1 cycle of 1 year for both sales and purchasing (if applicable) because no other records exist with a higher priority.