Money spent driving paid traffic to a broken checkout. Powers the report-paid-traffic-waste skill. The agency ‘pause this campaign’ single number.
At a glance
The dollar amount of paid-ads spend (Google Ads + Meta Ads) that drove BigCommerce traffic into a broken or failed checkout. Cross-connector view: paid spend × (% of paid-attributed sessions that failed checkout). The agency-facing “pause this campaign” single number.
| What it counts | paid_spend × (paid_failed_sessions ÷ paid_total_sessions), where paid sessions are GA4-attributed to medium = cpc OR paid_social and the BC order outcome (declined, incomplete, recovered, succeeded) is joined per session via UTM-stamped staffNotes or orderSource. |
| VAT / tax treatment | n/a (this is an ad-spend dollar figure, not a revenue figure). The downstream impact uses BC total_inc_tax (tax-inclusive). |
| Shipping | n/a. |
| Discounts | n/a. |
| Refunds | Excluded. The card looks at the failed-checkout side; refunds are post-success and not relevant. |
Incomplete / Declined orders | Both included. A paid click that ended in Incomplete is wasted spend; same for Declined. The card counts both populations as failures attributable to the paid spend that drove them. |
| Cancelled orders | Excluded. |
| Currency | Mixed. Ad spend often quoted in account currency; BC revenue in store currency. We do not FX-convert; multi-currency stores see weakly-comparable numbers. |
| Channels / sources | Web only. Paid ads drive sessions to web (channel_id = 1) by definition; marketplace channels don’t run BC-tracked paid ads. |
| Attribution window | GA4 default last-non-direct-click (typically 30 days for click, 1 day for view). The card inherits GA4’s attribution, not custom merchant rules. |
| What “broken checkout” means here | A session with a purchase event that never reached paymentStatus = captured, OR a session where begin_checkout fired but purchase never fired. The first measures gateway breakage; the second measures pre-payment drop. |
| Time window | 30D |
| Alert trigger | >15% of paid spend failing at checkout, fires when more than 15 cents of every paid dollar is going to broken checkouts. |
| Roles | owner, marketing, finance |
Calculation
Calculated automatically from your BigCommerce data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A US homewares brand. The 30-day window covers 14 Mar 26 to 12 Apr 26.| Source | Spend | Paid sessions | Paid orders attempted | Paid orders failed | Failure rate | Wasted spend |
|---|---|---|---|---|---|---|
| Google Ads, Search | $14,200 | 28,400 | 850 | 102 | 12.0% | $1,704 |
| Google Ads, Shopping | $9,800 | 19,600 | 588 | 88 | 15.0% | $1,470 |
| Meta Ads, Facebook | $6,400 | 12,800 | 320 | 48 | 15.0% | $960 |
| Meta Ads, Instagram | $4,200 | 8,400 | 210 | 38 | 18.1% | $760 |
| Total | $34,600 | 69,200 | 1,968 | 276 | 14.0% | $4,894 |
- **59,500/year of pure waste. Fixing the checkout returns this directly to the bottom line, no acquisition work needed.
- Instagram traffic fails worst (18.1%), classic signature of mobile-Safari iOS checkout issues (Instagram in-app browser is iOS Safari WebKit). Cross-reference BC Incomplete Rate by device segment to confirm.
- The 14% headline is at the alert threshold. Above 15% triggers the alert; the merchant is hovering. A small drift in checkout health pushes this into “campaigns should pause” territory.
- The right action is fix-then-spend, not pause-and-walk-away. Pausing campaigns saves the wasted spend but also forfeits the working spend. Fix the checkout, the wasted-spend share collapses, and ROAS jumps without changing campaigns.
- Use it for agency conversations, the single “pause this campaign” number that justifies fix work to the marketing team.
- Pair with checkout-fix priority, the wasted-spend dollar figure tells finance how much to invest in checkout audits.
- Don’t pause campaigns wholesale, isolate the device / browser segment driving the failure first; pause only those segment placements while the fix is in flight.
Sibling cards merchants should reference together
| Card | Why pair it with Paid Traffic Waste |
|---|---|
| BC Incomplete Rate | The UX-side failure rate that drives most of the wasted spend. |
| BC Decline Rate | The payment-side failure rate. |
| BC Failed Orders Value | The dollar value of failed orders, the revenue side of the waste. |
| BC XC Klaviyo Email Revenue Share | The diversification companion. High paid waste + low email share = double diagnosis. |
| BC XC Ads on OOS | Paid spend driving traffic to OOS items, related but distinct waste vector. |
google_ads.ga_campaign_roas | Campaign-level ROAS view; this card shows the campaign-agnostic waste pool. |
facebook.fb_campaign_roas | Same for Meta. |
google_analytics.ga_ecommerce_conversion_rate | The funnel view that disambiguates “broken checkout” from “low intent traffic”. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce Control Panel: BigCommerce does not surface paid-traffic attribution natively. This is a cross-connector card; data lives in Google Ads / Meta Ads (spend side), GA4 (session attribution), and BC (order outcome). To partially verify:- Google Ads → Campaigns view shows total spend.
- GA4 → Acquisition → Traffic acquisition shows paid sessions and conversion events.
- BC → Orders shows the order outcome per email/UTM.
- Stitching the three is what this card automates; the components individually are visible in each platform’s dashboard.
| Reason | Direction |
|---|---|
| GA4 tracking gaps. 10-25% of paid clicks don’t show up in GA4 due to ad blockers / cookie rejection. | Vortex IQ HIGHER waste estimate (more failures attributed) |
| Attribution model. We use GA4’s last-non-direct-click default; some merchants run data-driven attribution. | Variable |
| UTM hygiene. Campaigns without UTM tagging fall to direct/organic; their failures don’t count here. | Vortex IQ LOWER waste estimate |
| Currency. Ad spend in account currency; BC revenue in store currency. | Material for international stores |
| Time zone. UTC vs Google Ads / Meta account timezone. | Boundary effects |
| Card | Expected relationship | Notes |
|---|---|---|
google_ads.ga_total_spend | Total Google Ads spend, the input to this card’s wastage math | Should match Google Ads dashboard within 1% |
facebook.fb_total_spend | Same for Meta | Match within 1% |
google_analytics.ga_paid_sessions | The session denominator | GA4 sees post-cookie-consent traffic only |
| BC Failed Orders Value | The order-side failure pool from which paid-attributed failures are drawn | Subset relationship |
Known limitations / merchant FAQs
My agency says ROAS is fine, but this card flagged 18% waste, which is right? Both. ROAS measures revenue ÷ spend across the campaign; this card measures the share of spend going to broken checkouts. Even at healthy ROAS, an 18% waste rate means you could improve ROAS by another ~22% (1 / (1 - 0.18)) by fixing the checkout, no campaign work needed. The two cards aren’t competing; they’re complementary. Should I just pause the campaigns flagged here? No, fix the checkout instead. Pausing forfeits the 82-86% of spend that IS working. The right sequence: (1) identify the failure segment (often device class, browser, or payment method), (2) fix the underlying checkout issue, (3) verify failure rate drops in BC Incomplete Rate and BC Decline Rate, (4) the wasted-spend share collapses automatically. My waste rate is 25%, what’s the fastest fix? Run BC Incomplete Rate by device segment. iOS Safari is the usual culprit (SameSite cookie issue, in-app browser quirks). A server-side cookie-policy adjustment is hours of engineering work and typically drops the iOS waste rate by half overnight.
Why does Instagram fail worse than Facebook?
Instagram in-app browser is iOS Safari WebKit by default; Facebook in-app browser is a Meta-custom WebView with looser cookie policy. The same checkout that works on Facebook breaks on Instagram. Cross-platform inconsistency in mobile in-app browsers is the single biggest paid-waste driver for Meta-ad-heavy stores.
Multi-currency stores: how do I read this card?
The dollar figures are inherently mixed-currency. Read the percentage (waste rate) rather than the absolute number. The percentage is internally consistent (failed-paid-sessions ÷ total-paid-sessions); the absolute dollar mix-up is in the spend baseline.
My organic traffic also fails at checkout, why is this card paid-only?
Because failed paid traffic cost you money (you paid for the click that failed); failed organic traffic just cost you a customer. Both are bad, but paid waste has a direct dollar bleed that this card surfaces. Use BC Incomplete Rate for the organic-side view.
Why exclude refunds?
Because a refunded paid order isn’t “wasted spend”, you got the order, the customer changed their mind. The card focuses on spend that drove customers into a checkout that never collected cash; refunds are post-cash and out of scope.
Can I trust the GA4 attribution underlying this card?
Within 10-25% accuracy, yes. GA4 misses ad-blocked / cookie-rejected sessions, which biases the card slightly toward higher-attribution-quality segments (lower-tracking-friction users). The directional signal is reliable; treat absolute dollar figures as ±20% accurate.
Should I include search-ads brand campaigns in this card?
The card includes whatever Google Ads / Meta Ads accounts are connected. Brand-campaign waste is usually low (high-intent traffic, fewer checkout failures), so including them dilutes the waste rate slightly. For diagnostic clarity, filter to non-brand campaigns when investigating, brand traffic isn’t the campaign category you’d pause.
My waste rate dropped after I fixed the checkout, but spend went up, did I help?
Yes, materially. A drop in waste rate AND an increase in spend means more of your dollars are converting; the campaigns are scaling effectively. Watch absolute revenue (Total Revenue card), it should grow disproportionately to spend after a checkout fix.