| First pageviews | dbt_staging_bigquery.first_pageviews | visitorid, url, referrer, created_date (TIMESTAMP), channel, utm*, user_id. No page_type — derive from URL. |
| All pageviews | dbt_staging_bigquery.all_pageviews | Has page_type, sub_page_type, first_touch_channel, session_channel, c_referrer, full utm fields |
| Signups | dbt_staging_bigquery.signups | visitorid, user_id, root_organization_id, utm*, signup_url, created_date |
| Signups (enriched) | dbt_analytics.product_signups | userid, user_create_d (TIMESTAMP), channel, icp_flag, top_subscription, referrer, utm* |
| Blog metadata | sigma_materialized.SIGDS_82deb8e2_40f8_4fb4_b3cb_caa011a72d29 | Cryptic column names — see mapping below. 858 rows, deduplicate by blog slug. |
| Blog content (old) | test.builder_blog_content | contentId, name (blog TITLE not author), handle, topic. Only 75 rows, no author. DO NOT use for author data. |
| CRM contacts | dbt_mart.dim_hs_contacts | contact_id (INT64), b_visitor_id, builder_user_id, ql_score, date_entered_mql/sal/s0/s1, lifecycle_stage_name |
| Deals | dbt_mart.dim_deals | deal_id, amount (not deal_amount), stage_name (not deal_stage), is_closed_won (string), arr_amount, close_date, create_date |
| Subscriptions | dbt_mart.dim_subscriptions | subscription_id, root_id, space_id, subscription_arr, start_date, plan, status |
| Enterprise companies | dbt_mart.enterprise_companies | Joins hubspot_companies + dim_contracts + organizations. Has upcoming_renewal_date, health_status, customer_stage. |
| HubSpot companies | dbt_staging.hubspot_companies | company_name, company_id, company_domain_name, upcoming_renewal_date, root_org_id, current_enterprise_arr |