screwdriver-wrenchVerb AI Query Cookbook

Learn what you can do with Verb AI MCP tools.

Verb AI MCP Query Guide

How to Transform Business Questions into Effective Data Queries

Overview

The Verb AI MCP provides access to real-time behavioral data from a compensated panel of 2,000+ US-based users (ages 21–34, skewing female). The data captures what people actually do on their devices — not what they say they do.

The key principle: The MCP answers objective, data-level questions well. It does not answer subjective or interpretive questions directly. Your job is to decompose business questions into structured queries the system can execute, then synthesize the results.


Database Schema

Every event table links to AGENT_SYNC via USER_ID (or USER_IDENTIFIER for network traffic).

1. AGENT_SYNC — User Demographics

The panel's demographic backbone. Join this to any event table to segment behaviors by audience.

Column
Type
Description

USER_ID

PK

Unique user identifier. Links to all event tables.

DATE_OF_BIRTH / YEAR_OF_BIRTH

Date/Int

Use for age segmentation. Panel is 21–34.

GENDER

String

Values: Female, Male, Non-binary, Prefer not to say

HOUSEHOLD_INCOME

Numeric

Annual USD. Brackets: $1–50K, $50–100K, $100K+

EDUCATION_LEVEL

String

Highest completed (High School → Master's+)

EMPLOYMENT_STATUS

String

Full-time, Part-time, Student, Unemployed, Self-employed

MARITAL_STATUS

String

Single, Married, etc.

COUNTRY_OF_RESIDENCE

String

Currently 100% US

FULL_ADDRESS

String

Street-level address. Use for state/city extraction.

CITIZENSHIP / COUNTRY_OF_BIRTH

String

Origin demographics

RACE

String

Racial/ethnic background

Common patterns:

  • Age calculation: YEAR(CURRENT_DATE) - YEAR_OF_BIRTH

  • State extraction: Parse from FULL_ADDRESS

  • Income brackets: GROUP BY ranges of HOUSEHOLD_INCOME

2. PRODUCT_EVENTS_FLAT_DYM — E-commerce Interactions

The richest table for purchase funnel analysis. Captures views, cart adds, and purchases across all e-commerce platforms.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

ACTION

String

Critical field. Values: viewed, added_to_cart, purchased

PRODUCT_NAME

String

Full product name as displayed on retailer site

BRAND

String

Brand name (may be NULL — check PRODUCT_NAME too)

CATEGORY

String

Product category from the retailer's taxonomy

PRICE

Numeric

Listed price at time of interaction

CURRENCY

String

Usually USD

DESCRIPTION

String

Full product description text. Use for keyword filtering.

PRODUCT_URL / PAGE_URL

String

Source URL. Extract retailer domain from this.

PROMOTION

String

Any active promotion text (coupons, BOGO, rebates)

RATINGS

Numeric

Product star rating

REVIEWS_COUNT

Numeric

Number of reviews

FEATURES

String

Product feature list

AVAILABILITY

String

In-stock status

IMAGE_URLS

String

Product images

PRODUCT_ID

String

Retailer's product identifier

EVENT_TIME

Timestamp

When the interaction happened

CREATE_TIME

Timestamp

When the record was created

Critical notes:

  • ACTION is the funnel stage indicator. Always filter or group by this.

  • BRAND is often NULL. Search PRODUCT_NAME and DESCRIPTION with ILIKE for brand detection.

  • PAGE_URL tells you which retailer (Amazon, Target, Instacart, DoorDash, etc.)

  • PROMOTION captures deal text — useful for understanding price sensitivity.

3. AMAZON_SHOPPING_FLAT_DYM — Amazon Shopping Funnel

Parsed from Amazon proxy traffic. One row per shopping interaction on www.amazon.com. Captures the full Amazon shopping funnel: search → product view → sponsored ads → cart → checkout → orders.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

EVENT_TYPE

String

SEARCH, PRODUCT_VIEW, SPONSORED_AD, SPONSORED_CLICK, FUNNEL, AUTOCOMPLETE

SEARCH_KEYWORDS

String

What the user searched on Amazon (SEARCH events)

ASIN

String

Amazon Standard Identification Number (product ID)

PRODUCT_TITLE

String

Product name from the listing page

PRODUCT_BRAND

String

Brand name (from URL slug or title heuristic)

PRICE

Numeric

Listed price at time of interaction

CURRENCY

String

Currency code (USD)

TOTAL_RESULTS

Numeric

Number of search results returned (SEARCH events)

PAGE_NUMBER

Numeric

Search results page number

FIRST_RESULT_ASIN

String

ASIN of the first organic search result

FIRST_RESULT_PRICE

Numeric

Price of the first organic search result

MERCHANT_NAME

String

Seller name (SPONSORED_AD events)

CAMPAIGN_ID

String

Ad campaign identifier (SPONSORED_AD events)

FUNNEL_STEP

String

cart, checkout, your-orders, your-returns (FUNNEL events)

PAGE_URL

String

Raw Amazon URL

EVENT_TIME

Timestamp

When the interaction happened

Critical notes:

  • EVENT_TYPE drives what fields are populated. SEARCH events have keywords/results, PRODUCT_VIEW has title/ASIN/price, SPONSORED_AD has merchant/campaign.

  • SPONSORED_AD and SPONSORED_CLICK capture Amazon's advertising ecosystem — which ads are shown and which are clicked.

  • FUNNEL events (cart, checkout, your-orders) are behavioral signals without item-level detail.

  • AUTOCOMPLETE captures search suggestions typed by the user.

  • Prices are in USD. FIRST_RESULT_PRICE is from the first organic search result.

4. SHOPIFY_SHOPPING_FLAT_DYM — Shopify E-commerce Events

Parsed from proxy traffic across 400+ Shopify-powered stores. Auto-detects Shopify stores via standardized URL patterns. Captures product views with structured price/brand/currency data, cart contents, checkout, and search.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

EVENT_TYPE

String

PRODUCT_VIEW, PRODUCT_PAGE_VIEW, COLLECTION_BROWSE, CART_VIEW, ADD_TO_CART, CART_STATE, CART_CHANGE, CART_UPDATE, CHECKOUT, SEARCH, PAYMENT

STORE_DOMAIN

String

The Shopify store domain (e.g., "nathanandsons.com", "www.popflexactive.com")

PRODUCT_HANDLE

String

Shopify product slug (e.g., "remineralizing-gum")

PRODUCT_TITLE

String

Full product name from Shopify JSON API

PRODUCT_VENDOR

String

Brand/vendor name (e.g., "POPFLEX®", "Amish Country Popcorn")

PRODUCT_TYPE

String

Product category from Shopify

PRICE

Numeric

Price in the store's currency

COMPARE_AT_PRICE

Numeric

Original price before discount (if on sale)

CURRENCY

String

Currency code (USD, NZD, NOK, JPY, etc.)

SKU

String

Product SKU

VARIANT_TITLE

String

Selected variant (e.g., "Mastic Mint / 2 Packs", "XXS")

PRODUCT_ID

String

Shopify numeric product ID

TAGS

String

Product tags from Shopify

SEARCH_QUERY

String

What the user searched for (SEARCH events)

COLLECTION_HANDLE

String

Collection/category browsed (COLLECTION_BROWSE events)

PAGE_URL

String

Raw URL

EVENT_TIME

Timestamp

When the interaction happened

Critical notes:

  • PRODUCT_VIEW (from /products/HANDLE.json) is the richest event type — 100% title, 99% vendor, 86% price, 95% SKU, 36% compare_at_price populated.

  • CART_VIEW (from /cart.json) gives total cart price (in cents, divided by 100) and currency. Many carts show price=0 (empty carts).

  • STORE_DOMAIN identifies which of 400+ stores the event occurred on. Major stores include Alo Yoga, Skims, Sanrio, New Era, Dolls Kill, Princess Polly, Tarte Cosmetics, and hundreds of DTC brands.

  • Multi-currency: USD, NZD, NOK, JPY all detected.

  • COMPARE_AT_PRICE > PRICE indicates a product is on sale — useful for discount analysis.

5. DELIVERY_APPS_FLAT_DYM — Food Delivery Events (DoorDash + Uber Eats)

Unified food delivery behavioral events from DoorDash and Uber Eats. Covers the full ordering funnel: store browsing → item view → cart → order → rating. Prices are in USD (converted from cents).

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

PLATFORM

String

DOORDASH or UBEREATS

EVENT_TYPE

String

STORE_VIEW, CART_VIEW, ADD_TO_CART, ORDER_PLACED, ITEM_VIEW, ORDER_RATING, ORDER_HISTORY, ACTIVE_ORDER, DRAFT_ORDER, INVOICE, PAGE_VIEW, PAYMENT

STORE_NAME

String

Restaurant/store name (e.g., "7-Eleven", "DashMart", "The Juicy Crab")

STORE_ID

String

Platform-specific store identifier

STORE_RATING

Numeric

Average store rating (0–5 scale)

NUM_RATINGS

Numeric

Total number of ratings for the store

DELIVERY_FEE

Numeric

Delivery fee in USD

IS_SUBSCRIPTION_PARTNER

Boolean

Whether store is DashPass/Uber One partner

DISTANCE_MI

Numeric

Distance from consumer in miles

STORE_ADDRESS

String

Full store address

STORE_LAT / STORE_LNG

Numeric

Store geolocation coordinates

ITEM_NAME

String

Menu item name (e.g., "Classic - Mixed Plate", "Chocolate Filled") or item ID

ITEM_PRICE

Numeric

Item price in USD

QUANTITY

Numeric

Number of items

ORDER_TOTAL

Numeric

Total order amount in USD

TIP_AMOUNT

Numeric

Tip amount in USD

ORDER_UUID

String

Unique order identifier

ORDER_STATUS

String

PLACED, COMPLETED, CANCELLED, ACTIVE, DRAFT

PAYMENT_METHOD

String

Payment method brand (e.g., "Visa")

CURRENCY

String

Currency code (USD)

PAGE_URL

String

Raw request URL

EVENT_TIME

Timestamp

When the interaction happened

Critical notes:

  • DoorDash STORE_VIEW is the richest event — store name, rating, delivery fee, address, lat/lng, DashPass status, distance from consumer.

  • DoorDash ORDER_PLACED has order total, tip amount, payment method, and order UUID. Prices are in cents divided by 100.

  • Uber Eats ORDER_HISTORY has item-level detail: item name, price, quantity, customizations, and order status (COMPLETED/CANCELLED).

  • DoorDash ITEM_VIEW shows numeric item IDs from the URL (item names not available because the app caches item details locally).

  • DoorDash CART_VIEW gives store name, subtotal, and number of items in cart.

  • Use PLATFORM to filter by DoorDash vs Uber Eats, or combine for cross-platform delivery analysis.

6. SEARCH_EVENTS_FLAT_DYM — Search Activity

Captures every search query across Google, Bing, YouTube, and other engines. The best table for understanding intent and discovery.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

QUERY

String

The actual search terms typed. Most valuable field.

SEARCH_ENGINE

String

google, bing, youtube, other

RESULTS_COUNT

Numeric

Number of results returned

RESULTS_DESCRIPTION

String

Summary of top results

PAGE_URL

String

Search results page URL

LANGUAGE

String

Interface language

EVENT_TYPE

String

Search event classification

EVENT_TIME

Timestamp

When the search happened

Critical notes:

  • QUERY is case-sensitive in some contexts — always use ILIKE for matching.

  • For topic analysis, use keyword patterns: QUERY ILIKE '%white claw%' or QUERY ILIKE '%ramen%'

  • Combine with time windows to see search-to-action sequences.

7. YOUTUBE_EVENTS_FLAT_DYM — YouTube Interactions

Captures video views, including full metadata about what panelists watch.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

SNIPPET_TITLE / API_TITLE

String

Video title. Use for content categorization.

CHANNEL_TITLE / CHANNEL_ID

String

Creator/channel info

DESCRIPTION_SNIPPET / DESCRIPTION_TOP_LEVEL

String

Video description text

VIEW_COUNT

Numeric

Total video views (public metric)

LIKE_COUNT

Numeric

Total likes on the video

COMMENT_COUNT

Numeric

Total comments

TAGS

String

Video keyword tags

CATEGORY_ID

String

YouTube category

DURATION_ISO8601

String

Video length (ISO format, e.g., PT10M30S)

VIDEO_ID / API_VIDEO_ID

String

YouTube video identifier

PAGE_URL

String

Full YouTube URL

GEO_CITY / GEO_COUNTRY_NAME / GEO_REGION

String

Viewer location

PUBLISHED_AT

Timestamp

When the video was published

EVENT_TIME

Timestamp

When the panelist watched it

Critical notes:

  • VIEW_COUNT and LIKE_COUNT are the video's total public metrics, not the panelist's personal view count. Use COUNT of events per user for panelist engagement.

  • For creator tier analysis, use VIEW_COUNT as a proxy for creator size.

  • TAGS and DESCRIPTION_SNIPPET are valuable for content topic classification.

8. REDDIT_POSTS_FLAT_DYM — Reddit Post & Comment Viewing

Parsed from Reddit GraphQL API traffic. Captures posts and comments that panelists viewed, including full post metadata, subreddit context, and engagement metrics.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

OPERATION_TYPE

String

GraphQL operation: SubredditFeedElements, PostDetailQuery, CommentsListingQuery, CommunityAboutQuery, ProfileOverviewFeed

SUBREDDIT_NAME

String

Subreddit (e.g., "AskReddit", "nba", "SkincareAddiction")

POST_TITLE

String

Full post title text

POST_ID

String

Reddit post identifier

AUTHOR_NAME

String

Post/comment author username

SCORE

Numeric

Upvotes minus downvotes

COMMENT_COUNT

Numeric

Number of comments on the post

SUBREDDIT_SUBSCRIBERS

Numeric

Subreddit subscriber count at time of viewing

FLAIR_TEXT

String

Post flair (topic/category tag)

IS_NSFW

Boolean

Whether the post is marked NSFW

CREATED_UTC

Timestamp

When the post was originally created

PAGE_URL

String

Reddit URL

EVENT_TIME

Timestamp

When the panelist viewed it

Critical notes:

  • OPERATION_TYPE tells you what the user was doing: browsing a subreddit feed, reading a post's comments, viewing a community about page, or browsing a user profile.

  • SUBREDDIT_NAME is the key interest-mapping field. Group by it to understand what communities panelists engage with.

  • SCORE and COMMENT_COUNT are the post's public engagement metrics, not the panelist's interaction.

  • Use SUBREDDIT_SUBSCRIBERS to understand community size context.

9. REDDIT_ACTIONS_FLAT_DYM — Reddit User Actions

Parsed from Reddit GraphQL API traffic. Captures active user behaviors: voting, saving, joining communities, hiding posts, and managing subscriptions.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

OPERATION_TYPE

String

GraphQL operation: Vote, Save, JoinSubreddit, UpdateNotificationPreferences, HidePost, MarkAllNotificationsRead, etc.

ACTION_DETAILS

String

Specifics of the action (e.g., vote direction, subreddit joined)

POST_ID

String

Target post identifier (for votes, saves, hides)

SUBREDDIT_NAME

String

Target subreddit (for joins, subscriptions)

PAGE_URL

String

Reddit URL

EVENT_TIME

Timestamp

When the action happened

Critical notes:

  • This captures active engagement, not passive viewing. Votes, saves, and community joins are high-signal indicators of genuine interest.

  • Combine with REDDIT_POSTS_FLAT_DYM to understand the view-to-action conversion: how many posts viewed vs. voted on vs. saved.

  • JoinSubreddit actions indicate strong community affinity.

10. NETWORK_TRAFFIC_EVENTS_DYM — Network Traffic

Raw domain-level traffic. Shows which apps and websites panelists access.

Column
Type
Description

USER_IDENTIFIER

FK

Links to AGENT_SYNC.USER_ID (note: different column name)

SNI

String

Server Name Indication — the domain being accessed

Critical notes:

  • This is the most granular but least structured table. It shows raw domain hits.

  • Use SNI with ILIKE to detect app/platform usage: SNI ILIKE '%instagram%', SNI ILIKE '%tiktok%'

  • Best for: understanding which platforms users are on before/after other events, mapping media exposure pathways.

  • High volume table — always filter by time and user segments.

11. NEWS_EVENTS_FLAT_DYM — News Interactions

Captures news article consumption and engagement.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

ARTICLE_URL / PAGE_URL

String

Article URL

NEWS_OUTLET

String

Publishing organization

AUTHOR

String

Article author

CONTENT_SUMMARY

String

Article summary text

KEYWORDS

String

Topic keywords

NEWS_TYPE

String

Content category

COMMENTS_COUNT / LIKES

Numeric

Engagement metrics

LANGUAGE

String

Content language

GEO_*

Various

Geographic location fields

PUBLICATION_DATE / EVENT_TIME

Timestamp

When published / when read

12. DONATIONS_EVENTS_DYM — Donation Events

Tracks donation-related activity on digital platforms.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

EVENT_KEY

String

Unique donation identifier

EVENT_TYPE

String

Type of engagement

PLATFORM

String

Platform (tiktok, instagram)

DATA

JSON

Raw event details

DONATION_EVENT_TIME / EVENT_TIME

Timestamp

Timestamps

13. BETTING_EVENTS_FLAT_DYM — Betting Activity

Captures sports betting and gambling platform interactions.

Column
Type
Description

USER_ID

FK

Links to AGENT_SYNC

ACTION

String

User action type

BET_TYPE

String

Type of bet

PLATFORM

String

Betting platform

EVENT_NAME / EVENT_CATEGORY

String

Event details

PARTICIPANTS

String

Event participants

SELECTION

String

Selected outcome

ODDS

Numeric

Betting odds

STAKE_AMOUNT / POTENTIAL_PAYOUT

Numeric

Financial amounts

IS_LIVE_EVENT

Boolean

Live event indicator

MARKET_CATEGORY

String

Market classification

GEO_*

Various

Geographic location fields

EVENT_DATE / EVENT_TIME

Timestamp

Timestamps


Query Translation Patterns

The core skill is translating business questions into multi-step, objective queries. Below are common patterns.

Business question: "What are the most popular RTD brands?"

Wrong approach: Asking the MCP "what's popular" directly.

Right approach — multi-step:

  1. Identify keywords first: Ask: "What distinct values of BRAND or PRODUCT_NAME in PRODUCT_EVENTS_FLAT_DYM contain keywords like 'seltzer', 'cocktail', 'hard', 'white claw', 'truly', 'high noon'?"

  2. Aggregate: "Count distinct USER_IDs and total events grouped by BRAND for products matching those keywords, ordered by count descending."

  3. Segment by action: "Break this down by ACTION (viewed, added_to_cart, purchased) to see funnel performance."

Pattern 2: "What's the average price?" → Multi-Step Keyword + Aggregation

Business question: "What's the average price of RTD drinks?"

Wrong approach: Asking for "average RTD price" directly — the MCP has no RTD category tag.

Right approach — multi-step:

  1. Define the universe: "Find all distinct products in PRODUCT_EVENTS_FLAT_DYM where PRODUCT_NAME or DESCRIPTION ILIKE any of: '%hard seltzer%', '%canned cocktail%', '%RTD%', '%ready to drink%', '%white claw%', '%truly%', '%high noon%', '%cutwater%'"

  2. Extract prices: "For those products, what are the distinct PRODUCT_NAME and PRICE combinations?"

  3. Calculate: "What is the average, median, min, and max PRICE across those products?"

Pattern 3: "Where do people discover X?" → Channel/Platform Analysis

Business question: "Which channels drive RTD discovery?"

Right approach:

  1. Search behavior: "In SEARCH_EVENTS_FLAT_DYM, how many users searched queries containing RTD brand names? Group by SEARCH_ENGINE."

  2. Content exposure: "In YOUTUBE_EVENTS_FLAT_DYM, how many users watched videos with RTD-related keywords in SNIPPET_TITLE or TAGS?"

  3. Network traffic: "In NETWORK_TRAFFIC_EVENTS_DYM, which SNI domains (instacart, doordash, target, amazon, etc.) are most visited by users who also have RTD product events?"

  4. Product source: "In PRODUCT_EVENTS_FLAT_DYM, extract the domain from PAGE_URL for RTD products. Group by domain to see which retailers."

Pattern 4: "Does X lead to Y?" → Temporal Sequence Analysis

Business question: "Does watching creator content lead to purchases?"

Right approach — event sequencing:

  1. Define exposure group: "Find USER_IDs in YOUTUBE_EVENTS_FLAT_DYM who watched videos with beverage/RTD keywords in the title between [date range]."

  2. Define action group: "Find USER_IDs in PRODUCT_EVENTS_FLAT_DYM who had ACTION = 'purchased' for beverage products in the same or subsequent time window."

  3. Compare: "What % of the exposure group also appears in the action group? What % of users NOT in the exposure group appear in the action group?"

  4. Time sequence: "For users in both groups, what was the time gap between YouTube event and purchase event?"

Pattern 5: "Who is our audience?" → Demographic Segmentation

Business question: "Who are the people engaging with Japanese content?"

Right approach:

  1. Define the behavior: "Find USER_IDs from SEARCH_EVENTS where QUERY ILIKE any of '%japan%', '%anime%', '%ramen%', '%sushi%', '%sake%', '%matcha%'"

  2. Also check YouTube: "Add USER_IDs from YOUTUBE_EVENTS where SNIPPET_TITLE or TAGS contain those same keywords."

  3. Join to demographics: "For those USER_IDs, pull GENDER, YEAR_OF_BIRTH, HOUSEHOLD_INCOME, EDUCATION_LEVEL, EMPLOYMENT_STATUS, FULL_ADDRESS from AGENT_SYNC."

  4. Aggregate: "What's the distribution of each demographic field?"

Pattern 6: "What content performs best?" → Engagement Metrics

Business question: "Which types of creator content drive the most engagement?"

Right approach:

  1. Categorize content: "In YOUTUBE_EVENTS_FLAT_DYM, classify videos by keywords in SNIPPET_TITLE: 'tasting', 'tutorial', 'review', 'challenge', 'reaction', 'reveal'"

  2. Per-category metrics: "For each category, count: distinct users, total events, average VIEW_COUNT, average LIKE_COUNT, average COMMENT_COUNT"

  3. Engagement rate: "Calculate engagement per participant (total events / distinct users) for each category"

  4. Cross-reference downstream: "For users who watched each content type, how many also appear in PRODUCT_EVENTS with beverage-related actions?"

Pattern 7: "Is there a trend?" → Time-Series Analysis

Business question: "Is awareness for brand X growing week over week?"

Right approach:

  1. Define the signal: "Count events per week in SEARCH_EVENTS where QUERY ILIKE '%brand_name%'"

  2. Add YouTube: "Count events per week in YOUTUBE_EVENTS where SNIPPET_TITLE or DESCRIPTION ILIKE '%brand_name%'"

  3. Add product interactions: "Count events per week in PRODUCT_EVENTS where PRODUCT_NAME or BRAND ILIKE '%brand_name%'"

  4. Compare periods: "Show week-over-week change for each signal."

Important caveat: Watch for false positives. Brand names like "Toki" or "Hibiki" may match unrelated content (anime characters, rappers). Always validate by checking the actual content context.

Pattern 8: "What are people buying on Amazon?" → Amazon Shopping Funnel

Business question: "What products are trending on Amazon in our category?"

Right approach:

  1. Search intent: "In AMAZON_SHOPPING_FLAT_DYM, what are the top SEARCH_KEYWORDS by count where EVENT_TYPE = 'SEARCH'?"

  2. Product discovery: "For PRODUCT_VIEW events, what are the most viewed PRODUCT_TITLE values? What are the average PRICE values by brand?"

  3. Ad exposure: "For SPONSORED_AD events, which MERCHANT_NAME values appear most? What CAMPAIGN_IDs are active?"

  4. Funnel conversion: "How many users have SEARCH events who also have FUNNEL events with FUNNEL_STEP = 'cart' or 'checkout'?"

  5. Cross-reference: "Join to AGENT_SYNC to segment Amazon shoppers by demographics."

Pattern 9: "What DTC brands are people buying?" → Shopify Cross-Store Analysis

Business question: "Which Shopify DTC brands have the highest engagement?"

Right approach:

  1. Store popularity: "In SHOPIFY_SHOPPING_FLAT_DYM, count events grouped by STORE_DOMAIN, ordered by total events descending."

  2. Product-level detail: "For PRODUCT_VIEW events, show STORE_DOMAIN, PRODUCT_TITLE, PRODUCT_VENDOR, PRICE, and COMPARE_AT_PRICE. Group by vendor to find top brands."

  3. Discount analysis: "Find products where COMPARE_AT_PRICE > PRICE — these are on sale. What % of product views are discounted?"

  4. Full funnel: "Count events by EVENT_TYPE (PRODUCT_VIEW → ADD_TO_CART → CHECKOUT → PAYMENT) per store to see conversion signals."

  5. Search behavior: "What SEARCH_QUERY values appear in SEARCH events? These show what people look for within Shopify stores."

Pattern 10: "What are people ordering for delivery?" → Food Delivery Analysis

Business question: "What restaurants and food items are most popular on delivery apps?"

Right approach:

  1. Restaurant popularity: "In DELIVERY_APPS_FLAT_DYM, for STORE_VIEW events on DOORDASH, what are the top STORE_NAME values by count? What are their average STORE_RATING and DELIVERY_FEE?"

  2. Order details: "For ORDER_PLACED events on DOORDASH, what are the average ORDER_TOTAL and TIP_AMOUNT? Group by PAYMENT_METHOD."

  3. Item-level data: "For ORDER_HISTORY events on UBEREATS, what ITEM_NAME values appear most frequently? What is the average ITEM_PRICE?"

  4. Cross-platform: "Compare DOORDASH vs UBEREATS by total events, distinct users, and average order totals."

  5. Geography: "For DOORDASH STORE_VIEW events, use STORE_LAT/STORE_LNG and STORE_ADDRESS for geographic analysis of which areas have the most delivery activity."

  6. DashPass analysis: "What % of STORE_VIEW events have IS_SUBSCRIPTION_PARTNER = TRUE? Do DashPass stores have higher engagement?"

Pattern 11: "What's happening on Reddit?" → Reddit Community Analysis

Business question: "What topics are trending in our category on Reddit?"

Right approach:

  1. Subreddit mapping: "In REDDIT_POSTS_FLAT_DYM, count events grouped by SUBREDDIT_NAME, ordered by count descending. This shows which communities panelists are browsing."

  2. Content analysis: "For specific subreddits, what POST_TITLE values appear? Use ILIKE to filter titles by category keywords."

  3. Engagement signals: "In REDDIT_ACTIONS_FLAT_DYM, count actions grouped by OPERATION_TYPE (Vote, Save, JoinSubreddit) to see what drives active engagement."

  4. View-to-action conversion: "Compare users who viewed posts (REDDIT_POSTS) vs. users who voted/saved (REDDIT_ACTIONS) to measure engagement depth."

  5. Community growth: "Track JoinSubreddit actions over time to see which communities are gaining panelist members."


Common Pitfalls

❌ Asking interpretive questions directly

  • Bad: "Why do consumers prefer White Claw?"

  • Good: "How many distinct users have events for White Claw products broken down by ACTION type? What QUERY terms do users search before or after White Claw product events?"

❌ Assuming category labels exist

  • Bad: "Show me all RTD beverage data"

  • Good: "Show me products where PRODUCT_NAME or DESCRIPTION contains keywords: [list of RTD brands and category terms]"

❌ Confusing video-level metrics with user-level metrics

  • Bad: "How many views did RTD content get?" (this gives you public YouTube view counts)

  • Good: "How many distinct panelists watched videos with RTD-related titles?" (this gives you panel reach)

❌ Forgetting to validate keyword matches

  • Bad: "How many people searched for 'Yamazaki'?" (could be the whisky OR a Japanese actor)

  • Good: "How many people searched for 'Yamazaki'? Show me the top 10 QUERY values to verify context."

❌ Single-step queries for complex questions

  • Bad: "What's the conversion rate from creator content to purchase?"

  • Good: Break into 3 steps: define exposure group → define conversion group → calculate overlap percentage.

❌ Confusing platform-specific pricing formats

  • Bad: Assuming all prices are in dollars

  • Good: DoorDash and Uber Eats store prices in cents (already converted to dollars in the table). Shopify CART_VIEW prices are in cents (divided by 100 in the table). Amazon prices are in dollars. Always check the table documentation.


Quick Reference: Question → Table Mapping

Question
Table
Key Columns

What people search for

SEARCH_EVENTS_FLAT_DYM

QUERY, SEARCH_ENGINE

What people buy / view / cart

PRODUCT_EVENTS_FLAT_DYM

ACTION, PRODUCT_NAME, BRAND, PRICE, PAGE_URL

What people search on Amazon

AMAZON_SHOPPING_FLAT_DYM

SEARCH_KEYWORDS, EVENT_TYPE, ASIN

What people buy on Amazon

AMAZON_SHOPPING_FLAT_DYM

PRODUCT_TITLE, PRICE, ASIN, FUNNEL_STEP

What Amazon ads are shown

AMAZON_SHOPPING_FLAT_DYM

MERCHANT_NAME, CAMPAIGN_ID, EVENT_TYPE='SPONSORED_AD'

What DTC brands people shop

SHOPIFY_SHOPPING_FLAT_DYM

STORE_DOMAIN, PRODUCT_TITLE, PRODUCT_VENDOR, PRICE

What Shopify stores people visit

SHOPIFY_SHOPPING_FLAT_DYM

STORE_DOMAIN, EVENT_TYPE, COLLECTION_HANDLE

What products are on sale

SHOPIFY_SHOPPING_FLAT_DYM

PRICE, COMPARE_AT_PRICE, PRODUCT_VENDOR

What restaurants people browse

DELIVERY_APPS_FLAT_DYM

STORE_NAME, STORE_RATING, PLATFORM='DOORDASH'

What food people order

DELIVERY_APPS_FLAT_DYM

ITEM_NAME, ITEM_PRICE, ORDER_TOTAL, PLATFORM

DoorDash vs Uber Eats usage

DELIVERY_APPS_FLAT_DYM

PLATFORM, EVENT_TYPE, ORDER_TOTAL

Delivery tipping behavior

DELIVERY_APPS_FLAT_DYM

TIP_AMOUNT, ORDER_TOTAL, PAYMENT_METHOD

What videos people watch

YOUTUBE_EVENTS_FLAT_DYM

SNIPPET_TITLE, CHANNEL_TITLE, VIEW_COUNT

What apps/sites people use

NETWORK_TRAFFIC_EVENTS_DYM

SNI

What news people read

NEWS_EVENTS_FLAT_DYM

KEYWORDS, NEWS_OUTLET, CONTENT_SUMMARY

What subreddits people browse

REDDIT_POSTS_FLAT_DYM

SUBREDDIT_NAME, POST_TITLE, SCORE

What Reddit actions people take

REDDIT_ACTIONS_FLAT_DYM

OPERATION_TYPE, ACTION_DETAILS, SUBREDDIT_NAME

Who the users are

AGENT_SYNC

GENDER, YEAR_OF_BIRTH, HOUSEHOLD_INCOME, FULL_ADDRESS

Donation behavior

DONATIONS_EVENTS_DYM

PLATFORM, EVENT_TYPE

Betting behavior

BETTING_EVENTS_FLAT_DYM

PLATFORM, BET_TYPE, EVENT_NAME


Multi-Table Query Templates

Template A: Content Exposure → Purchase Funnel

Find users exposed to content → check if they purchased → compare to unexposed users.

Template B: Platform Usage Before Purchase

Use NETWORK_TRAFFIC to see what platforms users visited before product interactions.

Template C: Category Interest Sizing

Combine SEARCH, YOUTUBE, PRODUCT, and REDDIT tables to size total interest in a category.

Template D: Price Point Analysis

Use AMAZON_SHOPPING (PRICE), SHOPIFY_SHOPPING (PRICE, COMPARE_AT_PRICE), and PRODUCT_EVENTS (PRICE) for cross-platform price comparison.

Template E: Cross-Platform Shopping Journey

Trace users from SEARCH_EVENTS (discovery) → AMAZON_SHOPPING or SHOPIFY_SHOPPING (product browsing) → DELIVERY_APPS (food ordering) to understand daily commerce patterns.

Template F: Restaurant & Food Discovery

Combine SEARCH_EVENTS (food-related queries) → YOUTUBE_EVENTS (food content) → DELIVERY_APPS_FLAT_DYM (actual orders) to measure content-to-order conversion.

Template G: Reddit-to-Purchase Pipeline

Track REDDIT_POSTS (community browsing) → REDDIT_ACTIONS (upvotes/saves on product recommendations) → PRODUCT_EVENTS or SHOPIFY_SHOPPING (actual purchases) to measure Reddit's influence on buying decisions.


Tips for Power Users

  • Always start by identifying which table(s) contain the signal you need, using the Quick Reference table above.

  • For brand analysis, search across multiple tables: PRODUCT_EVENTS (purchases), SEARCH_EVENTS (intent), YOUTUBE_EVENTS (content), AMAZON_SHOPPING (Amazon-specific), SHOPIFY_SHOPPING (DTC), and REDDIT_POSTS (community discussion).

  • Use AGENT_SYNC joins to segment any behavior by demographics.

  • For time-series analysis, use DATE_TRUNC('week', EVENT_TIME) to aggregate events into weekly bins.

  • For funnel analysis across platforms, use USER_ID to trace the same person across tables.

  • For Shopify discount analysis, compare PRICE vs COMPARE_AT_PRICE — when compare_at is higher, the product is on sale.

  • For delivery app analysis, DoorDash has the richest store-level data (ratings, fees, addresses, geolocation) while Uber Eats has the richest item-level data (individual menu items with prices from order history).

Last updated