Fact tables

Overview

Understanding Data Storage Architecture and Usage

This section aims to provide a comprehensive understanding of the architecture of the data storage system within our databases and its usage across various products.
Our data storage and retrieval system utilizes Databricks and Data Lake/ Data Warehouse.

Databricks
Databricks offers a comprehensive set of tools that make it easier to bring data from different sources together to one platform. With this, we can organize the data, store it securely, share it, analyse it to find insights, and create models to predict future trends.
Databricks operates within a Spark/Hive environment. In the Spark/Hive environment, Spark is often used for data processing and analytics tasks that require fast, in-memory computation. On the other hand, Hive serves as a data warehouse solution for managing structured data and executing SQL queries on large datasets stored in distributed storage systems. Together, they form a robust ecosystem for processing, querying, and analysing big data.

Data Lake/ Data Warehouse
A data lake is a large and centralized repository that stores vast amounts of structured, semi-structured, and unstructured data in its raw form. Data lake allows data to be stored as-is, without any prior formatting or organization. This flexibility enables organizations to store diverse types of data from various sources.

  1. Storing Existing Data Components
    Our data storage system is structured in a STAR Schema Layout, comprising facts, dimensions, and summaries. Additionally, we operate within a Multi-Tenant Environment. In the Multi-Tenant Environment, multiple users or entities (tenants) share the same infrastructure or platform. However, within this shared environment, each tenant's data is kept separate and isolated from others at both the storage and SQL level. Each tenant has its own designated storage space and SQL processing capabilities, ensuring that their data remains private and secure from other tenants' data. This isolation helps maintain data integrity, confidentiality, and security within the shared environment.

Star Schema Layout
In a star schema, there are typically two types of tables: fact tables and dimension tables. For example, A customer buys a product at a particular store. Here, sales transaction represents the fact and attributes related to this sale, such as product and customer information represent the dimension. So a single facts table is linked to multiple dimensions tables.


  • Fact Tables:
    These tables contain quantitative data, typically numerical values that represent the measurements or metrics of a business process. Sales Transactions Fact Table in the current example (of a customer buying a product) will have columns such as transaction ID, product ID, customer ID, sale amount, sale date, etc. Also, each row represents a single sale transaction, with references to the associated product and customer.
  • Dimension Tables:
    Dimension tables contain descriptive attributes or characteristics of the data in the fact table. These attributes provide context for analysing the data in the fact table. In the current example, Dimension tables would contain the following details:
Product Dimension TableCustomer Dimension TableTime Dimension Table
Contains details about the products sold.Contains details about the customers.Contains information about time-related attributes.
Columns: product ID, product name, category, brand, price, etc.Columns: customer ID, name, address, email, etc.Columns: date, day of week, month, quarter, year, etc.
  1. Utilization of Data
    The data stored in the data warehouse is then utilized for various purposes. The data utilization process involves issuing SQL queries to interact with the stored data, processing these queries within a data warehousing environment, and creating tables useful for further analysis.

Given below are a few examples where the extracted data is utilized.

  • Creating Reports
    The data is utilized while creating reports for the brands. Reports are primarily comprised of charts. Two major components are used while creating charts. They are Key Performance Indicators (KPIs) and Dimensions.
    • KPIs are the numerical measurements or metrics used to evaluate the performance or success of a particular aspect of a business. They are created using DSL/JSON, then converted to SQL.
    • Dimensions are like labels or categories that help organize data. They act as filters, letting us group data based on different categories, like time periods or types of products.
      Example - You can analyse sales data for a particular zone. So sales information will be the KPI and store information will be the dimension. This analysis will give you insights to how the brand is performing in a particular zone. Also, you can add more dimensions like product type and date, to get a more comprehensive business analysis.
  • Audience Grouping
    Using Audience Manager, you can create different audience groups based on specific criteria. Creating audience groups helps target the right customer at the right time, making campaigns more effective. You can create and manage groups separately based on information like behaviour, interests, demographic details, transactions, and more. For instance, you can get high spending customers that did not visit your stores for the last three months. Example: You can see the product performance (based on product category) for an audience group (high-value customers) for a specific time duration e.g.. January 2023 and January 2024. This will give a comparison of the audience behaviour with respect to time.
  • Exporting
    We can export the datasets in raw format. While exporting, it does not group data by dimensions, but instead provides raw data for additional visualizations.
    You can export the data using Export Templates. These templates consist of a list of queries that prohibit fact-to-fact joins. Fact-to-fact joining refers to the process of combining or merging two sets of data that are both at the same level of detail and represent different measures or facts. It involves joining two fact tables together directly, without any dimensions acting as intermediary layers. This type of joining is often avoided in data modelling and analysis because it can lead to redundant or inaccurate results and can be computationally exhaustive. Instead, data is typically joined through dimension tables, which act as intermediary layers between fact tables and help to maintain data integrity and accuracy. So the export templates generate SQL queries that retrieve data from Databricks and export it. This feature offers flexibility, allowing users to specify conditions such as date range and frequency. Example: Various types of data, such as customer information, transaction details, coupon usage, loyalty points, footfall data (the number of people visiting a physical location), and information related to marketing campaigns, can be exported. Once exported, this data can be analysed and processed by users or analysts at their end.
  1. Addition of New Data
    Suppose, you want to introduce a new operational model, such as badges. Badges are like virtual stickers given to customers in loyalty programs to reward them for doing certain things or reaching goals. They make the program more interesting and give customers a sense of pride and achievement, encouraging them to keep participating and stay engaged.
    So when badges model is introduced, a new table is generated following the star schema structure. This table incorporates new facts and dimensions relevant to the badges data. Once the onboarding process (i.e, data ingestion) is done, we can leverage this new dataset to create Key Performance Indicators (KPIs) for analysis and monitoring purposes. This process ensures that the newly acquired data is seamlessly integrated into our existing data architecture, enabling us to derive valuable insights from it.

Example of Badges Facts and Dimensions Tables:
For Badges, there are 3 facts tables linked to 5 dimension tables.
Badges Facts Tables are:
Badges Earn
Badges Issued and
Badges Earned Benefits

E.g. Badges_earn Facts Table Screenshot (sample)

Dimension Tables that are linked to Badges Facts Table are:
Badge meta
Badges owner type
Coupon series
Users
Date
E.g. Badge_meta Dimension Table Screenshot (sample)



Points Fact Table

Column name
(Type)
DescriptionAvailable for export in points template?
bill_id
(String)
Loyalty log id or bill id is a unique identifier for a transaction for which the points are awarded or redeemed.
It is populated ( primarily for transactional point award entries)from PA, PAL, PALP, PABP tables on the source side. This id has reference to the particular bill where points are awarded or redeemed.

note:
PA - Points Awarded
PAL - Points Awarded Line Items
PALP-Points Awarded Lineitem Promotion
PABP -Points Awarded Bill Promotion

Linked table on EI : NA
Yes

Measure name: Bill_Id
bill_number
(String)
The system-generated bill number for which the points are awarded or redeemed.

bill_number is populated if there is a valid bill_id populated in source loyalty side or else empty or null is populated as bill_number

Linked table on EI : NA
Yes.

Measure name: Bill_Number
bill_lineitem_id
[Type : String]
The lineitem id against which points have been allocated .

Linked table on EI : NA
Yes

Measure: Bill_Lineitem_Id
awarded_ref_id
(String)
This is the primary key of the PA (Points Awarded) table maintained at the source side.

A new entry is created for every single point award event.

Note: This is key column - can be used to track evolution of points balance against every PA entry, helping data operators gain insights into promotion usage and attribute sourcing of points to appropriate programs as applicable.

Linked table on EI : NA
Yes

Measure: Awarded_Ref_Id
allocated_points
(String)
This is points awarded on a particular event. Can be on bill level, lineitem level or customer level

Linked table on EI : NA
Yes

Measure name: Allocated_Points
deducted_points
(String)
Number of redeemed, returned, or expired points which are deducted from the total points

Linked table on EI : NA
Yes

Measure: Deducted_Points
deduction_currency_value
[Type : String]
Holds the currency value of the deducted points.

Linked table on EI : NA
deduction_summary_id
(String)
Deducted points related to a single event are grouped using a deduction summary ID for analysis.

This is the primary key of the PRS (Point Redemption Summary) table.
This will be used as the key to connect PointFact to the PRSFact (new) in order to pick the right
updated value for Redemption_Bill_Number. All entries corresponding to a given redemption or
reversal entry will have corresponding same deduction_summary_id.

Linked table on EI : points_redemption_summary
Yes

Deduction_Summary_Id
dim_awarded_date_id
(Date)
It is the date when points are awarded to the customer. Further details of the date can be obtained from the date dimension table.
dim_awarded_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
dim_awarded_expiry_date_id
(Date)
It is the the date when the points expired if left unused. Further details of the date can be obtained from the date dimension table. dim_awarded_expiry_date_id would be stored in the 'date_id' column of the date dimension table.


Linked table on EI : date
dim_awarded_zone_till_idCaptures the till_id of the zone where points were awarded.

Further details of the till can be obtained from the zone_till dimension table.dim_awarded_zone_till_id would be stored in the 'till_id' column of the zone_till dimension table.

Linked table on EI : zone_till
dim_category_id
(String)
This id has reference to points_category table. It tells the type of points which are awarded/deducted.

Further details of the category can be obtained from the points_category dimension table.dim_category_id would be be stored in the 'category_id' column of the points_category dimension table.


Linked table on EI : points_category
dim_deduction_type_id
(String)
Linked to deduction_type table , it gives us information about the type of deduction. The dim_deduction_type_id refers to the id column of the deduction_type table

Linked table on EI : deduction_type
Yes

Dimension Name:deduction_type__Deduction_Type
dim_event_date_id
(Date)
Measures the date when the event has occured.

Further details of the date can be obtained from the date dimension table.dim_event_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
dim_event_program_id
(String)
Linked to program table , it gives us information about the loyalty program for which the data is shown

Corresponds to the program_id column of the program table

Linked table on EI : program
dim_event_time_id
(String)
Measures the time stamp when the event has occured , it captures upto minutes and seconds is not captured.

Corresponds to the time_id column of the time table

Linked table on EI : time
dim_event_user_idUser identifier , this is an integer set internally by capillary.

Linked table on EI : NA
dim_event_zone_till_idCaptures the till_id of a store, where the event has occured.

Further details of the till can be obtained from the zone_till dimension table.dim_awarded_zone_till_id would be stored in the 'till_id' column of the zone_till dimension table.


Linked table on EI : zone_till
dim_expiry_date_id
(Date)
Date when the allocated points is supposed to expire if unused. Further details of the date can be obtained from the date dimension table.dim_awarded_date_id would be stored in the 'date_id' column of the date dimension table.


Linked table on EI : date
dim_expiry_time_id
(Date)
Time when the allocated points is supposed to expire if unused.
Corresponds to the time_id column of the time table

Linked table on EI : time
dim_latest_updated_date_id
(Date)
Date when the records were last updated.

Linked table on EI : date
dim_latest_updated_time_id
(String)
Time when the records were last updated
Corresponds to the time_id column of the time table

Linked table on EI : time
dim_points_promotion_id
(String)
Refers to the id column of points_promotions table , contains the promotion name against which the points were allocated/redeemed/expired (the event type)

