- This documents lists the terminologies used for this project.
- The objective of doing so, is to define a jargon to assist internal communication.
- The document may not be just limited to definition, but would also try to define user-story to compliment and to give context to the explanation.
- The entries are not sorted alphabetically, but instead in ordered by dependency or by composition.
- Hypothesis is an outcome of performing data analytics, or (unlikely but possible) product of imagination.
- Experiment is an exercise to evaluate a hypothesis.
- Experiment is performed by defining and exercising one or more Offers.
- Offer aims to target a Segment of customers with the Product(s).
- Thus Offer is composition of Segment and Product(s).
- Segment of customers is a improper subset of all customers.
- Segment is defined as a condition which will be true for those the set of customers.
- Outcome of applying a Segment filter is a list of customers.
- So, (unlikely but possible) segment may directly be a list of customers without an explicit filter condition.
- Customers may join/leave segment dynamically.
- Schedule/frequency of Segment membership is upto technical feasibility.
- If the Segment membership is updated during its associated with an Active Offer, then the Product(s) offering to customers belonging to that segment should correspondingly updated.
- Segment can exist without Offer.
- Internally, Product is a complex & mutable concept, but is immutable once defined.
- When exposed externally, most of the aspects of Product will be hidden.
- Externally, Product has only 3 primary attributes:
- SKU - Unique ID representing an immutable product.
- Price - <Amount,Currency>
- Product class
- Keeping just these attributes allows to keep concept of Product very generic.
- Mutations in this concept of Product will then not impact the API definition.
- But externally, additional attributes of Product might be needed, most probably for presentation.
- These non-primary attributes of Product are considered metadata, and schema for these attributes is managed via Product Class (defined further down below).
- Similar Products belong to a Product class.
- This is no hierarchy in Product classes (as of now).
- Product class acts as a template to define Products with varying parameters for the template.
- Product Class has Properties.
- Some or all of these Properties might be parameters for the template.
- Examples:
- Product Class -
SIMPLE_DATA
has properties asbytes
. - Product Class -
LIMITED_VALIDITY_DATA
has properties asbytes
,duration
. Here, unused data is lost afterend_date
, which is calculated based onpurchase_date
andduration
. - Product Class -
FREE_NETFLIX_FOR_PERIOD
has properties asstart_date
,end_date
. Here,Netflix
is part of SKU and is not an explicitly defined property.
- Product Class -
- Resource is the commodity which is consumed by customer.
- It is a simple enum having values such as:
- Data
- Voice
- SMS
- MMS
- Each resource has (one or more) unit of measurements, such as
Resource | Unit | Alternate Unit |
---|---|---|
Data | Bytes | Time Duration |
Amount | Currency | - |
Voice | Time Duration | Bytes |
SMS | Unit | Size |
MMS | Unit | Size |
- Even for Data Only operator, Amount resource might be needed to account for Roaming Data consumption.
- Resource Bundle is like an account where the Resource is credited or debited.
- All of the Resource Bundle might not be exposed to customer.
- This account need not be positive balanced, meaning customer consumption leading to negative balance may be permitted.
- In case of Prepaid, the account is first credited by using Topup operation, and then debited from due to consumption.
- Based on Resource Consumption Context, Resource may be consumed from other type of Resource Bundle.
- E.g. consumption of Roaming data may be debited from Amount Resource Bundle at a defined conversion
Rate
.
- A Topup operation is a purchase of (one or more) topup product(s), which in turn results in Credit to (one or more) Resource Bundles.
- It is subtype of Purchase operation, which include purchase of other products, such as
SIM card
orTopup Voucher
. Thus, in case ofTopup voucher
, actual Topup operation happens when Voucher is claimed and not when it is purchased.
- Region can be:
- Country
- Part of a country
- Set of multiple countries