Define calculated metrics and attribution models for journey reporting
Compose reusable calculated metrics from base XDM event fields, select attribution models and lookback windows, and apply them inside workspace analyses to measure the contribution of each journey touchpoint.
Calculated metrics transform raw event counts into business-meaningful KPIs — conversion rates, add-to-cart ratios, revenue per visit — without requiring changes to the underlying data schema. Attribution models then answer the harder question: when a customer converted after touching multiple journey steps and channels, how should credit be allocated across those touchpoints? Configuring both layers correctly is what turns raw behavioral data into actionable journey intelligence.
The metric-definition workflow requires understanding which XDM field paths carry the underlying counts (e.g., commerce.productViews, commerce.productListAdds, commerce.purchases), which aggregation function is appropriate (Sum for counts, Approximate Count Distinct for unique visitors), and whether the metric should be scoped to a specific container (event, session, or person). Attribution configuration adds a second dimension: the lookback window determines how far back in time the model searches for credit-worthy touchpoints, while the model type (Last Touch, First Touch, Linear, Participation) determines how that credit is spread.
Parallel viability: Medium-to-high parallelism. Composable BI tools (Looker, Tableau, dbt metrics layer) all support calculated metrics and configurable attribution windows. The CJA-specific advantages are tight integration with the AEP Identity graph for person-level session stitching and the shared data model that lets the same metric definitions be reused across the same workspace that shows funnel and flow analyses. Teams with a mature metrics layer in an existing BI tool should evaluate whether replatforming metric definitions to CJA delivers incremental value, especially if they do not already use AEP for real-time profile resolution.
Side-by-side implementations
In Customer Journey Analytics, practitioners open the Calculated Metrics builder and compose metrics by combining base XDM event fields with mathematical operators. Example metrics include Product Views (using commerce.productViews with the "Sum" function), Add to Cart (commerce.productListAdds), and Purchases (commerce.purchases). Each metric can have an attribution model and lookback window set at the component level inside a Data View (e.g., Last Touch, 30-day window) or overridden per-column inside an Analysis Workspace freeform table. Attribution models — Last Touch, First Touch, Linear, Participation, and algorithmic options — determine how conversion credit is distributed across touchpoints captured in the cross-channel connection. Filters (CJA's equivalent of segments) can be applied to scope a calculated metric to a specific journey stage or channel.
Capability: Identity Resolution
In dbt, calculated metrics are defined as SQL expressions in .yml metric definitions using the dbt Semantic Layer with MetricFlow. A metric like "Cart Abandonment Rate" is expressed as add_to_cart_events divided by product_view_events in MetricFlow YAML. In Snowflake Cortex Analyst, calculated metrics can be defined as virtual semantic columns. Attribution model overrides (first-touch, last-touch, linear, time-decay, data-driven) are applied as SQL window functions in a dbt attribution model using CASE/FIRST_VALUE/LAST_VALUE window expressions over the ordered touchpoint sequence. The output attribution table is consumed by BI tools (Tableau, Looker) for column-level attribution display, which is architecturally identical to CJA's column-level attribution override capability. The gap relative to CJA is that model reuse across workspace analyses requires disciplined dbt project organization rather than a shared GUI metric builder.
Capability: Audience Segmentation
Hightouch Computed Columns are the composable activation-layer equivalent of CJA's calculated metrics. A Computed Column is a SQL expression defined on a Hightouch Model that produces a derived attribute available for audience targeting and activation payload enrichment — for example, a "spend_ratio_90d" Computed Column expressing purchases_last_90d / purchases_last_365d using Snowflake SQL. Attribution model outputs computed in dbt attribution models (first-touch, last-touch, linear, time-decay) can be added as Computed Columns, making attribution-weighted values available as audience filter criteria and activation payload fields. Hightouch Computed Columns are not a reporting feature — the BI reporting layer (Tableau, Looker) remains separate. The Hightouch role is to surface attribution-derived insights as actionable audience criteria and to enrich downstream activation payloads with the same pre-computed attribution values visible in the BI workspace.
Capability: Audience Segmentation
Task-level sources
- technical-training/module11/ex3.md
- technical-training/module11/ex5.md
- technical-training/module11/summary.md
How is this implementation?
Sign-in-gated. Tomorrow morning's curriculum-ingestor consumes your feedback: "Inaccurate" queues the task for re-review, "needs update" queues it for a refresh, and "one vendor panel is wrong" re-drafts just that panel.