Linked table on EI : points_promotions table
Yes

Dimension Name:points_promotion__Points_Promotion_Type
redemption_bill_id
(String)
Loyalty log ID or bill ID for which the points are redeemed. The billing ID is generated by Capillary's system.

Bill_Id coming from PRS fact table

Linked table on EI : NA
Yes

Redemption_Bill_Id
redemption_bill_number
(String)
Bill number for which the points are redeemed. The bill number is passed from the source data. If the source data doesn't have any value for the redemption bill number then the system shows 'Not Captured'.

Linked table on EI : NA
Yes

Redemption_Bill_Number
year
(String)
Year of the data/event occurence

Linked table on EI : NA
dim_points_event_type_id
(String)
Refer to points_event_type table , specifies if the poitns were awarded or deducted

Linked table on EI : points_event_type
Yes

Dimension :points_event_type__Points_Event_Type
dim_points_awarded_type_id
(String)
Refer to points_awarded_type table. It specifies the type of points awarded

Linked table on EI : points_awarded_type
Yes

Dimension :points_awarded_type__Points_Awarded_Type
auto_update_time_pa
(String)
Date and time when the Points Awarded table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pa
auto_update_time_pabp
(String)
Date and time when the Points Awarded Bill Promotion table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pabp
auto_update_time_pacp
(String)
Date and time when the Points Awarded Customer Promotion table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pacp
auto_update_time_pal
(String)
Date and time when the Points Awarded Lineitem table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pal
auto_update_time_palp
(String)
Date and time when the Points Awarded Lineitem Promotion table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Palp
auto_update_time_pd
(String)
Date and time when the Points Deductions table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pd
event_id
(String)
It is the id of the event occurence and is populated from PA, PAL, PALP, PABP, PACP and PD tables on the source side.

note:
PA - Points Awarded
PAL - Points Awarded Line Items
PALP-Points Awarded Lineitem Promotion
PABP -Points Awarded Bill Promotion
PACP -Points Awarded customer Promotion
PD - Points Deducted


Linked table on EI : NA
Yes

Event_Id
external_reference_number
(String)
mapped to external_reference_number column of PRS table. This is unique per org. It comes via the API Payload.

Linked table on EI : NA
Yes

External_Reference_Number
deducted_ref_id
(BIGINT)
original redemption's / transfer's deduction_id againtst which the reversal has occurred

Linked table on EI : NA
Yes

Deducted_Ref_Id
dim_event_log_id
(String)
event_log_id column of the source PA / PD tables. This is unique per event. This is the id for event_log table

Linked table on EI : NA
Yes

Dimension: Dim_Event_Log_Id
dim_awarded_program_id
(String)
It is the Loyalty program id. This is mapped to multiple source tables - PAs, PD, PRS etc

Linked table on EI : NA
dim_old_category_id
(String)
It refers to the Point category Id column of PA tables. This id comes from points_category source table, which tells whether the points category is MAIN, DELAYED ACCRUAL, TRIGGER BASED or TRACKERs

Linked table on EI : NA
redemption_id
(String)
A unique 6 character long string for each redemption / reversal request. It is auto generated by the Loyalty System

Linked table on EI : NA
Yes

Redemption_Id
dim_redemption_program_id
(String)
It is the Loyalty program id. This is mapped to multiple source tables - PAs, PD, PRS etc Linked table on EI : NAColumn name
(type)
DescriptionAvailable for export?
*********
bill_id
(String)
Loyalty log id or bill id is a unique identifier for a transaction for which the points are awarded or redeemed.

It is populated ( primarily for transactional point award entries)from PA, PAL, PALP, PABP tables on the source side. This id has reference to the particular bill where points are awarded or redeemed.

note:
PA - Points Awarded
PAL - Points Awarded Line Items
PALP-Points Awarded Lineitem Promotion
PABP -Points Awarded Bill Promotion

Linked table on EI : NA
Yes

Bill_Id
bill_number
(String)
The system-generated bill number for which the points are awarded or redeemed.

bill_number is populated if there is a valid bill_id populated in source loyalty side or else empty or null is populated as bill_number

Linked table on EI : NA
Yes.

Bill_Number
bill_lineitem_id
(String)
The lineitem id against which points have been allocated .

Linked table on EI : NA
Yes

Bill_Lineitem_Id
awarded_ref_id
(String)
This is the primary key of the PA (Points Awarded) table maintained at the source side.

A new entry is created for every single point award event.

Note: This is key column - can be used to track evolution of points balance against every PA entry, helping data operators gain insights into promotion usage and attribute sourcing of points to appropriate programs as applicable.

Linked table on EI : NA
Yes

Awarded_Ref_Id
allocated_points
(String)
This is points awarded on a particular event. Can be on bill level, lineitem level or customer level

Linked table on EI : NA
Yes

Allocated_Points
deducted_points
(String)
Number of redeemed, returned, or expired points which are deducted from the total points

Linked table on EI : NA
Yes

Deducted_Points
deduction_currency_value
(String)
Holds the currency value of the deducted points.

Linked table on EI : NA
deduction_summary_id
(String)
Deducted points related to a single event are grouped using a deduction summary ID for analysis.

This is the primary key of the PRS (Point Redemption Summary) table.
This will be used as the key to connect PointFact to the PRSFact (new) in order to pick the right
updated value for Redemption_Bill_Number. All entries corresponding to a given redemption or
reversal entry will have corresponding same deduction_summary_id.

Linked table on EI : points_redemption_summary
Yes

Deduction_Summary_Id
dim_awarded_date_id
(Date)
It is the date when points are awarded to the customer. Further details of the date can be obtained from the date dimension table.
dim_awarded_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
dim_awarded_expiry_date_id
(Date)
It is the the date when the points expired if left unused. Further details of the date can be obtained from the date dimension table. dim_awarded_expiry_date_id would be stored in the 'date_id' column of the date dimension table.


Linked table on EI : date
dim_awarded_zone_till_idCaptures the till_id of the zone where points were awarded.

Further details of the till can be obtained from the zone_till dimension table.dim_awarded_zone_till_id would be stored in the 'till_id' column of the zone_till dimension table.

Linked table on EI : zone_till
dim_category_id
(String)
This id has reference to points_category table. It tells the type of points which are awarded/deducted.

Further details of the category can be obtained from the points_category dimension table.dim_category_id would be be stored in the 'category_id' column of the points_category dimension table.


Linked table on EI : points_category
dim_deduction_type_id
(String)
Linked to deduction_type table , it gives us information about the type of deduction. The dim_deduction_type_id refers to the id column of the deduction_type table

Linked table on EI : deduction_type
Yes

Dimension Name:deduction_type__Deduction_Type
dim_event_date_id
(Date)
Measures the date when the event has occured.

Further details of the date can be obtained from the date dimension table.dim_event_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
dim_event_program_id
(String)
Linked to program table , it gives us information about the loyalty program for which the data is shown

Corresponds to the program_id column of the program table

Linked table on EI : program
dim_event_time_id
(String)
Measures the time stamp when the event has occured , it captures upto minutes and seconds is not captured.

Corresponds to the time_id column of the time table

Linked table on EI : time
dim_event_user_idUser identifier , this is an integer set internally by capillary.

Linked table on EI : NA
dim_event_zone_till_idCaptures the till_id of a store, where the event has occured.

Further details of the till can be obtained from the zone_till dimension table.dim_awarded_zone_till_id would be stored in the 'till_id' column of the zone_till dimension table.


Linked table on EI : zone_till
dim_expiry_date_id
(Date)
Date when the allocated points is supposed to expire if unused. Further details of the date can be obtained from the date dimension table.dim_awarded_date_id would be stored in the 'date_id' column of the date dimension table.


Linked table on EI : date
dim_expiry_time_id
(Date)
Time when the allocated points is supposed to expire if unused.
Corresponds to the time_id column of the time table

Linked table on EI : time
dim_latest_updated_date_id
(Date)
Date when the records were last updated.

Linked table on EI : date
dim_latest_updated_time_id
(String)
Time when the records were last updated
Corresponds to the time_id column of the time table

Linked table on EI : time
dim_points_promotion_id
(String)
Refers to the id column of points_promotions table , contains the promotion name against which the points were allocated/redeemed/expired (the event type)

Linked table on EI : points_promotions table
Yes

Dimension Name:points_promotion__Points_Promotion_Type
redemption_bill_id
(String)
Loyalty log ID or bill ID for which the points are redeemed. The billing ID is generated by Capillary's system.

Bill_Id coming from PRS fact table

Linked table on EI : NA
Yes

Redemption_Bill_Id
redemption_bill_number
(String)
Bill number for which the points are redeemed. The bill number is passed from the source data. If the source data doesn't have any value for the redemption bill number then the system shows 'Not Captured'.

Linked table on EI : NA
Yes

Redemption_Bill_Number
year
(String)
Year of the data/event occurence

Linked table on EI : NA
dim_points_event_type_id
(String)
Refer to points_event_type table , specifies if the poitns were awarded or deducted

Linked table on EI : points_event_type
Yes

Dimension Name :points_event_type__Points_Event_Type
dim_points_awarded_type_id
(String)
Refer to points_awarded_type table. It specifies the type of points awarded

Linked table on EI : points_awarded_type
Yes

Dimension Name :points_awarded_type__Points_Awarded_Type
auto_update_time_pa
(String)
Date and time when the Points Awarded table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pa
auto_update_time_pabp
(String)
Date and time when the Points Awarded Bill Promotion table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pabp
auto_update_time_pacp
(String)
Date and time when the Points Awarded Customer Promotion table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pacp
auto_update_time_pal
(String)
Date and time when the Points Awarded Lineitem table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pal
auto_update_time_palp
(String)
Date and time when the Points Awarded Lineitem Promotion table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Palp
auto_update_time_pd
(String)
Date and time when the Points Deductions table is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Auto_Update_Time_Pd
event_id
(String)
It is the id of the event occurence and is populated from PA, PAL, PALP, PABP, PACP and PD tables on the source side.

note:
PA - Points Awarded
PAL - Points Awarded Line Items
PALP-Points Awarded Lineitem Promotion
PABP -Points Awarded Bill Promotion
PACP -Points Awarded customer Promotion
PD - Points Deducted


Linked table on EI : NA
Yes

Event_Id
external_reference_number
(String)
mapped to external_reference_number column of PRS table. This is unique per org. It comes via the API Payload.

Linked table on EI : NA
Yes

External_Reference_Number
deducted_ref_id
[Type: BIGINT]
original redemption's / transfer's deduction_id againtst which the reversal has occurred

Linked table on EI : NA
Yes

Deducted_Ref_Id
dim_event_log_id
(String)
event_log_id column of the source PA / PD tables. This is unique per event. This is the id for event_log table

Linked table on EI : NA
Yes

Dimension Name :Dim_Event_Log_Id
dim_awarded_program_id
(String)
It is the Loyalty program id. This is mapped to multiple source tables - PAs, PD, PRS etc

Linked table on EI : NA
dim_old_category_id
(String)
It refers to the Point category Id column of PA tables. This id comes from points_category source table, which tells whether the points category is MAIN, DELAYED ACCRUAL, TRIGGER BASED or TRACKERs

