Class 9
Platform reports more than GA4
$42,504
more revenue in platform reports than in GA4
- Seeded at
- +20% over GA4 last-click
- Results in
- 12 instances
- Documented case
- none published
Campaign Math · Quellwood Provisions · Q3 2026 (July 1 – September 30)
And which campaign worked best depends on a rule nobody chose.
Every rule names qw_search_brand the top campaign. That result is real. Below it, the order is a choice:
9 of 12 paid campaigns move two or more places depending on the rule, and qw_search_nb_gift-boxes's return on spend runs from 0.69× to 1.88×.
Why the top holds: 44% of revenue comes from customers with one recorded visit, where every rule gives
the same answer by arithmetic, and among paid campaigns, qw_search_brand takes the largest share of those one-visit
sales (11%).
Every-rule winners: qw_search_brand and qw_shopping_all-products rank in the top 3 under all four rules. Fund them without argument.
Unattributable: 12.5% of conversions, $61,682 in revenue, reach no campaign and no traceable source: Direct, Unassigned, (not set) or an unmatched campaign name. 26% of those got there through a tracking defect, seeded at the published or stated rate listed below.
GA4: Since November 2023, GA4 offers no first-click, linear or position-based model. Its default is data-driven attribution, which cannot be reproduced outside Google. These four rules can be, and they bracket it. Google's note
Measurable floor: For a brand that sells mostly through retailers, this is the slice of marketing where the math can be checked. Most ad money also moves shelf sales that web analytics never sees.
Ranked by attributed revenue. Highlighted lines move two or more places between rules.
Source: synthetic GA4 export, Q3 2026 (July 1 – September 30); 5,556 purchases after deduplication on transaction ID. Paths use last-non-direct-click conventions, 90-day lookback inside the export window.
Each row is one paid campaign's return on ad spend under the four rules. The dot colors mark the rule; the labels mark the low and high ends.
Return on ad spend = revenue attributed under the rule ÷ the campaign's spend in the spend table. Sorted by the width of the range.
| Campaign | Platform | Spend | Last-click | First-click | Linear | Position-based | Rank range | Reading |
|---|---|---|---|---|---|---|---|---|
qw_search_brand | $5,904 | $51,691 | $44,593 | $52,835 | $50,115 | 1 | Top 3 under every rule | |
qw_shopping_all-products | $7,667 | $38,720 | $36,749 | $37,222 | $37,405 | 2 | Top 3 under every rule | |
qw_meta_rt_site-visitors | Meta | $7,226 | $34,395 | $21,202 | $29,478 | $28,582 | 3–5 | Depends on the rule |
qw_meta_rt_cart-abandoners | Meta | $4,868 | $21,534 | $9,379 | $17,052 | $16,226 | 4–11 | Depends on the rule |
qw_tiktok_pro_chili-crisp | Other paid | $8,816 | $14,870 | $17,375 | $14,768 | $15,507 | 5–7 | Depends on the rule |
qw_meta_pro_chili-crisp | Meta | $6,483 | $10,501 | $26,569 | $17,373 | $18,041 | 3–6 | Depends on the rule |
qw_meta_pro_lookalike-buyers | Meta | $8,320 | $8,590 | $22,954 | $14,385 | $15,040 | 4–7 | Depends on the rule |
qw_search_nb_chili-crisp | $6,118 | $8,563 | $18,022 | $12,036 | $12,792 | 6–8 | Depends on the rule | |
qw_affiliate_partner-network | Other paid | $2,077 | $8,257 | $10,160 | $8,770 | $9,035 | 9–11 | Depends on the rule |
qw_search_nb_spice-blends | $4,897 | $8,232 | $15,377 | $10,832 | $11,409 | 8–10 | Depends on the rule | |
qw_search_nb_gift-boxes | $8,094 | $5,614 | $15,216 | $9,521 | $10,047 | 9–11 | Depends on the rule | |
qw_meta_pro_gifting | Meta | $2,152 | $2,114 | $3,260 | $2,556 | $2,638 | 12 | Depends on the rule |
Attributed revenue by rule. "Depends on the rule": rank moves two or more places, or return on spend varies by 1.5× or
more. Email campaigns carry no media spend and are not ranked: qw_email_weekly-newsletter $40.7K (last-click); qw_email_abandoned-cart $27.8K (last-click); qw_email_welcome-series $18.0K (last-click). Revenue credited to no campaign, last-click: Organic social $22.0K; Organic search $69.3K; Referral (incl. payment gateway) $36.4K; Direct (no tracked source) $53.2K; Unassigned, (not set), unmatched $16.9K.
Nine classes of tracking defect, each planted in this quarter at a published or stated rate. The four that touch the most revenue are below. "Documented case" says whether a published account exists of this defect changing a budget decision.
Class 9
$42,504
more revenue in platform reports than in GA4
Class 8
$41,074
of revenue on journeys it touched
Class 1
$27,328
of revenue on journeys it touched
Class 5
$23,075
of revenue on journeys it touched
| Class | Defect | Seeded at | Instances | Revenue touched | Spend on it | Documented case |
|---|---|---|---|---|---|---|
| 4 | Duplicate purchase sends | 3% of purchases | 152 | $14,160 | — | none published |
| 3 | (not set) source | 1% of sessions | 2,480 | $14,005 | — | none published |
| 2b | Off-spec medium → Unassigned | 2% of tagged sessions | 1,483 | $10,529 | — | none published |
| 4 | Missing transaction_id | 0.5% of purchases | 35 | $3,136 | — | none published |
| 7 | gclid lost on redirect | 2% of Google Ads clicks | 1,073 | $2,811 | — | none published |
| 6 | Bot / invalid traffic | 3% of paid clicks / 1% of other sessions | 4,613 | $0 | $2,240 | Uber / Frisch |
Bot traffic touches no revenue: bots don't buy. Its cost is the spend on non-human paid clicks. It is the only class with a published decision case: Uber cut about two-thirds of a ~$150M rider-ad budget and installs did not move (Daily Maverick, 2021).
| Campaign | Platform clicks | GA4 sessions matched | Gap | Untraced spend |
|---|---|---|---|---|
qw_meta_pro_lookalike-buyers | 10,555 | 8,070 | 2,485 | $1,959 |
qw_meta_rt_site-visitors | 12,669 | 10,920 | 1,749 | $998 |
qw_search_nb_gift-boxes | 6,221 | 5,707 | 514 | $669 |
qw_search_nb_chili-crisp | 8,262 | 7,537 | 725 | $537 |
qw_meta_pro_chili-crisp | 8,913 | 8,295 | 618 | $449 |
qw_tiktok_pro_chili-crisp | 9,416 | 9,298 | 118 | $110 |
qw_meta_pro_gifting | 2,373 | 2,268 | 105 | $95 |
qw_shopping_all-products | 17,514 | 17,342 | 172 | $75 |
qw_search_brand | 12,425 | 12,305 | 120 | $57 |
qw_meta_rt_cart-abandoners | 8,321 | 8,240 | 81 | $47 |
qw_search_nb_spice-blends | 5,320 | 5,272 | 48 | $44 |
qw_affiliate_partner-network | 3,753 | 3,711 | 42 | $23 |
| Total | $5,064 |
Untraced spend = spend × (platform clicks − GA4 sessions carrying the campaign's name) ÷ platform clicks. Bot clicks are counted on both sides, so they don't shrink the gap. Untraced spend here counts only the seeded tracking defects: this synthetic quarter has no other click loss (consent refusals, ad blockers, visitors who leave before the tag fires), so a real account's gap would be larger. Class 2a, case / spelling variants (12% of tagged sessions): case differences are matched back to their campaign; spelling variants are not, and land in the unattributable count. No published decision case.
Synthetic data: Quellwood Provisions is an invented brand. Its quarter of data is generated from a fixed seed, with tracking defects planted at the rates listed above. The method is real.
The four rules. Each purchase's path is the buyer's recorded sessions in the 90 days before it, Direct visits removed (GA4's last-non-direct-click convention, applied to all four rules alike). Last-click gives the last touch 100%. First-click gives the first touch 100%. Linear splits evenly. Position-based gives 40% to the first and last touches and splits 20% across the middle; with two touches it is 50/50. A path with only Direct visits goes to Direct. Purchases are deduplicated on transaction ID, as GA4 does.
Rates. Each defect rate is either published (cited) or a stated assumption bounded by published figures. None was chosen to make the result dramatic, and none was adjusted after the result was seen. The verdict copy and the rule for choosing it were committed before the data was generated.
Check it by hand. GA4 event export, one gzip CSV per month: July, August, September (1,400,182 events; joined, their rows hash to SHA-256 bef7049239e1448f…), and the daily spend table. Every attribution number on this page comes from those files. The hygiene audit counts the
defects the generator planted; it reads the seed log, true sessions and true orders, published here too.