What calculated fields work in Looker Studio with GA4?
Twelve calculated field formulas cover the most common GA4 reporting requirements in Looker Studio: engagement rate override (for when GA4's native calculation differs from your definition), revenue per session, custom conversion rate, session quality score, cost per acquisition (using blended ad data), rolling 7-day active users, channel contribution %, bounce rate approximation (for stakeholders who still ask for it), page value, new vs returning ratio, goal completion index, and cross-device deduplication flag. The single most important syntax rule: GA4 field names in Looker Studio use the exact names from the GA4 connector — Sessions, Engaged sessions, Key events, not the UA equivalents (ga:sessions, ga:goalCompletions).
The 12 recipes
Recipe 1 — Engagement rate override
GA4's native engagement rate (Engaged sessions / Sessions) is correct, but sometimes stakeholders want engagement rate redefined to include pages-per-session thresholds or minimum session duration. Override it:
Note: The second formula requires blending with BigQuery data where you can compute session-level metrics. With the native connector alone, you can only use the pre-aggregated Engaged sessions field.
For native connector use, the first formula is sufficient and produces the same result as the built-in field. Use it to add a % number format and verify your connector is returning correct numbers.
Recipe 2 — Revenue per session
Aggregation: Purchase revenue → SUM, Sessions → SUM. Set the calculated field aggregation to Auto and format as currency.
Common mistake: Using AVG on Purchase revenue, which averages per row (per dimension combination) rather than computing the true revenue/sessions ratio. Always use SUM(x)/SUM(y) for ratio metrics, never AVG(x/y).
Recipe 3 — Custom conversion rate
GA4's built-in Key event rate divides key events by sessions. If you want conversion rate for a specific key event (e.g., only purchase events, not all key events):
Or for lead generation:
And if you want conversion rate to express form submits specifically (requires a custom dimension for event_name filtering, or a BigQuery-connected source):
In a native connector chart, add a filter: Event name = form_submit, then add Key events as a metric. Divide by Sessions using a calculated field on a blended source or use the filter-level trick.
Recipe 4 — Cost per acquisition (requires ad spend data blend)
This requires blending GA4 with Google Ads, Meta Ads, or a cost data source. Once blended:
Where Cost comes from your ad platform data source and Conversions from GA4. Set fallback: CASE WHEN SUM(Conversions) = 0 THEN NULL ELSE SUM(Cost) / SUM(Conversions) END to avoid divide-by-zero errors on non-converting segments.
Recipe 5 — Session quality score
A composite metric that scores sessions on a 0–100 scale based on engagement signals. Build this from a BigQuery data source (not native connector — requires session-level fields):
Clip to 100: LEAST(100, formula_above).
Use for identifying which channels deliver genuinely engaged sessions beyond raw engagement rate. A channel with high engagement rate but low pageviews and no conversions scores lower than a channel with moderate engagement rate but strong pageviews and conversion.
Recipe 6 — Channel contribution percentage
For a bar chart showing each channel's share of total sessions:
Want to see which hidden implementation gaps are affecting your GA4 data quality?
The double SUM pattern (SUM(SUM(field))) is Looker Studio's syntax for "total across all rows in the current chart." This gives you the denominator as the grand total rather than the row total, enabling % contribution.
Format as percentage. Apply to Sessions, Revenue, or Key events equally.
Recipe 7 — Bounce rate approximation
GA4 doesn't have a native bounce rate (it was removed in favour of engagement rate). For stakeholders who still ask for it, approximate it:
This is exactly the inverse of engagement rate. The number will differ from UA bounce rate because GA4's engagement definition (10+ seconds OR 2+ pageviews OR conversion) differs from UA's (single-pageview sessions). Label it explicitly as "Non-engagement rate" to avoid confusion in stakeholder presentations.
Recipe 8 — New vs returning user ratio
This gives new user percentage. For a returning user % counter-metric:
Edge case: GA4's New users count can exceed Users in some edge cases when consent mode modelling is active (modelled users are added to Users but not always cleanly split into New/Returning). If your ratio exceeds 1.0, check your property's consent mode and reporting identity configuration.
Recipe 9 — Average pages per session
GA4 doesn't surface this as a native metric. Approximate it:
Note: Screen page views in GA4 combines web page_view events and app screen_view events. If you have a web-only property, Screen page views = Page views. For blended web+app properties, filter by Platform = WEB at the chart level.
Recipe 10 — Revenue per user (RPU)
Important: COUNT_DISTINCT in Looker Studio calculated fields applies within the current chart's aggregation, which for time-series charts means per date. For true RPU across a date range, use a scorecard rather than a time series, or use a BigQuery source with explicit date range partitioning.
Recipe 11 — Year-over-year session change
Requires two separate GA4 data sources in the same report — one for the current period, one for the same period last year. After blending:
Format as percentage. The most common error here: blending on Date when the current and prior periods have different date values. Instead, blend on a Day of week or Day of year field to align comparable days. For YoY, create a calculated field in each data source that converts the date to a normalised key (YEAR(Date) * 1000 + DAY_OF_YEAR(Date)) — then blend on that key.
Recipe 12 — ROAS (Return on Ad Spend)
Requires GA4 blended with ad platform cost data:
Apply the same CASE WHEN SUM(Cost) = 0 THEN NULL ELSE ... guard as Recipe 4. Format as a decimal ratio (e.g., 4.2x). Add a reference line at 1.0 (break-even) on any chart using this field.
Syntax patterns that cause errors
Pattern 1 — Field name case sensitivity Looker Studio field names from the GA4 connector are case-sensitive. Sessions ≠ sessions. Use the exact names as shown in the data source field list.
Pattern 2 — Division by zero Any formula dividing by a metric that can be zero will produce null or an error in Looker Studio. Always wrap: CASE WHEN denominator = 0 THEN 0 ELSE numerator / denominator END.
Pattern 3 — SUM vs COUNT_DISTINCT on users Users in the GA4 connector is already a deduplicated count. Using COUNT_DISTINCT(Users) in a calculated field double-deduplicates. Use SUM(Users) for ratio denominators.
Pattern 4 — Date functions Looker Studio date functions work differently by connector. For native GA4 connector: YEAR(Date), MONTH(Date), WEEK(Date) all work. For BigQuery connector: use BigQuery-native date functions in your SQL, then expose the result as a dimension.
Pattern 5 — Calculated fields on blended sources Calculated fields defined in an individual data source are available in blends. Calculated fields you create at the blend level can only reference fields exposed by the blend, not the underlying source fields. Create complex metrics in the source data sources first, then blend.
FAQ: Looker Studio Calculated Fields for GA4: 12 Recipes That Actually Work
What should a team validate first when looker studio calculated fields for ga4: 12 recipes that actually work appears?
How do I know whether the fix actually worked?
When should this become a full GA4 audit instead of a quick fix?
Related guides for Looker Studio Calculated Fields for GA4: 12 Recipes That Actually Work
Server-Side GTM Hosting Cost Benchmarks: Cloud Run vs Stape vs Self-Hosted (2026)
Server-side GTM hosting falls into three pricing models in 2026: Google Cloud Run (variable, starts at ~€120/month for 3 minimal servers, scales to €240–€300 for higher traffic, plus optional logging fees), managed providers like Stape (fixed monthly: €20/month for 500k requests…
Server-Side GTM vs Client-Side GTM: A Decision Matrix (2026)
Move to server-side GTM if you (1) need Conversions API integrations with Meta, Google Ads, TikTok, or LinkedIn for offline-conversion match quality (the strongest single justification — typical 9–24% conversion lift)…
Run a GA4 audit before looker studio calculated fields for ga4: 12 recipes that actually work spreads into reporting decisions
Use GA4 Audits to surface implementation gaps, broken signals, and the next fixes to prioritize before the issue becomes harder to trust or explain.