About data tables¶
A customer 360 database is built using standard outputs of the Stitch process that provide a unified view of customer data, including customer profile and interaction records that are linked together by the Amperity ID, organized, merged, and ready for use in segmentation.
About the data model¶
The data model represents the “out-of-the-box” tables that are available to every tenant. (AmpIQ tables are available only to tenants that have added AmpIQ to Amperity and have completed the process of enabling predictive attributes.)
Important
This data model represents the starting point for all tenants. It is common for a tenant to have additional tables that support specific data requirements and workflows.
Data model diagram¶
The following diagram shows the data model for core tables in Amperity. Color coded sections identify which groups of tables are associated with customer profiles, interactions records, Stitch QA, and AmpIQ.

Note
Click this diagram to open it in your full browser window. Click HERE to open this diagram in a new tab or right-click that link to save a copy to your computer.
There are four groups of tables in this diagram:
Group name |
Description |
---|---|
Customer records ![]() |
A customer profile is a collection of attributes that are associated with a single unique individual in the customer 360 database. The total number of customer profiles is equal to the total number of rows in the Customer 360 data table. This total correlates strongly, but not exactly, to the total number of Amperity IDs assigned to unique individuals in the same data set. The Customer_360 table represents your primary set of customer profiles and is the most common starting point for building segments. Each customer profile is built using a combination of the Merged_Customers, Customer_Attributes, Unified_Customer, and Unified_Coalesced tables. |
Interaction records ![]() |
An interaction record is a row in a customer data table that contains information about customer behavior, such as purchases (items bought, items returned, costs of items, etc.) and preferences (brands, products, cart adds, etc.). Interaction records rely on a series of tables: Transaction_Attributes, Transaction_Attributes_Extended, Unified_Itemized_Transactions, Unified_Transactions, and Unified_Product_Catalog. Each Amperity ID in the Customer_360 table can be associated to many rows in the Unified_Transactions table, and then each Amperity ID in the Unified_Transactions can be associated to many rows in the Unified_Itemized_Transactions table. Each Amperity ID in the Customer 360 table is associated to one Amperity ID in the Transaction_Attributes table. Note The Transaction_Attributes table has an associated “extended” table that captures additional attributes when data sources provide to Amperity the data required to complete the calculations for the attributes. It exists as a separate table in the customer 360 database, but should be viewed as a subset of transactions attributes data. |
Stitch results ![]() |
Stitch QA is a process that monitors the quality of Stitch results. Stitch QA has two components: a database and a set of queries. The results of these queries are analyzed to help identify values that should be labeled or blocklisted and discover situations where the results of the Stitch process require tuning to match your tenant’s data set. Stitch QA activities rely on a series of tables: Unified_Coalesced, Unified_Scores, Detailed_Examples, Unified_Preprocessed_Raw, Unified_Changes_Clusters, and Unified_Changes_PKS. These tables are the basis for the Stitch QA process ; the use of any specific table will vary from tenant to tenant. Together they provide visibility into how Amperity grouped (or did not group) individual customer records to a single Amperity ID. |
AmpIQ ![]() |
AmpIQ enables customer-centric marketing campaigns. Use segment insights to build high-value segments. Use those segments to add audiences to campaigns. Build campaigns that send those audiences to any combination of downstream marketing workflows. AmpIQ tables are enabled for users of AmpIQ and are the results of the configuration and tuning of Amperity for predictive analytics. These tables rely on the Merged_Customers, Unified_Itemized_Transactions, and Unified_Transactions tables for predictions, but there is not a 1:1 or 1:many relationship between those three tables and AmpIQ tables. The Predicted_CLV_Attributes table contains one row per Amperity ID, whereas the Predicted_Affinity table contains many rows per Amperity ID. The Campaign_Recipients table contains a history of all campaigns that have been sent from Amperity. This table is updated on a recurring basis and may be used like any other table in your customer 360 database. |
Data model indicators¶
This diagram uses the following indicators to highlight relationships between tables and to call out fields that are primary keys, establish links between tables, or associate this table back to a domain table in the Sources page:
All_Opted_In_Emails¶
The All_Opted_In_Emails table contains all opted-in email addresses (and associated Amperity IDs). This table is built from the Email_Opt_Status table, after which it can be extended to support brands, region, email program, and language preferences.
Warning
The All_Opted_In_Emails table is not unique by Amperity ID and should not be used within the Segment Editor.
The All_Opted_In_Emails table contains the same columns as the Email_Opt_Status table. Unlike the Email_Opt_Status table, the All_Opted_In_Emails table should be made available to the Segment Editor. This ensures that the email attribute in this table is available to campaigns. (Choose the email attribute from the All_Opted_In_Emails table from the Edit Attributes menu.)
Campaign_Recipients¶
The Campaign_Recipients table contains a list of Amperity IDs associated with any campaign (i.e., sub-audiences) that were sent from Amperity. Each campaign is associated with the segment used to generate the list of recipients, the control and recipient groups (including sub-audiences) used for the campaign, its launch date, and all destinations to which the campaign was sent.
The Campaign_Recipients table is generated by Amperity, and then made available as a standard database table. Use this table to access campaign attributes, perform historical campaign analysis, and to build segments and multi-stage campaigns that use the results of previous campaigns.
Important
Data in the Campaign_Recipients table is updated after the next database run. If your database is configured to run once per day then data in the Campaign_Recipients table will be available on a 1-day delayed rolling basis.
Note
See Campaign_Recipients for more information about how this table is built and maintained within Amperity.
The Campaign_Recipients table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
campaign_id |
String |
The unique ID for a campaign. |
campaign_name |
String |
The name of the campaign. |
campaign_type |
String |
A campaign is a message or offer that is sent to a specific group of customers or recipients. A campaign may be one of the following types:
A one-time campaign represents a specific campaign message that is configured to be sent only once. A recurring campaign is sent automatically based on an updated/refreshed audience that a customer wants to receive in their outbound destination or a state change, such as an accepted return, a change to a loyalty program, or an alert based on credit card status, with a predefined campaign message and cadence to a list of recipients. |
database_id |
String |
The unique ID for the database. |
database_name |
String |
The name of the database. |
dataset_version |
String |
A unique ID for the dataset used with this set of campaign recipients. |
delivery_datetime |
Datetime |
The date and time at which the associated campaign ID was delivered to the destination. |
destination_id |
String |
The unique ID for a destination. |
destination_name |
String |
The name of the destination to which the associated campaign ID was sent. |
is_control |
Boolean |
A flag that indicates if the treatment_id represents a control group. |
launch_datetime |
Datetime |
The date and time at which the associated campaign ID was sent from Amperity to its downstream workflow. |
pk |
String |
The combination of data source and primary key allows Amperity to uniquely identify every row in every data table across the entirety of customer data input to Amperity. |
segment_id |
String |
The unique ID for the segment that generated the list of recipients for the associated campaign ID. |
segment_name |
String |
The name of the segment used with the associated campaign ID. |
sub_audience_id |
String |
The unique ID for the sub-audience to which the associated campaign was sent. |
sub_audience_name |
String |
The name of the sub-audience to which the associated campaign was sent. |
target_id |
String |
The unique ID for the data template that was used to send campaign data to a downstream channel or workflow. |
target_name |
String |
The name of the data template that was used to send campaign data to a downstream channel or workflow. |
treatment_id |
String |
The ID for the recipient group to which the associated campaign was sent. |
treatment_name |
String |
The name of the recipient group to which the associated campaign was sent. One or more recipient groups, along with a control group, are used to measure the quality of a campaign. |
workflow_id |
String |
The unique ID for the workflow that managed the associated campaign. |
Customer_360¶
The Customer_360 table is the unified view of the customer across all points of engagement, including attributes that cross systems. This table does not exist by default and must be created within the customer 360 database. Each row represent a complete record for a unique individual, including their Amperity ID, merged PII data, and summary attributes.
Note
See Customer360 for more information about how this table is built and maintained within the customer 360 database.
Note
The columns that appear in the Customer_360 table will vary, depending on the SQL statement used to add columns to the table. The set of columns must include the Amperity ID and should include columns that contain profile (PII) data, along with columns that contain summary attributes for interaction records.
The following table represents a Customer_360 table with profile data and a few summary attributes based on interaction records for transaction data:
Column Name |
Data type |
PII |
Description |
---|---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
|
given_name |
String |
The first name that is associated with an individual customer record. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
|
surname |
String |
The last name that is associated with an individual customer record. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
|
String |
The email address that is associated with an individual customer record. A customer record may be associated with multiple email addresses. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
||
phone |
String |
The phone number that is associated with an individual customer record. A customer record may be associated with multiple phone numbers. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
|
address |
String |
The address that is associated with the location of an individual customer record. For example: 123 Main Street. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
|
city |
String |
The city that is associated with the location of an individual customer record. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
|
state |
String |
The state or province that is associated with the location of an individual customer record. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
|
postal |
String |
The zip code or postal code that is associated with the location of an individual customer record. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
|
birthdate |
Date |
The date of birth that is associated with an individual customer record. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
|
gender |
String |
The gender that is associated with an individual customer record. Also in: Merged_Customers, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
Customer_Attributes¶
The Customer_Attributes table contains a series of columns that identify attributes about individuals, such as if that individual can be contacted, if a marketable email address, physical address, or phone number is available, if they are an employee, reseller, or if the individual represents a test account, along with identifying each individuals’s revenue relationship with a brand.
The Customer_Attributes table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
churn_trigger |
String |
The churn status for a customer. Possible values:
Tip Use these values as part of your churn prevention campaigns. |
churn_trigger_start_datetime |
Datetime |
The date and time at which the churn_trigger status begins. |
contactable_address |
Boolean |
A flag that indicates if a customer can be contacted by a physical mailing address. |
contactable_email |
Boolean |
A flag that indicates if a customer has an email address with a valid format. |
contactable_global |
Boolean |
A flag that indicates if a customer can be contacted by phone number, email address, or physical mailing address. |
contactable_paid_social |
Boolean |
A flag that indicates if a customer has personally identifiable information (PII) that could be used to contact them using paid social media channels. |
contactable_phone |
Boolean |
A flag that indicates if a customer has a phone number with a valid format. |
historical_purchaser_lifecycle_status |
String |
The status for a customer, based on their history and recency of interactions a brand. Possible values: “new”, “active”, “lapsed”, “dormant”, and “prospect”. Customer states are defined as “active”, “lapsed”, “dormant”, and “prospect”. Purchase behaviors are assigned across a 5 year window. A customer who has purchased within the previous 365 days (1 year) is assigned to “active” and within the previous 730 days (2 years) is assigned to “lapsed”. A customer who has not purchased within 2 years is assigned to “dormant”. Note The ranges for this field are customizable. The default ranges represent:
|
is_business |
Boolean |
A flag that indicates if a customer is a known or likely business. |
is_employee |
Boolean |
A flag that indicates if a customer is or has been an employee of the brand at any time. |
is_gift_giver |
Boolean |
A flag that indicates if a customer has purchased items as gifts. |
is_no_pii_amperity_id |
Boolean |
A flag that indicates if the customer does not have personally identifiable information (PII) for name (given name, surname, full name), address (street address, city, state, postal code), email address, or phone number. |
is_opted_into_email |
Boolean |
A flag that indicates if the customer has given consent to receive email communications from your brand.
|
is_opted_into_sms |
Boolean |
A flag that indicates if the customer has given consent to receive SMS messages from your brand.
|
is_outlier |
Boolean |
A flag that indicates if the customer has abnormally high purchase behaviors in comparison to other purchasers. |
is_primary_buyer_household |
Boolean |
A flag that indicates if a customer is the individual within a household who represents the highest lifetime revenue for that household. Note This attribute requires the Merged_Households table. |
is_prospect |
Boolean |
A flag that indicates if a customer does not have a purchase history with a brand. |
is_purchaser |
Boolean |
A flag that indicates if the customer has a purchase history with a brand. |
is_reseller |
Boolean |
A flag that indicates if the customer is a known or likely reseller of a product. Tip A reseller should be defined as an early repeat purchaser with a high lifetime order frequency. Use the following fields from the Transaction_Attributes table to define a reseller:
|
is_test_account |
Boolean |
A flag that indicates if the customer is a known test account for a brand. |
Detailed_Examples¶
The Detailed_Examples table contains detailed examples of Stitch results. Use these examples to help identify which features lead to scores with the biggest effect on overall Stitch results, including how they are associated with various combinations of fields that contain PII data.
Note
The Detailed_Examples table is a subset of the Unified_Scores table.
The Detailed_Examples table contains the following columns, as its starting point. This table is typically updated to add more pairs, enable use for blocklisted values, and to support additional tenant-specific use cases.
Column Name |
Data type |
Description |
||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
||||||||||||||
address_a address_b |
String |
The address that is associated with the location of an individual customer record. For example: 123 Main Street. |
||||||||||||||
birthdate_a birthdate_b |
String |
The date of birth that is associated with an individual customer record. |
||||||||||||||
case_count |
String |
|||||||||||||||
city_a city_b |
String |
The city that is associated with the location of an individual customer record. |
||||||||||||||
country_a country_b |
String |
The country that is associated with the location of an individual customer record. |
||||||||||||||
datasource_a datasource_b |
String |
The name of the data source from which this customer record originated. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Coalesced table, which correlates to a single row in a domain table. |
||||||||||||||
email_a email_b |
String |
The email address that is associated with an individual customer record. A customer record may be associated with multiple email addresses. |
||||||||||||||
given_name_a given_name_b |
String |
The first name that is associated with an individual customer record. |
||||||||||||||
match_category |
String |
A match category is a classifier that is applied by Amperity to an individual record-pair within a cluster of record-pairs. The match category is the result of this classification.
Also in: Unified_Scores |
||||||||||||||
phone_a phone_b |
String |
The phone number that is associated with an individual customer record. A customer record may be associated with multiple phone numbers. |
||||||||||||||
pk_a pk_b |
String |
The combination of data source and primary key allows Amperity to uniquely identify every row in every data table across the entirety of customer data input to Amperity. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Coalesced table, which correlates to a single row in a domain table. |
||||||||||||||
postal_a postal_b |
String |
The zip code or postal code that is associated with the location of an individual customer record. |
||||||||||||||
score |
Float |
A score contains a value from 0.0 to 5.0 that represents the combined score assigned to the record pair by Stitch. There are two components of the score: the score itself, and then its strength. The record pair score correlates to the match category, which is a classifier that is applied by Amperity to individual record pairs. The record pair score corresponds to the classification: 5 for exact matches, 4 for excellent matches, 3 for high matches, 2 for moderate matches, 1 for weak matches, and 0 for no matches. The record pair strength represents the strength of the record pair score. It is a two digit number. For example: .31 is a lower strength and .93 is a very high strength. Note Scores are shown for records that end up in the same cluster, including any scores that are below threshold. Scores are not shown for records that do not end up in the same cluster. Also in: Unified_Scores |
||||||||||||||
score_count |
String |
|||||||||||||||
state_a state_b |
String |
The state or province that is associated with the location of an individual customer record. |
||||||||||||||
surname_a surname_b |
String |
The last name that is associated with an individual customer record. |
Email_Engagement_Attributes¶
The Email_Engagement_Attributes table contains many of the same fields as the Email_Engagement_Summary, except for the addition of the Amperity ID field. Whereas the Email_Engagement_Summary table is unique by email and brand (if available), the Email_Engagement_Attributes table is unique by the Amperity ID and email for each brand combination.
Note
In the Email_Engagement_Attributes table, each Amperity ID should only have one email address, per brand.
Tip
The Email_Engagement_Attributes table pulls the email engagement data, for each Amperity ID, from the Email_Engagement_Summary table using the email associated with it in the Merged_Customers table.
Note
The Email_Engagement_Attributes table can be selected as a source in the Segment Editor to segment customers based on their email behavior.
The Email_Engagement_Attributes table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
This column is input to AmpIQ predictive modeling. The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
brand |
String |
The brand or company from which an email was sent. |
String |
The email address to which an email was sent. |
|
email_clicks_last_x_day |
Integer |
The number of email clicks in the last 1, 3, 5, 7, or 14 days. |
email_clicks_last_x_months |
Integer |
The number of email clicks in the last 3, 6, 9, or 12 months. |
email_opens_last_x_day |
Integer |
The number of email opens in the last 1, 3, 5, 7, or 14 days. |
email_opens_last_x_months |
Integer |
The number of email opens in the last 3, 6, 9, or 12 months. |
engagement_frequency_last_15_months |
Varchar |
A classification that measures engagement frequency click rates for email addresses that have received a low volume of emails. Possible values:
Important Send rates must be available. |
engagement_status_last_15_months |
Varchar |
A classification that measures click rates for email addresses that have received a low volume of emails. Possible values:
Important Send rates must be available. |
first_email_click_datetime |
Datetime |
The date and time at which an email was first clicked. |
first_email_open_datetime |
Datetime |
The date and time at which an email was first opened. |
first_email_send_datetime |
Datetime |
The date and time at which an email was sent. |
most_recent_email_bounce_datetime |
Datetime |
The date and time for the most recent bounced email. |
most_recent_email_click_datetime |
Datetime |
The date and time at which a customer most recently clicked a link or offer within an opened email. |
most_recent_email_open_datetime |
Datetime |
The date and time at which a customer most recently opened an email. |
most_recent_email_optin_datetime |
Datetime |
The date and time at which a customer most recently opted-in to receiving email. |
most_recent_email_optout_datetime |
Datetime |
The date and time at which a customer most recently opted-out from receiving email. |
most_recent_email_send_datetime |
Datetime |
The date and time at which an email was most recently sent. |
purchase_before_signup |
Boolean |
This flag indicates whether an Amperity ID is associated with a previous transaction before signing up with this email address. |
signup_to_purchase_days |
Integer |
The number of days between the time this email was used to signup and the next transaction associated with an Amperity ID. Note This field will appear null if there is no transaction(s) made after the email signup. |
Email_Engagement_Summary¶
The Email_Engagement_Summary table contains a summary of email event statistics, such as counts for opens and clicks, the first open, and the most recent click, unique by email address.
Note
The Email_Engagement_Summary table can be used for analysis and to inform the selection of the best email in the Email_Amperity_ID_Assignment table.
The Email_Engagement_Summary table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
brand |
String |
The brand or company from which an email was sent. |
String |
The email address to which an email was sent. |
|
email_clicks_last_x_day |
Integer |
The number of email clicks in the last 1, 3, 5, 7, or 14 days. |
email_clicks_last_x_months |
Integer |
The number of email clicks in the last 3, 6, 9, or 12 months. |
email_opens_last_x_day |
Integer |
The number of email opens in the last 1, 3, 5, 7, or 14 days. |
email_opens_last_x_months |
Integer |
The number of email opens in the last 3, 6, 9, or 12 months. |
engagement_frequency_last_15_months |
Varchar |
A classification that measures engagement frequency click rates for email addresses that have received a low volume of emails. Possible values:
Important Send rates must be available. |
engagement_status_last_15_months |
Varchar |
A classification that measures click rates for email addresses that have received a low volume of emails. Possible values:
Important Send rates must be available. |
first_email_click_datetime |
Datetime |
The date and time at which an email was first clicked. |
first_email_open_datetime |
Datetime |
The date and time at which an email was first opened. |
first_email_send_datetime |
Datetime |
The date and time at which an email was sent. |
most_recent_email_bounce_datetime |
Datetime |
The date and time for the most recent bounced email. |
most_recent_email_click_datetime |
Datetime |
The date and time at which a customer most recently clicked a link or offer within an opened email. |
most_recent_email_open_datetime |
Datetime |
The date and time at which a customer most recently opened an email. |
most_recent_email_optin_datetime |
Datetime |
The date and time at which a customer most recently opted-in to receiving email. |
most_recent_email_optout_datetime |
Datetime |
The date and time at which a customer most recently opted-out from receiving email. |
most_recent_email_send_datetime |
Datetime |
The date and time at which an email was most recently sent. |
purchase_before_signup |
Boolean |
This flag indicates whether an Amperity ID is associated with a previous transaction before signing up with this email address. |
signup_to_purchase_days |
Integer |
The number of days between the time this email was used to signup and the next transaction associated with an Amperity ID. Note This field will appear null if there is no transaction(s) made after the email signup. |
Fiscal_Calendar¶
A fiscal calendar is a yearly accounting period that aligns the weeks and months in a calendar year with holidays and a brand’s marketing goals to align the business for an entire calendar year. A common fiscal calendar used by brands is the 4-5-4 fiscal calendar.
A 4-5-4 calendar divides years into months using a 4 weeks - 5 weeks - 4 weeks pattern. Each week starts on a Sunday and ends on a Saturday. Each quarter has the same number of days. A 4-5-4 calendar can be useful for comparing like days for sales reporting purposes.
The Fiscal_Calendar table is generated by Amperity when fiscal calendar semantic tags are applied to source data tables.
The Fiscal_Calendar table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
calendar_date |
Date |
The standard calendar date. Important The field to which this semantic tag is applied must also be the primary key for the table. |
day_of_week |
String |
The day of the week on which this calendar date falls. |
fiscal_month |
String |
The fiscal month that is associated with the calendar date. |
fiscal_quarter |
String |
The fiscal quarter that is associated with the calendar date. |
fiscal_week_number |
Integer |
The week within the fiscal year on which the calendar date falls. This field indicates on which month a fiscal year starts. |
fiscal_week_start |
Date |
The start of the fiscal week on which the calendar date falls. |
fiscal_year |
Integer |
The fiscal year that is associated with the calendar date. |
holiday_sale_name |
String |
The holiday date (or date range) into which this calendar date falls. |
Merged_Customers¶
The Merged_Customers table is a data table that must be added to a customer 360 database. The purpose of the Merged_Customers table is to collect rows from the Unified_Coalesced table, and then collapse those into a single row per Amperity ID. Columns in the Merged_Customers table are made available to segmentation via the Customer_360 table.
Note
See Merged_Customers for more information about how this table is built and maintained within the customer 360 database.
The Merged_Customers table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
This column is input to AmpIQ predictive modeling. The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
address |
String |
The address that is associated with the location of an individual customer record. For example: 123 Main Street. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
address2 |
String |
Additional address information, such as an apartment number or a post office box, that is associated with the location of an individual customer record. For example: Apt #9. Also in: Unified_Coalesced, Unified_Customer |
birthdate |
Date |
This column is input to AmpIQ predictive modeling. The date of birth that is associated with an individual customer record. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
city |
String |
This column is input to AmpIQ predictive modeling. The city that is associated with the location of an individual customer record. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
company |
String |
The company, typically an employer or small business, that is associated with an individual customer record. |
country |
String |
The country that is associated with the location of an individual customer record. Also in: Unified_Coalesced, Unified_Customer |
create_dt |
String |
Apply the create-dt semantic tag to columns in customer records that identify when the data was created. The field to which this semantic is applied must be a datetime field type. Also in: Unified_Coalesced, Unified_Customer |
String |
This column is input to AmpIQ predictive modeling. The email address that is associated with an individual customer record. A customer record may be associated with multiple email addresses. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
|
full_name |
String |
A combination of given name (first name) and surname (last name) that is associated with an individual customer record and is stored as a combined value in a single field within customer data. A full name may include a middle name or initial. Also in: Unified_Coalesced, Unified_Customer |
gender |
String |
This column is input to AmpIQ predictive modeling. The gender that is associated with an individual customer record. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
generational_suffix |
String |
The suffix that identifies to which family generation a customer record belongs. For example: Jr., Sr. II, and III. Also in: Unified_Coalesced, Unified_Customer |
given_name |
String |
This column is input to AmpIQ predictive modeling. The first name that is associated with an individual customer record. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
loyalty_id |
String |
The identifier for a loyalty program that is associated with an individual customer record. Also in: Unified_Coalesced |
phone |
String |
This column is input to AmpIQ predictive modeling. The phone number that is associated with an individual customer record. A customer record may be associated with multiple phone numbers. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
postal |
String |
This column is input to AmpIQ predictive modeling. The zip code or postal code that is associated with the location of an individual customer record. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
state |
String |
This column is input to AmpIQ predictive modeling. The state or province that is associated with the location of an individual customer record. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
surname |
String |
This column is input to AmpIQ predictive modeling. The last name that is associated with an individual customer record. Also in: Customer_360, Unified_Coalesced, Unified_Customer, Unified_Preprocessed_Raw |
title |
String |
The title that precedes a full name that is associated with an individual customer record. For example: Mr., Mrs, and Dr. Also in: Unified_Coalesced, Unified_Customer |
update_dt |
String |
Apply the update-dt semantic tag to columns in customer records that identify when the data was last updated. The field to which this semantic is applied must be a datetime field type. At least one customer record must have this semantic tag applied to ensure that the update_dt column is created in the Unified_Coalesced table and to ensure that the Merged_Customers table behaves correctly. Also in: Unified_Coalesced, Unified_Customer |
Additional columns in the Merged_Customer table
The Merged_Customers table contains additional columns that help you understand how and why customer profile values are present in the Merged_Customers table.
These column names start with one of name, address, email, phone, birthday, or gender, and then are grouped as described in the following table. For example: name_completion, name_datasource, name_pk, name_priority, and name_update_dt.
Column Suffix |
Description |
---|---|
_completion |
The number of NOT NULL values that are present in a set of data, as defined in Merged_Customers. Combine the use of this column with _priority to understand why a record was selected. A name has three possible values (given_name, surname, and full_name). When all three values are NOT NULL, the value in the name_completion column will be An address has four possible values (address, city, state, and postal). When all four values are NOT NULL, the value in the address_completion column will be An email address has one possible value (email). When this value is NOT NULL, the value in the email_completion column will be A phone number has one possible value (phone). When this value is NOT NULL, the value in the phone_completion column will be A birthdate has one possible value (birthdate). When this value is NOT NULL, the value in the birthdate_completion column will be Gender has one possible value (gender). When this value is NOT NULL, the value in the gender_completion column will be |
_datasource |
The source data table from which the customer profile value originates. Combine the use of this column with _pk to find the record in the source domain table. |
_pk |
The primary key for the record in _datasource. Combine the use of this column with _datasource to find the record in the source domain table. |
_priority |
The priority that is assigned to the source domain table in Merged_Customers. Combine the use of this column with _completion to understand why a record was selected. |
_update_dt |
Opt-in status tables¶
Standard output tables are available that make available your customer’s preferences for email and phone communications from your brand. Use these preferences to determine when and how your brand can use email and SMS to communicate with your customers.
Use the Email_Opt_Status table when your brand communicates with your customers using their email address.
Use the SMS_Opt_Status table when your brand communicates with your customers using their phone number.
Email_Opt_Status¶
The Email_Opt_Status table contains a row for each unique combination of email address, brand, region, and email program.
This table is generated when email-opt/ semantic tags are applied to data sources that contain data that describes your customer’s consent status and gives insight into which customers are available to be used as part an email-based marketing campaign.
Important
Amperity is not the source of truth for email consent status. Email consent status can change quickly, including between the time of this table’s most recent update and the time at which your brand wants to send your customers an email as part of a campaign.
The source of truth for consent status exists downstream from Amperity, often directly within the marketing tool or application that you are using to configure the email campaign, such as Cordial, Braze, Klaviyo, or Attentive.
Use this table to filter audiences in Amperity to include customers who have consented to receiving email messages, and then build a step within the downstream marketing tool that verifies consent status immediately prior to sending an email.
Note
The Email_Opt_Status table represents every email address for which you have provided customer consent data to Amperity. There should be only one consent status by combination of email address, brand, region, or email program.
If you have multiple brands, regions or email programs, it’s possible for the same email address to have more than one customer consent status.
If a brand, region, or email program does not exist, there should be only one customer consent status for each unique email address.
The Email_Opt_Status table contains the following columns:
Semantic Name |
Datatype |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. |
brand |
String |
The brand to which the opt-in status applies. |
String |
The email address that is associated with an individual customer record. A customer record may be associated with multiple email addresses. |
|
email_frequency |
String |
The preferred frequency for email messages. |
email_program |
String |
The email program to which the customer has opted-in. |
is_email_opted_in |
Boolean |
Indicates whether a customer has given consent to being contacted by your brand using the customer’s email address. |
language_preference |
String |
The customer’s preferred language for email messages. |
region |
String |
The region to which the opt-in status applies. |
SMS_Opt_Status¶
The SMS_Opt_Status table contains a row for each unique combination of phone number, brand, region, and SMS program.
This table is generated when sms-opt/ semantic tags are applied to data sources that contain data that describes your customer’s consent status and gives insight into which customers are available to be used as part an SMS-based marketing campaign.
Important
Amperity is not the source of truth for SMS consent status. SMS consent status can change quickly, including between the time of this table’s most recent update and the time at which your brand wants to send your customers an SMS message as part of a campaign.
The source of truth for consent status exists downstream from Amperity, often directly within the marketing tool or application that you are using to configure the SMS campaign, such as Cordial, Braze, Klaviyo, or Attentive.
Use this table to filter audiences in Amperity to include customers who have consented to receiving SMS messages, and then build a step within the downstream marketing tool that verifies consent status immediately prior to sending an SMS message.
Note
The SMS_Opt_Status table represents every phone number for which you have provided customer consent data to Amperity. There should be only one consent status by combination of phone number, brand, region, or SMS program.
If you have multiple brands, regions or SMS programs, it’s possible for the same phone number to have more than one customer consent status.
If a brand, region, or SMS program does not exist, there should be only one customer consent status for each unique phone number.
The SMS_Opt_Status table contains the following columns:
Semantic Name |
Datatype |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. |
brand |
String |
The brand to which the opt-in status applies. |
is_sms_opted_in |
Boolean |
Indicates whether a customer has opted-in to being contacted by your brand using the customer’s phone number. |
language_preference |
String |
The customer’s preferred language for SMS messages. |
phone |
String |
The phone number that is associated with an individual customer record. A customer record may be associated with multiple phone numbers. |
region |
String |
The region to which the opt-in status applies. |
sms_frequency |
String |
The preferred frequency for SMS communications. |
sms_program |
String |
The SMS program to which the customer has opted-in. |
Predicted_Affinity¶
An Affinity table associates individual customers to the products they are most likely to purchase. Use an Affinity table to help deliver personalized experiences to your customers.
Note
See Predicted_Affinity for more information about how this table is built and maintained within the customer 360 database.
An Affinity table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
audience_size_large |
Boolean |
A flag that indicates the recommended audience size. When this value is A large audience is predicted to include ~90% of future purchasers, while also including a high number of non-purchasers. |
audience_size_medium |
Boolean |
A flag that indicates the recommended audience size. When this value is A medium audience is predicted to include ~70% of future purchasers, though it may also include a moderate number of non-purchasers. |
audience_size_small |
Boolean |
A flag that indicates the recommended audience size. When this value is A small audience is predicted to include ~50% of future purchasers, while including the fewest non-purchasers. Use a small audience size to help prevent wasted spend and reduce opt-outs. |
product_attribute |
String |
The field against which product affinity is measured. For example: a category, a class, or a brand. |
ranking |
Integer |
A ranking of customers by their score for this product. A rank that is less than or equal to X will provide the top N customers with an affinity for this product. |
score |
Float |
The strength of a customers’s affinity for this product, shown as an uncalibrated probability. Tip The score is used internally by Amperity, does not directly correlate to ranking and/or audience size, and should not be used in segments. Sort results by ranking, and then compare those results to audience sizes. Higher rankings within smaller audience sizes correlate with stronger affinity. |
Predicted_CLV_Attributes¶
The Predicted_CLV_Attributes table contains information, for each individual Amperity ID, about predicted future spend and the probability of churn.
Note
See Predicted_CLV_Attributes for more information about how this table is built and maintained within the customer 360 database and how it interacts with features within AmpIQ.
The Predicted_CLV_Attributes table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
predicted_average_order_revenue_next_365d |
Decimal |
The predicted average order revenue over the next 365 days. |
predicted_clv_next_365d |
Decimal |
The total predicted customer spend over the next 365 days. |
predicted_customer_lifecycle_status |
String |
A probabilistic grouping of a customer’s likelihood to purchase again. For repeat customers, groupings include the following tiers:
For one-time buyers, groupings include the following tiers:
|
predicted_customer_lifetime_value_tier |
String |
A percentile grouping of customers by predicted CLV. Groupings include:
Note This attribute returns only the customers who belong to the selected value tier. For example, to return all of your top 10% customers, you must choose platinum, gold, and silver. Silver by itself will return 5% of your customers, specifically those are in your 5-10%. |
predicted_order_frequency_next_365d |
Decimal |
The predicted number of orders over the next 365 days. |
predicted_probability_of_transaction_next_365d |
Decimal |
The probability a customer will purchase again in the next 365 days. |
Stitch_BadValues¶
The Stitch_BadValues table contains all of the values that were added to the bad-values blocklist.
The Stitch_BadValues table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
datasource |
String |
The name of the data source from which the value originated. |
semantic |
String |
The semantic tag that is associated with the value that was added to the bad-values blocklist. |
value |
String |
The value that was added to the bad-values blocklist. |
num_values |
String |
The number of times the value appeared in the data. |
num_proxy |
String |
The number of proxies to which the value was associated. When this number exceeds the threshold defined for in the blocklist a value is added to the bad-values blocklist. |
domain_table |
String |
The domain table from which the value originated. |
is_preprocessed |
String |
Indicates if the value was changed during pre-processing by Stitch. For example, phone numbers often have dashes within their values. Dashes are removed by Stitch during pre-processing. When this column is true, and a phone number value is “12065551212”, the original value for that phone number in the associated datasource may be “1-206-555-1212”. |
Stitch_Blocking_Keys¶
The Stitch_Blocking_Keys table contains all of the blocking keys that are associated with the Stitch process.
The Stitch_Blocking_Keys table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
bk |
String |
A blocking key defines a specific combination of characters to be used as a blocking strategy. For example, the first three characters in given-name, the first character in surname, and birthdate represent a blocking key. |
datasource |
String |
The name of the data source from which this customer record originated. Tip The combination of pk and datasource uniquely identifies a row in the Stitch_Blocking_Keys table, which correlates to a single row in a domain table. |
pk |
String |
The combination of data source and primary key allows Amperity to uniquely identify every row in every data table across the entirety of customer data input to Amperity. Tip The combination of pk and datasource uniquely identifies a row in the Stitch_Blocking_Keys table, which correlates to a single row in a domain table. |
strategy |
String |
A blocking strategy acts like a filter against a very large data set. Each blocking strategy applies its filter and all records that match are grouped together into a block. Each record that matches a blocking strategy is a blocking key. |
Stitch_BlocklistValues¶
Note
The Stitch_BlocklistValues table may be added after the bad-values blocklist is configured for your tenant.
The Stitch_BlocklistValues table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
datasource |
String |
The name of the data source from which the blocklisted value originated. A value of |
domain_table |
String |
The name of the domain table from which the blocklisted value originated. |
num_proxy |
Integer |
The distinct number of individuals to which |
num_values |
Integer |
The total number of values. |
pk |
String |
|
semantic |
String |
The semantic type associated with the value that was blocklisted. For example: email. |
value |
String |
The value that was blocklisted. For example: |
Stitch_Scores¶
The Stitch_Scores table contains all scores generated by Stitch, including scores that are not associated with an Amperity ID. Use this table to help understand why records were not associated with an Amperity ID.
The Stitch_Scores table contains the following columns:
Column Name |
Data type |
Description |
||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
amperity_id1 |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. The Amperity ID for the first of two compared records. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
||||||||||||||
amperity_id2 |
String |
The Amperity ID for the second of two compared records. |
||||||||||||||
match_category |
String |
A match category is a classifier that is applied by Amperity to an individual record-pair within a cluster of record-pairs. The match category is the result of this classification.
|
||||||||||||||
match_type |
String |
The type of score being applied. Possible values are as follows: “scored”, “scored_transitive”, and “trivial_duplicate”. |
||||||||||||||
pk1 |
String |
|||||||||||||||
pk2 |
String |
|||||||||||||||
score |
Float |
A score contains a value from 0.0 to 5.0 that represents the combined score assigned to the record pair by Stitch. There are two components of the score: the score itself, and then its strength. The record pair score correlates to the match category, which is a classifier that is applied by Amperity to individual record pairs. The record pair score corresponds to the classification: 5 for exact matches, 4 for excellent matches, 3 for high matches, 2 for moderate matches, 1 for weak matches, and 0 for no matches. The record pair strength represents the strength of the record pair score. It is a two digit number. For example: .31 is a lower strength and .93 is a very high strength. |
||||||||||||||
source1 |
String |
|||||||||||||||
source2 |
String |
Transaction_Attributes¶
The Transaction_Attributes table describes the behavior and history of customer transactions, such as purchase history and frequency, brand preferences, order history, time between purchases, and so on. This table is added automatically when semantics related to transactions are applied to interaction records.
The Transaction_Attributes table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. This column is added when a transaction is associated with an Amperity ID from the Unified_Transactions table. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
early_repeat_purchaser |
Boolean |
Early repeat purchaser is a flag that indicates if a customer made a repeat purchase within the previous 90 days. Tip Use the early_repeat_purchaser attribute as a leading indicator for overall conversion rate of one-time buyers to repeat customers, even when it does not capture the total number of one-time buyers who have returned to purchase again. This column is calculated from the first_order_datetime and second_order_datetime columns in the Transaction_Attributes table. Also in: Transaction_Attributes_Extended |
first_order_datetime |
Datetime |
First order date is the date on which the first order was placed by a customer. This column is calculated from the order_datetime column in the Unified_Transactions table, which is created when the order-datetime semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes_Extended |
first_order_id |
String |
First order ID is the order ID for the first order that was made by a customer. This column is calculated from the order_id column in the Unified_Transactions and Unified_Itemized_Transactions tables, which is created when the order-id semantic tag is applied to interaction records that contain transactions and itemized transactions data. Also in: Transaction_Attributes_Extended |
first_order_is_retained |
Boolean |
First order is retained is a flag that indicates if a customer has made a repeat purchase within 365 days of their first order. |
first_order_revenue |
Decimal |
First order revenue is the total revenue that is associated with a customer’s first order, ignoring returned items and/or cancelled items. This column is calculated from the order_revenue column in the Unified_Transactions table, which is created when the order-revenue semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes_Extended |
first_order_total_items |
Integer |
First order total items represents the number of items that were purchased as part of a customer’s first order, ignoring returned items and/or cancelled items. This column is calculated from the order_quantity column in the Unified_Transactions table, which is created when the order-quantity semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes_Extended |
latest_order_datetime |
Datetime |
Latest order date is the date (and time) on which the most recent order was placed by a customer. This column is calculated from the order_datetime column in the Unified_Transactions table, which is created when the order-datetime semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes_Extended |
latest_order_id |
String |
Latest order ID is the order ID for the most recent order that was made by a customer. This column is calculated from the order_id column in the Unified_Transactions and Unified_Itemized_Transactions tables, which is created when the order-id semantic tag is applied to interaction records that contain transactions and itemized transactions data. Also in: Transaction_Attributes_Extended |
latest_order_revenue |
Decimal |
Latest order revenue is the total revenue that is associated with a customer’s most recent order, ignoring returned items and/or cancelled items. This column is calculated from the order_revenue column in the Unified_Transactions table, which is created when the order-revenue semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes_Extended |
latest_order_total_items |
Integer |
Latest order total items is the number of items that were purchased as part of a customer’s most recent order, ignoring returned items and/or cancelled items. This column is calculated from the order_quantity column in the Unified_Transactions table, which is created when the order-quantity semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes_Extended |
lifetime_average_item_price |
Decimal |
The average individual item price for all orders, ignoring returns and/or cancellations. This column is calculated from the order_quantity and order_revenue columns in the Unified_Transactions table, which are created when the order-quantity and order-revenue semantic tags are applied to interaction records that contain transactions data. |
lifetime_average_num_items |
Decimal |
The average number of items purchased for all orders, ignoring returns and/or cancellations. This column is calculated from the order_id and order_quantity columns in the Unified_Transactions table, which are created when the order-id and order-quantity semantic tags are applied to interaction records that contain transactions data. |
lifetime_average_order_value |
Decimal |
The average lifetime revenue for all orders, ignoring returns and/or cancellations. This column is calculated from the order_id and order_revenue columns in the Unified_Transactions table, which are created when the order-id and order-revenue semantic tags are applied to interaction records that contain transactions data. |
lifetime_largest_order_value |
Decimal |
Lifetime largest order value identifies the largest order that is associated with a customer, ignoring returns and/or cancellations, for a customer’s entire purchase history. This column is calculated from the order_revenue column in the Unified_Transactions table, which is created when the order-revenue semantic tag is applied to interaction records that contain transactions data. |
lifetime_order_frequency |
Integer |
A lifetime order frequency is the total number of orders that that a customer has made during their entire relationship with your brand. This column is calculated from the order_id column in the Unified_Transactions and Unified_Itemized_Transactions tables, which is created when the order-id semantic tag is applied to interaction records that contain transactions and itemized transactions data. |
lifetime_order_revenue |
Decimal |
The lifetime revenue for all items, ignoring returns and/or cancellations. This column is calculated from the order_revenue column in the Unified_Transactions table, which is created when the order-revenue semantic tag is applied to interaction records that contain transactions data. |
lifetime_preferred_purchase_brand |
String |
The most frequent brand for all orders. |
lifetime_preferred_purchase_channel |
String |
The most frequent purchase-channel for all orders. |
lifetime_total_items |
Integer |
The lifetime number of individual items associated with the transaction, ignoring returns and/or cancellations. This column is calculated from the order_quantity column in the Unified_Transactions table, which is created when the order-quantity semantic tag is applied to interaction records that contain transactions data. |
multi_purchase_brand |
Boolean |
A flag that indicates if a customer has interacted with more than one brand. This column is calculated from the purchase_brand column in the Unified_Transactions table, which is created when the purchase-brand semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes_Extended |
multi_purchase_channel |
Boolean |
Multi-purchase channel is a flag that indicates if a customer has purchased from more than one channel. This column is calculated from the purchase_channel column in the Unified_Transactions table, which is created when the purchase-channel semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes_Extended |
one_and_done |
Boolean |
One and done is a flag that indicates if a customer has made only one purchase. Important Amperity uses the range of data that is provided to it to identify one-time buyers. For example, if Amperity is provided data for the years 2015-2022, purchases made in 2014 are not used to identify one-time buyers. This column is calculated from the lifetime_order_frequency column in the Transaction_Attributes table. Also in: Transaction_Attributes_Extended |
second_order_datetime |
Datetime |
Second order date is the date on which the second order was placed by a customer. This column is calculated from the order_datetime column in the Unified_Transactions and Unified_Itemized_Transactions tables, which is created when the order-datetime semantic tag is applied to interaction records that contain transactions and itemized transactions data. Also in: Transaction_Attributes_Extended |
second_order_id |
String |
Second order ID is the order ID for the second order that was made by a customer. This column is calculated from the order_id column in the Unified_Transactions and Unified_Itemized_Transactions tables, which are created when the order-id semantic tag is applied to interaction records that contain transactions and itemized transactions data. Also in: Transaction_Attributes_Extended |
second_order_is_retained |
Boolean |
Second order is retained is a flag that indicates if a customer has made a repeat purchase within 365 days of their second order. |
second_order_revenue |
Decimal |
Second order revenue is the total revenue that is associated with a customer’s second order, ignoring returned items and/or cancelled items. This column is calculated from the order_revenue column in the Unified_Transactions table, which is created when the order-revenue semantic tag is applied to interaction records that contain transactions data. |
second_order_total_items |
Integer |
Second order total items is the number of items that were purchased as part of a customer’s second order, ignoring returned items and/or cancelled items. This column is calculated from the order_quantity column in the Unified_Transactions table, which is created when the order-quantity semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes_Extended |
Transaction attributes, extended¶
The Transaction_Attributes_Extended table contains additional attributes for customer flags, customer orders, data differences, time period rollups, and RFM scores, many of which are represented by duration (days, months, years, lifetime), order position (first, second, last), frequency, and revenue.
Extended transaction attributes–customer flags, customer orders, date differences, time period rollups, and RFM–are also calculated by Amperity based on data sources that contain interaction records that were tagged with transactions and itemized transaction semantics.
Extended transaction attributes are added to the Transaction_Attributes_Extended table, which is an output of Stitch. Extended transaction attributes are fully available to the customer 360 database and to segments.
Extended transaction attributes are presented as a single table (with many columns), including an Amperity ID, and fit into the following categories:
Customer flags¶
Each record has a set of flags that indicate if a customer has purchased, the number of brand interactions, the number of brand channels, and if that customer is an early repeat purchaser.
Column Name |
Data type |
PII |
Description |
---|---|---|---|
amperity_id |
String |
An Amperity ID is a patented unique identifier that is assigned to clusters of customer records. A single Amperity ID represents a single individual. Unlike other systems, the Amperity ID is reassessed every day for the most comprehensive view of your customers. |
|
early_repeat_purchaser |
Boolean |
Early repeat purchaser is a flag that indicates if a customer made a repeat purchase within the previous 90 days. Tip Use the early_repeat_purchaser attribute as a leading indicator for overall conversion rate of one-time buyers to repeat customers, even when it does not capture the total number of one-time buyers who have returned to purchase again. Also in: Transaction_Attributes |
|
multi_purchase_brand |
Boolean |
A flag that indicates if a customer has interacted with more than one brand. This column is calculated from the purchase_brand column in the Unified_Transactions table, which is created when the purchase-brand semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes |
|
multi_purchase_channel |
Boolean |
Multi-purchase channel is a flag that indicates if a customer has purchased from more than one channel. This column is calculated from the purchase_channel column in the Unified_Transactions table, which is created when the purchase-channel semantic tag is applied to interaction records that contain transactions data. Also in: Transaction_Attributes |
|
one_and_done |
Boolean |
One and done is a flag that indicates if a customer has made only one purchase. Important Amperity uses the range of data that is provided to it to identify one-time buyers. For example, if Amperity is provided data for the years 2015-2022, purchases made in 2014 are not used to identify one-time buyers. Also in: Transaction_Attributes |
Customer orders¶
Each record contains a subset of order data from a customers first, second, and latest order. Each set of attributes is prefixed by first, second, or latest, depending on the order data that is being summarized.
Column Name |
Data type |
PII |
Description |
---|---|---|---|
<x>_order_datetime |
Datetime |
The datetime on which the order was made. Available columns:
Also in: Transaction_Attributes |
|
<x>_order_id |
String |
The ID of the order. Available columns:
Also in: Transaction_Attributes |
|
<x>_order_purchase_brand |
String |
The brand of the order made by the customer. Available columns:
Also in: Transaction_Attributes |
|
<x>_order_purchase_channel |
String |
The channel in which the customer’s order was made. Available columns:
Also in: Transaction_Attributes |
|
<x>_order_revenue |
Decimal |
The total revenue for orders at each interval. Available columns:
Also in: Transaction_Attributes |
|
<x>_store_id |
String |
The ID of the store where the customer made their order. This value may be
|
|
<x>_total_items |
Integer |
The total number of items in the order. Available columns:
Also in: Transaction_Attributes |
Date differences¶
Each record contains three attributes that specify the number of days between certain events.
Column Name |
Data type |
PII |
Description |
---|---|---|---|
days_since_latest_order |
Integer |
Days since latest order measures the number of days that have elapsed since a customer has placed an order. This column is calculated from the latest_order_datetime column in the Transaction_Attributes table. |
|
first_to_latest_order_days |
Integer |
First-to-latest order days is the number of days that have elapsed between the date of the first order and the date of the latest order. This column is calculated from the first_order_datetime and latest_order_datetime columns in the Transaction_Attributes table. |
|
first_to_second_order_days |
Integer |
First-to-second order days is the number of days that have elapsed between the date of the first order and the date of the second order. This column is calculated from the first_order_datetime and second_order_datetime columns in the Transaction_Attributes table. |
Time period rollups¶
Each record contains time period rollups of the customer’s transaction history. The time periods used are lifetime, L12M (the 12 months of transaction history starting 12 months ago), LY12M (the 12 months of transaction history starting 24 months ago), and L30D (the last 30 days).
Column Name |
Data type |
PII |
Description |
---|---|---|---|
<x>_average_item_price |
Decimal |
The average item price during the time period. Available columns:
|
|
<x>_average_num_items |
Decimal |
The average number of items during the time period. Available columns:
|
|
<x>_average_order_value |
Decimal |
The average order value during the time period. Available columns:
|
|
<x>_order_frequency |
Integer |
The count of distinct order IDs that are associated with the customer during the time period. Available columns:
|
|
<x>_order_revenue |
Decimal |
The total revenue for orders in the time period. Available columns:
|
|
<x>_preferred_purchase_brand |
String |
The brand with the greatest number of orders during the time period. Available columns:
|
|
<x>_preferred_purchase_channel |
String |
The channel with the greatest number of orders during the time period. Available columns:
|
|
<x>_preferred_store_id |
String |
The store ID with the greatest number of orders during the time period. Available columns:
|
|
<x>_purchase_brands |
Integer |
The count of the distinct brands a customer interacted with during the time period. Available columns:
|
|
<x>_purchase_channels |
Integer |
The count of the distinct channels (online, in store, etc.) that the customer interacted with during during the time period. Available columns:
|
|
<x>_stores |
Integer |
The count of the distinct stores that the customer interacted with during the time period. Available columns:
|
|
<x>_total_items |
Integer |
The total number of items purchased by the customer during the time period. Available columns:
|
RFM¶
Amperity calculates RFM scores against transactions that occurred within the last 12 months.
Each of the recency (R), frequency (F), and monetary (M) scores are represented by a number between 0 and 9. The final RFM score is a concatenation of the individual scores: recency first, then frequency, monetary last. The final RFM score is a number between 0 and 999.
Note
RFM uses approximate calculations to optimize the performance of the Transaction_Attributes table.
Unified_Changes¶
The Unified_Changes table contains a 30-day rolling history of every change that occurred during a Stitch run. This table is also useful for downstream processes associated with non-customer 360 databases, such as synchronizing Amperity output to external customer-owned systems and the Stitch QA process.
DEPRECATED
This table has been replaced by the Unified_Changes_Clusters and Unified_Changes_PKS tables. Please refer to those sections.
Unified_Changes_Clusters¶
The Unified_Changes_Clusters table contains a history of changes to cluster graphs, relative to the previous Stitch run.
The Unified_Changes_Clusters table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
change_type |
String |
The type of change that occurred within the Stitch job. Possible values include:
Also in: Unified_Changes_PKS |
job_id |
String |
The job ID for database table generation. For example: Also in: Unified_Changes_PKS |
timestamp |
Datetime |
The timestamp that is associated with Also in: Unified_Changes_PKS |
Unified_Changes_PKS¶
The Unified_Changes_PKS table contains a history of changes to primary keys, relative to the previous Stitch run.
The Unified_Changes_PKS table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
amperity_id_prev |
String |
The Amperity ID that was previously associated with the primary key ( |
change_type |
String |
The type of change that occurred within the Stitch job. Possible values include:
Also in: Unified_Changes_Clusters |
datasource |
String |
The name of the data source from which this customer record originated. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Coalesced table, which correlates to a single row in a domain table. |
job_id |
String |
The job ID for database table generation. For example: Also in: Unified_Changes_Clusters |
pk |
String |
The combination of data source and primary key allows Amperity to uniquely identify every row in every data table across the entirety of customer data input to Amperity. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Coalesced table, which correlates to a single row in a domain table. |
timestamp |
Datetime |
The timestamp that is associated with Also in: Unified_Changes_Clusters |
Unified_Coalesced¶
The Unified_Coalesced table contains all the PII data that has been processed through Stitch. The data is organized by the semantic tag as the column heading and then coalesced into one single table. A unique Amperity ID may appear in more than one row.
The Unified_Coalesced table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
address |
String |
The address that is associated with the location of an individual customer record. For example: 123 Main Street. Values in this column depend on fields that are tagged with the address semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
address2 |
String |
Additional address information, such as an apartment number or a post office box, that is associated with the location of an individual customer record. For example: Apt #9. Values in this column depend on fields that are tagged with the address2 semantic. Also in: Merged_Customers, Unified_Customer |
birthdate |
Date |
The date of birth that is associated with an individual customer record. Values in this column depend on fields that are tagged with the birthdate semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
blv_address |
Boolean |
When true, the address on this customer record matches a blocklist value. |
blv_email |
Boolean |
When true, the email on this customer record matches a blocklist value. |
blv_given_name |
Boolean |
When true, the given-name on this customer record matches a blocklist value. |
blv_phone |
Boolean |
When true, the phone on this customer record matches a blocklist value. |
blv_surname |
Boolean |
When true, the surname on this customer record matches a blocklist value. |
city |
String |
The city that is associated with the location of an individual customer record. Values in this column depend on fields that are tagged with the city semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
ck |
String |
The ck semantic tag may be applied to a column that contains pre-existing, tenant-specific customer IDs. When customer keys are applied, Amperity compares them to the Amperity ID as part of the deduplication process. Tip What happens to customer keys in the Unified_Coalesced table?
Also in: Unified_Customer |
component_id |
Integer |
An identifier that represents a set of records that are transitively connected with a score above threshold as an outcome of blocking and initial scoring. Records that share a component ID, but have different Amperity IDs, were split during hierarchical comparison. Tip Records with different Also in: Unified_Preprocessed_Raw |
country |
String |
The country that is associated with the location of an individual customer record. Values in this column depend on fields that are tagged with the country semantic. Important The country field is added to the Unified_Coalesced table when fields are tagged with the country profile semantic. Also in: Merged_Customers, Unified_Customer |
create_dt |
String |
Apply the create-dt semantic tag to columns in customer records that identify when the data was created. The field to which this semantic is applied must be a datetime field type. Also in: Merged_Customers, Unified_Customer |
datasource |
String |
The name of the data source from which this customer record originated. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Coalesced table, which correlates to a single row in a domain table. |
String |
The email address that is associated with an individual customer record. A customer record may be associated with multiple email addresses. Values in this column depend on fields that are tagged with the email semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
|
fk_[name] |
String |
The fk-[namespace] semantic tag identifies a field as a foreign key. A foreign key semantic tag must be namespaced. For example: fk-customer, fk-interaction, fk-audience, or fk-brand. A column is added for each foreign key that is defined in the Sources tab. Tip What happens to foreign keys in the Unified_Coalesced table?
Also in: Unified_Customer, Unified_Preprocessed_Raw |
full_name |
String |
A combination of given name (first name) and surname (last name) that is associated with an individual customer record and is stored as a combined value in a single field within customer data. A full name may include a middle name or initial. Values in this column depend on fields that are tagged with the full-name semantic. Also in: Merged_Customers, Unified_Customer |
gender |
String |
The gender that is associated with an individual customer record. Values in this column depend on fields that are tagged with the gender semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
generational_suffix |
String |
The suffix that identifies to which family generation a customer record belongs. For example: Jr., Sr. II, and III. Also in: Merged_Customers, Unified_Customer |
given_name |
String |
The first name that is associated with an individual customer record. Values in this column depend on fields that are tagged with the given-name semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
has_blv |
Boolean |
The |
is_supersized |
Boolean |
Indicates when a rough heuristic is applied to the first grouping of records (rep_pk) to partition supersized records into smaller components. Supersized records occur when more than 500 groups are associated with the first grouping of records. |
loyalty_id |
String |
The identifier for a loyalty program that is associated with an individual customer record. Also in: Merged_Customers |
phone |
String |
The phone number that is associated with an individual customer record. A customer record may be associated with multiple phone numbers. Values in this column depend on fields that are tagged with the phone semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
pk |
String |
The combination of data source and primary key allows Amperity to uniquely identify every row in every data table across the entirety of customer data input to Amperity. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Coalesced table, which correlates to a single row in a domain table. |
postal |
String |
The zip code or postal code that is associated with the location of an individual customer record. Values in this column depend on fields that are tagged with the postal semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
rep_ds |
Integer |
The rep_ds column shows the datasource that is associated with the rep_pk column. |
rep_pk |
Integer |
The rep_pk column is an identifier that represents the first grouping of records done by Stitch. This grouping is based on identical semantic patterns. Tip The combination of rep_ds and rep_pk represent qualified trivial duplications, which are records with enough identical PII to score 3.0 (or greater) and were grouped together by Stitch early in the identity resolution process. All qualified trivial duplicates are treated as a single record by downstream Stitch processes. The rep_ds and rep_pk fields are included in the Unified_Coalesced table to help with situations where it’s necessary to understand why two records were not clustered together. |
state |
String |
The state or province that is associated with the location of an individual customer record. Values in this column depend on fields that are tagged with the state semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
supersized_id |
Integer |
An identifier that represents supersized records that were partitioned into smaller components. Also in: Unified_Preprocessed_Raw |
surname |
String |
The last name that is associated with an individual customer record. Values in this column depend on fields that are tagged with the surname semantic. Also in: Customer_360, Merged_Customers, Unified_Customer, Unified_Preprocessed_Raw |
title |
String |
The title that precedes a full name that is associated with an individual customer record. For example: Mr., Mrs, and Dr. Also in: Merged_Customers, Unified_Customer |
update_dt |
String |
Apply the update-dt semantic tag to columns in customer records that identify when the data was last updated. The field to which this semantic is applied must be a datetime field type. At least one customer record must have this semantic tag applied to ensure that the update_dt column is created in the Unified_Coalesced table and to ensure that the Merged_Customers table behaves correctly. Also in: Merged_Customers, Unified_Customer |
Unified_Compliance¶
The Unified_Compliance table consists of all the tables tagged with the email, request-id, request-strategy, and request-type semantic tags, which are used to suppress data per customer deletion requests or a data subject access request (DSAR).
The Unified_Compliance table consolidates sources tagged with:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
ck |
String |
The ck semantic tag may be applied to a column that contains pre-existing, tenant-specific customer IDs. When customer keys are applied, Amperity compares them to the Amperity ID as part of the deduplication process. Also in: Unified_Custoers |
Customer profile |
String |
This contains the columns for the following customer profile fields: address, birthdate, city, email, gender, given_name, loyalty_id, phone, postal, surname, and state |
datasource |
String |
The name of the data source from which this customer record originated. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Coalesced table, which correlates to a single row in a domain table. |
fk_[name] |
String |
The fk-[namespace] semantic tag identifies a field as a foreign key. A foreign key semantic tag must be namespaced. For example: fk-customer, fk-interaction, fk-audience, or fk-brand. A column is added for each foreign key that is defined in the Sources tab. Tip What happens to foreign keys in the Unified_Coalesced table?
Also in: Unified_Customer, Unified_Preprocessed_Raw |
pk |
String |
The combination of data source and primary key allows Amperity to uniquely identify every row in every data table across the entirety of customer data input to Amperity. |
request_datasource |
String |
An identifier that represents the first grouping of records done by Stitch. This grouping is based on identical semantic patterns. |
request_email |
String |
The email address for the customer. This is used to find their records in Amperity. |
request_id |
Integer |
The tracking identifier for the customer’s compliance workflow. This ID should be provided by the customer and must be unique. |
request_strategy |
String |
The compliance request strategy used for matching exact email data, semantic tags, and Amperity IDs. |
request_type |
String |
The type of compliance request. Possible values: delete or data subject access request (DSAR). |
Unified_Customer¶
The Unified_Customer table contains every row of every stitched table with all semantics coalesced into a single column, with two exceptions that are removed from the table: values from a bad-values blocklist and values associated with supersized clusters. A unique Amperity ID may appear in more than one row.
Note
See Unified_Customers for more information about how this table is built and maintained within the customer 360 database.
Note
This table is similar to the Unified_Coalesced table, but will not contain columns related to blocklists or supersized clusters.
The Unified_Customer table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
address |
String |
The address that is associated with the location of an individual customer record. For example: 123 Main Street. Values in this column depend on fields that are tagged with the address semantic. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
address2 |
String |
Additional address information, such as an apartment number or a post office box, that is associated with the location of an individual customer record. For example: Apt #9. Values in this column depend on fields that are tagged with the address2 semantic. Also in: Merged_Customers, Unified_Coalesced |
birthdate |
Date |
The date of birth that is associated with an individual customer record. Values in this column depend on fields that are tagged with the birthdate semantic. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
city |
String |
The city that is associated with the location of an individual customer record. Values in this column depend on fields that are tagged with the city semantic. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
ck |
String |
The ck semantic tag may be applied to a column that contains pre-existing, tenant-specific customer IDs. When customer keys are applied, Amperity compares them to the Amperity ID as part of the deduplication process. Also in: Unified_Coalesced |
country |
String |
The country that is associated with the location of an individual customer record. Values in this column depend on fields that are tagged with the country semantic. Also in: Merged_Customers, Unified_Coalesced |
create_dt |
String |
Apply the create-dt semantic tag to columns in customer records that identify when the data was created. The field to which this semantic is applied must be a datetime field type. Also in: Merged_Customers, Unified_Coalesced |
datasource |
String |
The name of the data source from which this customer record originated. |
String |
The email address that is associated with an individual customer record. A customer record may be associated with multiple email addresses. Values in this column depend on fields that are tagged with the email semantic. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
|
fk_[name] |
String |
The fk-[namespace] semantic tag identifies a field as a foreign key. A foreign key semantic tag must be namespaced. For example: fk-customer, fk-interaction, fk-audience, or fk-brand. A column is added for each foreign key that is defined in the Sources tab. Tip What happens to foreign keys in the Unified_Coalesced table?
Also in: Unified_Coalesced, Unified_Preprocessed_Raw |
full_name |
String |
A combination of given name (first name) and surname (last name) that is associated with an individual customer record and is stored as a combined value in a single field within customer data. A full name may include a middle name or initial. Values in this column depend on fields that are tagged with the full-name semantic. Also in: Merged_Customers, Unified_Coalesced |
gender |
String |
The gender that is associated with an individual customer record. Values in this column depend on fields that are tagged with the gender semantic. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
generational_suffix |
String |
The suffix that identifies to which family generation a customer record belongs. For example: Jr., Sr. II, and III. Also in: Merged_Customers, Unified_Coalesced |
given_name |
String |
The first name that is associated with an individual customer record. Values in this column depend on fields that are tagged with the given-name semantic. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
loyalty_id |
String |
The identifier for a loyalty program that is associated with an individual customer record. |
phone |
String |
The phone number that is associated with an individual customer record. A customer record may be associated with multiple phone numbers. Values in this column depend on fields that are tagged with the phone semantic. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
pk |
String |
The combination of data source and primary key allows Amperity to uniquely identify every row in every data table across the entirety of customer data input to Amperity. |
postal |
String |
The zip code or postal code that is associated with the location of an individual customer record. Values in this column depend on fields that are tagged with the postal semantic. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
state |
String |
The state or province that is associated with the location of an individual customer record. Values in this column depend on fields that are tagged with the state semantic. Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
surname |
String |
The last name that is associated with an individual customer record. Values in this column depend on fields that are tagged with the surname semantic. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Preprocessed_Raw |
title |
String |
The title that precedes a full name that is associated with an individual customer record. For example: Mr., Mrs, and Dr. Also in: Merged_Customers, Unified_Coalesced |
update_dt |
String |
Apply the update-dt semantic tag to columns in customer records that identify when the data was last updated. The field to which this semantic is applied must be a datetime field type. At least one customer record must have this semantic tag applied to ensure that the update_dt column is created in the Unified_Coalesced table and to ensure that the Merged_Customers table behaves correctly. Also in: Merged_Customers, Unified_Coalesced |
Unified_Email_Events¶
The Unified_Email_Events table contains individual email event information, such as sends, opens, clicks, opt-in and opt-out preferences, bounces, and conversions. This table is added as Stitch output when email event semantic tags are applied to data sources.
Important
This table is only generated when email-events semantic tags are applied to data sources that provide at least 15 months of data for raw email events.
The Unified_Email_Events table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
brand |
String |
The brand or company from which an email was sent. Values in this column depend on fields that are tagged with the email-event/brand semantic. |
datasource |
String |
|
String |
The email address to which an email was sent. Values in this column depend on fields that are tagged with the email-event/email semantic. |
|
event_datetime |
Datetime |
The date and time at which email event occurred. Values in this column depend on fields that are tagged with the email-event/event-datetime semantic. |
event_type |
String |
The type of email event. Possible values:
Important The values for email event types must spelled as expected to ensure the Email_Engagement_Summary can properly summarize email events. For example: “Optin” may not be “Opt-in”. Values in this column depend on fields that are tagged with the email-event/event-type semantic. |
pk |
String |
|
region |
String |
The region or location from which an email was sent. The region or location is typically associated to a single brand. Values in this column depend on fields that are tagged with the email-event/region semantic. |
send_id |
String |
The unique identifier for the email that was sent to an email address at a specific date and time. If a data source does not provide a send ID a unique key is generated. Values in this column depend on fields that are tagged with the email-event/send-id semantic. |
Unified_Itemized_Transactions¶
The Unified_Itemized_Transactions table contains every row of every stitched table with all transactional data summarized to the item level, and then coalesced into a single column for each unique combination of order ID and product ID. The order ID is associated with an Amperity ID.
Note
These columns are created when txn-item semantics are applied to interaction records that contain itemized transaction data.
The following diagram shows an example of the Unified_Itemized_Transactions table (click to view a larger diagram):

The Unified_Itemized_Transactions table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
customer_id |
String |
A custom semantic tag that is applied to interaction records to identify a field that is used in downstream processes to associate interaction records to the Amperity ID. A customer ID may appear once for each unique order ID in the itemized transactions table. Note A namespaced foreign key may be used instead of (or in addition to) a customer ID. Values in this column depend on fields that are tagged with the txn-item/customer-id semantic or a foreign key. Also in: Unified_Transactions |
currency |
String |
Currency represents the type of currency that was used to pay for an item. For example: dollar. Note Currency must be consistent across all orders from the same data source. Values in this column depend on fields that are tagged with the txn-item/currency semantic. |
digital_channel |
String |
The digital channel through which a transaction was made. For example: Facebook, Google Ads, email, etc. Note This column should only have values when purchase-channel specifies an online channel. Values in this column depend on fields that are tagged with the txn-item/digital-channel semantic. |
is_cancellation |
Boolean |
A flag that indicates if the item was cancelled. Values in this column depend on fields that are tagged with the txn-item/is-cancellation semantic. Important This value should be |
is_return |
Boolean |
This column is input to AmpIQ predictive modeling. A flag that indicates if the item was returned. Values in this column depend on fields that are tagged with the txn-item/is-return semantic. Important This value should be |
item_cost |
Decimal |
Item cost is the cost to produce all units of an item. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/item-cost semantic. |
item_discount_amount |
Decimal |
Item discount amount is the discount amount that is applied to all units that are associated with a single item within a single transaction. This value should equal item quantity multiplied by unit discount amounts. This value is used by Amperity for discount sensitivity analysis. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/item-discount-amount semantic. |
item_discount_percent |
Decimal |
Item discount percent is the percentage discount that is applied to all units that are associated with a single item within a single transaction. This value is used by Amperity for discount sensitivity analysis. Note This value must be between 0 and 1. Values in this column depend on fields that are tagged with the txn-item/item-discount-percent semantic. |
item_list_price |
Decimal |
Item list price is the manufacturer’s suggested retail price (MSRP) for all units of this item. The manufacturer’s suggested retail price (MSRP) is the price before shipping costs, taxes, and/or discounts have been applied. MSRP is sometimes referred to as the base price. This value should equal item revenue plus item discount amount. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/item-list-price semantic. |
item_profit |
Decimal |
Item profit represents the amount of profit that is earned when all units of an item are sold. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/item-profit semantic. |
item_quantity |
Integer |
This column is input to AmpIQ predictive modeling. Item quantity is the total number of items in an order. When an item has been returned or an order has been cancelled, item quantity is the total number of items that were returned and/or cancelled. Note This value must be less than or equal to 0 when is-return or is-cancellation are true. Values in this column depend on fields that are tagged with the txn-item/item-quantity semantic. |
item_revenue |
Decimal |
This column is input to AmpIQ predictive modeling. The total revenue for all units of an item, after discounts are applied. When an item has been returned or the order has been cancelled, the total revenue for all items that were returned and/or cancelled. This value should equal item quantity multiplied by unit revenue. Note This value must be less than or equal to 0 when is-return or is-cancellation are true. Tip A return or cancellation is stored as a separate record in the Unified_Itemized_Transactions table and is identified by a value of true in the is_return or is_cancellation column. Values in this column depend on fields that are tagged with the txn-item/item-revenue semantic. |
item_subtotal |
Decimal |
An item subtotal is the amount for an item, before discounts are applied. This value should equal unit list price times item quantity. This value is used by Amperity for discount sensitivity analysis. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/item-subtotal semantic. |
item_tax_amount |
Decimal |
An item tax amount is the total amount of taxes that are associated with the purchase of an item. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/item-tax-amount semantic. |
order_datetime |
Datetime |
This column is input to AmpIQ predictive modeling. Order datetime is the date (and time) on which an order was placed. Note Other dates associated with an order that are not specific to a transactions, such as dates associated with hotel stays and reservations, should be added to the Unified_Product_Catalog table. When is_return is When is_cancellation is Values in this column depend on fields that are tagged with the txn-item/order-datetime semantic. This column is used to calculate the following transaction attributes:
Also in: Unified_Transactions |
order_discount_amount |
Decimal |
This column is input to AmpIQ predictive modeling. Order discount amount is the total discount amount that is applied to the entire order. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Order discount amounts should be rolled-up to the Unified_Transactions table (from the Unified_Itemized_Transactions table) using one of the following approaches:
Caution This value should match the customer’s definition of an order-level discount. For example, some customers associate this value to order value, whereas others associate this value to a subtotal. Use domain SQL to update this field for the desired calculation. Also in: Unified_Transactions |
order_id |
String |
This column is input to AmpIQ predictive modeling. An order ID is the unique identifier for the order and links together all of the items that were part of the same transaction. When an item has been returned or when an order has been cancelled, the order ID is the unique identifier for the original order, including the returned or cancelled items. This field is often the primary key and associated with the pk semantic tag. Note For data that contains itemized transactions, where a single transaction includes more than one of the same item, the order ID will appear more than once. Note The order ID should never change, even when an item in the order is returned or cancelled. Caution If order IDs are recycled and/or are otherwise not guaranteed to be unique over time, the unique identifier for the order must be updated to be a combination of the order ID and the date on which the order occurred. This must be done using domain SQL similar to: Values in this column depend on fields that are tagged with the txn-item/order-id semantic. The combination of order_id and product_id must be unique for each row in this table. This column is used to calculate the following transaction attributes:
Also in: Unified_Transactions |
payment_method |
String |
A payment method is how a customer chose to pay for the items they have purchased. For example: credit card, gift card, or cash. Values in this column depend on fields that are tagged with the txn-item/payment-method semantic. |
Product catalogs |
String |
Optional Product catalog fields are added to the Unified_Itemized_Transactions table in two ways, depending on the approach your tenant used for defining your product catalog:
Important The names of the columns that are available for product catalogs are identical. For example: “product_brand”, “product_category”, and “product_gender”. The difference is the outcome of the approach your tenant used to define your product catalog within Amperity. |
product_id |
String |
This column is input to AmpIQ predictive modeling. The unique identifier for a product. A stock keeping unit (SKU) is an identifier that captures all of the unique details of any individual product, including specific attributes that differentiate by color, size, material, and so on. For example, a shirt with the same color and material, but with three different sizes would be represented by three unique SKUs and would also be represented by three unique product IDs. Note For data that contains itemized transactions, where a single transaction includes more than one of the same product, the product ID will appear more than once. Caution Every customer has their own definition for SKUs and product IDs. Be sure to understand this definition before applying semantic tags to fields with product IDs to ensure they accurately reflect the customer’s definition. Values in this column depend on fields that are tagged with the txn-item/product-id semantic. The combination of order_id and product_id must be unique for each row in this table; product quantity is counted using item_quantity. Important This column is recommended when using a product catalog. A product catalog is a requirement for certain predictive features of AmpIQ, such as for product affinity and audience sizes. |
purchase_brand |
String |
The brand for which a transaction was made. Note This column should only have values when interaction records contain transactions data for more than one brand. Values in this column depend on fields that are tagged with the txn-item/purchase-brand semantic. This column is used to calculate the following transaction attributes: multi_purchase_brand. |
purchase_channel |
String |
This column is input to AmpIQ predictive modeling. A purchase channel is the channel from which a transaction was made. For example: in-store or online. Values in this column depend on fields that are tagged with the txn-item/purchase-channel semantic. |
store_id |
String |
A store ID is a unique identifier that is identified with the location of a store. Values in this column depend on fields that are tagged with the txn-item/store-id semantic. |
unit_cost |
Decimal |
Unit cost is the cost to produce a single unit of one item. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/unit-cost semantic. |
unit_discount_amount |
Decimal |
Unit discount amount is the discount amount that is applied to a single unit of one item. This discount is often applied to all units of the same item within a single transaction. This value is used by Amperity for discount sensitivity analysis. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/unit-discount-amount semantic. |
unit_list_price |
Decimal |
Unit list price is the manufacturer’s suggested retail price (MSRP) for a single unit of an item. The manufacturer’s suggested retail price (MSRP) is the price before shipping costs, taxes, and/or discounts have been applied. MSRP is sometimes referred to as the base price. This value should equal the unit discount amount plus the unit subtotal. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/unit-list-price semantic. |
unit_profit |
Decimal |
Unit profit represents the amount of profit that is earned when a single unit of an item is sold. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/unit-profit semantic. |
unit_revenue |
Decimal |
The total revenue for a single unit of an item. When an item has been returned or the order has been cancelled, the total revenue for a single unit of an item that was returned and/or cancelled. Note This value must be less than or equal to 0 when is-return or is-cancellation are true. Values in this column depend on fields that are tagged with the txn-item/unit-revenue semantic. |
unit_subtotal |
Decimal |
A unit subtotal is the amount for a single unit of one item, before discounts have been applied. This value is used by Amperity for discount sensitivity analysis. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/unit-subtotal semantic. |
unit_tax_amount |
Decimal |
A unit tax amount is the total amount of taxes that are associated with a single unit. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Values in this column depend on fields that are tagged with the txn-item/unit-tax-amount semantic. |
Custom attributes |
Varies |
You may extend the Unified_Itemized_Transactions table to define custom attributes for use with a product catalog. Important This column is recommended when using a product catalog. A product catalog is a requirement for certain predictive features of AmpIQ, such as for product affinity and audience sizes. Add custom attributes to the Unified_Itemized_Transactions table by extending it to add columns that support using a product catalog. Custom attributes should include the columns to which product catalog semantic tags were applied, but may include additional custom attributes that are unique to your tenant and your brands. Important The Unified_Product_Catalog table represents the taxonomy for your products and brands. Attributes are added to the Unified_Product_Catalog table when pc/ semantic tags are applied to your data sources. All pc/ semantic tags are optional. Use the ones that best define the shape of your product catalog and best describe the individual items within it. The product ID is used as an input to AmpIQ predictive modeling. |
Unified_Loyalty¶
The Unified_Loyalty table contains a row for every customer who belongs to your loyalty program, unique by Amperity ID.
The Unified_Loyalty table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note Loyalty profiles are unique by Amperity ID when:
(Source tables for loyalty profiles should not be made available to Stitch.) |
birthdate |
Date |
The date of birth for the customer who belongs to the loyalty profile. |
current_balance |
Integer |
The customer’s current rewards balance. |
current_balance_expiration_datetime |
Datetime |
The date and time at which a customer’s current rewards balance will expire. |
current_tier |
String |
The name of the rewards tier to which a customer belongs. |
current_tier_expiration_datetime |
Datetime |
The date and time at which a customer’s membership in their current rewards tier will end. |
current_tier_start_datetime |
Datetime |
The date and time at which a customer’s membership in their current rewards tier started. |
String |
The email address that is associated with a loyalty ID. Also in: Unified_Loyalty_Events |
|
is_opted_in |
Boolean |
Required. Indicates if the customer associated with the loyalty ID has given consent to being contacted by your loyalty program. |
latest_opt_out_datetime |
Datetime |
The date and time at which a customer most recently opted out from being contacted by your loyalty program. |
latest_opted_in_datetime |
Datetime |
Required. The date and time at which a customer most recently opted in to being contacted by your loyalty program. |
latest_update_datetime |
Datetime |
The date and time at which the information associated with the loyalty profile was updated. |
lifetime_balance |
Integer |
The lifetime reward balance associated with the loyalty ID. |
loyalty_id |
String |
Required. The unique ID for a loyalty profile. Also in: Unified_Loyalty_Events |
next_tier |
String |
The name of the next loyalty tier to which, pending points accumulation, a customer will belong. |
sign_up_channel |
String |
The channel through which the customer signed up for the loyalty program. |
sign_up_method |
String |
The method used by the customer to sign-up for the loyalty program. |
spend_to_keep_tier |
Decimal |
The amount of money a customer must spend to stay in their current loyalty tier. |
spend_to_next_tier |
Decimal |
The amount of money a customer must spend to move to the next loyalty tier. |
Unified_Loyalty_Events¶
The Unified_Loyalty_Events table contains a row for loyalty program events, unique by Amperity ID and event datetime.
The Unified_Loyalty_Events table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note Loyalty events are unique by Amperity ID and event datetime when:
(Source tables for loyalty events should not be made available to Stitch.) |
accrual_amount |
Integer |
The loyalty rewards amount that was accrued. |
accrual_datetime |
Datetime |
The date and time at which loyalty rewards were accrued. |
award_id |
String |
The unique ID for an award that is associated with a redemption or accural event. |
current_point_balance |
Integer |
The loyalty rewards balance that is associated with the current loyalty event. |
current_tier |
String |
The loyalty tier that is associated with the current loyalty event. |
String |
The email address that is associated with a loyalty ID. Also in: Unified_Loyalty |
|
event_datetime |
Datetime |
Required. The date and time at which a loyalty event occurred. Note For transactions that represent accruals this value can also represent the date and time of the transaction. |
event_description |
String |
A description of the loyalty event. |
event_type |
String |
Required. The loyalty event type. May be one of the following values: “redemption”, “opt-out”, or “tier change”, or a custom event type. |
expiration_datetime |
Datetime |
The date and time at which loyalty awards accrue or the loyalty tier changes. |
loyalty_id |
String |
Required. The unique ID for a loyalty profile. Also in: Unified_Loyalty |
order_datetime |
Datetime |
The date and time at which an order that used accrued or redeemed loyalty rewards was made. |
order_id |
String |
The unique ID for an order that is associated with a redemption or accural event. |
previous_point_balance |
Integer |
The loyalty rewards balance that is associated with the previous loyalty event. |
previous_tier |
String |
The loyalty tier that is associated with the previous loyalty event. |
redemption_amount |
Decimal |
The loyalty rewards amount that was redeemed. |
redemption_datetime |
Datetime |
The date and time at which loyalty rewards were redeemed. |
reservation_datetime |
Datetime |
The date and time at which a reservation that used accrued or redeemed loyalty rewards was made. |
reservation_id |
String |
The unique ID for a reservation that is associated with a redemption or accural event. |
tier_end_datetime |
Datetime |
The date and time at which the current loyalty tier ends (or ended). |
tier_start_datetime |
Datetime |
The date and time at which the current loyalty tier starts (or started). |
Unified_Preprocessed_Raw¶
The Unified_Preprocessed_Raw table is an output of Stitch. Use this table as part of Stitch QA to view data exactly how values were used by Stitch after preprocessing and blocklisting. This table contains one row for each trivial duplicate. Only the semantics used by Stitch are shown. Semantic values represent pre-processing values and/or bad values that were removed (and replaced by NULL
).
Tip
Because there is only one row per trivial duplicate, join this table on the Unified_Coalesced table for ongoing usage. For example:
SELECT *
FROM unified_coalesced uc
JOIN unified_preprocessed_raw up
ON uc.rep_ds=up.datasource AND uc.rep_pk=up.pk
The Unified_Preprocessed_Raw table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
address |
String |
The address that is associated with the location of an individual customer record. For example: 123 Main Street. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
birthdate |
Date |
The date of birth that is associated with an individual customer record. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
city |
String |
The city that is associated with the location of an individual customer record. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
component_id |
Integer |
An identifier that represents a set of records that are transitively connected with a score above threshold as an outcome of blocking and initial scoring. Records that share a component ID, but have different Amperity IDs, were split during hierarchical comparison. Tip Use this field during the Stitch QA process to help identify why certain records were grouped (or not grouped) together. Also in: Unified_Preprocessed_Raw |
datasource |
String |
The name of the data source from which this customer record originated. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Preprocessed_Raw table, which correlates to a single row in a domain table. |
String |
The email address that is associated with an individual customer record. A customer record may be associated with multiple email addresses. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
|
fk_[name] |
String |
The fk-[namespace] semantic tag identifies a field as a foreign key. A foreign key semantic tag must be namespaced. For example: fk-customer, fk-interaction, fk-audience, or fk-brand. A column is added for each foreign key that is defined in the Sources tab. Note If foreign keys are linked together by a trivial duplicate they will appear in the Unified_Preprocessed_Raw table as a comma-separated list. Also in: Unified_Coalesced, Unified_Customer |
gender |
String |
The gender that is associated with an individual customer record. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
given_name |
String |
The first name that is associated with an individual customer record. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
int_id |
Integer |
An identifier that represents a unique combination of datasource and pk (primary key) and their position in the Stitch record sort order after Stitch has identified (and removed) trivial duplicates. Important This identifier is based on Stitch record sort order and is determined each time Stitch runs. Records will not always have the same position in the record sort order; you should not expect this ID to be stable over time. Tip Use this field during the Stitch QA process to help identify why certain records were grouped (or not grouped) together. |
login_trimmed |
String |
|
phone |
String |
The phone number that is associated with an individual customer record. A customer record may be associated with multiple phone numbers. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
pk |
String |
The combination of data source and primary key allows Amperity to uniquely identify every row in every data table across the entirety of customer data input to Amperity. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Preprocessed_Raw table, which correlates to a single row in a domain table. |
po_box |
String |
Additional address information, such as an apartment number or a post office box, that is associated with the location of an individual customer record. For example: Apt #9. |
postal |
String |
The zip code or postal code that is associated with the location of an individual customer record. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
sk_generational_suffix |
String |
|
sk_given_name |
String |
|
state |
String |
The state or province that is associated with the location of an individual customer record. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
supersized_id |
Integer |
The identifier for a supersized record. Indicates when a rough heuristic is applied to the first grouping of records (rep_pk) to partition supersized records into smaller components. Supersized records occur when more than 500 groups are associated with the first grouping of records. Also in: Unified_Coalesced |
surname |
String |
The last name that is associated with an individual customer record. Also in: Customer_360, Merged_Customers, Unified_Coalesced, Unified_Customer |
Unified_Product_Catalog¶
The Unified_Product_Catalog table contains a row for every item in your product catalog, including descriptive attributes, such as name, brand, size, and color, grouping attributes, such as category, sub-category, class, and sub-class, and other attributes like MSRP, gender, and description.
Important
The Unified_Product_Catalog table represents the taxonomy for your products and brands. Attributes are added to the Unified_Product_Catalog table when pc/ semantic tags are applied to your data sources. All pc/ semantic tags are optional. Use the ones that best define the shape of your product catalog and best describe the individual items within it. The product ID is used as an input to AmpIQ predictive modeling.
The Unified_Product_Catalog table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
datasource |
String |
The name of the data source from which this customer record originated. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Coalesced table, which correlates to a single row in a domain table. |
pk |
String |
The combination of data source and primary key allows Amperity to uniquely identify every row in every data table across the entirety of customer data input to Amperity. Tip The combination of pk and datasource uniquely identifies a row in the Unified_Coalesced table, which correlates to a single row in a domain table. |
product_brand |
String |
The brand name of a product or item. |
product_brand_id |
String |
The ID for the brand name of a product or item. |
product_category |
String |
This column is input to AmpIQ predictive modeling when joined to Unified_Itemized_Transactions. A category to which the product belongs. |
product_category_id |
String |
The ID for the category to which a product belongs. |
product_class |
String |
The name of the class (or grouping) to which a product or item belongs. |
product_class_id |
String |
The ID for the name of the class (or grouping) to which a product or item belongs. |
product_collection |
String |
The name of the collection to which a product or item belongs. |
product_collection_id |
String |
The ID for the name of the collection to which a product or item belongs. |
product_color |
String |
The color of a product or item. |
product_color_id |
String |
The ID for the color of a product or item. |
product_department |
String |
The department to which a product or item belongs. |
product_department_id |
String |
The ID for the department to which a product or item belongs. |
product_description |
String |
This column is input to AmpIQ predictive modeling when joined to Unified_Itemized_Transactions. A description of the product. |
product_division |
String |
The division to which a product or item belongs. |
product_division_id |
String |
The ID for the division to which a product or item belongs. |
product_fabric |
String |
The fabric used for a product or item. |
product_fabric_id |
String |
The ID for the fabric used for a product or item. |
product_gender |
String |
A list of gender options for products. For example: F, M, unisex, NULL (for unknown). |
product_group |
String |
The group to which a product or item belongs. |
product_id |
String |
The unique identifier for a product. Values in this column depend on fields that are tagged with the pc/product-id semantic. |
product_material |
String |
The material used for a product or item. |
product_material_id |
String |
The ID for the material used for a product or item. |
product_msrp |
String |
The manufacturer’s suggested retail price (MSRP) for a product or item. The manufacturer’s suggested retail price (MSRP) is the price before shipping costs, taxes, and/or discounts have been applied. MSRP is sometimes referred to as the base price. |
product_name |
String |
The name of the product or item. |
product_season |
String |
The season to which a product or item is associated. |
product_season_id |
String |
The ID for the season to which a product or item is associated. |
product_silhouette |
String |
|
product_size |
String |
The size of a product or item. |
product_size_id |
String |
The ID for the size of a product or item. |
product_sku |
String |
The stock keeping unit, or SKU, for the product or item. A stock keeping unit (SKU) is an identifier that captures all of the unique details of any individual product, including specific attributes that differentiate by color, size, material, and so on. |
product_style |
String |
The style of a product or item. |
product_subcategory |
String |
This column is input to AmpIQ predictive modeling when joined to Unified_Itemized_Transactions. A subcategory or secondary variant to which a product belongs. |
product_subcategory_id |
String |
The ID for the subcategory or secondary variant to which a product belongs. |
product_subclass |
String |
The subclass to which a product or item is assigned. |
product_subclass_id |
String |
The ID for the subclass to which a product or item is assigned. |
product_subdepartment |
String |
The sub-department to which a product or item is assigned. |
product_subdepartment_id |
String |
The ID for the sub-department to which a product or item is assigned. |
product_type |
String |
The type assigned to a product or item. |
product_upc |
String |
The UPC code for the product or item. A Universal Product Code (UPC or UPC code) is a barcode that is widely used to track items in stores. |
Unified_Scores¶
The Unified_Scores table records all of the pairwise comparison scores and match categories for all groups of records, and then for each group of records all of the pairwise scores that are present between records within that group.
Note
See Unified_Scores for more information about how this table is built and maintained within the customer 360 database.
The Unified_Scores table contains the following columns:
Column Name |
Data type |
PII |
Description |
||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
amperity_id |
String |
The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
|||||||||||||||
source1 |
String |
||||||||||||||||
source2 |
String |
||||||||||||||||
pk1 |
String |
||||||||||||||||
pk2 |
String |
||||||||||||||||
score |
Float |
A score contains a value from 0.0 to 5.0 that represents the combined score assigned to the record pair by Stitch. There are two components of the score: the score itself, and then its strength. The record pair score correlates to the match category, which is a classifier that is applied by Amperity to individual record pairs. The record pair score corresponds to the classification: 5 for exact matches, 4 for excellent matches, 3 for high matches, 2 for moderate matches, 1 for weak matches, and 0 for no matches. The record pair strength represents the strength of the record pair score. It is a two digit number. For example: .31 is a lower strength and .93 is a very high strength. Note Scores are shown for records that end up in the same cluster, including any scores that are below threshold. Scores are not shown for records that do not end up in the same cluster. Also in: Detailed_Examples |
|||||||||||||||
match_category |
String |
A match category is a classifier that is applied by Amperity to an individual record-pair within a cluster of record-pairs. The match category is the result of this classification.
Also in: Detailed_Examples |
|||||||||||||||
match_type |
String |
The type of score being applied. Possible values are as follows: “scored”, “scored_transitive”, and “trivial_duplicate”. A match is assigned “scored_transitive” when that match was not identified during blocking. For example: three records (A, B, and C). If records A and B and records B and C were identified as matching during blocking, all three records will end up in the same group of records for pairwise comparison. Records A and C have a transitive connection. |
Unified_Transactions¶
The Unified_Transactions table contains one row for each unique transaction record, with each order ID associated to an Amperity ID.
The following diagram shows an example of the Unified_Transactions table (click to view a larger diagram):

The Unified_Transactions table contains the following columns:
Column Name |
Data type |
Description |
---|---|---|
amperity_id |
String |
This column is input to AmpIQ predictive modeling. The unique identifier that is assigned to clusters of customer records that all represent the same individual. The Amperity ID does not replace primary and foreign keys, but exists alongside them within unified profiles. Note The Amperity ID is a universally unique identifier (UUID) that is represented by 36 characters spread across five groups separated by hyphens: 8-4-4-4-12. For example: 123e4567-e89b-12d3-a456-426614174000
|
currency |
String |
Currency represents the type of currency that was used to pay for an item. For example: dollar. Note Currency must be consistent across all orders from the same data source. |
customer_id |
String |
A custom semantic tag that is applied to interaction records to identify a field that is used in downstream processes to associate interaction records to the Amperity ID. A customer ID may appear once for each order ID in the transactions table. When a foreign key is not present, the customer ID is used to join interaction records (transactions and itemized transactions) to tables that contain the Amperity ID. Note A namespaced foreign key should be used along with a customer ID. When a foreign key is added to transactions data it:
Also in: Unified_Itemized_Transactions |
digital_channel |
String |
The digital channel through which a transaction was made. For example: Facebook, Google Ads, email, etc. Note This column should only have values when purchase-channel specifies an online channel. |
order_cancelled_quantity |
Integer |
This column is input to AmpIQ predictive modeling. The total number of items in the original transaction that were cancelled. This value should match the sum of all items in the itemized transactions that were cancelled for the same order ID. Important This value must be less than or equal to 0 when is_cancelled is |
order_cancelled_revenue |
Decimal |
This column is input to AmpIQ predictive modeling. The total amount of revenue for all cancelled items in the transaction. This value should match the sum of the revenue for all items in the itemized transactions that were cancelled. Important This value must be less than or equal to 0 when is_cancelled is |
order_cost |
Decimal |
Order cost represents the total cost of goods sold (COGS) for a single transaction. Cost of goods sold (COGS) are the direct costs of producing goods that are sold by a brand, including the costs of materials and labor to produce the item, but excluding indirect expenses like distribution or sales. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Warning Only one of order-profit and order-cost may be present for a transaction. |
order_datetime |
Datetime |
This column is input to AmpIQ predictive modeling. Order datetime is the date (and time) on which an order was placed. The order date:
Note Other dates associated with an order that are not specific to a transactions, such as dates associated with hotel stays and reservations, should be added to the Unified_Product_Catalog table. This column is used to calculate the following transaction attributes:
Also in: Unified_Itemized_Transactions |
order_discount_amount |
Decimal |
This column is input to AmpIQ predictive modeling. Order discount amount is the total discount amount that is applied to the entire order. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. This value is used by Amperity for discount sensitivity analysis. Caution This value should match the customer’s definition of an order-level discount. For example, some customers associate this value to order value, whereas others associate this value to a subtotal. Use domain SQL to update this field for the desired calculation. Also in: Unified_Itemized_Transactions |
order_discount_percent |
Decimal |
Order discount percent is the percentage discount that is applied to the order value for the entire transaction, in addition to any item or unit-specific discount percentages. This value may be used as an input to order discount amount. Note This value must be between 0 and 1. This value is used by Amperity for discount sensitivity analysis. Caution This value should match the customer’s definition of an order-level discount percentage. For example, some customers associate this value to order value, whereas others associate this value to a subtotal. Use domain SQL to update this field for the desired calculation. |
order_id |
String |
This column is input to AmpIQ predictive modeling. An order ID is the unique identifier for the order and links together all of the items that were part of the same transaction. When an item has been returned or when an order has been cancelled, the order ID is the unique identifier for the original order, including the returned or cancelled items. This column is the primary key and must be associated with the pk semantic tag. Each unique order ID must:
Note The order ID should never change, even when an item in the order is returned or cancelled. Caution If order IDs are recycled and/or are otherwise not guaranteed to be unique over time, the unique identifier for the order must be updated to be a combination of the order ID and the date on which the order occurred. This must be done using domain SQL similar to: This column is used to calculate the following transaction attributes:
Also in: Unified_Itemized_Transactions |
order_list_price |
Decimal |
Order list price is the total value for a transaction, as defined by the manufacturer’s suggested retail price (MSRP) for all units of this item. The manufacturer’s suggested retail price (MSRP) is the price before shipping costs, taxes, and/or discounts have been applied. MSRP is sometimes referred to as the base price. This value should match the sum of item list price amounts in the itemized transactions that are associated with the same order ID. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. |
order_profit |
Decimal |
Order profit is the amount of profit that is earned from a single transaction. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. Warning Only one of order-profit and order-cost may be present for a transaction. |
order_quantity |
Integer |
This column is input to AmpIQ predictive modeling. Order quantity is the total number of individual items associated with the transaction. This value should match the sum of all items in the itemized transactions that have not been returned or cancelled for the same order ID. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. This column is used to calculate the following transaction attributes:
|
order_returned_quantity |
Integer |
This column is input to AmpIQ predictive modeling. Order returned quantity is the total number of items in the original transaction that were returned. This value should match the sum of all items in the itemized transaction that were returned for the same order ID. Note This value must be less than or equal to 0. Important This value must be less than or equal to 0 when is_return is |
order_returned_revenue |
Decimal |
This column is input to AmpIQ predictive modeling. Order returned revenue total amount of revenue for all returned items in a transaction. This value should match the sum of the revenue for all items in the itemized transactions that were returned. Important This value must be less than or equal to 0 when is_return is |
order_revenue |
Decimal |
This column is input to AmpIQ predictive modeling. The total amount of revenue for all items in a transaction after discounts are applied, ignoring returns and/or cancellations. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. This column is used to calculate the following transaction attributes:
|
order_shipping_amount |
Decimal |
The order shipping amount is the total cost of shipping all items in the same transaction. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. |
order_subtotal |
Decimal |
An order subtotal is the amount for an order, before discounts are applied. This value should match the sum of item subtotal revenue in the itemized transactions that are associated with the same order ID. |
order_tax_amount |
Decimal |
An order tax amount is the total amount of taxes that are associated with an entire order. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. |
payment_method |
String |
A payment method is how a customer chose to pay for the items they have purchased. For example: credit card, gift card, or cash. |
purchase_brand |
String |
This column is input to AmpIQ predictive modeling. The brand for which a transaction was made. Note This column should only have values when interaction records contain transactions data for more than one brand. This column is used to calculate the following transaction attributes: multi_purchase_brand. |
purchase_channel |
String |
This column is input to AmpIQ predictive modeling. A purchase channel is the channel from which a transaction was made. For example: in-store or online. |
store_id |
String |
This column is input to AmpIQ predictive modeling. A store ID is a unique identifier that is identified with the location of a store. |
sum_item_discount_amount |
Decimal |
The sum of discount amounts is the total of all discount amounts that were applied to each item within a transaction. This value should match the sum of item discount amounts in the itemized transactions that are associated with the same order ID. |
sum_item_revenue |
Decimal |
The sum of itemized revenue for the original order, not including returns and/or cancellations. This value may be used as an input to order revenue. This value should match the sum of item revenue in the itemized transactions that are associated with the same order ID. Note This value must be greater than or equal to 0 for purchases, but less than or equal to 0 for returns or cancellations. |