Case Study

From Attribution Chaos to Marketing Clarity

How a wellness retreat discovered its Facebook ROAS was 70% higher than reported — and why a 27% revenue drop had nothing to do with ad creative.

A multi-program wellness retreat running 12–20 immersive programs per year had three data platforms reporting three different stories. Their marketing consultant reported a 1.65x ROAS — technically profitable, but not enough to justify a budget increase. Over eight weeks, paid social revenue had fallen 27%. Lets Viz ran the investigation before building a single dashboard.

Hospitality & Experiences · USA·GA4 Data APIGoogle Apps ScriptFacebook AdsRetreat GuruZoho AnalyticsGoogle Sheets
Wellness Retreat|Paid Social Performance|Last 90 days ▾
GA4FB AdsRefreshed daily
⚠ Attribution gap detected41.6% of paid social sessions invisible to GA4 — iOS ATT blocking cross-app trackingView audit →

Ad Spend (90d)

$26,573

Facebook Ads

GA4 Sessions

54,210

41.6% uncaptured

iOS gap

Reported ROAS

1.65x

incomplete data

GA4 only

Corrected ROAS

~2.8x

+70% recovery

ATT adjusted

Attributed Revenue

$43,874

excl. 41.6% iOS

GA4 reported

ROAS — Reported vs Corrected

ROAS

Reported

1.65x

Corrected

~2.8x

ROAS trend after correction model applied

Session Attribution Gap

GA4

41.6%

Captured (58.4%)
iOS gap (41.6%)

~38,500 sessions lost

GA4 captured est. actual

Revenue by Channel

FB Ads
Organic Search
$144K
Referral
$86K
Direct
$58K
Paid Social
$44K
Organic Social
$10K

Paid Social understated — excludes iOS conversions

Campaign Performance (90d)

FB Ads
CampaignSpendSessionsROAS
Retreat Prospecting$14,20019,8001.42x
Retargeting — WCA$8,10012,4002.10x
Retreat Awareness$4,27322,0101.85x

ROAS figures are GA4 reported values — understated by iOS gap

Spend vs GA4 Sessions (90d)

GA4
spend ($K) sessions (K)

▼ Session capture rate fell 9.1pp — clicks flat, GA4 declining

At a glance

Results That Speak for Themselves

2.8x

Corrected ROAS vs 1.65x reported

41.6%

Sessions invisible to GA4 (iOS ATT)

27%

Revenue drop fully explained

6

Zoho Analytics dashboards built

From challenge to outcome

The Problem & Our Approach

Three Invisible Failures Compounding Each Other

GA4, Facebook Ads Manager, and Retreat Guru were each reporting different numbers. The marketing consultant reported a blended ROAS of 1.65x — technically profitable, but not convincing enough to justify increasing budget. Over eight weeks, paid social purchase revenue had fallen 27%, and the executive team was asking whether Facebook advertising was still working. Three independent failures were making every number unreliable.

  • 41.6% of paid social sessions invisible to GA4 — 38,500 sessions untracked due to iOS App Tracking Transparency.
  • Lead conversion event firing on page load, not form submission — producing a 107% conversion rate.
  • Facebook Conversions API not enabled — every iOS 14.5+ purchase invisible to FB's optimisation algorithm.
  • TikTok ads running without UTM parameters — 1,380 sessions, $0 attributed revenue, all landing as Direct.

A Three-Layer Data Pipeline + Six Dashboards

Lets Viz designed a pipeline that pulled all three data sources into a single unified Zoho Analytics consultant workspace — without any third-party middleware. GA4 data was pulled weekly via Google Apps Script into four structured Google Sheets tabs. Retreat Guru bookings were integrated via API export. All tabs sync daily into Zoho Analytics.

  • GA4 via Google Apps Script — weekly pull into four structured Sheets tabs; 15 months backfilled.
  • Retreat Guru bookings — API export cross-referenced against GA4 events; Retreat Guru set as authoritative revenue record.
  • Zoho Analytics — 6 dashboards: Traffic & Revenue | Paid Social | Funnel | Landing Pages | Bookings | Attribution.
  • ROAS correction — 68% iOS audience share + 41.6% session gap applied to 90-day window: 1.65x → ~2.8x.
  • Tracking audit — four misconfigurations documented, priority-ordered, handed to the marketing consultant.

What We Achieved

6 Zoho Analytics dashboards built — Traffic & Revenue, Paid Social, Funnel, Landing Pages, Bookings, Attribution
15 months of historical data backfilled (Jan 2025 – Apr 2026)
27% revenue drop fully explained across three documented causes — none of which were ad creative failure
ROAS corrected from 1.65x to ~2.8x — same campaign, accurate measurement
4 tracking misconfigurations identified, documented, and handed to the marketing consultant as an ordered fix list
Skeptical founder converted to aligned stakeholder via structured data credibility briefing
Unified attribution view: GA4, Facebook Ads, and Retreat Guru in one workspace — updated daily

Decomposing the 27% Revenue Drop