Linked table on EI : NA
redemption_id
(String)
A unique 6 character long string for each redemption / reversal request. It is auto generated by the Loyalty System

Linked table on EI : NA
Yes

Redemption_Id
dim_redemption_program_id
(String)
It is the Loyalty program id. This is mapped to multiple source tables - PAs, PD, PRS etc Linked table on EI : NA

Customer Point Summary

Column name
(type)
DescriptionAvailable for export
[CPS template]
auto_update_time_ce
(Integer)
Date and time when the customer enrollment table is recently updated (Unix timestamp)


Linked table on EI : NA
auto_update_time_cps
(Integer)
Date and time when the customer point summary table is recently updated (Unix timestamp)

Linked table on EI : NA
customer_enrollment_id
(Integer)
Unique id for customer enrollment

Linked table on EI : NA
Yes

Measure Name : Customer_Enrollment_Id
dim_customer_slab_id
(Integer)
Contains the current slab name of the customer.

Linked table on EI : customer_slab
Yes

Dimension Name : customer_slab__slab_name
dim_event_date_id
(Integer)
Captures the date when the event has occured.
Further details of the date can be obtained from the date dimension table.dim_event_date_id would be stored in the 'date_id' column of the date dimension table

Linked table on EI : date
Yes

Dimension Name : Date__date
dim_event_program_id
(Integer)
Program name for which the customer tier updated

Linked table on EI : program
Yes

Dimension Name : Event_Program__program_name
dim_event_user_id
(Integer)
Unique user identifier set internally by capillary

Linked table on EI : users
Yes

Dimension Name : User__user_id
dim_event_zone_till_id
(Integer)
"Captures the till_id of the zone where event occured

Further details of the till can be obtained from the zone_till dimension table.dim_awarded_zone_till_id would be stored in the 'till_id' column of the zone_till dimension table.

Linked table on EI : zone_till
dim_last_tier_date_change_id
(Integer)
Measures the date when the customer tier has changed

Further details of the date can be obtained from the date dimension table.dim_last_tier_date_change_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
dim_latest_updated_date_id
(Integer)
Measures the date when the records were last updated.

Further details of the date can be obtained from the date dimension table.dim_latest_updated_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
Yes

DimensionName : latest_updated_date__date
dim_latest_updated_time_id
(Integer)
Measures the date when the records were last updated.
Corresponds to the time_id column of the time table

Linked table on EI : time
Yes

Dimension Name : latest_updated_time__time
dim_tier_expiry_date_id
(Integer)
Date when the customer tier will expire

Further details of the date can be obtained from the date dimension table.dim_tier_expiry_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
Yes

Dimension Name : Tier_Expiry_Date__date
expired_points
(Integer)
Total points expired (based on slab)

Linked table on EI : NA
lifetime_points
(Integer)
Total lifetimepoints issued to the customer

Linked table on EI : NA
loyalty_points
(Integer)
Total points issues as part of then loyalty program (slab specific) to the customer

Linked table on EI : NA
redeemed_points
(Integer)
Total points redeemed by the customer (slab-specific)

Linked table on EI : NA
year
(Number)
Year when the customer slab has been changed
Linked table on EI : NA

Points redemption summary

Column name
(type)
DescriptionAvailable for export?
[PRS template]
auto_update_time
(String)
Date and time when the PRS Fact is recently updated (Unix timestamp)

Linked table on EI : NA
dim_event_date_id
(Date)
Measures the date when the event has occured. Further details of the date can be obtained from the date dimension table.

dim_event_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
Yes

Dimension Name : Date__date
dim_event_user_id
(Integer)
User identifier , this is an integer set internally by capillary

Linked table on EI : user
Yes

Dimension Name : User__user_id
dim_event_zone_till_id
(Integer)
Captures the till_id of a store where event has occured

Further details of the till can be obtained from the zone_till dimension table.dim_awarded_zone_till_id would be stored in the 'till_id' column of the zone_till dimension table.

Linked table on EI : zone_till
Yes

Dimension: Concept_Hierarchy__Till_Id
dim_latest_updated_date_id
(Date)
Date when the records was last updated.

Corresponds to the 'date_id' column of the date dimension table

Linked table on EI : date
Yes

Dimension Name : latest_updated_date__date
dim_latest_updated_time_id
(String)
Time when the records was last updated.

Corresponds to the time_id column of the time table


Linked table on EI : time
Yes

Dimension: latest_updated_time__time
dim_redemption_program_id
(String)
It is the Loyalty program id. This is mapped to PRS

Linked table on EI : program
event_id
(Integer)
Unique id of each event entry of the corresponding table.Primary Key, correlates to Deduction_Summary_Id in the
PointFact

Linked table on EI : Points fact
Yes

Measure: Event_Id
notes
Notes passed during the redemption

Linked table on EI : NA
Yes

Measure: Notes
point_category_id
(Integer)
It refers to the Point category Id column of PRS table. This id comes from points_category source table, which tells whether the points category is MAIN, DELAYED ACCRUAL, TRIGGER BASED or TRACKERs
This id has reference to points_category table.

In case of Group Redemption, this will be -1

Linked table on EI : NA
points_redeemed
(Integer)
The total points redeemed in that particular redemption.

Populated from points_redemption_summary on source side

Linked table on EI : NA
points_redemption_timeThe time at which the points redeemed from warehouse

Populated from points_redemption_summary on source side
redemption_bill_id
(String)
Loyalty log ID or bill ID for which the points are redeemed. The billing ID is generated by Capillary's system.

Linked table on EI : Points Fact
Yes

Measure Name : Redemption_Id
redemption_bill_number
(String)
Bill number for which the points are redeemed.

The bill number is passed from the source data.

If the source data doesn't have any value for the redemption bill number then the system shows 'Not Captured'.

Linked table on EI : Points Fact
Yes

Measure Name : Redemption_Bill_Number
source_type
(String)
The source from where the redemption data is incoming.

The data can come from two sources, API and data import(redemption data import).


Linked table on EI : NA
year
(String)
year of the data


Linked table on EI : NA

Points expiry reminder info

Column name
(type)
DescriptionAvailable for export in Points Expiry Reminder
template
auto_update_time_point_exp_reminder
(string)
Date and time when the points_reminder_expiry_info Fact is recently updated (Unix timestamp)

Linked table on EI : NA
Yes

Measure Name: Auto Update Time Point Exp Reminder
dim_communication_channel_id
(Integer)
This refers to the communication_channel table and the id is unique id for different communication channels.

Linked table on EI : communication_channel
Yes

Dimension Name :communication_channel
dim_event_date_id
(date)
measured the date when the event has occured

Further details of the date can be obtained from the date dimension table.dim_event_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
Yes

Dimension:Date
dim_event_time_id
(String)
measure the time stamp when the event has occured , it captures upto minutes and seconds is not captured.

Linked table on EI : time
Yes

Dimension:Time
dim_event_user_idIts a part of PRS fact. It relates to the customer_id who has done the redempion / reversal.


Linked table on EI : User
Yes

Dimension:User
dim_expiry_date_id
(Date)
Date when the allocated points is supposed to expire if unused.

Further details of the date can be obtained from the date dimension table.dim_expiry_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
Yes

Dimension Name :expiry_date
dim_expiry_time_id
(Date)
Time when the allocated points is supposed to expire if unused.

Corresponds to the time_id column of the time table.

Linked table on EI : time
Yes

Dimension: expiry_time
dim_latest_updated_date_id
(Date)
Date when the records were last updated.

Further details of the date can be obtained from the date dimension table.dim_latest_updated_date_id would be stored in the 'date_id' column of the date dimension table.

Linked table on EI : date
Yes

Dimension Name :latest_updated_date
dim_latest_updated_time_id
(String)
Time when the records were last updated

Corresponds to the time_id column of the time table.

Linked table on EI : time
Yes

Dimension Name :latest_updated_time
points_expiring
(Integer)
The number of points that are going to expire for which reminder will be sent.

Linked table on EI : NA
Yes

Measure Name :Points Expiring
reminded_before_days
(Integer)
The number of days before which reminder needs to be sent for the points expiring.

Linked table on EI : NA
Yes

Measure Name :Reminded Before Days
reminder_id
(String)
primary key of expiry_reminder_sent_stats_customer_level table (coming from )


Linked table on EI : NA
Yes

Measure:Reminder Id
year
(String)
year of the data

Linked table on EI : NA

Return bill line item

Column name
(type)
DescriptionAvailable for export in Return Transaction
template
auto_update_time_returned_bill
(String)
Date and time (in Unix timestamp) when the return bill level information is updatedYes

Measure Name :Auto_Update_Time_Returned_Bill
auto_update_time_returned_lineitem
(String)
Date and time (in Unix timestamp) when the return lineitem level information is updated
bill_amount
(Integer)
Total cost of items returnedYes

Measure :Bill_Amount
bill_id
(Integer)
The unique id generated for a particular bill internally in the capillary system(Bill_id for return)Yes

Measure Name :Bill_Id
bill_number
(String)
The unique number of a particular bill which is either generated at the POS machine or provided manually at that time of returnYes

Measure:Bill_Number
dim_bill_outlier_status_id
(Integer)
Outlier status of the bills on bill level
dim_event_date_id
(Date)
Measures the date when the return has been made

Corresponds to the date_id column of the date table.

Linked table on EI : date
Yes

Dimension Name :Date__date
dim_event_time_id
(String)
Measures the time stamp when the Return has occured , it captures upto minutes (seconds is not captured)

Corresponds to the time_id column of the time table.

Linked table on EI : time
Yes

Dimension Name :Time__time
dim_event_user_id
(Integer)
Unique user identifier , this is an integer set internally by capillary


Linked table on EI : User
Yes

Dimension Name :User__user_id
dim_event_zone_till_id
(Integer)
till_id of a store where the return has been done

Corresponds to 'till_id' column of the zone_till dimension table.

Linked table on EI : zone_till
Yes

Dimension Name :Concept_Hierarchy__Till_Id
dim_item_id
(Integer)
Unique id generated by the system for the specific returned item
dim_latest_updated_date_id
(Date)
Date(in date formate) when the return bill level information is updated.

Corresponds to the date_id column of the date table.

Linked table on EI : date
dim_latest_updated_time_id
(String)
Time (in time formate) when the return bill level information is updated

Corresponds to the time_id column of the time table.

Linked table on EI : time
dim_parent_bill_outlier_status_id
(Integer)
Outlier status of return bill
dim_parent_line_item_outlier_status_id
(Type : Integer)
Lineitem level outlier status of return bill
dim_returned_type_id
(Integer)
Type of return:-
1 FULL
2 LINE_ITEM
3 AMOUNT
4 CANCELLED
Yes

Dimension: returned_type__Return_Type
exchange_bill_id
( Integer)
The unique id generated internally in the Capillary system for the mixed transaction (item exchange)
issued_bill_id
(Integer)
Unique bill id issued to the customer for that particular transaction
issued_lineitem_id
(Integer)
Unique line-item id issued to the customer for that particular line-item of a transaction
item_code
(String)
Unique item code of the returned line item
line_item_amount
(String)
Net amount of the line item including discount and tax
line_item_discount
(String)
Discount given for that particular line-item
line_item_id
(Integer)
Unique internal reference id for the line-item
line_item_value
(Integer)
Total amount of the line item
notes
(String)
Captures the custom notes mentioned on the line-itemYes

