Verb 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.
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_BIRTHState extraction: Parse from FULL_ADDRESS
Income brackets:
GROUP BYranges 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.
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.
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.
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).
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.
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%'orQUERY 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.
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.
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.
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.
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.
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.
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.
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.
Pattern 1: "What's popular?" → Aggregate Event Counts
Business question: "What are the most popular RTD brands?"
Wrong approach: Asking the MCP "what's popular" directly.
Right approach — multi-step:
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'?"
Aggregate: "Count distinct USER_IDs and total events grouped by BRAND for products matching those keywords, ordered by count descending."
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:
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%'"
Extract prices: "For those products, what are the distinct PRODUCT_NAME and PRICE combinations?"
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:
Search behavior: "In SEARCH_EVENTS_FLAT_DYM, how many users searched queries containing RTD brand names? Group by SEARCH_ENGINE."
Content exposure: "In YOUTUBE_EVENTS_FLAT_DYM, how many users watched videos with RTD-related keywords in SNIPPET_TITLE or TAGS?"
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?"
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:
Define exposure group: "Find USER_IDs in YOUTUBE_EVENTS_FLAT_DYM who watched videos with beverage/RTD keywords in the title between [date range]."
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."
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?"
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:
Define the behavior: "Find USER_IDs from SEARCH_EVENTS where QUERY ILIKE any of '%japan%', '%anime%', '%ramen%', '%sushi%', '%sake%', '%matcha%'"
Also check YouTube: "Add USER_IDs from YOUTUBE_EVENTS where SNIPPET_TITLE or TAGS contain those same keywords."
Join to demographics: "For those USER_IDs, pull GENDER, YEAR_OF_BIRTH, HOUSEHOLD_INCOME, EDUCATION_LEVEL, EMPLOYMENT_STATUS, FULL_ADDRESS from AGENT_SYNC."
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:
Categorize content: "In YOUTUBE_EVENTS_FLAT_DYM, classify videos by keywords in SNIPPET_TITLE: 'tasting', 'tutorial', 'review', 'challenge', 'reaction', 'reveal'"
Per-category metrics: "For each category, count: distinct users, total events, average VIEW_COUNT, average LIKE_COUNT, average COMMENT_COUNT"
Engagement rate: "Calculate engagement per participant (total events / distinct users) for each category"
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:
Define the signal: "Count events per week in SEARCH_EVENTS where QUERY ILIKE '%brand_name%'"
Add YouTube: "Count events per week in YOUTUBE_EVENTS where SNIPPET_TITLE or DESCRIPTION ILIKE '%brand_name%'"
Add product interactions: "Count events per week in PRODUCT_EVENTS where PRODUCT_NAME or BRAND ILIKE '%brand_name%'"
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:
Search intent: "In AMAZON_SHOPPING_FLAT_DYM, what are the top SEARCH_KEYWORDS by count where EVENT_TYPE = 'SEARCH'?"
Product discovery: "For PRODUCT_VIEW events, what are the most viewed PRODUCT_TITLE values? What are the average PRICE values by brand?"
Ad exposure: "For SPONSORED_AD events, which MERCHANT_NAME values appear most? What CAMPAIGN_IDs are active?"
Funnel conversion: "How many users have SEARCH events who also have FUNNEL events with FUNNEL_STEP = 'cart' or 'checkout'?"
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:
Store popularity: "In SHOPIFY_SHOPPING_FLAT_DYM, count events grouped by STORE_DOMAIN, ordered by total events descending."
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."
Discount analysis: "Find products where COMPARE_AT_PRICE > PRICE — these are on sale. What % of product views are discounted?"
Full funnel: "Count events by EVENT_TYPE (PRODUCT_VIEW → ADD_TO_CART → CHECKOUT → PAYMENT) per store to see conversion signals."
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:
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?"
Order details: "For ORDER_PLACED events on DOORDASH, what are the average ORDER_TOTAL and TIP_AMOUNT? Group by PAYMENT_METHOD."
Item-level data: "For ORDER_HISTORY events on UBEREATS, what ITEM_NAME values appear most frequently? What is the average ITEM_PRICE?"
Cross-platform: "Compare DOORDASH vs UBEREATS by total events, distinct users, and average order totals."
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."
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:
Subreddit mapping: "In REDDIT_POSTS_FLAT_DYM, count events grouped by SUBREDDIT_NAME, ordered by count descending. This shows which communities panelists are browsing."
Content analysis: "For specific subreddits, what POST_TITLE values appear? Use ILIKE to filter titles by category keywords."
Engagement signals: "In REDDIT_ACTIONS_FLAT_DYM, count actions grouped by OPERATION_TYPE (Vote, Save, JoinSubreddit) to see what drives active engagement."
View-to-action conversion: "Compare users who viewed posts (REDDIT_POSTS) vs. users who voted/saved (REDDIT_ACTIONS) to measure engagement depth."
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
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