A static form scan can find campaign fields that are already visible in a page, but it cannot prove what a form sends when somebody clicks submit. We tested that gap on a deliberately selected validation set: 23 public B2B forms were attempted, and 20 produced a definitive submission-payload result.
In those 20 definitive cases, the scanner detected 8 of 17 payload-confirmed campaign-data captures and missed 9. This is a validation result for the selected cases, not an estimate of how often all B2B forms capture campaign data.
CORRECTION — 22 JULY 2026
An earlier version compared the 17/20 capture proportion in a deliberately enriched validation set with the 44/150 static-scan proportion in the parent sample and described the difference as an approximately threefold undercount. Because the two samples have different compositions, that multiplier was not supported. We have replaced it with the same-sample validation result: among 20 selected cases with definitive payload results, the scanner detected 8 of 17 confirmed captures and missed 9. We also clarified that payload transmission does not prove downstream CRM storage or reporting. The underlying 23-row dataset has not changed.
Key Takeaways
- The scanner missed 9 of 17 confirmed captures in this selected validation set. Its sensitivity was 47% (8/17; 95% Wilson interval 26%–69%).
- Positive calls matched all 8 definitive positive cases. Precision was 8/8, but the small denominator means this should not be treated as a universal 100% guarantee.
- The nine misses were not one single mechanism. Six were classified as hidden-field capture, two as JavaScript-injected at submit, and one as cookie-forwarded.
- The selected set was intentionally enriched for suspected false negatives. Its 17/20 capture proportion must not be generalized to the 150-form parent sample or the B2B market.
- Practical rule: a negative static-scan result is a reason to inspect the real submission payload, not proof that attribution data is absent.
The finding, in one sentence
In a deliberately selected validation set of 20 B2B forms with definitive payload results, a static audit detected 8 of 17 payload-confirmed campaign-data captures and missed 9. The result demonstrates false negatives in this audit method. It does not establish a market-wide capture rate or a universal undercount multiplier.
WHY THIS MATTERS TO YOU
If a static scanner says a form does not capture campaign data, treat that result as provisional. Reproduce the user journey, submit a uniquely tagged test lead with permission, and inspect the actual lead-creation request before changing a working setup.
Why this study exists
UTMs and click-IDs can help a B2B company connect a lead with the campaign that generated it. This study tests one narrow layer of that process: whether sentinel campaign values appeared in an observable form-submission payload. It does not test downstream CRM storage, mapping, or reporting.
How we measured it (and why the easy method lies)
We started with an automated audit of 150 public B2B demo, contact, and signup forms. A read-only script loaded each form carrying a test UTM and click-ID, then inspected the page’s form fields, cookies, and dataLayer. It produced a tidy number: 29% (44 of 150) capture the UTM into an actual form field.
We did not trust it, for a simple reason: a script reading the page can only see what is in the page. It cannot see what a form adds to the network request at the instant you hit submit. So we hand-validated a stratified sample of 23 forms the only way that settles the question — by submitting one real test lead to each and reading the actual submission request.
The protocol, applied identically to every form:
- One submission per form, from a single dedicated address on our own domain, then stop. No automation, no resubmission.
- Each form was reached through a unique tagged URL (
utm_source=ivris-research … gclid=ivrisHAND-<n>), so any captured value is unambiguously ours. - We read the actual submission POST body and searched it for our sentinel values.
- Capture counts only if the value is in the observed submission payload. Analytics pixels, request headers, the
Referer, first-party cookies, and the page URL alone do not count. - Where the real payload could not be observed (server-rendered, third-party iframe, or a blocked route), the form is recorded as unverifiable and excluded — never guessed.
The 23 attempted cases were selected across the scanner’s three verdict classes and deliberately weighted toward suspected false negatives: 7 scanner verdicts were none, 7 were cookie/dl-only, and 9 were form-field. Three attempts were unverifiable (AgencyAnalytics, Customer.io, Buildertrend), leaving 20 forms with a definitive payload result.
What the hand pass found
Among those 20 definitive cases, 17 transmitted a UTM or click-ID in the observed submission payload and 3 did not. The 17/20 proportion describes this selected validation set only. It cannot be compared as a rate with the scanner’s 44/150 parent-sample result because the samples have different compositions and the validation set was intentionally enriched for suspected misses.
Same-sample scanner performance on the 20 definitive validation cases
The scanner detected 8 of the 17 confirmed captures and missed 9. Bar widths use the 20 definitive cases as the common denominator. The parent-sample 44/150 result is not used in this comparison.
The three genuine misses were Dreamdata (a Squarespace form that posted only its visible fields), HockeyStack (the UTM field names were present but the values were blank, and the tag was lost on a redirect), and Attio (a custom API that posted a clean, contact-only body). The interesting part is how the other 17 captured:
How the 17 captures carried the data
JS-injected at submit — 3 (invisible to a scan)
Cookie-forwarded — 1 (invisible to a scan)
These method labels describe the payload-confirmed cases. Of the nine captures the scanner missed, six were classified as hidden-field, two as JavaScript-injected at submit, and one as cookie-forwarded. A static scan may miss a case because the field appears late, exists in a different form context, or is added only during submission.
The validation result: the scanner missed 9 of 17 confirmed captures
Lining up the scanner’s prediction against the observed payload result, form by form, on the 20 definitive cases:
Scanner prediction vs. observed payload result (n = 20)
CAPTURED
NOT capture
“captured”
“no capture”
Precision 8/8 (95% Wilson interval 68%–100%) and sensitivity 8/17, or 47% (95% Wilson interval 26%–69%). Specificity was 3/3 (95% Wilson interval 44%–100%), so the small number of non-captures prevents a strong general claim. The nine missed captures were Adjust, Crazy Egg, Adverity, Branch, CallRail, Aircall, AppFolio, BambooHR, and Cal.com.
The defensible conclusion is narrow: this scanner produced substantial false negatives in the selected validation cases. A positive result matched all eight definitive positive calls in this set, while a negative result did not rule out capture. The study does not estimate the scanner’s market-wide error rate, and it does not justify multiplying 29% by three.
Descriptive subgroup counts, not a vendor-type comparison
Among definitive cases, 9 of 11 attribution or analytics specialists and 7 of 8 general SaaS companies transmitted campaign data in the observed payload. These are descriptive counts from a small, purposively selected set. The study was not designed or powered to test whether the two groups differ.
Descriptive proportions in the selected validation set
Attribution or analytics specialists: 9/11. General SaaS: 7/8. One additional definitive case, HubSpot, was classified as automation/lead-capture/forms and is not included in either bar. Do not infer equivalence or a population difference from these counts.
The full dataset — all 23 forms
Every form we attempted, the platform behind it, what the automated scanner concluded, and what we found by reading the actual submission. Rows where the scanner said “none” or “cookie-only” but the form did capture are its blind spots.
| # | Company | Sells martech? | Form platform | Scanner verdict | Observed payload result | How it captured |
|---|---|---|---|---|---|---|
| 1 | Adjust | Yes | Pardot | none → | Captured | Hidden field |
| 2 | Crazy Egg | Yes | Custom (signup) | none → | Captured | Hidden field |
| 3 | Dreamdata | Yes | Squarespace | none | Not captured | — |
| 4 | HockeyStack | Yes | HubSpot (Webflow) | none | Not captured | — (UTM fields blank) |
| 5 | Adverity | Yes | HubSpot | cookie-only → | Captured | JS-injected at submit |
| 6 | AgencyAnalytics | Yes | Custom (no POST seen) | cookie-only | Unverifiable | — |
| 7 | Branch | Yes | Custom API | cookie-only → | Captured | Cookie-forwarded |
| 8 | CallRail | Yes | Custom API | cookie-only → | Captured | JS-injected at submit |
| 9 | AppsFlyer | Yes | Marketo | form-field | Captured | Hidden field |
| 10 | Factors.ai | Yes | HubSpot | form-field | Captured | JS-injected at submit |
| 11 | FullStory | Yes | Marketo | form-field | Captured | Hidden field |
| 12 | Funnel | Yes | HubSpot | form-field | Captured | Hidden field |
| 13 | Customer.io | Yes | Custom (no contact fields in POST) | form-field | Unverifiable | — |
| 14 | HubSpot | Yes | HubSpot | form-field | Captured | Hidden field |
| 15 | Airbyte | No | HubSpot | form-field | Captured | Hidden field |
| 16 | Atera | No | WPForms | form-field | Captured | Hidden field |
| 17 | Bloomerang | No | Marketo | form-field | Captured | Hidden field |
| 18 | Aircall | No | Custom JSON (HubSpot-backed) | cookie-only → | Captured | Hidden field |
| 19 | AppFolio | No | Marketo | cookie-only → | Captured | Hidden field |
| 20 | Attio | No | Custom API | cookie-only | Not captured | — |
| 21 | BambooHR | No | Marketo | none → | Captured | Hidden field |
| 22 | Buildertrend | No | Blocked (403) | none | Unverifiable | — |
| 23 | Cal.com | No | Custom | none → | Captured | Hidden field |
The arrow (→) marks the nine forms where the automated scanner predicted “no capture” but the form did capture — its blind spots. The UTM survived the homepage→form journey on 20 of the 22 forms where that was observable (≈91%).
📊 Download the full dataset (CSV)
All 23 rows with vendor, platform, scanner verdict, observed payload result, capture method, journey-survival, and per-vendor observation notes. Released for replication and reuse — please cite Ivris Tech and link this page.
Download b2b-form-attribution-capture-2026_dataset_PUBLIC.csv →
Collected 2026-06-17; corrected 2026-07-22. In a deliberately selected
validation set of 20 B2B forms with definitive payload results, a static
audit detected 8 of 17 confirmed captures and missed 9.
https://ivristech.com/b2b-form-attribution-capture/
Two clean findings from the wider 150-form audit
The capture calibration cannot be generalized to the parent sample. Two separate DOM-observable counts from the 150-form audit can still be reported descriptively:
- Bot protection ≈ 47%. Of 150 forms, 71 use a managed CAPTCHA (56 reCAPTCHA, 13 Cloudflare Turnstile, 2 honeypot); 79 use none. A floor, since silent honeypots are undercounted.
- “How did you hear about us” is rare — ≈15%. Just 23 of 150 forms ask, and only 12 make it required. And 31 of the 40 martech sellers in the sample (78%) don’t ask at all — the companies most equipped to value self-reported attribution mostly skip it.
Methodology and provenance
This page reports a diagnostic validation exercise on a small, purposively selected sample, not a market-wide census. The corrected analysis compares scanner predictions and payload results only within the same 20 definitive cases.
- Parent sample: 150 public B2B demo/contact/signup forms, automated read-only audit, collected June 2026.
- Validation subsample: 23 attempted forms — 7 scanner verdicts of
none, 7 ofcookie/dl-only, and 9 ofform-field— deliberately weighted toward suspected false negatives. Submitted and inspected on 2026-06-17; 20 produced definitive payload results. - Capture definition: a UTM or click-ID present in the actual submission POST body. Headers, cookies, referrers, analytics pixels, and page URLs explicitly excluded.
- Evidence: a payload artifact or collection note was preserved for each attempted case. Per-vendor observation notes are published in the dataset; underlying screenshots and transcriptions are retained locally.
- Analysis: sensitivity, specificity, precision, false-negative rate, and accuracy use only the 20 definitive same-sample cases. Wilson 95% intervals are reported for proportions.
LIMITATIONS — READ BEFORE QUOTING ANY NUMBER
The 20 definitive cases show that this scanner can miss payload-confirmed captures in deliberately selected suspected-false-negative cases. They do not estimate the prevalence of capture across the 150-form parent sample, the B2B market, or any platform category. The 17/20 validation proportion must not be compared directly with 44/150 as a rate or used to claim a threefold undercount. “Present in the submission payload” means the campaign value was transmitted in the observed request; it does not prove that the vendor’s CRM stored, mapped, retained, or reported the value. Pricing, form logic, consent state, routing, and vendor implementations can change after the collection date.
Three later expansion attempts — Trigger.dev, Replit, and Toggl — produced no observable client-side lead payload and remain unverifiable. They are not confirmations of capture or non-capture and are excluded from every metric.
Frequently Asked Questions
It means that the campaign values (UTM parameters and/or the Google click-ID) were present in the observed submission payload. That establishes transmission in the request, not downstream CRM storage, field mapping, retention, or reporting. We did not count values that appeared only in cookies, headers, the referrer, the page URL, or analytics pixels.
A read-only scan sees only what its collection method exposes before submission. In the 20 definitive selected cases, it detected 8 of 17 payload-confirmed captures and missed 9. Six misses were classified as hidden-field, two as JavaScript-injected at submit, and one as cookie-forwarded. The result supports payload verification after a negative scan; it does not establish a universal scanner error rate.
This study cannot answer that market-wide question. It tested one scanner against a deliberately selected validation set and found false negatives. It did not test downstream CRM storage or reporting, so no conclusion about where attribution usually breaks is supported.
Twenty forms with a definitive payload result out of 23 attempted, drawn purposively from a 150-form automated audit. The selected set included 7 none, 7 cookie/dl-only, and 9 form-field scanner verdicts before three unverifiable cases were excluded. It is a diagnostic calibration set, not a population sample.
Yes. Please cite the corrected page and link to this canonical URL. Suggested citation: Sirvi, Mahesh. “Form Scanners Missed 9 of 17 Confirmed UTM Captures.” IVRIS Tech, Version 1.1, 2026. https://ivristech.com/b2b-form-attribution-capture/.
Version history and corrections
| Version | Date | Status | Change |
|---|---|---|---|
| 1.0 | 19 June 2026 | Withdrawn | Compared two differently composed samples and used an unsupported approximately threefold framing. |
| 1.1 | 22 July 2026 | Current | Replaced the cross-sample comparison with the same-sample result: 8 of 17 confirmed captures detected and 9 missed. Clarified that payload transmission does not prove CRM storage or reporting. |
To report a factual error, identify the disputed row or passage and provide the supporting technical evidence through the IVRIS Tech contact route. Material corrections will be dated on this page rather than silently replaced.
Research and analysis by Mahesh Sirvi, IVRIS Tech. The methodology and public 23-row dataset are available for inspection. Supporting payload observations were checked locally, but the underlying screenshots and transcriptions are not all published as reusable artifacts.