Measure: Notes
quantity
(Integer)
The quantity of a specific line-item returned
rate
(String)
Price of the lineitem (item price*item quantity)
year
(Integer)
Year when the return has been done
dim_membership_id
(Integer)
Member type of customer who completed the transaction
-10003 NOT-APPLICABLE
-10002 INVALID
-10001 NOT-CAPTURED
1 member
2 not-interested

Concept till

Column name
type
DescriptionAvailable for export in Member slab change log template
till_id

(Integer)
till_id of a storeConcept_Hierarchy__Till_Id
concept

(String)
Concept of the OrgConcept_Hierarchy__concept
till

(String)
Till of the storeConcept_Hierarchy__till
store_name

(String)
Store name given by Capillary SystemConcept_Hierarchy__store_name
store_description

(String)
Description of the storeConcept_Hierarchy__store_description
store

(String)
Unique id for storeConcept_Hierarchy__store
concept_name

(String)
Name of the conceptConcept_Hierarchy__concept_name
auto_update_org_entities

(Date)
Date and time (in Unix timestamp) when the concept is updated
is_active

(Boolean)
Active status of till id(True,False)
type

(String)
Type of store(General,Admin)
till_name

(String)
Name of the tillConcept_Hierarchy__till_name

Slab change log

Column name
type
DescriptionAvailable for export in Member slab change log template
user_id

(Integer)
Unique user identifier for customer. Assigned by capillaryYes

Measure name :User_Id
event_date_time
(datetime)
It is the slab change date and time.Yes

Measure name :Event_Date_Time
slab_name
(String)
The final slab name after a marticular migration.It is the slab to which the customer migrated to.Yes

Measure name :customer_slab__slab_name
Auto_Update_Time_Slab_Upgrade
( time)
Date and time when the slab_change_log Fact is recently updated (Unix timestamp)Yes

Measure name :Auto_Update_Time_Slab_Upgrade
notes
(String)
Additional text added related to slab change detailsYes

Measure name :Notes
id
(Integer)
It is the change log id forslab_change_log Fact (not business relevant )Yes

Measure name :Id
dim_event_date_id
(datetime)
It captures the slab change date

Linked table:Date
Yes

Dimension name :Time__time
dim_event_time_id
( datetime)
It captures the slab change time

Linked table: Time
Yes

Dimension name :Time__time
dim_event_user_id
(String)
user identifier for customer assined by capillaryYes

Dimension name :User__user_id
dim_customer_slab_id
(Number)
Captures the current slab Id for the customer

Linked table: Customer_slab
dim_latest_updated_date_id
(Number)
The latest updated date when the data has been updated

Linked table: Date
Yes

Dimension name: latest_updated_date__date
dim_event_program_id
(Number)
Program name for which the customer slab change happened

Linked table: Program
Yes

Dimension name: Event_Program__Program_Id
dim_upgrade_event_type_id
(Number)
Stands for process name for which the customer slab upgradation has been done(exm:- For new bill,point redemption,customer registration)

Linked table: upgrade_event_type
Yes

Dimension name: Slab_Upgrade_Event_Type__Upgrade_Event_Category
year
(Number)
Year when the customer slab change event occur
dim_latest_updated_time_id
(Number)
The latest updated time when the data has been updated

Linked table: Date
Yes

Dimension name: latest_updated_time__time
event_source_id
(Number)
dim_slab_change_source_id
(Number)
Source id for which the customer slab change has been done

Linked table: source_type
dim_event_zone_till_id
(Number)
till_id of a store where the customer slab change has been done

Linked table: Event_zone
dim_previous_slab_id
(Number)
Slab id for the customer before the slab change

Linked table: customer_slab
Yes

Dimension name: Previous_Customer_Slab__serial_no
dim_slab_change_action_idYes

Dimension name: customer_slab__serial_no
dim_scd_type_id

Customer summary

Column name
type
DescriptionAvailable for export in Member Fact
template
dim_latest_updated_date_id
(Date)
It is the latest date when any rows of customer_summary table is updated.

Linked table:Date
Yes

Measure Name :latest_updated_date__date
dim_latest_updated_time_id
(Time)
It is the latest time stamp when any row of customer_summary table gets is updated

Linked table: Time
Yes

Dimension Name :latest_updated_time__time
dim_event_date_id
(]Date)
Measures the date when customer is registered.

Linked table:Date
Yes

Dimension Name: Date__date
dim_event_time_id
(Time)
Measures the time of customer registration (only upto minute)

Linked table:Time
Yes

Dimension Name: Time__time
dim_event_user_id
(Integer)
Capillary assigned unique user identifier

Linked table: event_users
Yes

Dimension Name: User__user_id
dim_joined_date_id
(Date)
It is same as registration date

Linked table: Date
Yes

Dimension Name: joined_date__date
auto_update_time_cps
(Time)
Updated time when the customer point summary table has been updated
dim_conversion_date_id
(Date)
Measures the date when the user has been converted from Non Loylaty to Loyalty Customers

Linked table: Date
auto_update_time_extnd
(Time)
Extended field when the table was last updated
auto_update_time_loyalty
(String)
Time stamp when the loyalty table has been updated
average_spent_per_sku
(Integer)
Average amount spend at the SKU Level
average_spent_per_visit
(Integer)
Average amount spent in each visit
cancelled_points
(Integer)
Total number of points cancelled till date
till_date_points
(Integer)
Total number of points issued to customer till date
year
(Integer)
Year when the customer has been registered
dim_conversion_time_id
(Time)
Measures the time when the user has been converted from non loylaty to loyalty customer

Linked table: Time
dim_dob_id
(Date)
Measures the user's date of birth

Linked table: Date
dim_event_zone_till_id
(]Integer)
till_id of the store where the user was registered

Linked table: event_zone
dim_first_awarded_date_id
(Date)
Measures the date when first point has been awarded

Linked table: Date
dim_first_bill_date_id
(Date)
Measures the date when the first bill has been made

Linked table: Date
dim_first_points_redemption_date_id
(Date)
Measures the date when the first point has been redeemed

Linked table: Date
dim_first_purchased_till_id
(Integer)
till_id of a store where the first bill has been made

Linked table: event_zone
dim_first_redeemption_date_id
(Date)
Measures the date of first redemption

Linked table: Date
dim_lapsation_date_id
( Date)
Measures the lapsation date of the customer, usually it is last_bill_date + 90

Linked table: Date
dim_last_bill_date_id
(Date)
Measures the date when the last bill has been made

Linked table: Date
dim_last_points_redemption_date_id
(Type: Date)
Meaures the date of the recent point redemptation

Linked table: Date
dim_last_purchased_till_id
(Date)
till_id of a store where the last bill has been made

Linked table: event_zone
dim_last_redeemption_date_id
(Date)
Measures the date of the recent point redemptation

Linked table: Date
dim_loyalty_type_id
(Integer)
Loyalty type of the customer. Can be -
1 loyalty
2 non_loyalty
3 not_registered

Linked table: loyalty_type
dim_points_redemption_status_id
(Integer)
dim_preferred_order_channel_id
(Integer)
Preferred order channel of the user

Linked table: order_channel
dim_preferred_store_id
(Integer)
Preferred store where the user visit for the transaction

Linked table: event_zone
dim_repeat_status_id
(Integer)
Stands for the repeat status of custome. Can be either customer first timer or repeat

Linked table: repeat_status
dim_source_type_id
(Integer)
Stands for the source name from which the customergot registered(like instore,app,Wechat)

Linked table: source_type
dim_voucher_redemption_status_id
(Type: Integer)
dim_wedding_date_id
(Date)
Measures the date for wedding of the users

Linked table: Date
expired_points
(Integer)
Total points expired for user till date
first_visit_basket_size
(Integer)
Measures the count of quantity when the user has done the first transaction
first_visit_bill_amount
(Integer)
Measures the transaction amount when the user has done the first transaction
has_spike_bill
(Integer)
Captures whether the customer has made a bill which is 10 times its average bill value at some point in time
This is more for fraud detection
last_updated_by_till_id
(Integer)
Till_id where the customer details has been updated recently
last_visit_bill_amount
(Integer)
Measures the recent transaction amount made by the user
latency
(Integer)
Measures the average number of days between two successive visits made by the customers
line_item_count
(Integer)
Measures the total amount of different products bought by the customers till date
loyalty_id
(Integer)
It is the primary key of user_managment.loyalty(source table) (Not use for business purpose)
loyalty_points
(Integer)
The total amount of redeemable points available to the customer as on today
max_bill_amount
(Integer)
Maximun bill amount(on a single bill) of the user till date
max_bill_count_in_day
(Integer)
Maximum number of transaction done in a day till date by the user
max_bill_count_in_week
(Integer)
Maximum number of transaction done in a week till date by the user
max_bill_hour_count_in_day
(Integer)
Maximum number of transaction done in an hour till date by the user
max_zones_with_billing_on_same_day
(Integer)
Maximum number zone in same day where the bill has been done by user till date
number_of_visit_days
( Integer)
The total count of different dates where the customer visited the store so far
number_of_visits
(Integer)
The total count of transactions made by customer till date. This counts date with time stamp
points_awarded_days
(Integer)
The count of the days when the points have been awared to the customer till date
redeemed_points
(Integer)
Total number of points that have been redeemed by the customer till date
redeemed_rate
(Integer)
Ratio of the number of redeemed transactions to the total number of transactions till date
redeemed_visit_days
(Integer)
Number of days visit where the redemption has been done by the user till date
redeemed_visits
(Integer)
Number of visist where the redemption done by the user till date
redeemed_voucher_count
(Integer)
Number of vouchers that have been redeemed by user till date
redemption_latency
(Integer)
Measures the average number of days between two successive redemption done by a customer
returned_bill_amount
(Integer)
Total amount that has been returned by the customer till date
returned_bill_count
(Integer)
Total number of bills that have been returned by the customer till date
sku_purchased
(Integer)
Total number of SKUs that have been purchased by the user till date
skus_returned
(Integer)
Total number of SKUs that have been returbed by the user till date
total_bill_amount
(Integer)
Total amount that has been spent by the user till date
total_bill_count
(Integer)
Total number of transactions made by the customer till date
total_line_item_amount
(Integer)
Total line item amount that has been purchased by the user till date
total_points_redeemed
(Integer)
Total points that have been redemed by the user till date
total_returned_line_item_amount
(nteger)
Total line item amount that has been returned by the user till date

Coupons

Column Name and TypeDescriptionAvailable for export in Coupons template
auto_update_time

(Type:Unixtimes)
Date and time when the coupons table is recently updated (Unix timestamp)

Linked table on EI:NA
Yes

Measure Name:Auto Update Time
bill_id

(Type: Integer)
Identifier key for the bill against which the coupons have been issued or redeemed

Linked table on EI:NA
Yes

Measure Name:bill id
coupon_code

(Type: String)
A unique id generated for the coupons

Linked table on EI:NA
Yes

Measure Name:Coupon Code
coupon_code_src

(Type: String)
It is same as coupon code

Linked table on EI:NA
Yes

Measure Name:Coupon Code Src
dim_campaign_group_id

(Type: Integer)
Captures the campaigns_group for which the coupons related event has been done

