{ "title": "E-Commerce Analytics Platform - Complete Data Lineage", "description": "A comprehensive demonstration of data lineage tracking across an entire e-commerce analytics platform, showcasing multi-source ingestion, transformation layers, and cross-system dependencies.", "version": "1.0", "generated_at": "2025-11-20T15:00:00Z", "lineage_graph": { "nodes": [ { "id": "shopify_orders", "name": "Shopify Orders API", "type": "source", "category": "external_api", "description": "Order data from Shopify e-commerce platform", "metadata": { "platform": "Shopify", "refresh_frequency": "real-time webhook", "data_volume": "~50K orders/day" } }, { "id": "shopify_products", "name": "Shopify Products API", "type": "source", "category": "external_api" }, { "id": "shopify_customers", "name": "Shopify Customers API", "type": "source", "category": "external_api" }, { "id": "stripe_payments", "name": "Stripe Payments", "type": "source", "category": "external_api", "description": "Payment transaction data from Stripe" }, { "id": "stripe_subscriptions", "name": "Stripe Subscriptions", "type": "source", "category": "external_api" }, { "id": "ga4_events", "name": "Google Analytics 4", "type": "source", "category": "analytics", "description": "Website behavior and conversion events" }, { "id": "fb_ads", "name": "Facebook Ads", "type": "source", "category": "marketing" }, { "id": "google_ads", "name": "Google Ads", "type": "source", "category": "marketing" }, { "id": "zendesk_tickets", "name": "Zendesk Support", "type": "source", "category": "support", "description": "Customer support ticket data" }, { "id": "raw_orders", "name": "raw.orders", "type": "table", "category": "raw_layer", "schema": "raw", "database": "analytics_dw" }, { "id": "raw_products", "name": "raw.products", "type": "table", "category": "raw_layer" }, { "id": "raw_customers", "name": "raw.customers", "type": "table", "category": "raw_layer" }, { "id": "raw_payments", "name": "raw.payments", "type": "table", "category": "raw_layer" }, { "id": "raw_subscriptions", "name": "raw.subscriptions", "type": "table", "category": "raw_layer" }, { "id": "raw_web_events", "name": "raw.web_events", "type": "table", "category": "raw_layer" }, { "id": "raw_ad_spend", "name": "raw.ad_spend", "type": "table", "category": "raw_layer" }, { "id": "raw_support_tickets", "name": "raw.support_tickets", "type": "table", "category": "raw_layer" }, { "id": "stg_orders", "name": "staging.stg_orders", "type": "model", "category": "staging_layer", "transformation": "Clean, dedupe, add calculated fields" }, { "id": "stg_order_items", "name": "staging.stg_order_items", "type": "model", "category": "staging_layer" }, { "id": "stg_products", "name": "staging.stg_products", "type": "model", "category": "staging_layer" }, { "id": "stg_customers", "name": "staging.stg_customers", "type": "model", "category": "staging_layer" }, { "id": "stg_payments", "name": "staging.stg_payments", "type": "model", "category": "staging_layer" }, { "id": "stg_subscriptions", "name": "staging.stg_subscriptions", "type": "model", "category": "staging_layer" }, { "id": "stg_web_sessions", "name": "staging.stg_web_sessions", "type": "model", "category": "staging_layer", "transformation": "Sessionize events, calculate engagement" }, { "id": "stg_ad_campaigns", "name": "staging.stg_ad_campaigns", "type": "model", "category": "staging_layer" }, { "id": "stg_support_cases", "name": "staging.stg_support_cases", "type": "model", "category": "staging_layer" }, { "id": "int_customer_orders", "name": "intermediate.int_customer_orders", "type": "model", "category": "intermediate_layer", "transformation": "Join customers with order history" }, { "id": "int_order_payments", "name": "intermediate.int_order_payments", "type": "model", "category": "intermediate_layer", "transformation": "Match orders with payments" }, { "id": "int_customer_attribution", "name": "intermediate.int_customer_attribution", "type": "model", "category": "intermediate_layer", "transformation": "Multi-touch attribution model" }, { "id": "int_product_performance", "name": "intermediate.int_product_performance", "type": "model", "category": "intermediate_layer" }, { "id": "int_customer_support_history", "name": "intermediate.int_customer_support_history", "type": "model", "category": "intermediate_layer" }, { "id": "dim_customers", "name": "marts.dim_customers", "type": "dimension", "category": "marts_layer", "description": "Customer dimension with lifetime metrics", "grain": "customer" }, { "id": "dim_products", "name": "marts.dim_products", "type": "dimension", "category": "marts_layer", "grain": "product" }, { "id": "dim_date", "name": "marts.dim_date", "type": "dimension", "category": "marts_layer", "grain": "day" }, { "id": "fct_orders", "name": "marts.fct_orders", "type": "fact", "category": "marts_layer", "grain": "order" }, { "id": "fct_order_items", "name": "marts.fct_order_items", "type": "fact", "category": "marts_layer", "grain": "order_item" }, { "id": "fct_web_sessions", "name": "marts.fct_web_sessions", "type": "fact", "category": "marts_layer" }, { "id": "fct_marketing_spend", "name": "marts.fct_marketing_spend", "type": "fact", "category": "marts_layer" }, { "id": "fct_support_tickets", "name": "marts.fct_support_tickets", "type": "fact", "category": "marts_layer" }, { "id": "rpt_daily_sales", "name": "reporting.rpt_daily_sales", "type": "report", "category": "reporting_layer", "description": "Daily sales summary by channel and category" }, { "id": "rpt_customer_ltv", "name": "reporting.rpt_customer_ltv", "type": "report", "category": "reporting_layer", "description": "Customer lifetime value analysis" }, { "id": "rpt_marketing_roi", "name": "reporting.rpt_marketing_roi", "type": "report", "category": "reporting_layer", "description": "Marketing ROI by channel and campaign" }, { "id": "rpt_product_analytics", "name": "reporting.rpt_product_analytics", "type": "report", "category": "reporting_layer" }, { "id": "rpt_customer_health", "name": "reporting.rpt_customer_health", "type": "report", "category": "reporting_layer", "description": "Customer health score combining all signals" }, { "id": "ml_churn_features", "name": "features.churn_prediction", "type": "feature_set", "category": "ml_features", "description": "Features for churn prediction model" }, { "id": "ml_ltv_features", "name": "features.ltv_prediction", "type": "feature_set", "category": "ml_features" }, { "id": "looker_model", "name": "Looker Semantic Layer", "type": "semantic_model", "category": "bi_layer" }, { "id": "tableau_extract", "name": "Tableau Extract", "type": "extract", "category": "bi_layer" }, { "id": "salesforce_sync", "name": "Salesforce Account Sync", "type": "destination", "category": "reverse_etl" }, { "id": "hubspot_sync", "name": "HubSpot Contact Sync", "type": "destination", "category": "reverse_etl" } ], "edges": [ {"from": "shopify_orders", "to": "raw_orders", "type": "ingest"}, {"from": "shopify_products", "to": "raw_products", "type": "ingest"}, {"from": "shopify_customers", "to": "raw_customers", "type": "ingest"}, {"from": "stripe_payments", "to": "raw_payments", "type": "ingest"}, {"from": "stripe_subscriptions", "to": "raw_subscriptions", "type": "ingest"}, {"from": "ga4_events", "to": "raw_web_events", "type": "ingest"}, {"from": "fb_ads", "to": "raw_ad_spend", "type": "ingest"}, {"from": "google_ads", "to": "raw_ad_spend", "type": "ingest"}, {"from": "zendesk_tickets", "to": "raw_support_tickets", "type": "ingest"}, {"from": "raw_orders", "to": "stg_orders", "type": "transform"}, {"from": "raw_orders", "to": "stg_order_items", "type": "transform"}, {"from": "raw_products", "to": "stg_products", "type": "transform"}, {"from": "raw_customers", "to": "stg_customers", "type": "transform"}, {"from": "raw_payments", "to": "stg_payments", "type": "transform"}, {"from": "raw_subscriptions", "to": "stg_subscriptions", "type": "transform"}, {"from": "raw_web_events", "to": "stg_web_sessions", "type": "transform"}, {"from": "raw_ad_spend", "to": "stg_ad_campaigns", "type": "transform"}, {"from": "raw_support_tickets", "to": "stg_support_cases", "type": "transform"}, {"from": "stg_customers", "to": "int_customer_orders", "type": "join"}, {"from": "stg_orders", "to": "int_customer_orders", "type": "join"}, {"from": "stg_orders", "to": "int_order_payments", "type": "join"}, {"from": "stg_payments", "to": "int_order_payments", "type": "join"}, {"from": "stg_customers", "to": "int_customer_attribution", "type": "join"}, {"from": "stg_web_sessions", "to": "int_customer_attribution", "type": "join"}, {"from": "stg_ad_campaigns", "to": "int_customer_attribution", "type": "join"}, {"from": "stg_products", "to": "int_product_performance", "type": "join"}, {"from": "stg_order_items", "to": "int_product_performance", "type": "join"}, {"from": "stg_customers", "to": "int_customer_support_history", "type": "join"}, {"from": "stg_support_cases", "to": "int_customer_support_history", "type": "join"}, {"from": "int_customer_orders", "to": "dim_customers", "type": "model"}, {"from": "int_customer_attribution", "to": "dim_customers", "type": "model"}, {"from": "int_customer_support_history", "to": "dim_customers", "type": "model"}, {"from": "stg_products", "to": "dim_products", "type": "model"}, {"from": "int_product_performance", "to": "dim_products", "type": "model"}, {"from": "int_order_payments", "to": "fct_orders", "type": "model"}, {"from": "dim_customers", "to": "fct_orders", "type": "reference"}, {"from": "stg_order_items", "to": "fct_order_items", "type": "model"}, {"from": "dim_products", "to": "fct_order_items", "type": "reference"}, {"from": "fct_orders", "to": "fct_order_items", "type": "reference"}, {"from": "stg_web_sessions", "to": "fct_web_sessions", "type": "model"}, {"from": "dim_customers", "to": "fct_web_sessions", "type": "reference"}, {"from": "stg_ad_campaigns", "to": "fct_marketing_spend", "type": "model"}, {"from": "int_customer_attribution", "to": "fct_marketing_spend", "type": "reference"}, {"from": "stg_support_cases", "to": "fct_support_tickets", "type": "model"}, {"from": "dim_customers", "to": "fct_support_tickets", "type": "reference"}, {"from": "fct_orders", "to": "rpt_daily_sales", "type": "aggregate"}, {"from": "fct_order_items", "to": "rpt_daily_sales", "type": "aggregate"}, {"from": "dim_products", "to": "rpt_daily_sales", "type": "reference"}, {"from": "dim_customers", "to": "rpt_customer_ltv", "type": "aggregate"}, {"from": "fct_orders", "to": "rpt_customer_ltv", "type": "aggregate"}, {"from": "fct_marketing_spend", "to": "rpt_marketing_roi", "type": "aggregate"}, {"from": "fct_orders", "to": "rpt_marketing_roi", "type": "aggregate"}, {"from": "int_customer_attribution", "to": "rpt_marketing_roi", "type": "reference"}, {"from": "dim_products", "to": "rpt_product_analytics", "type": "aggregate"}, {"from": "fct_order_items", "to": "rpt_product_analytics", "type": "aggregate"}, {"from": "dim_customers", "to": "rpt_customer_health", "type": "aggregate"}, {"from": "fct_orders", "to": "rpt_customer_health", "type": "aggregate"}, {"from": "fct_web_sessions", "to": "rpt_customer_health", "type": "aggregate"}, {"from": "fct_support_tickets", "to": "rpt_customer_health", "type": "aggregate"}, {"from": "dim_customers", "to": "ml_churn_features", "type": "export"}, {"from": "fct_orders", "to": "ml_churn_features", "type": "export"}, {"from": "fct_web_sessions", "to": "ml_churn_features", "type": "export"}, {"from": "fct_support_tickets", "to": "ml_churn_features", "type": "export"}, {"from": "dim_customers", "to": "ml_ltv_features", "type": "export"}, {"from": "fct_orders", "to": "ml_ltv_features", "type": "export"}, {"from": "rpt_daily_sales", "to": "looker_model", "type": "publish"}, {"from": "rpt_customer_ltv", "to": "looker_model", "type": "publish"}, {"from": "rpt_marketing_roi", "to": "looker_model", "type": "publish"}, {"from": "rpt_product_analytics", "to": "looker_model", "type": "publish"}, {"from": "rpt_customer_health", "to": "looker_model", "type": "publish"}, {"from": "rpt_daily_sales", "to": "tableau_extract", "type": "export"}, {"from": "rpt_customer_ltv", "to": "salesforce_sync", "type": "reverse_etl"}, {"from": "rpt_customer_health", "to": "salesforce_sync", "type": "reverse_etl"}, {"from": "rpt_customer_ltv", "to": "hubspot_sync", "type": "reverse_etl"} ] }, "expected_visualization": { "mermaid": "graph LR\n subgraph Sources\n shopify_orders[Shopify Orders]\n shopify_products[Shopify Products]\n shopify_customers[Shopify Customers]\n stripe_payments[Stripe Payments]\n ga4_events[GA4 Events]\n fb_ads[Facebook Ads]\n zendesk_tickets[Zendesk]\n end\n \n subgraph Raw\n raw_orders[raw.orders]\n raw_products[raw.products]\n raw_customers[raw.customers]\n raw_payments[raw.payments]\n raw_web_events[raw.web_events]\n end\n \n subgraph Staging\n stg_orders[staging.stg_orders]\n stg_customers[staging.stg_customers]\n stg_products[staging.stg_products]\n end\n \n subgraph Marts\n dim_customers[marts.dim_customers]\n dim_products[marts.dim_products]\n fct_orders[marts.fct_orders]\n end\n \n subgraph Reporting\n rpt_daily_sales[reporting.rpt_daily_sales]\n rpt_customer_ltv[reporting.rpt_customer_ltv]\n end\n \n shopify_orders --> raw_orders\n raw_orders --> stg_orders\n stg_orders --> fct_orders\n fct_orders --> rpt_daily_sales" }, "notes": "This comprehensive demo showcases a real-world e-commerce analytics platform with 50+ nodes and 80+ edges across multiple data layers, from source systems through to BI tools and reverse ETL destinations." }