Overview
The KORE Data Model provides a consistent and more user-friendly way to view data independently of which vendors you use. It doesn't matter whether a vendor calls a field 'user'
or 'username'
—it's always the same field name in the KORE Data Model, no matter which vendor the data came from.
This allows you to use SQL to more easily and efficiently ask business questions that might otherwise require joining numerous tables from different vendors. Since the data model is standardized, you don't need to research each integration's schema.
Supported data sources
Note: The KORE Data Model is in active development. Additional integration categories and vendors will be supported in the future, and this page may not reflect the latest updates.
As of June 2021, the KORE Data Model supports these sources:
Category |
Data sources |
Base | League-specific data sources: |
Retail | |
Email marketing |
No additional setup is needed after configuring the desired sources' DWA integrations.
Some data sources may depend on the base tables being populated. KORE plans to add more sources for the base tables in the future.
How we convert data
In most cases, DWA integrations collect data from the databases that vendors use to actively run their services. This means that the data is optimized for computers' needs, not users' needs. Data structures can vary wildly across vendors providing similar services, even though they share the same concepts. The KORE Data Model provides a standardized set of fields (columns) for each category of integrations.
Mapping
When there is a one-to-one relationship between a vendor's field and a KORE Data Model field, we map the vendor's field to this standardized format. For example, here are just a few of the fields provided by two email marketing vendors and how we map them:
You can use multiple supported data sources from the same category. This allows you to switch vendors without losing access to historical data. For example, you might switch email marketing partners but still want to compare a current campaign to past ones. It also allows you to use multiple similar vendors and evaluate their data together. For example, you might have one food and beverage partner for general admission and a different partner for your suites and premium sections.
Transformation
Often, the fields in a vendor's databases don't directly match fields in the KORE Data Model. In these cases, we transform data from multiple columns (and sometimes multiple tables) to populate the KORE Data Model field. For example, a vendor that tracks retail transactions may not directly provide the quantity of a particular item sold on a given day. KORE would evaluate the available data (such as the vendor's list of transactions, items sold, and transaction dates) to fill out the KORE Data Model fields:
Reports
The source data that gets copied into DWA comes from the databases vendor apps use in production. It isn't optimized for other uses—reporting requires complex SQL queries, often joining numerous tables, and it's common to bump up against the Tableau extraction limits. The KORE Data Model makes it more efficient to build reports that include data from disparate sources yet only query a small set of tables.
You can create custom reports that utilize the KORE Data Model via our Tableau servers. In addition to data source extracts, you can connect live to the KORE Data Model tables. If you create custom reports, they must comply with KORE's Tableau Server guidelines.
Data dictionary
Like with our DWA integrations, you can connect to Amazon Redshift and query the database directly. We strongly recommend using the views instead of the tables so you can take advantage of our transformations.
Download data dictionary (Excel file)
Example queries
List the top 25 retail items sold on days when your team won and the average number sold. For comparison, also show the average number sold on days when your team lost.
SELECT won.item_id, won.item_name, won.items_sold_win, lost.items_sold_loss
FROM (
SELECT item_id, item_name, ROUND(AVG(items_sold), 0) AS items_sold_win
FROM kore.retail_item_sales_v
WHERE game_result = 'Win'
GROUP BY item_id, item_name
ORDER BY ROUND(AVG(items_sold), 0) DESC
LIMIT 25
) AS won
INNER JOIN (
SELECT item_id, ROUND(AVG(items_sold), 0) AS items_sold_loss
FROM kore.retail_item_sales_v
WHERE game_result = 'Loss'
GROUP BY item_id
) AS lost
ON won.item_id = lost.item_id
ORDER BY won.items_sold_win DESC;
For the past 30 days, compare the number of unique clicks from your email campaigns to the total sales of your team's online merchandise store. For additional insight, show the ratio of sales to clicks.
SELECT sales.sale_date, sales.store_id, sales.sale_total, emails.unique_email_clicks,
ROUND((sales.sale_total / emails.unique_email_clicks), 2) AS ratio
FROM kore.retail_store_sales_v sales
INNER JOIN kore.email_marketing_summary_v emails ON sales.sale_date = emails.date
WHERE sales.store_id = '001-WEB'
AND sales.sale_date > DATEADD(MONTH, -1, CURRENT_DATE)
ORDER BY sales.sale_date DESC;