Linked table on EI: Campaign_group
NA
dim_campaign_id

(Type: Integer)
Captures the the campaigns for which the coupons related event has been done

Linked table on EI: Campaigns
NA
dim_coupon_issual_type_id

(Type: Integer)
Captures the type of the coupon issued


Linked table on EI: coupon_issual_type
Yes

Dimension Name:coupon issual type
dim_coupon_series_id

(Type: Integer)
Captures the Coupon Series against the coupon event

Linked table on EI: Coupon_series
Yes

Dimension Name:coupon series
dim_entry_type_id

(Type: Integer)
Captures the entry type for the coupons event

Linked table on EI:Entry Type
Yes

Dimension Name:entry type
dim_event_date_id

(Type: Integer)
Captures the date when the event(issual / redemption) has occured

Linked table on EI:Date
Yes

Dimension Name:date
dim_event_time_id

(Type: Integer)
Captures the time stamp when the event has occured , it captures upto minutes however seconds is not captured

Linked table on EI:Time
Yes

Dimension Name:time
dim_event_user_id

(Type: Integer)
Unique user identifier , this is an integer set internally by capillary

Linked table on EI:users
Yes

Dimension Name: users
dim_event_zone_till_id

(Type: Integer)
Captures the till_id of a store where the coupons related event occured

Linked table on EI:zone_tills
NA
dim_expiry_date_id

(Type: Date)
Captures the date when the coupon will expire

Linked table on EI:date
Yes

Dimension Name:expiry_date
dim_issual_campaign_group_id

(Type: Integer)
Captures the campaign group id for which coupon has been issued

Linked table on EI:Campaign_group
NA
dim_issual_date_id

(Type: Date)
Captures the date when coupon has been issued

Linked table on EI:date
Yes

Dimension Name:issual_date
dim_issual_time_id

(Type: Integer)
Captures the time when coupon has been issued

Linked table on EI:time
Yes

Dimension Name: issual_time
dim_issual_type_id

(Type: Integer)
Captures the type of coupon issued

Linked table on EI:coupon_issual_type
Yes

Dimension Name: issual_type
dim_issual_zone_till_id

(Type: Integer)
Captures the zone till where coupon has been issued

Linked table on EI:zone_tills
NA
dim_issued_to_user_id

(Type: Integer)
Captures the customer details to whom the coupon has been issued

Linked table on EI:users
NA
dim_latest_updated_date_id

(Type: Integer)
The date when the data has been recently updated

Linked table on EI:date
Yes

Dimension Name: Latest Updated date
dim_latest_updated_time_id

(Type: Integer)
The time when the data has been recently updated

Linked table on EI:time
Yes

Dimension Name: Latest Updated time
event_id

(Type: Integer)
A unique id generated for the coupon's event by capillary system

Linked table on EI:NA
Yes

Measure Name:Event Id
issual_coupon_id

(Type: String)
Unique Id assigned to the coupon which has been issued

Linked table on EI:NA
Yes

Measure Name:Issual Coupon Id
redemption_bill_amount

(Type: Integer)
Total transaction amount of the bill against which coupon has been redeemed

Linked table on EI:NA
Yes

Measure Name:Redemption Bill Amount
used_bill_number

(Type: String)
Bill_number used while the redeeming the coupon

Linked table on EI:NA
Yes

Measure Name:Used Bill Number
year

(Type: Integer)
Year when the coupon's event occuredNo
dim_coupon_event_type_id

(Type: Integer)
Captures the coupons event type(issual,redemption)

Linked table on EI: redeemed_status
Yes

Dimension Name: coupon_event_type

Payment Mode Details

Column name and typeDescriptionAvailable for export in Payment Mode template
bill_amount
(Type: Integer)
The total amount of the transaction for which the payment has been done

Linked table on EI : NA
yes

Measure Name: Bill Amount

bill_discount
(Type: Integer)
Total discount given on transaction for which payment has been done

Linked table on EI : NA
yes

Measure Name: Bill discount

bill_id
(Type: Integer)
The unique id generated for a particular bill internally in the capillary system for which payment has been done.

Linked table on EI : NA
yes

Measure Name: Bill Id

bill_number
(Type: String)
A unique number for a transaction that is either auto-generated at the POS machine or provided manually.

Linked table on EI : NA
yes

Measure Name: Bill Number

central_gst
(Type: Integer)
Total GST amount on the transaction for which payment has beed done.

Linked table on EI : NA
yes

Measure Name: Central GST

dim_added_on_date_id
(Type: Integer)
Captures the date when the payment details had been added for the transaction

Linked table on EI : Date
yes

Dimension Name: added_on_date
dim_bill_outlier_status_id
(Type: Integer)
Captures the Outlier status of the bills against bill_id

Linked table on EI : outlier_status
yes

Dimension Name:bill outlier
dim_bill_type_id
(Type: Integer)
Captures the type of bill for which the payment has been made

Linked table on EI : bill_type
yes

Dimension Name:dim_bill_type_id

dim_cashier_id
(Type: Integer)
Captures the cashier's details for the payment

Linked table on EI : cashier
yes

Dimension Name:cashier id
dim_event_date_id
(Type: Integer)
Captures the date when the payment has been done

Linked table on EI : Date
No
dim_event_time_id
(Type: Integer)
Captures the time when the payment has been done

Linked table on EI : Time
No
dim_event_user_id
(Type: Integer)
Captures the user details for which the payment has been done

Linked table on EI : Users
No
dim_event_zone_till_id
(Type: Integer)
Captures the store details where the payment has been done

Linked table on EI : zone_tills
No
dim_latest_updated_date_id
(Type: Integer)
Captures the date when the data has been recently updated in the fact.

Linked table on EI : Date
No
dim_latest_updated_time_id
(Type: Integer)
Captures the time when the data has been recently updated in the fact.

Linked table on EI : Time
No
dim_loyalty_type_id
(Type: Integer)
Loyalty type of the customer
1 loyalty
2 non_loyalty
3 not_registered

Linked table on EI : loyalty_type
No
dim_nps_id
(Type: Integer)
Captures the nps score given by the customer for the payment made

Linked table on EI : NPS_score
yes

Dimension Name: nps
dim_order_channel_id
(Type: Integer)
The channel via which the transaction has been completed

Linked table on EI : order_channel
yes

Dimension Name: order channel
dim_payment_mode_id
(Type: Integer)
measured the Store details where the payment has been doneyes

Dimension Name: payment mode attribute
dim_repeat_status_id
(Type: Integer)
Captures the repeat status of the customer
1 FIRST_TIME
-10002 INVALID
-10003 NOT-APPLICABLE
-10001 NOT-CAPTURED
2 REPEAT

Linked table on EI : repeat_status
yes

Dimension Name: repeat
dim_source_type_id
(Type: Integer)
Source of the bill

Linked table on EI : source_type
yes

Dimension Name: source
integrated_gst
(Type: String)
Captures the GST levied by the central government for inter-state supplies and imports

Linked table on EI : NA
yes

Measure Name: Integrated GST
payment_mode_amount
(Type: Integer)
Total amount of the payment made

Linked table on EI : NA
yes

Measure Name: Payment mode amount
payment_mode_details_id
(Type: Integer)
A unique id generated for the payment mode details by capillary system

Linked table on EI : NA
yes

dimension name: Payment mode attribute
quantity
(Type: Integer)
Total number of quantity in transaction for which payment has been done

Linked table on EI : NA
yes

Measure Name: Quantity
state_gst
(Type: Integer)
Total State gst that has been applied on the payment

Linked table on EI : NA
yes

Measure Name: State GST
tax_amount
(Type: Integer)
Total tax amount that has been applied on the paymentyes

Measure name: Tax Amount
year
(Type: Integer)
Year when the payment has been doneNo

Customer Merge Log

Column name and typeDescriptionAvailable for export in CPS template
auto_update_time

(Type:String)
Date and time (in Unix timestamp) when the communication details has been updated

Linked table on EI: NA
No
details

(Type:String)
Details for profile merge

Linked table on EI: NA
No
dim_event_date_id

(Type: Integer)
Captures the date when the customer profile merged

Linked table on EI: Date
Yes

Dimension Name: Date
dim_event_time_id

(Type: Integer)
Captures the time when the customer profile merged

Linked table on EI: Time
Yes

Dimension Name: Time
dim_event_user_id

(Type: Integer)
Captures the current user_id

Linked table on EI: Users
Yes

Dimension Name: Users
dim_latest_updated_date_id

(Type: Integer)
The latest updated date when the data is recently updated in the Fact

Linked table on EI: Date
Yes

Dimension Name: Latest updated Date
dim_latest_updated_time_id

(Type: Integer)
The latest updated time when data is recently updated in the Fact

Linked table on EI: Time
Yes

Dimension Name: Latest updated Time
dim_merged_by_admin_id

(Type: Integer)
Captures the admin user details which has merged the customer_profile

Linked table on EI: admin_users
Yes

Dimension Name: merger by admin user
dim_merged_by_zone_till_id

(Type: Integer)
Captures the store details where the customer profile merged

Linked table on EI: zone_tills
Yes

Dimension Name:merge by till
dim_victim_user_id

(Type: Integer)
Captures the users details with which the customer profile merged


Linked table on EI: users
Yes

Dimension Name:victim
merge_event_id

(Type: Integer)
Id for customer profile merge event

Linked table on EI: NA
Yes

Measure Name: merger event id
merge_reason

(Type: Integer)
Reason for the customer profile merge

Linked table on EI: NA
Yes

Measure Name:merge reason
victim_external_id

(Type: Integer)
External id of customer for which the customer profile has been merged

Linked table on EI: NA
Yes

Measure Name:Victim external id
victim_mobile

(Type: Integer)
Mobile number of the customer for which the customer profile has been merged

Linked table on EI: NA
Yes

Measure Name:Victim mobile
year

(Type: Integer)
Year when the event has been done

Linked table on EI: NA
No

Call Task Customer Status

Column name and typeDescriptionAvailable for export in Call task template
auto_update_time_task_status

(Type: String)
Date and time (in Unix timestamp) when the task details has been updated

Linked table on EI : NA
Yes

Measure Name:Auto Update Time Task Status
call_task_id

(Type: Integer)
Id for the call task

Linked table on EI : NA
Yes

Measure Name:Call Task Id
dim_campaign_id

(Type: Integer)
Unique id generated by the system for the campaigns

Linked table on EI : Campaigns
Yes

Dimension Name:campaign
dim_campaign_message_id

(Type: Integer)
Unique id generated by the system for the campaign_message

Linked table on EI : campaign_msg
Yes

Dimension Name:campaign_message
dim_event_date_id

(Type: Integer)
Captures the date for the call task

Linked table on EI : Date
Yes

Dimension Name:Date
dim_event_time_id

(Type: Integer)
Captures the time for the call task

Linked table on EI : Time
Yes

Dimension Name:Time
dim_event_user_id

(Type: Integer)
Captures user details for the call task

Linked table on EI : Users
Yes

Dimension Name:User
dim_event_zone_till_id

(Type: Integer)
Captures the store details for for the call task

Linked table on EI : Zone_tills
Yes

Dimension Name:Store Hierarchy
dim_internal_status_id

(Type: Integer)
Captures the internal status for the call task

