offdataai
Media, Gaming & Sports · data model template

Media & Entertainment EDW data model

Data Vault 2.0 raw vault for media/entertainment: hubs (title/talent/distributor/rights_agreement/asset), links (title-talent, title-distributor, title-rights, content-asset), and satellites (title, talent PII, distributor details, a rights-terms effectivity satellite, asset details, and a transactional royalty satellite on the title-talent link). Hash keys and load metadata are generated by the DDL layer.

Media & entertainment enterprise data warehouse modeled as a Data Vault 2.0 raw vault: title, talent, distributor, rights agreement, and asset hubs; production and distribution links plus a transactional royalty satellite; and descriptive plus effectivity satellites — built for integrating production, rights-management, and distribution source systems with full historization and the rights/royalty lineage that makes Data Vault attractive for complex content supply chains. It is a Data Vault 2.0 raw vault: hubs for business keys, links for relationships and satellites for descriptive history, with hash keys and hash diffs generated in the DDL.

Data Vault 2.0Media, Gaming & SportsSOXGDPR
16
tables
98
columns
14
relationships
6
PII columns

Opening the template creates a project with the ERD, platform-native DDL, a dbt project and documentation already generated (recommended platform: Databricks). Edit it in plain English or on the canvas, then ship it to any supported warehouse.

Subject areas

hubslinkssatellitesreference

Design decisions

  • Hubs hold only content business keys

    Separating title_id, talent_id, and agreement_id into hubs lets media asset management, casting, rights, and distribution source systems attach independently without reworking existing structures — the core agility of Data Vault.

  • Effectivity satellite for licensing windows

    Distribution rights are time- and territory-bound and renegotiated frequently; an effectivity satellite records the valid window of each rights term for accurate as-of availability reporting.

  • Transactional royalty satellite on the title-talent link

    Royalty statements are periodic, immutable financial events tied to a specific title-talent relationship; carrying them as a satellite on the link keeps the participation relationship and its payouts together.

  • Masked talent identifiers for privacy

    Talent tax_id is full-masked and email is hashed so the governance report flags sensitive personal and financial data; load_date + record_source provide the queryable lineage for rights and royalty audits.

Tables in the Media & Entertainment EDW model

Every table with its grain, columns, types and keys. PK marks a primary key, BK a business key and PII a column classified as personal data, which gets a masking strategy by default.

Hubs (5)

hub_title

Grain: one row per unique hub_title business key

ColumnTypeKeys
title_idvarcharBK
load_datetimestamp
record_sourcevarchar

hub_talent

Grain: one row per unique hub_talent business key

ColumnTypeKeys
talent_idvarcharBK
load_datetimestamp
record_sourcevarchar

hub_distributor

Grain: one row per unique hub_distributor business key

ColumnTypeKeys
distributor_codevarcharBK
load_datetimestamp
record_sourcevarchar

hub_rights_agreement

Grain: one row per unique hub_rights_agreement business key

ColumnTypeKeys
agreement_idvarcharBK
load_datetimestamp
record_sourcevarchar

hub_asset

Grain: one row per unique hub_asset business key

ColumnTypeKeys
asset_idvarcharBK
load_datetimestamp
record_sourcevarchar

Links (4)

lnk_title_talent

Grain: one row per lnk_title_talent relationship

Which talent participated in which title.

ColumnTypeKeys
title_hkbinary
talent_hkbinary
load_datetimestamp
record_sourcevarchar

lnk_title_distributor

Grain: one row per lnk_title_distributor relationship

Which distributor carries which title.

ColumnTypeKeys
title_hkbinary
distributor_hkbinary
load_datetimestamp
record_sourcevarchar

lnk_title_rights

Grain: one row per lnk_title_rights relationship

Which rights agreement governs which title.

ColumnTypeKeys
title_hkbinary
rights_agreement_hkbinary
load_datetimestamp
record_sourcevarchar

lnk_content_asset

Grain: one row per lnk_content_asset relationship

Which media assets belong to which title.

