EngageIP supports a flexible and customizable product and service catalog. A package is a description of what a customer has ordered. Packages are the entities that get assigned to a customer account and these are the entities that will bill on a given cadence based on configuration (monthly, quarterly, annually etc).
Associated with a package are services. A service represents a charge. Multiple services can be bundled into a package. The charge can be a recurring charge or a one-time charge. Recurring charges are typically triggered by provisioning calls (e.g. service activation) or service state transitions.
As an example; a service provider might want to create an offering with a smart device that is billed monthly and a one-time platform license fee that triggers when the plan is activated. In order to do this, the service provider will create two services: a device service (e.g. Smart Sensor) with a recurring charge and a license fee that triggers on activation. These services will be added to a single package “Smart Product” which is then sold to the customer.
A service is a one time or recurring item which relates to a piece of hardware (IOT sensor, device etc.) that is being sold or a service (data, voice, hosting, etc.). Administrators can add, change and delete services as well as apply any combination of services to a specified package.
A service must be active in order for it to be effective. Services can be categorized as non usage only or subscription and usage; this attribute is configured by a checkbox on the service configuration screen. A non usage service is a fee only service. If the only charges associated with a service are MRC or NRC charges, the service is a non-usage service. There are many scenarios however in which the service represents an entity that has usage associated with it.
A smart sensor for example can generate data; pricing for that service may be a combination of NRC/MRC pricing along with the data charges associated with that service. Or alternatively, the service may have fixed MRC pricing with a certain amount of free usage that comes with it such as a VOIP phone with 1000 min of airtime. In both these scenarios, the service needs to be set up as a usage based service with the appropriate usage frequency.
Administrators can associate states with services to model the properties of the entity (device or service) that the service represents. For instance, a service may represent a hardware SIM which can be defined by 5 different states: active, suspended, pre active, cancelled and purged. The system supports a default set of 4 core states that represent a service; active, canceled, prospect and suspended. All user defined states map to these core states. In the figure below, the user has defined two states canceled and purged that map to the same base status "cancelled".
A service transition is a mapping from one status to another. Service transitions can be defined between any of the predefined status types. An initial state can be defined as a transition from [New] to a predefined state; consider for example a new activation where the service transitions from New to Active. Pricing can be established for each transition to indicate a non recurring charge that would be triggered when that state transition occurs, such as a $5 charge that might occur when the service is cancelled.
A package can contain multiple services and multiple quantities of a single service. For instance, package A can be composed of 1 instance of service A, 10 instances of service B and 4 instances of service C. When a service is added to a package at the catalog level, the administrator can configure the Minimum Instances, Maximum Instances and Default Instances. The default is what an account gets when a package is assigned to it. The user can override it at the account level with another number as long as Minimum instances <= override <= Maximum instances.
A package with a default instance count of '0' is considered to be an optional service. This means that the service is not bundled into the package by default but can be "optionally" added in at the account level.
A set of services can be grouped together to create a package. Attributes can be defined at the package level to define billing options, dates and the currencies that the package and its associated services will be offered in.
When configuring a package, a service provider can specify the services that are to be bundled into that package. The package configuration screen provides a summary view of the services that were added to the package. Multiple instances of a given service can be added to a package. For instance, a service provider might define a SIM card service at the catalog and assign 100 SIM cards to a given account package.
By default, a single instance of the service is added to the package; the operator is able to configure the minimum and maximum allowed instances. Any instances of that service above the minimum instance are considered optional. A configuration like this, allows the service provider to ensure that at least one service always comes with that package and make additional instances optional.
If the default instance is set to 0, the service is considered an optional service. This allows a service provider to offer additional value added services that are not bundled initially with the package at the catalog level but can be added in optionally at the account level. A good example of this could be a professional services plan that is only added in as a value add to customers who request it.
It is not uncommon for service providers to offer the same package with different billing frequencies. For example, a dial up package can be offered on a monthly and annual subscription with discounted pricing offered to those customers choosing the annual subscription. EngageIP provides facilities for creating multiple instances of the package with different subscription frequencies. The operator can configure catalog level pricing for each package service offering.
Revenue recognition provides a meaningful and consistent measurement of business performance. In recurring revenue, it is important to match the revenue and the costs incurred to generate that revenue in the same period, regardless of when the seller's invoice is issued or the customer's payment is received.
EngageIP can provide a representation of account activity—primarily financial transaction activity—so that accounting systems have visibility into the amount of revenue that should be regarded as deferrable, and the amount of revenue that should be regarded as earned in a given period.
Revenue recognition allows companies to recognize the monetary value of a contract over a period of time as the revenue is realized and earned (when goods are delivered or services rendered). Businesses can differentiate and report on several types of revenue, including:
For example, a service provider might charge their customers several upfront fees: Platform License Fee, and Prepaid Annual plans service fees (Packages billed for 12 months at a time). While these fees are often invoiced at the start of the plan period the revenue is considered unearned as the services have not yet been consumed. This unearned revenue needs to be amortized over the duration of the plan. The figure below illustrates how a $12 prepayment can be recognized from a revenue perspective. While the fees have been paid up front, the $12 prepayment is recognized over the course of the year as $1 monthly amounts.
There are multiple ways of recognizing revenue depending on the services being offered, the accounting rules in that jurisdiction and the internal needs of the business. Service providers that offer bucketed usage need to handle additional complications in their calculations; only the amount that is used in a given accounting period by that bucket can be recognized as revenue. EngageIP can be easily extended to accommodate any revenue recognition rule. LogiSense supports precanned reports that report on recognized revenue. Custom reports can also be created based on an individual customers specific finance needs.