Linked table on EI : Internal status
Yes

Dimension Name:internal_status
dim_latest_updated_date_id

(Type: Integer)
The latest date when the data has been updated

Linked table on EI : date
Yes

Dimension Name:Date
dim_latest_updated_time_id

(Type: Integer)
The latest time when the data has been updated

Linked table on EI : time
Yes

Dimension Name:Time
dim_task_id

(Type: Integer)
Captures the id for the task(Same as Task_id)

Linked table on EI : tasks
Yes

Dimension Name:task
dim_updated_date_id

(Type: Integer)
Captures the date when the date has been updated

Linked table on EI : date
Yes

Dimension Name:Date
dim_updated_time_id

(Type: Integer)
Captures the time when the date has been updated

Linked table on EI : time
Yes

Dimension Name:Time
task_id

(Type: Integer)
Unique id for the Task that has been configured for the campaings

Linked table on EI : NA
Yes

Measure Name:Task Id

Messages

Column name and typeDescriptionAvailable for export in Message template
auto_update_time_nsadmin

(Type : String)
Unixtime stamp when the nsadmin table has been updated

Linked table on EI: NA
Yes

Measure Name: Auto Update Time Nsadmin
client_context_id

(Type : Integer)
Yes

Measure Name: Client Context Id
client_id

(Type : Integer)
Yes

Measure Name: Client Id
dim_account_id

(Type : Integer)
Captures the gateway details for which the communication occured

Linked table on EI: gateway
Yes

Dimension Name: gateway_account
dim_campaign_id

(Type : Integer)
Captures the campaign details for which the coomunication occurs

Linked table on EI:Campaigns
Yes

Dimension Name: campaign
dim_communication_channel_id

(Type : Integer)
Type of communication channel which has been used to contact the user

Linked table on EI:Communication Channel
Yes

Dimension Name: communication_channel
dim_delivery_status_id

(Type : Integer)
Captures the status for the message delivery

Linked table on EI: campaign_delivery_status
Yes

Dimension Name: delivery_status
dim_event_date_id

(Type : Integer)
Captures the date when the communication has been done for the user

Linked table on EI: date
Yes

Dimension Name: Date
dim_event_time_id

(Type : Integer)
Captures the time when the communication has been done for the user

Linked table on EI:time
Yes

Dimension Name: Time
dim_event_user_id

(Type : Integer)
Unique user identifier , this is an integer set internally by capillary

Linked table on EI: user
Yes

Dimension Name:User
dim_latest_updated_date_id

(Type : Integer)
The latest date when the data has been updated

Linked table on EI: date
Yes

Dimension Name :latest_updated_date
dim_latest_updated_time_id

(Type : Integer)
The latest time when the data has been updated

Linked table on EI:time
Yes

Dimension Namelatest_updated_time
dim_nsadmin_priority_id

(Type : Integer)
Captures the priority of the messages

Linked table on EI: nsadmin_priority
Yes

Dimension Name: nsadmin_priority
message

(Type : String)
Content of the MessageYes

Measure Name: Message
message_count

(Type : Integer)
Total count of message(Depends on the content of the message)Yes

Measure Name: Message Count

nsadmin_id

(Type : Integer)

Unique id of the message as available in nsadmin table
Yes

Measure Name: Nsadmin Id
year

(Type : Integer)
Year when the communication has been sentNo

Contact Info

Column name and typeDescriptionAvailable for export in Contacted template
auto_update_time_comm_details

(Type: String)
Date and time (in Unix timestamp) when the communication details has been updated

Linked table on EI : NA
Yes

Measure Name: Auto Update Time Comm Details
auto_update_time_contact

(Type: String)
Date and time (in Unix timestamp) when the contact data has been updated

Linked table on EI : NA
Yes

Measure Name:Auto Update Time Contact
auto_update_time_email_stats

(Type: String)
Date and time (in Unix timestamp) when email stats has been updated

Linked table on EI : NA
Yes

Measure Name:Auto Update Time Email Stats
auto_update_time_subs_stats

(Type: String)
Date and time (in Unix timestamp) when subscription status has been updated

Linked table on EI : NA
Yes

Measure Name:Auto Update Time Subs Stats
dim_campaign_delivery_status_id

(Type: Integer)
Unique id generated by the system for the campaigns_delivery status

Linked table on EI : campaign_delivery_status
Yes

Dimension Name: campaign_delivery_status
dim_campaign_group_id

(Type: Integer)
Unique id generated by the system for the campaigns_group

Linked table on EI : campaign_group
Yes

Dimension Name: campaign_group
dim_campaign_id

(Type: Integer)
Unique id generated by the system for the campaigns

Linked table on EI : Campaigns
Yes

Dimension Name: campaign
dim_campaign_message_id

(Type: Integer)
Unique id generated by the system for the campaign_message

Linked table on EI : campaign_msg
Yes

Dimension Name: campaign_message
dim_communication_channel_id

(Type: Integer)
Type of communication channel via which the communication has been recived by the user

Linked table on EI : communication_channel
Yes

Dimension Name: communication_channel
dim_contact_date_id

(Type: Integer)
Captures the date when the customer has been contacted

Linked table on EI : date
Yes

Dimension Name: campaign_contact_date
dim_contact_time_id

(Type: Integer)
Captures the time when the customer has been contacted

Linked table on EI : time
Yes

Dimension Name: campaign_contact_time
dim_email_open_date_id

(Type: Integer)
Captures the date when the email has been opened

Linked table on EI : date
Yes

Dimension Name: link_open_date
dim_email_open_time_id

(Type: Integer)
Captures the time when the email has been opened

Linked table on EI : time
Yes

Dimension Name: link_open_time
dim_event_date_id

(Type: Integer)
Captures the date when the communication has been done for the user

Linked table on EI : date
Yes

Dimension Name: Date
dim_event_time_id

(Type: Integer)
Captures the time when the communication has been done for the user

Linked table on EI : time
Yes

Dimension Name: Time
dim_event_user_id

(Type: Integer)
Unique user identifier , this is an integer set internally by capillary. Customer to which the communication had been made.

Linked table on EI : Users
Yes

Dimension Name: User
dim_event_zone_till_id

(Type: Integer)
till_id of a store

Linked table on EI : Zone_tills
No
dim_latest_updated_date_id

(Type: Integer)
The latest date when the data has been updated in the table

Linked table on EI : date
Yes

Dimension Name: latest_updated_date
dim_latest_updated_time_id

(Type: Integer)
The latest time when the data has been updated in the table

Linked table on EI : time
Yes

Dimension Name: latest_updated_time
dim_unsubscription_status_id

(Type: Integer)
Unique id generated by the system for the unsubsription status

Linked table on EI : unsubscription_status
Yes

Dimension Name: unsubscription status
message_body

(Type: String)
The content of the message sent to the users

Linked table on EI : NA
Yes

Measure Name:Message Body
msg_id

(Type: Integer)
This is the template id generated for each message template of a campaign. For example, if there are 5 types of messages sent in a campaign, it will have 5 msg_ids

Linked table on EI : NA
Yes

Measure Name:Msg Id
nsadmin_id

(Type: Integer)
This is the communication id at its lowest level. Each nsadmin_id corresponds to a specific communication to a user


Linked table on EI : NA
Yes

Measure Name:Nsadmin Id
open_count

(Type: Integer)
Count of times the email message has been opened

Linked table on EI : NA
Yes

Measure Name:Open Count
total_link_click_count

(Type: Integer)
Total count of click for an email message

Linked table on EI : NA
Yes

Measure Name:Total Link Click Count
unsubscribed

(Type: Integer)
Captures the subscription status of the customer.Marked as yes if customer unsubscribed otherwise it will be written NOT-YET

Linked table on EI : NA
Yes

Measure Name:Unsubscribed
year

(Type: Integer)
This is a partition column mainly on year(event_date), this columns helps in faster execution of codes when you need a particular year

Linked table on EI : NA
No
dim_communication_type_id

(Type: Integer)
Type of communication which has been recived by the user

Linked table on EI : communication_type
Yes

Dimension Name:communication_type

Response Info

Sr numColumn Name and TypeDescriptionAvailable for export in Responders template
1bill_amount
[Type : Integer]
Measures the net amount of the transaction made by the userYes

Measure name :Bill Amount
2bill_discount
[Type : Integer]
Measures the total discount applied on the billYes

Measure name :Bill Discount
3bill_id
[Type : Integer]
A unique id generated for the bill internally by capillary system. It helps in differentiating one customer's bill from anotherYes

Measure name :Bill Id
4bill_number
[Type : Integer]
A unique number for a transaction that is either auto-generated at the POS machine or provided manuallyYes

Measure name :Bill Number
5dim_bill_outlier_status_id
[Type : Integer]
Outlier status of the bills on bill levelYes

Dimension Name: Bill Outlier
6dim_campaign_delivery_status_id
[Type : Integer]
Unique id generated by the system which tells the campaigns delivery status

Linked table :Delivery_status
Yes

Dimension Name:campaign_delivery_status
7dim_campaign_group_id
[Type : Integer]
Unique id generated by the system which specifies the group of the campaign

Linked table:Campaign_group
Yes

Dimension Name:campaign_group
8dim_campaign_id
[Type : Integer]
Unique id generated by the system for the campaigns

Linked table:Campaigns
Yes

Dimension Name:campaign
9dim_campaign_message_id
[Type : Integer]
Unique id generated by the system for the campaign_messageYes

Dimension Name:campaign_message
10dim_campaign_schedule_date_id
[Type : Integer]
Measures the date when the campaign has been schedule

Linked table: date
Yes

Dimension Name:campaign_schedule_date
11dim_campaign_schedule_time_id
[Type : Integer]
Measures the time when the campaign has been schedule

Linked table:time
Yes

Dimension Name:campaign_schedule_time
12dim_communication_channel_id
[Type : Integer]
Type of communication channel on which the message has been communicated to the user

Linked table : communication_channel
Yes

Dimension Name:communication_channel
13dim_communication_type_id
[Type : Integer]
Type of communication which has been received by the user

Linked table: communication_type
Yes

Dimension Name:communication_type
14dim_email_open_date_id
[Type : Integer]
Measures the date when the email has been opened.

Linked table: Date
No
15dim_email_open_time_id
[Type : Integer]
Measures the time when the email has been opened

Linked table: time
No
16dim_event_date_id
[Type : Integer]
Measures the date when the event has occured

Linked table: date
Yes

Dimension Name:Date
17dim_event_time_id
[Type : Integer]
Measures the time stamp when the event has occured , it captures upto minutes and seconds is not captured

Linked table: time
Yes

Dimension Name:Time
18dim_event_user_id
[Type : Integer]
Unique user identifier , this is an integer set internally by capillary.

Linked table:User
Yes

Dimension Name:User
19dim_event_zone_till_id
[Type : Integer]
Captures till_id of a store where the event has occured.

Linked table: zone
Yes

Dimension Name:Store Hierarchy
20dim_item_id
[Type : Integer]
Unique id generated by the system for a specific item.

Linked table: item
No
21dim_latest_updated_date_id
[Type : Integer]
The latest updated date when the data has been updated.

Linked table: table
Yes

Dimension Name:latest_updated_date
22dim_latest_updated_time_id
[Type : Integer]
The latest updated time when the table has been updated.