ColumnTypeKeys
title_hkbinary
asset_hkbinary
load_datetimestamp
record_sourcevarchar

Satellites (6)

sat_title_details

Grain: one row per title_hk per change

Title descriptive history.

ColumnTypeKeys
title_hkbinaryPK
load_datetimestampPK
title_namevarchar
content_typevarchar
genrevarchar
release_yearinteger
runtime_minutesinteger
original_languagevarchar
content_ratingvarchar
production_statusvarchar
load_end_datetimestamp
record_sourcevarchar

sat_talent_details

Grain: one row per talent_hk per change

Talent descriptive history (PII).

ColumnTypeKeys
talent_hkbinaryPK
load_datetimestampPK
first_namevarcharPII
last_namevarcharPII
stage_namevarchar
emailvarcharPII
phonevarcharPII
tax_idvarcharPII
guild_affiliationvarchar
agent_namevarcharPII
load_end_datetimestamp
record_sourcevarchar

sat_distributor_details

Grain: one row per distributor_hk per change

Distributor descriptive history.

ColumnTypeKeys
distributor_hkbinaryPK
load_datetimestampPK
distributor_namevarchar
platform_typevarchar
territoryvarchar
primary_countryvarchar
load_end_datetimestamp
record_sourcevarchar

sat_rights_terms

Grain: one row per rights agreement per term change

Effectivity satellite tracking licensing windows over time.

ColumnTypeKeys
rights_agreement_hkbinaryPK
load_datetimestampPK
rights_typevarchar
media_windowvarchar
territoryvarchar
license_feedecimal
currencyvarchar
effective_fromdate
effective_todate
is_activeboolean
load_end_datetimestamp
record_sourcevarchar

sat_asset_details

Grain: one row per asset_hk per change

Media asset descriptive history.

ColumnTypeKeys
asset_hkbinaryPK
load_datetimestampPK
asset_namevarchar
asset_typevarchar
resolutionvarchar
codecvarchar
duration_secondsinteger
file_size_bytesbigint
storage_locationvarchar
load_end_datetimestamp
record_sourcevarchar

sat_royalty_transaction

Grain: one row per title-talent royalty statement period

Transactional royalty satellite on the title-talent link.

ColumnTypeKeys
title_talent_hkbinaryPK
load_datetimestampPK
statement_periodvarchar
royalty_basisvarchar
royalty_amountdecimal
currencyvarchar
units_soldbigint
load_end_datetimestamp
record_sourcevarchar

Lookup tables (1)

ref_territory

Grain: one row per distribution territory

ColumnTypeKeys
territory_codevarcharBK
territory_namevarchar
regionvarchar

Relationships

Each relationship is a foreign key on the first table referencing the second.

  • lnk_title_talent.title_hk → hub_title (many-to-one)
  • lnk_title_talent.talent_hk → hub_talent (many-to-one)
  • lnk_title_distributor.title_hk → hub_title (many-to-one)
  • lnk_title_distributor.distributor_hk → hub_distributor (many-to-one)
  • lnk_title_rights.title_hk → hub_title (many-to-one)
  • lnk_title_rights.rights_agreement_hk → hub_rights_agreement (many-to-one)
  • lnk_content_asset.title_hk → hub_title (many-to-one)
  • lnk_content_asset.asset_hk → hub_asset (many-to-one)
  • sat_title_details.title_hk → hub_title (many-to-one)
  • sat_talent_details.talent_hk → hub_talent (many-to-one)
  • sat_distributor_details.distributor_hk → hub_distributor (many-to-one)
  • sat_rights_terms.rights_agreement_hk → hub_rights_agreement (many-to-one)
  • sat_asset_details.asset_hk → hub_asset (many-to-one)
  • sat_royalty_transaction.title_talent_hk → lnk_title_talent (many-to-one)

Related templates

All templates →
Start for $1

From requirements to AI-ready context, in one platform.

Describe your business in a conversation, start from a template or connect your own database. Your first model is ready in minutes.

Get startedBook a demo

Plans from $1/month · cancel any time