🚨 Required Action
All usage of the Buckets Breakdown schema must be migrated to theaggregate_mta table by October 30, 2025. After this date, Buckets Breakdown tables will stop receiving updates (historical data will remain queryable).
What’s Changing
- New table: aggregate_mta replaces all Buckets Breakdown tables in your data share.
- Rolled out alongside existing tables so you can build and test without impacting production.
- aggregate_mta is fully backfilled to your first clean reporting date in Rockerbox.
Key Benefits
- Significantly faster and more reliable delivery of aggregate attribution and spend — KPIs are available before your stakeholders start their day.
- Fewer tables to query and manage with all aggregate attribution data across all conversion events available in one streamlined reporting table.
Migration Timeline
- Migration window: 8 weeks to cut over to aggregate_mta.
- Deprecation date: October 30, 2025 — Buckets Breakdown tables stop receiving updates.
- Backfill: At least 1 year of history (or as far back as clean reporting date) available now. Full history available by October 30, 2025.
- Live Q&A Sessions: Two sessions with Product team (early and late in the migration window).
Migration Guidance
General Notes
- Rockerbox will not drop or rename existing Buckets Breakdown tables so as to not break your production reporting.
- Create views to replicate Buckets Breakdown tables, suffixed with _v2.
- Change the table reference in all queries to point to the view.
- If you don’t want to create backwards compatible views, then review the Schema Differences section below for a full accounting of the changes.
platform_join_key and taxonomy columns (tier_1–tier_5) in the historical data from the Buckets Breakdown source table to ensure consistency.
Example:
Snowflake Instructions
Pre-Requisites
- Local database and schema where you can define views.
SQL Statement
Snowflake Create View Statement
Snowflake Create View Statement
SQL Parameters
| Parameter | Description | 
|---|---|
| TARGET_DB | Database where the view will reside | 
| TARGET_SCHEMA | Schema where the view will reside | 
| VIEW_NAME | Name of the view (match source table name + suffix, e.g. _v2) | 
| CONVERSION_EVENT_ID | Conversion ID to filter on (match Buckets Breakdown table) | 
| SOURCE_DB | Rockerbox-shared database | 
| SOURCE_SCHEMA | Rockerbox-shared schema | 
| SOURCE_TABLE | Rockerbox Buckets Breakdown source table | 
BigQuery Instructions
Pre-Requisites
- A project created with BigQuery resource enabled.
- A dataset within the aforementioned project.
SQL Statement
BigQuery Create View Statement
BigQuery Create View Statement
SQL Parameters
| Parameter | Description | 
|---|---|
| TARGET_PROJECT | Project where the view will reside | 
| TARGET_DATASET | Dataset where the view will reside | 
| VIEW_NAME | Name of the view (match source table name + suffix, e.g. _v2) | 
| CONVERSION_EVENT_ID | Conversion ID to filter on (match Buckets Breakdown table) | 
| SOURCE_PROJECT | Rockerbox-shared project | 
| SOURCE_DATASET | Rockerbox-shared dataset | 
| SOURCE_TABLE | Rockerbox Buckets Breakdown source table | 
Redshift Instructions
Pre-Requisites
- Local database and schema where you can define views.
- USAGE permissions on Rockerbox external schema (Glue + S3).
SQL Statement
Redshift Create View Statement
Redshift Create View Statement
SQL Parameters
| Parameter | Description | 
|---|---|
| TARGET_DB | Database where the view will reside | 
| TARGET_SCHEMA | Schema where the view will reside | 
| VIEW_NAME | Name of the view (match source table name + suffix, e.g. _v2) | 
| CONVERSION_EVENT_ID | Conversion ID to filter on (match Buckets Breakdown table) | 
| SOURCE_DB | Rockerbox external database | 
| SOURCE_SCHEMA | Rockerbox external schema | 
| SOURCE_TABLE | Rockerbox Buckets Breakdown source table | 
Schema Differences
Full Schema Diff
| Change | Legacy Schema (Buckets Breakdown) | Legacy Type | New Schema (Aggregate MTA) | New Type | Notes | 
|---|---|---|---|---|---|
| Removed | type | str | — | — | Only visible in Snowflake | 
| report | str | report | str | Only visible in Snowflake | |
| Added | — | — | version | str | Only visible in Snowflake | 
| Added | — | — | partition | str | |
| advertiser | str | advertiser | str | Only visible in Snowflake | |
| Added/Renamed | identifier | int | conversion_event_id | int | Redshift/BigQuery: new column; Snowflake: renamed identifier | 
| date | date | date | date | ||
| tier_1 | str | tier_1 | str | ||
| tier_2 | str | tier_2 | str | ||
| tier_3 | str | tier_3 | str | ||
| tier_4 | str | tier_4 | str | ||
| tier_5 | str | tier_5 | str | ||
| platform | str | platform | str | ||
| platform_join_key | str | platform_join_key | str | ||
| Added | — | — | conversion_event_name | str | |
| first_touch | int | first_touch | int | ||
| ntf_first_touch | int | ntf_first_touch | int | ||
| revenue_first_touch | float | revenue_first_touch | float | ||
| ntf_revenue_first_touch | float | ntf_revenue_first_touch | float | ||
| last_touch | int | last_touch | int | ||
| ntf_last_touch | int | ntf_last_touch | int | ||
| revenue_last_touch | float | revenue_last_touch | float | ||
| ntf_revenue_last_touch | float | ntf_revenue_last_touch | float | ||
| even | float | even | float | ||
| ntf_even | float | ntf_even | float | ||
| revenue_even | float | revenue_even | float | ||
| ntf_revenue_even | float | ntf_revenue_even | float | ||
| normalized | float | revenue_even | float | ||
| ntf_normalized | float | ntf_normalized | float | ||
| revenue_normalized | float | revenue_normalized | float | ||
| ntf_revenue_normalized | float | ntf_revenue_normalized | float | ||
| Renamed | spend | float | included_spend | float | |
| currency_code | str | currency_code | str | ||
| fx_rate_to_usd | float | fx_rate_to_usd | float | ||
| rb_sync_id | int | rb_sync_id | int | ||
| updated_at | timestamp | updated_at | timestamp | 
Many Tables > One Table
- Before: One table per conversion event.
- N tables: buckets_breakdown_add_to_cart,buckets_breakdown_purchase
 
- N tables: 
- After: One unified table includes conversion_event_idandconversion_event_namefor segmentation.- One new table: aggregate_mta
 
- One new table: 
- Guidance: Add a filter to replicate current table behavior.
- WHERE conversion_event_name = <name>
 
Partitioned Rows
- Before: Spend and attributed conversions/revenue in the same row.
- After: Attribute conversions/revenue in row where partition=mta; spend in separate row wherepartition=included_spend.
- Guidance: Aggregate (SUM) metrics across relevant dimension columns (date, tier_1, tier_2, etc.) to compute KPIs such as CPA and ROAS.
🚨 Rows may look duplicated compared to the Buckets Breakdown schema because attribution and spend data are now split across separate rows. This is expected behavior.Sample SQL (works in Redshift, BigQuery, Snowflake):
Case Differences
- Issue: platform_join_keyandtier_1throughtier_5may have inconsistent case vs. legacy tables in certain instances.
- Guidance: Apply LOWER()in queries before joining or merging data fromaggregate_mtawith ANY of the legacy schemas.