Linked table:time
latest_updated_time
23dim_line_item_outlier_status_id
[Type : Integer]
Outlier status of the bills at lineitem level.

Linked table: outlier_status
Yes

Dimension Name:Line Item Outlier
24dim_loyalty_type_id
[Type : Integer]
Loyalty type of the customer.Could be loyalty ,non_loyalty or not_registered

Linked table:loyalty_type
Yes

Dimension Name:Loyalty
25dim_repeat_status_id
[Type : Integer]
Repeat status of the customer.

Linked table: repeat_status
Yes

Dimension Name:Repeat
26dim_source_type_id
[Type : Integer]

Source of the bill

Linked table : source_type
Yes

Dimension Name:Source
27dim_unsubscription_status_id
[Type : Integer]
Unique id generated by the system for the unsubsription statusYes

Dimension Name:unsubscription status
28item_code
[Type : String]
The unique code of the line-itemYes

Measure name :Item Code
29line_item_amount
[Type : Integer]
Total amount after discount including tax.
Yes

Measure name :Line Item Amount
30line_item_discount
[Type : Integer]
Discount given for the particular line-item
Yes

Measure name :Line Item Discount
31line_item_id
[Type : Integer]
Unique id generated by the system for the line-item
Yes

Measure name :Line Item Id
32msg_id
[Type : Integer]
Unique if for the messge that has been configuried in the campaignsYes

Measure name :Msg Id
33quantity
[Type : Integer]
Total count of quantity in the transactionYes

Measure name :Quantity
34redeemed_points
[Type : Integer]
Total point been redeemed on the transactionYes

Measure name :Redeemed Points
35total_link_click_count
[Type : Integer]
Total count of click that has been done by the user on the link which has been added in the messageYes

Measure name :Total Link Click Count
36year
[Type : Integer]
Year when the transaction has been doneNo

Members

Column name and typeDescriptionAvailable for export in Member Fact template
dim_latest_updated_date_id

(Type - date)
This refers to the latest date when any rows of this table got updated

Linked Table on EI : Date
Yes

Measure Name = latest_updated_date__date
dim_latest_updated_time_id

Type - time
This refers to the latest time stamp when any rows of this table got updated

Linked Table on EI : time
Yes

Measure Name = latest_updated_time__time
dim_event_date_id

Type - date
This refers to the date when customer registration occured

Linked Table on EI : date
Yes

Measure Name = Date__date
dim_event_time_id

Type - time
This refers to the registration time (only upto minute)

Linked Table on EI : time
Yes

Measure Name = Time__time
dim_event_user_id

Type - int
This is a capillary assigned user identifier

Linked Table on EI : Event_Users
Yes

Measure Name = User__user_id
Tata Specific

Type - string
tata assgined user identifier

Linked Table on EI : N/A
Yes

Measure Name = User__customer_external_id


Type - int
till identifier where the customer got registered

Linked Table on EI : N/A
Yes

Measure Name = User__registered_till_id
dim_joined_date_id

Type - date
this is same as registration date

Linked Table on EI : Date
Yes

Measure Name = joined_date__date
Brand Specific

Type - string
This is a custom field

Linked Table on EI : N/A
Yes

Measure Name = user_cf_ihcl_active
Brand Specific

Type - string
This is a custom field

Linked Table on EI : N/A
Yes

Measure Name = user_cf_tcp_active
Brand Specific

Type - string
This is a custom field

Linked Table on EI : N/A
Yes

Measure Name = user_cf_tierup
Brand Specific

Type - string
This is a custom field

Linked Table on EI : N/A
Yes

Measure Name = user_cf_tierup_airasia
Brand Specific

Type - string
This is a custom field

Linked Table on EI : N/A
Yes

Measure Name = user_cf_up_reason
auto_update_time_cps

Type - time
Updated time when the Customer point summary table has been updated

Linked Table on EI : N/A
No
dim_conversion_date_id

Type - date
measured the date when the user has been covnerted from non loylaty to loyalty customer

Linked Table on EI : Date
No
auto_update_time_extnd

Type - Time
extended field when it was last updated

Linked Table on EI : N/A
No
auto_update_time_loyalty

Type - string
Time stamp when the loyalty table has been updated

Linked Table on EI : N/A
No
average_spent_per_sku

Type - Interger
Average amount spend on the SKU Level

Linked Table on EI : N/A
No
average_spent_per_visit

Type - Interger
Average amount spent on each visit

Linked Table on EI : N/A
No
cancelled_points

Type - Interger
Total number of points has been cancled in the till date

Linked Table on EI : N/A
No
till date_points

Type - Interger
Total number of points has been issued to customer in till date

Linked Table on EI : N/A
No
year

Type - Interger
Yera when the customer has been register

Linked Table on EI : N/A
No
dim_conversion_time_id

Type - time
measured the date when when the user has been covnerted from non loylaty to loyalty customer

Linked Table on EI : time
No
dim_dob_id

Type - Date
measured the date for user's Date of birth

Linked Table on EI : Date
No
dim_event_zone_till_id

Type - Interger
till_id of a store where the user registration done

Linked Table on EI : Event_zone
No
dim_first_awarded_date_id

Type - Date
measured the date when first point has been awared

Linked Table on EI : Date
No
dim_first_bill_date_id

Type - Date
measured the date when the first bill has been made

Linked Table on EI : Date
No
dim_first_points_redemption_date_id

Type - Date
measured the date when the first point has been redemed

Linked Table on EI : Date
No
dim_first_purchased_till_id

Type - Interger
till_id of a store where the first bill has been made

Linked Table on EI : Event_zone
No
dim_first_redeemption_date_id

Type - Date
measured the date when the first redemption happend

Linked Table on EI : Date
No
dim_lapsation_date_id

Type - Date
lapsation date of customer, usually its last_bill_date + 90

Linked Table on EI : Date
No
dim_last_bill_date_id

Type - Date
measured the date the last bill has been made

Linked Table on EI : Date
No
dim_last_points_redemption_date_id

Type - date
measured the date when the recent point redemptation activity happened

Linked Table on EI : Date
No
dim_last_purchased_till_id

Type - date
till_id of a store where the last bill has been made

Linked Table on EI : Event_zone
No
dim_last_redeemption_date_id

Type - date
measured the date when the recent redemptation activity happened

Linked Table on EI : Date
No
dim_loyalty_type_id

Type - Interger
Loyalty type of the customer
1 loyalty
2 non_loyalty
3 not_registered

Linked Table on EI : loyalty_type
No
dim_points_redemption_status_id

Type - Interger


Linked Table on EI : N/A
No
dim_preferred_order_channel_id

Type - Interger
Prefrrred channel from where the user use to order

Linked Table on EI : order_channel
No
dim_preferred_store_id

Type - Interger
Preferred store where the user visit for the transaction

Linked Table on EI : Event_zone
No
dim_repeat_status_id

Type - Interger
Stands for the repeat status of customer either customer first timer or repeat

Linked Table on EI : repeat_status
No
dim_source_type_id

Type - Interger
Stands for the sourece name using that customer registration happend(like instore,app,Wechat)

Linked Table on EI : Source_type
No
dim_voucher_redemption_status_id

Type - Interger


Linked Table on EI : N/A
No
dim_wedding_date_id

Type - Date
measured the date for users wedding

Linked Table on EI : Date
No
expired_points

Type - Interger
Total point which is expired for user till date

Linked Table on EI : N/A
No
first_visit_basket_size

Type - Interger
Stands for the count of quantity when the user has done the first transaction

Linked Table on EI : N/A
No
first_visit_bill_amount

Type - Interger
Stands for the transaction amount when the user has done the first transaction

Linked Table on EI : N/A
No
has_spike_bill

Type - Interger
if the customer has made a bill which is 10 times its average bill value at some point in time
New
this is more for fraud detection

Linked Table on EI : N/A
No
last_updated_by_till_id

Type - Interger
Till_id where the customer details has been updated recently

Linked Table on EI : N/A
No
last_visit_bill_amount

Type - Interger
Stands for the recent transaction amount made by the user

Linked Table on EI : N/A
No
latency

Type - Interger
Stands for average number of days between two successive visits on a customers

Linked Table on EI : N/A
No
line_item_count

Type - Interger
Sands for total amount of different products bought by the customers till date

Linked Table on EI : N/A
No
loyalty_id

Type - Interger
primary key of user_managment.loyalty(source table) (Not use for bussiness purpose)

Linked Table on EI : N/A
No
loyalty_points

Type - Interger
The total amount of redeemable points available with the customer as on today

Linked Table on EI : N/A
No
max_bill_amount

Type - Interger
Maxmimun amount on a single bill has been done by user till date

Linked Table on EI : N/A
No
max_bill_count_in_day

Type - Interger
Maximum number of transaction has been done in a day by the user till date

Linked Table on EI : N/A
No
max_bill_count_in_week

Type - Interger
Maximum number of transaction has been done in a week by the user till date

Linked Table on EI : N/A
No
max_bill_hour_count_in_day

Type - Interger
Maximum number of transaction has been done in an hour by the user till date

Linked Table on EI : N/A
No
max_zones_with_billing_on_same_day

Type - Interger
Maximum number zone in same day where the bill has been done by user till date

Linked Table on EI : N/A
No
number_of_visit_days

Type - Interger
The total count of different dates where customer visited the store so far

Linked Table on EI : N/A
No
number_of_visits

Type - Interger
The total count of transactions made by customer till date. This counts date with time stamp

Linked Table on EI : N/A
No
points_awarded_days

Type - Interger
count of the days when the points has been awared to the customer till date

Linked Table on EI : N/A
No
redeemed_points

Type - Interger
Total number of points has been redeemed by the customer till date

Linked Table on EI : N/A
No
redeemed_rate

Type - Interger
Ration of Transaction where customer done the redemption and total number of transaction till date

Linked Table on EI : N/A
No
redeemed_visit_days

Type - Interger
Number of days visit where the redemption has been done by the user till date

Linked Table on EI : N/A
No
redeemed_visits

Type - Interger
Number of visit where the redemption done in user till date

Linked Table on EI : N/A
No
redeemed_voucher_count

Type - Interger
Number of voucher has been redeemed by user till date

Linked Table on EI : N/A
No
redemption_latency

Type - Interger
Stands for average number of days between two successive redemption on a customers


Linked Table on EI : N/A
No
returned_bill_amount

Type - Interger
Total amount has been return by the customer till date

Linked Table on EI : N/A
No
returned_bill_count

Type - Interger
Total number of bills has been returned by customer till date

Linked Table on EI : N/A
No
sku_purchased

Type - Interger
Total number of SKU has been purchase by the user till date

Linked Table on EI : N/A
No
skus_returned

Type - Interger
Total number of SKU has been return by the customer till date

Linked Table on EI : N/A
No
total_bill_amount

Type - Interger
Total amount that has been spend by user till date

Linked Table on EI : N/A
No
total_bill_count

Type - Interger
This refers to Total number of transaction made by the customer till date

Linked Table on EI : N/A
No
total_line_item_amount

Type - Integer
This refers to Total line item amount has been purchase by user till date

Linked Table on EI : N/A
No
total_points_redeemed

Type - Integer
This refers to Total points has been redemed by user in till date

