Most Powerful Open Source ERP

Subscription Service

We discuss here one specific case: subscriptions. Our goal is to show how to apply the 5 class ERP5 model to the case of subscriptions.
  • Last Update:2016-05-16
  • Version:001
  • Language:en

We discuss here one specific case: subscriptions. Our goal is to show how to apply the 5 class ERP5 model to the case of subscriptions.

Table of Contents

In some businesses, suppliers sell recurring services for which they do not know in advance the price, the quantity or the time range.

What is a subscription?

Here are some examples of subscription:

  • subscription to a training service which provides 4h hours of training every month to a group of 3 people
  • subscription to an optical fiber internet connection at 100 Mbps, charged on a montly basis at 50 EUR / month independently of the trafic
  • subscription to a mobile phone network, charged on a monthly basis at 10 EUR / month plus .01 EUR / min of phone conversation
  • subscription to an online payment service, charged on a monthly basis at 5 EUR / month + 1% of each transaction.
  • subscription to t-shirt service, charged on a yearly basis, with delivery of a new t-shirt every month.
  • free subscription to an online backup application, with 10 MB free disk space provided and 0.1 EUR / extra MB

What is common to all subscription is:

  • it starts a given day, which is known at the signature of the subscription contract (or the sales contract if a bigger project which contains many subscriptions)
  • it stops some day, but nobody knows when until it stops
  • it has some unique identifiers, which make it different from another subscription related to the same service
  • services or goods are provided in quantities which may be unknown in advance
  • provision of services or goods is reported on a regular basis (ex. monthly)
  • invoicing of services or goods is handled on a regular basis (ex. yearly), which can be different from the reporting frequency of service provision
  • price of the goods or services can be different when it is provided from what it used to be when it was ordered

Let us now analyse what a subscription is in ERP5 model Is it:

  • a resource? No, because each client subscription must be identified with a unique reference. However, individual subscriptions relate to a resource which defines the nature of the subscription service which will be provided or invoiced (ex. NTT Fiber Plus optical Max Connection)
  • a movement? No, because a single movement may actually provide multiple subscriptions. (ex. quantity=3 unit of resource=NTT Fiber Plus optical Max Connection). And a single subscription may turn into multiple movements of different services (ex. provision of data storage and phone minutes)
  • a node? No, because source / destination in a movement related to a subscription are already used to define which Person or Organisation is providing the service or products. However, using an additional category (ex. source_subscription / destination_subscription) could make sense, just as we do with projects.
  • a path? Yes, because subscription defines future possible movements and possible sourcing of a product or service. Yes, because a path defines future pricing and pricing traceability. No, because path are not intended to hold specific details of the instance of a product or service.
  • an item? Yes, because a subscription holds client specific details (ex. phone number, password). Yes, because a subscription (ex. subscription ID 203942) represents the instanciation of a generic subscription service (ex. NTT Fiber Plus optical Max Connection). Yes, because items provide full traceability over a collection of movements (order lines, packing list lines, invoice lines, etc.). Yes, because items can be splitted in subitems which can be used to keep a track of each individual delivery belonging to the same subscription.

The conclusion is that:

  • a subscription is a subsclass of Item
  • it could be useful sometimes in addition to consider subscriptions a subsclass of Path

Ordering subscriptions

Subscriptions can be ordered together with other products or services. Let us consider the case of the sales of a large network project.

In the pre-sales phase, we create a large Sales Order which contains:

  • one shot products (ex. 10 routers at 1000 EUR) shipped in march
  • one shot services (ex. 10 days of initial implementation of routing rules) performed in april
  • subscription to ADSL (ex. 5 Orange ADSL subscriptions at 30 EUR / month) starting in april
  • subscription to Optical Fiber (ex. 5 NTT subscriptions at 50 EUR / month) starting in april
  • support & maintenance (ex. 10 support & maintenance subscriptions at 1000 EUR / year) starting in september

This offer can be used to show to the client a proforma which explains:

  • how much will be invested upfront
  • how much must be budgetted every month or every year

The sales process goes just as usual with ERP5. The day the customer acknowledges the order, the Sale Order object is confirmed in ERP5. Packing lists are then generated.

At this stage, 3 options are possible:

  • automatically create a new Item for each sale packing line which relates to a subscription service
    • (ex. create a new maintenance service subscription)
  • allow the user to select an existing Item or create a new Item for each sale packing list line
    • (ex. reuse an existing phone number)
  • combine the 2. This means creating a new subscription item (ex. network subscription) and reusing an existing
    • hardware item (ex. phone number)

The last option is the most flexible but makes the user interface more complex.

From that point, subscription Items are used to drive the simulation (in a way which still needs to be defined and which could be similar to what we do for immobilisations). Builders build new sales packing list and invoices.

The client can terminate any subscription at any time. Terminating a subscription is achieved by changing the workflow state of the subscription item. It is therefore possible to start with 10 subscriptions and end with only 4 after 2 years.

4 hours of training every month

The case of training subscriptions is interesting. Let us consider the subscription to a monthly training of 3 people during 4 hours.

Solution 1:

  • a single sales order (resource = training subscription)
  • one Item which represents the training subscription
  • one sales packing list (resource = python training) every month. start_date and stop_date define when the training session happens
  • one subitem of the subscription item which keeps properties of a specific training session (ex. what was done, results, etc.)
  • one sales invoice every month (resource = training subscription). start_date and stop_date refer to the currnet month

Solution 2:

  • a single sales order (resource = training subscription)
  • one Item which represents the training subscription
  • one sales packing list (resource = training subscription) every month. start_date and stop_date refer to the current month
  • one subitem of the subscription item which keeps properties of a specific training session (ex. what was done, results, when it happened, etc.)
  • one sales invoice every month (resource = training subscription). start_date and stop_date refer to the current month

Other solutions are possible.

What about ?

To be completed with various details and answers to questions defined in Open Order

Trading subscriptions

The of Itel for subscriptions is very interesting because it is possible to implement trade on subscriptions. A given company may order a subscription to a given service. If it is too costly to end the subscription, a solution consists of selling the subscription to another company (ie. changing the company which owns the subscription).

This case must be analysed more. Being able to trade subscriptions would be the best proof of consistency of the model.

Related concepts

Just like subscriptions, the following concepts are also known as Open Order, although they are all different.

  • Repeating Order: an order which is delivered in multiple times (ex. every month) rather than at once. Instead of defining a quantity of 20 at once, we process a quantity of 20 over the next 10 months, delivered every month.
  • Recurring Order: an order which creates a copy of itself after its packing lists have been delivered and at a given frequency.
  • Frame Order: an order which defines the common conditions for a collection of related orders. For example, in automotive industry, car makers sign frame orders for a given part (ex. a spring) and send planned future orders by EDI as part of that frame order

Subscriptions are also similar to immobilisations in the sense that they generate deliveries (ex. packing lists, invoices) which all relate to the same Item.

Related Articles