Skip to content

Latest commit

 

History

History
96 lines (80 loc) · 4.99 KB

GLOSSARY.md

File metadata and controls

96 lines (80 loc) · 4.99 KB

Glossary

  • 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

  • Hypothesis is an outcome of performing data analytics, or (unlikely but possible) product of imagination.

Experiment

  • Experiment is an exercise to evaluate a hypothesis.
  • Experiment is performed by defining and exercising one or more Offers.

Offer

  • Offer aims to target a Segment of customers with the Product(s).
  • Thus Offer is composition of Segment and Product(s).

Segment

  • 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.

Product

  • 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).

Product Class

  • 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 as bytes.
    • Product Class - LIMITED_VALIDITY_DATA has properties as bytes, duration. Here, unused data is lost after end_date, which is calculated based on purchase_date and duration.
    • Product Class - FREE_NETFLIX_FOR_PERIOD has properties as start_date, end_date. Here, Netflix is part of SKU and is not an explicitly defined property.

Resource

  • 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

  • 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.

Topup operation

  • 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 or Topup Voucher. Thus, in case of Topup voucher, actual Topup operation happens when Voucher is claimed and not when it is purchased.

Region

  • Region can be:
    • Country
    • Part of a country
    • Set of multiple countries