CauseEst. ImpactWhat Happened
Audience mix shift10–15 ppAug 2025 retargeting budget cut 49.5%. Oct 2025 cold-prospecting budget up 12.6%. High-converting return visitors replaced by lower-intent new audiences.
Attribution degradation9–12 ppSession capture rate fell from 44.3% to 35.2% (-9.1pp) over three weeks. Clicks stayed flat while GA4 sessions dropped — attribution worsened, not traffic.
Purchase event loss3–5 ppPurchase events fell 11pp more than Add-to-Cart events, indicating a purchase-pixel-specific failure on top of the broader session gap.

Four Tracking Red Flags Surfaced

IssueFindingFix
generate_lead eventFiring on /contact-us page load — 107% conversion rate (physically impossible)Move GTM trigger to form submission confirmation — 1-hour fix
GA4 conversion flaggenerate_lead not marked as a conversion event in GA4 AdminToggle in GA4 Admin > Events — 5-minute fix
Facebook Conversions APINot enabled — every iOS 14.5+ purchase invisible to FB optimisation algorithmServer-side CAPI via GTM server container — scoped as Phase 2
TikTok UTM gap$0 attributed revenue on 1,380 sessions — all landing as Direct in GA4Add UTM parameters to all TikTok ad destination URLs

1.65x Reported. ~2.8x Corrected.

With the iOS attribution gap quantified, a correction model was applied to the 90-day revenue figures. At 68% iOS mobile audience share and a 41.6% overall session gap, the conservative recovery factor shifted the conversation from 'should we cut the Facebook budget?' to 'how quickly can we enable Conversions API to recover the remaining attribution gap?'

  • $26,573 Facebook Ads spend in the 90-day window
  • $43,874 GA4-attributed Paid Social revenue (incomplete — excludes 41.6% of iOS sessions)
  • 68% of the paid social audience on iOS mobile — subject to ATT tracking block
  • Corrected ROAS: ~2.8x vs 1.65x reported — same campaign, different measurement
  • A 1.65x ROAS triggers a budget review. A 2.8x ROAS triggers a budget increase.
A 1.65x ROAS triggers a budget review. A 2.8x ROAS triggers a budget increase. Same campaign. Different measurement.
Lets Viz Analysis·Attribution Correction — Wellness Retreat Engagement

From Frustrated Stakeholder to Collaborative Partner

Midway through the project, the retreat owner questioned whether the analytics investment was justified — the dashboards were showing numbers he did not recognise from his own intuition. Lets Viz responded with a structured data briefing, not a sales pitch. Within 48 hours, the marketing consultant had moved from defensive to collaborative — asking for the specific GTM tags to fix and the priority order for tracking corrections.

  • Side-by-side comparison of reported vs corrected numbers for each channel
  • Plain-English explanation of each attribution failure and its mechanism
  • Revised ROAS forecast showing what the number would look like after Conversions API was enabled
  • Priority-ordered fix list for the marketing consultant — specific GTM tags, estimated implementation time per fix
  • This pattern — data credibility gap followed by structured explanation — is where the real value of the engagement lives

The Pattern — Not the Industry

The problem this client had is not unique to wellness retreats. Any business running paid digital advertising and measuring results in GA4 faces the same iOS attribution gap. Any business with multiple data sources faces the same reconciliation problem. What is missing is a team that will run the investigation before drafting the dashboard — and report what the data actually says, even when it contradicts the client's intuition.

  • No black-box tools — GA4, Apps Script, Google Sheets, Zoho Analytics. The client owns everything.
  • Data first — the attribution hypothesis was verified with real data before anything was written to the client.
  • Transparent methodology — every correction factor documented and explainable to any stakeholder.
  • Phased delivery — pipeline first, then dashboards, then server-side attribution. No scope creep.
  • If your ad spend and your analytics are telling different stories — that gap is the problem we solve.

Delivered Work

Dashboard Screenshots

Wellness Retreat

Traffic & Revenue

Last 90 days · refreshed daily 03:00

Last 90 days

refreshed daily 03:00

Total Revenue

$319,777

+2.1%

Transactions

454

+12.1%

Sessions

74,835

+3.2%

Avg. Order Val.

$704

-2.1%

Rev / Session

$4.29

+6.8%

Revenue by Channel (90d)

Organic Search
$144k
Referral
$86k
Direct
$58k
Paid Social
$44k
Organic Social
$10k

Weekly Revenue Trend (12w)

Channel Mix by Revenue

Organic Search 45%
Referral 27%
Direct 18%
Paid Social 14%
Organic Social 3%

Discuss a similar Hospitality & Experiences project

Lets Viz runs a paid discovery audit ($500–1,000, credited toward the project) to scope your requirements, data model, and architecture before writing a line of code.

From Lets Viz

Helping companies make data-driven decisions to achieve their Goals

Experience superior data analysis with our custom dashboards. Specialising in all tools and technologies, we turn data into visually compelling, actionable insights.

NDA-safe · No obligation · Clear next steps