Transparency
Every number in your audit report has a source. This page explains the statistical methods and heuristics behind each finding — including their limitations.
Ripplux connects to three data sources: Shopify (orders, customers, UTM parameters), Meta Ads (campaigns, ad sets, creatives, daily performance), and Google Ads (campaigns, ad groups, daily performance metrics).
All data is fetched via official platform APIs using OAuth tokens that you authorize. Ripplux never stores raw creative assets — only performance metrics. Data is synced on demand and can be refreshed at any time from the dashboard.
Order data is enriched with UTM attribution. When an order containsutm_sourceor paid touchpoints, it is classified as ad-attributed. Orders without these signals are classified as organic.
Ad cannibalization occurs when ad spend is used to convert customers who would have purchased organically anyway. Ripplux detects this through customer journey analysis.
The algorithm groups all orders by customer email address. For each customer with multiple orders, Ripplux classifies their first-ever order. If that first order was organic (no UTM parameters, no paid touchpoints), the customer is flagged as an organic customer. Subsequent orders from that customer that are attributed to paid ads are classified as cannibalized.
cannibalized_waste = cannibalized_orders × avg_ad_spend_per_order
This is a lower-bound estimate. It only counts customers who demonstrably converted organically before being re-targeted. It does not model prospective cannibalization (i.e., customers who would have found you organically on their first purchase). True cannibalization may be higher.
Creative fatigue is the performance degradation that occurs when audiences are repeatedly exposed to the same ad creative. Ripplux measures fatigue using daily CTR trajectories.
For each active ad creative, Ripplux queries the last 30 days of daily performance data (impressions, clicks, spend). It identifies the peak CTR — the highest single-day click-through rate the creative achieved — and tracks the percentage decline from that peak.
A creative is flagged as fatigued when:
Waste is calculated using the efficiency delta method:
efficiency_ratio = current_ctr / peak_ctr daily_waste = daily_spend × (1 - efficiency_ratio) total_waste = Σ daily_waste (for all days after fatigue onset)
This method estimates the spend that went toward diminishing returns rather than peak-level performance. It does not account for natural performance variation or market-level changes (e.g., seasonality).
Conversion leaks are drop-offs in the purchase funnel — visitors who showed buying intent but did not complete a purchase. Ripplux analyzes four funnel stages: landing page visit → cart addition → checkout initiation → completed purchase.
Drop-off rates are calculated at each stage transition. A stage with more than a 20% drop-off rate is flagged as a conversion leak candidate. The potential revenue impact is estimated as:
leaked_revenue = visitors × expected_conversion_rate × avg_order_value − actual_revenue
Conversion leak estimates carry the most uncertainty because they depend on accurate funnel tracking, which varies by Shopify theme and checkout configuration. Results should be treated as directional signals rather than precise measurements.
Incrementality testing is the gold standard for measuring true ad effectiveness. Rather than relying on attribution models (which are influenced by the platform reporting them), incrementality tests use randomized holdout groups to measure causality.
Ripplux designs holdout experiments using a two-proportion z-test power analysis. The parameters are calculated as follows:
# Sample size per group (two-tailed, α=0.05, power=80%) Z_α/2 = 1.96 (critical value for 95% confidence) Z_β = 0.842 (critical value for 80% power) MDE = 0.20 (minimum detectable effect: 20% lift) p = baseline conversion rate (from platform data, or 3% fallback) q = 1 − p n = (Z_α/2 + Z_β)² × (p×q + p×q) / MDE²
The holdout percentage (5%–20%) is calculated from the required sample size divided by the estimated daily conversions. Duration is capped at 90 days, with platform minimums of 7 days (Meta) and 14 days (Google).
Results are analyzed using the same two-proportion z-test. A result is conclusive when p_value < 0.05 AND the holdout group has achieved at least 100 conversions. The incremental lift and true ROAS are calculated as:
non_incremental_pct = treatment_rate / control_rate incremental_pct = 1 − non_incremental_pct true_roas = reported_roas × incremental_pct
Note: In this model, the control group sees ads (existing behavior) and the treatment group is the holdout (withheld from ads). This means control_rate is the ad-exposed conversion rate and treatment_rate is the organic baseline.
Every finding in a Ripplux audit is assigned a confidence level that reflects how the result was derived:
Estimated
Derived from heuristic analysis of synced data (journey analysis, CTR trajectories, funnel drop-offs). No controlled experiment was run. These numbers are directionally correct but carry uncertainty.
Tested
A conclusive incrementality experiment confirmed the finding (p < 0.05, minimum 100 holdout conversions). The true ROAS and incremental lift figures are derived from randomized data.
Inconclusive
An experiment was run but did not reach statistical significance. The audit report remains at Estimated confidence. Ripplux will suggest a revised holdout percentage or duration for a follow-up test.
Known limitations
Connect your Shopify store and run your first audit in under 5 minutes.
Start free — no credit card required