Reporting tables
The module ships six report tables built for BI tools (Looker Studio, etc.). This page is a practical guide - what each one answers, what to chart, and which metrics to compute in your BI layer. For the full column list of every table, see Output tables.
For channel credit (first/last/linear/position/time-decay), build on ga4_attribution_models, not these reports - see Attribution models. The reports below describe paths, participation, timing and micro-conversion lift.
Common to all reports
- Date control. Every report is partitioned on
journey_start_date(the journey's first-touch / cohort date). Add a date-range control bound to it - and remember a row'sconversion_datecan be later than itsjourney_start_date. - Derive rates in BI, never store them. Reports store additive counts and SUM numerators only. Compute rates and averages in your BI tool so they stay correct at any grain (see Additivity):
- conversion rate =
closed_journeys / journeys - avg days to conversion =
sum_days_to_conversion / closed_journeys - avg revenue per closing conversion =
total_revenue / closing_conversion_count
- conversion rate =
- Credit vs influence.
ga4_attribution_modelsis fractional credit (conserves revenue). The assist and micro-conversion reports are influence - they double-count across the channels / micro-conversions of a journey, so don't sum them as if they were credit (see Fractional credit vs influence). - Zero-touch journeys appear with the channel
'(no touchpoint)'rather than being dropped, so conversion totals reconcile.
ga4_attribution_channel_chain_report
Answers: which channel paths lead to conversion, and how they perform.
Suggested visuals
- Table of top
channel_chainvalues ranked byclosed_journeysortotal_revenue. - Conversion rate by
path_length_bucket(bar):SUM(closed_journeys) / SUM(journeys). - First-vs-last channel matrix using
first_channel/last_channel.
Notes: path_length counts repeats; num_distinct_channels does not. Split closed / ongoing / lapsed with the respective count columns.
→ columns
ga4_attribution_journey_summary_report
Answers: how journey length relates to conversion and revenue.
Suggested visuals
- Conversion rate by
path_length(line/bar):SUM(closed_journeys) / SUM(journeys). - Journey volume distribution across
path_length(histogram). - Avg revenue per closing conversion by path length:
SUM(total_revenue) / SUM(closing_conversion_count).
Notes: grain is raw path_length; bucket in BI (or use the convenience path_length_bucket). Zero-touch journeys fall in path_length 1.
→ columns
ga4_attribution_channel_assist_report
Answers: which channels close conversions vs assist them (an influence view).
Suggested visuals
- Per
channel: stacked/clustered bar ofjourneys_as_first,journeys_assisted,journeys_as_last. - Assist ratio per channel:
journeys_assisted / journeys_participated. participated_revenuevsassisted_revenueby channel.
Notes: values double-count across the channels in a journey - this is influence, not attributed credit. For credit use ga4_attribution_models. journeys_assisted = participated - as_last (a channel that is both mid-path and the closer counts as last).
→ columns
ga4_attribution_channel_transition_report
Answers: how users move between channels on the way to conversion.
Suggested visuals
- Sankey diagram:
from_channel→to_channel, weight =transitions(edge frequency) orjourneys_with_transition(distinct journeys). - Terminal-node breakdown: filter
to_channelto'(conversion: ...)'vs'(no conversion)'.
Notes: from_channel includes a '(start)' node; to_channel includes terminal nodes. transitions counts repeats within a journey; use journeys_with_transition for distinct-journey edge weights.
→ columns
ga4_attribution_conversion_lag_report
Answers: how long it takes journeys to convert.
Suggested visuals
closed_journeys(orrevenue) bylag_bucket(bar), sorted bylag_bucket_orderso buckets read chronologically (0 (same day)→31+ days).- Avg days to conversion:
SUM(sum_days_to_conversion) / SUM(closed_journeys).
Notes: closed journeys only. Sort the chart on lag_bucket_order (1-5), not the bucket label, to keep it chronological.
→ columns
ga4_attribution_micro_conversion_report
Answers: whether a micro-conversion (a non-closing conversion, e.g. add-to-cart, signup) lifts the final outcome.
Suggested visuals
- Per
conversion_name: conversion rate of journeys that include it -closed_journeys_with / journeys_with- compared against the overall baseline rate. The gap is the lift. event_countandevent_revenueby micro-conversion (volume).
Notes: closing_revenue_with is the journey's final closing revenue (the outcome), not the micro-conversion's own revenue (event_revenue is that). Summing closing_revenue_with across conversion_name double-counts a journey, so it can exceed total closing revenue - keep it per micro-conversion.
→ columns