Linked Table on EI : N/A
No
total_returned_line_item_amount

Type - Integer
This refers to Total line item amount has been return by user till date

Linked Table on EI : N/A
N

Badges

Introduction to Badges Facts and Dimension Tables

Badges are a form of recognition or achievement typically used in various systems or platforms to acknowledge users' accomplishments or participation in certain activities. They serve as visual indicators of accomplishment and can be earned through completing tasks, reaching milestones, or meeting specific criteria set by the system administrators. Badges can enhance user engagement, motivate users to participate more actively, and foster a sense of accomplishment and community within the platform.

According to the Star Schema Layout, for badges, there are three fact tables:
badges_earn, badges_issue, and badges_earned_benefits.
Each of these tables contains information about the earning, issuance, and associated benefits of badges, respectively. Additionally, there are several dimension tables providing context and additional details for the badges data.

Here's a brief description of the fact tables:

  • badges_earn: This table records the earning of badges by customers. It includes information such as the badge ID, customer ID, earning date, expiry date, and whether the badge is active or revoked.
  • badges_issue: This table logs the issuance of badges to customers. It contains details such as the badge ID, customer ID, issuance date, expiry date, and whether the badge is active or revoked.
  • badges_earned_benefits: This table associates benefits with badges earned by customers. It includes information about the benefit type, coupon code, description, points earned, and validity of the benefit.

Linking these fact tables with dimension tables allows analysts to perform more comprehensive analyses and derive insights. Below are the ways in which these linkages can prove beneficial with respect to the following use case:
Awarding Activity-Based Badge for Purchases. For example a customer earns an activity based badge by making a purchase. The objective is to incentivize customer engagement and increase sales by rewarding users with activity-based badges upon making purchases, utilizing the Badges Facts and Dimension Tables.

  • Understanding Badge Attributes: Dimension tables like badgemeta and coupon_series provide additional attributes related to badges and benefits. By linking these tables with the fact tables, analysts can enrich their understanding of the badges being earned or issued and the associated benefits.
    Example - The badge is configured in the system to be awarded to customers who meet the specified criteria (eg. a purchase of more or equal to Rs.1000). A customer makes a purchase.
    The purchase transaction details, including the customer ID, purchase date, and purchase amount, are recorded in the badges_earn fact table. This facts table is linked to badgemeta and users dimension table giving access to the information contained in these tables.
  • Customer Analysis: Linking the dim_customer_id in fact tables with the users dimension table allows analysts to analyse the badge earning and issuance patterns for specific customers. This helps in understanding customer behaviour, preferences, and engagement levels.
    Example - The customer meets the criteria (e.g., customer has purchased for Rs. 1100), and earns the badge. The badges_earn table is linked to the `dim_customer_id’ and ‘users’ dimension table, where the analysts can get more information related to the customer and his behaviour pattern.
  • Temporal Analysis: The date dimension table facilitates temporal analysis by providing various date-related attributes.
    Example - When a customer earns a badge, the badge is issued and the customer gets the associated benefit. All these actions are recorded in the facts tables which are connected to the date dimension table. Analysts can link these attributes with the corresponding date IDs in the fact tables to analyse badge earning and issuance trends over time, such as monthly or quarterly trends.
  • Benefit Utilization: Analysts can examine the utilization of benefits associated with earned badges by linking dim_coupon_series_id with the coupon_series dimension table.
    Example - The customer has received some coupons as the benefit from the earned badge. The benefits facts table is linked to the dim_coupon_series_id with the coupon_series dimension table. This helps in creating a relationship between the benefits accrued by customers, and the specific characteristics or attributes of the coupon series itself. This linkage facilitates tracking and analysis of how benefits are associated with different coupon series, providing insights into the effectiveness and performance of various promotional campaigns or incentive programs.

Overall, by establishing these linkages between fact and dimension tables, analysts can perform various analyses such as customer segmentation, trend analysis, program effectiveness assessment, and optimization of reward strategies, leading to informed decision-making and improved user engagement within the platform.

Badges - Earn (badges_earn)

Column nameData typeDescriptionLinked Table
auto_update_time_badges_earnbigintDate and time when the badges_earn table was last updated. It is in the Unix timestamp format. The update takes place only when the badge deactivation occurs.
dim_badgeMeta_idstringUnique identifier assigned to a badge when it is generated. It is a common key that connects to the badgeMeta dimension table for providing badge details.badgemeta
dim_badges_owner_type_idstringProvides information about the module (name) that granted the customer a particular badge. For instance, if the badge was awarded by the Journeys module, you can retrieve Journeys module details by linking to the badges_owner_type field using this column. The types of modules are - Loyalty/ Referral_Campaigns/ Journeys/ Auidence_Campaigns/ Rewards_Catalog/ Goodwill_Module/ Milestones.badges_owner_type
dim_createdOn_idbigintDate on which the badge was earned by the customer.date
dim_customer_idbigintUnique identifier for the customer associated with the badge.users
dim_event_date_idbigintDate on which the badge was earned.date
dim_expiresOn_idbigintDate on which the badge expires.date
dim_latest_updated_date_idbigintDate when the table was last updated.date
dim_latest_updated_time_idbigintTime when the table was last updated.date
earnIdstringUnique identifier assigned to each row of the earn badges facts table. It is the primary key of this table. It is useful in accessing information related to the customer, badge earn date, badge expiration details, etc.
isActivestringIndicates if the badge is currently active or not.
lastUpdatedBybigintIdentifier of the user who last updated the badge. It could be a brand representative, a Customer Success Manager (CSM), or someone similar.
ownerReferenceIdstringOrchestered ID assigned to the module responsible for awarding the badge, e.g, milestone id, journey id, campaign id, loyalty id, etc.
yearintYear of the event.

Badges - Issue (badges_issue)

Column NameData TypeDescriptionLinked Table
auto_update_time_badges_issuebigintDate and time when the badges_issue table was last updated. It is in the Unix timestamp format. The update takes place only when the badge deactivation occurs.-
badges_issued_idstringIt is an unique identifier for the 'badges issued' facts table. As a primary key, it uniquely identifies each record or entry within the table. It allows tracking and analysis of individual badge issuance events.-
createdBybigintIdentifier of the user who issued the badge, such a brand representative.-
dim_badgeMeta_idstringUnique identifier assigned to a badge when it is generated. It is a common key that connects to the badgeMeta dimension table for providing badge details.badgemeta
dim_badges_owner_type_idstringProvides information about the module (name) that granted the customer a particular badge. For instance, if the badge was awarded by the Journeys module, you can retrieve Journeys module details by linking to the badges_owner_type field using this column. The types of modules are - Loyalty/ Referral_Campaigns/ Journeys/ Auidence_Campaigns/ Rewards_Catalog/ Goodwill_Module/ Milestones.badges_owner_type
dim_createdOn_idbigintDate when the badge was issued to the customer.date
dim_customer_idbigintUnique identifier for the customer associated with the badge.users
dim_event_date_idbigintDate on which the badge was issued.date
dim_expiresOn_idbigintDate on which the badge expires.date
dim_latest_updated_date_idbigintDate when the table was last updated.date
dim_latest_updated_time_idbigintTime when the table was last updated.date
isActivestringIndicates whether the badge is currently active or not.-
lastUpdatedBybigintIdentifier of the user who last updated the badge. It could be a brand representative, a Customer Success Manager (CSM), or someone similar.-
ownerReferenceIdstringOrchestered ID assigned to the module responsible for awarding the badge, e.g. milestone id, journey id, campaign id, loyalty id, etc.-
requestIdstringIt is a request ID generated during the issue of a badge. This ID serves as a reference point for tracking and managing the issuance of badges.-
yearintYear of the event.-

Badges - Earned benefit (badges_earned_benefits)

Column NameData TypeDescriptionLinked Table
allocationStrategyIdbigintDenotes the strategy selected to allocate points for badges. In case of tier-based allocation, points are allocated according to predefined tiers or categories.
auto_update_time_badges_benefits_earnbigintDate and time when the badges_benefits_earn table was last updated. It is in the Unix timestamp format. The update takes place only when the badge deactivation occurs.
benefitTypestringType of benefit linked to the badge. The benefit types are: coupons and points.
couponCodestringThe coupon code associated with the benefit. It is generated by the coupons system.
descriptionstringDescription of the coupon.
dim_badgeMeta_idstringUnique identifier assigned to a badge when it is generated. It is a common key that connects to the badgeMeta dimension table for providing badge details.badgemeta
dim_coupon_series_idstringUnique identifier for coupon series id. Whenever a coupon is generated, it is allocated a unique coupon series ID. It links to the coupon series dimension table, establishing a relationship between the benefits earned and the details of the coupon series.coupon_series
dim_customer_idbigintUnique identifier for the customer associated with the badge.users
dim_event_date_idbigintDate on which the benefit (coupon or point) was earned.date
dim_latest_updated_date_idbigintDate when the table was last updated.date
dim_latest_updated_time_idbigintTime when the table was last updated.date
dim_validTill_idbigintDenotes the coupon validity date.date
discountCodestringDiscount code associated with the coupon series.-
discountTypestringType of discount. Can be ABS - absolute discount type where the discount value is fixed, or percent discount or a fixed discount.-
earnIdstringUnique identifier for the badges_earn table.-
expirationStrategyIdbigintDenotes the strategy used for deciding how points expire for the customer, such as fixed expiry date, or no expiry, etc.-
notesstringProvides additional information or remarks related to badges.-
pointsEarnedbigintPoints earned by the customer.-
programIdbigintThe Loyalty program ID is the identifier assigned to the loyalty program linked to the allocated points.-
promoIdentifierstringUnique identifier assigned to a promotion.-
promotionIdstringUnique id assigned to a particular promotion.-
promotionNamestringRefers to the name of the promotion to which points were allocated, redeemed, or expired.-
statusCodeintStatus code for the action (used for internal purpose).-
uniqueIdstringUnique identifier for the table. As a primary key, it uniquely identifies each record or entry within the table. It allows tracking and analysis of individual badge benefits events.-
yearintYear of the event.-

Streaks

Column nameData type
auto_update_timebigint
current_countbigint
dim_event_date_idbigint
dim_event_time_idbigint
dim_event_user_idbigint
dim_latest_updated_date_idbigint
dim_latest_updated_time_idbigint
dim_streak_idbigint
dim_streak_status_idstring
idbigint
yearint

Rewards

Column nameData typeDescription
BRAND_IDbigintUnique identifier of the brand.
IDbigint
INTOUCH_POINTS_DEDUCTEDString
INTOUCH_USER_IDbigintThe intouch user ID of the customer.
INTOUCH_VOUCHERString
INTOUCH_VOUCHER_EXPIRYString
ISSUED_REF_IDString
MOBILEString
ORG_IDbigintThe identifier associated with the org.
POINTS_REF_IDbigint
REWARD_PROMOTION_LINK_IDbigint
VENDOR_REWARDString
dim_catalog_promotion_idbigint
dim_event_date_idbigint
dim_latest_updated_date_idbigintThe date on which the last update was made to the reward.
dim_latest_updated_time_idbigintThe time at which the last update was made to the reward.
dim_reward_idbigintUnique identifier of the reward.
dim_reward_issue_update_on_idbigintThe time at which the reward was issued.
yearint